aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/video_core/renderer_base.h
diff options
context:
space:
mode:
authorGravatar bunnei <ericbunnie@gmail.com>2014-04-08 19:25:03 -0400
committerGravatar bunnei <ericbunnie@gmail.com>2014-04-08 19:25:03 -0400
commit63e46abdb8764bc97e91bae862c8d461e61b1965 (patch)
treee73f4aa25d7b4015a265e7bbfb6004dab7561027 /src/video_core/renderer_base.h
parent03c245345e1f319da5007c15019ed54432029fb8 (diff)
got rid of 'src' folders in each sub-project
Diffstat (limited to 'src/video_core/renderer_base.h')
-rw-r--r--src/video_core/renderer_base.h58
1 files changed, 58 insertions, 0 deletions
diff --git a/src/video_core/renderer_base.h b/src/video_core/renderer_base.h
new file mode 100644
index 00000000..94748d69
--- /dev/null
+++ b/src/video_core/renderer_base.h
@@ -0,0 +1,58 @@
+// Copyright 2014 Citra Emulator Project
+// Licensed under GPLv2
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include "common.h"
+#include "hash.h"
+
+class RendererBase {
+public:
+
+ /// Used to reference a framebuffer
+ enum kFramebuffer {
+ kFramebuffer_VirtualXFB = 0,
+ kFramebuffer_EFB,
+ kFramebuffer_Texture
+ };
+
+ RendererBase() : m_current_fps(0), m_current_frame(0) {
+ }
+
+ ~RendererBase() {
+ }
+
+ /// Swap buffers (render frame)
+ virtual void SwapBuffers() = 0;
+
+ /**
+ * Set the emulator window to use for renderer
+ * @param window EmuWindow handle to emulator window to use for rendering
+ */
+ virtual void SetWindow(EmuWindow* window) = 0;
+
+ /// Initialize the renderer
+ virtual void Init() = 0;
+
+ /// Shutdown the renderer
+ virtual void ShutDown() = 0;
+
+ // Getter/setter functions:
+ // ------------------------
+
+ f32 GetCurrentframe() const {
+ return m_current_fps;
+ }
+
+ int current_frame() const {
+ return m_current_frame;
+ }
+
+protected:
+ f32 m_current_fps; ///< Current framerate, should be set by the renderer
+ int m_current_frame; ///< Current frame, should be set by the renderer
+
+private:
+ DISALLOW_COPY_AND_ASSIGN(RendererBase);
+};