SparrowRenderer/sparrowrenderer.h
2015-12-01 10:15:14 +01:00

56 lines
1.2 KiB
C++

#ifndef SPARROWRENDERER_H
#define SPARROWRENDERER_H
#include <vector>
#include <string>
class Camera;
class Module;
class Scene;
class SparrowRenderer
{
public:
// main methods
void initGL(int width, int height, bool forceCrappy = false);
void destroyGL();
void resizeGL(int width, int height);
void renderGL();
static bool isModernOpenGLAvailable();
// clock methods
double getFPS();
double getModuleTime(int moduleId);
// modules methods
void addModule(Module* myModule, std::string name);
int getNbModules();
// camera methods
void setCamera(Camera* myCamera);
Camera* getCamera();
// scene methods
void setScene(Scene* myScene);
Scene* getScene();
protected:
typedef struct s_moduleNode{
Module* module;
std::string name;
bool isEnabled;
double seconds;
s_moduleNode(Module* myModule, const std::string &myName) : module(myModule), name(myName), isEnabled(true) {}
} ModuleNode;
Camera* camera;
Scene* scene;
std::vector<ModuleNode> modules;
static bool modernOpenglAvailable;
std::vector<ModuleNode>::iterator getModuleNode(std::string name);
};
#endif // SPARROWRENDERER_H