gl_rasterizer: Fix vertex and index data invalidations

This commit is contained in:
ReinUsesLisp
2019-06-20 03:44:06 -03:00
parent 1fa21fa192
commit 9cdc576f60
4 changed files with 67 additions and 8 deletions

View File

@ -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);