1#ifndef TATOOINE_GL_GL_FUNCTIONS_WRAPPER_H
2#define TATOOINE_GL_GL_FUNCTIONS_WRAPPER_H
28DLL_API
auto get_float_v(GLenum pname, GLfloat* params) -> void;
40DLL_API
auto enable(GLenum cap) -> void;
57DLL_API
auto clear(GLbitfield mask) -> void;
59DLL_API
auto clear_color(GLfloat red, GLfloat green, GLfloat blue,
60 GLfloat alpha) -> void;
64DLL_API
auto viewport(camera
const& cam) -> void;
70DLL_API
auto blend_func(GLenum sfactor, GLenum dfactor) -> void;
74 GLenum dstAlpha) -> void;
76 GLenum srcAlpha, GLenum dstAlpha) -> void;
83 GLenum modeAlpha) -> void;
95 GLboolean normalized,
GLsizei stride,
96 const GLvoid* pointer) -> void;
99 GLsizei stride,
const GLvoid* pointer)
103 GLsizei stride,
const GLvoid* pointer)
117 const GLvoid* indices) -> void;
122 GLenum usage) -> void;
125 GLenum usage) -> void;
142DLL_API
auto map_buffer(GLenum target, GLenum access) ->
void*;
147 GLbitfield access) ->
void*;
150 GLsizei length, GLbitfield access) ->
void*;
156 if constexpr (std::is_arithmetic_v<T>) {
161 i < std::min<GLsizei>(
size /
static_cast<GLsizei>(
sizeof(T)), 3);
171 << data <<
", " <<
to_string(usage) <<
")\n";
176 if (err != GL_NO_ERROR) {
178 if (err == GL_INVALID_VALUE) {
181 err_str +
" (size should be negative: " + std::to_string(
size) +
")"};
183 throw gl_error{
"glNamedBufferData", err_str};
192 const GLvoid* data) -> void;
195 const void* data) -> void;
201 GLenum format, GLenum type,
202 const void* data) -> void;
219 const GLint* length) -> void;
226 GLuint num_groups_z) -> void;
233 GLsizei* length, GLchar* infoLog) -> void;
247 GLfloat v1, GLfloat v2) -> void;
250 GLfloat v1, GLfloat v2, GLfloat v3) -> void;
259 GLint v1, GLint v2) -> void;
262 GLint v1, GLint v2, GLint v3) -> void;
277 const GLfloat* value) -> void;
280 const GLfloat* value) -> void;
283 const GLfloat* value) -> void;
286 const GLfloat* value) -> void;
289 const GLint* value) -> void;
292 const GLint* value) -> void;
295 const GLint* value) -> void;
298 const GLint* value) -> void;
301 const GLuint* value) -> void;
304 const GLuint* value) -> void;
307 const GLuint* value) -> void;
310 const GLuint* value) -> void;
313 GLsizei count, GLboolean transpose,
314 const GLfloat* value) -> void;
317 GLsizei count, GLboolean transpose,
318 const GLfloat* value) -> void;
321 GLsizei count, GLboolean transpose,
322 const GLfloat* value) -> void;
325 GLsizei count, GLboolean transpose,
326 const GLfloat* value) -> void;
329 GLsizei count, GLboolean transpose,
330 const GLfloat* value) -> void;
333 GLsizei count, GLboolean transpose,
334 const GLfloat* value) -> void;
337 GLsizei count, GLboolean transpose,
338 const GLfloat* value) -> void;
341 GLsizei count, GLboolean transpose,
342 const GLfloat* value) -> void;
345 GLsizei count, GLboolean transpose,
346 const GLfloat* value) -> void;
352 GLsizei* length, GLchar* infoLog) -> void;
368 GLboolean layered, GLint layer, GLenum access,
369 GLenum format) -> void;
371DLL_API
auto tex_image_1d(GLenum target, GLint level, GLint internal_format,
372 GLsizei width, GLint border, GLenum format,
373 GLenum type,
const GLvoid* data) -> void;
375DLL_API
auto tex_image_2d(GLenum target, GLint level, GLint internal_format,
377 GLenum format, GLenum type,
const GLvoid* data)
382 GLenum format, GLenum type,
const GLvoid* pixels)
386 GLsizei width, GLenum format, GLenum type,
387 const void* pixels) -> void;
391 GLenum format, GLenum type,
392 const void* pixels) -> void;
395 GLint yoffset, GLint zoffset,
GLsizei width,
397 GLenum type,
const void* pixels) -> void;
399DLL_API
auto tex_image_3d(GLenum target, GLint level, GLint internal_format,
401 GLint border, GLenum format, GLenum type,
402 const GLvoid* data) -> void;
405 GLint srcLevel, GLint srcX, GLint srcY,
406 GLint srcZ,
GLuint dstName, GLenum dstTarget,
407 GLint dstLevel, GLint dstX, GLint dstY,
412 GLenum type, GLvoid* pixels) -> void;
415 GLenum type,
GLsizei bufSize,
void* pixels)
419 GLenum type,
GLsizei bufSize,
void* pixels)
423 GLint yoffset, GLint zoffset,
GLsizei width,
425 GLenum type,
GLsizei bufSize,
void* pixels)
440 const GLfloat* params) -> void;
449 const GLuint* params) -> void;
452 const GLfloat* paramtexture) -> void;
455 const GLint* param) -> void;
458 const GLint* param) -> void;
461 const GLuint* param) -> void;
464 GLenum type,
const void* data) -> void;
483 GLint level) -> void;
487 GLint level) -> void;
491 GLint level, GLint layer) -> void;
500 const GLenum* bufs) -> void;
buffer base class for each of the OpenGL buffer types
Definition: buffer.h:405
Definition: framebuffer.h:10
Definition: errorcheck.h:12
Definition: ansiformat.h:6
DLL_API auto program_uniform_matrix_4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) -> void
DLL_API auto draw_elements(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices) -> void
DLL_API auto texture_parameter_Iuiv(GLuint texture, GLenum pname, const GLuint *param) -> void
DLL_API auto texture_sub_image_1d(GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels) -> void
DLL_API auto program_uniform_2i(GLuint program, GLint location, GLint v0, GLint v1) -> void
DLL_API auto clear_tex_image(GLuint texture, GLint level, GLenum format, GLenum type, const void *data) -> void
DLL_API auto map_buffer_range(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access) -> void *
DLL_API auto clear_color(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) -> void
DLL_API auto create_program() -> GLuint
DLL_API auto program_uniform_matrix_3x4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) -> void
DLL_API auto program_uniform_3f(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2) -> void
DLL_API auto get_texture_image(GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels) -> void
DLL_API auto delete_textures(GLsizei n, GLuint *textures) -> void
DLL_API auto get_booleani_v(GLenum target, GLuint index, GLboolean *data) -> void
DLL_API auto tex_parameter_Iiv(GLenum target, GLenum pname, const GLint *params) -> void
DLL_API auto front_face(GLenum mode) -> void
DLL_API auto blend_func_i(GLuint buf, GLenum sfactor, GLenum dfactor) -> void
DLL_API auto map_named_buffer_range(GLuint buffer, GLintptr offset, GLsizei length, GLbitfield access) -> void *
DLL_API auto get_doublei_v(GLenum target, GLuint index, GLdouble *data) -> void
DLL_API auto get_n_tex_image(GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels) -> void
DLL_API auto get_floati_v(GLenum target, GLuint index, GLfloat *data) -> void
DLL_API auto bind_sampler(GLuint unit, GLuint sampler) -> void
DLL_API auto program_uniform_1f(GLuint program, GLint location, GLfloat v0) -> void
DLL_API auto blend_equation_separate(GLenum modeRGB, GLenum modeAlpha) -> void
DLL_API auto tex_parameter_Iuiv(GLenum target, GLenum pname, const GLuint *params) -> void
DLL_API auto vertex_attrib_pointer(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer) -> void
DLL_API auto scissor(GLint x, GLint y, GLsizei width, GLsizei height) -> void
DLL_API auto disable_vertex_attrib_array(GLuint index) -> void
DLL_API auto create_vertex_arrays(GLsizei n, GLuint *arrays) -> void
DLL_API auto depth_mask(GLboolean flag) -> void
DLL_API auto vertex_attrib_l_pointer(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) -> void
DLL_API auto copy_named_buffer_sub_data(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizei size) -> void
DLL_API auto program_uniform_1ui(GLuint program, GLint location, GLuint v0) -> void
DLL_API auto get_shader_iv(GLuint shader, GLenum pname, GLint *params) -> void
DLL_API auto framebuffer_texture_2d(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) -> void
DLL_API auto texture_parameter_iv(GLuint texture, GLenum pname, const GLint *param) -> void
DLL_API auto framebuffer_texture_3d(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint layer) -> void
DLL_API auto program_uniform_3iv(GLuint program, GLint location, GLsizei count, const GLint *value) -> void
DLL_API auto get_float_v(GLenum pname, GLfloat *params) -> void
DLL_API auto get_integer64_v(GLenum pname, GLint64 *params) -> void
DLL_API auto delete_shader(GLuint shader) -> void
DLL_API auto bind_vertex_array(GLuint array) -> void
DLL_API auto point_size(GLfloat size) -> void
DLL_API auto tex_parameter_iv(GLenum target, GLenum pname, const GLint *params) -> void
DLL_API auto enable_vertex_attrib_array(GLuint index) -> void
DLL_API auto program_uniform_3fv(GLuint program, GLint location, GLsizei count, const GLfloat *value) -> void
DLL_API auto map_buffer(GLenum target, GLenum access) -> void *
DLL_API auto get_string(GLenum name) -> const GLubyte *
DLL_API auto program_uniform_1fv(GLuint program, GLint location, GLsizei count, const GLfloat *value) -> void
DLL_API auto program_uniform_matrix_3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) -> void
DLL_API auto create_framebuffers(GLsizei n, GLuint *ids) -> void
DLL_API auto active_texture(GLenum texture) -> void
DLL_API auto texture_parameter_f(GLuint texture, GLenum pname, GLfloat param) -> void
DLL_API auto create_textures(GLenum target, GLsizei n, GLuint *textures) -> void
DLL_API auto named_buffer_sub_data(GLuint buffer, GLintptr offset, GLsizei size, const void *data) -> void
DLL_API auto check_named_framebuffer_status(GLuint framebuffer, GLenum target) -> GLenum
DLL_API auto named_framebuffer_draw_buffers(GLuint framebuffer, GLsizei n, const GLenum *bufs) -> void
DLL_API auto create_buffers(GLsizei n, GLuint *buffers) -> void
auto to_string(key const k) -> std::string
DLL_API auto program_uniform_2uiv(GLuint program, GLint location, GLsizei count, const GLuint *value) -> void
DLL_API auto is_enabled(GLenum cap) -> GLboolean
DLL_API auto get_boolean_v(GLenum pname, GLboolean *params) -> void
DLL_API auto program_uniform_4ui(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3) -> void
DLL_API auto blend_func_separate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha) -> void
DLL_API auto named_framebuffer_texture(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level) -> void
DLL_API auto get_shader_info_log(GLuint shader, GLsizei maxLength, GLsizei *length, GLchar *infoLog) -> void
DLL_API auto get_uniform_location(GLuint program, const GLchar *name) -> GLint
DLL_API auto memory_barrier(GLbitfield barriers) -> void
DLL_API auto program_uniform_matrix_2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) -> void
DLL_API auto draw_arrays(GLenum mode, GLint first, GLsizei count) -> void
DLL_API auto unmap_named_buffer(GLuint buffer) -> GLboolean
DLL_API auto program_uniform_2iv(GLuint program, GLint location, GLsizei count, const GLint *value) -> void
DLL_API auto buffer_data(GLenum target, GLsizeiptr size, const void *data, GLenum usage) -> void
DLL_API auto create_shader(GLenum shaderType) -> GLuint
DLL_API auto tex_sub_image_2d(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels) -> void
DLL_API auto program_uniform_4fv(GLuint program, GLint location, GLsizei count, const GLfloat *value) -> void
DLL_API auto program_uniform_2ui(GLuint program, GLint location, GLuint v0, GLuint v1) -> void
DLL_API auto program_uniform_1i(GLuint program, GLint location, GLint v0) -> void
DLL_API auto bind_image_texture(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format) -> void
DLL_API auto map_named_buffer(GLuint buffer, GLenum access) -> void *
DLL_API auto program_uniform_matrix_2x4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) -> void
DLL_API auto program_uniform_matrix_3x2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) -> void
DLL_API auto get_integer_v(GLenum pname, GLint *params) -> void
DLL_API auto cull_face(GLenum mode) -> void
DLL_API auto tex_parameter_fv(GLenum target, GLenum pname, const GLfloat *params) -> void
DLL_API auto gl_error_to_string(GLenum err) -> std::string
DLL_API auto framebuffer_texture(GLenum target, GLenum attachment, GLuint texture, GLint level) -> void
DLL_API auto program_uniform_matrix_4x3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) -> void
DLL_API auto get_integer64i_v(GLenum target, GLuint index, GLint64 *data) -> void
DLL_API auto use_program(GLuint program) -> void
DLL_API auto program_uniform_2f(GLuint program, GLint location, GLfloat v0, GLfloat v1) -> void
DLL_API auto unmap_buffer(GLenum target) -> GLboolean
DLL_API auto blend_func(GLenum sfactor, GLenum dfactor) -> void
DLL_API auto tex_parameter_f(GLenum target, GLenum pname, GLfloat param) -> void
DLL_API auto vertex_attrib_i_pointer(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) -> void
DLL_API auto framebuffer_texture_1d(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) -> void
DLL_API auto bind_buffer_base(GLenum target, GLuint index, GLuint buffer) -> void
DLL_API auto program_uniform_1iv(GLuint program, GLint location, GLsizei count, const GLint *value) -> void
DLL_API auto is_texture(GLuint texture) -> GLboolean
DLL_API auto depth_func(GLenum func) -> void
DLL_API auto program_uniform_matrix_4x2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) -> void
DLL_API auto program_uniform_3i(GLuint program, GLint location, GLint v0, GLint v1, GLint v2) -> void
DLL_API auto texture_sub_image_3d(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels) -> void
DLL_API auto tex_image_3d(GLenum target, GLint level, GLint internal_format, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *data) -> void
DLL_API auto get_double_v(GLenum pname, GLdouble *params) -> void
DLL_API auto get_buffer_parameter_iv(GLenum target, GLenum value, GLint *data) -> void
static bool verbose
Definition: glfunctions.h:14
DLL_API auto delete_buffers(GLsizei n, GLuint *buffers) -> void
DLL_API auto delete_vertex_arrays(GLsizei n, GLuint *arrays) -> void
DLL_API auto polygon_mode(GLenum face, GLenum mode) -> void
DLL_API auto buffer_sub_data(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data) -> void
DLL_API auto program_uniform_4f(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3) -> void
DLL_API auto link_program(GLuint program) -> void
DLL_API auto program_uniform_4uiv(GLuint program, GLint location, GLsizei count, const GLuint *value) -> void
DLL_API auto texture_sub_image_2d(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels) -> void
DLL_API auto texture_parameter_Iiv(GLuint texture, GLenum pname, const GLint *param) -> void
DLL_API auto program_uniform_3uiv(GLuint program, GLint location, GLsizei count, const GLuint *value) -> void
DLL_API auto texture_parameter_i(GLuint texture, GLenum pname, GLint param) -> void
DLL_API auto blend_equation_i(GLuint buf, GLenum mode) -> void
DLL_API auto get_texture_sub_image(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, void *pixels) -> void
DLL_API auto delete_program(GLuint program) -> void
DLL_API auto program_uniform_3ui(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2) -> void
DLL_API auto blend_equation(GLenum mode) -> void
static std::ostream & verbose_ostream
Definition: glfunctions.h:15
DLL_API auto copy_image_sub_data(GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth) -> void
DLL_API auto get_program_iv(GLuint program, GLenum pname, GLint *params) -> void
DLL_API auto program_uniform_4iv(GLuint program, GLint location, GLsizei count, const GLint *value) -> void
DLL_API auto clear_named_buffer_data(GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data) -> void
DLL_API auto line_width(GLfloat width) -> void
DLL_API auto named_buffer_data(GLuint buffer, GLsizeiptr size, const void *data, GLenum usage) -> void
DLL_API auto program_uniform_4i(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3) -> void
DLL_API auto tex_parameter_i(GLenum target, GLenum pname, GLint param) -> void
DLL_API auto shader_source(GLuint shader, GLsizei count, const GLchar **string, const GLint *length) -> void
DLL_API auto enable(GLenum cap) -> void
DLL_API auto get_program_info_log(GLuint program, GLsizei maxLength, GLsizei *length, GLchar *infoLog) -> void
DLL_API auto program_uniform_1uiv(GLuint program, GLint location, GLsizei count, const GLuint *value) -> void
DLL_API auto flush() -> void
DLL_API auto delete_framebuffers(GLsizei n, GLuint *ids) -> void
DLL_API auto clear(GLbitfield mask) -> void
DLL_API auto attach_shader(GLuint program, GLuint shader) -> void
DLL_API auto texture_parameter_fv(GLuint texture, GLenum pname, const GLfloat *paramtexture) -> void
DLL_API auto get_shader_info_log_length(GLuint shader) -> GLint
DLL_API auto blend_func_separate_i(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha) -> void
DLL_API auto program_uniform_2fv(GLuint program, GLint location, GLsizei count, const GLfloat *value) -> void
DLL_API auto blend_equation_separate_i(GLuint buf, GLenum modeRGB, GLenum modeAlpha) -> void
DLL_API auto bind_texture(GLenum target, GLuint texture) -> void
DLL_API auto get_tex_image(GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels) -> void
DLL_API auto tex_image_2d(GLenum target, GLint level, GLint internal_format, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *data) -> void
DLL_API auto viewport(GLint x, GLint y, GLsizei width, GLsizei height) -> void
DLL_API auto get_error() -> GLenum
DLL_API auto dispatch_compute(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z) -> void
DLL_API auto program_uniform_matrix_2x3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) -> void
DLL_API auto bind_framebuffer(GLenum target, GLuint framebuffer) -> void
DLL_API auto bind_buffer(GLenum target, GLuint buffer) -> void
DLL_API auto get_integeri_v(GLenum target, GLuint index, GLint *data) -> void
DLL_API auto disable(GLenum cap) -> void
DLL_API auto compile_shader(GLuint shader) -> void
DLL_API auto tex_image_1d(GLenum target, GLint level, GLint internal_format, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *data) -> void
auto constexpr index(handle< Child, Int > const h)
Definition: handle.h:119
auto size(vec< ValueType, N > const &v)
Definition: vec.h:148