summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_resource_manager.h
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2020-02-28 01:51:55 +0100
committerGitHub <noreply@github.com>2020-02-28 01:51:55 +0100
commit969357af1a26e74eaa5b0cec677d929bca94dc57 (patch)
tree59a8bb28215dfbdc817227e4b0b7ea37e6f5ef70 /src/video_core/renderer_opengl/gl_resource_manager.h
parentAM/ICommonStateGetter: Stub SetLcdBacklighOffEnabled (#3454) (diff)
parentrenderer_opengl: Reduce swap chain size to 3. (diff)
downloadyuzu-969357af1a26e74eaa5b0cec677d929bca94dc57.tar
yuzu-969357af1a26e74eaa5b0cec677d929bca94dc57.tar.gz
yuzu-969357af1a26e74eaa5b0cec677d929bca94dc57.tar.bz2
yuzu-969357af1a26e74eaa5b0cec677d929bca94dc57.tar.lz
yuzu-969357af1a26e74eaa5b0cec677d929bca94dc57.tar.xz
yuzu-969357af1a26e74eaa5b0cec677d929bca94dc57.tar.zst
yuzu-969357af1a26e74eaa5b0cec677d929bca94dc57.zip
Diffstat (limited to 'src/video_core/renderer_opengl/gl_resource_manager.h')
-rw-r--r--src/video_core/renderer_opengl/gl_resource_manager.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/gl_resource_manager.h b/src/video_core/renderer_opengl/gl_resource_manager.h
index 514d1d165..995a4e45e 100644
--- a/src/video_core/renderer_opengl/gl_resource_manager.h
+++ b/src/video_core/renderer_opengl/gl_resource_manager.h
@@ -11,6 +11,31 @@
namespace OpenGL {
+class OGLRenderbuffer : private NonCopyable {
+public:
+ OGLRenderbuffer() = default;
+
+ OGLRenderbuffer(OGLRenderbuffer&& o) noexcept : handle(std::exchange(o.handle, 0)) {}
+
+ ~OGLRenderbuffer() {
+ Release();
+ }
+
+ OGLRenderbuffer& operator=(OGLRenderbuffer&& o) noexcept {
+ Release();
+ handle = std::exchange(o.handle, 0);
+ return *this;
+ }
+
+ /// Creates a new internal OpenGL resource and stores the handle
+ void Create();
+
+ /// Deletes the internal OpenGL resource
+ void Release();
+
+ GLuint handle = 0;
+};
+
class OGLTexture : private NonCopyable {
public:
OGLTexture() = default;