aboutsummaryrefslogtreecommitdiff
path: root/src/GPU_OpenGL.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/GPU_OpenGL.cpp')
-rw-r--r--src/GPU_OpenGL.cpp48
1 files changed, 13 insertions, 35 deletions
diff --git a/src/GPU_OpenGL.cpp b/src/GPU_OpenGL.cpp
index 8f2d5a1..c02d955 100644
--- a/src/GPU_OpenGL.cpp
+++ b/src/GPU_OpenGL.cpp
@@ -16,8 +16,11 @@
with melonDS. If not, see http://www.gnu.org/licenses/.
*/
-#include <stdio.h>
-#include <string.h>
+#include "GPU_OpenGL.h"
+
+#include <cstdio>
+#include <cstring>
+
#include "NDS.h"
#include "GPU.h"
#include "Config.h"
@@ -26,34 +29,10 @@
namespace GPU
{
-namespace GLCompositor
-{
using namespace OpenGL;
-int Scale;
-int ScreenH, ScreenW;
-
-GLuint CompShader[1][3];
-GLuint CompScaleLoc[1];
-GLuint Comp3DXPosLoc[1];
-
-GLuint CompVertexBufferID;
-GLuint CompVertexArrayID;
-
-struct CompVertex
-{
- float Position[2];
- float Texcoord[2];
-};
-CompVertex CompVertices[2 * 3*2];
-
-GLuint CompScreenInputTex;
-GLuint CompScreenOutputTex[2];
-GLuint CompScreenOutputFB[2];
-
-
-bool Init()
+bool GLCompositor::Init()
{
if (!OpenGL::BuildShaderProgram(kCompositorVS, kCompositorFS_Nearest, CompShader[0], "CompositorShader"))
//if (!OpenGL::BuildShaderProgram(kCompositorVS, kCompositorFS_Linear, CompShader[0], "CompositorShader"))
@@ -144,7 +123,7 @@ bool Init()
return true;
}
-void DeInit()
+void GLCompositor::DeInit()
{
glDeleteFramebuffers(2, CompScreenOutputFB);
glDeleteTextures(1, &CompScreenInputTex);
@@ -157,12 +136,12 @@ void DeInit()
OpenGL::DeleteShaderProgram(CompShader[i]);
}
-void Reset()
+void GLCompositor::Reset()
{
}
-void SetRenderSettings(RenderSettings& settings)
+void GLCompositor::SetRenderSettings(RenderSettings& settings)
{
int scale = settings.GL_ScaleFactor;
@@ -188,7 +167,7 @@ void SetRenderSettings(RenderSettings& settings)
glBindFramebuffer(GL_FRAMEBUFFER, 0);
}
-void Stop()
+void GLCompositor::Stop()
{
for (int i = 0; i < 2; i++)
{
@@ -202,7 +181,7 @@ void Stop()
glBindFramebuffer(GL_FRAMEBUFFER, 0);
}
-void RenderFrame()
+void GLCompositor::RenderFrame()
{
int frontbuf = GPU::FrontBuffer;
glBindFramebuffer(GL_READ_FRAMEBUFFER, 0);
@@ -236,17 +215,16 @@ void RenderFrame()
}
glActiveTexture(GL_TEXTURE1);
- GPU3D::GLRenderer::SetupAccelFrame();
+ reinterpret_cast<GPU3D::GLRenderer*>(GPU3D::CurrentRenderer.get())->SetupAccelFrame();
glBindBuffer(GL_ARRAY_BUFFER, CompVertexBufferID);
glBindVertexArray(CompVertexArrayID);
glDrawArrays(GL_TRIANGLES, 0, 4*3);
}
-void BindOutputTexture(int buf)
+void GLCompositor::BindOutputTexture(int buf)
{
glBindTexture(GL_TEXTURE_2D, CompScreenOutputTex[buf]);
}
}
-}