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.

Reply via email to