Skip to content

Roadmap

Tristan Grimmer edited this page Sep 2, 2023 · 2 revisions

Future

These are the improvemnts being considered.

  • PVR support. There is a seperate page for this.
  • Compression of BC and ASTC formats so ktx, ktx2, astc, pvr, and dds files can be written, not just read.
  • Fast rotation using 3-shear method.
  • Create a generic superclass for storing images.
    1. Support an internal floating-point representation R32fG32fB32fA32f in addition to R8G8B8A8 for HDR operations.
    2. Support texture arrays, faces (including cubemaps), mipmaps, and 3D textures in a consistent way.

Regarding the super-class image task, it should be part of Tacent rather than the viewer-proper. Let's call is tUberImage for now. tUberImage should know how to load, save, and cache itself. It should not have bindings to any particular rendering API (Vulcan, OpenGL, etc). It should not have pixel manipulation functions other than allowing R/W access to the pixels. The image manipulation functions should be implemented in another Tacent sub-class, perhaps tManipImage. The final layer that has specific functionality the viewer needs (namely binding to graphics APIs etc), belongs in Tacent View itself... perhaps called tViewerImage. tViewerImage would subclass tManipImage.

To support texture arrays, slices etc, the following structure could be used for the pixels.

for each MIP-Map Level in MIP-Map Count
    for each Surface in Num. Surfaces
        for each Face in Num. Faces
            for each Slice in Depth
                for each Row in Height
                    for each Column in Width
                        PixelData (Size depends on 32 or 128 pxel format)

Past

These are completed.

  • Copy/paste images from clipboard.
  • Command-line operations for image processing so TacentView can be integrated into build pipelines.
  • Extract single or all frames from any multi-frame image.
Clone this wiki locally