#ifndef DRAW_HPP #define DRAW_HPP #include #include #include struct offsetsStruct { offsetsStruct(): xOffset(0), yOffset(0), zOffset(0) { } float xOffset, yOffset, zOffset; }; int drawFigure(const int whatToDraw); int drawSquare(const char* vertexShaderSource, const char* fragmentShaderSource); int drawSquareClass(const char* vertexPath, const char* fragmentPath); void doDrawElements(const unsigned int shaderProgram, const unsigned int vertexArrayObject, const GLenum drawArrayMode, const GLenum drawType, const int numberOfElementsToDraw); int drawTriangleClass(const float triangleVertices[], const size_t triangleVerticesSize, const char* vertexPath, const char* fragmentPath, const bool colorIncluded = false, const bool textureIncluded = false, const offsetsStruct offsets = offsetsStruct()); int drawTriangle(const float triangleVertices[], const size_t triangleVerticesSize, const char* vertexShaderSource, const char* fragmentShaderSource, const bool colorIncluded = false, const bool textureIncluded = false); int drawTexture(); void updateUniformColor(const unsigned int shaderProgram, const GLchar* uniformName); void doDrawArrays(const unsigned int shaderProgram, const unsigned int vertexArrayObject, const GLenum drawArrayMode, const int firstIndex, const unsigned int numberOfIndicesToBeRendered ); unsigned int drawSquareShaderProgram(const char* vertexShaderSource, const char* fragmentShaderSource); #endif