Future Plans
Listed here are my future plans for the next version of AgateLib. Most of these are partially implemented.
AgateOTK driver
- * Update to latest version of OpenTK.
- OpenTK has undergone a number of updates since AgateOTK was originally developed. AgateOTK should be updated for this, as this may improve performance.
- * Use OpenGL Framebuffer objects for render to surface.
- The current implementation of Surface as a render target just writes to the framebuffer and then manually copies the pixels from it to a new OpenGL texture. This process is rather inefficient. OpenGL 1.4 included framebuffer objects which allow for rendering to a texture much more efficiently. Update AgateOTK to use this.
- * Compatibility with Mac OS.
- The recent release of Mono 1.2.6 contains a native WinForms driver for OS X, so it does not need to run through an X11 server anymore. If possible, AgateOTK should be made compatible with this so Agate applications can be deployed to Mac easily.
AgateFMOD driver
- * Update to latest version of FMOD.
- FMOD has undergone a number of updates since AgateFMOD was originally developed. AgateFMOD should be updated for this. Also the versions of FMOD used on Windows, Linux and Mac OS should all be consistent.
- * Develop a method to save/load a font to a PNG and XML file.
- Last I checked, .NET and Mono created fonts that looked slightly different. With this implementation, a created font can be saved to a file to give a platform independent appearance when loaded back up.
75% complete - * Enhance structure to support kerning.
- Kerning is completely unsupported at the moment. This would help to improve the appearance of Agate drawn fonts.
0% complete - * Create a font developer tool.
- This would be a small program which would allow a developer to examine how different fonts would look when rendered with AgateLib, and the ability to export the PNG and XML files necessary for reloading the font in a game. It would also allow manual adjustments of character kerning, tracking and leading.
0% complete
- * Develop an alternate sprite class which draws all its frames from the same Surface, rather than have one Surface for each frame.
- For most applications, it is most likely that all the frames for most any given sprite will be located in the same image file. Performance would probably be improved, especially on loading sprites, if each frame was drawn from the same surface, rather than carving out surfaces for each frame from the larger image.
Most sprites will probably have a lot of transparency around their borders. This will also support sprite packing in the source file by specifying the boundaries of the actual image data on the source image. This will reduce memory and storage requirements for images, at the very least. Reducing the total amount of pixel data the drivers have to load into memory may improve performance if the graphics card has load fewer textures into graphics memory each frame. The details for each sprite frame's source data will be specified in an XML file.
40% complete on Sprite2 class - * Develop an application to load sprites and create packed sprite sheets, along with an XML file which specifies how to load them to Agate.
- This will be an application that allows developers to take best take advantage of the features of the Sprite2 class detailed above.
0% complete - * Develop a skinnable GUI with controls.
- This will allow a GUI to be used in-game, with all controls rendered by Agate, rather than using an AgateRenderTarget inside a WinForms Form. Functionality for controls will be separate from the rendering code, which can be replaced by a custom renderer to provide an appropriate look-and-feel for whatever game is being played.
75% complete on GUI managementclasses
90% complete on Button and Label components
0% complete on TextBox, CheckBox, ListBox, RadioButton and others
- * Develop a couple of default styles that can be chosen from.
- This will give a couple of default styles, as well as provide an example that developers can use to create styles for their own projects.
PlainStyle complete for completed components
Fonts
Sprites
GUI
- Printer-friendly version
- Login or register to post comments
Recent comments
1 week 1 day ago
1 week 1 day ago
4 weeks 2 days ago
4 weeks 2 days ago
4 weeks 2 days ago
4 weeks 2 days ago
4 weeks 2 days ago
4 weeks 3 days ago
4 weeks 3 days ago
7 weeks 21 hours ago