X-Git-Url: https://git.ucc.asn.au/?p=ipdf%2Fcode.git;a=blobdiff_plain;f=src%2Fgraphicsbuffer.h;h=fd897712c7d4c00a3dda86475bad1f05b2508bf7;hp=9513cb74a1842faa7a14eb1c241d0c96a503128e;hb=10c3609cc8b3212e54f6e66c129cbd7e852fcc45;hpb=f8ef964f021d1d6da6ea46bbb1fe8f0250a5be8c diff --git a/src/graphicsbuffer.h b/src/graphicsbuffer.h index 9513cb7..fd89771 100644 --- a/src/graphicsbuffer.h +++ b/src/graphicsbuffer.h @@ -1,7 +1,7 @@ #ifndef _GRAPHICSBUFFER_H #define _GRAPHICSBUFFER_H -#include +#include "SDL.h" #include "gl_core44.h" @@ -20,7 +20,8 @@ namespace IPDF BufferTypePixelPack, // Pixel Pack buffer BufferTypePixelUnpack, BufferTypeUniform, // Uniform/Constant buffer - BufferTypeDrawIndirect, + BufferTypeTexture, // I was hoping to avoid this one. + BufferTypeDrawIndirect }; enum BufferUsage @@ -54,10 +55,16 @@ namespace IPDF const size_t GetSize() const { return m_buffer_size; } void Invalidate(); + + // WARNING: The buffer handle can change for (almost) no reason. + // If you do _anything_ to the buffer, you'll need to call this + // again to see if we've recreated it in a vain attempt to outsmart + // the driver. + GLuint GetHandle() const { return m_buffer_handle; } void Bind() const; private: - bool RecreateBuffer(const void *data = nullptr); + bool RecreateBuffer(const void *data = NULL); GLuint m_buffer_handle; BufferType m_buffer_type; BufferUsage m_buffer_usage;