On Monday, 6 January 2014 at 04:11:07 UTC, Adam Wilson wrote:
The logical phases as I can see them are as follows, but please
suggest changes:
- Windowing and System Interaction (Including
Keyboard/Mouse/Touch Input)
- Basic Drawing (2D Shapes, Lines, Gradients, etc)
- Image Rendering (Image Loading, Rendering, Modification,
Saving, etc.)
- 3D Drawing (By far the most complex stage, so we'll leave it
for last)
I suggest you start working the other way. Because if you want
performance you will most likely want everything in the render
path to be based on shaders:
1. Fonts and monochrome icons based on distance-fields.
2. All fills based on shaders, with the ability to convert D into
GLSL etc.
3. Render to texture, with caching mechanism.
4. Simplistic mesh rendering from native D arrays.
5. The ability to attach native 3D code paths (GL/DX) to the
engine for advanced meshes.
Then you build 2D on top of this.
Rendering and input should be completely separate.