Todo

This page lists features proposed for future releases of Quesa.

Note that features found in QD3D which have not yet been implemented are tracked on the bugs page - this page is purely for extensions over and above the QD3D API.

Our high priority items are:

  • More testing.
  • More documentation (e.g., finishing adding HeaderDoc markup for the API reference).
  • Qut, make all example apps cross platform.
  • Qut, implement select picture/metafile for Unix/Windows.
  • Qut, implement texture importers for Unix/Windows.
  • Qut, implement mouse events for Unix.
  • Viewer, unify QD3D's two Viewer interfaces into one.
  • Viewer, make portable to Windows/Unix/Be.

Our lower priority items are:

  • Be, add OpenGL support.
  • E3Main.c, add callback to find out when an object is disposed of (would allow OpenGL renderer to release textures automatically rather than polling).
  • E3Main.c, add control over object registration (apps should be able to only register the objects they need).
  • Glue, should use the Error Manager to report errors and include additional test in debug builds.
  • IRGeometry.c, if object is entirely visible within frustum then set GL frustum clip hint to turn off scissoring.
  • IRUpdate.c, uncompress QuickTime textures before passing to OpenGL.
  • Misc, add accessors to retrieve callbacks after setting them: e.g., error handlers or view progress.
  • Misc, add attribute to indicate if geometry is closed (e.g., box or ellipsoid). Renderers can turn on backface culling for these objects if not transparent/in edge mode, even if app has turned it off.
  • Misc, be able to associate behavious with objects for animation.
  • Misc, make thread-safe (add mutex around glue entry points)
  • Misc, should we automatically add face/vertex normals to cached form of retained mode objects to increase performance?
  • Misc, some kind of Q3Perf application for performance testing (similar to GLPerf).
  • Misc, when debugging put shared objects onto a freed-list to catch double-disposes.
  • Quesa.h, add kQ3PixelTypeLuminance8 for grayscale textures and update OpenGL renderer to support it.
  • QuesaCamera.h, add matrix camera object that allows direct specification of world->screen matrix.
  • QuesaGeometry.h, add 3D extrustion object that takes a TQ3Bitmap and creates a 3D extrusion.
  • QuesaGeometry.h, add 3D text object that takes string objects and creates a 3D extrusion.
  • QuesaGeometry.h, add API to expose cached TriMesh form of geometries.
  • QuesaGeometry.h, add Q3Geometry_AddNormalIndicators to add normal indicators (implemented, but not public yet).
  • QuesaGeometry.h, document and make public plug-in geometry API.
  • QuesaIO.h, more file importers (e.g., DXF or VRML).
  • QuesaIO.h, move 3DMF importer/exporter into a plug-in as per renderers.
  • QuesaIO.h, add Q3File_Submit that reads a file and submits it to a view (and Q3File_ReadAsGroup that reads a file into a group).
  • QuesaIO.h, add method to return the HFS file types/extensions/MIME types supported for importer/exporter plug-ins.
  • QuesaLight.h, allow lights to be placed in non-light groups.
  • QuesaLight.h, an 'eye' light type.
  • QuesaMath.h, #define to enable inline versions of simple routines.
  • QuesaRenderer.h, add API to allow apps to register post and pre render callbacks to adjust API-specific functionality as objects are rendered.
  • QuesaRenderer.h, additional plug-in renderers (e.g., D3D or a raytracer).
  • QuesaShader.h, add Q3ColorARGB_Luminance, to take a TQ3ColorARGB.
  • QuesaStyle.h, add 'cast shadow' style to complement the 'receive shadow' style.
  • QuesaStyle.h, add a 'kQ3AntiAliasModeMaskPoints' style as per OpenGL.
  • QuesaStyle.h, allows use of c2 in world and screen space subdivision styles.
  • QuesaStyle.h, be able to set fill style independently for backfacing and frontfacing polygons.
  • QuesaView.h, add Q3View_GetAllowAllGroupCulling to access group culling state.
  • QuesaView.h, add Q3View_NewFromType to create a default view given a platform specific window.
  • Qut, should apps limit their frame rate to 60fps when not in Show FPS mode?
  • Viewer, put platform specific code in separate source files.
  • Viewer, split tools up into distinct source files?
  • Viewer, update about box.