Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Data/Base.rte/Shaders/Blit8.frag
Original file line number Diff line number Diff line change
Expand Up @@ -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));
}
2 changes: 1 addition & 1 deletion Data/Base.rte/Shaders/ScreenBlit.frag
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
4 changes: 2 additions & 2 deletions Source/Managers/FrameMan.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
120 changes: 60 additions & 60 deletions Source/Managers/PostProcessMan.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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::mat4>(glm::ortho(0.0F, static_cast<float>(g_FrameMan.GetBackBuffer8()->w), 0.0F, static_cast<float>(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<unsigned int, c_PaletteEntriesNumber> palette;
for (int i = 0; i < c_PaletteEntriesNumber; ++i) {
if (i == g_MaskColor) {
Expand All @@ -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<void*>(m_BitmapTextures.back().get());
glPixelStorei(GL_UNPACK_ALIGNMENT, bitmap_color_depth(bitmap) == 8 ? 1 : 4);
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, reinterpret_cast<GLBitmapInfo*>(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<GLBitmapInfo*>(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() {
Expand Down Expand Up @@ -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");
Expand All @@ -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();

Expand Down Expand Up @@ -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);
Expand All @@ -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<GLBitmapInfo*>(postEffect.m_Bitmap->extra)->m_Texture);
GL_CHECK(glBindTexture(GL_TEXTURE_2D, reinterpret_cast<GLBitmapInfo*>(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));
}
}
}
78 changes: 39 additions & 39 deletions Source/Managers/WindowMan.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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() {
Expand Down Expand Up @@ -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() {
Expand Down Expand Up @@ -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()));
Expand All @@ -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));
Expand All @@ -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());
Expand Down