|
|
|
|
@ -29,12 +29,13 @@ namespace lunarium
|
|
|
|
|
void GLAPIENTRY MessageCallback(GLenum source, GLenum type, GLuint id,
|
|
|
|
|
GLenum severity, GLsizei length, const GLchar* message, const void* userParam)
|
|
|
|
|
{
|
|
|
|
|
uint32_t level = LogLevel::OGL_DEBUG;
|
|
|
|
|
if (type == GL_DEBUG_TYPE_ERROR)
|
|
|
|
|
{
|
|
|
|
|
Logger::Log(LogCategory::GRAPHICS, LogLevel::ERROR, "OPENGL ERROR");
|
|
|
|
|
level = LogLevel::ERROR;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Logger::Log(LogCategory::GRAPHICS, LogLevel::OGL_DEBUG,
|
|
|
|
|
Logger::Log(LogCategory::GRAPHICS, level,
|
|
|
|
|
"%s (type: %s, source: %s, severity: %s), message: %s",
|
|
|
|
|
(type == GL_DEBUG_TYPE_ERROR ? "** GL ERROR **" : ""),
|
|
|
|
|
OglGraphics::mDebugMsgSources[source].c_str(),
|
|
|
|
|
@ -151,17 +152,14 @@ namespace lunarium
|
|
|
|
|
glBindFramebuffer(GL_FRAMEBUFFER, 0);
|
|
|
|
|
glBindTexture(GL_TEXTURE_2D, fb->Texture.GetGLTextureID());
|
|
|
|
|
|
|
|
|
|
if (fb->Texture.GetFormat() == ImageFormat::RGBA)
|
|
|
|
|
GLenum format = GL_RGBA;
|
|
|
|
|
if (fb->Texture.GetFormat() == ImageFormat::RGB)
|
|
|
|
|
{
|
|
|
|
|
glGetTexImage(GL_TEXTURE_2D, 0, GL_RGBA, GL_UNSIGNED_BYTE, (void*)fb->Buffer);
|
|
|
|
|
Logger::Log(LogCategory::GRAPHICS, LogLevel::INFO, "RGBA ID: %d", mActiveFrameBuffer);
|
|
|
|
|
}
|
|
|
|
|
else if (fb->Texture.GetFormat() == ImageFormat::RGB)
|
|
|
|
|
{
|
|
|
|
|
glGetTexImage(GL_TEXTURE_2D, 0, GL_RGB, GL_UNSIGNED_BYTE, (void*)fb->Buffer);
|
|
|
|
|
Logger::Log(LogCategory::GRAPHICS, LogLevel::INFO, "RGB ID: %d", mActiveFrameBuffer);
|
|
|
|
|
format = GL_RGB;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
glGetTexImage(GL_TEXTURE_2D, 0, format, GL_UNSIGNED_BYTE, (void*)fb->Buffer);
|
|
|
|
|
|
|
|
|
|
fb->Texture.SetData(fb->Buffer);
|
|
|
|
|
|
|
|
|
|
return &fb->Texture;
|
|
|
|
|
|