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.