Browse Source
Merge pull request #991 from yuriks/globjects
Merge pull request #991 from yuriks/globjects
OpenGL: Make OpenGL object resource wrappers fully inlinepull/15/merge
3 changed files with 79 additions and 143 deletions
-
1src/video_core/CMakeLists.txt
-
111src/video_core/renderer_opengl/gl_resource_manager.cpp
-
110src/video_core/renderer_opengl/gl_resource_manager.h
@ -1,111 +0,0 @@ |
|||
// Copyright 2015 Citra Emulator Project
|
|||
// Licensed under GPLv2 or any later version
|
|||
// Refer to the license.txt file included.
|
|||
|
|||
#include "video_core/renderer_opengl/gl_resource_manager.h"
|
|||
#include "video_core/renderer_opengl/gl_shader_util.h"
|
|||
|
|||
// Textures
|
|||
OGLTexture::OGLTexture() : handle(0) { |
|||
} |
|||
|
|||
OGLTexture::~OGLTexture() { |
|||
Release(); |
|||
} |
|||
|
|||
void OGLTexture::Create() { |
|||
if (handle != 0) { |
|||
return; |
|||
} |
|||
|
|||
glGenTextures(1, &handle); |
|||
} |
|||
|
|||
void OGLTexture::Release() { |
|||
glDeleteTextures(1, &handle); |
|||
handle = 0; |
|||
} |
|||
|
|||
// Shaders
|
|||
OGLShader::OGLShader() : handle(0) { |
|||
} |
|||
|
|||
OGLShader::~OGLShader() { |
|||
Release(); |
|||
} |
|||
|
|||
void OGLShader::Create(const char* vert_shader, const char* frag_shader) { |
|||
if (handle != 0) { |
|||
return; |
|||
} |
|||
|
|||
handle = ShaderUtil::LoadShaders(vert_shader, frag_shader); |
|||
} |
|||
|
|||
void OGLShader::Release() { |
|||
glDeleteProgram(handle); |
|||
handle = 0; |
|||
} |
|||
|
|||
// Buffer objects
|
|||
OGLBuffer::OGLBuffer() : handle(0) { |
|||
} |
|||
|
|||
OGLBuffer::~OGLBuffer() { |
|||
Release(); |
|||
} |
|||
|
|||
void OGLBuffer::Create() { |
|||
if (handle != 0) { |
|||
return; |
|||
} |
|||
|
|||
glGenBuffers(1, &handle); |
|||
} |
|||
|
|||
void OGLBuffer::Release() { |
|||
glDeleteBuffers(1, &handle); |
|||
handle = 0; |
|||
} |
|||
|
|||
// Vertex array objects
|
|||
OGLVertexArray::OGLVertexArray() : handle(0) { |
|||
} |
|||
|
|||
OGLVertexArray::~OGLVertexArray() { |
|||
Release(); |
|||
} |
|||
|
|||
void OGLVertexArray::Create() { |
|||
if (handle != 0) { |
|||
return; |
|||
} |
|||
|
|||
glGenVertexArrays(1, &handle); |
|||
} |
|||
|
|||
void OGLVertexArray::Release() { |
|||
glDeleteVertexArrays(1, &handle); |
|||
handle = 0; |
|||
} |
|||
|
|||
// Framebuffers
|
|||
OGLFramebuffer::OGLFramebuffer() : handle(0) { |
|||
} |
|||
|
|||
OGLFramebuffer::~OGLFramebuffer() { |
|||
Release(); |
|||
} |
|||
|
|||
void OGLFramebuffer::Create() { |
|||
if (handle != 0) { |
|||
return; |
|||
} |
|||
|
|||
glGenFramebuffers(1, &handle); |
|||
} |
|||
|
|||
void OGLFramebuffer::Release() { |
|||
glDeleteFramebuffers(1, &handle); |
|||
handle = 0; |
|||
} |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue