Ajustes en documentación del código

parent 55f91e77
Showing with 19 additions and 10 deletions
...@@ -72,7 +72,8 @@ void PAG::Renderer::inicializar() { ...@@ -72,7 +72,8 @@ void PAG::Renderer::inicializar() {
* @brief Función a llamar cuando se necesite refrescar la ventana. * @brief Función a llamar cuando se necesite refrescar la ventana.
* *
* Esta función limpia los buffers de color y de profundidad de * Esta función limpia los buffers de color y de profundidad de
* OpenGL. No intercambia los buffers. * OpenGL y renderiza lso modelos asignados con el programa Shader
* asignado. No intercambia los buffers.
*/ */
void PAG::Renderer::refrescar() { void PAG::Renderer::refrescar() {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
...@@ -100,6 +101,8 @@ void PAG::Renderer::refrescar_tamanio_framebuffer(int width, int height) { ...@@ -100,6 +101,8 @@ void PAG::Renderer::refrescar_tamanio_framebuffer(int width, int height) {
* Función para crear, compilar y enlazar el shader program * Función para crear, compilar y enlazar el shader program
* @param nombre Nombre de los archivos a cargar * @param nombre Nombre de los archivos a cargar
* @note Se cargarán los archivos <nombre>-vs.glsl y <nombre>-fs.glsl * @note Se cargarán los archivos <nombre>-vs.glsl y <nombre>-fs.glsl
* @throws ShaderException Si hay errores durante creaciones, lecturas,
* compilaciones o enlazados de algún shader.
*/ */
void PAG::Renderer::creaShaderProgram(std::string& nombre) { void PAG::Renderer::creaShaderProgram(std::string& nombre) {
std::ifstream lectorArchivos; std::ifstream lectorArchivos;
...@@ -219,8 +222,9 @@ void PAG::Renderer::creaShaderProgram(std::string& nombre) { ...@@ -219,8 +222,9 @@ void PAG::Renderer::creaShaderProgram(std::string& nombre) {
} }
/** /**
* Función para crear el VAO para el modelo a renderizar * Función para crear el VAO para el modelo a renderizar.
* @note No se incluye ninguna comprobación de errores * @note Está implementado a nivel de código con dos modos:
* Entrelazado y no entrelazado. Ambas son equivalentes.
*/ */
void PAG::Renderer::creaModelo() { void PAG::Renderer::creaModelo() {
GLfloat vertices[] = { -.5, -.5, 0, GLfloat vertices[] = { -.5, -.5, 0,
...@@ -257,6 +261,8 @@ void PAG::Renderer::creaModelo() { ...@@ -257,6 +261,8 @@ void PAG::Renderer::creaModelo() {
*/ */
// END NO ENTRELAZADO // END NO ENTRELAZADO
// START ENTRELAZADO
glGenBuffers(1, &idVBO); glGenBuffers(1, &idVBO);
glBindBuffer(GL_ARRAY_BUFFER, idVBO); glBindBuffer(GL_ARRAY_BUFFER, idVBO);
glEnableVertexAttribArray(0); glEnableVertexAttribArray(0);
...@@ -265,6 +271,8 @@ void PAG::Renderer::creaModelo() { ...@@ -265,6 +271,8 @@ void PAG::Renderer::creaModelo() {
glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 6*sizeof(GLfloat), (GLvoid*)(3*sizeof(float))); glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 6*sizeof(GLfloat), (GLvoid*)(3*sizeof(float)));
glBufferData(GL_ARRAY_BUFFER, 18*sizeof(GLfloat), entrelazados, GL_STATIC_DRAW); glBufferData(GL_ARRAY_BUFFER, 18*sizeof(GLfloat), entrelazados, GL_STATIC_DRAW);
// END ENTRELAZADO
glGenBuffers(1, &idIBO); glGenBuffers(1, &idIBO);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, idIBO); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, idIBO);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, 3*sizeof(GLuint), indices, GL_STATIC_DRAW); glBufferData(GL_ELEMENT_ARRAY_BUFFER, 3*sizeof(GLuint), indices, GL_STATIC_DRAW);
......
...@@ -36,7 +36,7 @@ namespace PAG { ...@@ -36,7 +36,7 @@ namespace PAG {
GLuint idFS = 0; // Identificador del Fragment Shader GLuint idFS = 0; // Identificador del Fragment Shader
GLuint idSP = 0; // Identificador del Shader Program GLuint idSP = 0; // Identificador del Shader Program
GLuint idVAO = 0; // Identificador del Vertex Array Object GLuint idVAO = 0; // Identificador del Vertex Array Object
GLuint idVBO = 0; // Identificador del Vertex Buffer Object (geometría si no entrelazada) GLuint idVBO = 0; // Identificador del Vertex Buffer Object
GLuint idColor = 0; // Idenfiticador del VBO de color (solo no entrelazada) GLuint idColor = 0; // Idenfiticador del VBO de color (solo no entrelazada)
GLuint idIBO = 0; // Identificador del Index Buffer Object GLuint idIBO = 0; // Identificador del Index Buffer Object
......
/** /**y
* @file ShaderException.cpp * @file ShaderException.cpp
* @author dpp00022 * @author dpp00022
* *
...@@ -12,23 +12,24 @@ ...@@ -12,23 +12,24 @@
#include <utility> #include <utility>
/** /**
* Constructor parametrizado de la clase * Constructor parametrizado de la clase.
* @param type Tipo de shader que ha causado el error * @param type Tipo de shader que ha causado el error (*)
* @param creating Si el error ha ocurrido durante la creación o no * @param creating Si el error ha ocurrido durante la creación o no
* @param log Descripción del error * @param log Descripción del error
* @note (*) Pasar en type constantes de OpenGL si es Vertex o Fragment Shader
*/ */
ShaderException::ShaderException(int shaderType, TipoError errorType, std::string log): ShaderException::ShaderException(int shaderType, TipoError errorType, std::string log):
shaderType(shaderType), errorType(errorType), log(std::move(log)) {} shaderType(shaderType), errorType(errorType), log(std::move(log)) {}
/** /**
* Constructor copia de la clase * Constructor copia de la clase.
* @param other Excepción que se desea copiar * @param other Excepción que se desea copiar
*/ */
ShaderException::ShaderException(ShaderException &other): ShaderException::ShaderException(ShaderException &other):
shaderType(other.shaderType), errorType(other.errorType), log(other.log) {} shaderType(other.shaderType), errorType(other.errorType), log(other.log) {}
/** /**
* Operador copia de la clase * Operador copia de la clase.
* @param other Excepción que se desea copiar * @param other Excepción que se desea copiar
*/ */
ShaderException & ShaderException::operator=(ShaderException const &other) { ShaderException & ShaderException::operator=(ShaderException const &other) {
...@@ -39,7 +40,7 @@ ShaderException & ShaderException::operator=(ShaderException const &other) { ...@@ -39,7 +40,7 @@ ShaderException & ShaderException::operator=(ShaderException const &other) {
} }
/** /**
* Devuelve un string con el log completo * Devuelve un string con el log completo.
*/ */
std::string ShaderException::getLog() { std::string ShaderException::getLog() {
std::string aux = "Cannot "; std::string aux = "Cannot ";
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment