12#ifndef GAMP_GLARRAYHANDLER_HPP_
13#define GAMP_GLARRAYHANDLER_HPP_
21 template<
typename Value_type>
24 template<
typename Value_type>
29 using namespace gamp::render::gl;
30 using namespace gamp::render::gl::data;
43 template <
typename Value_type>
94 template<
typename Value_type>
Client data buffer for non VBO GLArrayData usage of given template-type Value_type.
virtual void addSubHandler(GLSLSubArrayHandler &&handler)=0
Supporting interleaved arrays, where sub handlers may handle the array state and the master handler t...
void set(const GLArrayDataClientRef< Value_type > &ad) noexcept
bool bindBuffer(GL &gl, bool bind)
if bind is true and the data uses VBO, the latter will be bound and data written to the GPU if requir...
virtual void enableState(GL &gl, bool enable, ShaderState *st)=0
Implementation shall enable or disable the array state.
GLArrayHandler() noexcept=default
virtual void setSubArrayVBOName(GLuint vboName)=0
GLArrayDataClientRef< Value_type > m_ad
Used for interleaved GLSL arrays, i.e.
ShaderState allows to sharing data between shader programs, while updating the attribute and uniform ...
std::shared_ptr< GLArrayDataClient< Value_type > > GLArrayDataClientRef
std::unique_ptr< GLArrayHandler< Value_type > > GLArrayHandlerPtr