|
|
@@ -62,12 +62,12 @@ static const char* gl_error_to_string(GLenum error)
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
#ifdef CROWN_DEBUG
|
|
|
- #define gl_check(function)\
|
|
|
+ #define GL_CHECK(function)\
|
|
|
function;\
|
|
|
do { GLenum error; ce_assert((error = glGetError()) == GL_NO_ERROR,\
|
|
|
"OpenGL error: %s", gl_error_to_string(error)); } while (0)
|
|
|
#else
|
|
|
- #define gl_check(function)\
|
|
|
+ #define GL_CHECK(function)\
|
|
|
function;
|
|
|
#endif
|
|
|
|
|
|
@@ -137,19 +137,19 @@ void GLRenderer::init()
|
|
|
GLenum err = glewInit();
|
|
|
ce_assert(err == GLEW_OK, "Failed to initialize GLEW");
|
|
|
|
|
|
- gl_check(glGetIntegerv(GL_MAX_TEXTURE_SIZE, &m_max_texture_size));
|
|
|
- gl_check(glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, &m_max_texture_units));
|
|
|
- gl_check(glGetIntegerv(GL_MAX_ELEMENTS_INDICES, &m_max_vertex_indices));
|
|
|
- gl_check(glGetIntegerv(GL_MAX_ELEMENTS_VERTICES, &m_max_vertex_vertices));
|
|
|
+ GL_CHECK(glGetIntegerv(GL_MAX_TEXTURE_SIZE, &m_max_texture_size));
|
|
|
+ GL_CHECK(glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, &m_max_texture_units));
|
|
|
+ GL_CHECK(glGetIntegerv(GL_MAX_ELEMENTS_INDICES, &m_max_vertex_indices));
|
|
|
+ GL_CHECK(glGetIntegerv(GL_MAX_ELEMENTS_VERTICES, &m_max_vertex_vertices));
|
|
|
|
|
|
// Check for anisotropic filter support
|
|
|
if (GLEW_EXT_texture_filter_anisotropic)
|
|
|
{
|
|
|
- gl_check(glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &m_max_anisotropy));
|
|
|
+ GL_CHECK(glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &m_max_anisotropy));
|
|
|
}
|
|
|
|
|
|
- gl_check(glGetFloatv(GL_ALIASED_POINT_SIZE_RANGE, &m_min_max_point_size[0]));
|
|
|
- gl_check(glGetFloatv(GL_LINE_WIDTH_RANGE, &m_min_max_line_width[0]));
|
|
|
+ GL_CHECK(glGetFloatv(GL_ALIASED_POINT_SIZE_RANGE, &m_min_max_point_size[0]));
|
|
|
+ GL_CHECK(glGetFloatv(GL_LINE_WIDTH_RANGE, &m_min_max_line_width[0]));
|
|
|
|
|
|
Log::i("OpenGL Vendor\t: %s", glGetString(GL_VENDOR));
|
|
|
Log::i("OpenGL Renderer\t: %s", glGetString(GL_RENDERER));
|
|
|
@@ -165,33 +165,33 @@ void GLRenderer::init()
|
|
|
Log::d("Max Vertex Vertices\t: %d", m_max_vertex_vertices);
|
|
|
Log::d("Max Anisotropy\t: %f", m_max_anisotropy);
|
|
|
|
|
|
- gl_check(glDisable(GL_TEXTURE_2D));
|
|
|
+ GL_CHECK(glDisable(GL_TEXTURE_2D));
|
|
|
|
|
|
- gl_check(glDisable(GL_BLEND));
|
|
|
- gl_check(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
|
|
|
- gl_check(glBlendEquation(GL_FUNC_ADD));
|
|
|
+ GL_CHECK(glDisable(GL_BLEND));
|
|
|
+ GL_CHECK(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
|
|
|
+ GL_CHECK(glBlendEquation(GL_FUNC_ADD));
|
|
|
|
|
|
- gl_check(glFrontFace(GL_CCW));
|
|
|
- gl_check(glEnable(GL_CULL_FACE));
|
|
|
- gl_check(glShadeModel(GL_SMOOTH));
|
|
|
+ GL_CHECK(glFrontFace(GL_CCW));
|
|
|
+ GL_CHECK(glEnable(GL_CULL_FACE));
|
|
|
+ GL_CHECK(glShadeModel(GL_SMOOTH));
|
|
|
|
|
|
// Set the default framebuffer clear color
|
|
|
- gl_check(glClearColor(0.5f, 0.5f, 0.5f, 0.5f));
|
|
|
+ GL_CHECK(glClearColor(0.5f, 0.5f, 0.5f, 0.5f));
|
|
|
|
|
|
// Enable depth test
|
|
|
- gl_check(glEnable(GL_DEPTH_TEST));
|
|
|
- gl_check(glDepthFunc(GL_LEQUAL));
|
|
|
- gl_check(glClearDepth(1.0));
|
|
|
+ GL_CHECK(glEnable(GL_DEPTH_TEST));
|
|
|
+ GL_CHECK(glDepthFunc(GL_LEQUAL));
|
|
|
+ GL_CHECK(glClearDepth(1.0));
|
|
|
|
|
|
// Enable scissor test
|
|
|
- gl_check(glEnable(GL_SCISSOR_TEST));
|
|
|
+ GL_CHECK(glEnable(GL_SCISSOR_TEST));
|
|
|
|
|
|
// Disable dithering
|
|
|
- gl_check(glDisable(GL_DITHER));
|
|
|
+ GL_CHECK(glDisable(GL_DITHER));
|
|
|
|
|
|
// Point sprites enabled by default
|
|
|
- gl_check(glEnable(GL_POINT_SPRITE));
|
|
|
- gl_check(glTexEnvi(GL_POINT_SPRITE, GL_COORD_REPLACE, GL_TRUE));
|
|
|
+ GL_CHECK(glEnable(GL_POINT_SPRITE));
|
|
|
+ GL_CHECK(glTexEnvi(GL_POINT_SPRITE, GL_COORD_REPLACE, GL_TRUE));
|
|
|
|
|
|
Log::i("OpenGL Renderer initialized.");
|
|
|
|
|
|
@@ -213,10 +213,10 @@ VertexBufferId GLRenderer::create_vertex_buffer(size_t count, VertexFormat forma
|
|
|
|
|
|
VertexBuffer& buffer = m_vertex_buffers[id.index];
|
|
|
|
|
|
- gl_check(glGenBuffers(1, &buffer.gl_object));
|
|
|
+ GL_CHECK(glGenBuffers(1, &buffer.gl_object));
|
|
|
|
|
|
- gl_check(glBindBuffer(GL_ARRAY_BUFFER, buffer.gl_object));
|
|
|
- gl_check(glBufferData(GL_ARRAY_BUFFER, count * Vertex::bytes_per_vertex(format), vertices, GL_STATIC_DRAW));
|
|
|
+ GL_CHECK(glBindBuffer(GL_ARRAY_BUFFER, buffer.gl_object));
|
|
|
+ GL_CHECK(glBufferData(GL_ARRAY_BUFFER, count * Vertex::bytes_per_vertex(format), vertices, GL_STATIC_DRAW));
|
|
|
|
|
|
buffer.count = count;
|
|
|
buffer.format = format;
|
|
|
@@ -231,10 +231,10 @@ VertexBufferId GLRenderer::create_dynamic_vertex_buffer(size_t count, VertexForm
|
|
|
|
|
|
VertexBuffer& buffer = m_vertex_buffers[id.index];
|
|
|
|
|
|
- gl_check(glGenBuffers(1, &buffer.gl_object));
|
|
|
+ GL_CHECK(glGenBuffers(1, &buffer.gl_object));
|
|
|
|
|
|
- gl_check(glBindBuffer(GL_ARRAY_BUFFER, buffer.gl_object));
|
|
|
- gl_check(glBufferData(GL_ARRAY_BUFFER, count * Vertex::bytes_per_vertex(format), vertices, GL_STREAM_DRAW));
|
|
|
+ GL_CHECK(glBindBuffer(GL_ARRAY_BUFFER, buffer.gl_object));
|
|
|
+ GL_CHECK(glBufferData(GL_ARRAY_BUFFER, count * Vertex::bytes_per_vertex(format), vertices, GL_STREAM_DRAW));
|
|
|
|
|
|
buffer.count = count;
|
|
|
buffer.format = format;
|
|
|
@@ -249,8 +249,8 @@ void GLRenderer::update_vertex_buffer(VertexBufferId id, size_t offset, size_t c
|
|
|
|
|
|
VertexBuffer& buffer = m_vertex_buffers[id.index];
|
|
|
|
|
|
- gl_check(glBindBuffer(GL_ARRAY_BUFFER, buffer.gl_object));
|
|
|
- gl_check(glBufferSubData(GL_ARRAY_BUFFER, offset * Vertex::bytes_per_vertex(buffer.format),
|
|
|
+ GL_CHECK(glBindBuffer(GL_ARRAY_BUFFER, buffer.gl_object));
|
|
|
+ GL_CHECK(glBufferSubData(GL_ARRAY_BUFFER, offset * Vertex::bytes_per_vertex(buffer.format),
|
|
|
count * Vertex::bytes_per_vertex(buffer.format), vertices));
|
|
|
}
|
|
|
|
|
|
@@ -261,7 +261,7 @@ void GLRenderer::destroy_vertex_buffer(VertexBufferId id)
|
|
|
|
|
|
VertexBuffer& buffer = m_vertex_buffers[id.index];
|
|
|
|
|
|
- gl_check(glDeleteBuffers(1, &buffer.gl_object));
|
|
|
+ GL_CHECK(glDeleteBuffers(1, &buffer.gl_object));
|
|
|
|
|
|
m_vertex_buffers_id_table.destroy(id);
|
|
|
}
|
|
|
@@ -273,10 +273,10 @@ IndexBufferId GLRenderer::create_index_buffer(size_t count, const void* indices)
|
|
|
|
|
|
IndexBuffer& buffer = m_index_buffers[id.index];
|
|
|
|
|
|
- gl_check(glGenBuffers(1, &buffer.gl_object));
|
|
|
+ GL_CHECK(glGenBuffers(1, &buffer.gl_object));
|
|
|
|
|
|
- gl_check(glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, buffer.gl_object));
|
|
|
- gl_check(glBufferData(GL_ELEMENT_ARRAY_BUFFER, count * sizeof(GLushort), indices, GL_STATIC_DRAW));
|
|
|
+ GL_CHECK(glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, buffer.gl_object));
|
|
|
+ GL_CHECK(glBufferData(GL_ELEMENT_ARRAY_BUFFER, count * sizeof(GLushort), indices, GL_STATIC_DRAW));
|
|
|
|
|
|
buffer.index_count = count;
|
|
|
|
|
|
@@ -290,7 +290,7 @@ void GLRenderer::destroy_index_buffer(IndexBufferId id)
|
|
|
|
|
|
IndexBuffer& buffer = m_index_buffers[id.index];
|
|
|
|
|
|
- gl_check(glDeleteBuffers(1, &buffer.gl_object));
|
|
|
+ GL_CHECK(glDeleteBuffers(1, &buffer.gl_object));
|
|
|
|
|
|
m_index_buffers_id_table.destroy(id);
|
|
|
}
|
|
|
@@ -302,14 +302,14 @@ TextureId GLRenderer::create_texture(uint32_t width, uint32_t height, PixelForma
|
|
|
|
|
|
Texture& gl_texture = m_textures[id.index];
|
|
|
|
|
|
- gl_check(glGenTextures(1, &gl_texture.gl_object));
|
|
|
+ GL_CHECK(glGenTextures(1, &gl_texture.gl_object));
|
|
|
|
|
|
- gl_check(glBindTexture(GL_TEXTURE_2D, gl_texture.gl_object));
|
|
|
+ GL_CHECK(glBindTexture(GL_TEXTURE_2D, gl_texture.gl_object));
|
|
|
|
|
|
- gl_check(glTexParameteri(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, GL_TRUE));
|
|
|
+ GL_CHECK(glTexParameteri(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, GL_TRUE));
|
|
|
|
|
|
// FIXME
|
|
|
- gl_check(glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0,
|
|
|
+ GL_CHECK(glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0,
|
|
|
GL::pixel_format(format), GL_UNSIGNED_BYTE, data));
|
|
|
|
|
|
gl_texture.format = format;
|
|
|
@@ -324,9 +324,9 @@ void GLRenderer::update_texture(TextureId id, uint32_t x, uint32_t y, uint32_t w
|
|
|
|
|
|
Texture& gl_texture = m_textures[id.index];
|
|
|
|
|
|
- gl_check(glBindTexture(GL_TEXTURE_2D, gl_texture.gl_object));
|
|
|
+ GL_CHECK(glBindTexture(GL_TEXTURE_2D, gl_texture.gl_object));
|
|
|
|
|
|
- gl_check(glTexSubImage2D(GL_TEXTURE_2D, 0, x, y, width, height, GL::pixel_format(gl_texture.format),
|
|
|
+ GL_CHECK(glTexSubImage2D(GL_TEXTURE_2D, 0, x, y, width, height, GL::pixel_format(gl_texture.format),
|
|
|
GL_UNSIGNED_BYTE, data));
|
|
|
}
|
|
|
|
|
|
@@ -337,7 +337,7 @@ void GLRenderer::destroy_texture(TextureId id)
|
|
|
|
|
|
Texture& gl_texture = m_textures[id.index];
|
|
|
|
|
|
- gl_check(glDeleteTextures(1, &gl_texture.gl_object));
|
|
|
+ GL_CHECK(glDeleteTextures(1, &gl_texture.gl_object));
|
|
|
}
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
@@ -349,20 +349,20 @@ VertexShaderId GLRenderer::create_vertex_shader(const char* program)
|
|
|
|
|
|
VertexShader& gl_shader = m_vertex_shaders[id.index];
|
|
|
|
|
|
- gl_shader.gl_object = gl_check(glCreateShader(GL_VERTEX_SHADER));
|
|
|
+ gl_shader.gl_object = GL_CHECK(glCreateShader(GL_VERTEX_SHADER));
|
|
|
|
|
|
- gl_check(glShaderSource(gl_shader.gl_object, 1, &program, NULL));
|
|
|
+ GL_CHECK(glShaderSource(gl_shader.gl_object, 1, &program, NULL));
|
|
|
|
|
|
- gl_check(glCompileShader(gl_shader.gl_object));
|
|
|
+ GL_CHECK(glCompileShader(gl_shader.gl_object));
|
|
|
|
|
|
GLint success;
|
|
|
- gl_check(glGetShaderiv(gl_shader.gl_object, GL_COMPILE_STATUS, &success));
|
|
|
+ GL_CHECK(glGetShaderiv(gl_shader.gl_object, GL_COMPILE_STATUS, &success));
|
|
|
|
|
|
if (!success)
|
|
|
{
|
|
|
GLchar info_log[256];
|
|
|
|
|
|
- gl_check(glGetShaderInfoLog(gl_shader.gl_object, 256, NULL, info_log));
|
|
|
+ GL_CHECK(glGetShaderInfoLog(gl_shader.gl_object, 256, NULL, info_log));
|
|
|
|
|
|
Log::e("Vertex shader compilation failed.");
|
|
|
Log::e("Log: %s", info_log);
|
|
|
@@ -379,7 +379,7 @@ void GLRenderer::destroy_vertex_shader(VertexShaderId id)
|
|
|
|
|
|
VertexShader& gl_shader = m_vertex_shaders[id.index];
|
|
|
|
|
|
- gl_check(glDeleteShader(gl_shader.gl_object));
|
|
|
+ GL_CHECK(glDeleteShader(gl_shader.gl_object));
|
|
|
}
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
@@ -391,20 +391,20 @@ PixelShaderId GLRenderer::create_pixel_shader(const char* program)
|
|
|
|
|
|
PixelShader& gl_shader = m_pixel_shaders[id.index];
|
|
|
|
|
|
- gl_shader.gl_object = gl_check(glCreateShader(GL_FRAGMENT_SHADER));
|
|
|
+ gl_shader.gl_object = GL_CHECK(glCreateShader(GL_FRAGMENT_SHADER));
|
|
|
|
|
|
- gl_check(glShaderSource(gl_shader.gl_object, 1, &program, NULL));
|
|
|
+ GL_CHECK(glShaderSource(gl_shader.gl_object, 1, &program, NULL));
|
|
|
|
|
|
- gl_check(glCompileShader(gl_shader.gl_object));
|
|
|
+ GL_CHECK(glCompileShader(gl_shader.gl_object));
|
|
|
|
|
|
GLint success;
|
|
|
- gl_check(glGetShaderiv(gl_shader.gl_object, GL_COMPILE_STATUS, &success));
|
|
|
+ GL_CHECK(glGetShaderiv(gl_shader.gl_object, GL_COMPILE_STATUS, &success));
|
|
|
|
|
|
if (!success)
|
|
|
{
|
|
|
GLchar info_log[256];
|
|
|
|
|
|
- gl_check(glGetShaderInfoLog(gl_shader.gl_object, 256, NULL, info_log));
|
|
|
+ GL_CHECK(glGetShaderInfoLog(gl_shader.gl_object, 256, NULL, info_log));
|
|
|
|
|
|
Log::e("Pixel shader compilation failed.");
|
|
|
Log::e("Log: %s", info_log);
|
|
|
@@ -421,7 +421,7 @@ void GLRenderer::destroy_pixel_shader(PixelShaderId id)
|
|
|
|
|
|
PixelShader& gl_shader = m_pixel_shaders[id.index];
|
|
|
|
|
|
- gl_check(glDeleteShader(gl_shader.gl_object));
|
|
|
+ GL_CHECK(glDeleteShader(gl_shader.gl_object));
|
|
|
}
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
@@ -434,24 +434,24 @@ GPUProgramId GLRenderer::create_gpu_program(VertexShaderId vs, PixelShaderId ps)
|
|
|
|
|
|
GPUProgram& gl_program = m_gpu_programs[id.index];
|
|
|
|
|
|
- gl_program.gl_object = gl_check(glCreateProgram());
|
|
|
+ gl_program.gl_object = GL_CHECK(glCreateProgram());
|
|
|
|
|
|
- gl_check(glAttachShader(gl_program.gl_object, m_vertex_shaders[id.index].gl_object));
|
|
|
- gl_check(glAttachShader(gl_program.gl_object, m_pixel_shaders[id.index].gl_object));
|
|
|
+ GL_CHECK(glAttachShader(gl_program.gl_object, m_vertex_shaders[id.index].gl_object));
|
|
|
+ GL_CHECK(glAttachShader(gl_program.gl_object, m_pixel_shaders[id.index].gl_object));
|
|
|
|
|
|
- gl_check(glBindAttribLocation(gl_program.gl_object, SA_VERTEX, "vertex"));
|
|
|
- gl_check(glBindAttribLocation(gl_program.gl_object, SA_COORDS, "coords"));
|
|
|
- gl_check(glBindAttribLocation(gl_program.gl_object, SA_NORMAL, "normal"));
|
|
|
+ GL_CHECK(glBindAttribLocation(gl_program.gl_object, SA_VERTEX, "vertex"));
|
|
|
+ GL_CHECK(glBindAttribLocation(gl_program.gl_object, SA_COORDS, "coords"));
|
|
|
+ GL_CHECK(glBindAttribLocation(gl_program.gl_object, SA_NORMAL, "normal"));
|
|
|
|
|
|
- gl_check(glLinkProgram(gl_program.gl_object));
|
|
|
+ GL_CHECK(glLinkProgram(gl_program.gl_object));
|
|
|
|
|
|
GLint success;
|
|
|
- gl_check(glGetProgramiv(gl_program.gl_object, GL_LINK_STATUS, &success));
|
|
|
+ GL_CHECK(glGetProgramiv(gl_program.gl_object, GL_LINK_STATUS, &success));
|
|
|
|
|
|
if (!success)
|
|
|
{
|
|
|
GLchar info_log[256];
|
|
|
- gl_check(glGetProgramInfoLog(gl_program.gl_object, 256, NULL, info_log));
|
|
|
+ GL_CHECK(glGetProgramInfoLog(gl_program.gl_object, 256, NULL, info_log));
|
|
|
Log::e("GPU program compilation failed.\n");
|
|
|
Log::e("Log: %s", info_log);
|
|
|
}
|
|
|
@@ -466,7 +466,7 @@ void GLRenderer::destroy_gpu_program(GPUProgramId id)
|
|
|
|
|
|
GPUProgram& gl_program = m_gpu_programs[id.index];
|
|
|
|
|
|
- gl_check(glDeleteProgram(gl_program.gl_object));
|
|
|
+ GL_CHECK(glDeleteProgram(gl_program.gl_object));
|
|
|
}
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
@@ -476,7 +476,7 @@ void GLRenderer::set_gpu_program_bool_uniform(GPUProgramId id, const char* name,
|
|
|
|
|
|
const GLint uniform = find_gpu_program_uniform(m_gpu_programs[id.index].gl_object, name);
|
|
|
|
|
|
- gl_check(glUniform1i(uniform, (GLint) value));
|
|
|
+ GL_CHECK(glUniform1i(uniform, (GLint) value));
|
|
|
}
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
@@ -486,7 +486,7 @@ void GLRenderer::set_gpu_program_int_uniform(GPUProgramId id, const char* name,
|
|
|
|
|
|
const GLint uniform = find_gpu_program_uniform(m_gpu_programs[id.index].gl_object, name);
|
|
|
|
|
|
- gl_check(glUniform1i(uniform, (GLint) value));
|
|
|
+ GL_CHECK(glUniform1i(uniform, (GLint) value));
|
|
|
}
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
@@ -496,7 +496,7 @@ void GLRenderer::set_gpu_program_vec2_uniform(GPUProgramId id, const char* name,
|
|
|
|
|
|
const GLint uniform = find_gpu_program_uniform(m_gpu_programs[id.index].gl_object, name);
|
|
|
|
|
|
- gl_check(glUniform2fv(uniform, 1, value.to_float_ptr()));
|
|
|
+ GL_CHECK(glUniform2fv(uniform, 1, value.to_float_ptr()));
|
|
|
}
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
@@ -506,7 +506,7 @@ void GLRenderer::set_gpu_program_vec3_uniform(GPUProgramId id, const char* name,
|
|
|
|
|
|
const GLint uniform = find_gpu_program_uniform(m_gpu_programs[id.index].gl_object, name);
|
|
|
|
|
|
- gl_check(glUniform3fv(uniform, 1, value.to_float_ptr()));
|
|
|
+ GL_CHECK(glUniform3fv(uniform, 1, value.to_float_ptr()));
|
|
|
}
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
@@ -516,7 +516,7 @@ void GLRenderer::set_gpu_program_vec4_uniform(GPUProgramId id, const char* name,
|
|
|
|
|
|
const GLint uniform = find_gpu_program_uniform(m_gpu_programs[id.index].gl_object, name);
|
|
|
|
|
|
- gl_check(glUniform4fv(uniform, 1, value.to_float_ptr()));
|
|
|
+ GL_CHECK(glUniform4fv(uniform, 1, value.to_float_ptr()));
|
|
|
}
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
@@ -526,7 +526,7 @@ void GLRenderer::set_gpu_porgram_mat3_uniform(GPUProgramId id, const char* name,
|
|
|
|
|
|
const GLint uniform = find_gpu_program_uniform(m_gpu_programs[id.index].gl_object, name);
|
|
|
|
|
|
- gl_check(glUniformMatrix3fv(uniform, 1, GL_FALSE, value.to_float_ptr()));
|
|
|
+ GL_CHECK(glUniformMatrix3fv(uniform, 1, GL_FALSE, value.to_float_ptr()));
|
|
|
}
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
@@ -536,7 +536,7 @@ void GLRenderer::set_gpu_program_mat4_uniform(GPUProgramId id, const char* name,
|
|
|
|
|
|
const GLint uniform = find_gpu_program_uniform(m_gpu_programs[id.index].gl_object, name);
|
|
|
|
|
|
- gl_check(glUniformMatrix4fv(uniform, 1, GL_FALSE, value.to_float_ptr()));
|
|
|
+ GL_CHECK(glUniformMatrix4fv(uniform, 1, GL_FALSE, value.to_float_ptr()));
|
|
|
}
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
@@ -546,7 +546,7 @@ void GLRenderer::set_gpu_program_sampler_uniform(GPUProgramId id, const char* na
|
|
|
|
|
|
const GLint uniform = find_gpu_program_uniform(m_gpu_programs[id.index].gl_object, name);
|
|
|
|
|
|
- gl_check(glUniform1i(uniform, (GLint) value));
|
|
|
+ GL_CHECK(glUniform1i(uniform, (GLint) value));
|
|
|
}
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
@@ -556,7 +556,7 @@ void GLRenderer::bind_gpu_program(GPUProgramId id) const
|
|
|
|
|
|
const GPUProgram& gl_program = m_gpu_programs[id.index];
|
|
|
|
|
|
- gl_check(glUseProgram(gl_program.gl_object));
|
|
|
+ GL_CHECK(glUseProgram(gl_program.gl_object));
|
|
|
}
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
@@ -568,17 +568,17 @@ void GLRenderer::bind_gpu_program(GPUProgramId id) const
|
|
|
|
|
|
// if (GLEW_EXT_framebuffer_object)
|
|
|
// {
|
|
|
-// gl_check(glGenFramebuffersEXT(1, &buffer.gl_check(gl_frame_buffer));
|
|
|
-// gl_check(glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, buffer.gl_check(gl_frame_buffer));
|
|
|
+// GL_CHECK(glGenFramebuffersEXT(1, &buffer.GL_CHECK(gl_frame_buffer));
|
|
|
+// GL_CHECK(glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, buffer.GL_CHECK(gl_frame_buffer));
|
|
|
|
|
|
-// gl_check(glGenRenderbuffersEXT(1, &buffer.gl_check(gl_render_buffer));
|
|
|
-// gl_check(glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, buffer.gl_check(gl_render_buffer));
|
|
|
+// GL_CHECK(glGenRenderbuffersEXT(1, &buffer.GL_CHECK(gl_render_buffer));
|
|
|
+// GL_CHECK(glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, buffer.GL_CHECK(gl_render_buffer));
|
|
|
|
|
|
-// gl_check(glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_RGBA8, width, height));
|
|
|
+// GL_CHECK(glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_RGBA8, width, height));
|
|
|
|
|
|
-// gl_check(glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_RENDERBUFFER_EXT, buffer.gl_check(gl_render_buffer));
|
|
|
+// GL_CHECK(glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_RENDERBUFFER_EXT, buffer.GL_CHECK(gl_render_buffer));
|
|
|
|
|
|
-// gl_check(glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0));
|
|
|
+// GL_CHECK(glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0));
|
|
|
// }
|
|
|
|
|
|
// return id;
|
|
|
@@ -591,8 +591,8 @@ void GLRenderer::bind_gpu_program(GPUProgramId id) const
|
|
|
|
|
|
// if (GLEW_EXT_framebuffer_object)
|
|
|
// {
|
|
|
-// gl_check(glDeleteFramebuffersEXT(1, &buffer.gl_check(gl_frame_buffer));
|
|
|
-// gl_check(glDeleteRenderbuffersEXT(1, &buffer.gl_check(gl_render_buffer));
|
|
|
+// GL_CHECK(glDeleteFramebuffersEXT(1, &buffer.GL_CHECK(gl_frame_buffer));
|
|
|
+// GL_CHECK(glDeleteRenderbuffersEXT(1, &buffer.GL_CHECK(gl_render_buffer));
|
|
|
// }
|
|
|
|
|
|
// m_render_buffers_id_table.destroy(id);
|
|
|
@@ -601,7 +601,7 @@ void GLRenderer::bind_gpu_program(GPUProgramId id) const
|
|
|
//-----------------------------------------------------------------------------
|
|
|
void GLRenderer::set_clear_color(const Color4& color)
|
|
|
{
|
|
|
- gl_check(glClearColor(color.r, color.g, color.b, color.a));
|
|
|
+ GL_CHECK(glClearColor(color.r, color.g, color.b, color.a));
|
|
|
}
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
@@ -623,8 +623,8 @@ void GLRenderer::bind_texture(uint32_t unit, TextureId texture)
|
|
|
m_texture_unit_target[unit] = GL_TEXTURE_2D;
|
|
|
m_texture_unit[unit] = m_textures[texture.index].gl_object;
|
|
|
|
|
|
- gl_check(glEnable(m_texture_unit_target[unit]));
|
|
|
- gl_check(glBindTexture(m_texture_unit_target[unit], m_texture_unit[unit]));
|
|
|
+ GL_CHECK(glEnable(m_texture_unit_target[unit]));
|
|
|
+ GL_CHECK(glBindTexture(m_texture_unit_target[unit], m_texture_unit[unit]));
|
|
|
}
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
@@ -635,11 +635,11 @@ void GLRenderer::set_texturing(uint32_t unit, bool texturing)
|
|
|
|
|
|
if (texturing)
|
|
|
{
|
|
|
- gl_check(glEnable(m_texture_unit_target[unit]));
|
|
|
+ GL_CHECK(glEnable(m_texture_unit_target[unit]));
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- gl_check(glDisable(m_texture_unit_target[unit]));
|
|
|
+ GL_CHECK(glDisable(m_texture_unit_target[unit]));
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -648,8 +648,8 @@ void GLRenderer::set_texture_wrap(uint32_t unit, TextureWrap wrap)
|
|
|
{
|
|
|
GLenum gl_wrap = GL::texture_wrap(wrap);
|
|
|
|
|
|
- gl_check(glTexParameteri(m_texture_unit_target[unit], GL_TEXTURE_WRAP_S, gl_wrap));
|
|
|
- gl_check(glTexParameteri(m_texture_unit_target[unit], GL_TEXTURE_WRAP_T, gl_wrap));
|
|
|
+ GL_CHECK(glTexParameteri(m_texture_unit_target[unit], GL_TEXTURE_WRAP_S, gl_wrap));
|
|
|
+ GL_CHECK(glTexParameteri(m_texture_unit_target[unit], GL_TEXTURE_WRAP_T, gl_wrap));
|
|
|
}
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
@@ -663,8 +663,8 @@ void GLRenderer::set_texture_filter(uint32_t unit, TextureFilter filter)
|
|
|
|
|
|
GL::texture_filter(filter, min_filter, mag_filter);
|
|
|
|
|
|
- gl_check(glTexParameteri(m_texture_unit_target[unit], GL_TEXTURE_MIN_FILTER, min_filter));
|
|
|
- gl_check(glTexParameteri(m_texture_unit_target[unit], GL_TEXTURE_MAG_FILTER, mag_filter));
|
|
|
+ GL_CHECK(glTexParameteri(m_texture_unit_target[unit], GL_TEXTURE_MIN_FILTER, min_filter));
|
|
|
+ GL_CHECK(glTexParameteri(m_texture_unit_target[unit], GL_TEXTURE_MAG_FILTER, mag_filter));
|
|
|
}
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
@@ -672,11 +672,11 @@ void GLRenderer::set_backface_culling(bool culling)
|
|
|
{
|
|
|
if (culling)
|
|
|
{
|
|
|
- gl_check(glEnable(GL_CULL_FACE));
|
|
|
+ GL_CHECK(glEnable(GL_CULL_FACE));
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- gl_check(glDisable(GL_CULL_FACE));
|
|
|
+ GL_CHECK(glDisable(GL_CULL_FACE));
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -685,18 +685,18 @@ void GLRenderer::set_depth_test(bool test)
|
|
|
{
|
|
|
if (test)
|
|
|
{
|
|
|
- gl_check(glEnable(GL_DEPTH_TEST));
|
|
|
+ GL_CHECK(glEnable(GL_DEPTH_TEST));
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- gl_check(glDisable(GL_DEPTH_TEST));
|
|
|
+ GL_CHECK(glDisable(GL_DEPTH_TEST));
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
void GLRenderer::set_depth_write(bool write)
|
|
|
{
|
|
|
- gl_check(glDepthMask((GLboolean) write));
|
|
|
+ GL_CHECK(glDepthMask((GLboolean) write));
|
|
|
}
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
@@ -704,7 +704,7 @@ void GLRenderer::set_depth_func(CompareFunction func)
|
|
|
{
|
|
|
GLenum gl_func = GL::compare_function(func);
|
|
|
|
|
|
- gl_check(glDepthFunc(gl_func));
|
|
|
+ GL_CHECK(glDepthFunc(gl_func));
|
|
|
}
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
@@ -712,11 +712,11 @@ void GLRenderer::set_blending(bool blending)
|
|
|
{
|
|
|
if (blending)
|
|
|
{
|
|
|
- gl_check(glEnable(GL_BLEND));
|
|
|
+ GL_CHECK(glEnable(GL_BLEND));
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- gl_check(glDisable(GL_BLEND));
|
|
|
+ GL_CHECK(glDisable(GL_BLEND));
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -725,14 +725,14 @@ void GLRenderer::set_blending_params(BlendEquation equation, BlendFunction src,
|
|
|
{
|
|
|
GLenum gl_equation = GL::blend_equation(equation);
|
|
|
|
|
|
- gl_check(glBlendEquation(gl_equation));
|
|
|
+ GL_CHECK(glBlendEquation(gl_equation));
|
|
|
|
|
|
GLenum gl_src_factor = GL::blend_function(src);
|
|
|
GLenum gl_dst_factor = GL::blend_function(dst);
|
|
|
|
|
|
- gl_check(glBlendFunc(gl_src_factor, gl_dst_factor));
|
|
|
+ GL_CHECK(glBlendFunc(gl_src_factor, gl_dst_factor));
|
|
|
|
|
|
- gl_check(glBlendColor(color.r, color.g, color.b, color.a));
|
|
|
+ GL_CHECK(glBlendColor(color.r, color.g, color.b, color.a));
|
|
|
}
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
@@ -740,11 +740,11 @@ void GLRenderer::set_color_write(bool write)
|
|
|
{
|
|
|
if (write)
|
|
|
{
|
|
|
- gl_check(glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE));
|
|
|
+ GL_CHECK(glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE));
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- gl_check(glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE));
|
|
|
+ GL_CHECK(glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE));
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -753,7 +753,7 @@ void GLRenderer::set_front_face(FrontFace face)
|
|
|
{
|
|
|
const GLenum gl_face = (face == FF_CCW) ? GL_CCW : GL_CW;
|
|
|
|
|
|
- gl_check(glFrontFace(gl_face));
|
|
|
+ GL_CHECK(glFrontFace(gl_face));
|
|
|
}
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
@@ -764,7 +764,7 @@ void GLRenderer::set_viewport_params(int32_t x, int32_t y, int32_t width, int32_
|
|
|
m_viewport[2] = width;
|
|
|
m_viewport[3] = height;
|
|
|
|
|
|
- gl_check(glViewport(x, y, width, height));
|
|
|
+ GL_CHECK(glViewport(x, y, width, height));
|
|
|
}
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
@@ -781,11 +781,11 @@ void GLRenderer::set_scissor(bool scissor)
|
|
|
{
|
|
|
if (scissor)
|
|
|
{
|
|
|
- gl_check(glEnable(GL_SCISSOR_TEST));
|
|
|
+ GL_CHECK(glEnable(GL_SCISSOR_TEST));
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- gl_check(glDisable(GL_SCISSOR_TEST));
|
|
|
+ GL_CHECK(glDisable(GL_SCISSOR_TEST));
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -797,7 +797,7 @@ void GLRenderer::set_scissor_params(int32_t x, int32_t y, int32_t width, int32_t
|
|
|
m_scissor[2] = width;
|
|
|
m_scissor[3] = height;
|
|
|
|
|
|
- gl_check(glScissor(x, y, width, height));
|
|
|
+ GL_CHECK(glScissor(x, y, width, height));
|
|
|
}
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
@@ -813,7 +813,7 @@ void GLRenderer::get_scissor_params(int32_t& x, int32_t& y, int32_t& width, int3
|
|
|
void GLRenderer::frame()
|
|
|
{
|
|
|
// Clear frame/depth buffer
|
|
|
- gl_check(glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT));
|
|
|
+ GL_CHECK(glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT));
|
|
|
|
|
|
// Bind the default gpu program
|
|
|
bind_gpu_program(m_default_gpu_program);
|
|
|
@@ -821,7 +821,7 @@ void GLRenderer::frame()
|
|
|
set_gpu_program_mat4_uniform(m_default_gpu_program, "mvp_matrix", m_model_view_projection_matrix);
|
|
|
set_gpu_program_vec3_uniform(m_default_gpu_program, "color", Vec3(0, 1, 0));
|
|
|
|
|
|
- gl_check(glFinish());
|
|
|
+ GL_CHECK(glFinish());
|
|
|
|
|
|
m_context.swap_buffers();
|
|
|
}
|
|
|
@@ -865,38 +865,38 @@ void GLRenderer::bind_vertex_buffer(VertexBufferId vb) const
|
|
|
|
|
|
const VertexBuffer& vertex_buffer = m_vertex_buffers[vb.index];
|
|
|
|
|
|
- gl_check(glBindBuffer(GL_ARRAY_BUFFER, vertex_buffer.gl_object));
|
|
|
+ GL_CHECK(glBindBuffer(GL_ARRAY_BUFFER, vertex_buffer.gl_object));
|
|
|
|
|
|
switch (vertex_buffer.format)
|
|
|
{
|
|
|
case VF_XY_FLOAT_32:
|
|
|
{
|
|
|
- gl_check(glEnableVertexAttribArray(SA_VERTEX));
|
|
|
- gl_check(glVertexAttribPointer(SA_VERTEX, 2, GL_FLOAT, GL_FALSE, 0, 0));
|
|
|
+ GL_CHECK(glEnableVertexAttribArray(SA_VERTEX));
|
|
|
+ GL_CHECK(glVertexAttribPointer(SA_VERTEX, 2, GL_FLOAT, GL_FALSE, 0, 0));
|
|
|
break;
|
|
|
}
|
|
|
case VF_XYZ_FLOAT_32:
|
|
|
{
|
|
|
- gl_check(glEnableVertexAttribArray(SA_VERTEX));
|
|
|
- gl_check(glVertexAttribPointer(SA_VERTEX, 3, GL_FLOAT, GL_FALSE, 0, 0));
|
|
|
+ GL_CHECK(glEnableVertexAttribArray(SA_VERTEX));
|
|
|
+ GL_CHECK(glVertexAttribPointer(SA_VERTEX, 3, GL_FLOAT, GL_FALSE, 0, 0));
|
|
|
break;
|
|
|
}
|
|
|
case VF_UV_FLOAT_32:
|
|
|
{
|
|
|
- gl_check(glEnableVertexAttribArray(SA_COORDS));
|
|
|
- gl_check(glVertexAttribPointer(SA_COORDS, 2, GL_FLOAT, GL_FALSE, 0, 0));
|
|
|
+ GL_CHECK(glEnableVertexAttribArray(SA_COORDS));
|
|
|
+ GL_CHECK(glVertexAttribPointer(SA_COORDS, 2, GL_FLOAT, GL_FALSE, 0, 0));
|
|
|
break;
|
|
|
}
|
|
|
case VF_UVT_FLOAT_32:
|
|
|
{
|
|
|
- gl_check(glEnableVertexAttribArray(SA_COORDS));
|
|
|
- gl_check(glVertexAttribPointer(SA_COORDS, 3, GL_FLOAT, GL_FALSE, 0, 0));
|
|
|
+ GL_CHECK(glEnableVertexAttribArray(SA_COORDS));
|
|
|
+ GL_CHECK(glVertexAttribPointer(SA_COORDS, 3, GL_FLOAT, GL_FALSE, 0, 0));
|
|
|
break;
|
|
|
}
|
|
|
case VF_XYZ_NORMAL_FLOAT_32:
|
|
|
{
|
|
|
- gl_check(glEnableVertexAttribArray(SA_NORMAL));
|
|
|
- gl_check(glVertexAttribPointer(SA_NORMAL, 3, GL_FLOAT, GL_FALSE, 0, 0));
|
|
|
+ GL_CHECK(glEnableVertexAttribArray(SA_NORMAL));
|
|
|
+ GL_CHECK(glVertexAttribPointer(SA_NORMAL, 3, GL_FLOAT, GL_FALSE, 0, 0));
|
|
|
break;
|
|
|
}
|
|
|
case VF_XYZ_UV_XYZ_NORMAL_FLOAT_32:
|
|
|
@@ -918,9 +918,9 @@ void GLRenderer::draw_triangles(IndexBufferId id) const
|
|
|
|
|
|
const IndexBuffer& index_buffer = m_index_buffers[id.index];
|
|
|
|
|
|
- gl_check(glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, index_buffer.gl_object));
|
|
|
+ GL_CHECK(glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, index_buffer.gl_object));
|
|
|
|
|
|
- gl_check(glDrawElements(GL_TRIANGLES, index_buffer.index_count, GL_UNSIGNED_SHORT, 0));
|
|
|
+ GL_CHECK(glDrawElements(GL_TRIANGLES, index_buffer.index_count, GL_UNSIGNED_SHORT, 0));
|
|
|
}
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
@@ -934,19 +934,19 @@ void GLRenderer::draw_triangles(IndexBufferId id) const
|
|
|
//-----------------------------------------------------------------------------
|
|
|
void GLRenderer::draw_lines(const float* vertices, const float* colors, uint32_t count)
|
|
|
{
|
|
|
- gl_check(glBindBuffer(GL_ARRAY_BUFFER, 0));
|
|
|
- gl_check(glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0));
|
|
|
+ GL_CHECK(glBindBuffer(GL_ARRAY_BUFFER, 0));
|
|
|
+ GL_CHECK(glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0));
|
|
|
|
|
|
- gl_check(glEnableClientState(GL_VERTEX_ARRAY));
|
|
|
- gl_check(glEnableClientState(GL_COLOR_ARRAY));
|
|
|
+ GL_CHECK(glEnableClientState(GL_VERTEX_ARRAY));
|
|
|
+ GL_CHECK(glEnableClientState(GL_COLOR_ARRAY));
|
|
|
|
|
|
- gl_check(glVertexPointer(3, GL_FLOAT, 0, vertices));
|
|
|
- gl_check(glColorPointer(4, GL_FLOAT, 0, colors));
|
|
|
+ GL_CHECK(glVertexPointer(3, GL_FLOAT, 0, vertices));
|
|
|
+ GL_CHECK(glColorPointer(4, GL_FLOAT, 0, colors));
|
|
|
|
|
|
- gl_check(glDrawArrays(GL_LINES, 0, count));
|
|
|
+ GL_CHECK(glDrawArrays(GL_LINES, 0, count));
|
|
|
|
|
|
- gl_check(glDisableClientState(GL_COLOR_ARRAY));
|
|
|
- gl_check(glDisableClientState(GL_VERTEX_ARRAY));
|
|
|
+ GL_CHECK(glDisableClientState(GL_COLOR_ARRAY));
|
|
|
+ GL_CHECK(glDisableClientState(GL_VERTEX_ARRAY));
|
|
|
}
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
@@ -1007,7 +1007,7 @@ bool GLRenderer::activate_texture_unit(uint32_t unit)
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
- gl_check(glActiveTexture(GL_TEXTURE0 + unit));
|
|
|
+ GL_CHECK(glActiveTexture(GL_TEXTURE0 + unit));
|
|
|
m_active_texture_unit = unit;
|
|
|
|
|
|
return true;
|
|
|
@@ -1016,7 +1016,7 @@ bool GLRenderer::activate_texture_unit(uint32_t unit)
|
|
|
//-----------------------------------------------------------------------------
|
|
|
GLint GLRenderer::find_gpu_program_uniform(GLuint program, const char* name) const
|
|
|
{
|
|
|
- GLint uniform = gl_check(glGetUniformLocation(program, name));
|
|
|
+ GLint uniform = GL_CHECK(glGetUniformLocation(program, name));
|
|
|
|
|
|
ce_assert(uniform != -1, "Uniform does not exist");
|
|
|
|