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();
+}