diff options
author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2019-06-20 08:44:06 +0200 |
---|---|---|
committer | ReinUsesLisp <reinuseslisp@airmail.cc> | 2019-07-06 05:37:55 +0200 |
commit | 9cdc576f6055cbb308551f09e3566b34233b226e (patch) | |
tree | 7106c6ef615e0771a070afc3180d30cade558e74 /src/video_core/renderer_opengl/utils.h | |
parent | gl_buffer_cache: Implement with generic buffer cache (diff) | |
download | yuzu-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.h | 27 |
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); |