13 #ifndef OGLPLUS_VERTEX_ARRAY_1107121519_HPP
14 #define OGLPLUS_VERTEX_ARRAY_1107121519_HPP
35 static void Gen(tag::Generate, GLsizei count, GLuint* names)
37 assert(names !=
nullptr);
38 OGLPLUS_GLFUNC(GenVertexArrays)(count, names);
39 OGLPLUS_CHECK_SIMPLE(GenVertexArrays);
41 #if GL_VERSION_4_5 || GL_ARB_direct_state_access
42 static void Gen(tag::Create, GLsizei count, GLuint* names)
44 assert(names !=
nullptr);
45 OGLPLUS_GLFUNC(CreateVertexArrays)(count, names);
46 OGLPLUS_CHECK_SIMPLE(CreateVertexArrays);
50 static void Delete(GLsizei count, GLuint* names)
52 assert(names !=
nullptr);
53 OGLPLUS_GLFUNC(DeleteVertexArrays)(count, names);
54 OGLPLUS_VERIFY_SIMPLE(DeleteVertexArrays);
57 static GLboolean IsA(GLuint name)
60 GLboolean result = OGLPLUS_GLFUNC(IsVertexArray)(name);
61 OGLPLUS_VERIFY_SIMPLE(IsVertexArray);
71 static GLuint _binding(
void)
74 OGLPLUS_GLFUNC(GetIntegerv)(GL_VERTEX_ARRAY_BINDING, &name);
78 EnumParam(GLenum(GL_VERTEX_ARRAY_BINDING))
100 OGLPLUS_GLFUNC(BindVertexArray)(
GetGLName(vertex_array));
116 ,
public ObjBindingOps<tag::VertexArray>
136 typedef ObjectOps<tag::ImplicitSel, tag::VertexArray>
143 typedef ObjectZero<ObjZeroOps<tag::ImplicitSel, tag::VertexArray>>
154 #endif // include guard
ObjectOps< tag::ImplicitSel, tag::VertexArray > VertexArrayOps
VertexArray operations with implicit selector.
Definition: vertex_array.hpp:137
static VertexArrayName Binding(void)
Returns the currently bound VertexArray.
Definition: vertex_array.hpp:88
Declaration of OGLplus object-related error.
Generic OpenGL object wrapper.
void Bind(void) const
Binds this vertex array object.
Definition: vertex_array.hpp:128
static void Bind(VertexArrayName vertex_array)
Binds the specified vertex_array object.
Definition: vertex_array.hpp:98
GLuint GetGLName(ObjectName< ObjTag > named)
Returns the GLuint OpenGL name assigned to named object.
Definition: name.hpp:38
Helper macro for optional checking of availability of GL function.
ObjectZero< ObjZeroOps< tag::ImplicitSel, tag::VertexArray > > NoVertexArray
An oglplus_object encapsulating vertex array zero functionality.
Definition: vertex_array.hpp:144
Exception class for GL object-related errors.
Definition: object.hpp:24
Implements operations applicable to any object and any operation kind.
Definition: fwd.hpp:151
A common template for "named" objects like textures, buffers, etc.
Definition: fwd.hpp:136
Object< VertexArrayOps > VertexArray
An oglplus_object encapsulating vertex array object functionality.
Definition: vertex_array.hpp:150