Mercurial > hg > forks > gldragon
view dmrender.h @ 62:baccf2044289
Move the OpenGL rendering, setup etc. into a separate module/class, perhaps
facilitating other types of renderers in future .. maybe.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Sat, 14 Dec 2019 16:39:20 +0200 |
parents | |
children | d6ffc59bb84d |
line wrap: on
line source
// // GLDragon - OpenGL PLY model viewer / simple benchmark // -- Basic renderer template // Programmed and designed by Matti 'ccr' Hämäläinen <ccr@tnsp.org> // (C) Copyright 2019 Tecnic Software productions (TNSP) // // See file "COPYING" for license information. // #ifndef DMRENDER_H #define DMRENDER_H 1 #include "dmscene.h" #include <SDL.h> struct DMSimpleRenderer { bool useShaders; DMSimpleRenderer() { useShaders = false; } virtual bool checkErrors(void) { return true; } virtual bool initRender1(void) { return false; } virtual bool initRender2(SDL_Window *window) { (void) window; return false; } virtual bool initRender3(const int width, const int height) { (void) width; (void) height; return false; } virtual void shutdownRenderer(void) { } virtual void drawModel(const DMSimpleScene &scene, const DMModel &model, const float time) { (void) scene; (void) model; (void) time; } virtual void drawScene(const DMSimpleScene &scene, const float time) { (void) scene; (void) time; } virtual bool compileModelShaders(DMModel &model) { (void) model; return false; } virtual bool compileSceneShaders(DMSimpleScene &scene) { if (useShaders) { for (DMModel &model : scene.models) { if (!compileModelShaders(model)) return false; } } return true; } virtual bool setupLight(const int n, DMLight &light) { (void) n; (void) light; return true; } virtual bool setupLights(DMSimpleScene &scene) { for (size_t n = 0; n < scene.lights.size(); n++) { if (!setupLight(n, scene.lights[n])) return false; } return true; } virtual bool setupCamera(DMCamera &camera) { (void) camera; return true; } virtual bool animate(DMSimpleScene &scene, const float time) { (void) scene; (void) time; return true; } }; #endif