Mercurial > projects > mde
diff mde/gl.d @ 23:47478557428d
Implemented drawing a very basic gl box, and only drawing when necessary.
Improvements to window resizing, and gl draws a box as a test.
Scheduler has "on request" support to redraws only when requested by an event.
committer: Diggory Hardy <diggory.hardy@gmail.com>
author | Diggory Hardy <diggory.hardy@gmail.com> |
---|---|
date | Thu, 27 Mar 2008 10:58:57 +0000 |
parents | 838577503598 |
children | 2c28ee04a4ed |
line wrap: on
line diff
--- a/mde/gl.d Tue Mar 25 12:24:04 2008 +0000 +++ b/mde/gl.d Thu Mar 27 10:58:57 2008 +0000 @@ -16,7 +16,49 @@ /** Simple OpenGL functions. */ module mde.gl; +import mde.scheduler.runTime; + +import derelict.sdl.sdl; import derelict.opengl.gl; static this() { + Scheduler.perRequest (RF_KEYS.DRAW, &draw); } + +void glSetup () { + glClearColor (0.0f, 0.0f, 0.0f, 0.0f); +} + +void setProjection (int w, int h) { + glMatrixMode (GL_PROJECTION); + glLoadIdentity (); + + glViewport (0,0,w,h); + //glOrtho (0.0,w, 0.0,h, -1.0, 1.0); + glOrtho (0.0,1.0,0.0,1.0,-1.0,1.0); + + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); +} + +// Temporary draw function +void draw () { + glClear(GL_COLOR_BUFFER_BIT); + + glBegin (GL_QUADS); + { + glColor3f (0.2f, 0.6f, 0.8f); + /+glVertex2i (40, 40); + glVertex2i (200, 40); + glVertex2i (200, 200); + glVertex2i (40, 200);+/ + glVertex2f (0.1f, 0.1f); + glVertex2f (0.9f, 0.1f); + glVertex2f (0.9f, 0.9f); + glVertex2f (0.1f, 0.9f); + } + glEnd(); + + glFlush(); + SDL_GL_SwapBuffers(); +}