#ifndef GRAPHICS_H #define GRAPHICS_H #include #include namespace sp { class PlatformApplication; class Graphics { public : enum MatrixMode { PROJECTION, MODELVIEW, }; enum VertexType { TRIANGLES, }; public : Graphics(PlatformApplication *platform); ~Graphics(); bool init(); void shutdown(); std::string getVersion() const; void setWindowMode(Window::Mode mode); void setSize(int width, int height); void setViewport(int x, int y, int width, int height); void setClearColor(float r, float g, float b); void clearBuffer(); void swapBuffers(); GfxDriver* getDriver(); GLWindow* getWindow(); protected : int m_width; int m_height; GLWindow *m_window; // Graphics Driver. OpenGL/Vulcan/DirectX etc. GfxDriver *m_gfxdrv; }; } // namespace sp #endif /* GRAPHICS_H */