diff --git a/Data/Base.rte/Shaders/Blit8.frag b/Data/Base.rte/Shaders/Blit8.frag index ba4cd7b7a3..a1b5e05aff 100644 --- a/Data/Base.rte/Shaders/Blit8.frag +++ b/Data/Base.rte/Shaders/Blit8.frag @@ -6,9 +6,9 @@ in vec2 textureUV; out vec4 FragColor; uniform sampler2D rteTexture; -uniform sampler1D rtePalette; +uniform sampler2D rtePalette; void main() { float colorIndex = texture(rteTexture, vec2(textureUV.x, -textureUV.y)).r; - FragColor = texture(rtePalette, colorIndex); + FragColor = texture(rtePalette, vec2(colorIndex, 0.0F)); } diff --git a/Data/Base.rte/Shaders/ScreenBlit.frag b/Data/Base.rte/Shaders/ScreenBlit.frag index 30b2e1223b..ef0376a56d 100644 --- a/Data/Base.rte/Shaders/ScreenBlit.frag +++ b/Data/Base.rte/Shaders/ScreenBlit.frag @@ -20,5 +20,5 @@ void main() { vec4 guiColor = texture2DAA(rteGUITexture, textureUV); float guiSolid = step(0.00000001, guiColor.r + guiColor.g + guiColor.b); float blendRatio = max(guiColor.a, guiSolid); - FragColor = (texture2DAA(rteTexture, textureUV) * (1 - blendRatio)) + guiColor * blendRatio; + FragColor = (texture2DAA(rteTexture, textureUV) * (1.0F - blendRatio)) + guiColor * blendRatio; } diff --git a/Source/Managers/FrameMan.cpp b/Source/Managers/FrameMan.cpp index 7db89eff6a..ea89da957c 100644 --- a/Source/Managers/FrameMan.cpp +++ b/Source/Managers/FrameMan.cpp @@ -587,8 +587,8 @@ void FrameMan::SaveScreenToBitmap() { return; } - glBindTexture(GL_TEXTURE_2D, g_WindowMan.GetScreenBufferTexture()); - glGetTexImage(GL_TEXTURE_2D, 0, GL_RGB, GL_UNSIGNED_BYTE, m_ScreenDumpBuffer->line[0]); + GL_CHECK(glBindTexture(GL_TEXTURE_2D, g_WindowMan.GetScreenBufferTexture())); + GL_CHECK(glGetTexImage(GL_TEXTURE_2D, 0, GL_RGB, GL_UNSIGNED_BYTE, m_ScreenDumpBuffer->line[0])); } int FrameMan::SaveIndexedPNG(const char* fileName, BITMAP* bitmapToSave) const { diff --git a/Source/Managers/PostProcessMan.cpp b/Source/Managers/PostProcessMan.cpp index df6c0d469e..aebde2656e 100644 --- a/Source/Managers/PostProcessMan.cpp +++ b/Source/Managers/PostProcessMan.cpp @@ -77,60 +77,60 @@ int PostProcessMan::Initialize() { } void PostProcessMan::InitializeGLPointers() { - glGenTextures(1, &m_BackBuffer8); - glGenTextures(1, &m_BackBuffer32); - glGenTextures(1, &m_Palette8Texture); - glGenFramebuffers(1, &m_BlitFramebuffer); - glGenFramebuffers(1, &m_PostProcessFramebuffer); - glGenTextures(1, &m_PostProcessDepthBuffer); - glGenVertexArrays(1, &m_VertexArray); - glGenBuffers(1, &m_VertexBuffer); - - glBindVertexArray(m_VertexArray); - glBindBuffer(GL_ARRAY_BUFFER, m_VertexBuffer); - glBufferData(GL_ARRAY_BUFFER, sizeof(c_Quad), c_Quad.data(), GL_STATIC_DRAW); - glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 4 * sizeof(float), nullptr); - glEnableVertexAttribArray(0); - glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 4 * sizeof(float), (void*)(2 * sizeof(float))); - glEnableVertexAttribArray(1); - glBindVertexArray(0); + GL_CHECK(glGenTextures(1, &m_BackBuffer8)); + GL_CHECK(glGenTextures(1, &m_BackBuffer32)); + GL_CHECK(glGenTextures(1, &m_Palette8Texture)); + GL_CHECK(glGenFramebuffers(1, &m_BlitFramebuffer)); + GL_CHECK(glGenFramebuffers(1, &m_PostProcessFramebuffer)); + GL_CHECK(glGenTextures(1, &m_PostProcessDepthBuffer)); + GL_CHECK(glGenVertexArrays(1, &m_VertexArray)); + GL_CHECK(glGenBuffers(1, &m_VertexBuffer)); + + GL_CHECK(glBindVertexArray(m_VertexArray)); + GL_CHECK(glBindBuffer(GL_ARRAY_BUFFER, m_VertexBuffer)); + GL_CHECK(glBufferData(GL_ARRAY_BUFFER, sizeof(c_Quad), c_Quad.data(), GL_STATIC_DRAW)); + GL_CHECK(glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 4 * sizeof(float), nullptr)); + GL_CHECK(glEnableVertexAttribArray(0)); + GL_CHECK(glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 4 * sizeof(float), (void*)(2 * sizeof(float)))); + GL_CHECK(glEnableVertexAttribArray(1)); + GL_CHECK(glBindVertexArray(0)); } void PostProcessMan::DestroyGLPointers() { - glDeleteTextures(1, &m_BackBuffer8); - glDeleteTextures(1, &m_BackBuffer32); - glDeleteTextures(1, &m_Palette8Texture); - glDeleteFramebuffers(1, &m_BlitFramebuffer); + GL_CHECK(glDeleteTextures(1, &m_BackBuffer8)); + GL_CHECK(glDeleteTextures(1, &m_BackBuffer32)); + GL_CHECK(glDeleteTextures(1, &m_Palette8Texture)); + GL_CHECK(glDeleteFramebuffers(1, &m_BlitFramebuffer)); for (auto& bitmapTexture: m_BitmapTextures) { - glDeleteTextures(1, &bitmapTexture->m_Texture); + GL_CHECK(glDeleteTextures(1, &bitmapTexture->m_Texture)); } - glDeleteFramebuffers(1, &m_PostProcessFramebuffer); - glDeleteTextures(1, &m_PostProcessDepthBuffer); - glDeleteVertexArrays(1, &m_VertexArray); - glDeleteBuffers(1, &m_VertexBuffer); + GL_CHECK(glDeleteFramebuffers(1, &m_PostProcessFramebuffer)); + GL_CHECK(glDeleteTextures(1, &m_PostProcessDepthBuffer)); + GL_CHECK(glDeleteVertexArrays(1, &m_VertexArray)); + GL_CHECK(glDeleteBuffers(1, &m_VertexBuffer)); } void PostProcessMan::CreateGLBackBuffers() { - glBindTexture(GL_TEXTURE_2D, m_BackBuffer8); - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, g_FrameMan.GetBackBuffer8()->w, g_FrameMan.GetBackBuffer8()->h, 0, GL_RED, GL_UNSIGNED_BYTE, 0); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - glBindTexture(GL_TEXTURE_2D, m_BackBuffer32); - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, g_FrameMan.GetBackBuffer8()->w, g_FrameMan.GetBackBuffer8()->h, 0, GL_RED, GL_UNSIGNED_BYTE, 0); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - glBindTexture(GL_TEXTURE_2D, 0); - glBindTexture(GL_TEXTURE_1D, m_Palette8Texture); - glTexImage1D(GL_TEXTURE_1D, 0, GL_RGBA, c_PaletteEntriesNumber, 0, GL_RGBA, GL_UNSIGNED_INT, 0); - glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + GL_CHECK(glBindTexture(GL_TEXTURE_2D, m_BackBuffer8)); + GL_CHECK(glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, g_FrameMan.GetBackBuffer8()->w, g_FrameMan.GetBackBuffer8()->h, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0)); + GL_CHECK(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR)); + GL_CHECK(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR)); + GL_CHECK(glBindTexture(GL_TEXTURE_2D, m_BackBuffer32)); + GL_CHECK(glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, g_FrameMan.GetBackBuffer8()->w, g_FrameMan.GetBackBuffer8()->h, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0)); + GL_CHECK(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR)); + GL_CHECK(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR)); + GL_CHECK(glBindTexture(GL_TEXTURE_2D, 0)); + GL_CHECK(glBindTexture(GL_TEXTURE_2D, m_Palette8Texture)); + GL_CHECK(glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, c_PaletteEntriesNumber, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0)); + GL_CHECK(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST)); + GL_CHECK(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST)); UpdatePalette(); - glActiveTexture(GL_TEXTURE0); + GL_CHECK(glActiveTexture(GL_TEXTURE0)); m_ProjectionMatrix = std::make_unique(glm::ortho(0.0F, static_cast(g_FrameMan.GetBackBuffer8()->w), 0.0F, static_cast(g_FrameMan.GetBackBuffer8()->h), -1.0F, 1.0F)); } void PostProcessMan::UpdatePalette() { - glBindTexture(GL_TEXTURE_1D, m_Palette8Texture); + GL_CHECK(glBindTexture(GL_TEXTURE_2D, m_Palette8Texture)); std::array palette; for (int i = 0; i < c_PaletteEntriesNumber; ++i) { if (i == g_MaskColor) { @@ -139,22 +139,22 @@ void PostProcessMan::UpdatePalette() { } palette[i] = makeacol32(getr8(i), getg8(i), getb8(i), 255); } - glTexSubImage1D(GL_TEXTURE_1D, 0, 0, c_PaletteEntriesNumber, GL_RGBA, GL_UNSIGNED_BYTE, palette.data()); - glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + GL_CHECK(glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, c_PaletteEntriesNumber, 1, GL_RGBA, GL_UNSIGNED_BYTE, palette.data())); + GL_CHECK(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST)); + GL_CHECK(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST)); } void PostProcessMan::LazyInitBitmap(BITMAP* bitmap) { m_BitmapTextures.emplace_back(new GLBitmapInfo); - glGenTextures(1, &m_BitmapTextures.back()->m_Texture); + GL_CHECK(glGenTextures(1, &m_BitmapTextures.back()->m_Texture)); bitmap->extra = reinterpret_cast(m_BitmapTextures.back().get()); - glPixelStorei(GL_UNPACK_ALIGNMENT, bitmap_color_depth(bitmap) == 8 ? 1 : 4); - glActiveTexture(GL_TEXTURE0); - glBindTexture(GL_TEXTURE_2D, reinterpret_cast(bitmap->extra)->m_Texture); - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, bitmap->w, bitmap->h, 0, GL_RGBA, GL_UNSIGNED_BYTE, bitmap->line[0]); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - glGenerateMipmap(GL_TEXTURE_2D); + GL_CHECK(glPixelStorei(GL_UNPACK_ALIGNMENT, bitmap_color_depth(bitmap) == 8 ? 1 : 4)); + GL_CHECK(glActiveTexture(GL_TEXTURE0)); + GL_CHECK(glBindTexture(GL_TEXTURE_2D, reinterpret_cast(bitmap->extra)->m_Texture)); + GL_CHECK(glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, bitmap->w, bitmap->h, 0, GL_RGBA, GL_UNSIGNED_BYTE, bitmap->line[0])); + GL_CHECK(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR)); + GL_CHECK(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR)); + GL_CHECK(glGenerateMipmap(GL_TEXTURE_2D)); } void PostProcessMan::Destroy() { @@ -380,12 +380,12 @@ void PostProcessMan::PostProcess() { GL_CHECK(glActiveTexture(GL_TEXTURE0)); GL_CHECK(glBindTexture(GL_TEXTURE_2D, m_BackBuffer8)); GL_CHECK(glPixelStorei(GL_UNPACK_ALIGNMENT, 1)); - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, g_FrameMan.GetBackBuffer8()->w, g_FrameMan.GetBackBuffer8()->h, 0, GL_RED, GL_UNSIGNED_BYTE, g_FrameMan.GetBackBuffer8()->line[0]); + GL_CHECK(glTexImage2D(GL_TEXTURE_2D, 0, GL_R8, g_FrameMan.GetBackBuffer8()->w, g_FrameMan.GetBackBuffer8()->h, 0, GL_RED, GL_UNSIGNED_BYTE, g_FrameMan.GetBackBuffer8()->line[0])); GL_CHECK(glActiveTexture(GL_TEXTURE1)); - GL_CHECK(glBindTexture(GL_TEXTURE_1D, m_Palette8Texture)); + GL_CHECK(glBindTexture(GL_TEXTURE_2D, m_Palette8Texture)); GL_CHECK(glBindFramebuffer(GL_DRAW_FRAMEBUFFER, m_BlitFramebuffer)); GL_CHECK(glFramebufferTexture2D(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, m_BackBuffer32, 0)); - glViewport(0, 0, g_FrameMan.GetBackBuffer8()->w, g_FrameMan.GetBackBuffer8()->h); + GL_CHECK(glViewport(0, 0, g_FrameMan.GetBackBuffer8()->w, g_FrameMan.GetBackBuffer8()->h)); m_Blit8->Use(); m_Blit8->SetInt(m_Blit8->GetTextureUniform(), 0); int paletteUniform = m_Blit8->GetUniformLocation("rtePalette"); @@ -404,7 +404,7 @@ void PostProcessMan::PostProcess() { GL_CHECK(glBlendColor(0.5F, 0.5F, 0.5F, 0.5F)); GL_CHECK(glBindFramebuffer(GL_FRAMEBUFFER, m_PostProcessFramebuffer)); GL_CHECK(glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, m_BackBuffer32, 0)); - glViewport(0, 0, g_FrameMan.GetBackBuffer8()->w, g_FrameMan.GetBackBuffer8()->h); + GL_CHECK(glViewport(0, 0, g_FrameMan.GetBackBuffer8()->w, g_FrameMan.GetBackBuffer8()->h)); m_PostProcessShader->Use(); @@ -483,8 +483,8 @@ void PostProcessMan::DrawPostScreenEffects() { float effectPosY = 0; float effectStrength = 0; - glActiveTexture(GL_TEXTURE0); - glBindVertexArray(m_VertexArray); + GL_CHECK(glActiveTexture(GL_TEXTURE0)); + GL_CHECK(glBindVertexArray(m_VertexArray)); m_PostProcessShader->Use(); m_PostProcessShader->SetInt(m_PostProcessShader->GetTextureUniform(), 0); m_PostProcessShader->SetMatrix4f(m_PostProcessShader->GetProjectionUniform(), *m_ProjectionMatrix); @@ -505,10 +505,10 @@ void PostProcessMan::DrawPostScreenEffects() { transformMatrix = glm::rotate(transformMatrix, -postEffect.m_Angle, glm::vec3(0, 0, 1)); transformMatrix = glm::scale(transformMatrix, glm::vec3(effectBitmap->w * 0.5f, effectBitmap->h * 0.5f, 1.0)); - glBindTexture(GL_TEXTURE_2D, reinterpret_cast(postEffect.m_Bitmap->extra)->m_Texture); + GL_CHECK(glBindTexture(GL_TEXTURE_2D, reinterpret_cast(postEffect.m_Bitmap->extra)->m_Texture)); m_PostProcessShader->SetMatrix4f(m_PostProcessShader->GetTransformUniform(), transformMatrix); - glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); + GL_CHECK(glDrawArrays(GL_TRIANGLE_STRIP, 0, 4)); } } } diff --git a/Source/Managers/WindowMan.cpp b/Source/Managers/WindowMan.cpp index 40cb733d83..54ab154857 100644 --- a/Source/Managers/WindowMan.cpp +++ b/Source/Managers/WindowMan.cpp @@ -77,11 +77,11 @@ WindowMan::WindowMan() { WindowMan::~WindowMan() = default; void WindowMan::Destroy() { - glDeleteTextures(1, &m_BackBuffer32Texture); - glDeleteBuffers(1, &m_ScreenVBO); - glDeleteVertexArrays(1, &m_ScreenVAO); - glDeleteTextures(1, &m_ScreenBufferTexture); - glDeleteFramebuffers(1, &m_ScreenBufferFBO); + GL_CHECK(glDeleteTextures(1, &m_BackBuffer32Texture)); + GL_CHECK(glDeleteBuffers(1, &m_ScreenVBO)); + GL_CHECK(glDeleteVertexArrays(1, &m_ScreenVAO)); + GL_CHECK(glDeleteTextures(1, &m_ScreenBufferTexture)); + GL_CHECK(glDeleteFramebuffers(1, &m_ScreenBufferFBO)); } void WindowMan::Initialize() { @@ -191,33 +191,33 @@ void WindowMan::InitializeOpenGL() { #else SDL_GL_SetSwapInterval(m_Fullscreen && m_EnableVSync ? 1 : 0); #endif - glEnable(GL_BLEND); - glEnable(GL_DEPTH_TEST); - glGenBuffers(1, &m_ScreenVBO); - glGenVertexArrays(1, &m_ScreenVAO); - glBindVertexArray(m_ScreenVAO); - glBindBuffer(GL_ARRAY_BUFFER, m_ScreenVBO); - glBufferData(GL_ARRAY_BUFFER, sizeof(c_Quad), c_Quad.data(), GL_STATIC_DRAW); - glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 4 * sizeof(float), nullptr); - glEnableVertexAttribArray(0); - glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 4 * sizeof(float), (void*)(2 * sizeof(float))); - glEnableVertexAttribArray(1); - glBindVertexArray(0); - glGenTextures(1, &m_BackBuffer32Texture); - glGenTextures(1, &m_ScreenBufferTexture); - glGenFramebuffers(1, &m_ScreenBufferFBO); + GL_CHECK(glEnable(GL_BLEND)); + GL_CHECK(glEnable(GL_DEPTH_TEST)); + GL_CHECK(glGenBuffers(1, &m_ScreenVBO)); + GL_CHECK(glGenVertexArrays(1, &m_ScreenVAO)); + GL_CHECK(glBindVertexArray(m_ScreenVAO)); + GL_CHECK(glBindBuffer(GL_ARRAY_BUFFER, m_ScreenVBO)); + GL_CHECK(glBufferData(GL_ARRAY_BUFFER, sizeof(c_Quad), c_Quad.data(), GL_STATIC_DRAW)); + GL_CHECK(glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 4 * sizeof(float), nullptr)); + GL_CHECK(glEnableVertexAttribArray(0)); + GL_CHECK(glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 4 * sizeof(float), (void*)(2 * sizeof(float)))); + GL_CHECK(glEnableVertexAttribArray(1)); + GL_CHECK(glBindVertexArray(0)); + GL_CHECK(glGenTextures(1, &m_BackBuffer32Texture)); + GL_CHECK(glGenTextures(1, &m_ScreenBufferTexture)); + GL_CHECK(glGenFramebuffers(1, &m_ScreenBufferFBO)); TracyGpuContext; } void WindowMan::CreateBackBufferTexture() { - glBindTexture(GL_TEXTURE_2D, m_BackBuffer32Texture); - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, m_ResX, m_ResY, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - glBindTexture(GL_TEXTURE_2D, m_ScreenBufferTexture); - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, m_ResX, m_ResY, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + GL_CHECK(glBindTexture(GL_TEXTURE_2D, m_BackBuffer32Texture)); + GL_CHECK(glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, m_ResX, m_ResY, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr)); + GL_CHECK(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR)); + GL_CHECK(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR)); + GL_CHECK(glBindTexture(GL_TEXTURE_2D, m_ScreenBufferTexture)); + GL_CHECK(glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, m_ResX, m_ResY, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr)); + GL_CHECK(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR)); + GL_CHECK(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR)); } int WindowMan::GetWindowResX() { @@ -684,28 +684,28 @@ void WindowMan::Update() { } void WindowMan::ClearRenderer() { - glBindFramebuffer(GL_FRAMEBUFFER, 0); - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + GL_CHECK(glBindFramebuffer(GL_FRAMEBUFFER, 0)); + GL_CHECK(glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)); g_FrameMan.ClearBackBuffer32(); - glActiveTexture(GL_TEXTURE0); - glBindTexture(GL_TEXTURE_2D, 0); - glActiveTexture(GL_TEXTURE1); - glBindTexture(GL_TEXTURE_2D, 0); + GL_CHECK(glActiveTexture(GL_TEXTURE0)); + GL_CHECK(glBindTexture(GL_TEXTURE_2D, 0)); + GL_CHECK(glActiveTexture(GL_TEXTURE1)); + GL_CHECK(glBindTexture(GL_TEXTURE_2D, 0)); m_DrawPostProcessBuffer = false; } void WindowMan::UploadFrame() { TracyGpuZone("Upload Frame"); - glDisable(GL_DEPTH_TEST); + GL_CHECK(glDisable(GL_DEPTH_TEST)); GL_CHECK(glBindFramebuffer(GL_FRAMEBUFFER, m_ScreenBufferFBO)); GL_CHECK(glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, m_ScreenBufferTexture, 0)); GL_CHECK(glClearColor(0.0f, 0.0f, 0.0f, 1.0f)); GL_CHECK(glClear(GL_COLOR_BUFFER_BIT)); GL_CHECK(glActiveTexture(GL_TEXTURE0)); - glViewport(0, 0, m_ResX, m_ResY); + GL_CHECK(glViewport(0, 0, m_ResX, m_ResY)); - glEnable(GL_BLEND); + GL_CHECK(glEnable(GL_BLEND)); if (m_DrawPostProcessBuffer) { TracyGpuZone("Upload Post Process Buffer"); GL_CHECK(glBindTexture(GL_TEXTURE_2D, g_PostProcessMan.GetPostProcessColorBuffer())); @@ -715,7 +715,7 @@ void WindowMan::UploadFrame() { GL_CHECK(glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, g_FrameMan.GetBackBuffer32()->w, g_FrameMan.GetBackBuffer32()->h, GL_RGBA, GL_UNSIGNED_BYTE, g_FrameMan.GetBackBuffer32()->line[0])); } else { TracyGpuZone("Upload no Post Process Buffer"); - glBindTexture(GL_TEXTURE_2D, 0); + GL_CHECK(glBindTexture(GL_TEXTURE_2D, 0)); GL_CHECK(glActiveTexture(GL_TEXTURE1)); GL_CHECK(glBindTexture(GL_TEXTURE_2D, m_BackBuffer32Texture)); GL_CHECK(glPixelStorei(GL_UNPACK_ALIGNMENT, 4)); @@ -738,7 +738,7 @@ void WindowMan::UploadFrame() { } if (m_MultiDisplayWindows.empty()) { TracyGpuZone("Swap Window"); - glViewport(m_PrimaryWindowViewport->x, m_PrimaryWindowViewport->y, m_PrimaryWindowViewport->w, m_PrimaryWindowViewport->h); + GL_CHECK(glViewport(m_PrimaryWindowViewport->x, m_PrimaryWindowViewport->y, m_PrimaryWindowViewport->w, m_PrimaryWindowViewport->h)); m_ScreenBlitShader->SetMatrix4f(m_ScreenBlitShader->GetTransformUniform(), glm::mat4(1.0f)); GL_CHECK(glDrawArrays(GL_TRIANGLE_STRIP, 0, 4)); SDL_GL_SwapWindow(m_PrimaryWindow.get());