diff options
Diffstat (limited to 'src/video_core/renderer_base.h')
-rw-r--r-- | src/video_core/renderer_base.h | 58 |
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 000000000..94748d690 --- /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); +}; |