summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/utils.h
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2019-06-20 08:44:06 +0200
committerReinUsesLisp <reinuseslisp@airmail.cc>2019-07-06 05:37:55 +0200
commit9cdc576f6055cbb308551f09e3566b34233b226e (patch)
tree7106c6ef615e0771a070afc3180d30cade558e74 /src/video_core/renderer_opengl/utils.h
parentgl_buffer_cache: Implement with generic buffer cache (diff)
downloadyuzu-9cdc576f6055cbb308551f09e3566b34233b226e.tar
yuzu-9cdc576f6055cbb308551f09e3566b34233b226e.tar.gz
yuzu-9cdc576f6055cbb308551f09e3566b34233b226e.tar.bz2
yuzu-9cdc576f6055cbb308551f09e3566b34233b226e.tar.lz
yuzu-9cdc576f6055cbb308551f09e3566b34233b226e.tar.xz
yuzu-9cdc576f6055cbb308551f09e3566b34233b226e.tar.zst
yuzu-9cdc576f6055cbb308551f09e3566b34233b226e.zip
Diffstat (limited to 'src/video_core/renderer_opengl/utils.h')
-rw-r--r--src/video_core/renderer_opengl/utils.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/utils.h b/src/video_core/renderer_opengl/utils.h
index d2a3d25d9..6c2b45546 100644
--- a/src/video_core/renderer_opengl/utils.h
+++ b/src/video_core/renderer_opengl/utils.h
@@ -11,6 +11,33 @@
namespace OpenGL {
+class VertexArrayPushBuffer final {
+public:
+ explicit VertexArrayPushBuffer();
+ ~VertexArrayPushBuffer();
+
+ void Setup(GLuint vao_);
+
+ void SetIndexBuffer(const GLuint* buffer);
+
+ void SetVertexBuffer(GLuint binding_index, const GLuint* buffer, GLintptr offset,
+ GLsizei stride);
+
+ void Bind();
+
+private:
+ struct Entry {
+ GLuint binding_index{};
+ const GLuint* buffer{};
+ GLintptr offset{};
+ GLsizei stride{};
+ };
+
+ GLuint vao{};
+ const GLuint* index_buffer{};
+ std::vector<Entry> vertex_buffers;
+};
+
class BindBuffersRangePushBuffer final {
public:
explicit BindBuffersRangePushBuffer(GLenum target);