#ifndef PHONGENTITY_H #define PHONGENTITY_H #include #include #include #include "lights.h" class Mesh; class Material; class Shader; class PhongEntity { protected: Mesh* mesh; // modern opengl : enum { // required buffers POSITION_BUFFER, // optionnal buffers : NORMAL_BUFFER, TEXCOORD_BUFFER, TANGENT_BUFFER, // indices buffers INDICES_BUFFER }; GLuint vao; int nb_buffers; GLuint* vbo; void modernInit(bool isDynamic); void drawGroup(int groupId); void modernDraw(const glm::mat4 &viewMatrix, const glm::mat4 &projectionMatrix, Lights::Light* dirLight, Lights* pointLights); // old opengl : GLuint displayList; void crappyInit(); void crappyDraw(const glm::mat4 &viewMatrix, const glm::mat4 &projectionMatrix, Lights::Light* dirLight, Lights* pointLights); public: glm::mat4 modelMatrix; PhongEntity(Mesh* myMesh); void draw(const glm::mat4 &viewMatrix, const glm::mat4 &projectionMatrix, Lights::Light* dirLight, Lights* pointLights); void initGL(bool isDynamic = false); void destroyGL(); Mesh* getMesh() {return mesh;} }; #endif // PHONGENTITY_H