/* * * Copyright (C) 2023 Brett Terpstra * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ /* comment */ #ifndef GL_DOC_GENERATOR_TEST_H #define GL_DOC_GENERATOR_TEST_H /** * @name glDrawTransformFeedbackStream - render primitives using a count derived from a specifed stream of a transform feedback object * @usage * @code void glDrawTransformFeedbackStream(GLenum mode, GLuint id, GLuint stream); @endcode * @param mode Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, * GL_LINES, GL_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, * GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, and GL_PATCHES * are accepted. * @param id Specifies the name of a transform feedback object from which to retrieve a primitive count. * @param stream Specifies the index of the transform feedback stream from which to retrieve a primitive count. * * @errors GL_INVALID_ENUM is generated if mode is not an accepted value. * @errors GL_INVALID_VALUE is generated if id is not the name of a transform feedback object. * @errors GL_INVALID_VALUE is generated if stream is greater than or equal to the value of GL_MAX_VERTEX_STREAMS. * @errors GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to an enabled array and the buffer object's * data store is currently mapped. * @errors GL_INVALID_OPERATION is generated if a geometry shader is active and mode is incompatible with the input primitive type * of the geometry shader in the currently installed program object. * @errors GL_INVALID_OPERATION is generated if mode is GL_PATCHES and no tessellation control shader is active. * @errors GL_INVALID_OPERATION is generated if glEndTransformFeedback has never been called while the transform feedback object named * by id was bound. * */ #define glDrawTransformFeedbackStream glad_glDrawTransformFeedbackStream int ident = 0; // TODO: typedef void (*glCopyTextureSubImage3D)(int n, const int * pipelines); /** * @name glUniform - Specify the value of a uniform variable for the current program object * @usage * @param location Specifies the location of the uniform variable to be modified. * @param count For the vector (glUniform*v) commands, specifies the number of elements that are to be modified. This should be 1 * if the targeted uniform variable is not an array, and 1 or more if it is an array. * @param transpose For the matrix commands, specifies whether to transpose the matrix as the values are loaded into the uniform variable. * @param v0, v1, v2, v3 For the scalar commands, specifies the new values to be used for the specified uniform variable. * @param value For the vector and matrix commands, specifies a pointer to an array of count values that * will be used to update the specified uniform variable. * @note glUniform1i and glUniform1iv are the only two functions that may be used to load uniform variables defined as sampler types. * Loading samplers with any other function will result in a GL_INVALID_OPERATION error. * @note If count is greater than 1 and the indicated uniform variable is not an array, a GL_INVALID_OPERATION error is generated * and the specified uniform variable will remain unchanged. * @note Other than the preceding exceptions, if the type and size of the uniform variable as defined in the shader do not match * the type and size specified in the name of the command used to load its value, a GL_INVALID_OPERATION error will be generated * and the specified uniform variable will remain unchanged. * @note If location is a value other than -1 and it does not represent a valid uniform variable location in the current program * object, an error will be generated, and no changes will be made to the uniform variable storage of the current program object. * If location is equal to -1, the data passed in will be silently ignored and the specified uniform variable will not * be changed. * * @errors GL_INVALID_OPERATION is generated if there is no current program object. * @errors GL_INVALID_OPERATION is generated if the size of the uniform variable declared in the shader does not match the size indicated * by the glUniform command. * @errors GL_INVALID_OPERATION is generated if one of the signed or unsigned integer variants of this function is used to load a uniform * variable of type float, vec2, vec3, vec4, or an array of these, or if one of the floating-point variants of this * function is used to load a uniform variable of type int, ivec2, ivec3, ivec4, unsigned int, uvec2, uvec3, uvec4, or an array * of these. * @errors GL_INVALID_OPERATION is generated if one of the signed integer variants of this function is used to load a uniform variable * of type unsigned int, uvec2, uvec3, uvec4, or an array of these. * @errors GL_INVALID_OPERATION is generated if one of the unsigned integer variants of this function is used to load a uniform variable * of type int, ivec2, ivec3, ivec4, or an array of these. * @errors GL_INVALID_OPERATION is generated if location is an invalid uniform location for the current program object and location * is not equal to -1. * @errors GL_INVALID_VALUE is generated if count is less than 0. * @errors GL_INVALID_OPERATION is generated if count is greater than 1 and the indicated uniform variable is not an array variable. * @errors GL_INVALID_OPERATION is generated if a sampler is loaded using a command other than glUniform1i and glUniform1iv. * */ #define glUniform1d glad_glUniform1d /** * @name glUniform - Specify the value of a uniform variable for the current program object * @usage * @param location Specifies the location of the uniform variable to be modified. * @param count For the vector (glUniform*v) commands, specifies the number of elements that are to be modified. This should be 1 * if the targeted uniform variable is not an array, and 1 or more if it is an array. * @param transpose For the matrix commands, specifies whether to transpose the matrix as the values are loaded into the uniform variable. * @param v0, v1, v2, v3 For the scalar commands, specifies the new values to be used for the specified uniform variable. * @param value For the vector and matrix commands, specifies a pointer to an array of count values that * will be used to update the specified uniform variable. * @note glUniform1i and glUniform1iv are the only two functions that may be used to load uniform variables defined as sampler types. * Loading samplers with any other function will result in a GL_INVALID_OPERATION error. * @note If count is greater than 1 and the indicated uniform variable is not an array, a GL_INVALID_OPERATION error is generated * and the specified uniform variable will remain unchanged. * @note Other than the preceding exceptions, if the type and size of the uniform variable as defined in the shader do not match * the type and size specified in the name of the command used to load its value, a GL_INVALID_OPERATION error will be generated * and the specified uniform variable will remain unchanged. * @note If location is a value other than -1 and it does not represent a valid uniform variable location in the current program * object, an error will be generated, and no changes will be made to the uniform variable storage of the current program object. * If location is equal to -1, the data passed in will be silently ignored and the specified uniform variable will not * be changed. * * @errors GL_INVALID_OPERATION is generated if there is no current program object. * @errors GL_INVALID_OPERATION is generated if the size of the uniform variable declared in the shader does not match the size indicated * by the glUniform command. * @errors GL_INVALID_OPERATION is generated if one of the signed or unsigned integer variants of this function is used to load a uniform * variable of type float, vec2, vec3, vec4, or an array of these, or if one of the floating-point variants of this * function is used to load a uniform variable of type int, ivec2, ivec3, ivec4, unsigned int, uvec2, uvec3, uvec4, or an array * of these. * @errors GL_INVALID_OPERATION is generated if one of the signed integer variants of this function is used to load a uniform variable * of type unsigned int, uvec2, uvec3, uvec4, or an array of these. * @errors GL_INVALID_OPERATION is generated if one of the unsigned integer variants of this function is used to load a uniform variable * of type int, ivec2, ivec3, ivec4, or an array of these. * @errors GL_INVALID_OPERATION is generated if location is an invalid uniform location for the current program object and location * is not equal to -1. * @errors GL_INVALID_VALUE is generated if count is less than 0. * @errors GL_INVALID_OPERATION is generated if count is greater than 1 and the indicated uniform variable is not an array variable. * @errors GL_INVALID_OPERATION is generated if a sampler is loaded using a command other than glUniform1i and glUniform1iv. * */ #define glUniform glad_glUniform1d /** * @name glDrawTransformFeedbackStream - render primitives using a count derived from a specifed stream of a transform feedback object * @usage * @code void glDrawTransformFeedbackStream(GLenum mode, GLuint id, GLuint stream); @endcode * @param mode Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, * GL_LINES, GL_LINE_STRIP_ADJACENCY, GL_LINES_ADJACENCY, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, * GL_TRIANGLES, GL_TRIANGLE_STRIP_ADJACENCY, GL_TRIANGLES_ADJACENCY, and GL_PATCHES * are accepted. * @param id Specifies the name of a transform feedback object from which to retrieve a primitive count. * @param stream Specifies the index of the transform feedback stream from which to retrieve a primitive count. * * @errors GL_INVALID_ENUM is generated if mode is not an accepted value. * @errors GL_INVALID_VALUE is generated if id is not the name of a transform feedback object. * @errors GL_INVALID_VALUE is generated if stream is greater than or equal to the value of GL_MAX_VERTEX_STREAMS. * @errors GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to an enabled array and the buffer object's * data store is currently mapped. * @errors GL_INVALID_OPERATION is generated if a geometry shader is active and mode is incompatible with the input primitive type * of the geometry shader in the currently installed program object. * @errors GL_INVALID_OPERATION is generated if mode is GL_PATCHES and no tessellation control shader is active. * @errors GL_INVALID_OPERATION is generated if glEndTransformFeedback has never been called while the transform feedback object named * by id was bound. * */ void glDrawTransformFeedbackStream() { } void func1() { } void func2 () { } void func3 () { } #endif //GL_DOC_GENERATOR_TEST_H