#ifndef _GTARENDERER_HPP_ #define _GTARENDERER_HPP_ #define GLEW_STATIC #include #include #include class Model; class GTAEngine; class GTARenderer { public: GTARenderer(); ViewCamera camera; /// The numer of things rendered by the last renderWorld size_t rendered; size_t culled; GLuint uniModel, uniProj, uniView, uniCol; GLuint posAttrib, texAttrib; GLuint worldProgram; GLuint vehicleProgram; void renderWorld(GTAEngine* engine); void renderNamedFrame(GTAEngine* engine, const std::unique_ptr&, const glm::vec3& pos, const glm::quat& rot, const glm::vec3& scale, const std::string& name); void renderObject(GTAEngine* engine, const std::unique_ptr&, const glm::vec3& pos, const glm::quat& rot, const glm::vec3& scale); }; #endif