mirror of
https://github.com/kuhyx/engineer-thesis-WUT.git
synced 2026-07-04 16:23:14 +02:00
71 lines
2.1 KiB
C++
71 lines
2.1 KiB
C++
// "Copyright [2023] <Krzysztof Rudnicki>"
|
|
#ifndef ENGINE_ENGINE_DRAW_HPP_
|
|
#define ENGINE_ENGINE_DRAW_HPP_
|
|
#include <glad/glad.h>
|
|
#include <GLFW/glfw3.h>
|
|
#include <string>
|
|
#include "./constants.hpp"
|
|
|
|
struct offsetsStruct {
|
|
offsetsStruct(): xOffset(0), yOffset(0), zOffset(0) { }
|
|
float xOffset, yOffset, zOffset;
|
|
};
|
|
|
|
struct drawFigureReturn {
|
|
drawFigureReturn(): success(-1), VAO(0), VBO(0), EBO(0) { }
|
|
int success;
|
|
unsigned int VAO;
|
|
unsigned int VBO;
|
|
unsigned int EBO;
|
|
};
|
|
|
|
drawFigureReturn drawFigure(const int whatToDraw);
|
|
|
|
drawFigureReturn drawSquare(
|
|
const float squareVertices[] = constants::SQUARE_VERTICES,
|
|
const size_t squareVerticesSize = constants::SQUARE_VERTICES_SIZE,
|
|
const unsigned int squareIndices[] = constants::SQUARE_INDICES,
|
|
const size_t squareIndicesSize = constants::SQUARE_INDICES_SIZE,
|
|
const char* vertexShaderSource = constants::VERTEX_SHADER_SOURCE,
|
|
const char* fragmentShaderSource = constants::FRAGMENT_SHADER_SOURCE,
|
|
const bool colorIncluded = false,
|
|
const bool textureIncluded = false,
|
|
const offsetsStruct offsets = offsetsStruct());
|
|
|
|
void doDrawElements(
|
|
const unsigned int shaderProgram,
|
|
const unsigned int vertexArrayObject,
|
|
const GLenum drawArrayMode,
|
|
const GLenum drawType,
|
|
const int numberOfElementsToDraw);
|
|
|
|
drawFigureReturn 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());
|
|
|
|
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);
|
|
|
|
drawFigureReturn drawDebilMode(
|
|
const char* vertexPath,
|
|
const char* fragmentPath,
|
|
const float vertices[],
|
|
const size_t verticesSize,
|
|
const unsigned int indices[],
|
|
const size_t indicesSize);
|
|
|
|
#endif // ENGINE_ENGINE_DRAW_HPP_
|