software rendering
[retroray] / src / modern / main.c
index d6682cc..c72b788 100644 (file)
@@ -48,7 +48,7 @@ static PROC wgl_swap_interval_ext;
 int main(int argc, char **argv)
 {
        glutInit(&argc, argv);
-       glutInitWindowSize(1024, 768);
+       glutInitWindowSize(640, 480);
        glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE);
        glutCreateWindow("RetroRay");
 
@@ -77,7 +77,9 @@ int main(int argc, char **argv)
        wgl_swap_interval_ext = wglGetProcAddress("wglSwapIntervalEXT");
 #endif
 
-       app_reshape(glutGet(GLUT_WINDOW_WIDTH), glutGet(GLUT_WINDOW_HEIGHT));
+       win_width = glutGet(GLUT_WINDOW_WIDTH);
+       win_height = glutGet(GLUT_WINDOW_HEIGHT);
+       win_aspect = (float)win_width / win_height;
 
        if(app_init() == -1) {
                return 1;
@@ -99,6 +101,23 @@ void app_redisplay(void)
 
 void app_swap_buffers(void)
 {
+       glMatrixMode(GL_PROJECTION);
+       glPushMatrix();
+       glLoadIdentity();
+       glMatrixMode(GL_MODELVIEW);
+       glLoadIdentity();
+
+       glRasterPos2i(-1, 1);
+       glPixelZoom(1, -1);
+       glEnable(GL_ALPHA_TEST);
+       glAlphaFunc(GL_GREATER, 0.5f);
+       glDrawPixels(win_width, win_height, GL_BGRA, GL_UNSIGNED_BYTE, framebuf);
+       glDisable(GL_ALPHA_TEST);
+
+       glMatrixMode(GL_PROJECTION);
+       glPopMatrix();
+       glMatrixMode(GL_MODELVIEW);
+
        glutSwapBuffers();
        assert(glGetError() == GL_NO_ERROR);
 }