aboutsummaryrefslogtreecommitdiff
path: root/src/video_core
diff options
context:
space:
mode:
Diffstat (limited to 'src/video_core')
-rw-r--r--src/video_core/CMakeLists.txt7
-rw-r--r--src/video_core/renderer_opengl/renderer_opengl.cpp4
-rw-r--r--src/video_core/renderer_opengl/renderer_opengl.h4
-rw-r--r--src/video_core/utils.cpp66
-rw-r--r--src/video_core/video_core.cpp2
5 files changed, 44 insertions, 39 deletions
diff --git a/src/video_core/CMakeLists.txt b/src/video_core/CMakeLists.txt
index 56394b930..8d04d381c 100644
--- a/src/video_core/CMakeLists.txt
+++ b/src/video_core/CMakeLists.txt
@@ -2,4 +2,9 @@ set(SRCS video_core.cpp
utils.cpp
renderer_opengl/renderer_opengl.cpp)
-add_library(video_core STATIC ${SRCS})
+set(HEADS video_core.h
+ utils.h
+ renderer_base.h
+ renderer_opengl/renderer_opengl.h)
+
+add_library(video_core STATIC ${SRCS} ${HEADS})
diff --git a/src/video_core/renderer_opengl/renderer_opengl.cpp b/src/video_core/renderer_opengl/renderer_opengl.cpp
index 24f9a91fd..f2e809b1d 100644
--- a/src/video_core/renderer_opengl/renderer_opengl.cpp
+++ b/src/video_core/renderer_opengl/renderer_opengl.cpp
@@ -37,7 +37,7 @@ void RendererOpenGL::SwapBuffers() {
// EFB->XFB copy
// TODO(bunnei): This is a hack and does not belong here. The copy should be triggered by some
// register write We're also treating both framebuffers as a single one in OpenGL.
- Rect framebuffer_size(0, 0, m_resolution_width, m_resolution_height);
+ BasicRect framebuffer_size(0, 0, m_resolution_width, m_resolution_height);
RenderXFB(framebuffer_size, framebuffer_size);
// XFB->Window copy
@@ -75,7 +75,7 @@ void RendererOpenGL::FlipFramebuffer(const u8* in, u8* out) {
* @param src_rect Source rectangle in XFB to copy
* @param dst_rect Destination rectangle in output framebuffer to copy to
*/
-void RendererOpenGL::RenderXFB(const Rect& src_rect, const Rect& dst_rect) {
+void RendererOpenGL::RenderXFB(const BasicRect& src_rect, const BasicRect& dst_rect) {
FlipFramebuffer(LCD::GetFramebufferPointer(LCD::g_regs.framebuffer_top_left_1), m_xfb_top_flipped);
FlipFramebuffer(LCD::GetFramebufferPointer(LCD::g_regs.framebuffer_sub_left_1), m_xfb_bottom_flipped);
diff --git a/src/video_core/renderer_opengl/renderer_opengl.h b/src/video_core/renderer_opengl/renderer_opengl.h
index 4c0b6e59d..06e602b46 100644
--- a/src/video_core/renderer_opengl/renderer_opengl.h
+++ b/src/video_core/renderer_opengl/renderer_opengl.h
@@ -28,7 +28,7 @@ public:
* @param src_rect Source rectangle in XFB to copy
* @param dst_rect Destination rectangle in output framebuffer to copy to
*/
- void RenderXFB(const Rect& src_rect, const Rect& dst_rect);
+ void RenderXFB(const BasicRect& src_rect, const BasicRect& dst_rect);
/**
* Set the emulator window to use for renderer
@@ -59,7 +59,7 @@ private:
* @param out Pointer to output buffer with flipped framebuffer
* @todo Early on hack... I'd like to find a more efficient way of doing this /bunnei
*/
- void RendererOpenGL::FlipFramebuffer(const u8* in, u8* out);
+ void FlipFramebuffer(const u8* in, u8* out);
EmuWindow* m_render_window; ///< Handle to render window
diff --git a/src/video_core/utils.cpp b/src/video_core/utils.cpp
index 67d74a2d8..29382c814 100644
--- a/src/video_core/utils.cpp
+++ b/src/video_core/utils.cpp
@@ -8,39 +8,37 @@
#include "video_core/utils.h"
namespace VideoCore {
-
-/**
- * Dumps a texture to TGA
- * @param filename String filename to dump texture to
- * @param width Width of texture in pixels
- * @param height Height of texture in pixels
- * @param raw_data Raw RGBA8 texture data to dump
- * @todo This should be moved to some general purpose/common code
- */
-void DumpTGA(std::string filename, int width, int height, u8* raw_data) {
- TGAHeader hdr;
- FILE* fout;
- u8 r, g, b;
-
- memset(&hdr, 0, sizeof(hdr));
- hdr.datatypecode = 2; // uncompressed RGB
- hdr.bitsperpixel = 24; // 24 bpp
- hdr.width = width;
- hdr.height = height;
-
- fout = fopen(filename.c_str(), "wb");
- fwrite(&hdr, sizeof(TGAHeader), 1, fout);
- for (int i = 0; i < height; i++) {
- for (int j = 0; j < width; j++) {
- r = raw_data[(4 * (i * width)) + (4 * j) + 0];
- g = raw_data[(4 * (i * width)) + (4 * j) + 1];
- b = raw_data[(4 * (i * width)) + (4 * j) + 2];
- putc(b, fout);
- putc(g, fout);
- putc(r, fout);
+ /**
+ * Dumps a texture to TGA
+ * @param filename String filename to dump texture to
+ * @param width Width of texture in pixels
+ * @param height Height of texture in pixels
+ * @param raw_data Raw RGBA8 texture data to dump
+ * @todo This should be moved to some general purpose/common code
+ */
+ void DumpTGA(std::string filename, int width, int height, u8* raw_data) {
+ TGAHeader hdr;
+ FILE* fout;
+ u8 r, g, b;
+
+ memset(&hdr, 0, sizeof(hdr));
+ hdr.datatypecode = 2; // uncompressed RGB
+ hdr.bitsperpixel = 24; // 24 bpp
+ hdr.width = width;
+ hdr.height = height;
+
+ fout = fopen(filename.c_str(), "wb");
+ fwrite(&hdr, sizeof(TGAHeader), 1, fout);
+ for (int i = 0; i < height; i++) {
+ for (int j = 0; j < width; j++) {
+ b = raw_data[(3 * (i * width)) + (3 * j) + 0];
+ g = raw_data[(3 * (i * width)) + (3 * j) + 1];
+ r = raw_data[(3 * (i * width)) + (3 * j) + 2];
+ putc(b, fout);
+ putc(g, fout);
+ putc(r, fout);
+ }
}
+ fclose(fout);
}
- fclose(fout);
-}
-
-} // namespace
+} // namespace \ No newline at end of file
diff --git a/src/video_core/video_core.cpp b/src/video_core/video_core.cpp
index f2e17f9f9..5f1933b1e 100644
--- a/src/video_core/video_core.cpp
+++ b/src/video_core/video_core.cpp
@@ -30,6 +30,8 @@ void Start() {
/// Initialize the video core
void Init(EmuWindow* emu_window) {
+ glewExperimental = GL_TRUE;
+
g_emu_window = emu_window;
g_emu_window->MakeCurrent();
g_renderer = new RendererOpenGL();