view mde/gl/draw.d @ 61:7cab2af4ba21

A little bit of progress on the content handling system (relevent code is likely to be revised). Also some changes to debug statements, in particular a new drawGlyphCache debug version.
author Diggory Hardy <diggory.hardy@gmail.com>
date Wed, 25 Jun 2008 17:25:48 +0100
parents f3d8c0441408
children 66d555da083e
line wrap: on
line source

/* LICENSE BLOCK
Part of mde: a Modular D game-oriented Engine
Copyright © 2007-2008 Diggory Hardy

This program is free software: you can redistribute it and/or modify it under the terms
of the GNU General Public License as published by the Free Software Foundation, either
version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>. */

/** The OpenGL draw loop.
*
* Everything here is really intended as makeshift code to enable GUI development. */
module mde.gl.draw;

import mde.gui.Gui;

import derelict.sdl.sdl;
import derelict.opengl.gl;

import tango.time.Time;     // TimeSpan (type only; unused)
import tango.util.log.Log : Log, Logger;

import mde.resource.font;
private Logger logger;
static this () {
    logger = Log.getLogger ("mde.gl.draw");
}

//BEGIN Drawing loop
// Temporary draw function
void draw (TimeSpan) {
    glClear(GL_COLOR_BUFFER_BIT);
    
    gui.draw ();
    debug (drawGlyphCache) FontStyle.drawTexture;
    
    GLenum err = glGetError();
    while (err != GL_NO_ERROR) {
        char[128] tmp;
        logger.error (logger.format (tmp, "GL error: {}", err));
        err = glGetError();
    }
    
    glFinish();		// Use Finish rather than Flush to make sure gl is ready to swap buffers
    SDL_GL_SwapBuffers();
}
//END Drawing loop