Last active
December 1, 2016 05:33
-
-
Save rikkimax/d971f3628c76eaa8dc56702a26be8035 to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /** | |
| * This is a set of OpenGL bindings. | |
| * | |
| * Generated by ./ogl_gen .... | |
| * Do not modify. Regenerate if changes are required. | |
| */ | |
| module opengl.bindings; | |
| import std.traits : Unqual; | |
| /// | |
| alias GLboolean = bool; | |
| /// | |
| alias GLbyte = byte; | |
| /// | |
| alias GLubyte = ubyte; | |
| /// | |
| alias GLshort = short; | |
| /// | |
| alias GLushort = ushort; | |
| /// | |
| alias GLint = int; | |
| /// | |
| alias GLuint = uint; | |
| /// | |
| alias GLfixed = int; | |
| /// | |
| alias GLint64 = long; | |
| /// | |
| alias GLuint64 = ulong; | |
| /// | |
| alias GLsizei = uint; | |
| /// | |
| alias GLenum = uint; | |
| /// | |
| alias GLintptr = ptrdiff_t; | |
| /// | |
| alias GLsizeiptr = ptrdiff_t; | |
| /// | |
| alias GLsync = void*; | |
| /// | |
| alias GLbitfield = uint; | |
| /** | |
| * 16-bits floating point type (Half). | |
| * | |
| * Implements conversion from ftp://www.fox-toolkit.org/pub/fasthalffloatconversion.pdf | |
| * by Jeroen van der Zijp. | |
| * Supports builtin operations that float support, but computations are performed in 32-bits | |
| * float and converted back. | |
| * | |
| * Bugs: | |
| * rounding is not IEEE compliant. | |
| * | |
| * Authors: | |
| * Guillaume Piolat, Jeroen van der Zijp | |
| */ | |
| struct GLhalf { | |
| ushort value; | |
| /// Construct a half from a float. | |
| @nogc this(float n) pure nothrow { | |
| opAssign!float(n); | |
| } | |
| /// Construct a half from another half. | |
| @nogc this(GLhalf h) pure nothrow { | |
| opAssign!GLhalf(h); | |
| } | |
| /// Converts to a pretty string. | |
| string toString() const { | |
| import std.string : format; | |
| return format("%s", value); | |
| } | |
| /// Converts to a float. | |
| @nogc float toFloat() pure const nothrow { | |
| return GLhalfToFloat(value); | |
| } | |
| /// Assign with float. | |
| @nogc ref GLhalf opAssign(T)(T other) pure nothrow if (is(T: float)) { | |
| value = floatToGLhalf(other); | |
| return this; | |
| } | |
| /// Assign with another half. | |
| @nogc ref GLhalf opAssign(T)(T other) pure nothrow if (is(Unqual!T == GLhalf)) { | |
| value = other.value; | |
| return this; | |
| } | |
| @nogc GLhalf opBinary(string op, T)(T o) pure const nothrow if (is(Unqual!T == GLhalf)) { | |
| return opBinary!(op, float)(o.toFloat()); | |
| } | |
| @nogc GLhalf opBinary(string op, T)(T o) pure const nothrow if (is(T: float)) { | |
| GLhalf res = void; | |
| mixin("res.value = floatToGLHalf(toFloat() " ~ op ~ "o);"); | |
| return res; | |
| } | |
| @nogc ref GLhalf opOpAssign(string op, T)(T o) pure nothrow { | |
| GLhalf res = opBinary!(op, T)(o); | |
| this = res; | |
| return this; | |
| } | |
| @nogc GLhalf opUnary(string op)() pure const nothrow if (op == "+" || op == "-") { | |
| static if (op == "-") { | |
| GLhalf h = this; | |
| h.value ^= 0x8000; // flip sign bit | |
| return h; | |
| } else static if (op == "+") | |
| return this; | |
| } | |
| @nogc bool opEquals(T)(T other) pure const nothrow if (!is(Unqual!T == GLhalf)) { | |
| return this == half(other); | |
| } | |
| @nogc bool opEquals(T)(T other) pure const nothrow if (is(Unqual!T == GLhalf)) { | |
| return value == other.value; | |
| } | |
| } | |
| static assert (GLhalf.sizeof == 2); | |
| private { | |
| union uint_float { | |
| float f; | |
| uint ui; | |
| } | |
| /// Converts from float to GLhalf. | |
| @nogc ushort floatToGLhalf(float f) pure nothrow { | |
| uint_float uf = void; | |
| uf.f = f; | |
| uint idx = (uf.ui >> 23) & 0x1ff; | |
| return cast(ushort)(basetable[idx] + ((uf.ui & 0x007fffff) >> shifttable[idx])); | |
| } | |
| /// Converts from GLhalf to float. | |
| @nogc float GLhalfToFloat(ushort h) pure nothrow { | |
| uint_float uf = void; | |
| uf.ui = mantissatable[offsettable[h>>10] + (h & 0x3ff)] + exponenttable[h>>10]; | |
| return uf.f; | |
| } | |
| unittest { | |
| GLhalf a = 1.0f; | |
| assert (a == 1); | |
| GLhalf b = 2.0f; | |
| assert (a * 2 == b); | |
| GLhalf c = a + b; | |
| GLhalf d = (b / a - c) ; | |
| assert (-d == 1); | |
| } | |
| // build tables through CTFE | |
| static immutable uint[2048] mantissatable = (){ | |
| uint[2048] t; | |
| t[0] = 0; | |
| for (uint i = 1; i < 1024; ++i) | |
| { | |
| uint m = i << 13; // zero pad mantissa bits | |
| uint e = 0; // zero exponent | |
| while(0 == (m & 0x00800000)) // while not normalized | |
| { | |
| e -= 0x00800000; // decrement exponent (1<<23) | |
| m = m << 1; // shift mantissa | |
| } | |
| m = m & (~0x00800000); // clear leading 1 bit | |
| e += 0x38800000; // adjust bias ((127-14)<<23) | |
| t[i] = m | e; // return combined number | |
| } | |
| for (uint i = 1024; i < 2047; ++i) | |
| t[i] = 0x38000000 + ((i-1024) << 13); | |
| return t; | |
| }(); | |
| static immutable uint[64] exponenttable = (){ | |
| uint[64] t; | |
| t[0] = 0; | |
| for (uint i = 1; i <= 30; ++i) | |
| t[i] = i << 23; | |
| t[31] = 0x47800000; | |
| t[32] = 0x80000000; | |
| for (uint i = 33; i <= 62; ++i) | |
| t[i] = 0x80000000 + ((i - 32) << 23); | |
| t[63] = 0xC7800000; | |
| return t; | |
| }(); | |
| static immutable ushort[64] offsettable = (){ | |
| ushort[64] t; | |
| t[] = 1024; | |
| t[0] = t[32] = 0; | |
| return t; | |
| }(); | |
| static immutable ushort[512] basetable = (){ | |
| ushort[512] t; | |
| for (uint i = 0; i < 256; ++i) | |
| { | |
| int e = cast(int)i - 127; | |
| if (e < -24) | |
| { | |
| t[i | 0x000] = 0x0000; | |
| t[i | 0x100] = 0x8000; | |
| } | |
| else if(e < -14) | |
| { | |
| t[i | 0x000] = (0x0400 >> (-e - 14)); | |
| t[i | 0x100] = (0x0400 >> (-e - 14)) | 0x8000; | |
| } | |
| else if(e <= 15) | |
| { | |
| t[i | 0x000] = cast(ushort)((e + 15) << 10); | |
| t[i | 0x100] = cast(ushort)((e + 15) << 10) | 0x8000; | |
| } | |
| else | |
| { | |
| t[i | 0x000] = 0x7C00; | |
| t[i | 0x100] = 0xFC00; | |
| } | |
| } | |
| return t; | |
| }(); | |
| static immutable ubyte[512] shifttable = (){ | |
| ubyte[512] t; | |
| for (uint i = 0; i < 256; ++i) | |
| { | |
| int e = cast(int)i - 127; | |
| if (e < -24) | |
| { | |
| t[i | 0x000] = 24; | |
| t[i | 0x100] = 24; | |
| } | |
| else if(e < -14) | |
| { | |
| t[i | 0x000] = cast(ubyte)(-e - 1); | |
| t[i | 0x100] = cast(ubyte)(-e - 1); | |
| } | |
| else if(e <= 15) | |
| { | |
| t[i | 0x000]=13; | |
| t[i | 0x100]=13; | |
| } | |
| else if (e < 128) | |
| { | |
| t[i | 0x000]=24; | |
| t[i | 0x100]=24; | |
| } | |
| else | |
| { | |
| t[i | 0x000] = 13; | |
| t[i | 0x100] = 13; | |
| } | |
| } | |
| return t; | |
| }(); | |
| } | |
| /// | |
| alias GLfloat = float; | |
| /// | |
| alias GLclampf = float; | |
| /// | |
| alias GLdouble = double; | |
| /// | |
| alias GLclampd = double; | |
| /// | |
| alias GLchar = char; | |
| /// | |
| alias GLuintptr = size_t; | |
| /// | |
| alias GLvoid = void; | |
| /// | |
| alias GLDEBUGPROC = void function(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, const void* userParam); | |
| /// Container for bindings | |
| struct GL { | |
| /** | |
| * glActiveShaderProgram: man4/glActiveShaderProgram.xml | |
| * | |
| * $(P $(D_INLINECODE glActiveShaderProgram) sets the linked program named by$(D_INLINECODE program) to be the active program for the program pipeline object$(D_INLINECODE pipeline). The active program in the active program pipeline object is the target of calls to$(D_INLINECODE glUniform) when no program has been made current through a call to$(D_INLINECODE glUseProgram).) | |
| * | |
| * Params: | |
| * pipeline = $(P Specifies the program pipeline object to set the active program object for.) | |
| * program = $(P Specifies the program object to set as the active program pipeline object$(D_INLINECODE pipeline).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenProgramPipelines),$(D_INLINECODE glDeleteProgramPipelines),$(D_INLINECODE glIsProgramPipeline),$(D_INLINECODE glUseProgram),$(D_INLINECODE glUniform)) | |
| */ | |
| extern(C) void function(GLuint pipeline, GLuint program) @system @nogc nothrow glActiveShaderProgram; | |
| /** | |
| * glActiveTexture: man4/glActiveTexture.xml | |
| * | |
| * $(P $(D_INLINECODE glActiveTexture) selects which texture unit subsequent texture state calls will affect. The number of texture units an implementation supports is implementation dependent, but must be at least 80.) | |
| * | |
| * Params: | |
| * texture = $(P Specifies which texture unit to make active. The number of texture units is implementation dependent, but must be at least 80.$(D_INLINECODE texture) must be one of$(D_INLINECODE GL_TEXTURE), where ranges from zero to the value of$(D_INLINECODE GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS) minus one. The initial value is$(D_INLINECODE GL_TEXTURE0).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenTextures),$(D_INLINECODE glBindTexture),$(D_INLINECODE glCompressedTexImage1D),$(D_INLINECODE glCompressedTexImage2D),$(D_INLINECODE glCompressedTexImage3D),$(D_INLINECODE glCompressedTexSubImage1D),$(D_INLINECODE glCompressedTexSubImage2D),$(D_INLINECODE glCompressedTexSubImage3D),$(D_INLINECODE glCopyTexImage1D),$(D_INLINECODE glCopyTexImage2D),$(D_INLINECODE glCopyTexSubImage1D),$(D_INLINECODE glCopyTexSubImage2D),$(D_INLINECODE glCopyTexSubImage3D),$(D_INLINECODE glDeleteTextures)$(D_INLINECODE glIsTexture),$(D_INLINECODE glTexImage1D),$(D_INLINECODE glTexImage2D),$(D_INLINECODE glTexImage2DMultisample),$(D_INLINECODE glTexImage3D),$(D_INLINECODE glTexImage3DMultisample),$(D_INLINECODE glTexSubImage1D),$(D_INLINECODE glTexSubImage2D),$(D_INLINECODE glTexSubImage3D),$(D_INLINECODE glTexParameter),) | |
| */ | |
| extern(C) void function(GLenum texture) @system @nogc nothrow glActiveTexture; | |
| /** | |
| * glAttachShader: man4/glAttachShader.xml | |
| * | |
| * $(P In order to create a complete shader program, there must be a way to specify the list of things that will be linked together. Program objects provide this mechanism. Shaders that are to be linked together in a program object must first be attached to that program object.$(D_INLINECODE glAttachShader) attaches the shader object specified by$(D_INLINECODE shader) to the program object specified by$(D_INLINECODE program). This indicates that$(D_INLINECODE shader) will be included in link operations that will be performed on$(D_INLINECODE program).)$(P All operations that can be performed on a shader object are valid whether or not the shader object is attached to a program object. It is permissible to attach a shader object to a program object before source code has been loaded into the shader object or before the shader object has been compiled. It is permissible to attach multiple shader objects of the same type because each may contain a portion of the complete shader. It is also permissible to attach a shader object to more than one program object. If a shader object is deleted while it is attached to a program object, it will be flagged for deletion, and deletion will not occur until$(D_INLINECODE glDetachShader) is called to detach it from all program objects to which it is attached.) | |
| * | |
| * Params: | |
| * program = $(P Specifies the program object to which a shader object will be attached.) | |
| * shader = $(P Specifies the shader object that is to be attached.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2003-2005 3Dlabs Inc. Ltd. Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glCompileShader),$(D_INLINECODE glCreateShader),$(D_INLINECODE glDeleteShader),$(D_INLINECODE glDetachShader),$(D_INLINECODE glLinkProgram),$(D_INLINECODE glShaderSource)) | |
| */ | |
| extern(C) void function(GLuint program, GLuint shader) @system @nogc nothrow glAttachShader; | |
| /** | |
| * glBeginConditionalRender: man4/glBeginConditionalRender.xml | |
| * | |
| * $(P Conditional rendering is started using$(D_INLINECODE glBeginConditionalRender) and ended using$(D_INLINECODE glEndConditionalRender). During conditional rendering, all vertex array commands, as well as$(D_INLINECODE glClear) and$(D_INLINECODE glClearBuffer) have no effect if the ($(D_INLINECODE GL_SAMPLES_PASSED) ) result of the query object$(D_INLINECODE id) is zero, or if the ($(D_INLINECODE GL_ANY_SAMPLES_PASSED) ) result is$(D_INLINECODE GL_FALSE). The results of commands setting the current vertex state, such as$(D_INLINECODE glVertexAttrib) are undefined. If the ($(D_INLINECODE GL_SAMPLES_PASSED) ) result is non-zero or if the ($(D_INLINECODE GL_ANY_SAMPLES_PASSED) ) result is$(D_INLINECODE GL_TRUE), such commands are not discarded. The$(D_INLINECODE id) parameter to$(D_INLINECODE glBeginConditionalRender) must be the name of a query object previously returned from a call to$(D_INLINECODE glGenQueries).$(D_INLINECODE mode) specifies how the results of the query object are to be interpreted. If$(D_INLINECODE mode) is$(D_INLINECODE GL_QUERY_WAIT), the GL waits for the results of the query to be available and then uses the results to determine if subsequent rendering commands are discarded. If$(D_INLINECODE mode) is$(D_INLINECODE GL_QUERY_NO_WAIT), the GL may choose to unconditionally execute the subsequent rendering commands without waiting for the query to complete.)$(P If$(D_INLINECODE mode) is$(D_INLINECODE GL_QUERY_BY_REGION_WAIT), the GL will also wait for occlusion query results and discard rendering commands if the result of the occlusion query is zero. If the query result is non-zero, subsequent rendering commands are executed, but the GL may discard the results of the commands for any region of the framebuffer that did not contribute to the sample count in the specified occlusion query. Any such discarding is done in an implementation-dependent manner, but the rendering command results may not be discarded for any samples that contributed to the occlusion query sample count. If$(D_INLINECODE mode) is$(D_INLINECODE GL_QUERY_BY_REGION_NO_WAIT), the GL operates as in$(D_INLINECODE GL_QUERY_BY_REGION_WAIT), but may choose to unconditionally execute the subsequent rendering commands without waiting for the query to complete.) | |
| * | |
| * $(P $(D_INLINECODE glBeginConditionalRender) and$(D_INLINECODE glEndConditionalRender) are available only if the GL version is 3.0 or greater.)$(P The$(D_INLINECODE GL_ANY_SAMPLES_PASSED) query result is available only if the GL version is 3.3 or greater.) | |
| * | |
| * Params: | |
| * id = $(P Specifies the name of an occlusion query object whose results are used to determine if the rendering commands are discarded.) | |
| * mode = $(P Specifies how$(D_INLINECODE glBeginConditionalRender) interprets the results of the occlusion query.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenQueries),$(D_INLINECODE glDeleteQueries),$(D_INLINECODE glBeginQuery)) | |
| */ | |
| extern(C) void function(GLuint id, GLenum mode) @system @nogc nothrow glBeginConditionalRender; | |
| /** | |
| * glBeginQuery: man4/glBeginQuery.xml | |
| * | |
| * $(P $(D_INLINECODE glBeginQuery) and$(D_INLINECODE glEndQuery) delimit the boundaries of a query object.$(D_INLINECODE query) must be a name previously returned from a call to$(D_INLINECODE glGenQueries). If a query object with name$(D_INLINECODE id) does not yet exist it is created with the type determined by$(D_INLINECODE target).$(D_INLINECODE target) must be one of$(D_INLINECODE GL_SAMPLES_PASSED),$(D_INLINECODE GL_ANY_SAMPLES_PASSED),$(D_INLINECODE GL_PRIMITIVES_GENERATED),$(D_INLINECODE GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN), or$(D_INLINECODE GL_TIME_ELAPSED). The behavior of the query object depends on its type and is as follows.)$(P If$(D_INLINECODE target) is$(D_INLINECODE GL_SAMPLES_PASSED),$(D_INLINECODE id) must be an unused name, or the name of an existing occlusion query object. When$(D_INLINECODE glBeginQuery) is executed, the query object's samples-passed counter is reset to 0. Subsequent rendering will increment the counter for every sample that passes the depth test. If the value of$(D_INLINECODE GL_SAMPLE_BUFFERS) is 0, then the samples-passed count is incremented by 1 for each fragment. If the value of$(D_INLINECODE GL_SAMPLE_BUFFERS) is 1, then the samples-passed count is incremented by the number of samples whose coverage bit is set. However, implementations, at their discression may instead increase the samples-passed count by the value of$(D_INLINECODE GL_SAMPLES) if any sample in the fragment is covered. When$(D_INLINECODE glEndQuery) is executed, the samples-passed counter is assigned to the query object's result value. This value can be queried by calling$(D_INLINECODE glGetQueryObject) with$(D_INLINECODE pname)$(D_INLINECODE GL_QUERY_RESULT).)$(P If$(D_INLINECODE target) is$(D_INLINECODE GL_ANY_SAMPLES_PASSED) or$(D_INLINECODE GL_ANY_SAMPLES_PASSED_CONSERVATIVE),$(D_INLINECODE id) must be an unused name, or the name of an existing boolean occlusion query object. When$(D_INLINECODE glBeginQuery) is executed, the query object's samples-passed flag is reset to$(D_INLINECODE GL_FALSE). Subsequent rendering causes the flag to be set to$(D_INLINECODE GL_TRUE) if any sample passes the depth test in the case of$(D_INLINECODE GL_ANY_SAMPLES_PASSED), or if the implementation determines that any sample might pass the depth test in the case of$(D_INLINECODE GL_ANY_SAMPLES_PASSED_CONSERVATIVE). The implementation may be able to provide a more efficient test in the case of$(D_INLINECODE GL_ANY_SAMPLES_PASSED_CONSERVATIVE) if some false positives are acceptable to the application. When$(D_INLINECODE glEndQuery) is executed, the samples-passed flag is assigned to the query object's result value. This value can be queried by calling$(D_INLINECODE glGetQueryObject) with$(D_INLINECODE pname)$(D_INLINECODE GL_QUERY_RESULT).)$(P If$(D_INLINECODE target) is$(D_INLINECODE GL_PRIMITIVES_GENERATED),$(D_INLINECODE id) must be an unused name, or the name of an existing primitive query object previously bound to the$(D_INLINECODE GL_PRIMITIVES_GENERATED) query binding. When$(D_INLINECODE glBeginQuery) is executed, the query object's primitives-generated counter is reset to 0. Subsequent rendering will increment the counter once for every vertex that is emitted from the geometry shader, or from the vertex shader if no geometry shader is present. When$(D_INLINECODE glEndQuery) is executed, the primitives-generated counter is assigned to the query object's result value. This value can be queried by calling$(D_INLINECODE glGetQueryObject) with$(D_INLINECODE pname)$(D_INLINECODE GL_QUERY_RESULT).)$(P If$(D_INLINECODE target) is$(D_INLINECODE GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN),$(D_INLINECODE id) must be an unused name, or the name of an existing primitive query object previously bound to the$(D_INLINECODE GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN) query binding. When$(D_INLINECODE glBeginQuery) is executed, the query object's primitives-written counter is reset to 0. Subsequent rendering will increment the counter once for every vertex that is written into the bound transform feedback buffer(s). If transform feedback mode is not activated between the call to$(D_INLINECODE glBeginQuery) and$(D_INLINECODE glEndQuery), the counter will not be incremented. When$(D_INLINECODE glEndQuery) is executed, the primitives-written counter is assigned to the query object's result value. This value can be queried by calling$(D_INLINECODE glGetQueryObject) with$(D_INLINECODE pname)$(D_INLINECODE GL_QUERY_RESULT).)$(P If$(D_INLINECODE target) is$(D_INLINECODE GL_TIME_ELAPSED),$(D_INLINECODE id) must be an unused name, or the name of an existing timer query object previously bound to the$(D_INLINECODE GL_TIME_ELAPSED) query binding. When$(D_INLINECODE glBeginQuery) is executed, the query object's time counter is reset to 0. When$(D_INLINECODE glEndQuery) is executed, the elapsed server time that has passed since the call to$(D_INLINECODE glBeginQuery) is written into the query object's time counter. This value can be queried by calling$(D_INLINECODE glGetQueryObject) with$(D_INLINECODE pname)$(D_INLINECODE GL_QUERY_RESULT).)$(P Querying the$(D_INLINECODE GL_QUERY_RESULT) implicitly flushes the GL pipeline until the rendering delimited by the query object has completed and the result is available.$(D_INLINECODE GL_QUERY_RESULT_AVAILABLE) can be queried to determine if the result is immediately available or if the rendering is not yet complete.) | |
| * | |
| * $(P If the query target's count exceeds the maximum value representable in the number of available bits, as reported by$(D_INLINECODE glGetQueryiv) with$(D_INLINECODE target) set to the appropriate query target and$(D_INLINECODE pname)$(D_INLINECODE GL_QUERY_COUNTER_BITS), the count becomes undefined.)$(P An implementation may support 0 bits in its counter, in which case query results are always undefined and essentially useless.)$(P When$(D_INLINECODE GL_SAMPLE_BUFFERS) is 0, the samples-passed counter of an occlusion query will increment once for each fragment that passes the depth test. When$(D_INLINECODE GL_SAMPLE_BUFFERS) is 1, an implementation may either increment the samples-passed counter individually for each sample of a fragment that passes the depth test, or it may choose to increment the counter for all samples of a fragment if any one of them passes the depth test.)$(P The query targets$(D_INLINECODE GL_ANY_SAMPLES_PASSED), and$(D_INLINECODE GL_TIME_ELAPSED) are availale only if the GL version is 3.3 or higher.)$(P The query target$(D_INLINECODE GL_ANY_SAMPLES_PASSED_CONSERVATIVE) is available only of the GL version is 4.3 or higher.) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target type of query object established between$(D_INLINECODE glBeginQuery) and the subsequent$(D_INLINECODE glEndQuery). The symbolic constant must be one of$(D_INLINECODE GL_SAMPLES_PASSED),$(D_INLINECODE GL_ANY_SAMPLES_PASSED),$(D_INLINECODE GL_ANY_SAMPLES_PASSED_CONSERVATIVE),$(D_INLINECODE GL_PRIMITIVES_GENERATED),$(D_INLINECODE GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN), or$(D_INLINECODE GL_TIME_ELAPSED).) | |
| * id = $(P Specifies the name of a query object.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2005 Addison-Wesley. Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBeginQueryIndexed),$(D_INLINECODE glDeleteQueries),$(D_INLINECODE glEndQuery),$(D_INLINECODE glGenQueries),$(D_INLINECODE glGetQueryObject),$(D_INLINECODE glGetQueryiv),$(D_INLINECODE glIsQuery)) | |
| */ | |
| extern(C) void function(GLenum target, GLuint id) @system @nogc nothrow glBeginQuery; | |
| /** | |
| * glBeginQueryIndexed: man4/glBeginQueryIndexed.xml | |
| * | |
| * $(P $(D_INLINECODE glBeginQueryIndexed) and$(D_INLINECODE glEndQueryIndexed) delimit the boundaries of a query object.$(D_INLINECODE query) must be a name previously returned from a call to$(D_INLINECODE glGenQueries). If a query object with name$(D_INLINECODE id) does not yet exist it is created with the type determined by$(D_INLINECODE target).$(D_INLINECODE target) must be one of$(D_INLINECODE GL_SAMPLES_PASSED),$(D_INLINECODE GL_ANY_SAMPLES_PASSED),$(D_INLINECODE GL_PRIMITIVES_GENERATED),$(D_INLINECODE GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN), or$(D_INLINECODE GL_TIME_ELAPSED). The behavior of the query object depends on its type and is as follows.)$(P $(D_INLINECODE index) specifies the index of the query target and must be between a$(D_INLINECODE target) -specific maximum.)$(P If$(D_INLINECODE target) is$(D_INLINECODE GL_SAMPLES_PASSED),$(D_INLINECODE id) must be an unused name, or the name of an existing occlusion query object. When$(D_INLINECODE glBeginQueryIndexed) is executed, the query object's samples-passed counter is reset to 0. Subsequent rendering will increment the counter for every sample that passes the depth test. If the value of$(D_INLINECODE GL_SAMPLE_BUFFERS) is 0, then the samples-passed count is incremented by 1 for each fragment. If the value of$(D_INLINECODE GL_SAMPLE_BUFFERS) is 1, then the samples-passed count is incremented by the number of samples whose coverage bit is set. However, implementations, at their discression may instead increase the samples-passed count by the value of$(D_INLINECODE GL_SAMPLES) if any sample in the fragment is covered. When$(D_INLINECODE glEndQueryIndexed) is executed, the samples-passed counter is assigned to the query object's result value. This value can be queried by calling$(D_INLINECODE glGetQueryObject) with$(D_INLINECODE pname)$(D_INLINECODE GL_QUERY_RESULT). When$(D_INLINECODE target) is$(D_INLINECODE GL_SAMPLES_PASSED),$(D_INLINECODE index) must be zero.)$(P If$(D_INLINECODE target) is$(D_INLINECODE GL_ANY_SAMPLES_PASSED),$(D_INLINECODE id) must be an unused name, or the name of an existing boolean occlusion query object. When$(D_INLINECODE glBeginQueryIndexed) is executed, the query object's samples-passed flag is reset to$(D_INLINECODE GL_FALSE). Subsequent rendering causes the flag to be set to$(D_INLINECODE GL_TRUE) if any sample passes the depth test. When$(D_INLINECODE glEndQueryIndexed) is executed, the samples-passed flag is assigned to the query object's result value. This value can be queried by calling$(D_INLINECODE glGetQueryObject) with$(D_INLINECODE pname)$(D_INLINECODE GL_QUERY_RESULT). When$(D_INLINECODE target) is$(D_INLINECODE GL_ANY_SAMPLES_PASSED),$(D_INLINECODE index) must be zero.)$(P If$(D_INLINECODE target) is$(D_INLINECODE GL_PRIMITIVES_GENERATED),$(D_INLINECODE id) must be an unused name, or the name of an existing primitive query object previously bound to the$(D_INLINECODE GL_PRIMITIVES_GENERATED) query binding. When$(D_INLINECODE glBeginQueryIndexed) is executed, the query object's primitives-generated counter is reset to 0. Subsequent rendering will increment the counter once for every vertex that is emitted from the geometry shader to the stream given by$(D_INLINECODE index), or from the vertex shader if$(D_INLINECODE index) is zero and no geometry shader is present. When$(D_INLINECODE glEndQueryIndexed) is executed, the primitives-generated counter for stream$(D_INLINECODE index) is assigned to the query object's result value. This value can be queried by calling$(D_INLINECODE glGetQueryObject) with$(D_INLINECODE pname)$(D_INLINECODE GL_QUERY_RESULT). When$(D_INLINECODE target) is$(D_INLINECODE GL_PRIMITIVES_GENERATED),$(D_INLINECODE index) must be less than the value of$(D_INLINECODE GL_MAX_VERTEX_STREAMS).)$(P If$(D_INLINECODE target) is$(D_INLINECODE GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN),$(D_INLINECODE id) must be an unused name, or the name of an existing primitive query object previously bound to the$(D_INLINECODE GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN) query binding. When$(D_INLINECODE glBeginQueryIndexed) is executed, the query object's primitives-written counter for the stream specified by$(D_INLINECODE index) is reset to 0. Subsequent rendering will increment the counter once for every vertex that is written into the bound transform feedback buffer(s) for stream$(D_INLINECODE index). If transform feedback mode is not activated between the call to$(D_INLINECODE glBeginQueryIndexed) and$(D_INLINECODE glEndQueryIndexed), the counter will not be incremented. When$(D_INLINECODE glEndQueryIndexed) is executed, the primitives-written counter for stream$(D_INLINECODE index) is assigned to the query object's result value. This value can be queried by calling$(D_INLINECODE glGetQueryObject) with$(D_INLINECODE pname)$(D_INLINECODE GL_QUERY_RESULT). When$(D_INLINECODE target) is$(D_INLINECODE GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN),$(D_INLINECODE index) must be less than the value of$(D_INLINECODE GL_MAX_VERTEX_STREAMS).)$(P If$(D_INLINECODE target) is$(D_INLINECODE GL_TIME_ELAPSED),$(D_INLINECODE id) must be an unused name, or the name of an existing timer query object previously bound to the$(D_INLINECODE GL_TIME_ELAPSED) query binding. When$(D_INLINECODE glBeginQueryIndexed) is executed, the query object's time counter is reset to 0. When$(D_INLINECODE glEndQueryIndexed) is executed, the elapsed server time that has passed since the call to$(D_INLINECODE glBeginQueryIndexed) is written into the query object's time counter. This value can be queried by calling$(D_INLINECODE glGetQueryObject) with$(D_INLINECODE pname)$(D_INLINECODE GL_QUERY_RESULT). When$(D_INLINECODE target) is$(D_INLINECODE GL_TIME_ELAPSED),$(D_INLINECODE index) must be zero.)$(P Querying the$(D_INLINECODE GL_QUERY_RESULT) implicitly flushes the GL pipeline until the rendering delimited by the query object has completed and the result is available.$(D_INLINECODE GL_QUERY_RESULT_AVAILABLE) can be queried to determine if the result is immediately available or if the rendering is not yet complete.) | |
| * | |
| * $(P If the query target's count exceeds the maximum value representable in the number of available bits, as reported by$(D_INLINECODE glGetQueryiv) with$(D_INLINECODE target) set to the appropriate query target and$(D_INLINECODE pname)$(D_INLINECODE GL_QUERY_COUNTER_BITS), the count becomes undefined.)$(P An implementation may support 0 bits in its counter, in which case query results are always undefined and essentially useless.)$(P When$(D_INLINECODE GL_SAMPLE_BUFFERS) is 0, the samples-passed counter of an occlusion query will increment once for each fragment that passes the depth test. When$(D_INLINECODE GL_SAMPLE_BUFFERS) is 1, an implementation may either increment the samples-passed counter individually for each sample of a fragment that passes the depth test, or it may choose to increment the counter for all samples of a fragment if any one of them passes the depth test.)$(P Calling$(D_INLINECODE glBeginQuery) or$(D_INLINECODE glEndQuery) is equivalent to calling$(D_INLINECODE glBeginQueryIndexed) or$(D_INLINECODE glEndQueryIndexed) with$(D_INLINECODE index) set to zero, respectively.) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target type of query object established between$(D_INLINECODE glBeginQueryIndexed) and the subsequent$(D_INLINECODE glEndQueryIndexed). The symbolic constant must be one of$(D_INLINECODE GL_SAMPLES_PASSED),$(D_INLINECODE GL_ANY_SAMPLES_PASSED),$(D_INLINECODE GL_PRIMITIVES_GENERATED),$(D_INLINECODE GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN), or$(D_INLINECODE GL_TIME_ELAPSED).) | |
| * index = $(P Specifies the index of the query target upon which to begin the query.) | |
| * id = $(P Specifies the name of a query object.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBeginQuery),$(D_INLINECODE glDeleteQueries),$(D_INLINECODE glEndQuery),$(D_INLINECODE glGenQueries),$(D_INLINECODE glGetQueryObject),$(D_INLINECODE glGetQueryiv),$(D_INLINECODE glIsQuery)) | |
| */ | |
| extern(C) void function(GLenum target, GLuint index, GLuint id) @system @nogc nothrow glBeginQueryIndexed; | |
| /** | |
| * glBeginTransformFeedback: man4/glBeginTransformFeedback.xml | |
| * | |
| * $(P Transform feedback mode captures the values of varying variables written by the vertex shader (or, if active, the geometry shader). Transform feedback is said to be active after a call to$(D_INLINECODE glBeginTransformFeedback) until a subsequent call to$(D_INLINECODE glEndTransformFeedback). Transform feedback commands must be paired.)$(P If no geometry shader is present, while transform feedback is active the$(D_INLINECODE mode) parameter to$(D_INLINECODE glDrawArrays) must match those specified in the following table:)$(B Transform Feedback$(D_INLINECODE primitiveMode))$(B Allowed Render Primitive$(D_INLINECODE modes))$(D_INLINECODE GL_POINTS)$(D_INLINECODE GL_POINTS)$(D_INLINECODE GL_LINES)$(D_INLINECODE GL_LINES),$(D_INLINECODE GL_LINE_LOOP),$(D_INLINECODE GL_LINE_STRIP),$(D_INLINECODE GL_LINES_ADJACENCY),$(D_INLINECODE GL_LINE_STRIP_ADJACENCY)$(D_INLINECODE GL_TRIANGLES)$(D_INLINECODE GL_TRIANGLES),$(D_INLINECODE GL_TRIANGLE_STRIP),$(D_INLINECODE GL_TRIANGLE_FAN),$(D_INLINECODE GL_TRIANGLES_ADJACENCY),$(D_INLINECODE GL_TRIANGLE_STRIP_ADJACENCY)$(P If a geometry shader is present, the output primitive type from the geometry shader must match those provided in the following table:)$(B Transform Feedback$(D_INLINECODE primitiveMode))$(B Allowed Geometry Shader Output Primitive Type)$(D_INLINECODE GL_POINTS)$(D_INLINECODE points)$(D_INLINECODE GL_LINES)$(D_INLINECODE line_strip)$(D_INLINECODE GL_TRIANGLES)$(D_INLINECODE triangle_strip) | |
| * | |
| * $(P Geometry shaders, and the$(D_INLINECODE GL_TRIANGLES_ADJACENCY),$(D_INLINECODE GL_TRIANGLE_STRIP_ADJACENCY),$(D_INLINECODE GL_LINES_ADJACENCY) and$(D_INLINECODE GL_LINE_STRIP_ADJACENCY) primtive modes are available only if the GL version is 3.2 or greater.) | |
| * | |
| * Params: | |
| * primitiveMode = $(P Specify the output type of the primitives that will be recorded into the buffer objects that are bound for transform feedback.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * | |
| */ | |
| extern(C) void function(GLenum primitiveMode) @system @nogc nothrow glBeginTransformFeedback; | |
| /** | |
| * glBindAttribLocation: man4/glBindAttribLocation.xml | |
| * | |
| * $(P $(D_INLINECODE glBindAttribLocation) is used to associate a user-defined attribute variable in the program object specified by$(D_INLINECODE program) with a generic vertex attribute index. The name of the user-defined attribute variable is passed as a null terminated string in$(D_INLINECODE name). The generic vertex attribute index to be bound to this variable is specified by$(D_INLINECODE index). When$(D_INLINECODE program) is made part of current state, values provided via the generic vertex attribute$(D_INLINECODE index) will modify the value of the user-defined attribute variable specified by$(D_INLINECODE name).)$(P If$(D_INLINECODE name) refers to a matrix attribute variable,$(D_INLINECODE index) refers to the first column of the matrix. Other matrix columns are then automatically bound to locations$(D_INLINECODE index+1) for a matrix of type$(D_INLINECODE mat2);$(D_INLINECODE index+1) and$(D_INLINECODE index+2) for a matrix of type$(D_INLINECODE mat3); and$(D_INLINECODE index+1),$(D_INLINECODE index+2), and$(D_INLINECODE index+3) for a matrix of type$(D_INLINECODE mat4).)$(P This command makes it possible for vertex shaders to use descriptive names for attribute variables rather than generic variables that are numbered from zero to the value of$(D_INLINECODE GL_MAX_VERTEX_ATTRIBS) minus one. The values sent to each generic attribute index are part of current state. If a different program object is made current by calling$(D_INLINECODE glUseProgram), the generic vertex attributes are tracked in such a way that the same values will be observed by attributes in the new program object that are also bound to$(D_INLINECODE index).)$(P Attribute variable name-to-generic attribute index bindings for a program object can be explicitly assigned at any time by calling$(D_INLINECODE glBindAttribLocation). Attribute bindings do not go into effect until$(D_INLINECODE glLinkProgram) is called. After a program object has been linked successfully, the index values for generic attributes remain fixed (and their values can be queried) until the next link command occurs.)$(P Any attribute binding that occurs after the program object has been linked will not take effect until the next time the program object is linked.) | |
| * | |
| * $(P $(D_INLINECODE glBindAttribLocation) can be called before any vertex shader objects are bound to the specified program object. It is also permissible to bind a generic attribute index to an attribute variable name that is never used in a vertex shader.)$(P If$(D_INLINECODE name) was bound previously, that information is lost. Thus you cannot bind one user-defined attribute variable to multiple indices, but you can bind multiple user-defined attribute variables to the same index.)$(P Applications are allowed to bind more than one user-defined attribute variable to the same generic vertex attribute index. This is called, and it is allowed only if just one of the aliased attributes is active in the executable program, or if no path through the shader consumes more than one attribute of a set of attributes aliased to the same location. The compiler and linker are allowed to assume that no aliasing is done and are free to employ optimizations that work only in the absence of aliasing. OpenGL implementations are not required to do error checking to detect aliasing.)$(P Active attributes that are not explicitly bound will be bound by the linker when$(D_INLINECODE glLinkProgram) is called. The locations assigned can be queried by calling$(D_INLINECODE glGetAttribLocation).)$(P OpenGL copies the$(D_INLINECODE name) string when$(D_INLINECODE glBindAttribLocation) is called, so an application may free its copy of the$(D_INLINECODE name) string immediately after the function returns.)$(P Generic attribute locations may be specified in the shader source text using a$(D_INLINECODE location) layout qualifier. In this case, the location of the attribute specified in the shader's source takes precedence and may be queried by calling$(D_INLINECODE glGetAttribLocation).) | |
| * | |
| * Params: | |
| * program = $(P Specifies the handle of the program object in which the association is to be made.) | |
| * index = $(P Specifies the index of the generic vertex attribute to be bound.) | |
| * name = $(P Specifies a null terminated string containing the name of the vertex shader attribute variable to which$(D_INLINECODE index) is to be bound.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2003-2005 3Dlabs Inc. Ltd. Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDisableVertexAttribArray),$(D_INLINECODE glEnableVertexAttribArray),$(D_INLINECODE glUseProgram),$(D_INLINECODE glVertexAttrib),$(D_INLINECODE glVertexAttribPointer)) | |
| */ | |
| extern(C) void function(GLuint program, GLuint index, const GLchar* name) @system @nogc nothrow glBindAttribLocation; | |
| /** | |
| * glBindBuffer: man4/glBindBuffer.xml | |
| * | |
| * $(P $(D_INLINECODE glBindBuffer) binds a buffer object to the specified buffer binding point. Calling$(D_INLINECODE glBindBuffer) with$(D_INLINECODE target) set to one of the accepted symbolic constants and$(D_INLINECODE buffer) set to the name of a buffer object binds that buffer object name to the target. If no buffer object with name$(D_INLINECODE buffer) exists, one is created with that name. When a buffer object is bound to a target, the previous binding for that target is automatically broken.)$(P Buffer object names are unsigned integers. The value zero is reserved, but there is no default buffer object for each buffer object target. Instead,$(D_INLINECODE buffer) set to zero effectively unbinds any buffer object previously bound, and restores client memory usage for that buffer object target (if supported for that target). Buffer object names and the corresponding buffer object contents are local to the shared object space of the current GL rendering context; two rendering contexts share buffer object names only if they explicitly enable sharing between contexts through the appropriate GL windows interfaces functions.)$(P $(D_INLINECODE glGenBuffers) must be used to generate a set of unused buffer object names.)$(P The state of a buffer object immediately after it is first bound is an unmapped zero-sized memory buffer with$(D_INLINECODE GL_READ_WRITE) access and$(D_INLINECODE GL_STATIC_DRAW) usage.)$(P While a non-zero buffer object name is bound, GL operations on the target to which it is bound affect the bound buffer object, and queries of the target to which it is bound return state from the bound buffer object. While buffer object name zero is bound, as in the initial state, attempts to modify or query state on the target to which it is bound generates an$(D_INLINECODE GL_INVALID_OPERATION) error.)$(P When a non-zero buffer object is bound to the$(D_INLINECODE GL_ARRAY_BUFFER) target, the vertex array pointer parameter is interpreted as an offset within the buffer object measured in basic machine units.)$(P When a non-zero buffer object is bound to the$(D_INLINECODE GL_DRAW_INDIRECT_BUFFER) target, parameters for draws issued through$(D_INLINECODE glDrawArraysIndirect) and$(D_INLINECODE glDrawElementsIndirect) are sourced from the specified offset in that buffer object's data store.)$(P When a non-zero buffer object is bound to the$(D_INLINECODE GL_DISPATCH_INDIRECT_BUFFER) target, the parameters for compute dispatches issued through$(D_INLINECODE glDispatchComputeIndirect) are sourced from the specified offset in that buffer object's data store.)$(P While a non-zero buffer object is bound to the$(D_INLINECODE GL_ELEMENT_ARRAY_BUFFER) target, the indices parameter of$(D_INLINECODE glDrawElements),$(D_INLINECODE glDrawElementsInstanced),$(D_INLINECODE glDrawElementsBaseVertex),$(D_INLINECODE glDrawRangeElements),$(D_INLINECODE glDrawRangeElementsBaseVertex),$(D_INLINECODE glMultiDrawElements), or$(D_INLINECODE glMultiDrawElementsBaseVertex) is interpreted as an offset within the buffer object measured in basic machine units.)$(P While a non-zero buffer object is bound to the$(D_INLINECODE GL_PIXEL_PACK_BUFFER) target, the following commands are affected:$(D_INLINECODE glGetCompressedTexImage),$(D_INLINECODE glGetTexImage), and$(D_INLINECODE glReadPixels). The pointer parameter is interpreted as an offset within the buffer object measured in basic machine units.)$(P While a non-zero buffer object is bound to the$(D_INLINECODE GL_PIXEL_UNPACK_BUFFER) target, the following commands are affected:$(D_INLINECODE glCompressedTexImage1D),$(D_INLINECODE glCompressedTexImage2D),$(D_INLINECODE glCompressedTexImage3D),$(D_INLINECODE glCompressedTexSubImage1D),$(D_INLINECODE glCompressedTexSubImage2D),$(D_INLINECODE glCompressedTexSubImage3D),$(D_INLINECODE glTexImage1D),$(D_INLINECODE glTexImage2D),$(D_INLINECODE glTexImage3D),$(D_INLINECODE glTexSubImage1D),$(D_INLINECODE glTexSubImage2D), and$(D_INLINECODE glTexSubImage3D). The pointer parameter is interpreted as an offset within the buffer object measured in basic machine units.)$(P The buffer targets$(D_INLINECODE GL_COPY_READ_BUFFER) and$(D_INLINECODE GL_COPY_WRITE_BUFFER) are provided to allow$(D_INLINECODE glCopyBufferSubData) to be used without disturbing the state of other bindings. However,$(D_INLINECODE glCopyBufferSubData) may be used with any pair of buffer binding points.)$(P The$(D_INLINECODE GL_TRANSFORM_FEEDBACK_BUFFER) buffer binding point may be passed to$(D_INLINECODE glBindBuffer), but will not directly affect transform feedback state. Instead, the indexed$(D_INLINECODE GL_TRANSFORM_FEEDBACK_BUFFER) bindings must be used through a call to$(D_INLINECODE glBindBufferBase) or$(D_INLINECODE glBindBufferRange). This will affect the generic$(D_INLINECODE GL_TRANSFORM_FEEDBACK_BUFFER) binding.)$(P Likewise, the$(D_INLINECODE GL_UNIFORM_BUFFER),$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER) and$(D_INLINECODE GL_SHADER_STORAGE_BUFFER) buffer binding points may be used, but do not directly affect uniform buffer, atomic counter buffer or shader storage buffer state, respectively.$(D_INLINECODE glBindBufferBase) or$(D_INLINECODE glBindBufferRange) must be used to bind a buffer to an indexed uniform buffer, atomic counter buffer or shader storage buffer binding point.)$(P The$(D_INLINECODE GL_QUERY_BUFFER) binding point is used to specify a buffer object that is to receive the results of query objects through calls to the$(D_INLINECODE glGetQueryObject) family of commands.)$(P A buffer object binding created with$(D_INLINECODE glBindBuffer) remains active until a different buffer object name is bound to the same target, or until the bound buffer object is deleted with$(D_INLINECODE glDeleteBuffers).)$(P Once created, a named buffer object may be re-bound to any target as often as needed. However, the GL implementation may make choices about how to optimize the storage of a buffer object based on its initial binding target.) | |
| * | |
| * $(P The$(D_INLINECODE GL_COPY_READ_BUFFER),$(D_INLINECODE GL_UNIFORM_BUFFER) and$(D_INLINECODE GL_TEXTURE_BUFFER) targets are available only if the GL version is 3.1 or greater.)$(P The$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER) target is available only if the GL version is 4.2 or greater.)$(P The$(D_INLINECODE GL_DISPATCH_INDIRECT_BUFFER) and$(D_INLINECODE GL_SHADER_STORAGE_BUFFER) targets are available only if the GL version is 4.3 or greater.)$(P The$(D_INLINECODE GL_QUERY_BUFFER) target is available only if the GL version is 4.4 or greater.) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target to which the buffer object is bound, which must be one of the buffer binding targets in the following table:)$(B Buffer Binding Target)$(B Purpose)$(D_INLINECODE GL_ARRAY_BUFFER) Vertex attributes$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER) Atomic counter storage$(D_INLINECODE GL_COPY_READ_BUFFER) Buffer copy source$(D_INLINECODE GL_COPY_WRITE_BUFFER) Buffer copy destination$(D_INLINECODE GL_DISPATCH_INDIRECT_BUFFER) Indirect compute dispatch commands$(D_INLINECODE GL_DRAW_INDIRECT_BUFFER) Indirect command arguments$(D_INLINECODE GL_ELEMENT_ARRAY_BUFFER) Vertex array indices$(D_INLINECODE GL_PIXEL_PACK_BUFFER) Pixel read target$(D_INLINECODE GL_PIXEL_UNPACK_BUFFER) Texture data source$(D_INLINECODE GL_QUERY_BUFFER) Query result buffer$(D_INLINECODE GL_SHADER_STORAGE_BUFFER) Read-write storage for shaders$(D_INLINECODE GL_TEXTURE_BUFFER) Texture data buffer$(D_INLINECODE GL_TRANSFORM_FEEDBACK_BUFFER) Transform feedback buffer$(D_INLINECODE GL_UNIFORM_BUFFER) Uniform block storage | |
| * buffer = $(P Specifies the name of a buffer object.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2005 Addison-Wesley. Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenBuffers),$(D_INLINECODE glBindBufferBase),$(D_INLINECODE glBindBufferRange),$(D_INLINECODE glMapBuffer),$(D_INLINECODE glUnmapBuffer),$(D_INLINECODE glDeleteBuffers),$(D_INLINECODE glGet),$(D_INLINECODE glIsBuffer)) | |
| */ | |
| extern(C) void function(GLenum target, GLuint buffer) @system @nogc nothrow glBindBuffer; | |
| /** | |
| * glBindBufferBase: man4/glBindBufferBase.xml | |
| * | |
| * $(P $(D_INLINECODE glBindBufferBase) binds the buffer object$(D_INLINECODE buffer) to the binding point at index$(D_INLINECODE index) of the array of targets specified by$(D_INLINECODE target). Each$(D_INLINECODE target) represents an indexed array of buffer binding points, as well as a single general binding point that can be used by other buffer manipulation functions such as$(D_INLINECODE glBindBuffer) or$(D_INLINECODE glMapBuffer). In addition to binding$(D_INLINECODE buffer) to the indexed buffer binding target,$(D_INLINECODE glBindBufferBase) also binds$(D_INLINECODE buffer) to the generic buffer binding point specified by$(D_INLINECODE target).) | |
| * | |
| * $(P Calling$(D_INLINECODE glBindBufferBase) is equivalent to calling$(D_INLINECODE glBindBufferRange) with$(D_INLINECODE offset) zero and$(D_INLINECODE size) equal to the size of the buffer.)$(P The$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER) target is available only if the GL version is 4.2 or greater.)$(P The$(D_INLINECODE GL_SHADER_STORAGE_BUFFER) target is available only if the GL version is 4.3 or greater.) | |
| * | |
| * Params: | |
| * target = $(P Specify the target of the bind operation.$(D_INLINECODE target) must be one of$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER),$(D_INLINECODE GL_TRANSFORM_FEEDBACK_BUFFER),$(D_INLINECODE GL_UNIFORM_BUFFER) or$(D_INLINECODE GL_SHADER_STORAGE_BUFFER).) | |
| * index = $(P Specify the index of the binding point within the array specified by$(D_INLINECODE target).) | |
| * buffer = $(P The name of a buffer object to bind to the specified binding point.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenBuffers),$(D_INLINECODE glDeleteBuffers),$(D_INLINECODE glBindBuffer),$(D_INLINECODE glBindBufferRange),$(D_INLINECODE glMapBuffer),$(D_INLINECODE glUnmapBuffer),) | |
| */ | |
| extern(C) void function(GLenum target, GLuint index, GLuint buffer) @system @nogc nothrow glBindBufferBase; | |
| /** | |
| * glBindBufferRange: man4/glBindBufferRange.xml | |
| * | |
| * $(P $(D_INLINECODE glBindBufferRange) binds a range the buffer object$(D_INLINECODE buffer) represented by$(D_INLINECODE offset) and$(D_INLINECODE size) to the binding point at index$(D_INLINECODE index) of the array of targets specified by$(D_INLINECODE target). Each$(D_INLINECODE target) represents an indexed array of buffer binding points, as well as a single general binding point that can be used by other buffer manipulation functions such as$(D_INLINECODE glBindBuffer) or$(D_INLINECODE glMapBuffer). In addition to binding a range of$(D_INLINECODE buffer) to the indexed buffer binding target,$(D_INLINECODE glBindBufferRange) also binds the range to the generic buffer binding point specified by$(D_INLINECODE target).)$(P $(D_INLINECODE offset) specifies the offset in basic machine units into the buffer object$(D_INLINECODE buffer) and$(D_INLINECODE size) specifies the amount of data that can be read from the buffer object while used as an indexed target.) | |
| * | |
| * $(P The$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER) target is available only if the GL version is 4.2 or greater.)$(P The$(D_INLINECODE GL_SHADER_STORAGE_BUFFER) target is available only if the GL version is 4.3 or greater.) | |
| * | |
| * Params: | |
| * target = $(P Specify the target of the bind operation.$(D_INLINECODE target) must be one of$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER),$(D_INLINECODE GL_TRANSFORM_FEEDBACK_BUFFER),$(D_INLINECODE GL_UNIFORM_BUFFER), or$(D_INLINECODE GL_SHADER_STORAGE_BUFFER).) | |
| * index = $(P Specify the index of the binding point within the array specified by$(D_INLINECODE target).) | |
| * buffer = $(P The name of a buffer object to bind to the specified binding point.) | |
| * offset = $(P The starting offset in basic machine units into the buffer object$(D_INLINECODE buffer).) | |
| * size = $(P The amount of data in machine units that can be read from the buffer object while used as an indexed target.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenBuffers),$(D_INLINECODE glDeleteBuffers),$(D_INLINECODE glBindBuffer),$(D_INLINECODE glBindBufferBase),$(D_INLINECODE glMapBuffer),$(D_INLINECODE glUnmapBuffer),) | |
| */ | |
| extern(C) void function(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size) @system @nogc nothrow glBindBufferRange; | |
| /** | |
| * glBindBuffersBase: man4/glBindBuffersBase.xml | |
| * | |
| * $(P $(D_INLINECODE glBindBuffersBase) binds a set of$(D_INLINECODE count) buffer objects whose names are given in the array$(D_INLINECODE buffers) to the$(D_INLINECODE count) consecutive binding points starting from index$(D_INLINECODE index) of the array of targets specified by$(D_INLINECODE target). If$(D_INLINECODE buffers) is$(D_INLINECODE NULL) then$(D_INLINECODE glBindBuffersBase) unbinds any buffers that are currently bound to the referenced binding points. Assuming no errors are generated, it is equivalent to the following pseudo-code, which calls$(D_INLINECODE glBindBufferBase) :)$(D_INLINECODE for (i = 0; i < count; i++) { if (buffers != NULL) { glBindBufferBase(target, first + i, buffers[i]); } else { glBindBufferBase(target, first + i, 0); } }) | |
| * | |
| * $(P $(D_INLINECODE glBindBuffersBase) is available only if the GL version is 4.4 or higher.) | |
| * | |
| * Params: | |
| * target = $(P Specify the target of the bind operation.$(D_INLINECODE target) must be one of$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER),$(D_INLINECODE GL_TRANSFORM_FEEDBACK_BUFFER),$(D_INLINECODE GL_UNIFORM_BUFFER) or$(D_INLINECODE GL_SHADER_STORAGE_BUFFER).) | |
| * index = $(P Specify the index of the first binding point within the array specified by$(D_INLINECODE target).) | |
| * count = $(P Specify the number of contiguous binding points to which to bind buffers.) | |
| * buffers = $(P A pointer to an array of names of buffer objects to bind to the targets on the specified binding point, or$(D_INLINECODE NULL).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2013-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenBuffers),$(D_INLINECODE glDeleteBuffers),$(D_INLINECODE glBindBuffer),$(D_INLINECODE glBindBufferBase),$(D_INLINECODE glBindBufferRange),$(D_INLINECODE glBindBuffersRange),$(D_INLINECODE glMapBuffer),$(D_INLINECODE glUnmapBuffer)) | |
| */ | |
| extern(C) void function(GLenum target, GLuint first, GLsizei count, const GLuint* buffers) @system @nogc nothrow glBindBuffersBase; | |
| /** | |
| * glBindBuffersRange: man4/glBindBuffersRange.xml | |
| * | |
| * $(P $(D_INLINECODE glBindBuffersRange) binds a set of$(D_INLINECODE count) ranges from buffer objects whose names are given in the array$(D_INLINECODE buffers) to the$(D_INLINECODE count) consecutive binding points starting from index$(D_INLINECODE index) of the array of targets specified by$(D_INLINECODE target).$(D_INLINECODE offsets) specifies the address of an array containing$(D_INLINECODE count) starting offsets within the buffers, and$(D_INLINECODE sizes) specifies the adderess of an array of$(D_INLINECODE count) sizes of the ranges. If$(D_INLINECODE buffers) is$(D_INLINECODE NULL) then$(D_INLINECODE offsets) and$(D_INLINECODE sizes) are ignored and$(D_INLINECODE glBindBuffersRange) unbinds any buffers that are currently bound to the referenced binding points. Assuming no errors are generated, it is equivalent to the following pseudo-code, which calls$(D_INLINECODE glBindBufferRange) :)$(D_INLINECODE for (i = 0; i < count; i++) { if (buffers != NULL) { glBindBufferRange(target, first + i, buffers[i], offsets[i], sizes[i]); } else { glBindBufferBase(target, first + i, 0); } }) | |
| * | |
| * $(P $(D_INLINECODE glBindBuffersBase) is available only if the GL version is 4.4 or higher.) | |
| * | |
| * Params: | |
| * target = $(P Specify the target of the bind operation.$(D_INLINECODE target) must be one of$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER),$(D_INLINECODE GL_TRANSFORM_FEEDBACK_BUFFER),$(D_INLINECODE GL_UNIFORM_BUFFER) or$(D_INLINECODE GL_SHADER_STORAGE_BUFFER).) | |
| * index = $(P Specify the index of the first binding point within the array specified by$(D_INLINECODE target).) | |
| * count = $(P Specify the number of contiguous binding points to which to bind buffers.) | |
| * buffers = $(P A pointer to an array of names of buffer objects to bind to the targets on the specified binding point, or$(D_INLINECODE NULL).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2013-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenBuffers),$(D_INLINECODE glDeleteBuffers),$(D_INLINECODE glBindBuffer),$(D_INLINECODE glBindBufferBase),$(D_INLINECODE glBindBufferRange),$(D_INLINECODE glBindBuffersRange),$(D_INLINECODE glMapBuffer),$(D_INLINECODE glUnmapBuffer)) | |
| */ | |
| extern(C) void function(GLenum target, GLuint first, GLsizei count, const GLuint* buffers, const GLintptr* offsets, const GLintptr* sizes) @system @nogc nothrow glBindBuffersRange; | |
| /** | |
| * glBindFragDataLocation: man4/glBindFragDataLocation.xml | |
| * | |
| * $(P $(D_INLINECODE glBindFragDataLocation) explicitly specifies the binding of the user-defined varying out variable$(D_INLINECODE name) to fragment shader color number$(D_INLINECODE colorNumber) for program$(D_INLINECODE program). If$(D_INLINECODE name) was bound previously, its assigned binding is replaced with$(D_INLINECODE colorNumber).$(D_INLINECODE name) must be a null-terminated string.$(D_INLINECODE colorNumber) must be less than$(D_INLINECODE GL_MAX_DRAW_BUFFERS).)$(P The bindings specified by$(D_INLINECODE glBindFragDataLocation) have no effect until$(D_INLINECODE program) is next linked. Bindings may be specified at any time after$(D_INLINECODE program) has been created. Specifically, they may be specified before shader objects are attached to the program. Therefore, any name may be specified in$(D_INLINECODE name), including a name that is never used as a varying out variable in any fragment shader object. Names beginning with$(D_INLINECODE gl_) are reserved by the GL.)$(P In addition to the errors generated by$(D_INLINECODE glBindFragDataLocation), the program$(D_INLINECODE program) will fail to link if: itemizedlist) | |
| * | |
| * $(P Varying out varyings may have indexed locations assigned explicitly in the shader text using a$(D_INLINECODE location) layout qualifier. If a shader statically assigns a location to a varying out variable in the shader text, that location is used and any location assigned with$(D_INLINECODE glBindFragDataLocation) is ignored.) | |
| * | |
| * Params: | |
| * program = $(P The name of the program containing varying out variable whose binding to modify) | |
| * colorNumber = $(P The color number to bind the user-defined varying out variable to) | |
| * name = $(P The name of the user-defined varying out variable whose binding to modify) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glCreateProgram),$(D_INLINECODE glGetFragDataLocation)) | |
| */ | |
| extern(C) void function(GLuint program, GLuint colorNumber, const char* name) @system @nogc nothrow glBindFragDataLocation; | |
| /** | |
| * glBindFragDataLocationIndexed: man4/glBindFragDataLocationIndexed.xml | |
| * | |
| * $(P $(D_INLINECODE glBindFragDataLocationIndexed) specifies that the varying out variable$(D_INLINECODE name) in$(D_INLINECODE program) should be bound to fragment color$(D_INLINECODE colorNumber) when the program is next linked.$(D_INLINECODE index) may be zero or one to specify that the color be used as either the first or second color input to the blend equation, respectively.)$(P The bindings specified by$(D_INLINECODE glBindFragDataLocationIndexed) have no effect until$(D_INLINECODE program) is next linked. Bindings may be specified at any time after$(D_INLINECODE program) has been created. Specifically, they may be specified before shader objects are attached to the program. Therefore, any name may be specified in$(D_INLINECODE name), including a name that is never used as a varying out variable in any fragment shader object. Names beginning with$(D_INLINECODE gl_) are reserved by the GL.)$(P If$(D_INLINECODE name) was bound previously, its assigned binding is replaced with$(D_INLINECODE colorNumber) and$(D_INLINECODE index).$(D_INLINECODE name) must be a null-terminated string.$(D_INLINECODE index) must be less than or equal to one, and$(D_INLINECODE colorNumber) must be less than the value of$(D_INLINECODE GL_MAX_DRAW_BUFFERS) if$(D_INLINECODE index) is zero, and less than the value of$(D_INLINECODE GL_MAX_DUAL_SOURCE_DRAW_BUFFERS) if index is greater than or equal to one.)$(P In addition to the errors generated by$(D_INLINECODE glBindFragDataLocationIndexed), the program$(D_INLINECODE program) will fail to link if: itemizedlist) | |
| * | |
| * $(P Varying out varyings may have locations assigned explicitly in the shader text using a$(D_INLINECODE location) layout qualifier. If a shader statically assigns a location to a varying out variable in the shader text, that location is used and any location assigned with$(D_INLINECODE glBindFragDataLocation) is ignored.) | |
| * | |
| * Params: | |
| * program = $(P The name of the program containing varying out variable whose binding to modify) | |
| * colorNumber = $(P The color number to bind the user-defined varying out variable to) | |
| * index = $(P The index of the color input to bind the user-defined varying out variable to) | |
| * name = $(P The name of the user-defined varying out variable whose binding to modify) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glCreateProgram),$(D_INLINECODE glLinkProgram)$(D_INLINECODE glGetFragDataLocation),$(D_INLINECODE glGetFragDataIndex)$(D_INLINECODE glBindFragDataLocation)) | |
| */ | |
| extern(C) void function(GLuint program, GLuint colorNumber, GLuint index, const char* name) @system @nogc nothrow glBindFragDataLocationIndexed; | |
| /** | |
| * glBindFramebuffer: man4/glBindFramebuffer.xml | |
| * | |
| * $(P $(D_INLINECODE glBindFramebuffer) binds the framebuffer object with name$(D_INLINECODE framebuffer) to the framebuffer target specified by$(D_INLINECODE target).$(D_INLINECODE target) must be either$(D_INLINECODE GL_DRAW_FRAMEBUFFER),$(D_INLINECODE GL_READ_FRAMEBUFFER) or$(D_INLINECODE GL_FRAMEBUFFER). If a framebuffer object is bound to$(D_INLINECODE GL_DRAW_FRAMEBUFFER) or$(D_INLINECODE GL_READ_FRAMEBUFFER), it becomes the target for rendering or readback operations, respectively, until it is deleted or another framebuffer is bound to the corresponding bind point. Calling$(D_INLINECODE glBindFramebuffer) with$(D_INLINECODE target) set to$(D_INLINECODE GL_FRAMEBUFFER) binds$(D_INLINECODE framebuffer) to both the read and draw framebuffer targets.$(D_INLINECODE framebuffer) is the name of a framebuffer object previously returned from a call to$(D_INLINECODE glGenFramebuffers), or zero to break the existing binding of a framebuffer object to$(D_INLINECODE target).) | |
| * | |
| * Params: | |
| * target = $(P Specifies the framebuffer target of the binding operation.) | |
| * framebuffer = $(P Specifies the name of the framebuffer object to bind.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenFramebuffers),$(D_INLINECODE glFramebufferRenderbuffer),$(D_INLINECODE glFramebufferTexture),$(D_INLINECODE glFramebufferTexture1D),$(D_INLINECODE glFramebufferTexture2D),$(D_INLINECODE glFramebufferTexture3D),$(D_INLINECODE glFramebufferTextureLayer),$(D_INLINECODE glDeleteFramebuffers),$(D_INLINECODE glIsFramebuffer)) | |
| */ | |
| extern(C) void function(GLenum target, GLuint framebuffer) @system @nogc nothrow glBindFramebuffer; | |
| /** | |
| * glBindImageTexture: man4/glBindImageTexture.xml | |
| * | |
| * $(P $(D_INLINECODE glBindImageTexture) binds a single level of a texture to an image unit for the purpose of reading and writing it from shaders.$(D_INLINECODE unit) specifies the zero-based index of the image unit to which to bind the texture level.$(D_INLINECODE texture) specifies the name of an existing texture object to bind to the image unit. If$(D_INLINECODE texture) is zero, then any existing binding to the image unit is broken.$(D_INLINECODE level) specifies the level of the texture to bind to the image unit.)$(P If$(D_INLINECODE texture) is the name of a one-, two-, or three-dimensional array texture, a cube map or cube map array texture, or a two-dimensional multisample array texture, then it is possible to bind either the entire array, or only a single layer of the array to the image unit. In such cases, if$(D_INLINECODE layered) is$(D_INLINECODE GL_TRUE), the entire array is attached to the image unit and$(D_INLINECODE layer) is ignored. However, if$(D_INLINECODE layered) is$(D_INLINECODE GL_FALSE) then$(D_INLINECODE layer) specifies the layer of the array to attach to the image unit.)$(P $(D_INLINECODE access) specifies the access types to be performed by shaders and may be set to$(D_INLINECODE GL_READ_ONLY),$(D_INLINECODE GL_WRITE_ONLY), or$(D_INLINECODE GL_READ_WRITE) to indicate read-only, write-only or read-write access, respectively. Violation of the access type specified in$(D_INLINECODE access) (for example, if a shader writes to an image bound with$(D_INLINECODE access) set to$(D_INLINECODE GL_READ_ONLY) ) will lead to undefined results, possibly including program termination.)$(P $(D_INLINECODE format) specifies the format that is to be used when performing formatted stores into the image from shaders.$(D_INLINECODE format) must be compatible with the texture's internal format and must be one of the formats listed in the following table.)$(P <h3> Internal Image Formats</h3>$(B Image Unit Format)$(B Format Qualifier)$(D_INLINECODE GL_RGBA32F)$(D_INLINECODE rgba32f)$(D_INLINECODE GL_RGBA16F)$(D_INLINECODE rgba16f)$(D_INLINECODE GL_RG32F)$(D_INLINECODE rg32f)$(D_INLINECODE GL_RG16F)$(D_INLINECODE rg16f)$(D_INLINECODE GL_R11F_G11F_B10F)$(D_INLINECODE r11f_g11f_b10f)$(D_INLINECODE GL_R32F)$(D_INLINECODE r32f)$(D_INLINECODE GL_R16F)$(D_INLINECODE r16f)$(D_INLINECODE GL_RGBA32UI)$(D_INLINECODE rgba32ui)$(D_INLINECODE GL_RGBA16UI)$(D_INLINECODE rgba16ui)$(D_INLINECODE GL_RGB10_A2UI)$(D_INLINECODE rgb10_a2ui)$(D_INLINECODE GL_RGBA8UI)$(D_INLINECODE rgba8ui)$(D_INLINECODE GL_RG32UI)$(D_INLINECODE rg32ui)$(D_INLINECODE GL_RG16UI)$(D_INLINECODE rg16ui)$(D_INLINECODE GL_RG8UI)$(D_INLINECODE rg8ui)$(D_INLINECODE GL_R32UI)$(D_INLINECODE r32ui)$(D_INLINECODE GL_R16UI)$(D_INLINECODE r16ui)$(D_INLINECODE GL_R8UI)$(D_INLINECODE r8ui)$(D_INLINECODE GL_RGBA32I)$(D_INLINECODE rgba32i)$(D_INLINECODE GL_RGBA16I)$(D_INLINECODE rgba16i)$(D_INLINECODE GL_RGBA8I)$(D_INLINECODE rgba8i)$(D_INLINECODE GL_RG32I)$(D_INLINECODE rg32i)$(D_INLINECODE GL_RG16I)$(D_INLINECODE rg16i)$(D_INLINECODE GL_RG8I)$(D_INLINECODE rg8i)$(D_INLINECODE GL_R32I)$(D_INLINECODE r32i)$(D_INLINECODE GL_R16I)$(D_INLINECODE r16i)$(D_INLINECODE GL_R8I)$(D_INLINECODE r8i)$(D_INLINECODE GL_RGBA16)$(D_INLINECODE rgba16)$(D_INLINECODE GL_RGB10_A2)$(D_INLINECODE rgb10_a2)$(D_INLINECODE GL_RGBA8)$(D_INLINECODE rgba8)$(D_INLINECODE GL_RG16)$(D_INLINECODE rg16)$(D_INLINECODE GL_RG8)$(D_INLINECODE rg8)$(D_INLINECODE GL_R16)$(D_INLINECODE r16)$(D_INLINECODE GL_R8)$(D_INLINECODE r8)$(D_INLINECODE GL_RGBA16_SNORM)$(D_INLINECODE rgba16_snorm)$(D_INLINECODE GL_RGBA8_SNORM)$(D_INLINECODE rgba8_snorm)$(D_INLINECODE GL_RG16_SNORM)$(D_INLINECODE rg16_snorm)$(D_INLINECODE GL_RG8_SNORM)$(D_INLINECODE rg8_snorm)$(D_INLINECODE GL_R16_SNORM)$(D_INLINECODE r16_snorm)$(D_INLINECODE GL_R8_SNORM)$(D_INLINECODE r8_snorm))$(P When a texture is bound to an image unit, the$(D_INLINECODE format) parameter for the image unit need not exactly match the texture internal format as long as the formats are considered compatible as defined in the OpenGL Specification. The matching criterion used for a given texture may be determined by calling$(D_INLINECODE glGetTexParameter) with$(D_INLINECODE value) set to$(D_INLINECODE GL_IMAGE_FORMAT_COMPATIBILITY_TYPE), with return values of$(D_INLINECODE GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE) and$(D_INLINECODE GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS), specifying matches by size and class, respectively.) | |
| * | |
| * $(P The$(D_INLINECODE glBindImageTexture) is available only if the GL version is 4.2 or greater.) | |
| * | |
| * Params: | |
| * unit = $(P Specifies the index of the image unit to which to bind the texture) | |
| * texture = $(P Specifies the name of the texture to bind to the image unit.) | |
| * level = $(P Specifies the level of the texture that is to be bound.) | |
| * layered = $(P Specifies whether a layered texture binding is to be established.) | |
| * layer = $(P If$(D_INLINECODE layered) is$(D_INLINECODE GL_FALSE), specifies the layer of$(D_INLINECODE texture) to be bound to the image unit. Ignored otherwise.) | |
| * access = $(P Specifies a token indicating the type of access that will be performed on the image.) | |
| * format = $(P Specifies the format that the elements of the image will be treated as for the purposes of formatted stores.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2011-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenTextures),$(D_INLINECODE glTexImage1D),$(D_INLINECODE glTexImage2D),$(D_INLINECODE glTexImage3D),$(D_INLINECODE glTexStorage1D),$(D_INLINECODE glTexStorage2D),$(D_INLINECODE glTexStorage3D),$(D_INLINECODE glBindTexture)) | |
| */ | |
| extern(C) void function(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format) @system @nogc nothrow glBindImageTexture; | |
| /** | |
| * glBindImageTextures: man4/glBindImageTextures.xml | |
| * | |
| * $(P $(D_INLINECODE glBindImageTextures) binds images from an array of existing texture objects to a specified number of consecutive image units.$(D_INLINECODE count) specifies the number of texture objects whose names are stored in the array$(D_INLINECODE textures). That number of texture names are read from the array and bound to the$(D_INLINECODE count) consecutive texture units starting from$(D_INLINECODE first). If the name zero appears in the$(D_INLINECODE textures) array, any existing binding to the image unit is reset. Any non-zero entry in$(D_INLINECODE textures) must be the name of an existing texture object. When a non-zero entry in$(D_INLINECODE textures) is present, the image at level zero is bound, the binding is considered layered, with the first layer set to zero, and the image is bound for read-write access. The image unit format parameter is taken from the internal format of the image at level zero of the texture object. For cube map textures, the internal format of the positive X image of level zero is used. If$(D_INLINECODE textures) is$(D_INLINECODE NULL) then it is as if an appropriately sized array containing only zeros had been specified.)$(P $(D_INLINECODE glBindImageTextures) is equivalent to the following pseudo code:)$(D_INLINECODE for (i = 0; i < count; i++) { if (textures == NULL || textures[i] = 0) { glBindImageTexture(first + i, 0, 0, GL_FALSE, 0, GL_READ_ONLY, GL_R8); } else { glBindImageTexture(first + i, textures[i], 0, GL_TRUE, 0, GL_READ_WRITE, lookupInternalFormat(textures[i])); } })$(P Each entry in$(D_INLINECODE textures) will be checked individually and if found to be invalid, the state for that image unit will not be changed and an error will be generated. However, the state for other texture image units referenced by the command will still be updated.) | |
| * | |
| * $(P $(D_INLINECODE glBindImageTextures) is available only if the GL version is 4.4 or higher.)$(P Note that because$(D_INLINECODE glBindImageTextures) cannot create new textures (even if a name passed has been previously generated by call to$(D_INLINECODE glGenTextures) ), names pased to$(D_INLINECODE glBindTextures) must have been bound at least once previously via a call to$(D_INLINECODE glBindTexture).) | |
| * | |
| * Params: | |
| * first = $(P Specifies the first image unit to which a texture is to be bound.) | |
| * count = $(P Specifies the number of textures to bind.) | |
| * textures = $(P Specifies the address of an array of names of existing texture objects.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2013-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBindTexture),$(D_INLINECODE glBindTextures),$(D_INLINECODE glDeleteTextures),$(D_INLINECODE glGenTextures),$(D_INLINECODE glGet),$(D_INLINECODE glGetTexParameter),$(D_INLINECODE glIsTexture),$(D_INLINECODE glTexStorage1D),$(D_INLINECODE glTexStorage2D),$(D_INLINECODE glTexStorage2DMultisample),$(D_INLINECODE glTexStorage3D),$(D_INLINECODE glTexStorage3DMultisample),$(D_INLINECODE glTexBuffer),$(D_INLINECODE glTexParameter)) | |
| */ | |
| extern(C) void function(GLuint first, GLsizei count, const GLuint* textures) @system @nogc nothrow glBindImageTextures; | |
| /** | |
| * glBindProgramPipeline: man4/glBindProgramPipeline.xml | |
| * | |
| * $(P $(D_INLINECODE glBindProgramPipeline) binds a program pipeline object to the current context.$(D_INLINECODE pipeline) must be a name previously returned from a call to$(D_INLINECODE glGenProgramPipelines). If no program pipeline exists with name$(D_INLINECODE pipeline) then a new pipeline object is created with that name and initialized to the default state vector.)$(P When a program pipeline object is bound using$(D_INLINECODE glBindProgramPipeline), any previous binding is broken and is replaced with a binding to the specified pipeline object. If$(D_INLINECODE pipeline) is zero, the previous binding is broken and is not replaced, leaving no pipeline object bound. If no current program object has been established by$(D_INLINECODE glUseProgram), the program objects used for each stage and for uniform updates are taken from the bound program pipeline object, if any. If there is a current program object established by$(D_INLINECODE glUseProgram), the bound program pipeline object has no effect on rendering or uniform updates. When a bound program pipeline object is used for rendering, individual shader executables are taken from its program objects.) | |
| * | |
| * Params: | |
| * pipeline = $(P Specifies the name of the pipeline object to bind to the context.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glCreateShader),$(D_INLINECODE glCreateProgram),$(D_INLINECODE glCompileShader),$(D_INLINECODE glLinkProgram),$(D_INLINECODE glGenProgramPipelines),$(D_INLINECODE glDeleteProgramPipelines),$(D_INLINECODE glIsProgramPipeline)) | |
| */ | |
| extern(C) void function(GLuint pipeline) @system @nogc nothrow glBindProgramPipeline; | |
| /** | |
| * glBindRenderbuffer: man4/glBindRenderbuffer.xml | |
| * | |
| * $(P $(D_INLINECODE glBindRenderbuffer) binds the renderbuffer object with name$(D_INLINECODE renderbuffer) to the renderbuffer target specified by$(D_INLINECODE target).$(D_INLINECODE target) must be$(D_INLINECODE GL_RENDERBUFFER).$(D_INLINECODE renderbuffer) is the name of a renderbuffer object previously returned from a call to$(D_INLINECODE glGenRenderbuffers), or zero to break the existing binding of a renderbuffer object to$(D_INLINECODE target).) | |
| * | |
| * Params: | |
| * target = $(P Specifies the renderbuffer target of the binding operation.$(D_INLINECODE target) must be$(D_INLINECODE GL_RENDERBUFFER).) | |
| * renderbuffer = $(P Specifies the name of the renderbuffer object to bind.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDeleteRenderbuffers),$(D_INLINECODE glGenRenderbuffers),$(D_INLINECODE glIsRenderbuffer),$(D_INLINECODE glRenderbufferStorage),$(D_INLINECODE glRenderbufferStorageMultisample)) | |
| */ | |
| extern(C) void function(GLenum target, GLuint renderbuffer) @system @nogc nothrow glBindRenderbuffer; | |
| /** | |
| * glBindSampler: man4/glBindSampler.xml | |
| * | |
| * $(P $(D_INLINECODE glBindSampler) binds$(D_INLINECODE sampler) to the texture unit at index$(D_INLINECODE unit).$(D_INLINECODE sampler) must be zero or the name of a sampler object previously returned from a call to$(D_INLINECODE glGenSamplers).$(D_INLINECODE unit) must be less than the value of$(D_INLINECODE GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS).)$(P When a sampler object is bound to a texture unit, its state supersedes that of the texture object bound to that texture unit. If the sampler name zero is bound to a texture unit, the currently bound texture's sampler state becomes active. A single sampler object may be bound to multiple texture units simultaneously.) | |
| * | |
| * $(P $(D_INLINECODE glBindSampler) is available only if the GL version is 3.3 or higher.) | |
| * | |
| * Params: | |
| * unit = $(P Specifies the index of the texture unit to which the sampler is bound.) | |
| * sampler = $(P Specifies the name of a sampler.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenSamplers),$(D_INLINECODE glDeleteSamplers),$(D_INLINECODE glGet),$(D_INLINECODE glSamplerParameter),$(D_INLINECODE glGetSamplerParameter),$(D_INLINECODE glGenTextures),$(D_INLINECODE glBindTexture),$(D_INLINECODE glDeleteTextures)) | |
| */ | |
| extern(C) void function(GLuint unit, GLuint sampler) @system @nogc nothrow glBindSampler; | |
| /** | |
| * glBindSamplers: man4/glBindSamplers.xml | |
| * | |
| * $(P $(D_INLINECODE glBindSamplers) binds samplers from an array of existing sampler objects to a specified number of consecutive sampler units.$(D_INLINECODE count) specifies the number of sampler objects whose names are stored in the array$(D_INLINECODE samplers). That number of sampler names is read from the array and bound to the$(D_INLINECODE count) consecutive sampler units starting from$(D_INLINECODE first).)$(P If the name zero appears in the$(D_INLINECODE samplers) array, any existing binding to the sampler unit is reset. Any non-zero entry in$(D_INLINECODE samplers) must be the name of an existing sampler object. When a non-zero entry in$(D_INLINECODE samplers) is present, that sampler object is bound to the corresponding sampler unit. If$(D_INLINECODE samplers) is$(D_INLINECODE NULL) then it is as if an appropriately sized array containing only zeros had been specified.)$(P $(D_INLINECODE glBindSamplers) is equivalent to the following pseudo code:)$(D_INLINECODE for (i = 0; i < count; i++) { if (samplers == NULL) { glBindSampler(first + i, 0); } else { glBindSampler(first + i, samplers[i]); } })$(P Each entry in$(D_INLINECODE samplers) will be checked individually and if found to be invalid, the state for that sampler unit will not be changed and an error will be generated. However, the state for other sampler units referenced by the command will still be updated.) | |
| * | |
| * $(P $(D_INLINECODE glBindSamplers) is available only if the GL version is 4.4 or higher.) | |
| * | |
| * Params: | |
| * first = $(P Specifies the first sampler unit to which a sampler object is to be bound.) | |
| * count = $(P Specifies the number of samplers to bind.) | |
| * samplers = $(P Specifies the address of an array of names of existing sampler objects.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2013-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenSamplers),$(D_INLINECODE glBindSampler),$(D_INLINECODE glDeleteSamplers),$(D_INLINECODE glGet),$(D_INLINECODE glSamplerParameter),$(D_INLINECODE glGetSamplerParameter),$(D_INLINECODE glGenTextures),$(D_INLINECODE glBindTexture),$(D_INLINECODE glDeleteTextures)) | |
| */ | |
| extern(C) void function(GLuint first, GLsizei count, const GLuint* samplers) @system @nogc nothrow glBindSamplers; | |
| /** | |
| * glBindTexture: man4/glBindTexture.xml | |
| * | |
| * $(P $(D_INLINECODE glBindTexture) lets you create or use a named texture. Calling$(D_INLINECODE glBindTexture) with$(D_INLINECODE target) set to$(D_INLINECODE GL_TEXTURE_1D),$(D_INLINECODE GL_TEXTURE_2D),$(D_INLINECODE GL_TEXTURE_3D),$(D_INLINECODE GL_TEXTURE_1D_ARRAY),$(D_INLINECODE GL_TEXTURE_2D_ARRAY),$(D_INLINECODE GL_TEXTURE_RECTANGLE),$(D_INLINECODE GL_TEXTURE_CUBE_MAP),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_ARRAY),$(D_INLINECODE GL_TEXTURE_BUFFER),$(D_INLINECODE GL_TEXTURE_2D_MULTISAMPLE) or$(D_INLINECODE GL_TEXTURE_2D_MULTISAMPLE_ARRAY) and$(D_INLINECODE texture) set to the name of the new texture binds the texture name to the target. When a texture is bound to a target, the previous binding for that target is automatically broken.)$(P Texture names are unsigned integers. The value zero is reserved to represent the default texture for each texture target. Texture names and the corresponding texture contents are local to the shared object space of the current GL rendering context; two rendering contexts share texture names only if they explicitly enable sharing between contexts through the appropriate GL windows interfaces functions.)$(P You must use$(D_INLINECODE glGenTextures) to generate a set of new texture names.)$(P When a texture is first bound, it assumes the specified target: A texture first bound to$(D_INLINECODE GL_TEXTURE_1D) becomes one-dimensional texture, a texture first bound to$(D_INLINECODE GL_TEXTURE_2D) becomes two-dimensional texture, a texture first bound to$(D_INLINECODE GL_TEXTURE_3D) becomes three-dimensional texture, a texture first bound to$(D_INLINECODE GL_TEXTURE_1D_ARRAY) becomes one-dimensional array texture, a texture first bound to$(D_INLINECODE GL_TEXTURE_2D_ARRAY) becomes two-dimensional array texture, a texture first bound to$(D_INLINECODE GL_TEXTURE_RECTANGLE) becomes rectangle texture, a texture first bound to$(D_INLINECODE GL_TEXTURE_CUBE_MAP) becomes a cube-mapped texture, a texture first bound to$(D_INLINECODE GL_TEXTURE_CUBE_MAP_ARRAY) becomes a cube-mapped array texture, a texture first bound to$(D_INLINECODE GL_TEXTURE_BUFFER) becomes a buffer texture, a texture first bound to$(D_INLINECODE GL_TEXTURE_2D_MULTISAMPLE) becomes a two-dimensional multisampled texture, and a texture first bound to$(D_INLINECODE GL_TEXTURE_2D_MULTISAMPLE_ARRAY) becomes a two-dimensional multisampled array texture. The state of a one-dimensional texture immediately after it is first bound is equivalent to the state of the default$(D_INLINECODE GL_TEXTURE_1D) at GL initialization, and similarly for the other texture types.)$(P While a texture is bound, GL operations on the target to which it is bound affect the bound texture, and queries of the target to which it is bound return state from the bound texture. In effect, the texture targets become aliases for the textures currently bound to them, and the texture name zero refers to the default textures that were bound to them at initialization.)$(P A texture binding created with$(D_INLINECODE glBindTexture) remains active until a different texture is bound to the same target, or until the bound texture is deleted with$(D_INLINECODE glDeleteTextures).)$(P Once created, a named texture may be re-bound to its same original target as often as needed. It is usually much faster to use$(D_INLINECODE glBindTexture) to bind an existing named texture to one of the texture targets than it is to reload the texture image using$(D_INLINECODE glTexImage1D),$(D_INLINECODE glTexImage2D),$(D_INLINECODE glTexImage3D) or another similar function.) | |
| * | |
| * $(P The$(D_INLINECODE GL_TEXTURE_2D_MULTISAMPLE) and$(D_INLINECODE GL_TEXTURE_2D_MULTISAMPLE_ARRAY) targets are available only if the GL version is 3.2 or higher.) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target to which the texture is bound. Must be one of$(D_INLINECODE GL_TEXTURE_1D),$(D_INLINECODE GL_TEXTURE_2D),$(D_INLINECODE GL_TEXTURE_3D),$(D_INLINECODE GL_TEXTURE_1D_ARRAY),$(D_INLINECODE GL_TEXTURE_2D_ARRAY),$(D_INLINECODE GL_TEXTURE_RECTANGLE),$(D_INLINECODE GL_TEXTURE_CUBE_MAP),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_ARRAY),$(D_INLINECODE GL_TEXTURE_BUFFER),$(D_INLINECODE GL_TEXTURE_2D_MULTISAMPLE) or$(D_INLINECODE GL_TEXTURE_2D_MULTISAMPLE_ARRAY).) | |
| * texture = $(P Specifies the name of a texture.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDeleteTextures),$(D_INLINECODE glGenTextures),$(D_INLINECODE glGet),$(D_INLINECODE glGetTexParameter),$(D_INLINECODE glIsTexture),$(D_INLINECODE glTexImage1D),$(D_INLINECODE glTexImage2D),$(D_INLINECODE glTexImage2DMultisample),$(D_INLINECODE glTexImage3D),$(D_INLINECODE glTexImage3DMultisample),$(D_INLINECODE glTexBuffer),$(D_INLINECODE glTexParameter)) | |
| */ | |
| extern(C) void function(GLenum target, GLuint texture) @system @nogc nothrow glBindTexture; | |
| /** | |
| * glBindTextures: man4/glBindTextures.xml | |
| * | |
| * $(P $(D_INLINECODE glBindTextures) binds an array of existing texture objects to a specified number of consecutive texture units.$(D_INLINECODE count) specifies the number of texture objects whose names are stored in the array$(D_INLINECODE textures). That number of texture names are read from the array and bound to the$(D_INLINECODE count) consecutive texture units starting from$(D_INLINECODE first). The target, or type of texture is deduced from the texture object and each texture is bound to the corresponding target of the texture unit. If the name zero appears in the$(D_INLINECODE textures) array, any existing binding to any target of the texture unit is reset and the default texture for that target is bound in its place. Any non-zero entry in$(D_INLINECODE textures) must be the name of an existing texture object. If$(D_INLINECODE textures) is$(D_INLINECODE NULL) then it is as if an appropriately sized array containing only zeros had been specified.)$(P With the exception that the active texture selector maintains its current value,$(D_INLINECODE glBindTextures) is equivalent to the following pseudo code:)$(D_INLINECODE for (i = 0; i < count; i++) { GLuint texture; if (textures == NULL) { texture = 0; } else { texture = textures[i]; } glActiveTexture(GL_TEXTURE0 + first + i); if (texture != 0) { GLenum target = \/* target of textures[i] *\/; glBindTexture(target, textures[i]); } else { for (target in all supported targets) { glBindTexture(target, 0); } } })$(P Each entry in$(D_INLINECODE textures) will be checked individually and if found to be invalid, the state for that texture unit will not be changed and an error will be generated. However, the state for other texture units referenced by the command will still be updated.) | |
| * | |
| * $(P $(D_INLINECODE glBindTextures) is available only if the GL version is 4.4 or higher.)$(P Note that because$(D_INLINECODE glBindTextures) cannot create new textures (even if a name passed has been previously generated by call to$(D_INLINECODE glGenTextures) ), names pased to$(D_INLINECODE glBindTextures) must have been bound at least once previously via a call to$(D_INLINECODE glBindTexture).) | |
| * | |
| * Params: | |
| * first = $(P Specifies the first texture unit to which a texture is to be bound.) | |
| * count = $(P Specifies the number of textures to bind.) | |
| * textures = $(P Specifies the address of an array of names of existing texture objects.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2013-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBindTexture),$(D_INLINECODE glDeleteTextures),$(D_INLINECODE glGenTextures),$(D_INLINECODE glGet),$(D_INLINECODE glGetTexParameter),$(D_INLINECODE glIsTexture),$(D_INLINECODE glTexImage1D),$(D_INLINECODE glTexImage2D),$(D_INLINECODE glTexImage2DMultisample),$(D_INLINECODE glTexImage3D),$(D_INLINECODE glTexImage3DMultisample),$(D_INLINECODE glTexBuffer),$(D_INLINECODE glTexParameter)) | |
| */ | |
| extern(C) void function(GLuint first, GLsizei count, const GLuint* textures) @system @nogc nothrow glBindTextures; | |
| /** | |
| * glBindTextureUnit: man4/glBindTextureUnit.xml | |
| * | |
| * $(P $(D_INLINECODE glBindTextureUnit) binds an existing texture object to the texture unit numbered$(D_INLINECODE unit).)$(P $(D_INLINECODE texture) must be zero or the name of an existing texture object. When$(D_INLINECODE texture) is the name of an existing texture object, that object is bound to the target, in the corresponding texture unit, that was specified when the object was created. When$(D_INLINECODE texture) is zero, each of the targets enumerated at the beginning of this section is reset to its default texture for the corresponding texture image unit.) | |
| * | |
| * Params: | |
| * unit = $(P Specifies the texture unit, to which the texture object should be bound to.) | |
| * texture = $(P Specifies the name of a texture.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDeleteTextures),$(D_INLINECODE glGenTextures),$(D_INLINECODE glGet),$(D_INLINECODE glGetTexParameter),$(D_INLINECODE glIsTexture),$(D_INLINECODE glTexImage1D),$(D_INLINECODE glTexImage2D),$(D_INLINECODE glTexImage2DMultisample),$(D_INLINECODE glTexImage3D),$(D_INLINECODE glTexImage3DMultisample),$(D_INLINECODE glTexBuffer),$(D_INLINECODE glTexParameter)) | |
| */ | |
| extern(C) void function(GLuint unit, GLuint texture) @system @nogc nothrow glBindTextureUnit; | |
| /** | |
| * glBindTransformFeedback: man4/glBindTransformFeedback.xml | |
| * | |
| * $(P $(D_INLINECODE glBindTransformFeedback) binds the transform feedback object with name$(D_INLINECODE id) to the current GL state.$(D_INLINECODE id) must be a name previously returned from a call to$(D_INLINECODE glGenTransformFeedbacks). If$(D_INLINECODE id) has not previously been bound, a new transform feedback object with name$(D_INLINECODE id) and initialized with with the default transform state vector is created.)$(P In the initial state, a default transform feedback object is bound and treated as a transform feedback object with a name of zero. If the name zero is subsequently bound, the default transform feedback object is again bound to the GL state.)$(P While a transform feedback buffer object is bound, GL operations on the target to which it is bound affect the bound transform feedback object, and queries of the target to which a transform feedback object is bound return state from the bound object. When buffer objects are bound for transform feedback, they are attached to the currently bound transform feedback object. Buffer objects are used for trans- form feedback only if they are attached to the currently bound transform feedback object.) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target to which to bind the transform feedback object$(D_INLINECODE id).$(D_INLINECODE target) must be$(D_INLINECODE GL_TRANSFORM_FEEDBACK).) | |
| * id = $(P Specifies the name of a transform feedback object reserved by$(D_INLINECODE glGenTransformFeedbacks).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenTransformFeedbacks),$(D_INLINECODE glDeleteTransformFeedbacks),$(D_INLINECODE glIsTransformFeedback),$(D_INLINECODE glBeginTransformFeedback),$(D_INLINECODE glPauseTransformFeedback),$(D_INLINECODE glResumeTransformFeedback),$(D_INLINECODE glEndTransformFeedback)) | |
| */ | |
| extern(C) void function(GLenum target, GLuint id) @system @nogc nothrow glBindTransformFeedback; | |
| /** | |
| * glBindVertexArray: man4/glBindVertexArray.xml | |
| * | |
| * $(P $(D_INLINECODE glBindVertexArray) binds the vertex array object with name$(D_INLINECODE array).$(D_INLINECODE array) is the name of a vertex array object previously returned from a call to$(D_INLINECODE glGenVertexArrays), or zero to break the existing vertex array object binding.)$(P If no vertex array object with name$(D_INLINECODE array) exists, one is created when$(D_INLINECODE array) is first bound. If the bind is successful no change is made to the state of the vertex array object, and any previous vertex array object binding is broken.) | |
| * | |
| * Params: | |
| * array = $(P Specifies the name of the vertex array to bind.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDeleteVertexArrays),$(D_INLINECODE glEnableVertexAttribArray),$(D_INLINECODE glGenVertexArrays),$(D_INLINECODE glIsVertexArray),$(D_INLINECODE glVertexAttribPointer)) | |
| */ | |
| extern(C) void function(GLuint array) @system @nogc nothrow glBindVertexArray; | |
| /** | |
| * glBindVertexBuffer: man4/glBindVertexBuffer.xml | |
| * | |
| * $(P $(D_INLINECODE glBindVertexBuffer) and$(D_INLINECODE glVertexArrayVertexBuffer) bind the buffer named$(D_INLINECODE buffer) to the vertex buffer binding point whose index is given by$(D_INLINECODE bindingindex).$(D_INLINECODE glBindVertexBuffer) modifies the binding of the currently bound vertex array object, whereas$(D_INLINECODE glVertexArrayVertexBuffer) allows the caller to specify ID of the vertex array object with an argument named$(D_INLINECODE vaobj), for which the binding should be modified.$(D_INLINECODE offset) and$(D_INLINECODE stride) specify the offset of the first element within the buffer and the distance between elements within the buffer, respectively, and are both measured in basic machine units.$(D_INLINECODE bindingindex) must be less than the value of$(D_INLINECODE GL_MAX_VERTEX_ATTRIB_BINDINGS).$(D_INLINECODE offset) and$(D_INLINECODE stride) must be greater than or equal to zero. If$(D_INLINECODE buffer) is zero, then any buffer currently bound to the specified binding point is unbound.)$(P If$(D_INLINECODE buffer) is not the name of an existing buffer object, the GL first creates a new state vector, initialized with a zero-sized memory buffer and comprising all the state and with the same initial values as in case of$(D_INLINECODE glBindBuffer).$(D_INLINECODE buffer) is then attached to the specified$(D_INLINECODE bindingindex) of the vertex array object.) | |
| * | |
| * Params: | |
| * vaobj = $(P Specifies the name of the vertex array object to be used by$(D_INLINECODE glVertexArrayVertexBuffer) function.) | |
| * bindingindex = $(P The index of the vertex buffer binding point to which to bind the buffer.) | |
| * buffer = $(P The name of a buffer to bind to the vertex buffer binding point.) | |
| * offset = $(P The offset of the first element of the buffer.) | |
| * stride = $(P The distance between elements within the buffer.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glVertexAttribBinding),$(D_INLINECODE glVertexAttribFormat),$(D_INLINECODE glVertexAttribPointer),$(D_INLINECODE glVertexBindingDivisor).) | |
| */ | |
| extern(C) void function(GLuint bindingindex, GLuint buffer, GLintptr offset, GLintptr stride) @system @nogc nothrow glBindVertexBuffer; | |
| /// Ditto | |
| extern(C) void function(GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride) @system @nogc nothrow glVertexArrayVertexBuffer; | |
| /** | |
| * glBindVertexBuffers: man4/glBindVertexBuffers.xml | |
| * | |
| * $(P $(D_INLINECODE glBindVertexBuffers) and$(D_INLINECODE glVertexArrayVertexBuffers) bind storage from an array of existing buffer objects to a specified number of consecutive vertex buffer binding points units in a vertex array object. For$(D_INLINECODE glBindVertexBuffers), the vertex array object is the currently bound vertex array object. For$(D_INLINECODE glVertexArrayVertexBuffers),$(D_INLINECODE vaobj) is the name of the vertex array object.)$(P $(D_INLINECODE count) existing buffer objects are bound to vertex buffer binding points numbered $first$ through $first + count - 1$. If$(D_INLINECODE buffers) is not NULL, it specifies an array of$(D_INLINECODE count) values, each of which must be zero or the name of an existing buffer object.$(D_INLINECODE offsets) and$(D_INLINECODE strides) specify arrays of$(D_INLINECODE count) values indicating the offset of the first element and stride between elements in each buffer, respectively. If$(D_INLINECODE buffers) is NULL, each affected vertex buffer binding point from $first$ through $first + count - 1$ will be reset to have no bound buffer object. In this case, the offsets and strides associated with the binding points are set to default values, ignoring$(D_INLINECODE offsets) and$(D_INLINECODE strides).)$(P $(D_INLINECODE glBindVertexBuffers) is equivalent (assuming no errors are generated) to:$(D_INLINECODE for (i = 0; i < count; i++) { if (buffers == NULL) { glBindVertexBuffer(first + i, 0, 0, 16); } else { glBindVertexBuffer(first + i, buffers[i], offsets[i], strides[i]); } }) except that buffers will not be created if they do not exist.)$(P $(D_INLINECODE glVertexArrayVertexBuffers) is equivalent to the pseudocode above, but replacing$(D_INLINECODE glBindVertexBuffers) (args) with$(D_INLINECODE glVertexArrayVertexBuffers) (vaobj, args).)$(P The values specified in$(D_INLINECODE buffers),$(D_INLINECODE offsets), and$(D_INLINECODE strides) will be checked separately for each vertex buffer binding point. When a value for a specific vertex buffer binding point is invalid, the state for that binding point will be unchanged and an error will be generated. However, state for other vertex buffer binding points will still be changed if their corresponding values are valid.) | |
| * | |
| * Params: | |
| * vaobj = $(P Specifies the name of the vertex array object for$(D_INLINECODE glVertexArrayVertexBuffers).) | |
| * first = $(P Specifies the first vertex buffer binding point to which a buffer object is to be bound.) | |
| * count = $(P Specifies the number of buffers to bind.) | |
| * buffers = $(P Specifies the address of an array of names of existing buffer objects.) | |
| * offsets = $(P Specifies the address of an array of offsets to associate with the binding points.) | |
| * buffers = $(P Specifies the address of an array of strides to associate with the binding points.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenBuffers),$(D_INLINECODE glBindBuffer),$(D_INLINECODE glDeleteBuffers)$(D_INLINECODE glDeleteTextures)) | |
| */ | |
| extern(C) void function(GLuint first, GLsizei count, const GLuint* buffers, const GLuintptr* offsets, const GLsizei* strides) @system @nogc nothrow glBindVertexBuffers; | |
| /// Ditto | |
| extern(C) void function(GLuint vaobj, GLuint first, GLsizei count, const GLuint* buffers, const GLintptr* offsets, const GLsizei* strides) @system @nogc nothrow glVertexArrayVertexBuffers; | |
| /** | |
| * glBlendColor: man4/glBlendColor.xml | |
| * | |
| * $(P The$(D_INLINECODE GL_BLEND_COLOR) may be used to calculate the source and destination blending factors. The color components are clamped to the range 0 1 before being stored. See$(D_INLINECODE glBlendFunc) for a complete description of the blending operations. Initially the$(D_INLINECODE GL_BLEND_COLOR) is set to (0, 0, 0, 0).) | |
| * | |
| * $(P The type of the$(D_INLINECODE red),$(D_INLINECODE green),$(D_INLINECODE blue), and$(D_INLINECODE alpha) parameters was changed from GLclampf to GLfloat. This change is transparent to user code and is described in detail on the$(D_INLINECODE removedTypes) page.) | |
| * | |
| * Params: | |
| * red = $(P specify the components of$(D_INLINECODE GL_BLEND_COLOR)) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBlendEquation),$(D_INLINECODE glBlendFunc),$(D_INLINECODE glGetString),$(D_INLINECODE removedTypes)) | |
| */ | |
| extern(C) void function(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) @system @nogc nothrow glBlendColor; | |
| /** | |
| * glBlendEquation: man4/glBlendEquation.xml | |
| * | |
| * $(P The blend equations determine how a new pixel (the ''source'' color) is combined with a pixel already in the framebuffer (the ''destination'' color). This function sets both the RGB blend equation and the alpha blend equation to a single equation.$(D_INLINECODE glBlendEquationi) specifies the blend equation for a single draw buffer whereas$(D_INLINECODE glBlendEquation) sets the blend equation for all draw buffers.)$(P These equations use the source and destination blend factors specified by either$(D_INLINECODE glBlendFunc) or$(D_INLINECODE glBlendFuncSeparate). See$(D_INLINECODE glBlendFunc) or$(D_INLINECODE glBlendFuncSeparate) for a description of the various blend factors.)$(P In the equations that follow, source and destination color components are referred to as R s G s B s A s and R d G d B d A d, respectively. The result color is referred to as R r G r B r A r. The source and destination blend factors are denoted s R s G s B s A and d R d G d B d A, respectively. For these equations all color components are understood to have values in the range 0 1.$(B Mode)$(B RGB Components)$(B Alpha Component)$(D_INLINECODE GL_FUNC_ADD) Rr = R s ⁢ s R + R d ⁢ d R Gr = G s ⁢ s G + G d ⁢ d G Br = B s ⁢ s B + B d ⁢ d B Ar = A s ⁢ s A + A d ⁢ d A$(D_INLINECODE GL_FUNC_SUBTRACT) Rr = R s ⁢ s R - R d ⁢ d R Gr = G s ⁢ s G - G d ⁢ d G Br = B s ⁢ s B - B d ⁢ d B Ar = A s ⁢ s A - A d ⁢ d A$(D_INLINECODE GL_FUNC_REVERSE_SUBTRACT) Rr = R d ⁢ d R - R s ⁢ s R Gr = G d ⁢ d G - G s ⁢ s G Br = B d ⁢ d B - B s ⁢ s B Ar = A d ⁢ d A - A s ⁢ s A$(D_INLINECODE GL_MIN) Rr = min ⁡ R s R d Gr = min ⁡ G s G d Br = min ⁡ B s B d Ar = min ⁡ A s A d$(D_INLINECODE GL_MAX) Rr = max ⁡ R s R d Gr = max ⁡ G s G d Br = max ⁡ B s B d Ar = max ⁡ A s A d)$(P The results of these equations are clamped to the range 0 1.)$(P The$(D_INLINECODE GL_MIN) and$(D_INLINECODE GL_MAX) equations are useful for applications that analyze image data (image thresholding against a constant color, for example). The$(D_INLINECODE GL_FUNC_ADD) equation is useful for antialiasing and transparency, among other things.)$(P Initially, both the RGB blend equation and the alpha blend equation are set to$(D_INLINECODE GL_FUNC_ADD).) | |
| * | |
| * $(P The$(D_INLINECODE GL_MIN), and$(D_INLINECODE GL_MAX) equations do not use the source or destination factors, only the source and destination colors.) | |
| * | |
| * Params: | |
| * buf = $(P for$(D_INLINECODE glBlendEquationi), specifies the index of the draw buffer for which to set the blend equation.) | |
| * mode = $(P specifies how source and destination colors are combined. It must be$(D_INLINECODE GL_FUNC_ADD),$(D_INLINECODE GL_FUNC_SUBTRACT),$(D_INLINECODE GL_FUNC_REVERSE_SUBTRACT),$(D_INLINECODE GL_MIN),$(D_INLINECODE GL_MAX).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBlendColor),$(D_INLINECODE glBlendFunc)$(D_INLINECODE glBlendFuncSeparate)) | |
| */ | |
| extern(C) void function(GLenum mode) @system @nogc nothrow glBlendEquation; | |
| /// Ditto | |
| extern(C) void function(GLuint buf, GLenum mode) @system @nogc nothrow glBlendEquationi; | |
| /** | |
| * glBlendEquationSeparate: man4/glBlendEquationSeparate.xml | |
| * | |
| * $(P The blend equations determines how a new pixel (the ''source'' color) is combined with a pixel already in the framebuffer (the ''destination'' color). These functions specify one blend equation for the RGB-color components and one blend equation for the alpha component.$(D_INLINECODE glBlendEquationSeparatei) specifies the blend equations for a single draw buffer whereas$(D_INLINECODE glBlendEquationSeparate) sets the blend equations for all draw buffers.)$(P The blend equations use the source and destination blend factors specified by either$(D_INLINECODE glBlendFunc) or$(D_INLINECODE glBlendFuncSeparate). See$(D_INLINECODE glBlendFunc) or$(D_INLINECODE glBlendFuncSeparate) for a description of the various blend factors.)$(P In the equations that follow, source and destination color components are referred to as R s G s B s A s and R d G d B d A d, respectively. The result color is referred to as R r G r B r A r. The source and destination blend factors are denoted s R s G s B s A and d R d G d B d A, respectively. For these equations all color components are understood to have values in the range 0 1.$(B Mode)$(B RGB Components)$(B Alpha Component)$(D_INLINECODE GL_FUNC_ADD) Rr = R s ⁢ s R + R d ⁢ d R Gr = G s ⁢ s G + G d ⁢ d G Br = B s ⁢ s B + B d ⁢ d B Ar = A s ⁢ s A + A d ⁢ d A$(D_INLINECODE GL_FUNC_SUBTRACT) Rr = R s ⁢ s R - R d ⁢ d R Gr = G s ⁢ s G - G d ⁢ d G Br = B s ⁢ s B - B d ⁢ d B Ar = A s ⁢ s A - A d ⁢ d A$(D_INLINECODE GL_FUNC_REVERSE_SUBTRACT) Rr = R d ⁢ d R - R s ⁢ s R Gr = G d ⁢ d G - G s ⁢ s G Br = B d ⁢ d B - B s ⁢ s B Ar = A d ⁢ d A - A s ⁢ s A$(D_INLINECODE GL_MIN) Rr = min ⁡ R s R d Gr = min ⁡ G s G d Br = min ⁡ B s B d Ar = min ⁡ A s A d$(D_INLINECODE GL_MAX) Rr = max ⁡ R s R d Gr = max ⁡ G s G d Br = max ⁡ B s B d Ar = max ⁡ A s A d)$(P The results of these equations are clamped to the range 0 1.)$(P The$(D_INLINECODE GL_MIN) and$(D_INLINECODE GL_MAX) equations are useful for applications that analyze image data (image thresholding against a constant color, for example). The$(D_INLINECODE GL_FUNC_ADD) equation is useful for antialiasing and transparency, among other things.)$(P Initially, both the RGB blend equation and the alpha blend equation are set to$(D_INLINECODE GL_FUNC_ADD).) | |
| * | |
| * $(P The$(D_INLINECODE GL_MIN), and$(D_INLINECODE GL_MAX) equations do not use the source or destination factors, only the source and destination colors.) | |
| * | |
| * Params: | |
| * buf = $(P for$(D_INLINECODE glBlendEquationSeparatei), specifies the index of the draw buffer for which to set the blend equations.) | |
| * modeRGB = $(P specifies the RGB blend equation, how the red, green, and blue components of the source and destination colors are combined. It must be$(D_INLINECODE GL_FUNC_ADD),$(D_INLINECODE GL_FUNC_SUBTRACT),$(D_INLINECODE GL_FUNC_REVERSE_SUBTRACT),$(D_INLINECODE GL_MIN),$(D_INLINECODE GL_MAX).) | |
| * modeAlpha = $(P specifies the alpha blend equation, how the alpha component of the source and destination colors are combined. It must be$(D_INLINECODE GL_FUNC_ADD),$(D_INLINECODE GL_FUNC_SUBTRACT),$(D_INLINECODE GL_FUNC_REVERSE_SUBTRACT),$(D_INLINECODE GL_MIN),$(D_INLINECODE GL_MAX).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGetString),$(D_INLINECODE glBlendColor),$(D_INLINECODE glBlendFunc),$(D_INLINECODE glBlendFuncSeparate)) | |
| */ | |
| extern(C) void function(GLenum modeRGB, GLenum modeAlpha) @system @nogc nothrow glBlendEquationSeparate; | |
| /// Ditto | |
| extern(C) void function(GLuint buf, GLenum modeRGB, GLenum modeAlpha) @system @nogc nothrow glBlendEquationSeparatei; | |
| /** | |
| * glBlendFunc: man4/glBlendFunc.xml | |
| * | |
| * $(P Pixels can be drawn using a function that blends the incoming (source) RGBA values with the RGBA values that are already in the frame buffer (the destination values). Blending is initially disabled. Use$(D_INLINECODE glEnable) and$(D_INLINECODE glDisable) with argument$(D_INLINECODE GL_BLEND) to enable and disable blending.)$(P $(D_INLINECODE glBlendFunc) defines the operation of blending for all draw buffers when it is enabled.$(D_INLINECODE glBlendFunci) defines the operation of blending for a single draw buffer specified by$(D_INLINECODE buf) when enabled for that draw buffer.$(D_INLINECODE sfactor) specifies which method is used to scale the source color components.$(D_INLINECODE dfactor) specifies which method is used to scale the destination color components. Both parameters must be one of the following symbolic constants:$(D_INLINECODE GL_ZERO),$(D_INLINECODE GL_ONE),$(D_INLINECODE GL_SRC_COLOR),$(D_INLINECODE GL_ONE_MINUS_SRC_COLOR),$(D_INLINECODE GL_DST_COLOR),$(D_INLINECODE GL_ONE_MINUS_DST_COLOR),$(D_INLINECODE GL_SRC_ALPHA),$(D_INLINECODE GL_ONE_MINUS_SRC_ALPHA),$(D_INLINECODE GL_DST_ALPHA),$(D_INLINECODE GL_ONE_MINUS_DST_ALPHA),$(D_INLINECODE GL_CONSTANT_COLOR),$(D_INLINECODE GL_ONE_MINUS_CONSTANT_COLOR),$(D_INLINECODE GL_CONSTANT_ALPHA),$(D_INLINECODE GL_ONE_MINUS_CONSTANT_ALPHA),$(D_INLINECODE GL_SRC_ALPHA_SATURATE),$(D_INLINECODE GL_SRC1_COLOR),$(D_INLINECODE GL_ONE_MINUS_SRC1_COLOR),$(D_INLINECODE GL_SRC1_ALPHA), and$(D_INLINECODE GL_ONE_MINUS_SRC1_ALPHA). The possible methods are described in the following table. Each method defines four scale factors, one each for red, green, blue, and alpha. In the table and in subsequent equations, first source, second source and destination color components are referred to as R s0 G s0 B s0 A s0, R s1 G s1 B s1 A s1 and R d G d B d A d, respectively. The color specified by$(D_INLINECODE glBlendColor) is referred to as R c G c B c A c. They are understood to have integer values between 0 and k R k G k B k A, where)$(P k c = 2 m c - 1)$(P and m R m G m B m A is the number of red, green, blue, and alpha bitplanes.)$(P Source and destination scale factors are referred to as s R s G s B s A and d R d G d B d A. The scale factors described in the table, denoted f R f G f B f A, represent either source or destination factors. All scale factors have range 0 1.)$(B Parameter) f R f G f B f A$(D_INLINECODE GL_ZERO) 0 0 0 0$(D_INLINECODE GL_ONE) 1 1 1 1$(D_INLINECODE GL_SRC_COLOR) R s0 k R G s0 k G B s0 k B A s0 k A$(D_INLINECODE GL_ONE_MINUS_SRC_COLOR) 1 1 1 1 - R s0 k R G s0 k G B s0 k B A s0 k A$(D_INLINECODE GL_DST_COLOR) R d k R G d k G B d k B A d k A$(D_INLINECODE GL_ONE_MINUS_DST_COLOR) 1 1 1 1 - R d k R G d k G B d k B A d k A$(D_INLINECODE GL_SRC_ALPHA) A s0 k A A s0 k A A s0 k A A s0 k A$(D_INLINECODE GL_ONE_MINUS_SRC_ALPHA) 1 1 1 1 - A s0 k A A s0 k A A s0 k A A s0 k A$(D_INLINECODE GL_DST_ALPHA) A d k A A d k A A d k A A d k A$(D_INLINECODE GL_ONE_MINUS_DST_ALPHA) 1 1 1 1 - A d k A A d k A A d k A A d k A$(D_INLINECODE GL_CONSTANT_COLOR) R c G c B c A c$(D_INLINECODE GL_ONE_MINUS_CONSTANT_COLOR) 1 1 1 1 - R c G c B c A c$(D_INLINECODE GL_CONSTANT_ALPHA) A c A c A c A c$(D_INLINECODE GL_ONE_MINUS_CONSTANT_ALPHA) 1 1 1 1 - A c A c A c A c$(D_INLINECODE GL_SRC_ALPHA_SATURATE) i i i 1$(D_INLINECODE GL_SRC1_COLOR) R s1 k R G s1 k G B s1 k B A s1 k A$(D_INLINECODE GL_ONE_MINUS_SRC1_COLOR) 1 1 1 1 - R s1 k R G s1 k G B s1 k B A s1 k A$(D_INLINECODE GL_SRC1_ALPHA) A s1 k A A s1 k A A s1 k A A s1 k A$(D_INLINECODE GL_ONE_MINUS_SRC1_ALPHA) 1 1 1 1 - A s1 k A A s1 k A A s1 k A A s1 k A$(P In the table,)$(P i = min ⁡ A s k A - A d k A)$(P To determine the blended RGBA values of a pixel, the system uses the following equations:)$(P R d = min ⁡ k R R s ⁢ s R + R d ⁢ d R G d = min ⁡ k G G s ⁢ s G + G d ⁢ d G B d = min ⁡ k B B s ⁢ s B + B d ⁢ d B A d = min ⁡ k A A s ⁢ s A + A d ⁢ d A)$(P Despite the apparent precision of the above equations, blending arithmetic is not exactly specified, because blending operates with imprecise integer color values. However, a blend factor that should be equal to 1 is guaranteed not to modify its multiplicand, and a blend factor equal to 0 reduces its multiplicand to 0. For example, when$(D_INLINECODE sfactor) is$(D_INLINECODE GL_SRC_ALPHA),$(D_INLINECODE dfactor) is$(D_INLINECODE GL_ONE_MINUS_SRC_ALPHA), and A s is equal to k A, the equations reduce to simple replacement:)$(P R d = R s G d = G s B d = B s A d = A s) | |
| * | |
| * $(P Incoming (source) alpha is correctly thought of as a material opacity, ranging from 1.0 ( K A ), representing complete opacity, to 0.0 (0), representing complete transparency.)$(P When more than one color buffer is enabled for drawing, the GL performs blending separately for each enabled buffer, using the contents of that buffer for destination color. (See$(D_INLINECODE glDrawBuffer).))$(P When dual source blending is enabled (i.e., one of the blend factors requiring the second color input is used), the maximum number of enabled draw buffers is given by$(D_INLINECODE GL_MAX_DUAL_SOURCE_DRAW_BUFFERS), which may be lower than$(D_INLINECODE GL_MAX_DRAW_BUFFERS).) | |
| * | |
| * Params: | |
| * buf = $(P For$(D_INLINECODE glBlendFunci), specifies the index of the draw buffer for which to set the blend function.) | |
| * sfactor = $(P Specifies how the red, green, blue, and alpha source blending factors are computed. The initial value is$(D_INLINECODE GL_ONE).) | |
| * dfactor = $(P Specifies how the red, green, blue, and alpha destination blending factors are computed. The following symbolic constants are accepted:$(D_INLINECODE GL_ZERO),$(D_INLINECODE GL_ONE),$(D_INLINECODE GL_SRC_COLOR),$(D_INLINECODE GL_ONE_MINUS_SRC_COLOR),$(D_INLINECODE GL_DST_COLOR),$(D_INLINECODE GL_ONE_MINUS_DST_COLOR),$(D_INLINECODE GL_SRC_ALPHA),$(D_INLINECODE GL_ONE_MINUS_SRC_ALPHA),$(D_INLINECODE GL_DST_ALPHA),$(D_INLINECODE GL_ONE_MINUS_DST_ALPHA).$(D_INLINECODE GL_CONSTANT_COLOR),$(D_INLINECODE GL_ONE_MINUS_CONSTANT_COLOR),$(D_INLINECODE GL_CONSTANT_ALPHA), and$(D_INLINECODE GL_ONE_MINUS_CONSTANT_ALPHA). The initial value is$(D_INLINECODE GL_ZERO).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBlendColor),$(D_INLINECODE glBlendEquation),$(D_INLINECODE glBlendFuncSeparate),$(D_INLINECODE glClear),$(D_INLINECODE glDrawBuffer),$(D_INLINECODE glEnable),$(D_INLINECODE glLogicOp),$(D_INLINECODE glStencilFunc)) | |
| */ | |
| extern(C) void function(GLenum sfactor, GLenum dfactor) @system @nogc nothrow glBlendFunc; | |
| /// Ditto | |
| extern(C) void function(GLuint buf, GLenum sfactor, GLenum dfactor) @system @nogc nothrow glBlendFunci; | |
| /** | |
| * glBlendFuncSeparate: man4/glBlendFuncSeparate.xml | |
| * | |
| * $(P Pixels can be drawn using a function that blends the incoming (source) RGBA values with the RGBA values that are already in the frame buffer (the destination values). Blending is initially disabled. Use$(D_INLINECODE glEnable) and$(D_INLINECODE glDisable) with argument$(D_INLINECODE GL_BLEND) to enable and disable blending.)$(P $(D_INLINECODE glBlendFuncSeparate) defines the operation of blending for all draw buffers when it is enabled.$(D_INLINECODE glBlendFuncSeparatei) defines the operation of blending for a single draw buffer specified by$(D_INLINECODE buf) when enabled for that draw buffer.$(D_INLINECODE srcRGB) specifies which method is used to scale the source RGB-color components.$(D_INLINECODE dstRGB) specifies which method is used to scale the destination RGB-color components. Likewise,$(D_INLINECODE srcAlpha) specifies which method is used to scale the source alpha color component, and$(D_INLINECODE dstAlpha) specifies which method is used to scale the destination alpha component. The possible methods are described in the following table. Each method defines four scale factors, one each for red, green, blue, and alpha.)$(P In the table and in subsequent equations, first source, second source and destination color components are referred to as R s0 G s0 B s0 A s0, R s1 G s1 B s1 A s1, and R d G d B d A d, respectively. The color specified by$(D_INLINECODE glBlendColor) is referred to as R c G c B c A c. They are understood to have integer values between 0 and k R k G k B k A, where)$(P k c = 2 m c - 1)$(P and m R m G m B m A is the number of red, green, blue, and alpha bitplanes.)$(P Source and destination scale factors are referred to as s R s G s B s A and d R d G d B d A. All scale factors have range 0 1.)$(B Parameter)$(B RGB Factor)$(B Alpha Factor)$(D_INLINECODE GL_ZERO) 0 0 0 0$(D_INLINECODE GL_ONE) 1 1 1 1$(D_INLINECODE GL_SRC_COLOR) R s0 k R G s0 k G B s0 k B A s0 k A$(D_INLINECODE GL_ONE_MINUS_SRC_COLOR) 1 1 1 1 - R s0 k R G s0 k G B s0 k B 1 - A s0 k A$(D_INLINECODE GL_DST_COLOR) R d k R G d k G B d k B A d k A$(D_INLINECODE GL_ONE_MINUS_DST_COLOR) 1 1 1 - R d k R G d k G B d k B 1 - A d k A$(D_INLINECODE GL_SRC_ALPHA) A s0 k A A s0 k A A s0 k A A s0 k A$(D_INLINECODE GL_ONE_MINUS_SRC_ALPHA) 1 1 1 - A s0 k A A s0 k A A s0 k A 1 - A s0 k A$(D_INLINECODE GL_DST_ALPHA) A d k A A d k A A d k A A d k A$(D_INLINECODE GL_ONE_MINUS_DST_ALPHA) 1 1 1 - A d k A A d k A A d k A 1 - A d k A$(D_INLINECODE GL_CONSTANT_COLOR) R c G c B c A c$(D_INLINECODE GL_ONE_MINUS_CONSTANT_COLOR) 1 1 1 - R c G c B c 1 - A c$(D_INLINECODE GL_CONSTANT_ALPHA) A c A c A c A c$(D_INLINECODE GL_ONE_MINUS_CONSTANT_ALPHA) 1 1 1 - A c A c A c 1 - A c$(D_INLINECODE GL_SRC_ALPHA_SATURATE) i i i 1$(D_INLINECODE GL_SRC1_COLOR) R s1 k R G s1 k G B s1 k B A s1 k A$(D_INLINECODE GL_ONE_MINUS_SRC_COLOR) 1 1 1 1 - R s1 k R G s1 k G B s1 k B 1 - A s1 k A$(D_INLINECODE GL_SRC1_ALPHA) A s1 k A A s1 k A A s1 k A A s1 k A$(D_INLINECODE GL_ONE_MINUS_SRC_ALPHA) 1 1 1 - A s1 k A A s1 k A A s1 k A 1 - A s1 k A$(P In the table,)$(P i = min ⁡ A s 1 - A d)$(P To determine the blended RGBA values of a pixel, the system uses the following equations:)$(P R d = min ⁡ k R R s ⁢ s R + R d ⁢ d R G d = min ⁡ k G G s ⁢ s G + G d ⁢ d G B d = min ⁡ k B B s ⁢ s B + B d ⁢ d B A d = min ⁡ k A A s ⁢ s A + A d ⁢ d A)$(P Despite the apparent precision of the above equations, blending arithmetic is not exactly specified, because blending operates with imprecise integer color values. However, a blend factor that should be equal to 1 is guaranteed not to modify its multiplicand, and a blend factor equal to 0 reduces its multiplicand to 0. For example, when$(D_INLINECODE srcRGB) is$(D_INLINECODE GL_SRC_ALPHA),$(D_INLINECODE dstRGB) is$(D_INLINECODE GL_ONE_MINUS_SRC_ALPHA), and A s is equal to k A, the equations reduce to simple replacement:)$(P R d = R s G d = G s B d = B s A d = A s) | |
| * | |
| * $(P Incoming (source) alpha is correctly thought of as a material opacity, ranging from 1.0 ( K A ), representing complete opacity, to 0.0 (0), representing complete transparency.)$(P When more than one color buffer is enabled for drawing, the GL performs blending separately for each enabled buffer, using the contents of that buffer for destination color. (See$(D_INLINECODE glDrawBuffer).))$(P When dual source blending is enabled (i.e., one of the blend factors requiring the second color input is used), the maximum number of enabled draw buffers is given by$(D_INLINECODE GL_MAX_DUAL_SOURCE_DRAW_BUFFERS), which may be lower than$(D_INLINECODE GL_MAX_DRAW_BUFFERS).) | |
| * | |
| * Params: | |
| * buf = $(P For$(D_INLINECODE glBlendFuncSeparatei), specifies the index of the draw buffer for which to set the blend functions.) | |
| * srcRGB = $(P Specifies how the red, green, and blue blending factors are computed. The initial value is$(D_INLINECODE GL_ONE).) | |
| * dstRGB = $(P Specifies how the red, green, and blue destination blending factors are computed. The initial value is$(D_INLINECODE GL_ZERO).) | |
| * srcAlpha = $(P Specified how the alpha source blending factor is computed. The initial value is$(D_INLINECODE GL_ONE).) | |
| * dstAlpha = $(P Specified how the alpha destination blending factor is computed. The initial value is$(D_INLINECODE GL_ZERO).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBlendColor),$(D_INLINECODE glBlendFunc),$(D_INLINECODE glBlendEquation),$(D_INLINECODE glClear),$(D_INLINECODE glDrawBuffer),$(D_INLINECODE glEnable),$(D_INLINECODE glLogicOp),$(D_INLINECODE glStencilFunc)) | |
| */ | |
| extern(C) void function(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha) @system @nogc nothrow glBlendFuncSeparate; | |
| /// Ditto | |
| extern(C) void function(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha) @system @nogc nothrow glBlendFuncSeparatei; | |
| /** | |
| * glBlitFramebuffer: man4/glBlitFramebuffer.xml | |
| * | |
| * $(P $(D_INLINECODE glBlitFramebuffer) and$(D_INLINECODE glBlitNamedFramebuffer) transfer a rectangle of pixel values from one region of a read framebuffer to another region of a draw framebuffer.)$(P For$(D_INLINECODE glBlitFramebuffer), the read and draw framebuffers are those bound to the$(D_INLINECODE GL_READ_FRAMEBUFFER) and$(D_INLINECODE GL_DRAW_FRAMEBUFFER) targets respectively.)$(P For$(D_INLINECODE glBlitNamedFramebuffer),$(D_INLINECODE readFramebuffer) and$(D_INLINECODE drawFramebuffer) are the names of the read read and draw framebuffer objects respectively. If$(D_INLINECODE readFramebuffer) or$(D_INLINECODE drawFramebuffer) is zero, then the default read or draw framebuffer respectively is used.)$(P $(D_INLINECODE mask) is the bitwise OR of a number of values indicating which buffers are to be copied. The values are$(D_INLINECODE GL_COLOR_BUFFER_BIT),$(D_INLINECODE GL_DEPTH_BUFFER_BIT), and$(D_INLINECODE GL_STENCIL_BUFFER_BIT). The pixels corresponding to these buffers are copied from the source rectangle bounded by the locations ($(D_INLINECODE srcX0),$(D_INLINECODE srcY0) ) and ($(D_INLINECODE srcX1),$(D_INLINECODE srcY1) ) to the destination rectangle bounded by the locations ($(D_INLINECODE dstX0),$(D_INLINECODE dstY0) ) and ($(D_INLINECODE dstX1),$(D_INLINECODE dstY1) ). The lower bounds of the rectangle are inclusive, while the upper bounds are exclusive.)$(P The actual region taken from the read framebuffer is limited to the intersection of the source buffers being transferred, which may include the color buffer selected by the read buffer, the depth buffer, and/or the stencil buffer depending on mask. The actual region written to the draw framebuffer is limited to the intersection of the destination buffers being written, which may include multiple draw buffers, the depth buffer, and/or the stencil buffer depending on mask. Whether or not the source or destination regions are altered due to these limits, the scaling and offset applied to pixels being transferred is performed as though no such limits were present.)$(P If the sizes of the source and destination rectangles are not equal,$(D_INLINECODE filter) specifies the interpolation method that will be applied to resize the source image , and must be$(D_INLINECODE GL_NEAREST) or$(D_INLINECODE GL_LINEAR).$(D_INLINECODE GL_LINEAR) is only a valid interpolation method for the color buffer. If$(D_INLINECODE filter) is not$(D_INLINECODE GL_NEAREST) and$(D_INLINECODE mask) includes$(D_INLINECODE GL_DEPTH_BUFFER_BIT) or$(D_INLINECODE GL_STENCIL_BUFFER_BIT), no data is transferred and a$(D_INLINECODE GL_INVALID_OPERATION) error is generated.)$(P If$(D_INLINECODE filter) is$(D_INLINECODE GL_LINEAR) and the source rectangle would require sampling outside the bounds of the source framebuffer, values are read as if the$(D_INLINECODE GL_CLAMP_TO_EDGE) texture wrapping mode were applied.)$(P When the color buffer is transferred, values are taken from the read buffer of the specified read framebuffer and written to each of the draw buffers of the specified draw framebuffer.)$(P If the source and destination rectangles overlap or are the same, and the read and draw buffers are the same, the result of the operation is undefined.) | |
| * | |
| * Params: | |
| * readFramebuffer = $(P Specifies the name of the source framebuffer object for$(D_INLINECODE glBlitNamedFramebuffer).) | |
| * drawFramebuffer = $(P Specifies the name of the destination framebuffer object for$(D_INLINECODE glBlitNamedFramebuffer).) | |
| * srcX0 = $(P Specify the bounds of the source rectangle within the read buffer of the read framebuffer.) | |
| * dstX0 = $(P Specify the bounds of the destination rectangle within the write buffer of the write framebuffer.) | |
| * mask = $(P The bitwise OR of the flags indicating which buffers are to be copied. The allowed flags are$(D_INLINECODE GL_COLOR_BUFFER_BIT),$(D_INLINECODE GL_DEPTH_BUFFER_BIT) and$(D_INLINECODE GL_STENCIL_BUFFER_BIT).) | |
| * filter = $(P Specifies the interpolation to be applied if the image is stretched. Must be$(D_INLINECODE GL_NEAREST) or$(D_INLINECODE GL_LINEAR).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glReadPixels)$(D_INLINECODE glCheckFramebufferStatus),$(D_INLINECODE glGenFramebuffers)$(D_INLINECODE glBindFramebuffer)$(D_INLINECODE glDeleteFramebuffers)) | |
| */ | |
| extern(C) void function(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) @system @nogc nothrow glBlitFramebuffer; | |
| /// Ditto | |
| extern(C) void function(GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) @system @nogc nothrow glBlitNamedFramebuffer; | |
| /** | |
| * glBufferData: man4/glBufferData.xml | |
| * | |
| * $(P $(D_INLINECODE glBufferData) and$(D_INLINECODE glNamedBufferData) create a new data store for a buffer object. In case of$(D_INLINECODE glBufferData), the buffer object currently bound to$(D_INLINECODE target) is used. For$(D_INLINECODE glNamedBufferData), a buffer object associated with ID specified by the caller in$(D_INLINECODE buffer) will be used instead.)$(P While creating the new storage, any pre-existing data store is deleted. The new data store is created with the specified$(D_INLINECODE size) in bytes and$(D_INLINECODE usage). If$(D_INLINECODE data) is not$(D_INLINECODE NULL), the data store is initialized with data from this pointer. In its initial state, the new data store is not mapped, it has a$(D_INLINECODE NULL) mapped pointer, and its mapped access is$(D_INLINECODE GL_READ_WRITE).)$(P $(D_INLINECODE usage) is a hint to the GL implementation as to how a buffer object's data store will be accessed. This enables the GL implementation to make more intelligent decisions that may significantly impact buffer object performance. It does not, however, constrain the actual usage of the data store.$(D_INLINECODE usage) can be broken down into two parts: first, the frequency of access (modification and usage), and second, the nature of that access. The frequency of access may be one of these:) variablelist$(P The nature of access may be one of these:) variablelist | |
| * | |
| * $(P If$(D_INLINECODE data) is$(D_INLINECODE NULL), a data store of the specified size is still created, but its contents remain uninitialized and thus undefined.)$(P Clients must align data elements consistently with the requirements of the client platform, with an additional base-level requirement that an offset within a buffer to a datum comprising N bytes be a multiple of N.)$(P The$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER) target is available only if the GL version is 4.2 or greater.)$(P The$(D_INLINECODE GL_DISPATCH_INDIRECT_BUFFER) and$(D_INLINECODE GL_SHADER_STORAGE_BUFFER) targets are available only if the GL version is 4.3 or greater.)$(P The$(D_INLINECODE GL_QUERY_BUFFER) target is available only if the GL version is 4.4 or greater.) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target to which the buffer object is bound for$(D_INLINECODE glBufferData), which must be one of the buffer binding targets in the following table:)$(B Buffer Binding Target)$(B Purpose)$(D_INLINECODE GL_ARRAY_BUFFER) Vertex attributes$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER) Atomic counter storage$(D_INLINECODE GL_COPY_READ_BUFFER) Buffer copy source$(D_INLINECODE GL_COPY_WRITE_BUFFER) Buffer copy destination$(D_INLINECODE GL_DISPATCH_INDIRECT_BUFFER) Indirect compute dispatch commands$(D_INLINECODE GL_DRAW_INDIRECT_BUFFER) Indirect command arguments$(D_INLINECODE GL_ELEMENT_ARRAY_BUFFER) Vertex array indices$(D_INLINECODE GL_PIXEL_PACK_BUFFER) Pixel read target$(D_INLINECODE GL_PIXEL_UNPACK_BUFFER) Texture data source$(D_INLINECODE GL_QUERY_BUFFER) Query result buffer$(D_INLINECODE GL_SHADER_STORAGE_BUFFER) Read-write storage for shaders$(D_INLINECODE GL_TEXTURE_BUFFER) Texture data buffer$(D_INLINECODE GL_TRANSFORM_FEEDBACK_BUFFER) Transform feedback buffer$(D_INLINECODE GL_UNIFORM_BUFFER) Uniform block storage | |
| * buffer = $(P Specifies the name of the buffer object for$(D_INLINECODE glNamedBufferData) function.) | |
| * size = $(P Specifies the size in bytes of the buffer object's new data store.) | |
| * data = $(P Specifies a pointer to data that will be copied into the data store for initialization, or$(D_INLINECODE NULL) if no data is to be copied.) | |
| * usage = $(P Specifies the expected usage pattern of the data store. The symbolic constant must be$(D_INLINECODE GL_STREAM_DRAW),$(D_INLINECODE GL_STREAM_READ),$(D_INLINECODE GL_STREAM_COPY),$(D_INLINECODE GL_STATIC_DRAW),$(D_INLINECODE GL_STATIC_READ),$(D_INLINECODE GL_STATIC_COPY),$(D_INLINECODE GL_DYNAMIC_DRAW),$(D_INLINECODE GL_DYNAMIC_READ), or$(D_INLINECODE GL_DYNAMIC_COPY).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2005 Addison-Wesley. Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBindBuffer),$(D_INLINECODE glBufferSubData),$(D_INLINECODE glMapBuffer),$(D_INLINECODE glUnmapBuffer)) | |
| */ | |
| extern(C) void function(GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage) @system @nogc nothrow glBufferData; | |
| /// Ditto | |
| extern(C) void function(GLuint buffer, GLsizei size, const void* data, GLenum usage) @system @nogc nothrow glNamedBufferData; | |
| /** | |
| * glBufferStorage: man4/glBufferStorage.xml | |
| * | |
| * $(P $(D_INLINECODE glBufferStorage) and$(D_INLINECODE glNamedBufferStorage) create a new immutable data store. For$(D_INLINECODE glBufferStorage), the buffer object currently bound to$(D_INLINECODE target) will be initialized. For$(D_INLINECODE glNamedBufferStorage),$(D_INLINECODE buffer) is the name of the buffer object that will be configured. The size of the data store is specified by$(D_INLINECODE size). If an initial data is available, its address may be supplied in$(D_INLINECODE data). Otherwise, to create an uninitialized data store,$(D_INLINECODE data) should be$(D_INLINECODE NULL).)$(P The$(D_INLINECODE flags) parameters specifies the intended usage of the buffer's data store. It must be a bitwise combination of a subset of the following flags: variablelist)$(P The allowed combinations of flags are subject to certain restrictions. They are as follows: itemizedlist) | |
| * | |
| * $(P $(D_INLINECODE glBufferStorage) is available only if the GL version is 4.4 or greater.)$(P $(D_INLINECODE glNamedBufferStorage) is available only if the GL version is 4.5 or greater.)$(P If$(D_INLINECODE data) is$(D_INLINECODE NULL), a data store of the specified size is still created, but its contents remain uninitialized and thus undefined.) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target to which the buffer object is bound for$(D_INLINECODE glBufferStorage), which must be one of the buffer binding targets in the following table:)$(B Buffer Binding Target)$(B Purpose)$(D_INLINECODE GL_ARRAY_BUFFER) Vertex attributes$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER) Atomic counter storage$(D_INLINECODE GL_COPY_READ_BUFFER) Buffer copy source$(D_INLINECODE GL_COPY_WRITE_BUFFER) Buffer copy destination$(D_INLINECODE GL_DISPATCH_INDIRECT_BUFFER) Indirect compute dispatch commands$(D_INLINECODE GL_DRAW_INDIRECT_BUFFER) Indirect command arguments$(D_INLINECODE GL_ELEMENT_ARRAY_BUFFER) Vertex array indices$(D_INLINECODE GL_PIXEL_PACK_BUFFER) Pixel read target$(D_INLINECODE GL_PIXEL_UNPACK_BUFFER) Texture data source$(D_INLINECODE GL_QUERY_BUFFER) Query result buffer$(D_INLINECODE GL_SHADER_STORAGE_BUFFER) Read-write storage for shaders$(D_INLINECODE GL_TEXTURE_BUFFER) Texture data buffer$(D_INLINECODE GL_TRANSFORM_FEEDBACK_BUFFER) Transform feedback buffer$(D_INLINECODE GL_UNIFORM_BUFFER) Uniform block storage | |
| * buffer = $(P Specifies the name of the buffer object for$(D_INLINECODE glNamedBufferStorage) function.) | |
| * size = $(P Specifies the size in bytes of the buffer object's new data store.) | |
| * data = $(P Specifies a pointer to data that will be copied into the data store for initialization, or$(D_INLINECODE NULL) if no data is to be copied.) | |
| * flags = $(P Specifies the intended usage of the buffer's data store. Must be a bitwise combination of the following flags.$(D_INLINECODE GL_DYNAMIC_STORAGE_BIT),$(D_INLINECODE GL_MAP_READ_BIT)$(D_INLINECODE GL_MAP_WRITE_BIT),$(D_INLINECODE GL_MAP_PERSISTENT_BIT),$(D_INLINECODE GL_MAP_COHERENT_BIT), and$(D_INLINECODE GL_CLIENT_STORAGE_BIT).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBindBuffer),$(D_INLINECODE glBufferSubData),$(D_INLINECODE glMapBuffer),$(D_INLINECODE glUnmapBuffer)) | |
| */ | |
| extern(C) void function(GLenum target, GLsizeiptr size, const GLvoid* data, GLbitfield flags) @system @nogc nothrow glBufferStorage; | |
| /// Ditto | |
| extern(C) void function(GLuint buffer, GLsizei size, const void* data, GLbitfield flags) @system @nogc nothrow glNamedBufferStorage; | |
| /** | |
| * glBufferSubData: man4/glBufferSubData.xml | |
| * | |
| * $(P $(D_INLINECODE glBufferSubData) and$(D_INLINECODE glNamedBufferSubData) redefine some or all of the data store for the specified buffer object. Data starting at byte offset$(D_INLINECODE offset) and extending for$(D_INLINECODE size) bytes is copied to the data store from the memory pointed to by$(D_INLINECODE data).$(D_INLINECODE offset) and$(D_INLINECODE size) must define a range lying entirely within the buffer object's data store.) | |
| * | |
| * $(P When replacing the entire data store, consider using$(D_INLINECODE glBufferSubData) rather than completely recreating the data store with$(D_INLINECODE glBufferData). This avoids the cost of reallocating the data store.)$(P Consider using multiple buffer objects to avoid stalling the rendering pipeline during data store updates. If any rendering in the pipeline makes reference to data in the buffer object being updated by$(D_INLINECODE glBufferSubData), especially from the specific region being updated, that rendering must drain from the pipeline before the data store can be updated.)$(P Clients must align data elements consistent with the requirements of the client platform, with an additional base-level requirement that an offset within a buffer to a datum comprising $N$ bytes be a multiple of $N$.)$(P The$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER) target is available only if the GL version is 4.2 or greater.)$(P The$(D_INLINECODE GL_DISPATCH_INDIRECT_BUFFER) and$(D_INLINECODE GL_SHADER_STORAGE_BUFFER) targets are available only if the GL version is 4.3 or greater.)$(P The$(D_INLINECODE GL_QUERY_BUFFER) target is available only if the GL version is 4.4 or greater.) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target to which the buffer object is bound for$(D_INLINECODE glBufferSubData), which must be one of the buffer binding targets in the following table:)$(B Buffer Binding Target)$(B Purpose)$(D_INLINECODE GL_ARRAY_BUFFER) Vertex attributes$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER) Atomic counter storage$(D_INLINECODE GL_COPY_READ_BUFFER) Buffer copy source$(D_INLINECODE GL_COPY_WRITE_BUFFER) Buffer copy destination$(D_INLINECODE GL_DISPATCH_INDIRECT_BUFFER) Indirect compute dispatch commands$(D_INLINECODE GL_DRAW_INDIRECT_BUFFER) Indirect command arguments$(D_INLINECODE GL_ELEMENT_ARRAY_BUFFER) Vertex array indices$(D_INLINECODE GL_PIXEL_PACK_BUFFER) Pixel read target$(D_INLINECODE GL_PIXEL_UNPACK_BUFFER) Texture data source$(D_INLINECODE GL_QUERY_BUFFER) Query result buffer$(D_INLINECODE GL_SHADER_STORAGE_BUFFER) Read-write storage for shaders$(D_INLINECODE GL_TEXTURE_BUFFER) Texture data buffer$(D_INLINECODE GL_TRANSFORM_FEEDBACK_BUFFER) Transform feedback buffer$(D_INLINECODE GL_UNIFORM_BUFFER) Uniform block storage | |
| * buffer = $(P Specifies the name of the buffer object for$(D_INLINECODE glNamedBufferSubData).) | |
| * offset = $(P Specifies the offset into the buffer object's data store where data replacement will begin, measured in bytes.) | |
| * size = $(P Specifies the size in bytes of the data store region being replaced.) | |
| * data = $(P Specifies a pointer to the new data that will be copied into the data store.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2005 Addison-Wesley. Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBindBuffer),$(D_INLINECODE glBufferData),$(D_INLINECODE glMapBuffer),$(D_INLINECODE glMapBufferRange),$(D_INLINECODE glUnmapBuffer)) | |
| */ | |
| extern(C) void function(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data) @system @nogc nothrow glBufferSubData; | |
| /// Ditto | |
| extern(C) void function(GLuint buffer, GLintptr offset, GLsizei size, const void* data) @system @nogc nothrow glNamedBufferSubData; | |
| /** | |
| * glCheckFramebufferStatus: man4/glCheckFramebufferStatus.xml | |
| * | |
| * $(P $(D_INLINECODE glCheckFramebufferStatus) and$(D_INLINECODE glCheckNamedFramebufferStatus) return the completeness status of a framebuffer object when treated as a read or draw framebuffer, depending on the value of$(D_INLINECODE target).)$(P For$(D_INLINECODE glCheckFramebufferStatus), the framebuffer checked is that bound to$(D_INLINECODE target), which must be$(D_INLINECODE GL_DRAW_FRAMEBUFFER),$(D_INLINECODE GL_READ_FRAMEBUFFER) or$(D_INLINECODE GL_FRAMEBUFFER).$(D_INLINECODE GL_FRAMEBUFFER) is equivalent to$(D_INLINECODE GL_DRAW_FRAMEBUFFER).)$(P For$(D_INLINECODE glCheckNamedFramebufferStatus),$(D_INLINECODE framebuffer) is zero or the name of the framebuffer object to check. If$(D_INLINECODE framebuffer) is zero, then the status of the default read or draw framebuffer, as determined by$(D_INLINECODE target), is returned.)$(P The return value is$(D_INLINECODE GL_FRAMEBUFFER_COMPLETE) if the specified framebuffer is complete. Otherwise, the return value is determined as follows: itemizedlist)$(P Additionally, if an error occurs, zero is returned.) | |
| * | |
| * Params: | |
| * target = $(P Specify the target to which the framebuffer is bound for$(D_INLINECODE glCheckFramebufferStatus), and the target against which framebuffer completeness of$(D_INLINECODE framebuffer) is checked for$(D_INLINECODE glCheckNamedFramebufferStatus).) | |
| * framebuffer = $(P Specifies the name of the framebuffer object for$(D_INLINECODE glCheckNamedFramebufferStatus)) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenFramebuffers),$(D_INLINECODE glDeleteFramebuffers)$(D_INLINECODE glBindFramebuffer)) | |
| */ | |
| extern(C) GLenum function(GLenum target) @system @nogc nothrow glCheckFramebufferStatus; | |
| /// Ditto | |
| extern(C) GLenum function(GLuint framebuffer, GLenum target) @system @nogc nothrow glCheckNamedFramebufferStatus; | |
| /** | |
| * glClampColor: man4/glClampColor.xml | |
| * | |
| * $(P $(D_INLINECODE glClampColor) controls color clamping that is performed during$(D_INLINECODE glReadPixels).$(D_INLINECODE target) must be$(D_INLINECODE GL_CLAMP_READ_COLOR). If$(D_INLINECODE clamp) is$(D_INLINECODE GL_TRUE), read color clamping is enabled; if$(D_INLINECODE clamp) is$(D_INLINECODE GL_FALSE), read color clamping is disabled. If$(D_INLINECODE clamp) is$(D_INLINECODE GL_FIXED_ONLY), read color clamping is enabled only if the selected read buffer has fixed point components and disabled otherwise.) | |
| * | |
| * Params: | |
| * target = $(P Target for color clamping.$(D_INLINECODE target) must be$(D_INLINECODE GL_CLAMP_READ_COLOR).) | |
| * clamp = $(P Specifies whether to apply color clamping.$(D_INLINECODE clamp) must be$(D_INLINECODE GL_TRUE) or$(D_INLINECODE GL_FALSE).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * | |
| */ | |
| extern(C) void function(GLenum target, GLenum clamp) @system @nogc nothrow glClampColor; | |
| /** | |
| * glClear: man4/glClear.xml | |
| * | |
| * $(P $(D_INLINECODE glClear) sets the bitplane area of the window to values previously selected by$(D_INLINECODE glClearColor),$(D_INLINECODE glClearDepth), and$(D_INLINECODE glClearStencil). Multiple color buffers can be cleared simultaneously by selecting more than one buffer at a time using$(D_INLINECODE glDrawBuffer).)$(P The pixel ownership test, the scissor test, dithering, and the buffer writemasks affect the operation of$(D_INLINECODE glClear). The scissor box bounds the cleared region. Alpha function, blend function, logical operation, stenciling, texture mapping, and depth-buffering are ignored by$(D_INLINECODE glClear).)$(P $(D_INLINECODE glClear) takes a single argument that is the bitwise OR of several values indicating which buffer is to be cleared.)$(P The values are as follows:) variablelist$(P The value to which each buffer is cleared depends on the setting of the clear value for that buffer.) | |
| * | |
| * $(P If a buffer is not present, then a$(D_INLINECODE glClear) directed at that buffer has no effect.) | |
| * | |
| * Params: | |
| * mask = $(P Bitwise OR of masks that indicate the buffers to be cleared. The three masks are$(D_INLINECODE GL_COLOR_BUFFER_BIT),$(D_INLINECODE GL_DEPTH_BUFFER_BIT), and$(D_INLINECODE GL_STENCIL_BUFFER_BIT).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glClearColor),$(D_INLINECODE glClearDepth),$(D_INLINECODE glClearStencil),$(D_INLINECODE glColorMask),$(D_INLINECODE glDepthMask),$(D_INLINECODE glDrawBuffer),$(D_INLINECODE glScissor),$(D_INLINECODE glStencilMask)) | |
| */ | |
| extern(C) void function(GLbitfield mask) @system @nogc nothrow glClear; | |
| /** | |
| * glClearBuffer: man4/glClearBuffer.xml | |
| * | |
| * $(P These commands clear a specified buffer of a framebuffer to specified value(s). For$(D_INLINECODE glClearBuffer*), the framebuffer is the currently bound draw framebuffer object. For$(D_INLINECODE glClearNamedFramebuffer*),$(D_INLINECODE framebuffer) is zero, indicating the default draw framebuffer, or the name of a framebuffer object.)$(P $(D_INLINECODE buffer) and$(D_INLINECODE drawbuffer) identify the buffer to clear.)$(P If$(D_INLINECODE buffer) is$(D_INLINECODE GL_COLOR), a particular draw buffer$(D_INLINECODE GL_DRAW_BUFFER)$(D_INLINECODE i) is specified by passing$(D_INLINECODE i) as$(D_INLINECODE drawbuffer), and$(D_INLINECODE value) points to a four-element vector specifying the R, G, B and A color to clear that draw buffer to. If the value of$(D_INLINECODE GL_DRAW_BUFFER)$(D_INLINECODE i) is$(D_INLINECODE GL_NONE), the command has no effect. Otherwise, the value of$(D_INLINECODE GL_DRAW_BUFFER)$(D_INLINECODE i) identifies one or more color buffers, each of which is cleared to the same value. Clamping and type conversion for fixed-point color buffers are performed in the same fashion as for$(D_INLINECODE glClearColor). The$(D_INLINECODE *fv),$(D_INLINECODE *iv) and$(D_INLINECODE *uiv) forms of these commands should be used to clear fixed- and floating-point, signed integer, and unsigned integer color buffers respectively.)$(P If$(D_INLINECODE buffer) is$(D_INLINECODE GL_DEPTH),$(D_INLINECODE drawbuffer) must be zero, and$(D_INLINECODE value) points to a single value to clear the depth buffer to. Clamping and type conversion for fixed-point depth buffers are performed in the same fashion as for$(D_INLINECODE glClearDepth). Only the$(D_INLINECODE *fv) forms of these commands should be used to clear depth buffers; other forms do not accept a$(D_INLINECODE buffer) of$(D_INLINECODE GL_DEPTH).)$(P If$(D_INLINECODE buffer) is$(D_INLINECODE GL_STENCIL),$(D_INLINECODE drawbuffer) must be zero, and$(D_INLINECODE value) points to a single value to clear the stencil buffer to. Masking is performed in the same fashion as for$(D_INLINECODE glClearStencil). Only the$(D_INLINECODE *iv) forms of these commands should be used to clear stencil buffers; be used to clear stencil buffers; other forms do not accept a$(D_INLINECODE buffer) of$(D_INLINECODE GL_STENCIL).)$(P $(D_INLINECODE glClearBufferfi) and$(D_INLINECODE glClearNamedFramebufferfi) are used to clear the depth and stencil buffers simultaneously.$(D_INLINECODE buffer) must be$(D_INLINECODE GL_DEPTH_STENCIL) and$(D_INLINECODE drawbuffer) must be zero.$(D_INLINECODE depth) and$(D_INLINECODE stencil) are the values to clear the depth and stencil buffers to, respectively. Clamping and type conversion of$(D_INLINECODE depth) for fixed-point depth buffers are performed in the same fashion as for$(D_INLINECODE glClearDepth). Masking of$(D_INLINECODE stencil) for stencil buffers is performed in the same fashion as for$(D_INLINECODE glClearStencil). These commands are equivalent to clearing the depth and stencil buffers separately, but may be faster when a buffer of internal format$(D_INLINECODE GL_DEPTH_STENCIL) is being cleared. The same per-fragment and masking operations defined for$(D_INLINECODE glClear) are applied.)$(P The result of these commands is undefined if no conversion between the type of the specified$(D_INLINECODE value) and the type of the buffer being cleared is defined (for example, if$(D_INLINECODE glClearBufferiv) is called for a fixed- or floating-point buffer, or if$(D_INLINECODE glClearBufferfv) is called for a signed or unsigned integer buffer). This is not an error.) | |
| * | |
| * Params: | |
| * framebuffer = $(P Specifies the name of the framebuffer object for$(D_INLINECODE glClearNamedFramebuffer*).) | |
| * buffer = $(P Specify the buffer to clear.) | |
| * drawbuffer = $(P Specify a particular draw buffer to clear.) | |
| * value = $(P A pointer to the value or values to clear the buffer to.) | |
| * depth = $(P The value to clear the depth buffer to.) | |
| * stencil = $(P The value to clear the stencil buffer to.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glClearColor),$(D_INLINECODE glClearDepth),$(D_INLINECODE glClearStencil),$(D_INLINECODE glClear)) | |
| */ | |
| extern(C) void function(GLenum buffer, GLint drawbuffer, const GLint* value) @system @nogc nothrow glClearBufferiv; | |
| /// Ditto | |
| extern(C) void function(GLenum buffer, GLint drawbuffer, const GLuint* value) @system @nogc nothrow glClearBufferuiv; | |
| /// Ditto | |
| extern(C) void function(GLenum buffer, GLint drawbuffer, const GLfloat* value) @system @nogc nothrow glClearBufferfv; | |
| /// Ditto | |
| extern(C) void function(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil) @system @nogc nothrow glClearBufferfi; | |
| /// Ditto | |
| extern(C) void function(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint* value) @system @nogc nothrow glClearNamedFramebufferiv; | |
| /// Ditto | |
| extern(C) void function(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint* value) @system @nogc nothrow glClearNamedFramebufferuiv; | |
| /// Ditto | |
| extern(C) void function(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat* value) @system @nogc nothrow glClearNamedFramebufferfv; | |
| /// Ditto | |
| extern(C) void function(GLuint framebuffer, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil) @system @nogc nothrow glClearNamedFramebufferfi; | |
| /** | |
| * glClearBufferData: man4/glClearBufferData.xml | |
| * | |
| * $(P $(D_INLINECODE glClearBufferData) and$(D_INLINECODE glClearNamedBufferData) fill the entirety of a buffer object's data store with data from client memory.)$(P Data, initially supplied in a format specified by$(D_INLINECODE format) in data type$(D_INLINECODE type) is read from the memory address given by$(D_INLINECODE data) and converted into the internal representation given by$(D_INLINECODE internalformat), which must be one of the following sized internal formats:)$(B Component)$(B Sized Internal Format)$(B Base Type)$(B Components)$(B Norm) 0 1 2 3$(D_INLINECODE GL_R8) ubyte 1 YES R 0 0 1$(D_INLINECODE GL_R16) ushort 1 YES R 0 0 1$(D_INLINECODE GL_R16F) half 1 NO R 0 0 1$(D_INLINECODE GL_R32F) float 1 NO R 0 0 1$(D_INLINECODE GL_R8I) byte 1 NO R 0 0 1$(D_INLINECODE GL_R16I) short 1 NO R 0 0 1$(D_INLINECODE GL_R32I) int 1 NO R 0 0 1$(D_INLINECODE GL_R8UI) ubyte 1 NO R 0 0 1$(D_INLINECODE GL_R16UI) ushort 1 NO R 0 0 1$(D_INLINECODE GL_R32UI) uint 1 NO R 0 0 1$(D_INLINECODE GL_RG8) ubyte 2 YES R G 0 1$(D_INLINECODE GL_RG16) ushort 2 YES R G 0 1$(D_INLINECODE GL_RG16F) half 2 NO R G 0 1$(D_INLINECODE GL_RG32F) float 2 NO R G 0 1$(D_INLINECODE GL_RG8I) byte 2 NO R G 0 1$(D_INLINECODE GL_RG16I) short 2 NO R G 0 1$(D_INLINECODE GL_RG32I) int 2 NO R G 0 1$(D_INLINECODE GL_RG8UI) ubyte 2 NO R G 0 1$(D_INLINECODE GL_RG16UI) ushort 2 NO R G 0 1$(D_INLINECODE GL_RG32UI) uint 2 NO R G 0 1$(D_INLINECODE GL_RGB32F) float 3 NO R G B 1$(D_INLINECODE GL_RGB32I) int 3 NO R G B 1$(D_INLINECODE GL_RGB32UI) uint 3 NO R G B 1$(D_INLINECODE GL_RGBA8) uint 4 YES R G B A$(D_INLINECODE GL_RGBA16) short 4 YES R G B A$(D_INLINECODE GL_RGBA16F) half 4 NO R G B A$(D_INLINECODE GL_RGBA32F) float 4 NO R G B A$(D_INLINECODE GL_RGBA8I) byte 4 NO R G B A$(D_INLINECODE GL_RGBA16I) short 4 NO R G B A$(D_INLINECODE GL_RGBA32I) int 4 NO R G B A$(D_INLINECODE GL_RGBA8UI) ubyte 4 NO R G B A$(D_INLINECODE GL_RGBA16UI) ushort 4 NO R G B A$(D_INLINECODE GL_RGBA32UI) uint 4 NO R G B A$(P This converted data is then replicated throughout the buffer object's data store. If$(D_INLINECODE data) is NULL, then the buffer's data store is filled with zeros.) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target to which the buffer object is bound for$(D_INLINECODE glClearBufferData), which must must be one of the buffer binding targets in the following table:)$(B Buffer Binding Target)$(B Purpose)$(D_INLINECODE GL_ARRAY_BUFFER) Vertex attributes$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER) Atomic counter storage$(D_INLINECODE GL_COPY_READ_BUFFER) Buffer copy source$(D_INLINECODE GL_COPY_WRITE_BUFFER) Buffer copy destination$(D_INLINECODE GL_DISPATCH_INDIRECT_BUFFER) Indirect compute dispatch commands$(D_INLINECODE GL_DRAW_INDIRECT_BUFFER) Indirect command arguments$(D_INLINECODE GL_ELEMENT_ARRAY_BUFFER) Vertex array indices$(D_INLINECODE GL_PIXEL_PACK_BUFFER) Pixel read target$(D_INLINECODE GL_PIXEL_UNPACK_BUFFER) Texture data source$(D_INLINECODE GL_QUERY_BUFFER) Query result buffer$(D_INLINECODE GL_SHADER_STORAGE_BUFFER) Read-write storage for shaders$(D_INLINECODE GL_TEXTURE_BUFFER) Texture data buffer$(D_INLINECODE GL_TRANSFORM_FEEDBACK_BUFFER) Transform feedback buffer$(D_INLINECODE GL_UNIFORM_BUFFER) Uniform block storage | |
| * buffer = $(P Specifies the name of the buffer object for$(D_INLINECODE glClearNamedBufferData).) | |
| * internalformat = $(P The internal format with which the data will be stored in the buffer object.) | |
| * format = $(P The format of the data in memory addressed by$(D_INLINECODE data).) | |
| * type = $(P The type of the data in memory addressed by$(D_INLINECODE data).) | |
| * data = $(P The address of a memory location storing the data to be replicated into the buffer's data store.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2011-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glClearBufferSubData).) | |
| */ | |
| extern(C) void function(GLenum target, GLenum internalformat, GLenum format, GLenum type, const void* data) @system @nogc nothrow glClearBufferData; | |
| /// Ditto | |
| extern(C) void function(GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void* data) @system @nogc nothrow glClearNamedBufferData; | |
| /** | |
| * glClearBufferSubData: man4/glClearBufferSubData.xml | |
| * | |
| * $(P $(D_INLINECODE glClearBufferSubData) and$(D_INLINECODE glClearNamedBufferSubData) fill a specified region of a buffer object's data store with data from client memory.)$(P $(D_INLINECODE offset) and$(D_INLINECODE size) specify the extent of the region within the data store of the buffer object to fill with data. Data, initially supplied in a format specified by$(D_INLINECODE format) in data type$(D_INLINECODE type) is read from the memory address given by$(D_INLINECODE data) and converted into the internal representation given by$(D_INLINECODE internalformat), which must be one of the following sized internal formats:)$(B Component)$(B Sized Internal Format)$(B Base Type)$(B Components)$(B Norm) 0 1 2 3$(D_INLINECODE GL_R8) ubyte 1 YES R 0 0 1$(D_INLINECODE GL_R16) ushort 1 YES R 0 0 1$(D_INLINECODE GL_R16F) half 1 NO R 0 0 1$(D_INLINECODE GL_R32F) float 1 NO R 0 0 1$(D_INLINECODE GL_R8I) byte 1 NO R 0 0 1$(D_INLINECODE GL_R16I) short 1 NO R 0 0 1$(D_INLINECODE GL_R32I) int 1 NO R 0 0 1$(D_INLINECODE GL_R8UI) ubyte 1 NO R 0 0 1$(D_INLINECODE GL_R16UI) ushort 1 NO R 0 0 1$(D_INLINECODE GL_R32UI) uint 1 NO R 0 0 1$(D_INLINECODE GL_RG8) ubyte 2 YES R G 0 1$(D_INLINECODE GL_RG16) ushort 2 YES R G 0 1$(D_INLINECODE GL_RG16F) half 2 NO R G 0 1$(D_INLINECODE GL_RG32F) float 2 NO R G 0 1$(D_INLINECODE GL_RG8I) byte 2 NO R G 0 1$(D_INLINECODE GL_RG16I) short 2 NO R G 0 1$(D_INLINECODE GL_RG32I) int 2 NO R G 0 1$(D_INLINECODE GL_RG8UI) ubyte 2 NO R G 0 1$(D_INLINECODE GL_RG16UI) ushort 2 NO R G 0 1$(D_INLINECODE GL_RG32UI) uint 2 NO R G 0 1$(D_INLINECODE GL_RGB32F) float 3 NO R G B 1$(D_INLINECODE GL_RGB32I) int 3 NO R G B 1$(D_INLINECODE GL_RGB32UI) uint 3 NO R G B 1$(D_INLINECODE GL_RGBA8) uint 4 YES R G B A$(D_INLINECODE GL_RGBA16) short 4 YES R G B A$(D_INLINECODE GL_RGBA16F) half 4 NO R G B A$(D_INLINECODE GL_RGBA32F) float 4 NO R G B A$(D_INLINECODE GL_RGBA8I) byte 4 NO R G B A$(D_INLINECODE GL_RGBA16I) short 4 NO R G B A$(D_INLINECODE GL_RGBA32I) int 4 NO R G B A$(D_INLINECODE GL_RGBA8UI) ubyte 4 NO R G B A$(D_INLINECODE GL_RGBA16UI) ushort 4 NO R G B A$(D_INLINECODE GL_RGBA32UI) uint 4 NO R G B A$(P This converted data is then replicated throughout the specified region of the buffer object's data store. If$(D_INLINECODE data) is NULL, then the subrange of the buffer's data store is filled with zeros.) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target to which the buffer object is bound for$(D_INLINECODE glClearBufferSubData), which must be one of the buffer binding targets in the following table:)$(B Buffer Binding Target)$(B Purpose)$(D_INLINECODE GL_ARRAY_BUFFER) Vertex attributes$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER) Atomic counter storage$(D_INLINECODE GL_COPY_READ_BUFFER) Buffer copy source$(D_INLINECODE GL_COPY_WRITE_BUFFER) Buffer copy destination$(D_INLINECODE GL_DISPATCH_INDIRECT_BUFFER) Indirect compute dispatch commands$(D_INLINECODE GL_DRAW_INDIRECT_BUFFER) Indirect command arguments$(D_INLINECODE GL_ELEMENT_ARRAY_BUFFER) Vertex array indices$(D_INLINECODE GL_PIXEL_PACK_BUFFER) Pixel read target$(D_INLINECODE GL_PIXEL_UNPACK_BUFFER) Texture data source$(D_INLINECODE GL_QUERY_BUFFER) Query result buffer$(D_INLINECODE GL_SHADER_STORAGE_BUFFER) Read-write storage for shaders$(D_INLINECODE GL_TEXTURE_BUFFER) Texture data buffer$(D_INLINECODE GL_TRANSFORM_FEEDBACK_BUFFER) Transform feedback buffer$(D_INLINECODE GL_UNIFORM_BUFFER) Uniform block storage | |
| * buffer = $(P Specifies the name of the buffer object for$(D_INLINECODE glClearNamedBufferSubData).) | |
| * internalformat = $(P The internal format with which the data will be stored in the buffer object.) | |
| * offset = $(P The offset in basic machine units into the buffer object's data store at which to start filling.) | |
| * size = $(P The size in basic machine units of the range of the data store to fill.) | |
| * format = $(P The format of the data in memory addressed by$(D_INLINECODE data).) | |
| * type = $(P The type of the data in memory addressed by$(D_INLINECODE data).) | |
| * data = $(P The address of a memory location storing the data to be replicated into the buffer's data store.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glClearBufferData).) | |
| */ | |
| extern(C) void function(GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void* data) @system @nogc nothrow glClearBufferSubData; | |
| /// Ditto | |
| extern(C) void function(GLuint buffer, GLenum internalformat, GLintptr offset, GLsizei size, GLenum format, GLenum type, const void* data) @system @nogc nothrow glClearNamedBufferSubData; | |
| /** | |
| * glClearColor: man4/glClearColor.xml | |
| * | |
| * $(P $(D_INLINECODE glClearColor) specifies the red, green, blue, and alpha values used by$(D_INLINECODE glClear) to clear the color buffers. Values specified by$(D_INLINECODE glClearColor) are clamped to the range 0 1.) | |
| * | |
| * $(P The type of the$(D_INLINECODE red),$(D_INLINECODE green),$(D_INLINECODE blue), and$(D_INLINECODE alpha) parameters was changed from GLclampf to GLfloat. This change is transparent to user code and is described in detail on the$(D_INLINECODE removedTypes) page.) | |
| * | |
| * Params: | |
| * red = $(P Specify the red, green, blue, and alpha values used when the color buffers are cleared. The initial values are all 0.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glClear),$(D_INLINECODE removedTypes)) | |
| */ | |
| extern(C) void function(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) @system @nogc nothrow glClearColor; | |
| /** | |
| * glClearDepth: man4/glClearDepth.xml | |
| * | |
| * $(P $(D_INLINECODE glClearDepth) specifies the depth value used by$(D_INLINECODE glClear) to clear the depth buffer. Values specified by$(D_INLINECODE glClearDepth) are clamped to the range 0 1.) | |
| * | |
| * $(P The type of the$(D_INLINECODE depth) parameter was changed from GLclampf to GLfloat for$(D_INLINECODE glClearDepthf) and from GLclampd to GLdouble for$(D_INLINECODE glClearDepth). This change is transparent to user code and is described in detail on the$(D_INLINECODE removedTypes) page.) | |
| * | |
| * Params: | |
| * depth = $(P Specifies the depth value used when the depth buffer is cleared. The initial value is 1.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glClear),$(D_INLINECODE removedTypes)) | |
| */ | |
| extern(C) void function(GLdouble depth) @system @nogc nothrow glClearDepth; | |
| /// Ditto | |
| extern(C) void function(GLfloat depth) @system @nogc nothrow glClearDepthf; | |
| /** | |
| * glClearStencil: man4/glClearStencil.xml | |
| * | |
| * $(P $(D_INLINECODE glClearStencil) specifies the index used by$(D_INLINECODE glClear) to clear the stencil buffer.$(D_INLINECODE s) is masked with 2 m - 1, where m is the number of bits in the stencil buffer.) | |
| * | |
| * Params: | |
| * s = $(P Specifies the index used when the stencil buffer is cleared. The initial value is 0.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glClear),$(D_INLINECODE glStencilFunc),$(D_INLINECODE glStencilFuncSeparate),$(D_INLINECODE glStencilMask),$(D_INLINECODE glStencilMaskSeparate),$(D_INLINECODE glStencilOp),$(D_INLINECODE glStencilOpSeparate)) | |
| */ | |
| extern(C) void function(GLint s) @system @nogc nothrow glClearStencil; | |
| /** | |
| * glClearTexImage: man4/glClearTexImage.xml | |
| * | |
| * $(P $(D_INLINECODE glClearTexImage) fills all an image contained in a texture with an application supplied value.$(D_INLINECODE texture) must be the name of an existing texture. Further,$(D_INLINECODE texture) may not be the name of a buffer texture, nor may its internal format be compressed.)$(P $(D_INLINECODE format) and$(D_INLINECODE type) specify the format and type of the source data and are interpreted as they are for$(D_INLINECODE glTexImage3D). Textures with a base internal format of$(D_INLINECODE GL_DEPTH_COMPONENT),$(D_INLINECODE GL_STENCIL_INDEX), or$(D_INLINECODE GL_DEPTH_STENCIL) require depth component, stencil, or depth-stencil component data respectively. Textures with other base internal formats require RGBA formats. Textures with integer internal formats require integer data.)$(P $(D_INLINECODE data) is a pointer to an array of between one and four components of texel data that will be used as the source for the constant fill value. The elements of data are converted by the GL into the internal format of the texture image (that was specified when the level was defined by any of the$(D_INLINECODE glTexImage*),$(D_INLINECODE glTexStorage*) or$(D_INLINECODE glCopyTexImage*) commands), and then used to fill the specified range of the destination texture level. If$(D_INLINECODE data) is$(D_INLINECODE NULL), then the pointer is ignored and the sub-range of the texture image is filled with zeros. If texture is a multisample texture, all the samples in a texel are cleared to the value specified by data.) | |
| * | |
| * $(P $(D_INLINECODE glClearTexImage) is available only if the GL version is 4.4 or greater.) | |
| * | |
| * Params: | |
| * texture = $(P The name of an existing texture object containing the image to be cleared.) | |
| * level = $(P The level of$(D_INLINECODE texture) containing the region to be cleared.) | |
| * format = $(P The format of the data whose address in memory is given by$(D_INLINECODE data).) | |
| * type = $(P The type of the data whose address in memory is given by$(D_INLINECODE data).) | |
| * data = $(P The address in memory of the data to be used to clear the specified region.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2013-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glClearTexSubImage),$(D_INLINECODE glTexStorage1D),$(D_INLINECODE glTexStorage2D),$(D_INLINECODE glTexStorage3D),$(D_INLINECODE glTexImage1D),$(D_INLINECODE glTexImage2D),$(D_INLINECODE glTexImage3D)) | |
| */ | |
| extern(C) void function(GLuint texture, GLint level, GLenum format, GLenum type, const void* data) @system @nogc nothrow glClearTexImage; | |
| /** | |
| * glClearTexSubImage: man4/glClearTexSubImage.xml | |
| * | |
| * $(P $(D_INLINECODE glClearTexSubImage) fills all or part of an image contained in a texture with an application supplied value.$(D_INLINECODE texture) must be the name of an existing texture. Further,$(D_INLINECODE texture) may not be the name of a buffer texture, nor may its internal format be compressed.)$(P Arguments$(D_INLINECODE xoffset),$(D_INLINECODE yoffset), and$(D_INLINECODE zoffset) specify the lower left texel coordinates of a width-wide by height-high by depth-deep rectangular subregion of the texel array.)$(P For one-dimensional array textures,$(D_INLINECODE yoffset) is interpreted as the first layer to be cleared and$(D_INLINECODE height) is the number of layers to clear. For two-dimensional array textures,$(D_INLINECODE zoffset) is interpreted as the first layer to be cleared and$(D_INLINECODE depth) is the number of layers to clear. Cube map textures are treated as an array of six slices in the z-dimension, where the value of$(D_INLINECODE zoffset) is interpreted as specifying the cube map face for the corresponding layer and$(D_INLINECODE depth) is the number of faces to clear. For cube map array textures,$(D_INLINECODE zoffset) is the first layer-face to clear, and$(D_INLINECODE depth) is the number of layer-faces to clear. Each layer-face is translated into an array layer and a cube map face as described in the OpenGL Specification.)$(P Negative values of$(D_INLINECODE xoffset),$(D_INLINECODE yoffset), and$(D_INLINECODE zoffset) correspond to the coordinates of border texels. Taking ws, hs, ds, wb, hb, and db to be the specified$(D_INLINECODE width),$(D_INLINECODE height),$(D_INLINECODE depth), and the border width, border height, and border depth of the texel array and taking x, y, z, w, h, and d to be the$(D_INLINECODE xoffset),$(D_INLINECODE yoffset),$(D_INLINECODE zoffset),$(D_INLINECODE width),$(D_INLINECODE height), and$(D_INLINECODE depth) argument values, any of the following relationships generates a$(D_INLINECODE GL_INVALID_OPERATION) error: itemizedlist)$(P For texture types that do not have certain dimensions, this command treats those dimensions as having a size of 1. For example, to clear a portion of a two-dimensional texture, use$(D_INLINECODE zoffset) equal to zero and$(D_INLINECODE depth) equal to one.)$(P $(D_INLINECODE format) and$(D_INLINECODE type) specify the format and type of the source data and are interpreted as they are for$(D_INLINECODE glTexImage3D). Textures with a base internal format of$(D_INLINECODE GL_DEPTH_COMPONENT),$(D_INLINECODE GL_STENCIL_INDEX), or$(D_INLINECODE GL_DEPTH_STENCIL) require depth component, stencil, or depth-stencil component data respectively. Textures with other base internal formats require RGBA formats. Textures with integer internal formats require integer data.)$(P $(D_INLINECODE data) is a pointer to an array of between one and four components of texel data that will be used as the source for the constant fill value. The elements of data are converted by the GL into the internal format of the texture image (that was specified when the level was defined by any of the$(D_INLINECODE glTexImage*),$(D_INLINECODE glTexStorage*) or$(D_INLINECODE glCopyTexImage*) commands), and then used to fill the specified range of the destination texture level. If$(D_INLINECODE data) is$(D_INLINECODE NULL), then the pointer is ignored and the sub-range of the texture image is filled with zeros. If texture is a multisample texture, all the samples in a texel are cleared to the value specified by data.) | |
| * | |
| * $(P $(D_INLINECODE glClearTexSubImage) is available only if the GL version is 4.4 or greater.) | |
| * | |
| * Params: | |
| * texture = $(P The name of an existing texture object containing the image to be cleared.) | |
| * level = $(P The level of$(D_INLINECODE texture) containing the region to be cleared.) | |
| * xoffset = $(P The coordinate of the left edge of the region to be cleared.) | |
| * yoffset = $(P The coordinate of the lower edge of the region to be cleared.) | |
| * zoffset = $(P The coordinate of the front of the region to be cleared.) | |
| * width = $(P The width of the region to be cleared.) | |
| * height = $(P The height of the region to be cleared.) | |
| * depth = $(P The depth of the region to be cleared.) | |
| * format = $(P The format of the data whose address in memory is given by$(D_INLINECODE data).) | |
| * type = $(P The type of the data whose address in memory is given by$(D_INLINECODE data).) | |
| * data = $(P The address in memory of the data to be used to clear the specified region.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2013-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glClearTexImage),$(D_INLINECODE glTexStorage1D),$(D_INLINECODE glTexStorage2D),$(D_INLINECODE glTexStorage3D),$(D_INLINECODE glTexImage1D),$(D_INLINECODE glTexImage2D),$(D_INLINECODE glTexImage3D)) | |
| */ | |
| extern(C) void function(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void* data) @system @nogc nothrow glClearTexSubImage; | |
| /** | |
| * glClientWaitSync: man4/glClientWaitSync.xml | |
| * | |
| * $(P $(D_INLINECODE glClientWaitSync) causes the client to block and wait for the sync object specified by$(D_INLINECODE sync) to become signaled. If$(D_INLINECODE sync) is signaled when$(D_INLINECODE glClientWaitSync) is called,$(D_INLINECODE glClientWaitSync) returns immediately, otherwise it will block and wait for up to$(D_INLINECODE timeout) nanoseconds for$(D_INLINECODE sync) to become signaled.)$(P The return value is one of four status values: itemizedlist) | |
| * | |
| * $(P $(D_INLINECODE glClientWaitSync) is available only if the GL version is 3.2 or greater.) | |
| * | |
| * Params: | |
| * sync = $(P The sync object whose status to wait on.) | |
| * flags = $(P A bitfield controlling the command flushing behavior.$(D_INLINECODE flags) may be$(D_INLINECODE GL_SYNC_FLUSH_COMMANDS_BIT).) | |
| * timeout = $(P The timeout, specified in nanoseconds, for which the implementation should wait for$(D_INLINECODE sync) to become signaled.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glFenceSync),$(D_INLINECODE glIsSync)$(D_INLINECODE glWaitSync)) | |
| */ | |
| extern(C) GLenum function(GLsync sync, GLbitfield flags, GLuint64 timeout) @system @nogc nothrow glClientWaitSync; | |
| /** | |
| * glClipControl: man4/glClipControl.xml | |
| * | |
| * $(P $(D_INLINECODE glClipControl) controls the clipping volume behavior and the clip coordinate to window coordinate transformation behavior.)$(P The view volume is defined by $$z_{min} \leq z_c \leq w_c$$ where $z_{min} = -w_c$ when$(D_INLINECODE depth) is$(D_INLINECODE GL_NEGATIVE_ONE_TO_ONE), and $z_{min} = 0$ when$(D_INLINECODE depth) is$(D_INLINECODE GL_ZERO_TO_ONE).)$(P The normalized device coordinate $y_d$ is given by $$y_d = { { f \times y_c } \over w_c }$$ where $f = 1$ when$(D_INLINECODE origin) is$(D_INLINECODE GL_LOWER_LEFT), and $f = -1$ when$(D_INLINECODE origin) is$(D_INLINECODE GL_UPPER_LEFT).)$(P The window coordinate $z_w$ is given by $$z_w = s \times z_d + b$$ where $s = { { f - n } \over 2 }$ and $b = { {n + f} \over 2 }$ when$(D_INLINECODE depth) is$(D_INLINECODE GL_NEGATIVE_ONE_TO_ONE), and $s = f - n$ and $b = n$ when$(D_INLINECODE depth) is$(D_INLINECODE GL_ZERO_TO_ONE). $n$ and $f$ are the near and far depth range values set with$(D_INLINECODE glDepthRange).)$(P Finally, the polygon area computation defined by$(D_INLINECODE gl_FrontFacing) to determine if a polygon is front- or back-facing has its sign negated when$(D_INLINECODE origin) is$(D_INLINECODE GL_UPPER_LEFT).) | |
| * | |
| * $(P The default GL clip volume definition is for a$(D_INLINECODE origin) of$(D_INLINECODE GL_LOWER_LEFT) and a$(D_INLINECODE depth) of$(D_INLINECODE GL_NEGATIVE_ONE_TO_ONE).)$(P An$(D_INLINECODE origin) of$(D_INLINECODE GL_UPPER_LEFT) and a$(D_INLINECODE depth) of$(D_INLINECODE GL_ZERO_TO_ONE) corresponds to Direct3D's clip volume definition.)$(P An$(D_INLINECODE origin) of$(D_INLINECODE GL_UPPER_LEFT) and a$(D_INLINECODE depth) of$(D_INLINECODE GL_NEGATIVE_ONE_TO_ONE) corresponds to the upper-left origin of the window coordinate system of Microsoft Windows and the X Window System.)$(P There is extensive discussion of the uses and further consequences of the different clip volume settings in the$(D_INLINECODE GL_ARB_clip_control) extension specification in the OpenGL Registry at URL$(LINK2 http://www.opengl.org/registry/, http://www.opengl.org/registry/).) | |
| * | |
| * Params: | |
| * origin = $(P Specifies the clip control origin. Must be one of$(D_INLINECODE GL_LOWER_LEFT) or$(D_INLINECODE GL_UPPER_LEFT).) | |
| * depth = $(P Specifies the clip control depth mode. Must be one of$(D_INLINECODE GL_NEGATIVE_ONE_TO_ONE) or$(D_INLINECODE GL_ZERO_TO_ONE).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE gl_ClipDistance),$(D_INLINECODE gl_CullDistance),$(D_INLINECODE gl_FrontFacing),$(D_INLINECODE glDepthRange).) | |
| */ | |
| extern(C) void function(GLenum origin, GLenum depth) @system @nogc nothrow glClipControl; | |
| /** | |
| * glColorMask: man4/glColorMask.xml | |
| * | |
| * $(P $(D_INLINECODE glColorMask) and$(D_INLINECODE glColorMaski) specify whether the individual color components in the frame buffer can or cannot be written.$(D_INLINECODE glColorMaski) sets the mask for a specific draw buffer, whereas$(D_INLINECODE glColorMask) sets the mask for all draw buffers. If$(D_INLINECODE red) is$(D_INLINECODE GL_FALSE), for example, no change is made to the red component of any pixel in any of the color buffers, regardless of the drawing operation attempted.)$(P Changes to individual bits of components cannot be controlled. Rather, changes are either enabled or disabled for entire color components.) | |
| * | |
| * Params: | |
| * buf = $(P For$(D_INLINECODE glColorMaski), specifies the index of the draw buffer whose color mask to set.) | |
| * red = $(P Specify whether red, green, blue, and alpha are to be written into the frame buffer. The initial values are all$(D_INLINECODE GL_TRUE), indicating that the color components are written.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glClear),$(D_INLINECODE glDepthMask),$(D_INLINECODE glStencilMask)) | |
| */ | |
| extern(C) void function(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) @system @nogc nothrow glColorMask; | |
| /** | |
| * glCompileShader: man4/glCompileShader.xml | |
| * | |
| * $(P $(D_INLINECODE glCompileShader) compiles the source code strings that have been stored in the shader object specified by$(D_INLINECODE shader).)$(P The compilation status will be stored as part of the shader object's state. This value will be set to$(D_INLINECODE GL_TRUE) if the shader was compiled without errors and is ready for use, and$(D_INLINECODE GL_FALSE) otherwise. It can be queried by calling$(D_INLINECODE glGetShader) with arguments$(D_INLINECODE shader) and$(D_INLINECODE GL_COMPILE_STATUS).)$(P Compilation of a shader can fail for a number of reasons as specified by the OpenGL Shading Language Specification. Whether or not the compilation was successful, information about the compilation can be obtained from the shader object's information log by calling$(D_INLINECODE glGetShaderInfoLog).) | |
| * | |
| * Params: | |
| * shader = $(P Specifies the shader object to be compiled.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2003-2005 3Dlabs Inc. Ltd. Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glCreateShader),$(D_INLINECODE glLinkProgram),$(D_INLINECODE glShaderSource)) | |
| */ | |
| extern(C) void function(GLuint shader) @system @nogc nothrow glCompileShader; | |
| /** | |
| * glCompressedTexImage1D: man4/glCompressedTexImage1D.xml | |
| * | |
| * $(P Texturing allows elements of an image array to be read by shaders.)$(P $(D_INLINECODE glCompressedTexImage1D) loads a previously defined, and retrieved, compressed one-dimensional texture image if$(D_INLINECODE target) is$(D_INLINECODE GL_TEXTURE_1D) (see$(D_INLINECODE glTexImage1D) ).)$(P If$(D_INLINECODE target) is$(D_INLINECODE GL_PROXY_TEXTURE_1D), no data is read from$(D_INLINECODE data), but all of the texture image state is recalculated, checked for consistency, and checked against the implementation's capabilities. If the implementation cannot handle a texture of the requested texture size, it sets all of the image state to 0, but does not generate an error (see$(D_INLINECODE glGetError) ). To query for an entire mipmap array, use an image array level greater than or equal to 1.)$(P $(D_INLINECODE internalformat) must be an extension-specified compressed-texture format. When a texture is loaded with$(D_INLINECODE glTexImage1D) using a generic compressed texture format (e.g.,$(D_INLINECODE GL_COMPRESSED_RGB) ) the GL selects from one of its extensions supporting compressed textures. In order to load the compressed texture image using$(D_INLINECODE glCompressedTexImage1D), query the compressed texture image's size and format using$(D_INLINECODE glGetTexLevelParameter).)$(P If a non-zero named buffer object is bound to the$(D_INLINECODE GL_PIXEL_UNPACK_BUFFER) target (see$(D_INLINECODE glBindBuffer) ) while a texture image is specified,$(D_INLINECODE data) is treated as a byte offset into the buffer object's data store.)$(P If the compressed data are arranged into fixed-size blocks of texels, the pixel storage modes can be used to select a sub-rectangle from a larger containing rectangle. These pixel storage modes operate in the same way as they do for$(D_INLINECODE glTexImage1D). In the following description, denote by b s, b w, b h, and b d the values of pixel storage modes$(D_INLINECODE GL_UNPACK_COMPRESSED_BLOCK_SIZE),$(D_INLINECODE GL_UNPACK_COMPRESSED_BLOCK_WIDTH),$(D_INLINECODE GL_UNPACK_COMPRESSED_BLOCK_HEIGHT), and$(D_INLINECODE GL_UNPACK_COMPRESSED_BLOCK_DEPTH), respectively. b s is the compressed block size in bytes; b w, b h, and b d are the compressed block width, height, and depth in pixels.)$(P By default the pixel storage modes$(D_INLINECODE GL_UNPACK_ROW_LENGTH),$(D_INLINECODE GL_UNPACK_SKIP_ROWS),$(D_INLINECODE GL_UNPACK_SKIP_PIXELS),$(D_INLINECODE GL_UNPACK_IMAGE_HEIGHT) and$(D_INLINECODE GL_UNPACK_SKIP_IMAGES) are ignored for compressed images. To enable$(D_INLINECODE GL_UNPACK_SKIP_PIXELS) and$(D_INLINECODE GL_UNPACK_ROW_LENGTH), b s and b w must both be non-zero. To also enable$(D_INLINECODE GL_UNPACK_SKIP_ROWS) and$(D_INLINECODE GL_UNPACK_IMAGE_HEIGHT), b h must be non-zero. To also enable$(D_INLINECODE GL_UNPACK_SKIP_IMAGES), b d must be non-zero. All parameters must be consistent with the compressed format to produce the desired results.)$(P When selecting a sub-rectangle from a compressed image, itemizedlist)$(P $(D_INLINECODE imageSize) must be equal to:)$(P b s × width b w) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target texture. Must be$(D_INLINECODE GL_TEXTURE_1D) or$(D_INLINECODE GL_PROXY_TEXTURE_1D).) | |
| * level = $(P Specifies the level-of-detail number. Level 0 is the base image level. Level is the th mipmap reduction image.) | |
| * internalformat = $(P Specifies the format of the compressed image data stored at address$(D_INLINECODE data).) | |
| * width = $(P Specifies the width of the texture image. All implementations support texture images that are at least 64 texels wide. The height of the 1D texture image is 1.) | |
| * border = $(P This value must be 0.) | |
| * imageSize = $(P Specifies the number of unsigned bytes of image data starting at the address specified by$(D_INLINECODE data).) | |
| * data = $(P Specifies a pointer to the compressed image data in memory.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2011-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glActiveTexture),$(D_INLINECODE glCompressedTexImage2D),$(D_INLINECODE glCompressedTexImage3D),$(D_INLINECODE glCompressedTexSubImage1D),$(D_INLINECODE glCompressedTexSubImage2D),$(D_INLINECODE glCompressedTexSubImage3D),$(D_INLINECODE glCopyTexImage1D),$(D_INLINECODE glCopyTexImage2D),$(D_INLINECODE glCopyTexSubImage1D),$(D_INLINECODE glCopyTexSubImage2D),$(D_INLINECODE glCopyTexSubImage3D),$(D_INLINECODE glPixelStore),$(D_INLINECODE glTexImage2D),$(D_INLINECODE glTexImage3D),$(D_INLINECODE glTexSubImage1D),$(D_INLINECODE glTexSubImage2D),$(D_INLINECODE glTexSubImage3D),$(D_INLINECODE glTexParameter)) | |
| */ | |
| extern(C) void function(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid* data) @system @nogc nothrow glCompressedTexImage1D; | |
| /** | |
| * glCompressedTexImage2D: man4/glCompressedTexImage2D.xml | |
| * | |
| * $(P Texturing allows elements of an image array to be read by shaders.)$(P $(D_INLINECODE glCompressedTexImage2D) loads a previously defined, and retrieved, compressed two-dimensional texture image if$(D_INLINECODE target) is$(D_INLINECODE GL_TEXTURE_2D), or one of the cube map faces such as$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_X). (see$(D_INLINECODE glTexImage2D) ).)$(P If$(D_INLINECODE target) is$(D_INLINECODE GL_TEXTURE_1D_ARRAY),$(D_INLINECODE data) is treated as an array of compressed 1D textures.)$(P If$(D_INLINECODE target) is$(D_INLINECODE GL_PROXY_TEXTURE_2D),$(D_INLINECODE GL_PROXY_TEXTURE_1D_ARRAY) or$(D_INLINECODE GL_PROXY_TEXTURE_CUBE_MAP), no data is read from$(D_INLINECODE data), but all of the texture image state is recalculated, checked for consistency, and checked against the implementation's capabilities. If the implementation cannot handle a texture of the requested texture size, it sets all of the image state to 0, but does not generate an error (see$(D_INLINECODE glGetError) ). To query for an entire mipmap array, use an image array level greater than or equal to 1.)$(P $(D_INLINECODE internalformat) must be a known compressed image format (such as$(D_INLINECODE GL_RGTC) ) or an extension-specified compressed-texture format. When a texture is loaded with$(D_INLINECODE glTexImage2D) using a generic compressed texture format (e.g.,$(D_INLINECODE GL_COMPRESSED_RGB) ), the GL selects from one of its extensions supporting compressed textures. In order to load the compressed texture image using$(D_INLINECODE glCompressedTexImage2D), query the compressed texture image's size and format using$(D_INLINECODE glGetTexLevelParameter).)$(P If a non-zero named buffer object is bound to the$(D_INLINECODE GL_PIXEL_UNPACK_BUFFER) target (see$(D_INLINECODE glBindBuffer) ) while a texture image is specified,$(D_INLINECODE data) is treated as a byte offset into the buffer object's data store.)$(P If the compressed data are arranged into fixed-size blocks of texels, the pixel storage modes can be used to select a sub-rectangle from a larger containing rectangle. These pixel storage modes operate in the same way as they do for$(D_INLINECODE glTexImage2D). In the following description, denote by b s, b w, b h, and b d, the values of pixel storage modes$(D_INLINECODE GL_UNPACK_COMPRESSED_BLOCK_SIZE),$(D_INLINECODE GL_UNPACK_COMPRESSED_BLOCK_WIDTH),$(D_INLINECODE GL_UNPACK_COMPRESSED_BLOCK_HEIGHT), and$(D_INLINECODE GL_UNPACK_COMPRESSED_BLOCK_DEPTH), respectively. b s is the compressed block size in bytes; b w, b h, and b d are the compressed block width, height, and depth in pixels.)$(P By default the pixel storage modes$(D_INLINECODE GL_UNPACK_ROW_LENGTH),$(D_INLINECODE GL_UNPACK_SKIP_ROWS),$(D_INLINECODE GL_UNPACK_SKIP_PIXELS),$(D_INLINECODE GL_UNPACK_IMAGE_HEIGHT) and$(D_INLINECODE GL_UNPACK_SKIP_IMAGES) are ignored for compressed images. To enable$(D_INLINECODE GL_UNPACK_SKIP_PIXELS) and$(D_INLINECODE GL_UNPACK_ROW_LENGTH), b s and b w must both be non-zero. To also enable$(D_INLINECODE GL_UNPACK_SKIP_ROWS) and$(D_INLINECODE GL_UNPACK_IMAGE_HEIGHT), b h must be non-zero. To also enable$(D_INLINECODE GL_UNPACK_SKIP_IMAGES), b d must be non-zero. All parameters must be consistent with the compressed format to produce the desired results.)$(P When selecting a sub-rectangle from a compressed image: itemizedlist)$(P $(D_INLINECODE imageSize) must be equal to:)$(P b s × width b w × height b h) | |
| * | |
| * $(P The specific compressed internal formats$(D_INLINECODE GL_COMPRESSED_RGB8_ETC2),$(D_INLINECODE GL_COMPRESSED_SRGB8_ETC2),$(D_INLINECODE GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2),$(D_INLINECODE GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2),$(D_INLINECODE GL_COMPRESSED_RGBA8_ETC2_EAC),$(D_INLINECODE GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC),$(D_INLINECODE GL_COMPRESSED_R11_EAC),$(D_INLINECODE GL_COMPRESSED_SIGNED_R11_EAC),$(D_INLINECODE GL_COMPRESSED_RG11_EAC), and$(D_INLINECODE GL_COMPRESSED_SIGNED_RG11_EAC) are available only if the GL version is 4.3 or higher.) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target texture. Must be$(D_INLINECODE GL_TEXTURE_2D),$(D_INLINECODE GL_PROXY_TEXTURE_2D),$(D_INLINECODE GL_TEXTURE_1D_ARRAY),$(D_INLINECODE GL_PROXY_TEXTURE_1D_ARRAY),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_X),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_NEGATIVE_X),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_Y),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_NEGATIVE_Y),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_Z),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_NEGATIVE_Z), or$(D_INLINECODE GL_PROXY_TEXTURE_CUBE_MAP).) | |
| * level = $(P Specifies the level-of-detail number. Level 0 is the base image level. Level is the th mipmap reduction image.) | |
| * internalformat = $(P Specifies the format of the compressed image data stored at address$(D_INLINECODE data).) | |
| * width = $(P Specifies the width of the texture image. All implementations support 2D texture and cube map texture images that are at least 16384 texels wide.) | |
| * height = $(P Specifies the height of the texture image. All implementations support 2D texture and cube map texture images that are at least 16384 texels high.) | |
| * border = $(P This value must be 0.) | |
| * imageSize = $(P Specifies the number of unsigned bytes of image data starting at the address specified by$(D_INLINECODE data).) | |
| * data = $(P Specifies a pointer to the compressed image data in memory.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2011-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glActiveTexture),$(D_INLINECODE glCompressedTexImage1D),$(D_INLINECODE glCompressedTexImage3D),$(D_INLINECODE glCompressedTexSubImage1D),$(D_INLINECODE glCompressedTexSubImage2D),$(D_INLINECODE glCompressedTexSubImage3D),$(D_INLINECODE glCopyTexImage1D),$(D_INLINECODE glCopyTexSubImage1D),$(D_INLINECODE glCopyTexSubImage2D),$(D_INLINECODE glCopyTexSubImage3D),$(D_INLINECODE glPixelStore),$(D_INLINECODE glTexImage2D),$(D_INLINECODE glTexImage3D),$(D_INLINECODE glTexSubImage1D),$(D_INLINECODE glTexSubImage2D),$(D_INLINECODE glTexSubImage3D),$(D_INLINECODE glTexParameter)) | |
| */ | |
| extern(C) void function(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data) @system @nogc nothrow glCompressedTexImage2D; | |
| /** | |
| * glCompressedTexImage3D: man4/glCompressedTexImage3D.xml | |
| * | |
| * $(P Texturing allows elements of an image array to be read by shaders.)$(P $(D_INLINECODE glCompressedTexImage3D) loads a previously defined, and retrieved, compressed three-dimensional texture image if$(D_INLINECODE target) is$(D_INLINECODE GL_TEXTURE_3D) (see$(D_INLINECODE glTexImage3D) ).)$(P If$(D_INLINECODE target) is$(D_INLINECODE GL_TEXTURE_2D_ARRAY),$(D_INLINECODE data) is treated as an array of compressed 2D textures.)$(P If$(D_INLINECODE target) is$(D_INLINECODE GL_PROXY_TEXTURE_3D) or$(D_INLINECODE GL_PROXY_TEXTURE_2D_ARRAY), no data is read from$(D_INLINECODE data), but all of the texture image state is recalculated, checked for consistency, and checked against the implementation's capabilities. If the implementation cannot handle a texture of the requested texture size, it sets all of the image state to 0, but does not generate an error (see$(D_INLINECODE glGetError) ). To query for an entire mipmap array, use an image array level greater than or equal to 1.)$(P $(D_INLINECODE internalformat) must be a known compressed image format (such as$(D_INLINECODE GL_RGTC) ) or an extension-specified compressed-texture format. When a texture is loaded with$(D_INLINECODE glTexImage2D) using a generic compressed texture format (e.g.,$(D_INLINECODE GL_COMPRESSED_RGB) ), the GL selects from one of its extensions supporting compressed textures. In order to load the compressed texture image using$(D_INLINECODE glCompressedTexImage3D), query the compressed texture image's size and format using$(D_INLINECODE glGetTexLevelParameter).)$(P If a non-zero named buffer object is bound to the$(D_INLINECODE GL_PIXEL_UNPACK_BUFFER) target (see$(D_INLINECODE glBindBuffer) ) while a texture image is specified,$(D_INLINECODE data) is treated as a byte offset into the buffer object's data store.)$(P If the compressed data are arranged into fixed-size blocks of texels, the pixel storage modes can be used to select a sub-rectangle from a larger containing rectangle. These pixel storage modes operate in the same way as they do for$(D_INLINECODE glTexImage1D). In the following description, denote by b s, b w, b h, and b d the values of pixel storage modes$(D_INLINECODE GL_UNPACK_COMPRESSED_BLOCK_SIZE),$(D_INLINECODE GL_UNPACK_COMPRESSED_BLOCK_WIDTH),$(D_INLINECODE GL_UNPACK_COMPRESSED_BLOCK_HEIGHT), and$(D_INLINECODE GL_UNPACK_COMPRESSED_BLOCK_DEPTH), respectively. b s is the compressed block size in bytes; b w, b h, and b d are the compressed block width, height, and depth in pixels.)$(P By default the pixel storage modes$(D_INLINECODE GL_UNPACK_ROW_LENGTH),$(D_INLINECODE GL_UNPACK_SKIP_ROWS),$(D_INLINECODE GL_UNPACK_SKIP_PIXELS),$(D_INLINECODE GL_UNPACK_IMAGE_HEIGHT) and$(D_INLINECODE GL_UNPACK_SKIP_IMAGES) are ignored for compressed images. To enable$(D_INLINECODE GL_UNPACK_SKIP_PIXELS) and$(D_INLINECODE GL_UNPACK_ROW_LENGTH), b s and b w must both be non-zero. To also enable$(D_INLINECODE GL_UNPACK_SKIP_ROWS) and$(D_INLINECODE GL_UNPACK_IMAGE_HEIGHT), b h must be non-zero. To also enable$(D_INLINECODE GL_UNPACK_SKIP_IMAGES), b d must be non-zero. All parameters must be consistent with the compressed format to produce the desired results.)$(P When selecting a sub-rectangle from a compressed image: itemizedlist)$(P $(D_INLINECODE imageSize) must be equal to:)$(P b s × width b w × height b h × depth b d) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target texture. Must be$(D_INLINECODE GL_TEXTURE_3D),$(D_INLINECODE GL_PROXY_TEXTURE_3D),$(D_INLINECODE GL_TEXTURE_2D_ARRAY) or$(D_INLINECODE GL_PROXY_TEXTURE_2D_ARRAY).) | |
| * level = $(P Specifies the level-of-detail number. Level 0 is the base image level. Level is the th mipmap reduction image.) | |
| * internalformat = $(P Specifies the format of the compressed image data stored at address$(D_INLINECODE data).) | |
| * width = $(P Specifies the width of the texture image. All implementations support 3D texture images that are at least 16 texels wide.) | |
| * height = $(P Specifies the height of the texture image. All implementations support 3D texture images that are at least 16 texels high.) | |
| * depth = $(P Specifies the depth of the texture image. All implementations support 3D texture images that are at least 16 texels deep.) | |
| * border = $(P This value must be 0.) | |
| * imageSize = $(P Specifies the number of unsigned bytes of image data starting at the address specified by$(D_INLINECODE data).) | |
| * data = $(P Specifies a pointer to the compressed image data in memory.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2011-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glActiveTexture),$(D_INLINECODE glCompressedTexImage1D),$(D_INLINECODE glCompressedTexImage2D),$(D_INLINECODE glCompressedTexSubImage1D),$(D_INLINECODE glCompressedTexSubImage2D),$(D_INLINECODE glCompressedTexSubImage3D),$(D_INLINECODE glCopyTexImage1D),$(D_INLINECODE glCopyTexSubImage1D),$(D_INLINECODE glCopyTexSubImage2D),$(D_INLINECODE glCopyTexSubImage3D),$(D_INLINECODE glPixelStore),$(D_INLINECODE glTexImage1D),$(D_INLINECODE glTexImage2D),$(D_INLINECODE glTexSubImage1D),$(D_INLINECODE glTexSubImage2D),$(D_INLINECODE glTexSubImage3D),$(D_INLINECODE glTexParameter)) | |
| */ | |
| extern(C) void function(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data) @system @nogc nothrow glCompressedTexImage3D; | |
| /** | |
| * glCompressedTexSubImage1D: man4/glCompressedTexSubImage1D.xml | |
| * | |
| * $(P Texturing allows elements of an image array to be read by shaders.)$(P $(D_INLINECODE glCompressedTexSubImage1D) and$(D_INLINECODE glCompressedTextureSubImage1D) redefine a contiguous subregion of an existing one-dimensional texture image. The texels referenced by$(D_INLINECODE data) replace the portion of the existing texture array with x indices$(D_INLINECODE xoffset) and xoffset + width - 1, inclusive. This region may not include any texels outside the range of the texture array as it was originally specified. It is not an error to specify a subtexture with width of 0, but such a specification has no effect.)$(P $(D_INLINECODE internalformat) must be a known compressed image format (such as$(D_INLINECODE GL_RGTC) ) or an extension-specified compressed-texture format. The$(D_INLINECODE format) of the compressed texture image is selected by the GL implementation that compressed it (see$(D_INLINECODE glTexImage1D) ), and should be queried at the time the texture was compressed with$(D_INLINECODE glGetTexLevelParameter).)$(P If a non-zero named buffer object is bound to the$(D_INLINECODE GL_PIXEL_UNPACK_BUFFER) target (see$(D_INLINECODE glBindBuffer) ) while a texture image is specified,$(D_INLINECODE data) is treated as a byte offset into the buffer object's data store.) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target, to which the texture is bound, for$(D_INLINECODE glCompressedTexSubImage1D) function. Must be$(D_INLINECODE GL_TEXTURE_1D).) | |
| * texture = $(P Specifies the texture object name for$(D_INLINECODE glCompressedTextureSubImage1D) function.) | |
| * level = $(P Specifies the level-of-detail number. Level 0 is the base image level. Level is the th mipmap reduction image.) | |
| * xoffset = $(P Specifies a texel offset in the x direction within the texture array.) | |
| * width = $(P Specifies the width of the texture subimage.) | |
| * format = $(P Specifies the format of the compressed image data stored at address$(D_INLINECODE data).) | |
| * imageSize = $(P Specifies the number of unsigned bytes of image data starting at the address specified by$(D_INLINECODE data).) | |
| * data = $(P Specifies a pointer to the compressed image data in memory.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glActiveTexture),$(D_INLINECODE glCompressedTexImage1D),$(D_INLINECODE glCompressedTexImage2D),$(D_INLINECODE glCompressedTexImage3D),$(D_INLINECODE glCompressedTexSubImage2D),$(D_INLINECODE glCompressedTexSubImage3D),$(D_INLINECODE glCopyTexImage1D),$(D_INLINECODE glCopyTexImage2D),$(D_INLINECODE glCopyTexSubImage1D),$(D_INLINECODE glCopyTexSubImage2D),$(D_INLINECODE glCopyTexSubImage3D),$(D_INLINECODE glPixelStore),$(D_INLINECODE glTexImage2D),$(D_INLINECODE glTexImage3D),$(D_INLINECODE glTexSubImage1D),$(D_INLINECODE glTexSubImage2D),$(D_INLINECODE glTexSubImage3D),$(D_INLINECODE glTexParameter)) | |
| */ | |
| extern(C) void function(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid* data) @system @nogc nothrow glCompressedTexSubImage1D; | |
| /// Ditto | |
| extern(C) void function(GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void* data) @system @nogc nothrow glCompressedTextureSubImage1D; | |
| /** | |
| * glCompressedTexSubImage2D: man4/glCompressedTexSubImage2D.xml | |
| * | |
| * $(P Texturing allows elements of an image array to be read by shaders.)$(P $(D_INLINECODE glCompressedTexSubImage2D) and$(D_INLINECODE glCompressedTextureSubImage2D) redefine a contiguous subregion of an existing two-dimensional texture image. The texels referenced by$(D_INLINECODE data) replace the portion of the existing texture array with x indices$(D_INLINECODE xoffset) and xoffset + width - 1, and the y indices$(D_INLINECODE yoffset) and yoffset + height - 1, inclusive. This region may not include any texels outside the range of the texture array as it was originally specified. It is not an error to specify a subtexture with width of 0, but such a specification has no effect.)$(P $(D_INLINECODE internalformat) must be a known compressed image format (such as$(D_INLINECODE GL_RGTC) ) or an extension-specified compressed-texture format. The$(D_INLINECODE format) of the compressed texture image is selected by the GL implementation that compressed it (see$(D_INLINECODE glTexImage2D) ) and should be queried at the time the texture was compressed with$(D_INLINECODE glGetTexLevelParameter).)$(P If a non-zero named buffer object is bound to the$(D_INLINECODE GL_PIXEL_UNPACK_BUFFER) target (see$(D_INLINECODE glBindBuffer) ) while a texture image is specified,$(D_INLINECODE data) is treated as a byte offset into the buffer object's data store.) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target to which the texture is bound for$(D_INLINECODE glCompressedTexSubImage2D) function. Must be$(D_INLINECODE GL_TEXTURE_1D_ARRAY),$(D_INLINECODE GL_TEXTURE_2D),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_X),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_NEGATIVE_X),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_Y),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_NEGATIVE_Y),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_Z), or$(D_INLINECODE GL_TEXTURE_CUBE_MAP_NEGATIVE_Z).) | |
| * texture = $(P Specifies the texture object name for$(D_INLINECODE glCompressedTextureSubImage2D) function.) | |
| * level = $(P Specifies the level-of-detail number. Level 0 is the base image level. Level is the th mipmap reduction image.) | |
| * xoffset = $(P Specifies a texel offset in the x direction within the texture array.) | |
| * yoffset = $(P Specifies a texel offset in the y direction within the texture array.) | |
| * width = $(P Specifies the width of the texture subimage.) | |
| * height = $(P Specifies the height of the texture subimage.) | |
| * format = $(P Specifies the format of the compressed image data stored at address$(D_INLINECODE data).) | |
| * imageSize = $(P Specifies the number of unsigned bytes of image data starting at the address specified by$(D_INLINECODE data).) | |
| * data = $(P Specifies a pointer to the compressed image data in memory.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glActiveTexture),$(D_INLINECODE glCompressedTexImage1D),$(D_INLINECODE glCompressedTexImage2D),$(D_INLINECODE glCompressedTexImage3D),$(D_INLINECODE glCompressedTexSubImage1D),$(D_INLINECODE glCompressedTexSubImage3D),$(D_INLINECODE glCopyTexImage1D),$(D_INLINECODE glCopyTexImage2D),$(D_INLINECODE glCopyTexSubImage1D),$(D_INLINECODE glCopyTexSubImage2D),$(D_INLINECODE glCopyTexSubImage3D),$(D_INLINECODE glPixelStore),$(D_INLINECODE glTexImage2D),$(D_INLINECODE glTexImage3D),$(D_INLINECODE glTexSubImage1D),$(D_INLINECODE glTexSubImage2D),$(D_INLINECODE glTexSubImage3D),$(D_INLINECODE glTexParameter)) | |
| */ | |
| extern(C) void function(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data) @system @nogc nothrow glCompressedTexSubImage2D; | |
| /// Ditto | |
| extern(C) void function(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data) @system @nogc nothrow glCompressedTextureSubImage2D; | |
| /** | |
| * glCompressedTexSubImage3D: man4/glCompressedTexSubImage3D.xml | |
| * | |
| * $(P Texturing allows elements of an image array to be read by shaders.)$(P $(D_INLINECODE glCompressedTexSubImage3D) and$(D_INLINECODE glCompressedTextureSubImage3D) redefine a contiguous subregion of an existing three-dimensional texture image. The texels referenced by$(D_INLINECODE data) replace the portion of the existing texture array with x indices$(D_INLINECODE xoffset) and xoffset + width - 1, and the y indices$(D_INLINECODE yoffset) and yoffset + height - 1, and the z indices$(D_INLINECODE zoffset) and zoffset + depth - 1, inclusive. This region may not include any texels outside the range of the texture array as it was originally specified. It is not an error to specify a subtexture with width of 0, but such a specification has no effect.)$(P $(D_INLINECODE internalformat) must be a known compressed image format (such as$(D_INLINECODE GL_RGTC) ) or an extension-specified compressed-texture format. The$(D_INLINECODE format) of the compressed texture image is selected by the GL implementation that compressed it (see$(D_INLINECODE glTexImage3D) ) and should be queried at the time the texture was compressed with$(D_INLINECODE glGetTexLevelParameter).)$(P If a non-zero named buffer object is bound to the$(D_INLINECODE GL_PIXEL_UNPACK_BUFFER) target (see$(D_INLINECODE glBindBuffer) ) while a texture image is specified,$(D_INLINECODE data) is treated as a byte offset into the buffer object's data store.) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target to which the texture is bound for$(D_INLINECODE glCompressedTexSubImage3D) function. Must be$(D_INLINECODE GL_TEXTURE_2D_ARRAY),$(D_INLINECODE GL_TEXTURE_3D), or$(D_INLINECODE GL_TEXTURE_CUBE_MAP_ARRAY).) | |
| * texture = $(P Specifies the texture object name for$(D_INLINECODE glCompressedTextureSubImage3D) function.) | |
| * level = $(P Specifies the level-of-detail number. Level 0 is the base image level. Level is the th mipmap reduction image.) | |
| * xoffset = $(P Specifies a texel offset in the x direction within the texture array.) | |
| * yoffset = $(P Specifies a texel offset in the y direction within the texture array.) | |
| * width = $(P Specifies the width of the texture subimage.) | |
| * height = $(P Specifies the height of the texture subimage.) | |
| * depth = $(P Specifies the depth of the texture subimage.) | |
| * format = $(P Specifies the format of the compressed image data stored at address$(D_INLINECODE data).) | |
| * imageSize = $(P Specifies the number of unsigned bytes of image data starting at the address specified by$(D_INLINECODE data).) | |
| * data = $(P Specifies a pointer to the compressed image data in memory.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glActiveTexture),$(D_INLINECODE glCompressedTexImage1D),$(D_INLINECODE glCompressedTexImage2D),$(D_INLINECODE glCompressedTexImage3D),$(D_INLINECODE glCompressedTexSubImage1D),$(D_INLINECODE glCompressedTexSubImage2D),$(D_INLINECODE glCopyTexImage1D),$(D_INLINECODE glCopyTexImage2D),$(D_INLINECODE glCopyTexSubImage1D),$(D_INLINECODE glCopyTexSubImage2D),$(D_INLINECODE glCopyTexSubImage3D),$(D_INLINECODE glPixelStore),$(D_INLINECODE glTexImage2D),$(D_INLINECODE glTexImage3D),$(D_INLINECODE glTexSubImage1D),$(D_INLINECODE glTexSubImage2D),$(D_INLINECODE glTexSubImage3D),$(D_INLINECODE glTexParameter)) | |
| */ | |
| extern(C) void function(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data) @system @nogc nothrow glCompressedTexSubImage3D; | |
| /// Ditto | |
| extern(C) void function(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void* data) @system @nogc nothrow glCompressedTextureSubImage3D; | |
| /** | |
| * glCopyBufferSubData: man4/glCopyBufferSubData.xml | |
| * | |
| * $(P $(D_INLINECODE glCopyBufferSubData) and$(D_INLINECODE glCopyNamedBufferSubData) copy part of the data store attached to a source buffer object to the data store attached to a destination buffer object. The number of basic machine units indicated by$(D_INLINECODE size) is copied from the source at offset$(D_INLINECODE readOffset) to the destination at$(D_INLINECODE writeOffset).$(D_INLINECODE readOffset),$(D_INLINECODE writeOffset) and$(D_INLINECODE size) are in terms of basic machine units.)$(P For$(D_INLINECODE glCopyBufferSubData),$(D_INLINECODE readTarget) and$(D_INLINECODE writeTarget) specify the targets to which the source and destination buffer objects are bound, and must each be one of the buffer binding targets in the following table:)$(B Buffer Binding Target)$(B Purpose)$(D_INLINECODE GL_ARRAY_BUFFER) Vertex attributes$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER) Atomic counter storage$(D_INLINECODE GL_COPY_READ_BUFFER) Buffer copy source$(D_INLINECODE GL_COPY_WRITE_BUFFER) Buffer copy destination$(D_INLINECODE GL_DISPATCH_INDIRECT_BUFFER) Indirect compute dispatch commands$(D_INLINECODE GL_DRAW_INDIRECT_BUFFER) Indirect command arguments$(D_INLINECODE GL_ELEMENT_ARRAY_BUFFER) Vertex array indices$(D_INLINECODE GL_PIXEL_PACK_BUFFER) Pixel read target$(D_INLINECODE GL_PIXEL_UNPACK_BUFFER) Texture data source$(D_INLINECODE GL_QUERY_BUFFER) Query result buffer$(D_INLINECODE GL_SHADER_STORAGE_BUFFER) Read-write storage for shaders$(D_INLINECODE GL_TEXTURE_BUFFER) Texture data buffer$(D_INLINECODE GL_TRANSFORM_FEEDBACK_BUFFER) Transform feedback buffer$(D_INLINECODE GL_UNIFORM_BUFFER) Uniform block storage$(P Any of these targets may be used, but the targets$(D_INLINECODE GL_COPY_READ_BUFFER) and$(D_INLINECODE GL_COPY_WRITE_BUFFER) are provided specifically to allow copies between buffers without disturbing other GL state.)$(P $(D_INLINECODE readOffset),$(D_INLINECODE writeOffset) and$(D_INLINECODE size) must all be greater than or equal to zero. Furthermore, $readOffset+size$ must not exceeed the size of the source buffer object, and $writeOffset+size$ must not exceeed the size of the buffer bound to$(D_INLINECODE writeTarget). If the source and destination are the same buffer object, then the source and destination ranges must not overlap.) | |
| * | |
| * $(P The$(D_INLINECODE GL_DISPATCH_INDIRECT_BUFFER) and$(D_INLINECODE GL_SHADER_STORAGE_BUFFER) targets are available only if the GL version is 4.3 or greater.)$(P The$(D_INLINECODE GL_QUERY_BUFFER) target is available only if the GL version is 4.4 or greater.) | |
| * | |
| * Params: | |
| * readTarget = $(P Specifies the target to which the source buffer object is bound for$(D_INLINECODE glCopyBufferSubData)) | |
| * writeTarget = $(P Specifies the target to which the destination buffer object is bound for$(D_INLINECODE glCopyBufferSubData).) | |
| * readBuffer = $(P Specifies the name of the source buffer object for$(D_INLINECODE glCopyNamedBufferSubData).) | |
| * writeBuffer = $(P Specifies the name of the destination buffer object for$(D_INLINECODE glCopyNamedBufferSubData).) | |
| * readOffset = $(P Specifies the offset, in basic machine units, within the data store of the source buffer object at which data will be read.) | |
| * writeOffset = $(P Specifies the offset, in basic machine units, within the data store of the destination buffer object at which data will be written.) | |
| * size = $(P Specifies the size, in basic machine units, of the data to be copied from the source buffer object to the destination buffer object.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenBuffers),$(D_INLINECODE glBindBuffer),$(D_INLINECODE glBufferData),$(D_INLINECODE glBufferSubData),$(D_INLINECODE glGetBufferSubData),$(D_INLINECODE glMapBuffer),$(D_INLINECODE glMapBufferRange)) | |
| */ | |
| extern(C) void function(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size) @system @nogc nothrow glCopyBufferSubData; | |
| /// Ditto | |
| extern(C) void function(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizei size) @system @nogc nothrow glCopyNamedBufferSubData; | |
| /** | |
| * glCopyImageSubData: man4/glCopyImageSubData.xml | |
| * | |
| * $(P $(D_INLINECODE glCopyImageSubData) may be used to copy data from one image (i.e. texture or renderbuffer) to another.$(D_INLINECODE glCopyImageSubData) does not perform general-purpose conversions such as scaling, resizing, blending, color-space, or format conversions. It should be considered to operate in a manner similar to a CPU memcpy. CopyImageSubData can copy between images with different internal formats, provided the formats are compatible.)$(P $(D_INLINECODE glCopyImageSubData) also allows copying between certain types of compressed and uncompressed internal formats. This copy does not perform on-the-fly compression or decompression. When copying from an uncompressed internal format to a compressed internal format, each texel of uncompressed data becomes a single block of compressed data. When copying from a compressed internal format to an uncompressed internal format, a block of compressed data becomes a single texel of uncompressed data. The texel size of the uncompressed format must be the same size the block size of the compressed formats. Thus it is permitted to copy between a 128-bit uncompressed format and a compressed format which uses 8-bit 4x4 blocks, or between a 64-bit uncompressed format and a compressed format which uses 4-bit 4x4 blocks.)$(P The source object is identified by$(D_INLINECODE srcName) and$(D_INLINECODE srcTarget) and the destination object is identified by$(D_INLINECODE dstName) and$(D_INLINECODE dstTarget). The interpretation of the name depends on the value of the corresponding$(D_INLINECODE target) parameter. If$(D_INLINECODE target) is$(D_INLINECODE GL_RENDERBUFFER), the name is interpreted as the name of a renderbuffer object. If the target parameter is a texture target, the name is interpreted as a texture object. All non-proxy texture targets are accepted, with the exception of$(D_INLINECODE GL_TEXTURE_BUFFER) and the cubemap face selectors.)$(P $(D_INLINECODE srcLevel) and$(D_INLINECODE dstLevel) identify the source and destination level of detail. For textures, this must be a valid level of detail in the texture object. For renderbuffers, this value must be zero.)$(P $(D_INLINECODE srcX),$(D_INLINECODE srcY), and$(D_INLINECODE srcZ) specify the lower left texel coordinates of a$(D_INLINECODE srcWidth) -wide by$(D_INLINECODE srcHeight) -high by$(D_INLINECODE srcDepth) -deep rectangular subregion of the source texel array. Similarly,$(D_INLINECODE dstX),$(D_INLINECODE dstY) and$(D_INLINECODE dstZ) specify the coordinates of a subregion of the destination texel array. The source and destination subregions must be contained entirely within the specified level of the corresponding image objects.)$(P The dimensions are always specified in texels, even for compressed texture formats. However, it should be noted that if only one of the source and destination textures is compressed then the number of texels touched in the compressed image will be a factor of the block size larger than in the uncompressed image.)$(P Slices of a$(D_INLINECODE GL_TEXTURE_1D_ARRAY),$(D_INLINECODE GL_TEXTURE_2D_ARRAY),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_ARRAY)$(D_INLINECODE GL_TEXTURE_3D) and faces of$(D_INLINECODE GL_TEXTURE_CUBE_MAP) are all compatible provided they share a compatible internal format, and multiple slices or faces may be copied between these objects with a single call by specifying the starting slice with$(D_INLINECODE srcZ) and$(D_INLINECODE dstZ), and the number of slices to be copied with$(D_INLINECODE srcDepth). Cubemap textures always have six faces which are selected by a zero-based face index.)$(P For the purposes of CopyImageSubData, two internal formats are considered compatible if any of the following conditions are met: itemizedlist If the formats are not compatible, an INVALID_OPERATION error is generated.)<h3> Sized Internal Formats</h3>$(B Texel / Block Size)$(B Uncompressed Internal Format)$(B Compressed Internal Format(s)) 64-bit$(D_INLINECODE GL_RGBA32UI),$(D_INLINECODE GL_RGBA32I),$(D_INLINECODE GL_RGBA32F)$(D_INLINECODE GL_COMPRESSED_RGBA_S3TC_DXT3_EXT),$(D_INLINECODE GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT),$(D_INLINECODE GL_COMPRESSED_RGBA_S3TC_DXT5_EXT),$(D_INLINECODE GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT),$(D_INLINECODE GL_COMPRESSED_RG_RGTC2),$(D_INLINECODE GL_COMPRESSED_SIGNED_RG_RGTC2),$(D_INLINECODE GL_COMPRESSED_RGBA_BPTC_UNORM),$(D_INLINECODE GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM),$(D_INLINECODE GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT),$(D_INLINECODE GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT) 128-bit$(D_INLINECODE GL_RGBA16UI),$(D_INLINECODE GL_RGBA16I),$(D_INLINECODE GL_RGBA16F),$(D_INLINECODE GL_RG32F),$(D_INLINECODE GL_RG32UI),$(D_INLINECODE GL_RG32I),$(D_INLINECODE GL_RGBA16),$(D_INLINECODE GL_RGBA16_SNORM)$(D_INLINECODE GL_COMPRESSED_RGB_S3TC_DXT1_EXT),$(D_INLINECODE GL_COMPRESSED_SRGB_S3TC_DXT1_EXT),$(D_INLINECODE GL_COMPRESSED_RGBA_S3TC_DXT1_EXT),$(D_INLINECODE GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT),$(D_INLINECODE GL_COMPRESSED_RED_RGTC1),$(D_INLINECODE GL_COMPRESSED_SIGNED_RED_RGTC1) | |
| * | |
| * Params: | |
| * srcName = $(P The name of a texture or renderbuffer object from which to copy.) | |
| * srcTarget = $(P The target representing the namespace of the source name$(D_INLINECODE srcName).) | |
| * srcLevel = $(P The mipmap level to read from the source.) | |
| * srcX = $(P The X coordinate of the left edge of the souce region to copy.) | |
| * srcY = $(P The Y coordinate of the top edge of the souce region to copy.) | |
| * srcZ = $(P The Z coordinate of the near edge of the souce region to copy.) | |
| * dstName = $(P The name of a texture or renderbuffer object to which to copy.) | |
| * dstTarget = $(P The target representing the namespace of the destination name$(D_INLINECODE dstName).) | |
| * dstX = $(P The X coordinate of the left edge of the destination region.) | |
| * dstY = $(P The Y coordinate of the top edge of the destination region.) | |
| * dstZ = $(P The Z coordinate of the near edge of the destination region.) | |
| * srcWidth = $(P The width of the region to be copied.) | |
| * srcHeight = $(P The height of the region to be copied.) | |
| * srcDepth = $(P The depth of the region to be copied.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2013-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDispatchComputeIndirect).) | |
| */ | |
| extern(C) void function(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) @system @nogc nothrow glCopyImageSubData; | |
| /** | |
| * glCopyTexImage1D: man4/glCopyTexImage1D.xml | |
| * | |
| * $(P $(D_INLINECODE glCopyTexImage1D) defines a one-dimensional texture image with pixels from the current$(D_INLINECODE GL_READ_BUFFER).)$(P The screen-aligned pixel row with left corner at x y and with a length of width defines the texture array at the mipmap level specified by$(D_INLINECODE level).$(D_INLINECODE internalformat) specifies the internal format of the texture array.)$(P The pixels in the row are processed exactly as if$(D_INLINECODE glReadPixels) had been called, but the process stops just before final conversion. At this point all pixel component values are clamped to the range 0 1 and then converted to the texture's internal format for storage in the texel array.)$(P Pixel ordering is such that lower x screen coordinates correspond to lower texture coordinates.)$(P If any of the pixels within the specified row of the current$(D_INLINECODE GL_READ_BUFFER) are outside the window associated with the current rendering context, then the values obtained for those pixels are undefined.)$(P $(D_INLINECODE glCopyTexImage1D) defines a one-dimensional texture image with pixels from the current$(D_INLINECODE GL_READ_BUFFER).)$(P When$(D_INLINECODE internalformat) is one of the sRGB types, the GL does not automatically convert the source pixels to the sRGB color space. In this case, the$(D_INLINECODE glPixelMap) function can be used to accomplish the conversion.) | |
| * | |
| * $(P 1, 2, 3, and 4 are not accepted values for$(D_INLINECODE internalformat).)$(P An image with 0 width indicates a NULL texture.)$(P $(D_INLINECODE GL_STENCIL_INDEX8) is accepted for$(D_INLINECODE internalformat) only if the GL version is 4.4 or higher.) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target texture. Must be$(D_INLINECODE GL_TEXTURE_1D).) | |
| * level = $(P Specifies the level-of-detail number. Level 0 is the base image level. Level is the th mipmap reduction image.) | |
| * internalformat = $(P Specifies the internal format of the texture. Must be one of the following symbolic constants:$(D_INLINECODE GL_COMPRESSED_RED),$(D_INLINECODE GL_COMPRESSED_RG),$(D_INLINECODE GL_COMPRESSED_RGB),$(D_INLINECODE GL_COMPRESSED_RGBA).$(D_INLINECODE GL_COMPRESSED_SRGB),$(D_INLINECODE GL_COMPRESSED_SRGB_ALPHA).$(D_INLINECODE GL_DEPTH_COMPONENT),$(D_INLINECODE GL_DEPTH_COMPONENT16),$(D_INLINECODE GL_DEPTH_COMPONENT24),$(D_INLINECODE GL_DEPTH_COMPONENT32),$(D_INLINECODE GL_STENCIL_INDEX8),$(D_INLINECODE GL_RED),$(D_INLINECODE GL_RG),$(D_INLINECODE GL_RGB),$(D_INLINECODE GL_R3_G3_B2),$(D_INLINECODE GL_RGB4),$(D_INLINECODE GL_RGB5),$(D_INLINECODE GL_RGB8),$(D_INLINECODE GL_RGB10),$(D_INLINECODE GL_RGB12),$(D_INLINECODE GL_RGB16),$(D_INLINECODE GL_RGBA),$(D_INLINECODE GL_RGBA2),$(D_INLINECODE GL_RGBA4),$(D_INLINECODE GL_RGB5_A1),$(D_INLINECODE GL_RGBA8),$(D_INLINECODE GL_RGB10_A2),$(D_INLINECODE GL_RGBA12),$(D_INLINECODE GL_RGBA16),$(D_INLINECODE GL_SRGB),$(D_INLINECODE GL_SRGB8),$(D_INLINECODE GL_SRGB_ALPHA), or$(D_INLINECODE GL_SRGB8_ALPHA8).) | |
| * x = $(P Specify the window coordinates of the left corner of the row of pixels to be copied.) | |
| * width = $(P Specifies the width of the texture image. The height of the texture image is 1.) | |
| * border = $(P Must be 0.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2012-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glCopyTexImage2D),$(D_INLINECODE glCopyTexSubImage1D),$(D_INLINECODE glCopyTexSubImage2D),$(D_INLINECODE glPixelStore),$(D_INLINECODE glTexImage1D),$(D_INLINECODE glTexImage2D),$(D_INLINECODE glTexSubImage1D),$(D_INLINECODE glTexSubImage2D),$(D_INLINECODE glTexParameter)) | |
| */ | |
| extern(C) void function(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border) @system @nogc nothrow glCopyTexImage1D; | |
| /** | |
| * glCopyTexImage2D: man4/glCopyTexImage2D.xml | |
| * | |
| * $(P $(D_INLINECODE glCopyTexImage2D) defines a two-dimensional texture image, or cube-map texture image with pixels from the current$(D_INLINECODE GL_READ_BUFFER).)$(P The screen-aligned pixel rectangle with lower left corner at ($(D_INLINECODE x),$(D_INLINECODE y) ) and with a width of width and a height of height defines the texture array at the mipmap level specified by$(D_INLINECODE level).$(D_INLINECODE internalformat) specifies the internal format of the texture array.)$(P The pixels in the rectangle are processed exactly as if$(D_INLINECODE glReadPixels) had been called, but the process stops just before final conversion. At this point all pixel component values are clamped to the range 0 1 and then converted to the texture's internal format for storage in the texel array.)$(P Pixel ordering is such that lower x and y screen coordinates correspond to lower s and t texture coordinates.)$(P If any of the pixels within the specified rectangle of the current$(D_INLINECODE GL_READ_BUFFER) are outside the window associated with the current rendering context, then the values obtained for those pixels are undefined.)$(P When$(D_INLINECODE internalformat) is one of the sRGB types, the GL does not automatically convert the source pixels to the sRGB color space. In this case, the$(D_INLINECODE glPixelMap) function can be used to accomplish the conversion.) | |
| * | |
| * $(P 1, 2, 3, and 4 are not accepted values for$(D_INLINECODE internalformat).)$(P An image with height or width of 0 indicates a NULL texture.)$(P $(D_INLINECODE GL_STENCIL_INDEX8) is accepted for$(D_INLINECODE internalformat) only if the GL version is 4.4 or higher.) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target texture. Must be$(D_INLINECODE GL_TEXTURE_2D),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_X),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_NEGATIVE_X),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_Y),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_NEGATIVE_Y),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_Z), or$(D_INLINECODE GL_TEXTURE_CUBE_MAP_NEGATIVE_Z).) | |
| * level = $(P Specifies the level-of-detail number. Level 0 is the base image level. Level is the th mipmap reduction image.) | |
| * internalformat = $(P Specifies the internal format of the texture. Must be one of the following symbolic constants:$(D_INLINECODE GL_COMPRESSED_RED),$(D_INLINECODE GL_COMPRESSED_RG),$(D_INLINECODE GL_COMPRESSED_RGB),$(D_INLINECODE GL_COMPRESSED_RGBA).$(D_INLINECODE GL_COMPRESSED_SRGB),$(D_INLINECODE GL_COMPRESSED_SRGB_ALPHA).$(D_INLINECODE GL_DEPTH_COMPONENT),$(D_INLINECODE GL_DEPTH_COMPONENT16),$(D_INLINECODE GL_DEPTH_COMPONENT24),$(D_INLINECODE GL_DEPTH_COMPONENT32),$(D_INLINECODE GL_STENCIL_INDEX8),$(D_INLINECODE GL_RED),$(D_INLINECODE GL_RG),$(D_INLINECODE GL_RGB),$(D_INLINECODE GL_R3_G3_B2),$(D_INLINECODE GL_RGB4),$(D_INLINECODE GL_RGB5),$(D_INLINECODE GL_RGB8),$(D_INLINECODE GL_RGB10),$(D_INLINECODE GL_RGB12),$(D_INLINECODE GL_RGB16),$(D_INLINECODE GL_RGBA),$(D_INLINECODE GL_RGBA2),$(D_INLINECODE GL_RGBA4),$(D_INLINECODE GL_RGB5_A1),$(D_INLINECODE GL_RGBA8),$(D_INLINECODE GL_RGB10_A2),$(D_INLINECODE GL_RGBA12),$(D_INLINECODE GL_RGBA16),$(D_INLINECODE GL_SRGB),$(D_INLINECODE GL_SRGB8),$(D_INLINECODE GL_SRGB_ALPHA), or$(D_INLINECODE GL_SRGB8_ALPHA8).) | |
| * x = $(P Specify the window coordinates of the lower left corner of the rectangular region of pixels to be copied.) | |
| * width = $(P Specifies the width of the texture image.) | |
| * height = $(P Specifies the height of the texture image.) | |
| * border = $(P Must be 0.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2012-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glCopyTexImage1D),$(D_INLINECODE glCopyTexSubImage1D),$(D_INLINECODE glCopyTexSubImage2D),$(D_INLINECODE glPixelStore),$(D_INLINECODE glTexImage1D),$(D_INLINECODE glTexImage2D),$(D_INLINECODE glTexSubImage1D),$(D_INLINECODE glTexSubImage2D),$(D_INLINECODE glTexParameter)) | |
| */ | |
| extern(C) void function(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) @system @nogc nothrow glCopyTexImage2D; | |
| /** | |
| * glCopyTexSubImage1D: man4/glCopyTexSubImage1D.xml | |
| * | |
| * $(P $(D_INLINECODE glCopyTexSubImage1D) and$(D_INLINECODE glCopyTextureSubImage1D) replace a portion of a one-dimensional texture image with pixels from the current$(D_INLINECODE GL_READ_BUFFER) (rather than from main memory, as is the case for$(D_INLINECODE glTexSubImage1D) ). For$(D_INLINECODE glCopyTexSubImage1D), the texture object that is bound to$(D_INLINECODE target) will be used for the process. For$(D_INLINECODE glCopyTextureSubImage1D),$(D_INLINECODE texture) tells which texture object should be used for the purpose of the call.)$(P The screen-aligned pixel row with left corner at ($(D_INLINECODE x),\$(D_INLINECODE y) ), and with length$(D_INLINECODE width) replaces the portion of the texture array with x indices$(D_INLINECODE xoffset) through xoffset + width - 1, inclusive. The destination in the texture array may not include any texels outside the texture array as it was originally specified.)$(P The pixels in the row are processed exactly as if$(D_INLINECODE glReadPixels) had been called, but the process stops just before final conversion. At this point, all pixel component values are clamped to the range 0 1 and then converted to the texture's internal format for storage in the texel array.)$(P It is not an error to specify a subtexture with zero width, but such a specification has no effect. If any of the pixels within the specified row of the current$(D_INLINECODE GL_READ_BUFFER) are outside the read window associated with the current rendering context, then the values obtained for those pixels are undefined.)$(P No change is made to the or parameters of the specified texture array or to texel values outside the specified subregion.) | |
| * | |
| * $(P The$(D_INLINECODE glPixelStore) mode affects texture images.) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target to which the texture object is bound for$(D_INLINECODE glCopyTexSubImage1D) function. Must be$(D_INLINECODE GL_TEXTURE_1D).) | |
| * texture = $(P Specifies the texture object name for$(D_INLINECODE glCopyTextureSubImage1D) function.) | |
| * level = $(P Specifies the level-of-detail number. Level 0 is the base image level. Level is the th mipmap reduction image.) | |
| * xoffset = $(P Specifies the texel offset within the texture array.) | |
| * x = $(P Specify the window coordinates of the left corner of the row of pixels to be copied.) | |
| * width = $(P Specifies the width of the texture subimage.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2012-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glCopyTexImage1D),$(D_INLINECODE glCopyTexImage2D),$(D_INLINECODE glCopyTexSubImage2D),$(D_INLINECODE glCopyTexSubImage3D),$(D_INLINECODE glPixelStore),$(D_INLINECODE glReadBuffer),$(D_INLINECODE glTexImage1D),$(D_INLINECODE glTexImage2D),$(D_INLINECODE glTexImage3D),$(D_INLINECODE glTexParameter),$(D_INLINECODE glTexSubImage1D),$(D_INLINECODE glTexSubImage2D),$(D_INLINECODE glTexSubImage3D)) | |
| */ | |
| extern(C) void function(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width) @system @nogc nothrow glCopyTexSubImage1D; | |
| /// Ditto | |
| extern(C) void function(GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width) @system @nogc nothrow glCopyTextureSubImage1D; | |
| /** | |
| * glCopyTexSubImage2D: man4/glCopyTexSubImage2D.xml | |
| * | |
| * $(P $(D_INLINECODE glCopyTexSubImage2D) and$(D_INLINECODE glCopyTextureSubImage2D) replace a rectangular portion of a two-dimensional texture image, cube-map texture image, rectangular image, or a linear portion of a number of slices of a one-dimensional array texture with pixels from the current$(D_INLINECODE GL_READ_BUFFER) (rather than from main memory, as is the case for$(D_INLINECODE glTexSubImage2D) ).)$(P The screen-aligned pixel rectangle with lower left corner at x y and with width$(D_INLINECODE width) and height$(D_INLINECODE height) replaces the portion of the texture array with x indices$(D_INLINECODE xoffset) through xoffset + width - 1, inclusive, and y indices$(D_INLINECODE yoffset) through yoffset + height - 1, inclusive, at the mipmap level specified by$(D_INLINECODE level).)$(P The pixels in the rectangle are processed exactly as if$(D_INLINECODE glReadPixels) had been called, but the process stops just before final conversion. At this point, all pixel component values are clamped to the range $[0,1]$ and then converted to the texture's internal format for storage in the texel array.)$(P The destination rectangle in the texture array may not include any texels outside the texture array as it was originally specified. It is not an error to specify a subtexture with zero width or height, but such a specification has no effect.)$(P When$(D_INLINECODE target) is$(D_INLINECODE GL_TEXTURE_1D_ARRAY) then the y coordinate and height are treated as the start slice and number of slices to modify.)$(P If any of the pixels within the specified rectangle of the current$(D_INLINECODE GL_READ_BUFFER) are outside the read window associated with the current rendering context, then the values obtained for those pixels are undefined.)$(P No change is made to the,, or, parameters of the specified texture array or to texel values outside the specified subregion.) | |
| * | |
| * $(P $(D_INLINECODE glPixelStore) modes affect texture images.) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target to which the texture object is bound for$(D_INLINECODE glCopyTexSubImage2D) function. Must be$(D_INLINECODE GL_TEXTURE_1D_ARRAY),$(D_INLINECODE GL_TEXTURE_2D),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_X),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_NEGATIVE_X),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_Y),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_NEGATIVE_Y),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_Z),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_NEGATIVE_Z), or$(D_INLINECODE GL_TEXTURE_RECTANGLE).) | |
| * texture = $(P Specifies the texture object name for$(D_INLINECODE glCopyTextureSubImage2D) function.) | |
| * level = $(P Specifies the level-of-detail number. Level 0 is the base image level. Level is the th mipmap reduction image.) | |
| * xoffset = $(P Specifies a texel offset in the x direction within the texture array.) | |
| * yoffset = $(P Specifies a texel offset in the y direction within the texture array.) | |
| * x = $(P Specify the window coordinates of the lower left corner of the rectangular region of pixels to be copied.) | |
| * width = $(P Specifies the width of the texture subimage.) | |
| * height = $(P Specifies the height of the texture subimage.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2012-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glCopyTexImage1D),$(D_INLINECODE glCopyTexImage2D),$(D_INLINECODE glCopyTexSubImage1D),$(D_INLINECODE glCopyTexSubImage3D),$(D_INLINECODE glPixelStore),$(D_INLINECODE glReadBuffer),$(D_INLINECODE glTexImage1D),$(D_INLINECODE glTexImage2D),$(D_INLINECODE glTexImage3D),$(D_INLINECODE glTexParameter),$(D_INLINECODE glTexSubImage1D),$(D_INLINECODE glTexSubImage2D),$(D_INLINECODE glTexSubImage3D)) | |
| */ | |
| extern(C) void function(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) @system @nogc nothrow glCopyTexSubImage2D; | |
| /// Ditto | |
| extern(C) void function(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) @system @nogc nothrow glCopyTextureSubImage2D; | |
| /** | |
| * glCopyTexSubImage3D: man4/glCopyTexSubImage3D.xml | |
| * | |
| * $(P $(D_INLINECODE glCopyTexSubImage3D) and$(D_INLINECODE glCopyTextureSubImage3D) functions replace a rectangular portion of a three-dimensional or two-dimensional array texture image with pixels from the current$(D_INLINECODE GL_READ_BUFFER) (rather than from main memory, as is the case for$(D_INLINECODE glTexSubImage3D) ).)$(P The screen-aligned pixel rectangle with lower left corner at ($(D_INLINECODE x),$(D_INLINECODE y) ) and with width$(D_INLINECODE width) and height$(D_INLINECODE height) replaces the portion of the texture array with x indices$(D_INLINECODE xoffset) through xoffset + width - 1, inclusive, and y indices$(D_INLINECODE yoffset) through yoffset + height - 1, inclusive, at z index$(D_INLINECODE zoffset) and at the mipmap level specified by$(D_INLINECODE level).)$(P The pixels in the rectangle are processed exactly as if$(D_INLINECODE glReadPixels) had been called, but the process stops just before final conversion. At this point, all pixel component values are clamped to the range 0 1 and then converted to the texture's internal format for storage in the texel array.)$(P The destination rectangle in the texture array may not include any texels outside the texture array as it was originally specified. It is not an error to specify a subtexture with zero width or height, but such a specification has no effect.)$(P If any of the pixels within the specified rectangle of the current$(D_INLINECODE GL_READ_BUFFER) are outside the read window associated with the current rendering context, then the values obtained for those pixels are undefined.)$(P No change is made to the,,,, or parameters of the specified texture array or to texel values outside the specified subregion.) | |
| * | |
| * $(P $(D_INLINECODE glPixelStore) modes affect texture images.) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target to which the texture object is bound for$(D_INLINECODE glCopyTexSubImage3D) function. Must be$(D_INLINECODE GL_TEXTURE_3D) or$(D_INLINECODE GL_TEXTURE_2D_ARRAY).) | |
| * texture = $(P Specifies the texture object name for$(D_INLINECODE glCopyTextureSubImage3D) function.) | |
| * level = $(P Specifies the level-of-detail number. Level 0 is the base image level. Level is the th mipmap reduction image.) | |
| * xoffset = $(P Specifies a texel offset in the x direction within the texture array.) | |
| * yoffset = $(P Specifies a texel offset in the y direction within the texture array.) | |
| * zoffset = $(P Specifies a texel offset in the z direction within the texture array.) | |
| * x = $(P Specify the window coordinates of the lower left corner of the rectangular region of pixels to be copied.) | |
| * width = $(P Specifies the width of the texture subimage.) | |
| * height = $(P Specifies the height of the texture subimage.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2012-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glCopyTexImage1D),$(D_INLINECODE glCopyTexImage2D),$(D_INLINECODE glCopyTexSubImage1D),$(D_INLINECODE glCopyTexSubImage2D),$(D_INLINECODE glPixelStore),$(D_INLINECODE glReadBuffer),$(D_INLINECODE glTexImage1D),$(D_INLINECODE glTexImage2D),$(D_INLINECODE glTexImage3D),$(D_INLINECODE glTexParameter),$(D_INLINECODE glTexSubImage1D),$(D_INLINECODE glTexSubImage2D),$(D_INLINECODE glTexSubImage3D)) | |
| */ | |
| extern(C) void function(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) @system @nogc nothrow glCopyTexSubImage3D; | |
| /// Ditto | |
| extern(C) void function(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) @system @nogc nothrow glCopyTextureSubImage3D; | |
| /** | |
| * glCreateBuffers: man4/glCreateBuffers.xml | |
| * | |
| * $(P $(D_INLINECODE glCreateBuffers) returns$(D_INLINECODE n) previously unused buffer names in$(D_INLINECODE buffers), each representing a new buffer object initialized as if it had been bound to an unspecified target.) | |
| * | |
| * Params: | |
| * n = $(P Specifies the number of buffer objects to create.) | |
| * buffers = $(P Specifies an array in which names of the new buffer objects are stored.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenBuffers),$(D_INLINECODE glBindBufferBase),$(D_INLINECODE glBindBufferRange),$(D_INLINECODE glMapBuffer),$(D_INLINECODE glUnmapBuffer),$(D_INLINECODE glDeleteBuffers),$(D_INLINECODE glGet),$(D_INLINECODE glIsBuffer)) | |
| */ | |
| extern(C) void function(GLsizei n, GLuint* buffers) @system @nogc nothrow glCreateBuffers; | |
| /** | |
| * glCreateFramebuffers: man4/glCreateFramebuffers.xml | |
| * | |
| * $(P $(D_INLINECODE glCreateFramebuffers) returns$(D_INLINECODE n) previously unused framebuffer names in$(D_INLINECODE framebuffers), each representing a new framebuffer object initialized to the default state.) | |
| * | |
| * Params: | |
| * n = $(P Number of framebuffer objects to create.) | |
| * framebuffers = $(P Specifies an array in which names of the new framebuffer objects are stored.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenFramebuffers),$(D_INLINECODE glBindFramebuffer),$(D_INLINECODE glFramebufferRenderbuffer),$(D_INLINECODE glFramebufferTexture),$(D_INLINECODE glFramebufferTexture1D),$(D_INLINECODE glFramebufferTexture2D),$(D_INLINECODE glFramebufferTexture3D),$(D_INLINECODE glFramebufferTextureLayer),$(D_INLINECODE glDeleteFramebuffers),$(D_INLINECODE glIsFramebuffer)) | |
| */ | |
| extern(C) void function(GLsizei n, GLuint* ids) @system @nogc nothrow glCreateFramebuffers; | |
| /** | |
| * glCreateProgram: man4/glCreateProgram.xml | |
| * | |
| * $(P $(D_INLINECODE glCreateProgram) creates an empty program object and returns a non-zero value by which it can be referenced. A program object is an object to which shader objects can be attached. This provides a mechanism to specify the shader objects that will be linked to create a program. It also provides a means for checking the compatibility of the shaders that will be used to create a program (for instance, checking the compatibility between a vertex shader and a fragment shader). When no longer needed as part of a program object, shader objects can be detached.)$(P One or more executables are created in a program object by successfully attaching shader objects to it with$(D_INLINECODE glAttachShader), successfully compiling the shader objects with$(D_INLINECODE glCompileShader), and successfully linking the program object with$(D_INLINECODE glLinkProgram). These executables are made part of current state when$(D_INLINECODE glUseProgram) is called. Program objects can be deleted by calling$(D_INLINECODE glDeleteProgram). The memory associated with the program object will be deleted when it is no longer part of current rendering state for any context.) | |
| * | |
| * $(P Like buffer and texture objects, the name space for program objects may be shared across a set of contexts, as long as the server sides of the contexts share the same address space. If the name space is shared across contexts, any attached objects and the data associated with those attached objects are shared as well.)$(P Applications are responsible for providing the synchronization across API calls when objects are accessed from different execution threads.) | |
| * | |
| * Params: | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2003-2005 3Dlabs Inc. Ltd. Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glAttachShader),$(D_INLINECODE glBindAttribLocation),$(D_INLINECODE glCreateShader),$(D_INLINECODE glDeleteProgram),$(D_INLINECODE glDetachShader),$(D_INLINECODE glLinkProgram),$(D_INLINECODE glUniform),$(D_INLINECODE glUseProgram),$(D_INLINECODE glValidateProgram)) | |
| */ | |
| extern(C) GLuint function() @system @nogc nothrow glCreateProgram; | |
| /** | |
| * glCreateProgramPipelines: man4/glCreateProgramPipelines.xml | |
| * | |
| * $(P $(D_INLINECODE glCreateProgramPipelines) returns$(D_INLINECODE n) previously unused program pipeline names in$(D_INLINECODE pipelines), each representing a new program pipeline object initialized to the default state.) | |
| * | |
| * Params: | |
| * n = $(P Number of program pipeline objects to create.) | |
| * pipelines = $(P Specifies an array in which names of the new program pipeline objects are stored.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBindProgramPipeline),$(D_INLINECODE glCreateShader),$(D_INLINECODE glCreateProgram),$(D_INLINECODE glCompileShader),$(D_INLINECODE glLinkProgram),$(D_INLINECODE glGenProgramPipelines),$(D_INLINECODE glDeleteProgramPipelines),$(D_INLINECODE glIsProgramPipeline)) | |
| */ | |
| extern(C) void function(GLsizei n, GLuint* pipelines) @system @nogc nothrow glCreateProgramPipelines; | |
| /** | |
| * glCreateQueries: man4/glCreateQueries.xml | |
| * | |
| * $(P $(D_INLINECODE glCreateQueries) returns$(D_INLINECODE n) previously unused query object names in$(D_INLINECODE ids), each representing a new query object with the specified$(D_INLINECODE target).)$(P $(D_INLINECODE target) may be one of$(D_INLINECODE GL_SAMPLES_PASSED),$(D_INLINECODE GL_ANY_SAMPLES_PASSED),$(D_INLINECODE GL_ANY_SAMPLES_PASSED_CONSERVATIVE),$(D_INLINECODE GL_TIME_ELAPSED),$(D_INLINECODE GL_TIMESTAMP),$(D_INLINECODE GL_PRIMITIVES_GENERATED) or$(D_INLINECODE GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN).) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target of each created query object.) | |
| * n = $(P Number of query objects to create.) | |
| * ids = $(P Specifies an array in which names of the new query objects are stored.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBeginQuery),$(D_INLINECODE glBeginQueryIndexed),$(D_INLINECODE glDeleteQueries),$(D_INLINECODE glEndQuery),$(D_INLINECODE glGenQueries),$(D_INLINECODE glGetQueryObject),$(D_INLINECODE glGetQueryiv),$(D_INLINECODE glIsQuery)) | |
| */ | |
| extern(C) void function(GLenum target, GLsizei n, GLuint* ids) @system @nogc nothrow glCreateQueries; | |
| /** | |
| * glCreateRenderbuffers: man4/glCreateRenderbuffers.xml | |
| * | |
| * $(P $(D_INLINECODE glCreateRenderbuffers) returns$(D_INLINECODE n) previously unused renderbuffer object names in$(D_INLINECODE renderbuffers), each representing a new renderbuffer object initialized to the default state.) | |
| * | |
| * Params: | |
| * n = $(P Number of renderbuffer objects to create.) | |
| * renderbuffers = $(P Specifies an array in which names of the new renderbuffer objects are stored.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBindRenderbuffer),$(D_INLINECODE glDeleteRenderbuffers),$(D_INLINECODE glGenRenderbuffers),$(D_INLINECODE glIsRenderbuffer),$(D_INLINECODE glRenderbufferStorage),$(D_INLINECODE glRenderbufferStorageMultisample)) | |
| */ | |
| extern(C) void function(GLsizei n, GLuint* renderbuffers) @system @nogc nothrow glCreateRenderbuffers; | |
| /** | |
| * glCreateSamplers: man4/glCreateSamplers.xml | |
| * | |
| * $(P $(D_INLINECODE glCreateSamplers) returns$(D_INLINECODE n) previously unused sampler names in$(D_INLINECODE samplers), each representing a new sampler object initialized to the default state.) | |
| * | |
| * Params: | |
| * n = $(P Number of sampler objects to create.) | |
| * samplers = $(P Specifies an array in which names of the new sampler objects are stored.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBindSampler),$(D_INLINECODE glBindTexture),$(D_INLINECODE glDeleteSamplers),$(D_INLINECODE glDeleteTextures),$(D_INLINECODE glGenSamplers),$(D_INLINECODE glGenTextures),$(D_INLINECODE glGet),$(D_INLINECODE glGetSamplerParameter),$(D_INLINECODE glSamplerParameter)) | |
| */ | |
| extern(C) void function(GLsizei n, GLuint* samplers) @system @nogc nothrow glCreateSamplers; | |
| /** | |
| * glCreateShader: man4/glCreateShader.xml | |
| * | |
| * $(P $(D_INLINECODE glCreateShader) creates an empty shader object and returns a non-zero value by which it can be referenced. A shader object is used to maintain the source code strings that define a shader.$(D_INLINECODE shaderType) indicates the type of shader to be created. Five types of shader are supported. A shader of type$(D_INLINECODE GL_COMPUTE_SHADER) is a shader that is intended to run on the programmable compute processor. A shader of type$(D_INLINECODE GL_VERTEX_SHADER) is a shader that is intended to run on the programmable vertex processor. A shader of type$(D_INLINECODE GL_TESS_CONTROL_SHADER) is a shader that is intended to run on the programmable tessellation processor in the control stage. A shader of type$(D_INLINECODE GL_TESS_EVALUATION_SHADER) is a shader that is intended to run on the programmable tessellation processor in the evaluation stage. A shader of type$(D_INLINECODE GL_GEOMETRY_SHADER) is a shader that is intended to run on the programmable geometry processor. A shader of type$(D_INLINECODE GL_FRAGMENT_SHADER) is a shader that is intended to run on the programmable fragment processor.)$(P When created, a shader object's$(D_INLINECODE GL_SHADER_TYPE) parameter is set to either$(D_INLINECODE GL_COMPUTE_SHADER),$(D_INLINECODE GL_VERTEX_SHADER),$(D_INLINECODE GL_TESS_CONTROL_SHADER),$(D_INLINECODE GL_TESS_EVALUATION_SHADER),$(D_INLINECODE GL_GEOMETRY_SHADER) or$(D_INLINECODE GL_FRAGMENT_SHADER), depending on the value of$(D_INLINECODE shaderType).) | |
| * | |
| * $(P Like buffer and texture objects, the name space for shader objects may be shared across a set of contexts, as long as the server sides of the contexts share the same address space. If the name space is shared across contexts, any attached objects and the data associated with those attached objects are shared as well.)$(P Applications are responsible for providing the synchronization across API calls when objects are accessed from different execution threads.)$(P $(D_INLINECODE GL_COMPUTE_SHADER) is available only if the GL version is 4.3 or higher.) | |
| * | |
| * Params: | |
| * shaderType = $(P Specifies the type of shader to be created. Must be one of$(D_INLINECODE GL_COMPUTE_SHADER),$(D_INLINECODE GL_VERTEX_SHADER),$(D_INLINECODE GL_TESS_CONTROL_SHADER),$(D_INLINECODE GL_TESS_EVALUATION_SHADER),$(D_INLINECODE GL_GEOMETRY_SHADER), or$(D_INLINECODE GL_FRAGMENT_SHADER).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2003-2005 3Dlabs Inc. Ltd. Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glAttachShader),$(D_INLINECODE glCompileShader),$(D_INLINECODE glDeleteShader),$(D_INLINECODE glDetachShader),$(D_INLINECODE glShaderSource)) | |
| */ | |
| extern(C) GLuint function(GLenum shaderType) @system @nogc nothrow glCreateShader; | |
| /** | |
| * glCreateShaderProgram: man4/glCreateShaderProgram.xml | |
| * | |
| * $(P $(D_INLINECODE glCreateShaderProgram) creates a program object containing compiled and linked shaders for a single stage specified by$(D_INLINECODE type).$(D_INLINECODE strings) refers to an array of$(D_INLINECODE count) strings from which to create the shader executables.)$(P $(D_INLINECODE glCreateShaderProgram) is equivalent (assuming no errors are generated) to:)$(D_INLINECODE const GLuint shader = glCreateShader(type); if (shader) { glShaderSource(shader, count, strings, NULL); glCompileShader(shader); const GLuint program = glCreateProgram(); if (program) { GLint compiled = GL_FALSE; glGetShaderiv(shader, GL_COMPILE_STATUS, &compiled); glProgramParameteri(program, GL_PROGRAM_SEPARABLE, GL_TRUE); if (compiled) { glAttachShader(program, shader); glLinkProgram(program); glDetachShader(program, shader); } \/* append-shader-info-log-to-program-info-log *\/ } glDeleteShader(shader); return program; } else { return 0; })$(P The program object created by$(D_INLINECODE glCreateShaderProgram) has its$(D_INLINECODE GL_PROGRAM_SEPARABLE) status set to$(D_INLINECODE GL_TRUE).) | |
| * | |
| * Params: | |
| * type = $(P Specifies the type of shader to create.) | |
| * count = $(P Specifies the number of source code strings in the array$(D_INLINECODE strings).) | |
| * strings = $(P Specifies the address of an array of pointers to source code strings from which to create the program object.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glCreateShader),$(D_INLINECODE glCreateProgram),$(D_INLINECODE glCompileShader),$(D_INLINECODE glLinkProgram)) | |
| */ | |
| extern(C) GLuint function(GLenum type, GLsizei count, const char** strings) @system @nogc nothrow glCreateShaderProgramv; | |
| /** | |
| * glCreateTextures: man4/glCreateTextures.xml | |
| * | |
| * $(P $(D_INLINECODE glCreateTextures) returns$(D_INLINECODE n) previously unused texture names in$(D_INLINECODE textures), each representing a new texture object of the dimensionality and type specified by$(D_INLINECODE target) and initialized to the default values for that texture type.)$(P $(D_INLINECODE target) must be one of$(D_INLINECODE GL_TEXTURE_1D),$(D_INLINECODE GL_TEXTURE_2D),$(D_INLINECODE GL_TEXTURE_3D),$(D_INLINECODE GL_TEXTURE_1D_ARRAY),$(D_INLINECODE GL_TEXTURE_2D_ARRAY),$(D_INLINECODE GL_TEXTURE_RECTANGLE),$(D_INLINECODE GL_TEXTURE_CUBE_MAP),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_ARRAY),$(D_INLINECODE GL_TEXTURE_BUFFER),$(D_INLINECODE GL_TEXTURE_2D_MULTISAMPLE) or$(D_INLINECODE GL_TEXTURE_2D_MULTISAMPLE_ARRAY).) | |
| * | |
| * Params: | |
| * target = $(P Specifies the effective texture target of each created texture.) | |
| * n = $(P Number of texture objects to create.) | |
| * textures = $(P Specifies an array in which names of the new texture objects are stored.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBindTexture),$(D_INLINECODE glDeleteTextures),$(D_INLINECODE glGenTextures),$(D_INLINECODE glGet),$(D_INLINECODE glGetTexParameter),$(D_INLINECODE glIsTexture),$(D_INLINECODE glTexBuffer),$(D_INLINECODE glTexImage1D),$(D_INLINECODE glTexImage2D),$(D_INLINECODE glTexImage2DMultisample),$(D_INLINECODE glTexImage3D),$(D_INLINECODE glTexImage3DMultisample),$(D_INLINECODE glTexParameter)) | |
| */ | |
| extern(C) void function(GLenum target, GLsizei n, GLuint* textures) @system @nogc nothrow glCreateTextures; | |
| /** | |
| * glCreateTransformFeedbacks: man4/glCreateTransformFeedbacks.xml | |
| * | |
| * $(P $(D_INLINECODE glCreateTransformFeedbacks) returns$(D_INLINECODE n) previously unused transform feedback object names in$(D_INLINECODE ids), each representing a new transform feedback object initialized to the default state.) | |
| * | |
| * Params: | |
| * n = $(P Number of transform feedback objects to create.) | |
| * ids = $(P Specifies an array in which names of the new transform feedback objects are stored.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBeginTransformFeedback),$(D_INLINECODE glBindTransformFeedback),$(D_INLINECODE glDeleteTransformFeedbacks),$(D_INLINECODE glEndTransformFeedback),$(D_INLINECODE glGenTransformFeedbacks),$(D_INLINECODE glIsTransformFeedback),$(D_INLINECODE glPauseTransformFeedback),$(D_INLINECODE glResumeTransformFeedback)) | |
| */ | |
| extern(C) void function(GLsizei n, GLuint* ids) @system @nogc nothrow glCreateTransformFeedbacks; | |
| /** | |
| * glCreateVertexArrays: man4/glCreateVertexArrays.xml | |
| * | |
| * $(P $(D_INLINECODE glCreateVertexArrays) returns$(D_INLINECODE n) previously unused vertex array object names in$(D_INLINECODE arrays), each representing a new vertex array object initialized to the default state.) | |
| * | |
| * Params: | |
| * n = $(P Number of vertex array objects to create.) | |
| * arrays = $(P Specifies an array in which names of the new vertex array objects are stored.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBindVertexArray),$(D_INLINECODE glDeleteVertexArrays)$(D_INLINECODE glEnableVertexAttribArray)$(D_INLINECODE glGenVertexArrays),$(D_INLINECODE glIsVertexArray),$(D_INLINECODE glVertexAttribPointer)) | |
| */ | |
| extern(C) void function(GLsizei n, GLuint* arrays) @system @nogc nothrow glCreateVertexArrays; | |
| /** | |
| * glCullFace: man4/glCullFace.xml | |
| * | |
| * $(P $(D_INLINECODE glCullFace) specifies whether front- or back-facing facets are culled (as specified by ) when facet culling is enabled. Facet culling is initially disabled. To enable and disable facet culling, call the$(D_INLINECODE glEnable) and$(D_INLINECODE glDisable) commands with the argument$(D_INLINECODE GL_CULL_FACE). Facets include triangles, quadrilaterals, polygons, and rectangles.)$(P $(D_INLINECODE glFrontFace) specifies which of the clockwise and counterclockwise facets are front-facing and back-facing. See$(D_INLINECODE glFrontFace).) | |
| * | |
| * $(P If$(D_INLINECODE mode) is$(D_INLINECODE GL_FRONT_AND_BACK), no facets are drawn, but other primitives such as points and lines are drawn.) | |
| * | |
| * Params: | |
| * mode = $(P Specifies whether front- or back-facing facets are candidates for culling. Symbolic constants$(D_INLINECODE GL_FRONT),$(D_INLINECODE GL_BACK), and$(D_INLINECODE GL_FRONT_AND_BACK) are accepted. The initial value is$(D_INLINECODE GL_BACK).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glEnable),$(D_INLINECODE glFrontFace)) | |
| */ | |
| extern(C) void function(GLenum mode) @system @nogc nothrow glCullFace; | |
| /** | |
| * glDebugMessageCallback: man4/glDebugMessageCallback.xml | |
| * | |
| * $(P $(D_INLINECODE glDebugMessageCallback) sets the current debug output callback function to the function whose address is given in$(D_INLINECODE callback). The callback function should have the following prototype (in C), or be otherwise compatible with such a prototype:)$(D_INLINECODE typedef void (APIENTRY *DEBUGPROC)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *message, void *userParam);)$(P This function is defined to have the same calling convention as the GL API functions. In most cases this is defined as$(D_INLINECODE APIENTRY), although it will vary depending on platform, language and compiler.)$(P Each time a debug message is generated the debug callback function will be invoked with$(D_INLINECODE source),$(D_INLINECODE type),$(D_INLINECODE id), and$(D_INLINECODE severity) associated with the message, and$(D_INLINECODE length) set to the length of debug message whose character string is in the array pointed to by$(D_INLINECODE message)$(D_INLINECODE userParam) will be set to the value passed in the$(D_INLINECODE userParam) parameter to the most recent call to$(D_INLINECODE glDebugMessageCallback).) | |
| * | |
| * $(P When the GL is in use remotely, the server may not be able to call functions in the client's address space. In such cases, the callback function may not be invoked and the user should retrieve debug messages from the context's debug message log by calling$(D_INLINECODE glGetDebugMessageLog).) | |
| * | |
| * Params: | |
| * callback = $(P The address of a callback function that will be called when a debug message is generated.) | |
| * userParam = $(P A user supplied pointer that will be passed on each invocation of$(D_INLINECODE callback).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2013-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDebugMessageControl),$(D_INLINECODE glDebugMessageInsert),$(D_INLINECODE glGetDebugMessageLog).) | |
| */ | |
| extern(C) void function(GLDEBUGPROC callback, void* userParam) @system @nogc nothrow glDebugMessageCallback; | |
| /** | |
| * glDebugMessageControl: man4/glDebugMessageControl.xml | |
| * | |
| * $(P $(D_INLINECODE glDebugMessageControl) controls the reporting of debug messages generated by a debug context. The parameters$(D_INLINECODE source),$(D_INLINECODE type) and$(D_INLINECODE severity) form a filter to select messages from the pool of potential messages generated by the GL.)$(P $(D_INLINECODE source) may be$(D_INLINECODE GL_DEBUG_SOURCE_API),$(D_INLINECODE GL_DEBUG_SOURCE_WINDOW_SYSTEM_),$(D_INLINECODE GL_DEBUG_SOURCE_SHADER_COMPILER),$(D_INLINECODE GL_DEBUG_SOURCE_THIRD_PARTY),$(D_INLINECODE GL_DEBUG_SOURCE_APPLICATION),$(D_INLINECODE GL_DEBUG_SOURCE_OTHER) to select messages generated by usage of the GL API, the window system, the shader compiler, third party tools or libraries, explicitly by the application or by some other source, respectively. It may also take the value$(D_INLINECODE GL_DONT_CARE). If$(D_INLINECODE source) is not$(D_INLINECODE GL_DONT_CARE) then only messages whose source matches$(D_INLINECODE source) will be referenced.)$(P $(D_INLINECODE type) may be one of$(D_INLINECODE GL_DEBUG_TYPE_ERROR),$(D_INLINECODE GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR),$(D_INLINECODE GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR),$(D_INLINECODE GL_DEBUG_TYPE_PORTABILITY),$(D_INLINECODE GL_DEBUG_TYPE_PERFORMANCE),$(D_INLINECODE GL_DEBUG_TYPE_MARKER),$(D_INLINECODE GL_DEBUG_TYPE_PUSH_GROUP),$(D_INLINECODE GL_DEBUG_TYPE_POP_GROUP), or$(D_INLINECODE GL_DEBUG_TYPE_OTHER) to indicate the type of messages describing GL errors, attempted use of deprecated features, triggering of undefined behavior, portability issues, performance notifications, markers, group push and pop events, and other types of messages, respectively. It may also take the value$(D_INLINECODE GL_DONT_CARE). If$(D_INLINECODE type) is not$(D_INLINECODE GL_DONT_CARE) then only messages whose type matches$(D_INLINECODE type) will be referenced.)$(P $(D_INLINECODE severity) may be one of$(D_INLINECODE GL_DEBUG_SEVERITY_LOW),$(D_INLINECODE GL_DEBUG_SEVERITY_MEDIUM), or$(D_INLINECODE GL_DEBUG_SEVERITY_HIGH) to select messages of low, medium or high severity messages or to$(D_INLINECODE GL_DEBUG_SEVERITY_NOTIFICATION) for notifications. It may also take the value$(D_INLINECODE GL_DONT_CARE). If$(D_INLINECODE severity) is not$(D_INLINECODE GL_DONT_CARE) then only messages whose severity matches$(D_INLINECODE severity) will be referenced.)$(P $(D_INLINECODE ids) contains a list of$(D_INLINECODE count) message identifiers to select specific messages from the pool of available messages. If$(D_INLINECODE count) is zero then the value of$(D_INLINECODE ids) is ignored. Otherwise, only messages appearing in this list are selected. In this case,$(D_INLINECODE source) and$(D_INLINECODE type) may not be$(D_INLINECODE GL_DONT_CARE) and$(D_INLINECODE severity) must be$(D_INLINECODE GL_DONT_CARE).)$(P If$(D_INLINECODE enabled) is$(D_INLINECODE GL_TRUE) then messages that match the filter formed by$(D_INLINECODE source),$(D_INLINECODE type),$(D_INLINECODE severity) and$(D_INLINECODE ids) are enabled. Otherwise, those messages are disabled.) | |
| * | |
| * $(P Although debug messages may be enabled in a non-debug context, the quantity and detail of such messages may be substantially inferior to those in a debug context. In particular, a valid implementation of the debug message queue in a non-debug context may produce no messages at all.)$(P $(D_INLINECODE GL_DEBUG_TYPE_MARKER),$(D_INLINECODE GL_DEBUG_TYPE_PUSH_GROUP),$(D_INLINECODE GL_DEBUG_TYPE_POP_GROUP), and$(D_INLINECODE GL_DEBUG_SEVERITY_NOTIFICATION) are available only if the GL version is 4.3 or higher.) | |
| * | |
| * Params: | |
| * source = $(P The source of debug messages to enable or disable.) | |
| * type = $(P The type of debug messages to enable or disable.) | |
| * severity = $(P The severity of debug messages to enable or disable.) | |
| * count = $(P The length of the array$(D_INLINECODE ids).) | |
| * ids = $(P The address of an array of unsigned integers contianing the ids of the messages to enable or disable.) | |
| * enabled = $(P A Boolean flag determining whether the selected messages should be enabled or disabled.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2013-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDebugMessageInsert),$(D_INLINECODE glDebugMessageCallback),$(D_INLINECODE glGetDebugMessageLog).) | |
| */ | |
| extern(C) void function(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled) @system @nogc nothrow glDebugMessageControl; | |
| /** | |
| * glDebugMessageInsert: man4/glDebugMessageInsert.xml | |
| * | |
| * $(P $(D_INLINECODE glDebugMessageInsert) inserts a user-supplied message into the debug output queue.$(D_INLINECODE source) specifies the source that will be used to classify the message and must be$(D_INLINECODE GL_DEBUG_SOURCE_APPLICATION) or$(D_INLINECODE GL_DEBUG_SOURCE_THIRD_PARTY). All other sources are reserved for use by the GL implementation.$(D_INLINECODE type) indicates the type of the message to be inserted and may be one of$(D_INLINECODE GL_DEBUG_TYPE_ERROR),$(D_INLINECODE GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR),$(D_INLINECODE GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR),$(D_INLINECODE GL_DEBUG_TYPE_PORTABILITY),$(D_INLINECODE GL_DEBUG_TYPE_PERFORMANCE),$(D_INLINECODE GL_DEBUG_TYPE_MARKER),$(D_INLINECODE GL_DEBUG_TYPE_PUSH_GROUP),$(D_INLINECODE GL_DEBUG_TYPE_POP_GROUP), or$(D_INLINECODE GL_DEBUG_TYPE_OTHER).$(D_INLINECODE severity) indicates the severity of the message and may be$(D_INLINECODE GL_DEBUG_SEVERITY_LOW),$(D_INLINECODE GL_DEBUG_SEVERITY_MEDIUM),$(D_INLINECODE GL_DEBUG_SEVERITY_HIGH) or$(D_INLINECODE GL_DEBUG_SEVERITY_NOTIFICATION).$(D_INLINECODE id) is available for application defined use and may be any value. This value will be recorded and used to identify the message.)$(P $(D_INLINECODE length) contains a count of the characters in the character array whose address is given in$(D_INLINECODE message). If$(D_INLINECODE length) is negative then$(D_INLINECODE message) is treated as a null-terminated string. The length of the message, whether specified explicitly or implicitly, must be less than or equal to the implementation defined constant$(D_INLINECODE GL_MAX_DEBUG_MESSAGE_LENGTH).) | |
| * | |
| * $(P $(D_INLINECODE GL_DEBUG_TYPE_MARKER),$(D_INLINECODE GL_DEBUG_TYPE_PUSH_GROUP),$(D_INLINECODE GL_DEBUG_TYPE_POP_GROUP), and$(D_INLINECODE GL_DEBUG_SEVERITY_NOTIFICATION) are available only if the GL version is 4.3 or higher.) | |
| * | |
| * Params: | |
| * source = $(P The source of the debug message to insert.) | |
| * type = $(P The type of the debug message insert.) | |
| * id = $(P The user-supplied identifier of the message to insert.) | |
| * severity = $(P The severity of the debug messages to insert.) | |
| * length = $(P The length string contained in the character array whose address is given by$(D_INLINECODE message).) | |
| * message = $(P The address of a character array containing the message to insert.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2013-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDebugMessageControl),$(D_INLINECODE glDebugMessageCallback),$(D_INLINECODE glGetDebugMessageLog).) | |
| */ | |
| extern(C) void function(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const char* message) @system @nogc nothrow glDebugMessageInsert; | |
| /** | |
| * glDeleteBuffers: man4/glDeleteBuffers.xml | |
| * | |
| * $(P $(D_INLINECODE glDeleteBuffers) deletes$(D_INLINECODE n) buffer objects named by the elements of the array$(D_INLINECODE buffers). After a buffer object is deleted, it has no contents, and its name is free for reuse (for example by$(D_INLINECODE glGenBuffers) ). If a buffer object that is currently bound is deleted, the binding reverts to 0 (the absence of any buffer object).)$(P $(D_INLINECODE glDeleteBuffers) silently ignores 0's and names that do not correspond to existing buffer objects.) | |
| * | |
| * Params: | |
| * n = $(P Specifies the number of buffer objects to be deleted.) | |
| * buffers = $(P Specifies an array of buffer objects to be deleted.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2005 Addison-Wesley. Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBindBuffer),$(D_INLINECODE glGenBuffers),$(D_INLINECODE glGet)) | |
| */ | |
| extern(C) void function(GLsizei n, const GLuint* buffers) @system @nogc nothrow glDeleteBuffers; | |
| /** | |
| * glDeleteFramebuffers: man4/glDeleteFramebuffers.xml | |
| * | |
| * $(P $(D_INLINECODE glDeleteFramebuffers) deletes the$(D_INLINECODE n) framebuffer objects whose names are stored in the array addressed by$(D_INLINECODE framebuffers). The name zero is reserved by the GL and is silently ignored, should it occur in$(D_INLINECODE framebuffers), as are other unused names. Once a framebuffer object is deleted, its name is again unused and it has no attachments. If a framebuffer that is currently bound to one or more of the targets$(D_INLINECODE GL_DRAW_FRAMEBUFFER) or$(D_INLINECODE GL_READ_FRAMEBUFFER) is deleted, it is as though$(D_INLINECODE glBindFramebuffer) had been executed with the corresponding$(D_INLINECODE target) and$(D_INLINECODE framebuffer) zero.) | |
| * | |
| * Params: | |
| * n = $(P Specifies the number of framebuffer objects to be deleted.) | |
| * framebuffers = $(P A pointer to an array containing$(D_INLINECODE n) framebuffer objects to be deleted.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenFramebuffers),$(D_INLINECODE glBindFramebuffer),$(D_INLINECODE glCheckFramebufferStatus)) | |
| */ | |
| extern(C) void function(GLsizei n, GLuint* framebuffers) @system @nogc nothrow glDeleteFramebuffers; | |
| /** | |
| * glDeleteProgram: man4/glDeleteProgram.xml | |
| * | |
| * $(P $(D_INLINECODE glDeleteProgram) frees the memory and invalidates the name associated with the program object specified by$(D_INLINECODE program.) This command effectively undoes the effects of a call to$(D_INLINECODE glCreateProgram).)$(P If a program object is in use as part of current rendering state, it will be flagged for deletion, but it will not be deleted until it is no longer part of current state for any rendering context. If a program object to be deleted has shader objects attached to it, those shader objects will be automatically detached but not deleted unless they have already been flagged for deletion by a previous call to$(D_INLINECODE glDeleteShader). A value of 0 for$(D_INLINECODE program) will be silently ignored.)$(P To determine whether a program object has been flagged for deletion, call$(D_INLINECODE glGetProgram) with arguments$(D_INLINECODE program) and$(D_INLINECODE GL_DELETE_STATUS).) | |
| * | |
| * Params: | |
| * program = $(P Specifies the program object to be deleted.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2003-2005 3Dlabs Inc. Ltd. Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glCreateShader),$(D_INLINECODE glDetachShader),$(D_INLINECODE glUseProgram)) | |
| */ | |
| extern(C) void function(GLuint program) @system @nogc nothrow glDeleteProgram; | |
| /** | |
| * glDeleteProgramPipelines: man4/glDeleteProgramPipelines.xml | |
| * | |
| * $(P $(D_INLINECODE glDeleteProgramPipelines) deletes the$(D_INLINECODE n) program pipeline objects whose names are stored in the array$(D_INLINECODE pipelines). Unused names in$(D_INLINECODE pipelines) are ignored, as is the name zero. After a program pipeline object is deleted, its name is again unused and it has no contents. If program pipeline object that is currently bound is deleted, the binding for that object reverts to zero and no program pipeline object becomes current.) | |
| * | |
| * Params: | |
| * n = $(P Specifies the number of program pipeline objects to delete.) | |
| * pipelines = $(P Specifies an array of names of program pipeline objects to delete.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenProgramPipelines),$(D_INLINECODE glBindProgramPipeline),$(D_INLINECODE glIsProgramPipeline),$(D_INLINECODE glUseProgramStages),$(D_INLINECODE glUseProgram)) | |
| */ | |
| extern(C) void function(GLsizei n, const GLuint* pipelines) @system @nogc nothrow glDeleteProgramPipelines; | |
| /** | |
| * glDeleteQueries: man4/glDeleteQueries.xml | |
| * | |
| * $(P $(D_INLINECODE glDeleteQueries) deletes$(D_INLINECODE n) query objects named by the elements of the array$(D_INLINECODE ids). After a query object is deleted, it has no contents, and its name is free for reuse (for example by$(D_INLINECODE glGenQueries) ).)$(P $(D_INLINECODE glDeleteQueries) silently ignores 0's and names that do not correspond to existing query objects.) | |
| * | |
| * Params: | |
| * n = $(P Specifies the number of query objects to be deleted.) | |
| * ids = $(P Specifies an array of query objects to be deleted.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2005 Addison-Wesley. Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBeginQuery),$(D_INLINECODE glEndQuery),$(D_INLINECODE glGenQueries),$(D_INLINECODE glGetQueryiv),$(D_INLINECODE glGetQueryObject)) | |
| */ | |
| extern(C) void function(GLsizei n, const GLuint* ids) @system @nogc nothrow glDeleteQueries; | |
| /** | |
| * glDeleteRenderbuffers: man4/glDeleteRenderbuffers.xml | |
| * | |
| * $(P $(D_INLINECODE glDeleteRenderbuffers) deletes the$(D_INLINECODE n) renderbuffer objects whose names are stored in the array addressed by$(D_INLINECODE renderbuffers). The name zero is reserved by the GL and is silently ignored, should it occur in$(D_INLINECODE renderbuffers), as are other unused names. Once a renderbuffer object is deleted, its name is again unused and it has no contents. If a renderbuffer that is currently bound to the target$(D_INLINECODE GL_RENDERBUFFER) is deleted, it is as though$(D_INLINECODE glBindRenderbuffer) had been executed with a$(D_INLINECODE target) of$(D_INLINECODE GL_RENDERBUFFER) and a$(D_INLINECODE name) of zero.)$(P If a renderbuffer object is attached to one or more attachment points in the currently bound framebuffer, then it as if$(D_INLINECODE glFramebufferRenderbuffer) had been called, with a$(D_INLINECODE renderbuffer) of zero for each attachment point to which this image was attached in the currently bound framebuffer. In other words, this renderbuffer object is first detached from all attachment ponits in the currently bound framebuffer. Note that the renderbuffer image is specifically detached from any non-bound framebuffers.) | |
| * | |
| * Params: | |
| * n = $(P Specifies the number of renderbuffer objects to be deleted.) | |
| * renderbuffers = $(P A pointer to an array containing$(D_INLINECODE n) renderbuffer objects to be deleted.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenRenderbuffers),$(D_INLINECODE glFramebufferRenderbuffer),$(D_INLINECODE glRenderbufferStorage),$(D_INLINECODE glRenderbufferStorageMultisample)) | |
| */ | |
| extern(C) void function(GLsizei n, GLuint* renderbuffers) @system @nogc nothrow glDeleteRenderbuffers; | |
| /** | |
| * glDeleteSamplers: man4/glDeleteSamplers.xml | |
| * | |
| * $(P $(D_INLINECODE glDeleteSamplers) deletes$(D_INLINECODE n) sampler objects named by the elements of the array$(D_INLINECODE samplers). After a sampler object is deleted, its name is again unused. If a sampler object that is currently bound to a sampler unit is deleted, it is as though$(D_INLINECODE glBindSampler) is called with unit set to the unit the sampler is bound to and sampler zero. Unused names in samplers are silently ignored, as is the reserved name zero.) | |
| * | |
| * $(P $(D_INLINECODE glDeleteSamplers) is available only if the GL version is 3.3 or higher.) | |
| * | |
| * Params: | |
| * n = $(P Specifies the number of sampler objects to be deleted.) | |
| * samplers = $(P Specifies an array of sampler objects to be deleted.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenSamplers),$(D_INLINECODE glBindSampler),$(D_INLINECODE glDeleteSamplers),$(D_INLINECODE glIsSampler)) | |
| */ | |
| extern(C) void function(GLsizei n, const GLuint* samplers) @system @nogc nothrow glDeleteSamplers; | |
| /** | |
| * glDeleteShader: man4/glDeleteShader.xml | |
| * | |
| * $(P $(D_INLINECODE glDeleteShader) frees the memory and invalidates the name associated with the shader object specified by$(D_INLINECODE shader). This command effectively undoes the effects of a call to$(D_INLINECODE glCreateShader).)$(P If a shader object to be deleted is attached to a program object, it will be flagged for deletion, but it will not be deleted until it is no longer attached to any program object, for any rendering context (i.e., it must be detached from wherever it was attached before it will be deleted). A value of 0 for$(D_INLINECODE shader) will be silently ignored.)$(P To determine whether an object has been flagged for deletion, call$(D_INLINECODE glGetShader) with arguments$(D_INLINECODE shader) and$(D_INLINECODE GL_DELETE_STATUS).) | |
| * | |
| * Params: | |
| * shader = $(P Specifies the shader object to be deleted.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2003-2005 3Dlabs Inc. Ltd. Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glCreateProgram),$(D_INLINECODE glCreateShader),$(D_INLINECODE glDetachShader),$(D_INLINECODE glUseProgram)) | |
| */ | |
| extern(C) void function(GLuint shader) @system @nogc nothrow glDeleteShader; | |
| /** | |
| * glDeleteSync: man4/glDeleteSync.xml | |
| * | |
| * $(P $(D_INLINECODE glDeleteSync) deletes the sync object specified by$(D_INLINECODE sync). If the fence command corresponding to the specified sync object has completed, or if no$(D_INLINECODE glWaitSync) or$(D_INLINECODE glClientWaitSync) commands are blocking on$(D_INLINECODE sync), the object is deleted immediately. Otherwise,$(D_INLINECODE sync) is flagged for deletion and will be deleted when it is no longer associated with any fence command and is no longer blocking any$(D_INLINECODE glWaitSync) or$(D_INLINECODE glClientWaitSync) command. In either case, after$(D_INLINECODE glDeleteSync) returns, the name$(D_INLINECODE sync) is invalid and can no longer be used to refer to the sync object.)$(P $(D_INLINECODE glDeleteSync) will silently ignore a$(D_INLINECODE sync) value of zero.) | |
| * | |
| * $(P $(D_INLINECODE glSync) is only supported if the GL version is 3.2 or greater, or if the$(D_INLINECODE ARB_sync) extension is supported.) | |
| * | |
| * Params: | |
| * sync = $(P The sync object to be deleted.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glFenceSync),$(D_INLINECODE glWaitSync),$(D_INLINECODE glClientWaitSync)) | |
| */ | |
| extern(C) void function(GLsync sync) @system @nogc nothrow glDeleteSync; | |
| /** | |
| * glDeleteTextures: man4/glDeleteTextures.xml | |
| * | |
| * $(P $(D_INLINECODE glDeleteTextures) deletes$(D_INLINECODE n) textures named by the elements of the array$(D_INLINECODE textures). After a texture is deleted, it has no contents or dimensionality, and its name is free for reuse (for example by$(D_INLINECODE glGenTextures) ). If a texture that is currently bound is deleted, the binding reverts to 0 (the default texture).)$(P $(D_INLINECODE glDeleteTextures) silently ignores 0's and names that do not correspond to existing textures.) | |
| * | |
| * Params: | |
| * n = $(P Specifies the number of textures to be deleted.) | |
| * textures = $(P Specifies an array of textures to be deleted.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBindTexture),$(D_INLINECODE glCopyTexImage1D),$(D_INLINECODE glCopyTexImage2D),$(D_INLINECODE glGenTextures),$(D_INLINECODE glGet),$(D_INLINECODE glGetTexParameter),$(D_INLINECODE glTexImage1D),$(D_INLINECODE glTexImage2D),$(D_INLINECODE glTexParameter)) | |
| */ | |
| extern(C) void function(GLsizei n, const GLuint* textures) @system @nogc nothrow glDeleteTextures; | |
| /** | |
| * glDeleteTransformFeedbacks: man4/glDeleteTransformFeedbacks.xml | |
| * | |
| * $(P $(D_INLINECODE glDeleteTransformFeedbacks) deletes the$(D_INLINECODE n) transform feedback objects whose names are stored in the array$(D_INLINECODE ids). Unused names in$(D_INLINECODE ids) are ignored, as is the name zero. After a transform feedback object is deleted, its name is again unused and it has no contents. If an active transform feedback object is deleted, its name immediately becomes unused, but the underlying object is not deleted until it is no longer active.) | |
| * | |
| * Params: | |
| * n = $(P Specifies the number of transform feedback objects to delete.) | |
| * ids = $(P Specifies an array of names of transform feedback objects to delete.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenTransformFeedbacks),$(D_INLINECODE glBindTransformFeedback),$(D_INLINECODE glIsTransformFeedback),$(D_INLINECODE glBeginTransformFeedback),$(D_INLINECODE glPauseTransformFeedback),$(D_INLINECODE glResumeTransformFeedback),$(D_INLINECODE glEndTransformFeedback)) | |
| */ | |
| extern(C) void function(GLsizei n, const GLuint* ids) @system @nogc nothrow glDeleteTransformFeedbacks; | |
| /** | |
| * glDeleteVertexArrays: man4/glDeleteVertexArrays.xml | |
| * | |
| * $(P $(D_INLINECODE glDeleteVertexArrays) deletes$(D_INLINECODE n) vertex array objects whose names are stored in the array addressed by$(D_INLINECODE arrays). Once a vertex array object is deleted it has no contents and its name is again unused. If a vertex array object that is currently bound is deleted, the binding for that object reverts to zero and the default vertex array becomes current. Unused names in$(D_INLINECODE arrays) are silently ignored, as is the value zero.) | |
| * | |
| * Params: | |
| * n = $(P Specifies the number of vertex array objects to be deleted.) | |
| * arrays = $(P Specifies the address of an array containing the$(D_INLINECODE n) names of the objects to be deleted.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenVertexArrays),$(D_INLINECODE glIsVertexArray),$(D_INLINECODE glBindVertexArray)) | |
| */ | |
| extern(C) void function(GLsizei n, const GLuint* arrays) @system @nogc nothrow glDeleteVertexArrays; | |
| /** | |
| * glDepthFunc: man4/glDepthFunc.xml | |
| * | |
| * $(P $(D_INLINECODE glDepthFunc) specifies the function used to compare each incoming pixel depth value with the depth value present in the depth buffer. The comparison is performed only if depth testing is enabled. (See$(D_INLINECODE glEnable) and$(D_INLINECODE glDisable) of$(D_INLINECODE GL_DEPTH_TEST).))$(P $(D_INLINECODE func) specifies the conditions under which the pixel will be drawn. The comparison functions are as follows:) variablelist$(P The initial value of$(D_INLINECODE func) is$(D_INLINECODE GL_LESS). Initially, depth testing is disabled. If depth testing is disabled or if no depth buffer exists, it is as if the depth test always passes.) | |
| * | |
| * $(P Even if the depth buffer exists and the depth mask is non-zero, the depth buffer is not updated if the depth test is disabled. In order to unconditionally write to the depth buffer, the depth test should be enabled and set to$(D_INLINECODE GL_ALWAYS).) | |
| * | |
| * Params: | |
| * func = $(P Specifies the depth comparison function. Symbolic constants$(D_INLINECODE GL_NEVER),$(D_INLINECODE GL_LESS),$(D_INLINECODE GL_EQUAL),$(D_INLINECODE GL_LEQUAL),$(D_INLINECODE GL_GREATER),$(D_INLINECODE GL_NOTEQUAL),$(D_INLINECODE GL_GEQUAL), and$(D_INLINECODE GL_ALWAYS) are accepted. The initial value is$(D_INLINECODE GL_LESS).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDepthRange),$(D_INLINECODE glEnable),$(D_INLINECODE glPolygonOffset)) | |
| */ | |
| extern(C) void function(GLenum func) @system @nogc nothrow glDepthFunc; | |
| /** | |
| * glDepthMask: man4/glDepthMask.xml | |
| * | |
| * $(P $(D_INLINECODE glDepthMask) specifies whether the depth buffer is enabled for writing. If$(D_INLINECODE flag) is$(D_INLINECODE GL_FALSE), depth buffer writing is disabled. Otherwise, it is enabled. Initially, depth buffer writing is enabled.) | |
| * | |
| * $(P Even if the depth buffer exists and the depth mask is non-zero, the depth buffer is not updated if the depth test is disabled. In order to unconditionally write to the depth buffer, the depth test should be enabled and set to$(D_INLINECODE GL_ALWAYS) (see$(D_INLINECODE glDepthFunc) ).) | |
| * | |
| * Params: | |
| * flag = $(P Specifies whether the depth buffer is enabled for writing. If$(D_INLINECODE flag) is$(D_INLINECODE GL_FALSE), depth buffer writing is disabled. Otherwise, it is enabled. Initially, depth buffer writing is enabled.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glColorMask),$(D_INLINECODE glDepthFunc),$(D_INLINECODE glDepthRange),$(D_INLINECODE glStencilMask)) | |
| */ | |
| extern(C) void function(GLboolean flag) @system @nogc nothrow glDepthMask; | |
| /** | |
| * glDepthRange: man4/glDepthRange.xml | |
| * | |
| * $(P After clipping and division by, depth coordinates range from -1 to 1, corresponding to the near and far clipping planes.$(D_INLINECODE glDepthRange) specifies a linear mapping of the normalized depth coordinates in this range to window depth coordinates. Regardless of the actual depth buffer implementation, window coordinate depth values are treated as though they range from 0 through 1 (like color components). Thus, the values accepted by$(D_INLINECODE glDepthRange) are both clamped to this range before they are accepted.)$(P The setting of (0,1) maps the near plane to 0 and the far plane to 1. With this mapping, the depth buffer range is fully utilized.) | |
| * | |
| * $(P It is not necessary that$(D_INLINECODE nearVal) be less than$(D_INLINECODE farVal). Reverse mappings such as nearVal = 1, and farVal = 0 are acceptable.)$(P The type of the$(D_INLINECODE nearVal) and$(D_INLINECODE farVal) parameters was changed from GLclampf to GLfloat for$(D_INLINECODE glDepthRangef) and from GLclampd to GLdouble for$(D_INLINECODE glDepthRange). This change is transparent to user code and is described in detail on the$(D_INLINECODE removedTypes) page.) | |
| * | |
| * Params: | |
| * nearVal = $(P Specifies the mapping of the near clipping plane to window coordinates. The initial value is 0.) | |
| * farVal = $(P Specifies the mapping of the far clipping plane to window coordinates. The initial value is 1.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDepthFunc),$(D_INLINECODE glPolygonOffset),$(D_INLINECODE glViewport),$(D_INLINECODE removedTypes)) | |
| */ | |
| extern(C) void function(GLdouble nearVal, GLdouble farVal) @system @nogc nothrow glDepthRange; | |
| /// Ditto | |
| extern(C) void function(GLfloat nearVal, GLfloat farVal) @system @nogc nothrow glDepthRangef; | |
| /** | |
| * glDepthRangeArray: man4/glDepthRangeArray.xml | |
| * | |
| * $(P After clipping and division by, depth coordinates range from -1 to 1, corresponding to the near and far clipping planes. Each viewport has an independent depth range specified as a linear mapping of the normalized depth coordinates in this range to window depth coordinates. Regardless of the actual depth buffer implementation, window coordinate depth values are treated as though they range from 0 through 1 (like color components).$(D_INLINECODE glDepthRangeArray) specifies a linear mapping of the normalized depth coordinates in this range to window depth coordinates for each viewport in the range [$(D_INLINECODE first),$(D_INLINECODE first) +$(D_INLINECODE count) ). Thus, the values accepted by$(D_INLINECODE glDepthRangeArray) are both clamped to this range before they are accepted.)$(P The$(D_INLINECODE first) parameter specifies the index of the first viewport whose depth range to modify and must be less than the value of$(D_INLINECODE GL_MAX_VIEWPORTS).$(D_INLINECODE count) specifies the number of viewports whose depth range to modify.$(D_INLINECODE first) +$(D_INLINECODE count) must be less than or equal to the value of$(D_INLINECODE GL_MAX_VIEWPORTS).$(D_INLINECODE v) specifies the address of an array of pairs of double precision floating point values representing the near and far values of the depth range for each viewport, in that order.)$(P The setting of (0,1) maps the near plane to 0 and the far plane to 1. With this mapping, the depth buffer range is fully utilized.) | |
| * | |
| * $(P It is not necessary that the near plane distance be less than the far plane distance. Reverse mappings such as near = 1, and far = 0 are acceptable.)$(P The type of the$(D_INLINECODE v) parameter was changed from GLclampd to GLdouble. This change is transparent to user code and is described in detail on the$(D_INLINECODE removedTypes) page.) | |
| * | |
| * Params: | |
| * first = $(P Specifies the index of the first viewport whose depth range to update.) | |
| * count = $(P Specifies the number of viewports whose depth range to update.) | |
| * v = $(P Specifies the address of an array containing the near and far values for the depth range of each modified viewport.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDepthFunc),$(D_INLINECODE glDepthRange),$(D_INLINECODE glDepthRangeIndexed),$(D_INLINECODE glPolygonOffset),$(D_INLINECODE glViewportArray),$(D_INLINECODE glViewport),$(D_INLINECODE removedTypes)) | |
| */ | |
| extern(C) void function(GLuint first, GLsizei count, const GLdouble* v) @system @nogc nothrow glDepthRangeArrayv; | |
| /** | |
| * glDepthRangeIndexed: man4/glDepthRangeIndexed.xml | |
| * | |
| * $(P After clipping and division by, depth coordinates range from -1 to 1, corresponding to the near and far clipping planes. Each viewport has an independent depth range specified as a linear mapping of the normalized depth coordinates in this range to window depth coordinates. Regardless of the actual depth buffer implementation, window coordinate depth values are treated as though they range from 0 through 1 (like color components).$(D_INLINECODE glDepthRangeIndexed) specifies a linear mapping of the normalized depth coordinates in this range to window depth coordinates for a specified viewport. Thus, the values accepted by$(D_INLINECODE glDepthRangeIndexed) are both clamped to this range before they are accepted.)$(P The$(D_INLINECODE index) parameter specifies the index of first viewport whose depth range to modify and must be less than the value of$(D_INLINECODE GL_MAX_VIEWPORTS).$(D_INLINECODE nearVal) and$(D_INLINECODE farVal) specify near and far values of the depth range for the specified viewport, respectively.)$(P The setting of (0,1) maps the near plane to 0 and the far plane to 1. With this mapping, the depth buffer range is fully utilized.) | |
| * | |
| * $(P It is not necessary that the near plane distance be less than the far plane distance. Reverse mappings such as nearVal = 1, and farVal = 0 are acceptable.)$(P The type of the$(D_INLINECODE nearVal) and$(D_INLINECODE farVal) parameters was changed from GLclampd to GLdouble. This change is transparent to user code and is described in detail on the$(D_INLINECODE removedTypes) page.) | |
| * | |
| * Params: | |
| * index = $(P Specifies the index of the viewport whose depth range to update.) | |
| * nearVal = $(P Specifies the mapping of the near clipping plane to window coordinates. The initial value is 0.) | |
| * farVal = $(P Specifies the mapping of the far clipping plane to window coordinates. The initial value is 1.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDepthFunc),$(D_INLINECODE glDepthRange),$(D_INLINECODE glDepthRangeArray),$(D_INLINECODE glPolygonOffset),$(D_INLINECODE glViewportArray),$(D_INLINECODE glViewport),$(D_INLINECODE removedTypes)) | |
| */ | |
| extern(C) void function(GLuint index, GLdouble nearVal, GLdouble farVal) @system @nogc nothrow glDepthRangeIndexed; | |
| /** | |
| * glDetachShader: man4/glDetachShader.xml | |
| * | |
| * $(P $(D_INLINECODE glDetachShader) detaches the shader object specified by$(D_INLINECODE shader) from the program object specified by$(D_INLINECODE program). This command can be used to undo the effect of the command$(D_INLINECODE glAttachShader).)$(P If$(D_INLINECODE shader) has already been flagged for deletion by a call to$(D_INLINECODE glDeleteShader) and it is not attached to any other program object, it will be deleted after it has been detached.) | |
| * | |
| * Params: | |
| * program = $(P Specifies the program object from which to detach the shader object.) | |
| * shader = $(P Specifies the shader object to be detached.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2003-2005 3Dlabs Inc. Ltd. Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glAttachShader)) | |
| */ | |
| extern(C) void function(GLuint program, GLuint shader) @system @nogc nothrow glDetachShader; | |
| /** | |
| * glDisable: man4/glEnable.xml | |
| * | |
| * $(P $(D_INLINECODE glEnable) and$(D_INLINECODE glDisable) enable and disable various capabilities. Use$(D_INLINECODE glIsEnabled) or$(D_INLINECODE glGet) to determine the current setting of any capability. The initial value for each capability with the exception of$(D_INLINECODE GL_DITHER) and$(D_INLINECODE GL_MULTISAMPLE) is$(D_INLINECODE GL_FALSE). The initial value for$(D_INLINECODE GL_DITHER) and$(D_INLINECODE GL_MULTISAMPLE) is$(D_INLINECODE GL_TRUE).)$(P Both$(D_INLINECODE glEnable) and$(D_INLINECODE glDisable) take a single argument,$(D_INLINECODE cap), which can assume one of the following values:)$(P Some of the GL's capabilities are indexed.$(D_INLINECODE glEnablei) and$(D_INLINECODE glDisablei) enable and disable indexed capabilities.) variablelist | |
| * | |
| * $(P $(D_INLINECODE GL_PRIMITIVE_RESTART) is available only if the GL version is 3.1 or greater.)$(P $(D_INLINECODE GL_TEXTURE_CUBE_MAP_SEAMLESS) is available only if the GL version is 3.2 or greater.)$(P $(D_INLINECODE GL_PRIMITIVE_RESTART_FIXED_INDEX) is available only if the GL version is 4.3 or greater.)$(P $(D_INLINECODE GL_DEBUG_OUTPUT) and$(D_INLINECODE GL_DEBUG_OUTPUT_SYNCHRONOUS) are available only if the GL version is 4.3 or greater.)$(P Any token accepted by$(D_INLINECODE glEnable) or$(D_INLINECODE glDisable) is also accepted by$(D_INLINECODE glEnablei) and$(D_INLINECODE glDisablei), but if the capability is not indexed, the maximum value that$(D_INLINECODE index) may take is zero.)$(P In general, passing an indexed capability to$(D_INLINECODE glEnable) or$(D_INLINECODE glDisable) will enable or disable that capability for all indices, resepectively.) | |
| * | |
| * Params: | |
| * cap = $(P Specifies a symbolic constant indicating a GL capability.) | |
| * index = $(P Specifies the index of the switch to disable (for$(D_INLINECODE glEnablei) and$(D_INLINECODE glDisablei) only).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2011-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glActiveTexture),$(D_INLINECODE glBlendFunc),$(D_INLINECODE glCullFace),$(D_INLINECODE glDepthFunc),$(D_INLINECODE glDepthRange),$(D_INLINECODE glGet),$(D_INLINECODE glIsEnabled),$(D_INLINECODE glLineWidth),$(D_INLINECODE glLogicOp),$(D_INLINECODE glPointSize),$(D_INLINECODE glPolygonMode),$(D_INLINECODE glPolygonOffset),$(D_INLINECODE glSampleCoverage),$(D_INLINECODE glScissor),$(D_INLINECODE glStencilFunc),$(D_INLINECODE glStencilOp),$(D_INLINECODE glTexImage1D),$(D_INLINECODE glTexImage2D),$(D_INLINECODE glTexImage3D)) | |
| */ | |
| extern(C) void function(GLenum cap) @system @nogc nothrow glEnable; | |
| /** | |
| * glDisableVertexArrayAttrib: man4/glEnableVertexAttribArray.xml | |
| * | |
| * $(P $(D_INLINECODE glEnableVertexAttribArray) and$(D_INLINECODE glEnableVertexArrayAttrib) enable the generic vertex attribute array specified by$(D_INLINECODE index).$(D_INLINECODE glEnableVertexAttribArray) uses currently bound vertex array object for the operation, whereas$(D_INLINECODE glEnableVertexArrayAttrib) updates state of the vertex array object with ID$(D_INLINECODE vaobj).)$(P $(D_INLINECODE glDisableVertexAttribArray) and$(D_INLINECODE glDisableVertexArrayAttrib) disable the generic vertex attribute array specified by$(D_INLINECODE index).$(D_INLINECODE glDisableVertexAttribArray) uses currently bound vertex array object for the operation, whereas$(D_INLINECODE glDisableVertexArrayAttrib) updates state of the vertex array object with ID$(D_INLINECODE vaobj).)$(P By default, all client-side capabilities are disabled, including all generic vertex attribute arrays. If enabled, the values in the generic vertex attribute array will be accessed and used for rendering when calls are made to vertex array commands such as$(D_INLINECODE glDrawArrays),$(D_INLINECODE glDrawElements),$(D_INLINECODE glDrawRangeElements),$(D_INLINECODE glMultiDrawElements), or$(D_INLINECODE glMultiDrawArrays).) | |
| * | |
| * Params: | |
| * vaobj = $(P Specifies the name of the vertex array object for$(D_INLINECODE glDisableVertexArrayAttrib) and$(D_INLINECODE glEnableVertexArrayAttrib) functions.) | |
| * index = $(P Specifies the index of the generic vertex attribute to be enabled or disabled.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2003-2005 3Dlabs Inc. Ltd. Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBindAttribLocation),$(D_INLINECODE glDrawArrays),$(D_INLINECODE glDrawElements),$(D_INLINECODE glDrawRangeElements),$(D_INLINECODE glMultiDrawElements),$(D_INLINECODE glVertexAttrib),$(D_INLINECODE glVertexAttribPointer)) | |
| */ | |
| extern(C) void function(GLuint index) @system @nogc nothrow glEnableVertexAttribArray; | |
| /// Ditto | |
| extern(C) void function(GLuint index) @system @nogc nothrow glDisableVertexAttribArray; | |
| /// Ditto | |
| extern(C) void function(GLuint vaobj, GLuint index) @system @nogc nothrow glEnableVertexArrayAttrib; | |
| /// Ditto | |
| extern(C) void function(GLuint vaobj, GLuint index) @system @nogc nothrow glDisableVertexArrayAttrib; | |
| /** | |
| * glDispatchCompute: man4/glDispatchCompute.xml | |
| * | |
| * $(P $(D_INLINECODE glDispatchCompute) launches one or more compute work groups. Each work group is processed by the active program object for the compute shader stage. While the individual shader invocations within a work group are executed as a unit, work groups are executed completely independently and in unspecified order.$(D_INLINECODE num_groups_x),$(D_INLINECODE num_groups_y) and$(D_INLINECODE num_groups_z) specify the number of local work groups that will be dispatched in the X, Y and Z dimensions, respectively.) | |
| * | |
| * Params: | |
| * num_groups_x = $(P The number of work groups to be launched in the X dimension.) | |
| * num_groups_y = $(P The number of work groups to be launched in the Y dimension.) | |
| * num_groups_z = $(P The number of work groups to be launched in the Z dimension.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2013-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDispatchComputeIndirect).) | |
| */ | |
| extern(C) void function(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z) @system @nogc nothrow glDispatchCompute; | |
| /** | |
| * glDispatchComputeIndirect: man4/glDispatchComputeIndirect.xml | |
| * | |
| * $(P $(D_INLINECODE glDispatchComputeIndirect) launches one or more compute work groups using parameters stored in the buffer object currently bound to the$(D_INLINECODE GL_DISPATCH_INDIRECT_BUFFER) target. Each work group is processed by the active program object for the compute shader stage. While the individual shader invocations within a work group are executed as a unit, work groups are executed completely independently and in unspecified order.$(D_INLINECODE indirect) contains the offset into the data store of the buffer object bound to the$(D_INLINECODE GL_DISPATCH_INDIRECT_BUFFER) target at which the parameters are stored.)$(P The parameters addressed by$(D_INLINECODE indirect) are packed a structure, which takes the form (in C):$(D_INLINECODE typedef struct { uint num_groups_x; uint num_groups_y; uint num_groups_z; } DispatchIndirectCommand;))$(P A call to$(D_INLINECODE glDispatchComputeIndirect) is equivalent, assuming no errors are generated, to:$(D_INLINECODE cmd = (const DispatchIndirectCommand *)indirect; glDispatchComputeIndirect(cmd->num_groups_x, cmd->num_groups_y, cmd->num_groups_z);))$(P Unlike$(D_INLINECODE glDispatchCompute), no error is generated if any of the$(D_INLINECODE num_groups_x),$(D_INLINECODE num_groups_y) or$(D_INLINECODE num_groups_z) members of the$(D_INLINECODE DispatchIndirectCommand) is larger than the value of$(D_INLINECODE GL_MAX_COMPUTE_WORK_GROUP_COUNT) for the corresponding dimension. In such circumstances, behavior is undefined and may lead to application termination.) | |
| * | |
| * Params: | |
| * indirect = $(P The offset into the buffer object currently bound to the$(D_INLINECODE GL_DISPATCH_INDIRECT_BUFFER) buffer target at which the dispatch parameters are stored.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2013-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDispatchCompute).) | |
| */ | |
| extern(C) void function(GLintptr indirect) @system @nogc nothrow glDispatchComputeIndirect; | |
| /** | |
| * glDrawArrays: man4/glDrawArrays.xml | |
| * | |
| * $(P $(D_INLINECODE glDrawArrays) specifies multiple geometric primitives with very few subroutine calls. Instead of calling a GL procedure to pass each individual vertex, normal, texture coordinate, edge flag, or color, you can prespecify separate arrays of vertices, normals, and colors and use them to construct a sequence of primitives with a single call to$(D_INLINECODE glDrawArrays).)$(P When$(D_INLINECODE glDrawArrays) is called, it uses$(D_INLINECODE count) sequential elements from each enabled array to construct a sequence of geometric primitives, beginning with element$(D_INLINECODE first).$(D_INLINECODE mode) specifies what kind of primitives are constructed and how the array elements construct those primitives.)$(P Vertex attributes that are modified by$(D_INLINECODE glDrawArrays) have an unspecified value after$(D_INLINECODE glDrawArrays) returns. Attributes that aren't modified remain well defined.) | |
| * | |
| * $(P $(D_INLINECODE GL_LINE_STRIP_ADJACENCY),$(D_INLINECODE GL_LINES_ADJACENCY),$(D_INLINECODE GL_TRIANGLE_STRIP_ADJACENCY) and$(D_INLINECODE GL_TRIANGLES_ADJACENCY) are available only if the GL version is 3.2 or greater.) | |
| * | |
| * Params: | |
| * mode = $(P Specifies what kind of primitives to render. Symbolic constants$(D_INLINECODE GL_POINTS),$(D_INLINECODE GL_LINE_STRIP),$(D_INLINECODE GL_LINE_LOOP),$(D_INLINECODE GL_LINES),$(D_INLINECODE GL_LINE_STRIP_ADJACENCY),$(D_INLINECODE GL_LINES_ADJACENCY),$(D_INLINECODE GL_TRIANGLE_STRIP),$(D_INLINECODE GL_TRIANGLE_FAN),$(D_INLINECODE GL_TRIANGLES),$(D_INLINECODE GL_TRIANGLE_STRIP_ADJACENCY),$(D_INLINECODE GL_TRIANGLES_ADJACENCY) and$(D_INLINECODE GL_PATCHES) are accepted.) | |
| * first = $(P Specifies the starting index in the enabled arrays.) | |
| * count = $(P Specifies the number of indices to be rendered.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDrawArraysInstanced),$(D_INLINECODE glDrawElements),$(D_INLINECODE glDrawRangeElements),) | |
| */ | |
| extern(C) void function(GLenum mode, GLint first, GLsizei count) @system @nogc nothrow glDrawArrays; | |
| /** | |
| * glDrawArraysIndirect: man4/glDrawArraysIndirect.xml | |
| * | |
| * $(P $(D_INLINECODE glDrawArraysIndirect) specifies multiple geometric primitives with very few subroutine calls.$(D_INLINECODE glDrawArraysIndirect) behaves similarly to$(D_INLINECODE glDrawArraysInstancedBaseInstance), execept that the parameters to$(D_INLINECODE glDrawArraysInstancedBaseInstance) are stored in memory at the address given by$(D_INLINECODE indirect).)$(P The parameters addressed by$(D_INLINECODE indirect) are packed into a structure that takes the form (in C):$(D_INLINECODE typedef struct { uint count; uint primCount; uint first; uint baseInstance; } DrawArraysIndirectCommand; const DrawArraysIndirectCommand *cmd = (const DrawArraysIndirectCommand *)indirect; glDrawArraysInstancedBaseInstance(mode, cmd->first, cmd->count, cmd->primCount, cmd->baseInstance);))$(P If a buffer is bound to the$(D_INLINECODE GL_DRAW_INDIRECT_BUFFER) binding at the time of a call to$(D_INLINECODE glDrawArraysIndirect),$(D_INLINECODE indirect) is interpreted as an offset, in basic machine units, into that buffer and the parameter data is read from the buffer rather than from client memory.)$(P In contrast to$(D_INLINECODE glDrawArraysInstancedBaseInstance), the$(D_INLINECODE first) member of the parameter structure is unsigned, and out-of-range indices do not generate an error.)$(P Vertex attributes that are modified by$(D_INLINECODE glDrawArraysIndirect) have an unspecified value after$(D_INLINECODE glDrawArraysIndirect) returns. Attributes that aren't modified remain well defined.) | |
| * | |
| * $(P The$(D_INLINECODE baseInstance) member of the$(D_INLINECODE DrawArraysIndirectCommand) structure is defined only if the GL version is 4.2 or greater. For versions of the GL less than 4.2, this parameter is present but is reserved and should be set to zero. On earlier versions of the GL, behavior is undefined if it is non-zero.) | |
| * | |
| * Params: | |
| * mode = $(P Specifies what kind of primitives to render. Symbolic constants$(D_INLINECODE GL_POINTS),$(D_INLINECODE GL_LINE_STRIP),$(D_INLINECODE GL_LINE_LOOP),$(D_INLINECODE GL_LINES),$(D_INLINECODE GL_LINE_STRIP_ADJACENCY),$(D_INLINECODE GL_LINES_ADJACENCY),$(D_INLINECODE GL_TRIANGLE_STRIP),$(D_INLINECODE GL_TRIANGLE_FAN),$(D_INLINECODE GL_TRIANGLES),$(D_INLINECODE GL_TRIANGLE_STRIP_ADJACENCY),$(D_INLINECODE GL_TRIANGLES_ADJACENCY), and$(D_INLINECODE GL_PATCHES) are accepted.) | |
| * indirect = $(P Specifies the address of a structure containing the draw parameters.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDrawArrays),$(D_INLINECODE glDrawArraysInstanced),$(D_INLINECODE glDrawElements),$(D_INLINECODE glDrawRangeElements),) | |
| */ | |
| extern(C) void function(GLenum mode, const void* indirect) @system @nogc nothrow glDrawArraysIndirect; | |
| /** | |
| * glDrawArraysInstanced: man4/glDrawArraysInstanced.xml | |
| * | |
| * $(P $(D_INLINECODE glDrawArraysInstanced) behaves identically to$(D_INLINECODE glDrawArrays) except that$(D_INLINECODE primcount) instances of the range of elements are executed and the value of the internal counter$(D_INLINECODE instanceID) advances for each iteration.$(D_INLINECODE instanceID) is an internal 32-bit integer counter that may be read by a vertex shader as$(D_INLINECODE gl_InstanceID).)$(P $(D_INLINECODE glDrawArraysInstanced) has the same effect as:$(D_INLINECODE if ( mode or count is invalid ) generate appropriate error else { for (int i = 0; i < primcount ; i++) { instanceID = i; glDrawArrays(mode, first, count); } instanceID = 0; })) | |
| * | |
| * Params: | |
| * mode = $(P Specifies what kind of primitives to render. Symbolic constants$(D_INLINECODE GL_POINTS),$(D_INLINECODE GL_LINE_STRIP),$(D_INLINECODE GL_LINE_LOOP),$(D_INLINECODE GL_LINES),$(D_INLINECODE GL_TRIANGLE_STRIP),$(D_INLINECODE GL_TRIANGLE_FAN),$(D_INLINECODE GL_TRIANGLES)$(D_INLINECODE GL_LINES_ADJACENCY),$(D_INLINECODE GL_LINE_STRIP_ADJACENCY),$(D_INLINECODE GL_TRIANGLES_ADJACENCY),$(D_INLINECODE GL_TRIANGLE_STRIP_ADJACENCY) and$(D_INLINECODE GL_PATCHES) are accepted.) | |
| * first = $(P Specifies the starting index in the enabled arrays.) | |
| * count = $(P Specifies the number of indices to be rendered.) | |
| * primcount = $(P Specifies the number of instances of the specified range of indices to be rendered.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDrawArrays),$(D_INLINECODE glDrawElementsInstanced)) | |
| */ | |
| extern(C) void function(GLenum mode, GLint first, GLsizei count, GLsizei primcount) @system @nogc nothrow glDrawArraysInstanced; | |
| /** | |
| * glDrawArraysInstancedBaseInstance: man4/glDrawArraysInstancedBaseInstance.xml | |
| * | |
| * $(P $(D_INLINECODE glDrawArraysInstancedBaseInstance) behaves identically to$(D_INLINECODE glDrawArrays) except that$(D_INLINECODE primcount) instances of the range of elements are executed and the value of the internal counter$(D_INLINECODE instanceID) advances for each iteration.$(D_INLINECODE instanceID) is an internal 32-bit integer counter that may be read by a vertex shader as$(D_INLINECODE gl_InstanceID).)$(P $(D_INLINECODE glDrawArraysInstancedBaseInstance) has the same effect as:$(D_INLINECODE if ( mode or count is invalid ) generate appropriate error else { for (int i = 0; i < primcount ; i++) { instanceID = i; glDrawArrays(mode, first, count); } instanceID = 0; }))$(P Specific vertex attributes may be classified as through the use of$(D_INLINECODE glVertexAttribDivisor). Instanced vertex attributes supply per-instance vertex data to the vertex shader. The index of the vertex fetched from the enabled instanced vertex attribute arrays is calculated as: gl _ InstanceID divisor + baseInstance. Note that$(D_INLINECODE baseinstance) does not affect the shader-visible value of$(D_INLINECODE gl_InstanceID).) | |
| * | |
| * Params: | |
| * mode = $(P Specifies what kind of primitives to render. Symbolic constants$(D_INLINECODE GL_POINTS),$(D_INLINECODE GL_LINE_STRIP),$(D_INLINECODE GL_LINE_LOOP),$(D_INLINECODE GL_LINES),$(D_INLINECODE GL_TRIANGLE_STRIP),$(D_INLINECODE GL_TRIANGLE_FAN),$(D_INLINECODE GL_TRIANGLES)$(D_INLINECODE GL_LINES_ADJACENCY),$(D_INLINECODE GL_LINE_STRIP_ADJACENCY),$(D_INLINECODE GL_TRIANGLES_ADJACENCY),$(D_INLINECODE GL_TRIANGLE_STRIP_ADJACENCY) and$(D_INLINECODE GL_PATCHES) are accepted.) | |
| * first = $(P Specifies the starting index in the enabled arrays.) | |
| * count = $(P Specifies the number of indices to be rendered.) | |
| * primcount = $(P Specifies the number of instances of the specified range of indices to be rendered.) | |
| * baseinstance = $(P Specifies the base instance for use in fetching instanced vertex attributes.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2011-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDrawArrays),$(D_INLINECODE glDrawElementsInstanced)) | |
| */ | |
| extern(C) void function(GLenum mode, GLint first, GLsizei count, GLsizei primcount, GLuint baseinstance) @system @nogc nothrow glDrawArraysInstancedBaseInstance; | |
| /** | |
| * glDrawBuffer: man4/glDrawBuffer.xml | |
| * | |
| * $(P When colors are written to the frame buffer, they are written into the color buffers specified by$(D_INLINECODE glDrawBuffer). One of the following values can be used for default framebuffer:) variablelist$(P If more than one color buffer is selected for drawing, then blending or logical operations are computed and applied independently for each color buffer and can produce different results in each buffer.)$(P Monoscopic contexts include only buffers, and stereoscopic contexts include both and buffers. Likewise, single-buffered contexts include only buffers, and double-buffered contexts include both and buffers. The context is selected at GL initialization.)$(P For framebuffer objects,$(D_INLINECODE GL_COLOR_ATTACHMENT$m$) and$(D_INLINECODE GL_NONE) enums are accepted, where$(D_INLINECODE $m$) is a value between 0 and$(D_INLINECODE GL_MAX_COLOR_ATTACHMENTS). glDrawBuffer will set the draw buffer for fragment colors other than zero to$(D_INLINECODE GL_NONE).) | |
| * | |
| * Params: | |
| * framebuffer = $(P Specifies the name of the framebuffer object for$(D_INLINECODE glNamedFramebufferDrawBuffer) function. Must be zero or the name of a framebuffer object.) | |
| * buf = $(P For default framebuffer, the argument specifies up to four color buffers to be drawn into. Symbolic constants$(D_INLINECODE GL_NONE),$(D_INLINECODE GL_FRONT_LEFT),$(D_INLINECODE GL_FRONT_RIGHT),$(D_INLINECODE GL_BACK_LEFT),$(D_INLINECODE GL_BACK_RIGHT),$(D_INLINECODE GL_FRONT),$(D_INLINECODE GL_BACK),$(D_INLINECODE GL_LEFT),$(D_INLINECODE GL_RIGHT), and$(D_INLINECODE GL_FRONT_AND_BACK) are accepted. The initial value is$(D_INLINECODE GL_FRONT) for single-buffered contexts, and$(D_INLINECODE GL_BACK) for double-buffered contexts. For framebuffer objects,$(D_INLINECODE GL_COLOR_ATTACHMENT$m$) and$(D_INLINECODE GL_NONE) enums are accepted, where$(D_INLINECODE $m$) is a value between 0 and$(D_INLINECODE GL_MAX_COLOR_ATTACHMENTS).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBlendFunc),$(D_INLINECODE glColorMask),$(D_INLINECODE glDrawBuffers),$(D_INLINECODE glLogicOp),$(D_INLINECODE glReadBuffer)) | |
| */ | |
| extern(C) void function(GLenum buf) @system @nogc nothrow glDrawBuffer; | |
| /// Ditto | |
| extern(C) void function(GLuint framebuffer, GLenum buf) @system @nogc nothrow glNamedFramebufferDrawBuffer; | |
| /** | |
| * glDrawBuffers: man4/glDrawBuffers.xml | |
| * | |
| * $(P $(D_INLINECODE glDrawBuffers) and$(D_INLINECODE glNamedFramebufferDrawBuffers) define an array of buffers into which outputs from the fragment shader data will be written. If a fragment shader writes a value to one or more user defined output variables, then the value of each variable will be written into the buffer specified at a location within$(D_INLINECODE bufs) corresponding to the location assigned to that user defined output. The draw buffer used for user defined outputs assigned to locations greater than or equal to$(D_INLINECODE n) is implicitly set to$(D_INLINECODE GL_NONE) and any data written to such an output is discarded.)$(P For$(D_INLINECODE glDrawBuffers), the framebuffer object that is bound to the$(D_INLINECODE GL_DRAW_FRAMEBUFFER) binding will be used. For$(D_INLINECODE glNamedFramebufferDrawBuffers),$(D_INLINECODE framebuffer) is the name of the framebuffer object. If$(D_INLINECODE framebuffer) is zero, then the default framebuffer is affected.)$(P The symbolic constants contained in$(D_INLINECODE bufs) may be any of the following:) variablelist$(P Except for$(D_INLINECODE GL_NONE), the preceding symbolic constants may not appear more than once in$(D_INLINECODE bufs). The maximum number of draw buffers supported is implementation dependent and can be queried by calling$(D_INLINECODE glGet) with the argument$(D_INLINECODE GL_MAX_DRAW_BUFFERS).) | |
| * | |
| * $(P The symbolic constants$(D_INLINECODE GL_FRONT),$(D_INLINECODE GL_BACK),$(D_INLINECODE GL_LEFT),$(D_INLINECODE GL_RIGHT), and$(D_INLINECODE GL_FRONT_AND_BACK) are not allowed in the$(D_INLINECODE bufs) array since they may refer to multiple buffers.)$(P If a fragment shader does not write to a user defined output variable, the values of the fragment colors following shader execution are undefined. For each fragment generated in this situation, a different value may be written into each of the buffers specified by$(D_INLINECODE bufs).) | |
| * | |
| * Params: | |
| * framebuffer = $(P Specifies the name of the framebuffer object for$(D_INLINECODE glNamedFramebufferDrawBuffers).) | |
| * n = $(P Specifies the number of buffers in$(D_INLINECODE bufs).) | |
| * bufs = $(P Points to an array of symbolic constants specifying the buffers into which fragment colors or data values will be written.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2003-2005 3Dlabs Inc. Ltd. Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBlendFunc),$(D_INLINECODE glColorMask),$(D_INLINECODE glDrawBuffers),$(D_INLINECODE glLogicOp),$(D_INLINECODE glReadBuffer)) | |
| */ | |
| extern(C) void function(GLsizei n, const GLenum* bufs) @system @nogc nothrow glDrawBuffers; | |
| /// Ditto | |
| extern(C) void function(GLuint framebuffer, GLsizei n, const GLenum* bufs) @system @nogc nothrow glNamedFramebufferDrawBuffers; | |
| /** | |
| * glDrawElements: man4/glDrawElements.xml | |
| * | |
| * $(P $(D_INLINECODE glDrawElements) specifies multiple geometric primitives with very few subroutine calls. Instead of calling a GL function to pass each individual vertex, normal, texture coordinate, edge flag, or color, you can prespecify separate arrays of vertices, normals, and so on, and use them to construct a sequence of primitives with a single call to$(D_INLINECODE glDrawElements).)$(P When$(D_INLINECODE glDrawElements) is called, it uses$(D_INLINECODE count) sequential elements from an enabled array, starting at$(D_INLINECODE indices) to construct a sequence of geometric primitives.$(D_INLINECODE mode) specifies what kind of primitives are constructed and how the array elements construct these primitives. If more than one array is enabled, each is used.)$(P Vertex attributes that are modified by$(D_INLINECODE glDrawElements) have an unspecified value after$(D_INLINECODE glDrawElements) returns. Attributes that aren't modified maintain their previous values.) | |
| * | |
| * $(P $(D_INLINECODE GL_LINE_STRIP_ADJACENCY),$(D_INLINECODE GL_LINES_ADJACENCY),$(D_INLINECODE GL_TRIANGLE_STRIP_ADJACENCY) and$(D_INLINECODE GL_TRIANGLES_ADJACENCY) are available only if the GL version is 3.2 or greater.) | |
| * | |
| * Params: | |
| * mode = $(P Specifies what kind of primitives to render. Symbolic constants$(D_INLINECODE GL_POINTS),$(D_INLINECODE GL_LINE_STRIP),$(D_INLINECODE GL_LINE_LOOP),$(D_INLINECODE GL_LINES),$(D_INLINECODE GL_LINE_STRIP_ADJACENCY),$(D_INLINECODE GL_LINES_ADJACENCY),$(D_INLINECODE GL_TRIANGLE_STRIP),$(D_INLINECODE GL_TRIANGLE_FAN),$(D_INLINECODE GL_TRIANGLES),$(D_INLINECODE GL_TRIANGLE_STRIP_ADJACENCY),$(D_INLINECODE GL_TRIANGLES_ADJACENCY) and$(D_INLINECODE GL_PATCHES) are accepted.) | |
| * count = $(P Specifies the number of elements to be rendered.) | |
| * type = $(P Specifies the type of the values in$(D_INLINECODE indices). Must be one of$(D_INLINECODE GL_UNSIGNED_BYTE),$(D_INLINECODE GL_UNSIGNED_SHORT), or$(D_INLINECODE GL_UNSIGNED_INT).) | |
| * indices = $(P Specifies a pointer to the location where the indices are stored.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDrawArrays),$(D_INLINECODE glDrawElementsInstanced),$(D_INLINECODE glDrawElementsBaseVertex),$(D_INLINECODE glDrawRangeElements)) | |
| */ | |
| extern(C) void function(GLenum mode, GLsizei count, GLenum type, const GLvoid* indices) @system @nogc nothrow glDrawElements; | |
| /** | |
| * glDrawElementsBaseVertex: man4/glDrawElementsBaseVertex.xml | |
| * | |
| * $(P $(D_INLINECODE glDrawElementsBaseVertex) behaves identically to$(D_INLINECODE glDrawElements) except that the th element transferred by the corresponding draw call will be taken from element$(D_INLINECODE indices) [i] +$(D_INLINECODE basevertex) of each enabled array. If the resulting value is larger than the maximum value representable by$(D_INLINECODE type), it is as if the calculation were upconverted to 32-bit unsigned integers (with wrapping on overflow conditions). The operation is undefined if the sum would be negative.) | |
| * | |
| * $(P $(D_INLINECODE glDrawElementsBaseVertex) is only supported if the GL version is 3.2 or greater, or if the$(D_INLINECODE ARB_draw_elements_base_vertex) extension is supported.) | |
| * | |
| * Params: | |
| * mode = $(P Specifies what kind of primitives to render. Symbolic constants$(D_INLINECODE GL_POINTS),$(D_INLINECODE GL_LINE_STRIP),$(D_INLINECODE GL_LINE_LOOP),$(D_INLINECODE GL_LINES),$(D_INLINECODE GL_TRIANGLE_STRIP),$(D_INLINECODE GL_TRIANGLE_FAN),$(D_INLINECODE GL_TRIANGLES),$(D_INLINECODE GL_LINES_ADJACENCY),$(D_INLINECODE GL_LINE_STRIP_ADJACENCY),$(D_INLINECODE GL_TRIANGLES_ADJACENCY),$(D_INLINECODE GL_TRIANGLE_STRIP_ADJACENCY) and$(D_INLINECODE GL_PATCHES) are accepted.) | |
| * count = $(P Specifies the number of elements to be rendered.) | |
| * type = $(P Specifies the type of the values in indices. Must be one of$(D_INLINECODE GL_UNSIGNED_BYTE),$(D_INLINECODE GL_UNSIGNED_SHORT), or$(D_INLINECODE GL_UNSIGNED_INT).) | |
| * indices = $(P Specifies a pointer to the location where the indices are stored.) | |
| * basevertex = $(P Specifies a constant that should be added to each element of$(D_INLINECODE indices) when chosing elements from the enabled vertex arrays.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDrawElements),$(D_INLINECODE glDrawRangeElements),$(D_INLINECODE glDrawRangeElementsBaseVertex),$(D_INLINECODE glDrawElementsInstanced),$(D_INLINECODE glDrawElementsInstancedBaseVertex)) | |
| */ | |
| extern(C) void function(GLenum mode, GLsizei count, GLenum type, GLvoid* indices, GLint basevertex) @system @nogc nothrow glDrawElementsBaseVertex; | |
| /** | |
| * glDrawElementsIndirect: man4/glDrawElementsIndirect.xml | |
| * | |
| * $(P $(D_INLINECODE glDrawElementsIndirect) specifies multiple indexed geometric primitives with very few subroutine calls.$(D_INLINECODE glDrawElementsIndirect) behaves similarly to$(D_INLINECODE glDrawElementsInstancedBaseVertexBaseInstance), execpt that the parameters to$(D_INLINECODE glDrawElementsInstancedBaseVertexBaseInstance) are stored in memory at the address given by$(D_INLINECODE indirect).)$(P The parameters addressed by$(D_INLINECODE indirect) are packed into a structure that takes the form (in C):$(D_INLINECODE typedef struct { uint count; uint primCount; uint firstIndex; uint baseVertex; uint baseInstance; } DrawElementsIndirectCommand;))$(P $(D_INLINECODE glDrawElementsIndirect) is equivalent to:)$(P $(D_INLINECODE void glDrawElementsIndirect(GLenum mode, GLenum type, const void * indirect) { const DrawElementsIndirectCommand *cmd = (const DrawElementsIndirectCommand *)indirect; glDrawElementsInstancedBaseVertexBaseInstance(mode, cmd->count, type, cmd->firstIndex + size-of-type, cmd->primCount, cmd->baseVertex, cmd->baseInstance); }))$(P If a buffer is bound to the$(D_INLINECODE GL_DRAW_INDIRECT_BUFFER) binding at the time of a call to$(D_INLINECODE glDrawElementsIndirect),$(D_INLINECODE indirect) is interpreted as an offset, in basic machine units, into that buffer and the parameter data is read from the buffer rather than from client memory.)$(P Note that indices stored in client memory are not supported. If no buffer is bound to the$(D_INLINECODE GL_ELEMENT_ARRAY_BUFFER) binding, an error will be generated.)$(P The results of the operation are undefined if the$(D_INLINECODE reservedMustBeZero) member of the parameter structure is non-zero. However, no error is generated in this case.)$(P Vertex attributes that are modified by$(D_INLINECODE glDrawElementsIndirect) have an unspecified value after$(D_INLINECODE glDrawElementsIndirect) returns. Attributes that aren't modified remain well defined.) | |
| * | |
| * $(P The$(D_INLINECODE baseInstance) member of the$(D_INLINECODE DrawElementsIndirectCommand) structure is defined only if the GL version is 4.2 or greater. For versions of the GL less than 4.2, this parameter is present but is reserved and should be set to zero. On earlier versions of the GL, behavior is undefined if it is non-zero.) | |
| * | |
| * Params: | |
| * mode = $(P Specifies what kind of primitives to render. Symbolic constants$(D_INLINECODE GL_POINTS),$(D_INLINECODE GL_LINE_STRIP),$(D_INLINECODE GL_LINE_LOOP),$(D_INLINECODE GL_LINES),$(D_INLINECODE GL_LINE_STRIP_ADJACENCY),$(D_INLINECODE GL_LINES_ADJACENCY),$(D_INLINECODE GL_TRIANGLE_STRIP),$(D_INLINECODE GL_TRIANGLE_FAN),$(D_INLINECODE GL_TRIANGLES),$(D_INLINECODE GL_TRIANGLE_STRIP_ADJACENCY),$(D_INLINECODE GL_TRIANGLES_ADJACENCY), and$(D_INLINECODE GL_PATCHES) are accepted.) | |
| * type = $(P Specifies the type of data in the buffer bound to the$(D_INLINECODE GL_ELEMENT_ARRAY_BUFFER) binding.) | |
| * indirect = $(P Specifies the address of a structure containing the draw parameters.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDrawArrays),$(D_INLINECODE glDrawArraysInstanced),$(D_INLINECODE glDrawArraysIndirect),$(D_INLINECODE glDrawElements),$(D_INLINECODE glDrawRangeElements),) | |
| */ | |
| extern(C) void function(GLenum mode, GLenum type, const void* indirect) @system @nogc nothrow glDrawElementsIndirect; | |
| /** | |
| * glDrawElementsInstanced: man4/glDrawElementsInstanced.xml | |
| * | |
| * $(P $(D_INLINECODE glDrawElementsInstanced) behaves identically to$(D_INLINECODE glDrawElements) except that$(D_INLINECODE primcount) instances of the set of elements are executed and the value of the internal counter$(D_INLINECODE instanceID) advances for each iteration.$(D_INLINECODE instanceID) is an internal 32-bit integer counter that may be read by a vertex shader as$(D_INLINECODE gl_InstanceID).)$(P $(D_INLINECODE glDrawElementsInstanced) has the same effect as:$(D_INLINECODE if (mode, count, or type is invalid ) generate appropriate error else { for (int i = 0; i < primcount ; i++) { instanceID = i; glDrawElements(mode, count, type, indices); } instanceID = 0; })) | |
| * | |
| * $(P $(D_INLINECODE glDrawElementsInstanced) is available only if the GL version is 3.1 or greater.)$(P $(D_INLINECODE GL_LINE_STRIP_ADJACENCY),$(D_INLINECODE GL_LINES_ADJACENCY),$(D_INLINECODE GL_TRIANGLE_STRIP_ADJACENCY) and$(D_INLINECODE GL_TRIANGLES_ADJACENCY) are available only if the GL version is 3.2 or greater.) | |
| * | |
| * Params: | |
| * mode = $(P Specifies what kind of primitives to render. Symbolic constants$(D_INLINECODE GL_POINTS),$(D_INLINECODE GL_LINE_STRIP),$(D_INLINECODE GL_LINE_LOOP),$(D_INLINECODE GL_LINES),$(D_INLINECODE GL_LINE_STRIP_ADJACENCY),$(D_INLINECODE GL_LINES_ADJACENCY),$(D_INLINECODE GL_TRIANGLE_STRIP),$(D_INLINECODE GL_TRIANGLE_FAN),$(D_INLINECODE GL_TRIANGLES),$(D_INLINECODE GL_TRIANGLE_STRIP_ADJACENCY),$(D_INLINECODE GL_TRIANGLES_ADJACENCY) and$(D_INLINECODE GL_PATCHES) are accepted.) | |
| * count = $(P Specifies the number of elements to be rendered.) | |
| * type = $(P Specifies the type of the values in$(D_INLINECODE indices). Must be one of$(D_INLINECODE GL_UNSIGNED_BYTE),$(D_INLINECODE GL_UNSIGNED_SHORT), or$(D_INLINECODE GL_UNSIGNED_INT).) | |
| * indices = $(P Specifies a pointer to the location where the indices are stored.) | |
| * primcount = $(P Specifies the number of instances of the specified range of indices to be rendered.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDrawElements),$(D_INLINECODE glDrawArraysInstanced)) | |
| */ | |
| extern(C) void function(GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount) @system @nogc nothrow glDrawElementsInstanced; | |
| /** | |
| * glDrawElementsInstancedBaseInstance: man4/glDrawElementsInstancedBaseInstance.xml | |
| * | |
| * $(P $(D_INLINECODE glDrawElementsInstancedBaseInstance) behaves identically to$(D_INLINECODE glDrawElements) except that$(D_INLINECODE primcount) instances of the set of elements are executed and the value of the internal counter$(D_INLINECODE instanceID) advances for each iteration.$(D_INLINECODE instanceID) is an internal 32-bit integer counter that may be read by a vertex shader as$(D_INLINECODE gl_InstanceID).)$(P $(D_INLINECODE glDrawElementsInstancedBaseInstance) has the same effect as:$(D_INLINECODE if (mode, count, or type is invalid ) generate appropriate error else { for (int i = 0; i < primcount ; i++) { instanceID = i; glDrawElements(mode, count, type, indices); } instanceID = 0; }))$(P Specific vertex attributes may be classified as through the use of$(D_INLINECODE glVertexAttribDivisor). Instanced vertex attributes supply per-instance vertex data to the vertex shader. The index of the vertex fetched from the enabled instanced vertex attribute arrays is calculated as gl _ InstanceID divisor + baseInstance. Note that$(D_INLINECODE baseinstance) does not affect the shader-visible value of$(D_INLINECODE gl_InstanceID).) | |
| * | |
| * $(P $(D_INLINECODE glDrawElementsInstancedBaseInstance) is available only if the GL version is 4.2 or greater.)$(P $(D_INLINECODE GL_LINE_STRIP_ADJACENCY),$(D_INLINECODE GL_LINES_ADJACENCY),$(D_INLINECODE GL_TRIANGLE_STRIP_ADJACENCY) and$(D_INLINECODE GL_TRIANGLES_ADJACENCY) are available only if the GL version is 3.2 or greater.) | |
| * | |
| * Params: | |
| * mode = $(P Specifies what kind of primitives to render. Symbolic constants$(D_INLINECODE GL_POINTS),$(D_INLINECODE GL_LINE_STRIP),$(D_INLINECODE GL_LINE_LOOP),$(D_INLINECODE GL_LINES),$(D_INLINECODE GL_LINE_STRIP_ADJACENCY),$(D_INLINECODE GL_LINES_ADJACENCY),$(D_INLINECODE GL_TRIANGLE_STRIP),$(D_INLINECODE GL_TRIANGLE_FAN),$(D_INLINECODE GL_TRIANGLES),$(D_INLINECODE GL_TRIANGLE_STRIP_ADJACENCY),$(D_INLINECODE GL_TRIANGLES_ADJACENCY) and$(D_INLINECODE GL_PATCHES) are accepted.) | |
| * count = $(P Specifies the number of elements to be rendered.) | |
| * type = $(P Specifies the type of the values in$(D_INLINECODE indices). Must be one of$(D_INLINECODE GL_UNSIGNED_BYTE),$(D_INLINECODE GL_UNSIGNED_SHORT), or$(D_INLINECODE GL_UNSIGNED_INT).) | |
| * indices = $(P Specifies a pointer to the location where the indices are stored.) | |
| * primcount = $(P Specifies the number of instances of the specified range of indices to be rendered.) | |
| * baseinstance = $(P Specifies the base instance for use in fetching instanced vertex attributes.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2011-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDrawElements),$(D_INLINECODE glDrawArraysInstanced)) | |
| */ | |
| extern(C) void function(GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount, GLuint baseinstance) @system @nogc nothrow glDrawElementsInstancedBaseInstance; | |
| /** | |
| * glDrawElementsInstancedBaseVertex: man4/glDrawElementsInstancedBaseVertex.xml | |
| * | |
| * $(P $(D_INLINECODE glDrawElementsInstancedBaseVertex) behaves identically to$(D_INLINECODE glDrawElementsInstanced) except that the th element transferred by the corresponding draw call will be taken from element$(D_INLINECODE indices) [i] +$(D_INLINECODE basevertex) of each enabled array. If the resulting value is larger than the maximum value representable by$(D_INLINECODE type), it is as if the calculation were upconverted to 32-bit unsigned integers (with wrapping on overflow conditions). The operation is undefined if the sum would be negative.) | |
| * | |
| * $(P $(D_INLINECODE glDrawElementsInstancedBaseVertex) is only supported if the GL version is 3.2 or greater.) | |
| * | |
| * Params: | |
| * mode = $(P Specifies what kind of primitives to render. Symbolic constants$(D_INLINECODE GL_POINTS),$(D_INLINECODE GL_LINE_STRIP),$(D_INLINECODE GL_LINE_LOOP),$(D_INLINECODE GL_LINES),$(D_INLINECODE GL_TRIANGLE_STRIP),$(D_INLINECODE GL_TRIANGLE_FAN),$(D_INLINECODE GL_TRIANGLES),$(D_INLINECODE GL_LINES_ADJACENCY),$(D_INLINECODE GL_LINE_STRIP_ADJACENCY),$(D_INLINECODE GL_TRIANGLES_ADJACENCY),$(D_INLINECODE GL_TRIANGLE_STRIP_ADJACENCY) and$(D_INLINECODE GL_PATCHES) are accepted.) | |
| * count = $(P Specifies the number of elements to be rendered.) | |
| * type = $(P Specifies the type of the values in indices. Must be one of$(D_INLINECODE GL_UNSIGNED_BYTE),$(D_INLINECODE GL_UNSIGNED_SHORT), or$(D_INLINECODE GL_UNSIGNED_INT).) | |
| * indices = $(P Specifies a pointer to the location where the indices are stored.) | |
| * primcount = $(P Specifies the number of instances of the indexed geometry that should be drawn.) | |
| * basevertex = $(P Specifies a constant that should be added to each element of$(D_INLINECODE indices) when chosing elements from the enabled vertex arrays.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDrawElements),$(D_INLINECODE glDrawRangeElements),$(D_INLINECODE glDrawRangeElementsBaseVertex),$(D_INLINECODE glDrawElementsInstanced),$(D_INLINECODE glDrawElementsInstancedBaseVertex)) | |
| */ | |
| extern(C) void function(GLenum mode, GLsizei count, GLenum type, GLvoid* indices, GLsizei primcount, GLint basevertex) @system @nogc nothrow glDrawElementsInstancedBaseVertex; | |
| /** | |
| * glDrawElementsInstancedBaseVertexBaseInstance: man4/glDrawElementsInstancedBaseVertexBaseInstance.xml | |
| * | |
| * $(P $(D_INLINECODE glDrawElementsInstancedBaseVertexBaseInstance) behaves identically to$(D_INLINECODE glDrawElementsInstanced) except that the th element transferred by the corresponding draw call will be taken from element$(D_INLINECODE indices) [i] +$(D_INLINECODE basevertex) of each enabled array. If the resulting value is larger than the maximum value representable by$(D_INLINECODE type), it is as if the calculation were upconverted to 32-bit unsigned integers (with wrapping on overflow conditions). The operation is undefined if the sum would be negative. The$(D_INLINECODE basevertex) has no effect on the shader-visible value of$(D_INLINECODE gl_VertexID).)$(P Specific vertex attributes may be classified as through the use of$(D_INLINECODE glVertexAttribDivisor). Instanced vertex attributes supply per-instance vertex data to the vertex shader. The index of the vertex fetched from the enabled instanced vertex attribute arrays is calculated as gl _ InstanceID divisor + baseInstance. Note that$(D_INLINECODE baseinstance) does not affect the shader-visible value of$(D_INLINECODE gl_InstanceID).) | |
| * | |
| * $(P $(D_INLINECODE glDrawElementsInstancedBaseVertex) is only supported if the GL version is 3.2 or greater.) | |
| * | |
| * Params: | |
| * mode = $(P Specifies what kind of primitives to render. Symbolic constants$(D_INLINECODE GL_POINTS),$(D_INLINECODE GL_LINE_STRIP),$(D_INLINECODE GL_LINE_LOOP),$(D_INLINECODE GL_LINES),$(D_INLINECODE GL_TRIANGLE_STRIP),$(D_INLINECODE GL_TRIANGLE_FAN),$(D_INLINECODE GL_TRIANGLES),$(D_INLINECODE GL_LINES_ADJACENCY),$(D_INLINECODE GL_LINE_STRIP_ADJACENCY),$(D_INLINECODE GL_TRIANGLES_ADJACENCY),$(D_INLINECODE GL_TRIANGLE_STRIP_ADJACENCY) and$(D_INLINECODE GL_PATCHES) are accepted.) | |
| * count = $(P Specifies the number of elements to be rendered.) | |
| * type = $(P Specifies the type of the values in indices. Must be one of$(D_INLINECODE GL_UNSIGNED_BYTE),$(D_INLINECODE GL_UNSIGNED_SHORT), or$(D_INLINECODE GL_UNSIGNED_INT).) | |
| * indices = $(P Specifies a pointer to the location where the indices are stored.) | |
| * primcount = $(P Specifies the number of instances of the indexed geometry that should be drawn.) | |
| * basevertex = $(P Specifies a constant that should be added to each element of$(D_INLINECODE indices) when chosing elements from the enabled vertex arrays.) | |
| * baseinstance = $(P Specifies the base instance for use in fetching instanced vertex attributes.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2011-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDrawElements),$(D_INLINECODE glDrawRangeElements),$(D_INLINECODE glDrawRangeElementsBaseVertex),$(D_INLINECODE glDrawElementsInstanced),$(D_INLINECODE glDrawElementsInstancedBaseVertex)) | |
| */ | |
| extern(C) void function(GLenum mode, GLsizei count, GLenum type, GLvoid* indices, GLsizei primcount, GLint basevertex, GLuint baseinstance) @system @nogc nothrow glDrawElementsInstancedBaseVertexBaseInstance; | |
| /** | |
| * glDrawRangeElements: man4/glDrawRangeElements.xml | |
| * | |
| * $(P $(D_INLINECODE glDrawRangeElements) is a restricted form of$(D_INLINECODE glDrawElements).$(D_INLINECODE mode),$(D_INLINECODE start),$(D_INLINECODE end), and$(D_INLINECODE count) match the corresponding arguments to$(D_INLINECODE glDrawElements), with the additional constraint that all values in the arrays$(D_INLINECODE count) must lie between$(D_INLINECODE start) and$(D_INLINECODE end), inclusive.)$(P Implementations denote recommended maximum amounts of vertex and index data, which may be queried by calling$(D_INLINECODE glGet) with argument$(D_INLINECODE GL_MAX_ELEMENTS_VERTICES) and$(D_INLINECODE GL_MAX_ELEMENTS_INDICES). If end - start + 1 is greater than the value of$(D_INLINECODE GL_MAX_ELEMENTS_VERTICES), or if$(D_INLINECODE count) is greater than the value of$(D_INLINECODE GL_MAX_ELEMENTS_INDICES), then the call may operate at reduced performance. There is no requirement that all vertices in the range start end be referenced. However, the implementation may partially process unused vertices, reducing performance from what could be achieved with an optimal index set.)$(P When$(D_INLINECODE glDrawRangeElements) is called, it uses$(D_INLINECODE count) sequential elements from an enabled array, starting at$(D_INLINECODE start) to construct a sequence of geometric primitives.$(D_INLINECODE mode) specifies what kind of primitives are constructed, and how the array elements construct these primitives. If more than one array is enabled, each is used.)$(P Vertex attributes that are modified by$(D_INLINECODE glDrawRangeElements) have an unspecified value after$(D_INLINECODE glDrawRangeElements) returns. Attributes that aren't modified maintain their previous values.) | |
| * | |
| * $(P $(D_INLINECODE GL_LINE_STRIP_ADJACENCY),$(D_INLINECODE GL_LINES_ADJACENCY),$(D_INLINECODE GL_TRIANGLE_STRIP_ADJACENCY) and$(D_INLINECODE GL_TRIANGLES_ADJACENCY) are available only if the GL version is 3.2 or greater.) | |
| * | |
| * Params: | |
| * mode = $(P Specifies what kind of primitives to render. Symbolic constants$(D_INLINECODE GL_POINTS),$(D_INLINECODE GL_LINE_STRIP),$(D_INLINECODE GL_LINE_LOOP),$(D_INLINECODE GL_LINES),$(D_INLINECODE GL_LINE_STRIP_ADJACENCY),$(D_INLINECODE GL_LINES_ADJACENCY),$(D_INLINECODE GL_TRIANGLE_STRIP),$(D_INLINECODE GL_TRIANGLE_FAN),$(D_INLINECODE GL_TRIANGLES),$(D_INLINECODE GL_TRIANGLE_STRIP_ADJACENCY),$(D_INLINECODE GL_TRIANGLES_ADJACENCY) and$(D_INLINECODE GL_PATCHES) are accepted.) | |
| * start = $(P Specifies the minimum array index contained in$(D_INLINECODE indices).) | |
| * end = $(P Specifies the maximum array index contained in$(D_INLINECODE indices).) | |
| * count = $(P Specifies the number of elements to be rendered.) | |
| * type = $(P Specifies the type of the values in$(D_INLINECODE indices). Must be one of$(D_INLINECODE GL_UNSIGNED_BYTE),$(D_INLINECODE GL_UNSIGNED_SHORT), or$(D_INLINECODE GL_UNSIGNED_INT).) | |
| * indices = $(P Specifies a pointer to the location where the indices are stored.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDrawArrays),$(D_INLINECODE glDrawElements),$(D_INLINECODE glDrawElementsBaseVertex)) | |
| */ | |
| extern(C) void function(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid* indices) @system @nogc nothrow glDrawRangeElements; | |
| /** | |
| * glDrawRangeElementsBaseVertex: man4/glDrawRangeElementsBaseVertex.xml | |
| * | |
| * $(P $(D_INLINECODE glDrawRangeElementsBaseVertex) is a restricted form of$(D_INLINECODE glDrawElementsBaseVertex).$(D_INLINECODE mode),$(D_INLINECODE start),$(D_INLINECODE end),$(D_INLINECODE count) and$(D_INLINECODE basevertex) match the corresponding arguments to$(D_INLINECODE glDrawElementsBaseVertex), with the additional constraint that all values in the array$(D_INLINECODE indices) must lie between$(D_INLINECODE start) and$(D_INLINECODE end), inclusive, prior to adding$(D_INLINECODE basevertex). Index values lying outside the range [$(D_INLINECODE start),$(D_INLINECODE end) ] are treated in the same way as$(D_INLINECODE glDrawElementsBaseVertex). The th element transferred by the corresponding draw call will be taken from element$(D_INLINECODE indices) [i] +$(D_INLINECODE basevertex) of each enabled array. If the resulting value is larger than the maximum value representable by$(D_INLINECODE type), it is as if the calculation were upconverted to 32-bit unsigned integers (with wrapping on overflow conditions). The operation is undefined if the sum would be negative.) | |
| * | |
| * Params: | |
| * mode = $(P Specifies what kind of primitives to render. Symbolic constants$(D_INLINECODE GL_POINTS),$(D_INLINECODE GL_LINE_STRIP),$(D_INLINECODE GL_LINE_LOOP),$(D_INLINECODE GL_LINES),$(D_INLINECODE GL_TRIANGLE_STRIP),$(D_INLINECODE GL_TRIANGLE_FAN),$(D_INLINECODE GL_TRIANGLES),$(D_INLINECODE GL_LINES_ADJACENCY),$(D_INLINECODE GL_LINE_STRIP_ADJACENCY),$(D_INLINECODE GL_TRIANGLES_ADJACENCY),$(D_INLINECODE GL_TRIANGLE_STRIP_ADJACENCY) and$(D_INLINECODE GL_PATCHES) are accepted.) | |
| * start = $(P Specifies the minimum array index contained in$(D_INLINECODE indices).) | |
| * end = $(P Specifies the maximum array index contained in$(D_INLINECODE indices).) | |
| * count = $(P Specifies the number of elements to be rendered.) | |
| * type = $(P Specifies the type of the values in indices. Must be one of$(D_INLINECODE GL_UNSIGNED_BYTE),$(D_INLINECODE GL_UNSIGNED_SHORT), or$(D_INLINECODE GL_UNSIGNED_INT).) | |
| * indices = $(P Specifies a pointer to the location where the indices are stored.) | |
| * basevertex = $(P Specifies a constant that should be added to each element of$(D_INLINECODE indices) when chosing elements from the enabled vertex arrays.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDrawElements),$(D_INLINECODE glDrawElementsBaseVertex),$(D_INLINECODE glDrawRangeElements),$(D_INLINECODE glDrawElementsInstanced),$(D_INLINECODE glDrawElementsInstancedBaseVertex)) | |
| */ | |
| extern(C) void function(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, GLvoid* indices, GLint basevertex) @system @nogc nothrow glDrawRangeElementsBaseVertex; | |
| /** | |
| * glDrawTransformFeedback: man4/glDrawTransformFeedback.xml | |
| * | |
| * $(P $(D_INLINECODE glDrawTransformFeedback) draws primitives of a type specified by$(D_INLINECODE mode) using a count retrieved from the transform feedback specified by$(D_INLINECODE id). Calling$(D_INLINECODE glDrawTransformFeedback) is equivalent to calling$(D_INLINECODE glDrawArrays) with$(D_INLINECODE mode) as specified,$(D_INLINECODE first) set to zero, and$(D_INLINECODE count) set to the number of vertices captured on vertex stream zero the last time transform feedback was active on the transform feedback object named by$(D_INLINECODE id).) | |
| * | |
| * Params: | |
| * mode = $(P Specifies what kind of primitives to render. Symbolic constants$(D_INLINECODE GL_POINTS),$(D_INLINECODE GL_LINE_STRIP),$(D_INLINECODE GL_LINE_LOOP),$(D_INLINECODE GL_LINES),$(D_INLINECODE GL_LINE_STRIP_ADJACENCY),$(D_INLINECODE GL_LINES_ADJACENCY),$(D_INLINECODE GL_TRIANGLE_STRIP),$(D_INLINECODE GL_TRIANGLE_FAN),$(D_INLINECODE GL_TRIANGLES),$(D_INLINECODE GL_TRIANGLE_STRIP_ADJACENCY),$(D_INLINECODE GL_TRIANGLES_ADJACENCY), and$(D_INLINECODE GL_PATCHES) are accepted.) | |
| * id = $(P Specifies the name of a transform feedback object from which to retrieve a primitive count.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDrawArrays),$(D_INLINECODE glDrawArraysInstanced),$(D_INLINECODE glDrawElements),$(D_INLINECODE glDrawRangeElements),$(D_INLINECODE glDrawTransformFeedbackStream)) | |
| */ | |
| extern(C) void function(GLenum mode, GLuint id) @system @nogc nothrow glDrawTransformFeedback; | |
| /** | |
| * glDrawTransformFeedbackInstanced: man4/glDrawTransformFeedbackInstanced.xml | |
| * | |
| * $(P $(D_INLINECODE glDrawTransformFeedbackInstanced) draws multiple copies of a range of primitives of a type specified by$(D_INLINECODE mode) using a count retrieved from the transform feedback stream specified by$(D_INLINECODE stream) of the transform feedback object specified by$(D_INLINECODE id). Calling$(D_INLINECODE glDrawTransformFeedbackInstanced) is equivalent to calling$(D_INLINECODE glDrawArraysInstanced) with$(D_INLINECODE mode) and$(D_INLINECODE primcount) as specified,$(D_INLINECODE first) set to zero, and$(D_INLINECODE count) set to the number of vertices captured on vertex stream zero the last time transform feedback was active on the transform feedback object named by$(D_INLINECODE id).)$(P Calling$(D_INLINECODE glDrawTransformFeedbackInstanced) is equivalent to calling$(D_INLINECODE glDrawTransformFeedbackStreamInstanced) with$(D_INLINECODE stream) set to zero.) | |
| * | |
| * Params: | |
| * mode = $(P Specifies what kind of primitives to render. Symbolic constants$(D_INLINECODE GL_POINTS),$(D_INLINECODE GL_LINE_STRIP),$(D_INLINECODE GL_LINE_LOOP),$(D_INLINECODE GL_LINES),$(D_INLINECODE GL_LINE_STRIP_ADJACENCY),$(D_INLINECODE GL_LINES_ADJACENCY),$(D_INLINECODE GL_TRIANGLE_STRIP),$(D_INLINECODE GL_TRIANGLE_FAN),$(D_INLINECODE GL_TRIANGLES),$(D_INLINECODE GL_TRIANGLE_STRIP_ADJACENCY),$(D_INLINECODE GL_TRIANGLES_ADJACENCY), and$(D_INLINECODE GL_PATCHES) are accepted.) | |
| * id = $(P Specifies the name of a transform feedback object from which to retrieve a primitive count.) | |
| * primcount = $(P Specifies the number of instances of the geometry to render.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDrawArrays),$(D_INLINECODE glDrawArraysInstanced),$(D_INLINECODE glDrawElements),$(D_INLINECODE glDrawRangeElements),$(D_INLINECODE glDrawTransformFeedback),$(D_INLINECODE glDrawTransformFeedbackStreamInstanced).) | |
| */ | |
| extern(C) void function(GLenum mode, GLuint id, GLsizei primcount) @system @nogc nothrow glDrawTransformFeedbackInstanced; | |
| /** | |
| * glDrawTransformFeedbackStream: man4/glDrawTransformFeedbackStream.xml | |
| * | |
| * $(P $(D_INLINECODE glDrawTransformFeedbackStream) draws primitives of a type specified by$(D_INLINECODE mode) using a count retrieved from the transform feedback stream specified by$(D_INLINECODE stream) of the transform feedback object specified by$(D_INLINECODE id). Calling$(D_INLINECODE glDrawTransformFeedbackStream) is equivalent to calling$(D_INLINECODE glDrawArrays) with$(D_INLINECODE mode) as specified,$(D_INLINECODE first) set to zero, and$(D_INLINECODE count) set to the number of vertices captured on vertex stream$(D_INLINECODE stream) the last time transform feedback was active on the transform feedback object named by$(D_INLINECODE id).)$(P Calling$(D_INLINECODE glDrawTransformFeedback) is equivalent to calling$(D_INLINECODE glDrawTransformFeedbackStream) with$(D_INLINECODE stream) set to zero.) | |
| * | |
| * Params: | |
| * mode = $(P Specifies what kind of primitives to render. Symbolic constants$(D_INLINECODE GL_POINTS),$(D_INLINECODE GL_LINE_STRIP),$(D_INLINECODE GL_LINE_LOOP),$(D_INLINECODE GL_LINES),$(D_INLINECODE GL_LINE_STRIP_ADJACENCY),$(D_INLINECODE GL_LINES_ADJACENCY),$(D_INLINECODE GL_TRIANGLE_STRIP),$(D_INLINECODE GL_TRIANGLE_FAN),$(D_INLINECODE GL_TRIANGLES),$(D_INLINECODE GL_TRIANGLE_STRIP_ADJACENCY),$(D_INLINECODE GL_TRIANGLES_ADJACENCY), and$(D_INLINECODE GL_PATCHES) are accepted.) | |
| * id = $(P Specifies the name of a transform feedback object from which to retrieve a primitive count.) | |
| * stream = $(P Specifies the index of the transform feedback stream from which to retrieve a primitive count.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDrawArrays),$(D_INLINECODE glDrawArraysInstanced),$(D_INLINECODE glDrawElements),$(D_INLINECODE glDrawRangeElements),$(D_INLINECODE glDrawTransformFeedback)) | |
| */ | |
| extern(C) void function(GLenum mode, GLuint id, GLuint stream) @system @nogc nothrow glDrawTransformFeedbackStream; | |
| /** | |
| * glDrawTransformFeedbackStreamInstanced: man4/glDrawTransformFeedbackStreamInstanced.xml | |
| * | |
| * $(P $(D_INLINECODE glDrawTransformFeedbackStreamInstanced) draws multiple copies of a range of primitives of a type specified by$(D_INLINECODE mode) using a count retrieved from the transform feedback stream specified by$(D_INLINECODE stream) of the transform feedback object specified by$(D_INLINECODE id). Calling$(D_INLINECODE glDrawTransformFeedbackStreamInstanced) is equivalent to calling$(D_INLINECODE glDrawArraysInstanced) with$(D_INLINECODE mode) and$(D_INLINECODE primcount) as specified,$(D_INLINECODE first) set to zero, and$(D_INLINECODE count) set to the number of vertices captured on vertex stream$(D_INLINECODE stream) the last time transform feedback was active on the transform feedback object named by$(D_INLINECODE id).)$(P Calling$(D_INLINECODE glDrawTransformFeedbackInstanced) is equivalent to calling$(D_INLINECODE glDrawTransformFeedbackStreamInstanced) with$(D_INLINECODE stream) set to zero.) | |
| * | |
| * Params: | |
| * mode = $(P Specifies what kind of primitives to render. Symbolic constants$(D_INLINECODE GL_POINTS),$(D_INLINECODE GL_LINE_STRIP),$(D_INLINECODE GL_LINE_LOOP),$(D_INLINECODE GL_LINES),$(D_INLINECODE GL_LINE_STRIP_ADJACENCY),$(D_INLINECODE GL_LINES_ADJACENCY),$(D_INLINECODE GL_TRIANGLE_STRIP),$(D_INLINECODE GL_TRIANGLE_FAN),$(D_INLINECODE GL_TRIANGLES),$(D_INLINECODE GL_TRIANGLE_STRIP_ADJACENCY),$(D_INLINECODE GL_TRIANGLES_ADJACENCY), and$(D_INLINECODE GL_PATCHES) are accepted.) | |
| * id = $(P Specifies the name of a transform feedback object from which to retrieve a primitive count.) | |
| * stream = $(P Specifies the index of the transform feedback stream from which to retrieve a primitive count.) | |
| * primcount = $(P Specifies the number of instances of the geometry to render.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDrawArrays),$(D_INLINECODE glDrawArraysInstanced),$(D_INLINECODE glDrawElements),$(D_INLINECODE glDrawRangeElements),$(D_INLINECODE glDrawTransformFeedback),$(D_INLINECODE glDrawTransformFeedbackStream).) | |
| */ | |
| extern(C) void function(GLenum mode, GLuint id, GLuint stream, GLsizei primcount) @system @nogc nothrow glDrawTransformFeedbackStreamInstanced; | |
| /** | |
| * glFenceSync: man4/glFenceSync.xml | |
| * | |
| * $(P $(D_INLINECODE glFenceSync) creates a new fence sync object, inserts a fence command into the GL command stream and associates it with that sync object, and returns a non-zero name corresponding to the sync object.)$(P When the specified$(D_INLINECODE condition) of the sync object is satisfied by the fence command, the sync object is signaled by the GL, causing any$(D_INLINECODE glWaitSync),$(D_INLINECODE glClientWaitSync) commands blocking in$(D_INLINECODE sync) to. No other state is affected by$(D_INLINECODE glFenceSync) or by the execution of the associated fence command.)$(P $(D_INLINECODE condition) must be$(D_INLINECODE GL_SYNC_GPU_COMMANDS_COMPLETE). This condition is satisfied by completion of the fence command corresponding to the sync object and all preceding commands in the same command stream. The sync object will not be signaled until all effects from these commands on GL client and server state and the framebuffer are fully realized. Note that completion of the fence command occurs once the state of the corresponding sync object has been changed, but commands waiting on that sync object may not be unblocked until after the fence command completes.) | |
| * | |
| * $(P $(D_INLINECODE glFenceSync) is only supported if the GL version is 3.2 or greater, or if the$(D_INLINECODE ARB_sync) extension is supported.) | |
| * | |
| * Params: | |
| * condition = $(P Specifies the condition that must be met to set the sync object's state to signaled.$(D_INLINECODE condition) must be$(D_INLINECODE GL_SYNC_GPU_COMMANDS_COMPLETE).) | |
| * flags = $(P Specifies a bitwise combination of flags controlling the behavior of the sync object. No flags are presently defined for this operation and$(D_INLINECODE flags) must be zero.$(P $(D_INLINECODE flags) is a placeholder for anticipated future extensions of fence sync object capabilities.)) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDeleteSync),$(D_INLINECODE glGetSync),$(D_INLINECODE glWaitSync),$(D_INLINECODE glClientWaitSync)) | |
| */ | |
| extern(C) GLsync function(GLenum condition, GLbitfield flags) @system @nogc nothrow glFenceSync; | |
| /** | |
| * glFinish: man4/glFinish.xml | |
| * | |
| * $(P $(D_INLINECODE glFinish) does not return until the effects of all previously called GL commands are complete. Such effects include all changes to GL state, all changes to connection state, and all changes to the frame buffer contents.) | |
| * | |
| * $(P $(D_INLINECODE glFinish) requires a round trip to the server.) | |
| * | |
| * Params: | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glFlush)) | |
| */ | |
| extern(C) void function() @system @nogc nothrow glFinish; | |
| /** | |
| * glFlush: man4/glFlush.xml | |
| * | |
| * $(P Different GL implementations buffer commands in several different locations, including network buffers and the graphics accelerator itself.$(D_INLINECODE glFlush) empties all of these buffers, causing all issued commands to be executed as quickly as they are accepted by the actual rendering engine. Though this execution may not be completed in any particular time period, it does complete in finite time.)$(P Because any GL program might be executed over a network, or on an accelerator that buffers commands, all programs should call$(D_INLINECODE glFlush) whenever they count on having all of their previously issued commands completed. For example, call$(D_INLINECODE glFlush) before waiting for user input that depends on the generated image.) | |
| * | |
| * $(P $(D_INLINECODE glFlush) can return at any time. It does not wait until the execution of all previously issued GL commands is complete.) | |
| * | |
| * Params: | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glFinish)) | |
| */ | |
| extern(C) void function() @system @nogc nothrow glFlush; | |
| /** | |
| * glFlushMappedBufferRange: man4/glFlushMappedBufferRange.xml | |
| * | |
| * $(P $(D_INLINECODE glFlushMappedBufferRange) indicates that modifications have been made to a range of a mapped buffer object. The buffer object must previously have been mapped with the$(D_INLINECODE GL_MAP_FLUSH_EXPLICIT_BIT) flag.)$(P $(D_INLINECODE offset) and$(D_INLINECODE length) indicate the modified subrange of the mapping, in basic machine units. The specified subrange to flush is relative to the start of the currently mapped range of the buffer. These commands may be called multiple times to indicate distinct subranges of the mapping which require flushing.)$(P If a buffer range is mapped with both$(D_INLINECODE GL_MAP_PERSISTENT_BIT) and$(D_INLINECODE GL_MAP_FLUSH_EXPLICIT_BIT) set, then these commands may be called to ensure that data written by the client into the flushed region becomes visible to the server. Data written to a coherent store will always become visible to the server after an unspecified period of time.) | |
| * | |
| * $(P The$(D_INLINECODE GL_DISPATCH_INDIRECT_BUFFER) and$(D_INLINECODE GL_SHADER_STORAGE_BUFFER) targets are available only if the GL version is 4.3 or greater.)$(P The$(D_INLINECODE GL_QUERY_BUFFER) target is available only if the GL version is 4.4 or greater.) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target to which the buffer object is bound for$(D_INLINECODE glFlushMappedBufferRange), which must be one of the buffer binding targets in the following table:)$(B Buffer Binding Target)$(B Purpose)$(D_INLINECODE GL_ARRAY_BUFFER) Vertex attributes$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER) Atomic counter storage$(D_INLINECODE GL_COPY_READ_BUFFER) Buffer copy source$(D_INLINECODE GL_COPY_WRITE_BUFFER) Buffer copy destination$(D_INLINECODE GL_DISPATCH_INDIRECT_BUFFER) Indirect compute dispatch commands$(D_INLINECODE GL_DRAW_INDIRECT_BUFFER) Indirect command arguments$(D_INLINECODE GL_ELEMENT_ARRAY_BUFFER) Vertex array indices$(D_INLINECODE GL_PIXEL_PACK_BUFFER) Pixel read target$(D_INLINECODE GL_PIXEL_UNPACK_BUFFER) Texture data source$(D_INLINECODE GL_QUERY_BUFFER) Query result buffer$(D_INLINECODE GL_SHADER_STORAGE_BUFFER) Read-write storage for shaders$(D_INLINECODE GL_TEXTURE_BUFFER) Texture data buffer$(D_INLINECODE GL_TRANSFORM_FEEDBACK_BUFFER) Transform feedback buffer$(D_INLINECODE GL_UNIFORM_BUFFER) Uniform block storage | |
| * buffer = $(P Specifies the name of the buffer object for$(D_INLINECODE glFlushMappedNamedBufferRange).) | |
| * offset = $(P Specifies the start of the buffer subrange, in basic machine units.) | |
| * length = $(P Specifies the length of the buffer subrange, in basic machine units.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glMapBufferRange),$(D_INLINECODE glMapBuffer),$(D_INLINECODE glUnmapBuffer)) | |
| */ | |
| extern(C) void function(GLenum target, GLintptr offset, GLsizeiptr length) @system @nogc nothrow glFlushMappedBufferRange; | |
| /// Ditto | |
| extern(C) void function(GLuint buffer, GLintptr offset, GLsizei length) @system @nogc nothrow glFlushMappedNamedBufferRange; | |
| /** | |
| * glFramebufferParameteri: man4/glFramebufferParameteri.xml | |
| * | |
| * $(P $(D_INLINECODE glFramebufferParameteri) and$(D_INLINECODE glNamedFramebufferParameteri) modify the value of the parameter named$(D_INLINECODE pname) in the specified framebuffer object. There are no modifiable parameters of the default draw and read framebuffer, so they are not valid targets of these commands.)$(P For$(D_INLINECODE glFramebufferParameteri), the framebuffer object is that bound to$(D_INLINECODE target), which must be$(D_INLINECODE GL_DRAW_FRAMEBUFFER),$(D_INLINECODE GL_READ_FRAMEBUFFER) or$(D_INLINECODE GL_FRAMEBUFFER).$(D_INLINECODE GL_FRAMEBUFFER) is equivalent to$(D_INLINECODE GL_DRAW_FRAMEBUFFER).)$(P For$(D_INLINECODE glNamedFramebufferParameteri),$(D_INLINECODE framebuffer) is the name of the framebuffer object.)$(P $(D_INLINECODE pname) specifies the parameter to be modified. The following values are accepted:) variablelist | |
| * | |
| * Params: | |
| * target = $(P Specifies the target to which the framebuffer is bound for$(D_INLINECODE glFramebufferParameteri).) | |
| * framebuffer = $(P Specifies the name of the framebuffer object for$(D_INLINECODE glNamedFramebufferParameteri).) | |
| * pname = $(P Specifies the framebuffer parameter to be modified.) | |
| * param = $(P The new value for the parameter named$(D_INLINECODE pname).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2013-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBindFramebuffer),$(D_INLINECODE glCreateFramebuffers),$(D_INLINECODE glFramebufferRenderbuffer),$(D_INLINECODE glFramebufferTexture),$(D_INLINECODE glGenFramebuffers),$(D_INLINECODE glGetFramebufferParameter)) | |
| */ | |
| extern(C) void function(GLenum target, GLenum pname, GLint param) @system @nogc nothrow glFramebufferParameteri; | |
| /// Ditto | |
| extern(C) void function(GLuint framebuffer, GLenum pname, GLint param) @system @nogc nothrow glNamedFramebufferParameteri; | |
| /** | |
| * glFramebufferRenderbuffer: man4/glFramebufferRenderbuffer.xml | |
| * | |
| * $(P $(D_INLINECODE glFramebufferRenderbuffer) and$(D_INLINECODE glNamedFramebufferRenderbuffer) attaches a renderbuffer as one of the logical buffers of the specified framebuffer object. Renderbuffers cannot be attached to the default draw and read framebuffer, so they are not valid targets of these commands.)$(P For$(D_INLINECODE glFramebufferRenderbuffer), the framebuffer object is that bound to$(D_INLINECODE target), which must be$(D_INLINECODE GL_DRAW_FRAMEBUFFER),$(D_INLINECODE GL_READ_FRAMEBUFFER) or$(D_INLINECODE GL_FRAMEBUFFER).$(D_INLINECODE GL_FRAMEBUFFER) is equivalent to$(D_INLINECODE GL_DRAW_FRAMEBUFFER).)$(P For$(D_INLINECODE glNamedFramebufferRenderbuffer),$(D_INLINECODE framebuffer) is the name of the framebuffer object.)$(P $(D_INLINECODE renderbuffertarget) must be$(D_INLINECODE GL_RENDERBUFFER).)$(P $(D_INLINECODE renderbuffer) must be zero or the name of an existing renderbuffer object of type$(D_INLINECODE renderbuffertarget). If$(D_INLINECODE renderbuffer) is not zero, then the specified renderbuffer will be used as the logical buffer identified by$(D_INLINECODE attachment) of the specified framebuffer object. If$(D_INLINECODE renderbuffer) is zero, then the value of$(D_INLINECODE renderbuffertarget) is ignored.)$(P $(D_INLINECODE attachment) specifies the logical attachment of the framebuffer and must be$(D_INLINECODE GL_COLOR_ATTACHMENT),$(D_INLINECODE GL_DEPTH_ATTACHMENT),$(D_INLINECODE GL_STENCIL_ATTACHMENT) or$(D_INLINECODE GL_DEPTH_STENCIL_ATTACHMENT). in may range from zero to the value of$(D_INLINECODE GL_MAX_COLOR_ATTACHMENTS) minus one. Setting$(D_INLINECODE attachment) to the value$(D_INLINECODE GL_DEPTH_STENCIL_ATTACHMENT) is a special case causing both the depth and stencil attachments of the specified framebuffer object to be set to$(D_INLINECODE renderbuffer), which should have the base internal format$(D_INLINECODE GL_DEPTH_STENCIL).)$(P The value of$(D_INLINECODE GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE) for the specified attachment point is set to$(D_INLINECODE GL_RENDERBUFFER) and the value of$(D_INLINECODE GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME) is set to$(D_INLINECODE renderbuffer). All other state values of specified attachment point are set to their default values. No change is made to the state of the renderbuuffer object and any previous attachment to the$(D_INLINECODE attachment) logical buffer of the specified framebuffer object is broken.)$(P If$(D_INLINECODE renderbuffer) is zero, these commands will detach the image, if any, identified by the specified attachment point of the specified framebuffer object. All state values of the attachment point are set to their default values.) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target to which the framebuffer is bound for$(D_INLINECODE glFramebufferRenderbuffer).) | |
| * framebuffer = $(P Specifies the name of the framebuffer object for$(D_INLINECODE glNamedFramebufferRenderbuffer).) | |
| * attachment = $(P Specifies the attachment point of the framebuffer.) | |
| * renderbuffertarget = $(P Specifies the renderbuffer target. Must be$(D_INLINECODE GL_RENDERBUFFER).) | |
| * renderbuffer = $(P Specifies the name of an existing renderbuffer object of type$(D_INLINECODE renderbuffertarget) to attach.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenFramebuffers),$(D_INLINECODE glBindFramebuffer),$(D_INLINECODE glGenRenderbuffers),$(D_INLINECODE glFramebufferTexture),$(D_INLINECODE glFramebufferTexture1D),$(D_INLINECODE glFramebufferTexture2D),$(D_INLINECODE glFramebufferTexture3D)) | |
| */ | |
| extern(C) void function(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) @system @nogc nothrow glFramebufferRenderbuffer; | |
| /// Ditto | |
| extern(C) void function(GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) @system @nogc nothrow glNamedFramebufferRenderbuffer; | |
| /** | |
| * glFramebufferTexture: man4/glFramebufferTexture.xml | |
| * | |
| * $(P These commands attach a selected mipmap level or image of a texture object as one of the logical buffers of the specified framebuffer object. Textures cannot be attached to the default draw and read framebuffer, so they are not valid targets of these commands.)$(P For all commands$(D_INLINECODE glNamedFramebufferTexture), the framebuffer object is that bound to$(D_INLINECODE target), which must be$(D_INLINECODE GL_DRAW_FRAMEBUFFER),$(D_INLINECODE GL_READ_FRAMEBUFFER), or$(D_INLINECODE GL_FRAMEBUFFER).$(D_INLINECODE GL_FRAMEBUFFER) is equivalent to$(D_INLINECODE GL_DRAW_FRAMEBUFFER).)$(P For$(D_INLINECODE glNamedFramebufferTexture),$(D_INLINECODE framebuffer) is the name of the framebuffer object.)$(P $(D_INLINECODE attachment) specifies the logical attachment of the framebuffer and must be$(D_INLINECODE GL_COLOR_ATTACHMENT),$(D_INLINECODE GL_DEPTH_ATTACHMENT),$(D_INLINECODE GL_STENCIL_ATTACHMENT) or$(D_INLINECODE GL_DEPTH_STENCIL_ATTACHMENT). in$(D_INLINECODE GL_COLOR_ATTACHMENT) may range from zero to the value of$(D_INLINECODE GL_MAX_COLOR_ATTACHMENTS) minus one. Attaching a level of a texture to$(D_INLINECODE GL_DEPTH_STENCIL_ATTACHMENT) is equivalent to attaching that level to both the$(D_INLINECODE GL_DEPTH_ATTACHMENT) the$(D_INLINECODE GL_STENCIL_ATTACHMENT) attachment points simultaneously.)$(P For$(D_INLINECODE glFramebufferTexture1D),$(D_INLINECODE glFramebufferTexture2D) and$(D_INLINECODE glFramebufferTexture3D),$(D_INLINECODE textarget) specifies what type of texture is named by$(D_INLINECODE texture), and for cube map textures, specifies the face that is to be attached. If$(D_INLINECODE texture) is not zero, it must be the name of an existing texture object with effective target$(D_INLINECODE textarget) unless it is a cube map texture, in which case$(D_INLINECODE textarget) must be$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_X)$(D_INLINECODE GL_TEXTURE_CUBE_MAP_NEGATIVE_X),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_Y),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_NEGATIVE_Y),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_Z), or$(D_INLINECODE GL_TEXTURE_CUBE_MAP_NEGATIVE_Z).)$(P If$(D_INLINECODE texture) is non-zero, the specified$(D_INLINECODE level) of the texture object named$(D_INLINECODE texture) is attached to the framebfufer attachment point named by$(D_INLINECODE attachment). For$(D_INLINECODE glFramebufferTexture1D),$(D_INLINECODE glFramebufferTexture2D), and$(D_INLINECODE glFramebufferTexture3D),$(D_INLINECODE texture) must be zero or the name of an existing texture with an effective target of$(D_INLINECODE textarget), or$(D_INLINECODE texture) must be the name of an existing cube-map texture and$(D_INLINECODE textarget) must be one of$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_X),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_Y),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_Z),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_NEGATIVE_X),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_NEGATIVE_Y), or$(D_INLINECODE GL_TEXTURE_CUBE_MAP_NEGATIVE_Z).)$(P If$(D_INLINECODE textarget) is$(D_INLINECODE GL_TEXTURE_RECTANGLE),$(D_INLINECODE GL_TEXTURE_2D_MULTISAMPLE), or$(D_INLINECODE GL_TEXTURE_2D_MULTISAMPLE_ARRAY), then$(D_INLINECODE level) must be zero.)$(P If$(D_INLINECODE textarget) is$(D_INLINECODE GL_TEXTURE_3D), then$(D_INLINECODE level) must be greater than or equal to zero and less than or equal to $log_2$ of the value of$(D_INLINECODE GL_MAX_3D_TEXTURE_SIZE).)$(P If$(D_INLINECODE textarget) is one of$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_X),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_Y),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_Z),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_NEGATIVE_X),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_NEGATIVE_Y), or$(D_INLINECODE GL_TEXTURE_CUBE_MAP_NEGATIVE_Z), then$(D_INLINECODE level) must be greater than or equal to zero and less than or equal to $log_2$ of the value of$(D_INLINECODE GL_MAX_CUBE_MAP_TEXTURE_SIZE).)$(P For all other values of$(D_INLINECODE textarget),$(D_INLINECODE level) must be greater than or equal to zero and less than or equal to $log_2$ of the value of$(D_INLINECODE GL_MAX_TEXTURE_SIZE).)$(P $(D_INLINECODE layer) specifies the layer of a 2-dimensional image within a 3-dimensional texture.)$(P For$(D_INLINECODE glFramebufferTexture1D), if$(D_INLINECODE texture) is not zero, then$(D_INLINECODE textarget) must be$(D_INLINECODE GL_TEXTURE_1D). For$(D_INLINECODE glFramebufferTexture2D), if$(D_INLINECODE texture) is not zero,$(D_INLINECODE textarget) must be one of$(D_INLINECODE GL_TEXTURE_2D),$(D_INLINECODE GL_TEXTURE_RECTANGLE),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_X),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_Y),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_Z),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_NEGATIVE_X),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_NEGATIVE_Y),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_NEGATIVE_Z), or$(D_INLINECODE GL_TEXTURE_2D_MULTISAMPLE). For$(D_INLINECODE glFramebufferTexture3D), if$(D_INLINECODE texture) is not zero, then$(D_INLINECODE textarget) must be$(D_INLINECODE GL_TEXTURE_3D).)$(P For$(D_INLINECODE glFramebufferTexture) and$(D_INLINECODE glNamedFramebufferTexture), if$(D_INLINECODE texture) is the name of a three-dimensional, cube map array, cube map, one- or two-dimensional array, or two-dimensional multisample array texture, the specified texture level is an array of images, and the framebuffer attachment is considered to be.) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target to which the framebuffer is bound for all commands$(D_INLINECODE glNamedFramebufferTexture).) | |
| * framebuffer = $(P Specifies the name of the framebuffer object for$(D_INLINECODE glNamedFramebufferTexture).) | |
| * attachment = $(P Specifies the attachment point of the framebuffer.) | |
| * textarget = $(P For$(D_INLINECODE glFramebufferTexture1D),$(D_INLINECODE glFramebufferTexture2D) and$(D_INLINECODE glFramebufferTexture3D), specifies what type of texture is expected in the$(D_INLINECODE texture) parameter, or for cube map textures, which face is to be attached.) | |
| * texture = $(P Specifies the name of an existing texture object to attach.) | |
| * level = $(P Specifies the mipmap level of the texture object to attach.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenFramebuffers),$(D_INLINECODE glBindFramebuffer),$(D_INLINECODE glGenRenderbuffers),$(D_INLINECODE glFramebufferTexture),$(D_INLINECODE glFramebufferTexture1D),$(D_INLINECODE glFramebufferTexture2D),$(D_INLINECODE glFramebufferTexture3D)) | |
| */ | |
| extern(C) void function(GLenum target, GLenum attachment, GLuint texture, GLint level) @system @nogc nothrow glFramebufferTexture; | |
| /// Ditto | |
| extern(C) void function(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) @system @nogc nothrow glFramebufferTexture1D; | |
| /// Ditto | |
| extern(C) void function(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) @system @nogc nothrow glFramebufferTexture2D; | |
| /// Ditto | |
| extern(C) void function(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint layer) @system @nogc nothrow glFramebufferTexture3D; | |
| /// Ditto | |
| extern(C) void function(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level) @system @nogc nothrow glNamedFramebufferTexture; | |
| /** | |
| * glFramebufferTextureLayer: man4/glFramebufferTextureLayer.xml | |
| * | |
| * $(P $(D_INLINECODE glFramebufferTextureLayer) and$(D_INLINECODE glNamedFramebufferTextureLayer) attach a single layer of a three-dimensional or array texture object as one of the logical buffers of the specified framebuffer object. Textures cannot be attached to the default draw and read framebuffer, so they are not valid targets of these commands.)$(P For$(D_INLINECODE glFramebufferTextureLayer), the framebuffer object is that bound to$(D_INLINECODE target), which must be$(D_INLINECODE GL_DRAW_FRAMEBUFFER),$(D_INLINECODE GL_READ_FRAMEBUFFER), or$(D_INLINECODE GL_FRAMEBUFFER).$(D_INLINECODE GL_FRAMEBUFFER) is equivalent to$(D_INLINECODE GL_DRAW_FRAMEBUFFER).)$(P For$(D_INLINECODE glNamedFramebufferTextureLayer),$(D_INLINECODE framebuffer) is the name of the framebuffer object.)$(P $(D_INLINECODE attachment) specifies the logical attachment of the framebuffer and must be$(D_INLINECODE GL_COLOR_ATTACHMENT),$(D_INLINECODE GL_DEPTH_ATTACHMENT),$(D_INLINECODE GL_STENCIL_ATTACHMENT) or$(D_INLINECODE GL_DEPTH_STENCIL_ATTACHMENT). in$(D_INLINECODE GL_COLOR_ATTACHMENT) may range from zero to the value of$(D_INLINECODE GL_MAX_COLOR_ATTACHMENTS) minus one. Attaching a level of a texture to$(D_INLINECODE GL_DEPTH_STENCIL_ATTACHMENT) is equivalent to attaching that level to both the$(D_INLINECODE GL_DEPTH_ATTACHMENT) the$(D_INLINECODE GL_STENCIL_ATTACHMENT) attachment points simultaneously.)$(P If$(D_INLINECODE texture) is not zero, it must be the name of a three-dimensional, two-dimensional multisample array, one- or two-dimensional array, or cube map array texture.)$(P If$(D_INLINECODE texture) is a three-dimensional texture, then$(D_INLINECODE level) must be greater than or equal to zero and less than or equal to $log_2$ of the value of$(D_INLINECODE GL_MAX_3D_TEXTURE_SIZE).)$(P If$(D_INLINECODE texture) is a two-dimensional array texture, then$(D_INLINECODE level) must be greater than or equal to zero and less than or equal to $log_2$ of the value of$(D_INLINECODE GL_MAX_TEXTURE_SIZE).)$(P For cube map textures,$(D_INLINECODE layer) is translated into a cube map face according to $$ face = k \bmod 6. $$ For cube map array textures,$(D_INLINECODE layer) is translated into an array layer and face according to $$ layer = \left\lfloor { layer \over 6 } \right\rfloor$$ and $$ face = k \bmod 6. $$) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target to which the framebuffer is bound for$(D_INLINECODE glFramebufferTextureLayer).) | |
| * framebuffer = $(P Specifies the name of the framebuffer object for$(D_INLINECODE glNamedFramebufferTextureLayer).) | |
| * attachment = $(P Specifies the attachment point of the framebuffer.) | |
| * texture = $(P Specifies the name of an existing texture object to attach.) | |
| * level = $(P Specifies the mipmap level of the texture object to attach.) | |
| * layer = $(P Specifies the layer of the texture object to attach.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenFramebuffers),$(D_INLINECODE glBindFramebuffer),$(D_INLINECODE glGenRenderbuffers),$(D_INLINECODE glFramebufferTexture),) | |
| */ | |
| extern(C) void function(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer) @system @nogc nothrow glFramebufferTextureLayer; | |
| /// Ditto | |
| extern(C) void function(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer) @system @nogc nothrow glNamedFramebufferTextureLayer; | |
| /** | |
| * glFrontFace: man4/glFrontFace.xml | |
| * | |
| * $(P In a scene composed entirely of opaque closed surfaces, back-facing polygons are never visible. Eliminating these invisible polygons has the obvious benefit of speeding up the rendering of the image. To enable and disable elimination of back-facing polygons, call$(D_INLINECODE glEnable) and$(D_INLINECODE glDisable) with argument$(D_INLINECODE GL_CULL_FACE).)$(P The projection of a polygon to window coordinates is said to have clockwise winding if an imaginary object following the path from its first vertex, its second vertex, and so on, to its last vertex, and finally back to its first vertex, moves in a clockwise direction about the interior of the polygon. The polygon's winding is said to be counterclockwise if the imaginary object following the same path moves in a counterclockwise direction about the interior of the polygon.$(D_INLINECODE glFrontFace) specifies whether polygons with clockwise winding in window coordinates, or counterclockwise winding in window coordinates, are taken to be front-facing. Passing$(D_INLINECODE GL_CCW) to$(D_INLINECODE mode) selects counterclockwise polygons as front-facing;$(D_INLINECODE GL_CW) selects clockwise polygons as front-facing. By default, counterclockwise polygons are taken to be front-facing.) | |
| * | |
| * Params: | |
| * mode = $(P Specifies the orientation of front-facing polygons.$(D_INLINECODE GL_CW) and$(D_INLINECODE GL_CCW) are accepted. The initial value is$(D_INLINECODE GL_CCW).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glCullFace),) | |
| */ | |
| extern(C) void function(GLenum mode) @system @nogc nothrow glFrontFace; | |
| /** | |
| * glGenBuffers: man4/glGenBuffers.xml | |
| * | |
| * $(P $(D_INLINECODE glGenBuffers) returns$(D_INLINECODE n) buffer object names in$(D_INLINECODE buffers). There is no guarantee that the names form a contiguous set of integers; however, it is guaranteed that none of the returned names was in use immediately before the call to$(D_INLINECODE glGenBuffers).)$(P Buffer object names returned by a call to$(D_INLINECODE glGenBuffers) are not returned by subsequent calls, unless they are first deleted with$(D_INLINECODE glDeleteBuffers).)$(P No buffer objects are associated with the returned buffer object names until they are first bound by calling$(D_INLINECODE glBindBuffer).) | |
| * | |
| * Params: | |
| * n = $(P Specifies the number of buffer object names to be generated.) | |
| * buffers = $(P Specifies an array in which the generated buffer object names are stored.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2005 Addison-Wesley. Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBindBuffer),$(D_INLINECODE glDeleteBuffers),$(D_INLINECODE glGet)) | |
| */ | |
| extern(C) void function(GLsizei n, GLuint* buffers) @system @nogc nothrow glGenBuffers; | |
| /** | |
| * glGenerateMipmap: man4/glGenerateMipmap.xml | |
| * | |
| * $(P $(D_INLINECODE glGenerateMipmap) and$(D_INLINECODE glGenerateTextureMipmap) generates mipmaps for the specified texture object. For$(D_INLINECODE glGenerateMipmap), the texture object is that bound to to$(D_INLINECODE target). For$(D_INLINECODE glGenerateTextureMipmap),$(D_INLINECODE texture) is the name of the texture object.)$(P For cube map and cube map array textures, the texture object must be cube complete or cube array complete respectively.)$(P Mipmap generation replaces texel image levels $level_{base} + 1$ through $q$ with images derived from the $level_{base}$ image, regardless of their previous contents. All other mimap images, including the $level_{base}+1$ image, are left unchanged by this computation.)$(P The internal formats of the derived mipmap images all match those of the $level_{base}$ image. The contents of the derived images are computed by repeated, filtered reduction of the $level_{base} + 1$ image. For one- and two-dimensional array and cube map array textures, each layer is filtered independently.) | |
| * | |
| * $(P Cube map array textures are accepted only if the GL version is 4.0 or higher.) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target to which the texture object is bound for$(D_INLINECODE glGenerateMipmap). Must be one of$(D_INLINECODE GL_TEXTURE_1D),$(D_INLINECODE GL_TEXTURE_2D),$(D_INLINECODE GL_TEXTURE_3D),$(D_INLINECODE GL_TEXTURE_1D_ARRAY),$(D_INLINECODE GL_TEXTURE_2D_ARRAY),$(D_INLINECODE GL_TEXTURE_CUBE_MAP), or$(D_INLINECODE GL_TEXTURE_CUBE_MAP_ARRAY).) | |
| * texture = $(P Specifies the texture object name for$(D_INLINECODE glGenerateTextureMipmap).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glTexImage2D),$(D_INLINECODE glBindTexture),$(D_INLINECODE glGenTextures)) | |
| */ | |
| extern(C) void function(GLenum target) @system @nogc nothrow glGenerateMipmap; | |
| /// Ditto | |
| extern(C) void function(GLuint texture) @system @nogc nothrow glGenerateTextureMipmap; | |
| /** | |
| * glGenFramebuffers: man4/glGenFramebuffers.xml | |
| * | |
| * $(P $(D_INLINECODE glGenFramebuffers) returns$(D_INLINECODE n) framebuffer object names in$(D_INLINECODE ids). There is no guarantee that the names form a contiguous set of integers; however, it is guaranteed that none of the returned names was in use immediately before the call to$(D_INLINECODE glGenFramebuffers).)$(P Framebuffer object names returned by a call to$(D_INLINECODE glGenFramebuffers) are not returned by subsequent calls, unless they are first deleted with$(D_INLINECODE glDeleteFramebuffers).)$(P The names returned in$(D_INLINECODE ids) are marked as used, for the purposes of$(D_INLINECODE glGenFramebuffers) only, but they acquire state and type only when they are first bound.) | |
| * | |
| * Params: | |
| * n = $(P Specifies the number of framebuffer object names to generate.) | |
| * ids = $(P Specifies an array in which the generated framebuffer object names are stored.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBindFramebuffer),$(D_INLINECODE glDeleteFramebuffers)) | |
| */ | |
| extern(C) void function(GLsizei n, GLuint* ids) @system @nogc nothrow glGenFramebuffers; | |
| /** | |
| * glGenProgramPipelines: man4/glGenProgramPipelines.xml | |
| * | |
| * $(P $(D_INLINECODE glGenProgramPipelines) returns$(D_INLINECODE n) previously unused program pipeline object names in$(D_INLINECODE pipelines). These names are marked as used, for the purposes of$(D_INLINECODE glGenProgramPipelines) only, but they acquire program pipeline state only when they are first bound.) | |
| * | |
| * Params: | |
| * n = $(P Specifies the number of program pipeline object names to reserve.) | |
| * pipelines = $(P Specifies an array of into which the reserved names will be written.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDeleteProgramPipelines),$(D_INLINECODE glBindProgramPipeline),$(D_INLINECODE glIsProgramPipeline),$(D_INLINECODE glUseProgramStages),$(D_INLINECODE glUseProgram)) | |
| */ | |
| extern(C) void function(GLsizei n, GLuint* pipelines) @system @nogc nothrow glGenProgramPipelines; | |
| /** | |
| * glGenQueries: man4/glGenQueries.xml | |
| * | |
| * $(P $(D_INLINECODE glGenQueries) returns$(D_INLINECODE n) query object names in$(D_INLINECODE ids). There is no guarantee that the names form a contiguous set of integers; however, it is guaranteed that none of the returned names was in use immediately before the call to$(D_INLINECODE glGenQueries).)$(P Query object names returned by a call to$(D_INLINECODE glGenQueries) are not returned by subsequent calls, unless they are first deleted with$(D_INLINECODE glDeleteQueries).)$(P No query objects are associated with the returned query object names until they are first used by calling$(D_INLINECODE glBeginQuery).) | |
| * | |
| * Params: | |
| * n = $(P Specifies the number of query object names to be generated.) | |
| * ids = $(P Specifies an array in which the generated query object names are stored.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2005 Addison-Wesley. Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBeginQuery),$(D_INLINECODE glDeleteQueries),$(D_INLINECODE glEndQuery)) | |
| */ | |
| extern(C) void function(GLsizei n, GLuint* ids) @system @nogc nothrow glGenQueries; | |
| /** | |
| * glGenRenderbuffers: man4/glGenRenderbuffers.xml | |
| * | |
| * $(P $(D_INLINECODE glGenRenderbuffers) returns$(D_INLINECODE n) renderbuffer object names in$(D_INLINECODE renderbuffers). There is no guarantee that the names form a contiguous set of integers; however, it is guaranteed that none of the returned names was in use immediately before the call to$(D_INLINECODE glGenRenderbuffers).)$(P Renderbuffer object names returned by a call to$(D_INLINECODE glGenRenderbuffers) are not returned by subsequent calls, unless they are first deleted with$(D_INLINECODE glDeleteRenderbuffers).)$(P The names returned in$(D_INLINECODE renderbuffers) are marked as used, for the purposes of$(D_INLINECODE glGenRenderbuffers) only, but they acquire state and type only when they are first bound.) | |
| * | |
| * Params: | |
| * n = $(P Specifies the number of renderbuffer object names to generate.) | |
| * renderbuffers = $(P Specifies an array in which the generated renderbuffer object names are stored.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glFramebufferRenderbuffer),$(D_INLINECODE glDeleteRenderbuffers)) | |
| */ | |
| extern(C) void function(GLsizei n, GLuint* renderbuffers) @system @nogc nothrow glGenRenderbuffers; | |
| /** | |
| * glGenSamplers: man4/glGenSamplers.xml | |
| * | |
| * $(P $(D_INLINECODE glGenSamplers) returns$(D_INLINECODE n) sampler object names in$(D_INLINECODE samplers). There is no guarantee that the names form a contiguous set of integers; however, it is guaranteed that none of the returned names was in use immediately before the call to$(D_INLINECODE glGenSamplers).)$(P Sampler object names returned by a call to$(D_INLINECODE glGenSamplers) are not returned by subsequent calls, unless they are first deleted with$(D_INLINECODE glDeleteSamplers).)$(P The names returned in$(D_INLINECODE samplers) are marked as used, for the purposes of$(D_INLINECODE glGenSamplers) only, but they acquire state and type only when they are first bound.) | |
| * | |
| * $(P $(D_INLINECODE glGenSamplers) is available only if the GL version is 3.3 or higher.) | |
| * | |
| * Params: | |
| * n = $(P Specifies the number of sampler object names to generate.) | |
| * samplers = $(P Specifies an array in which the generated sampler object names are stored.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBindSampler),$(D_INLINECODE glIsSampler),$(D_INLINECODE glDeleteSamplers)) | |
| */ | |
| extern(C) void function(GLsizei n, GLuint* samplers) @system @nogc nothrow glGenSamplers; | |
| /** | |
| * glGenTextures: man4/glGenTextures.xml | |
| * | |
| * $(P $(D_INLINECODE glGenTextures) returns$(D_INLINECODE n) texture names in$(D_INLINECODE textures). There is no guarantee that the names form a contiguous set of integers; however, it is guaranteed that none of the returned names was in use immediately before the call to$(D_INLINECODE glGenTextures).)$(P The generated textures have no dimensionality; they assume the dimensionality of the texture target to which they are first bound (see$(D_INLINECODE glBindTexture) ).)$(P Texture names returned by a call to$(D_INLINECODE glGenTextures) are not returned by subsequent calls, unless they are first deleted with$(D_INLINECODE glDeleteTextures).) | |
| * | |
| * Params: | |
| * n = $(P Specifies the number of texture names to be generated.) | |
| * textures = $(P Specifies an array in which the generated texture names are stored.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBindTexture),$(D_INLINECODE glCopyTexImage1D),$(D_INLINECODE glCopyTexImage2D),$(D_INLINECODE glDeleteTextures),$(D_INLINECODE glGet),$(D_INLINECODE glGetTexParameter),$(D_INLINECODE glTexImage1D),$(D_INLINECODE glTexImage2D),$(D_INLINECODE glTexImage3D),$(D_INLINECODE glTexParameter)) | |
| */ | |
| extern(C) void function(GLsizei n, GLuint* textures) @system @nogc nothrow glGenTextures; | |
| /** | |
| * glGenTransformFeedbacks: man4/glGenTransformFeedbacks.xml | |
| * | |
| * $(P $(D_INLINECODE glGenTransformFeedbacks) returns$(D_INLINECODE n) previously unused transform feedback object names in$(D_INLINECODE ids). These names are marked as used, for the purposes of$(D_INLINECODE glGenTransformFeedbacks) only, but they acquire transform feedback state only when they are first bound.) | |
| * | |
| * Params: | |
| * n = $(P Specifies the number of transform feedback object names to reserve.) | |
| * ids = $(P Specifies an array of into which the reserved names will be written.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDeleteTransformFeedbacks),$(D_INLINECODE glBindTransformFeedback),$(D_INLINECODE glIsTransformFeedback),$(D_INLINECODE glBeginTransformFeedback),$(D_INLINECODE glPauseTransformFeedback),$(D_INLINECODE glResumeTransformFeedback),$(D_INLINECODE glEndTransformFeedback)) | |
| */ | |
| extern(C) void function(GLsizei n, GLuint* ids) @system @nogc nothrow glGenTransformFeedbacks; | |
| /** | |
| * glGenVertexArrays: man4/glGenVertexArrays.xml | |
| * | |
| * $(P $(D_INLINECODE glGenVertexArrays) returns$(D_INLINECODE n) vertex array object names in$(D_INLINECODE arrays). There is no guarantee that the names form a contiguous set of integers; however, it is guaranteed that none of the returned names was in use immediately before the call to$(D_INLINECODE glGenVertexArrays).)$(P Vertex array object names returned by a call to$(D_INLINECODE glGenVertexArrays) are not returned by subsequent calls, unless they are first deleted with$(D_INLINECODE glDeleteVertexArrays).)$(P The names returned in$(D_INLINECODE arrays) are marked as used, for the purposes of$(D_INLINECODE glGenVertexArrays) only, but they acquire state and type only when they are first bound.) | |
| * | |
| * Params: | |
| * n = $(P Specifies the number of vertex array object names to generate.) | |
| * arrays = $(P Specifies an array in which the generated vertex array object names are stored.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBindVertexArray),$(D_INLINECODE glDeleteVertexArrays)) | |
| */ | |
| extern(C) void function(GLsizei n, GLuint* arrays) @system @nogc nothrow glGenVertexArrays; | |
| /** | |
| * glGet: man4/glGet.xml | |
| * | |
| * $(P These commands return values for simple state variables in GL.$(D_INLINECODE pname) is a symbolic constant indicating the state variable to be returned, and$(D_INLINECODE data) is a pointer to an array of the indicated type in which to place the returned data.)$(P Type conversion is performed if$(D_INLINECODE data) has a different type than the state variable value being requested. If$(D_INLINECODE glGetBooleanv) is called, a floating-point (or integer) value is converted to$(D_INLINECODE GL_FALSE) if and only if it is 0.0 (or 0). Otherwise, it is converted to$(D_INLINECODE GL_TRUE). If$(D_INLINECODE glGetIntegerv) is called, boolean values are returned as$(D_INLINECODE GL_TRUE) or$(D_INLINECODE GL_FALSE), and most floating-point values are rounded to the nearest integer value. Floating-point colors and normals, however, are returned with a linear mapping that maps 1.0 to the most positive representable integer value and -1.0 to the most negative representable integer value. If$(D_INLINECODE glGetFloatv) or$(D_INLINECODE glGetDoublev) is called, boolean values are returned as$(D_INLINECODE GL_TRUE) or$(D_INLINECODE GL_FALSE), and integer values are converted to floating-point values.)$(P The following symbolic constants are accepted by$(D_INLINECODE pname) :) variablelist$(P Many of the boolean parameters can also be queried more easily using$(D_INLINECODE glIsEnabled).) | |
| * | |
| * $(P The following parameters return the associated value for the active texture unit:$(D_INLINECODE GL_TEXTURE_1D),$(D_INLINECODE GL_TEXTURE_BINDING_1D),$(D_INLINECODE GL_TEXTURE_2D),$(D_INLINECODE GL_TEXTURE_BINDING_2D),$(D_INLINECODE GL_TEXTURE_3D) and$(D_INLINECODE GL_TEXTURE_BINDING_3D).)$(P $(D_INLINECODE GL_MAX_VIEWPORTS),$(D_INLINECODE GL_VIEWPORT_SUBPIXEL_BITS),$(D_INLINECODE GL_VIEWPORT_BOUNDS_RANGE),$(D_INLINECODE GL_LAYER_PROVOKING_VERTEX), and$(D_INLINECODE GL_VIEWPORT_INDEX_PROVOKING_VERTEX) are available only if the GL version is 4.1 or greater.)$(P $(D_INLINECODE GL_MAX_VERTEX_ATOMIC_COUNTERS),$(D_INLINECODE GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS),$(D_INLINECODE GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS),$(D_INLINECODE GL_MAX_GEOMETRY_ATOMIC_COUNTERS),$(D_INLINECODE GL_MAX_FRAMGENT_ATOMIC_COUNTERS), and$(D_INLINECODE GL_MIN_MAP_BUFFER_ALIGNMENT) are accepted by$(D_INLINECODE pname) only if the GL version is 4.2 or greater.)$(P $(D_INLINECODE GL_MAX_ELEMENT_INDEX) is accepted by$(D_INLINECODE pname) only if the GL version is 4.3 or greater.)$(P $(D_INLINECODE GL_MAX_COMPUTE_UNIFORM_BLOCKS),$(D_INLINECODE GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS),$(D_INLINECODE GL_MAX_COMPUTE_UNIFORM_COMPONENTS),$(D_INLINECODE GL_MAX_COMPUTE_ATOMIC_COUNTERS),$(D_INLINECODE GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS),$(D_INLINECODE GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS),$(D_INLINECODE GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS),$(D_INLINECODE GL_MAX_COMPUTE_WORK_GROUP_COUNT), and$(D_INLINECODE GL_MAX_COMPUTE_WORK_GROUP_SIZE) and$(D_INLINECODE GL_DISPATCH_INDIRECT_BUFFER_BINDING) are available only if the GL version is 4.3 or greater.)$(P $(D_INLINECODE GL_MAX_DEBUG_GROUP_STACK_DEPTH),$(D_INLINECODE GL_DEBUG_GROUP_STACK_DEPTH) and$(D_INLINECODE GL_MAX_LABEL_LENGTH) are accepted only if the GL version is 4.3 or greater.)$(P $(D_INLINECODE GL_MAX_UNIFORM_LOCATIONS) is accepted only if the GL version is 4.3 or greater.)$(P $(D_INLINECODE GL_MAX_FRAMEBUFFER_WIDTH),$(D_INLINECODE GL_MAX_FRAMEBUFFER_HEIGHT),$(D_INLINECODE GL_MAX_FRAMEBUFFER_LAYERS), and$(D_INLINECODE GL_MAX_FRAMEBUFFER_SAMPLES) are available only if the GL version is 4.3 or greater.)$(P $(D_INLINECODE GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS),$(D_INLINECODE GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS),$(D_INLINECODE GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS),$(D_INLINECODE GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS),$(D_INLINECODE GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS), and$(D_INLINECODE GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS) are available only if the GL version is 4.3 or higher.)$(P $(D_INLINECODE GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT) is available only if the GL version is 4.3 or greater.)$(P $(D_INLINECODE GL_VERTEX_BINDING_DIVISOR),$(D_INLINECODE GL_VERTEX_BINDING_OFFSET),$(D_INLINECODE GL_VERTEX_BINDING_STRIDE),$(D_INLINECODE GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET) and$(D_INLINECODE GL_MAX_VERTEX_ATTRIB_BINDINGS) are available only if the GL version is 4.3 or greater.) | |
| * | |
| * Params: | |
| * pname = $(P Specifies the parameter value to be returned for non-indexed versions of$(D_INLINECODE glGet). The symbolic constants in the list below are accepted.) | |
| * target = $(P Specifies the parameter value to be returned for indexed versions of$(D_INLINECODE glGet). The symbolic constants in the list below are accepted.) | |
| * index = $(P Specifies the index of the particular element being queried.) | |
| * data = $(P Returns the value or values of the specified parameter.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGetActiveUniform),$(D_INLINECODE glGetAttachedShaders),$(D_INLINECODE glGetAttribLocation),$(D_INLINECODE glGetBufferParameter),$(D_INLINECODE glGetBufferPointerv),$(D_INLINECODE glGetBufferSubData),$(D_INLINECODE glGetCompressedTexImage),$(D_INLINECODE glGetError),$(D_INLINECODE glGetProgram),$(D_INLINECODE glGetProgramInfoLog),$(D_INLINECODE glGetQueryiv),$(D_INLINECODE glGetQueryObject),$(D_INLINECODE glGetShader),$(D_INLINECODE glGetShaderInfoLog),$(D_INLINECODE glGetShaderSource),$(D_INLINECODE glGetString),$(D_INLINECODE glGetTexImage),$(D_INLINECODE glGetTexLevelParameter),$(D_INLINECODE glGetTexParameter),$(D_INLINECODE glGetUniform),$(D_INLINECODE glGetUniformLocation),$(D_INLINECODE glGetVertexAttrib),$(D_INLINECODE glGetVertexAttribPointerv),$(D_INLINECODE glIsEnabled)) | |
| */ | |
| extern(C) void function(GLenum pname, GLboolean* data) @system @nogc nothrow glGetBooleanv; | |
| /** | |
| * glGetActiveAtomicCounterBufferiv: man4/glGetActiveAtomicCounterBufferiv.xml | |
| * | |
| * $(P $(D_INLINECODE glGetActiveAtomicCounterBufferiv) retrieves information about the set of active atomic counter buffers for a program object.$(D_INLINECODE program) is the name of a program object for which the command$(D_INLINECODE glLinkProgram) has been issued in the past. It is not necessary for$(D_INLINECODE program) to have been linked successfully. The link may have failed because the number of active atomic counters exceeded the limits.)$(P $(D_INLINECODE bufferIndex) specifies the index of an active atomic counter buffer and must be in the range zero to the value of$(D_INLINECODE GL_ACTIVE_ATOMIC_COUNTER_BUFFERS) minus one. The value of$(D_INLINECODE GL_ACTIVE_ATOMIC_COUNTER_BUFFERS) for$(D_INLINECODE program) indicates the number of active atomic counter buffer and can be queried with$(D_INLINECODE glGetProgram).)$(P If no error occurs, the parameter(s) specified by$(D_INLINECODE pname) are returned in$(D_INLINECODE params). If an error is generated, the contents of$(D_INLINECODE params) are not modified.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER_BINDING), then the index of the counter buffer binding point associated with the active atomic counter buffer$(D_INLINECODE bufferIndex) for$(D_INLINECODE program) is returned.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE), then the implementation-dependent minimum total buffer object size, in baseic machine units, required to hold all active atomic counters in the atomic counter binding point identified by$(D_INLINECODE bufferIndex) is returned.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS), then the number of active atomic counters for the atomic counter buffer identified by$(D_INLINECODE bufferIndex) is returned.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES), then a list of the active atomic counter indices for the atomic counter buffer identified by$(D_INLINECODE bufferIndex) is returned. The number of elements that will be written into$(D_INLINECODE params) is the value of$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS) for$(D_INLINECODE bufferIndex).)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER),$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER),$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER),$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER),$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER),$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER) then a boolean value indicating whether the atomic counter buffer identified by$(D_INLINECODE bufferIndex) is referenced by the vertex, tessellation control, tessellation evaluation, geometry, fragment or compute processing stages of$(D_INLINECODE program), respectively, is returned.) | |
| * | |
| * $(P $(D_INLINECODE glGetActiveAtomicCounterBufferiv) is available only if the GL version is 4.2 or higher.)$(P $(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER) is available only of the GL version is 4.3 or higher.) | |
| * | |
| * Params: | |
| * program = $(P The name of a program object from which to retrieve information.) | |
| * bufferIndex = $(P Specifies index of an active atomic counter buffer.) | |
| * pname = $(P Specifies which parameter of the atomic counter buffer to retrieve.) | |
| * params = $(P Specifies the address of a variable into which to write the retrieved information.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2011-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGetProgram),$(D_INLINECODE glGetActiveSubroutineUniform),$(D_INLINECODE glGetActiveSubroutineUniformName),$(D_INLINECODE glGetUniformLocation)) | |
| */ | |
| extern(C) void function(GLuint program, GLuint bufferIndex, GLenum pname, GLint* params) @system @nogc nothrow glGetActiveAtomicCounterBufferiv; | |
| /** | |
| * glGetActiveAttrib: man4/glGetActiveAttrib.xml | |
| * | |
| * $(P $(D_INLINECODE glGetActiveAttrib) returns information about an active attribute variable in the program object specified by$(D_INLINECODE program). The number of active attributes can be obtained by calling$(D_INLINECODE glGetProgram) with the value$(D_INLINECODE GL_ACTIVE_ATTRIBUTES). A value of 0 for$(D_INLINECODE index) selects the first active attribute variable. Permissible values for$(D_INLINECODE index) range from zero to the number of active attribute variables minus one.)$(P A vertex shader may use either built-in attribute variables, user-defined attribute variables, or both. Built-in attribute variables have a prefix of "gl_" and reference conventional OpenGL vertex attribtes (e.g.,$(D_INLINECODE gl_Vertex),$(D_INLINECODE gl_Normal), etc., see the OpenGL Shading Language specification for a complete list.) User-defined attribute variables have arbitrary names and obtain their values through numbered generic vertex attributes. An attribute variable (either built-in or user-defined) is considered active if it is determined during the link operation that it may be accessed during program execution. Therefore,$(D_INLINECODE program) should have previously been the target of a call to$(D_INLINECODE glLinkProgram), but it is not necessary for it to have been linked successfully.)$(P The size of the character buffer required to store the longest attribute variable name in$(D_INLINECODE program) can be obtained by calling$(D_INLINECODE glGetProgram) with the value$(D_INLINECODE GL_ACTIVE_ATTRIBUTE_MAX_LENGTH). This value should be used to allocate a buffer of sufficient size to store the returned attribute name. The size of this character buffer is passed in$(D_INLINECODE bufSize), and a pointer to this character buffer is passed in$(D_INLINECODE name).)$(P $(D_INLINECODE glGetActiveAttrib) returns the name of the attribute variable indicated by$(D_INLINECODE index), storing it in the character buffer specified by$(D_INLINECODE name). The string returned will be null terminated. The actual number of characters written into this buffer is returned in$(D_INLINECODE length), and this count does not include the null termination character. If the length of the returned string is not required, a value of$(D_INLINECODE NULL) can be passed in the$(D_INLINECODE length) argument.)$(P The$(D_INLINECODE type) argument specifies a pointer to a variable into which the attribute variable's data type will be written. The symbolic constants$(D_INLINECODE GL_FLOAT),$(D_INLINECODE GL_FLOAT_VEC2),$(D_INLINECODE GL_FLOAT_VEC3),$(D_INLINECODE GL_FLOAT_VEC4),$(D_INLINECODE GL_FLOAT_MAT2),$(D_INLINECODE GL_FLOAT_MAT3),$(D_INLINECODE GL_FLOAT_MAT4),$(D_INLINECODE GL_FLOAT_MAT2x3),$(D_INLINECODE GL_FLOAT_MAT2x4),$(D_INLINECODE GL_FLOAT_MAT3x2),$(D_INLINECODE GL_FLOAT_MAT3x4),$(D_INLINECODE GL_FLOAT_MAT4x2),$(D_INLINECODE GL_FLOAT_MAT4x3),$(D_INLINECODE GL_INT),$(D_INLINECODE GL_INT_VEC2),$(D_INLINECODE GL_INT_VEC3),$(D_INLINECODE GL_INT_VEC4),$(D_INLINECODE GL_UNSIGNED_INT),$(D_INLINECODE GL_UNSIGNED_INT_VEC2),$(D_INLINECODE GL_UNSIGNED_INT_VEC3),$(D_INLINECODE GL_UNSIGNED_INT_VEC4),$(D_INLINECODE GL_DOUBLE),$(D_INLINECODE GL_DOUBLE_VEC2),$(D_INLINECODE GL_DOUBLE_VEC3),$(D_INLINECODE GL_DOUBLE_VEC4),$(D_INLINECODE GL_DOUBLE_MAT2),$(D_INLINECODE GL_DOUBLE_MAT3),$(D_INLINECODE GL_DOUBLE_MAT4),$(D_INLINECODE GL_DOUBLE_MAT2x3),$(D_INLINECODE GL_DOUBLE_MAT2x4),$(D_INLINECODE GL_DOUBLE_MAT3x2),$(D_INLINECODE GL_DOUBLE_MAT3x4),$(D_INLINECODE GL_DOUBLE_MAT4x2), or$(D_INLINECODE GL_DOUBLE_MAT4x3) may be returned. The$(D_INLINECODE size) argument will return the size of the attribute, in units of the type returned in$(D_INLINECODE type).)$(P The list of active attribute variables may include both built-in attribute variables (which begin with the prefix "gl_") as well as user-defined attribute variable names.)$(P This function will return as much information as it can about the specified active attribute variable. If no information is available,$(D_INLINECODE length) will be 0, and$(D_INLINECODE name) will be an empty string. This situation could occur if this function is called after a link operation that failed. If an error occurs, the return values$(D_INLINECODE length),$(D_INLINECODE size),$(D_INLINECODE type), and$(D_INLINECODE name) will be unmodified.) | |
| * | |
| * Params: | |
| * program = $(P Specifies the program object to be queried.) | |
| * index = $(P Specifies the index of the attribute variable to be queried.) | |
| * bufSize = $(P Specifies the maximum number of characters OpenGL is allowed to write in the character buffer indicated by$(D_INLINECODE name).) | |
| * length = $(P Returns the number of characters actually written by OpenGL in the string indicated by$(D_INLINECODE name) (excluding the null terminator) if a value other than$(D_INLINECODE NULL) is passed.) | |
| * size = $(P Returns the size of the attribute variable.) | |
| * type = $(P Returns the data type of the attribute variable.) | |
| * name = $(P Returns a null terminated string containing the name of the attribute variable.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2003-2005 3Dlabs Inc. Ltd. Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBindAttribLocation),$(D_INLINECODE glLinkProgram),$(D_INLINECODE glVertexAttrib),$(D_INLINECODE glVertexAttribPointer)) | |
| */ | |
| extern(C) void function(GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* type, GLchar* name) @system @nogc nothrow glGetActiveAttrib; | |
| /** | |
| * glGetActiveSubroutineName: man4/glGetActiveSubroutineName.xml | |
| * | |
| * $(P $(D_INLINECODE glGetActiveSubroutineName) queries the name of an active shader subroutine uniform from the program object given in$(D_INLINECODE program).$(D_INLINECODE index) specifies the index of the shader subroutine uniform within the shader stage given by$(D_INLINECODE stage), and must between zero and the value of$(D_INLINECODE GL_ACTIVE_SUBROUTINES) minus one for the shader stage.)$(P The name of the selected subroutine is returned as a null-terminated string in$(D_INLINECODE name). The actual number of characters written into$(D_INLINECODE name), not including the null-terminator, is is returned in$(D_INLINECODE length). If$(D_INLINECODE length) is$(D_INLINECODE NULL), no length is returned. The maximum number of characters that may be written into$(D_INLINECODE name), including the null-terminator, is given in$(D_INLINECODE bufsize).) | |
| * | |
| * Params: | |
| * program = $(P Specifies the name of the program containing the subroutine.) | |
| * shadertype = $(P Specifies the shader stage from which to query the subroutine name.) | |
| * index = $(P Specifies the index of the shader subroutine uniform.) | |
| * bufsize = $(P Specifies the size of the buffer whose address is given in$(D_INLINECODE name).) | |
| * length = $(P Specifies the address of a variable which is to receive the length of the shader subroutine uniform name.) | |
| * name = $(P Specifies the address of an array into which the name of the shader subroutine uniform will be written.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGetSubroutineIndex),$(D_INLINECODE glGetActiveSubroutineUniform),$(D_INLINECODE glGetProgramStage)) | |
| */ | |
| extern(C) void function(GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei* length, GLchar* name) @system @nogc nothrow glGetActiveSubroutineName; | |
| /** | |
| * glGetActiveSubroutineUniform: man4/glGetActiveSubroutineUniform.xml | |
| * | |
| * $(P $(D_INLINECODE glGetActiveSubroutineUniform) queries a parameter of an active shader subroutine uniform.$(D_INLINECODE program) contains the name of the program containing the uniform.$(D_INLINECODE shadertype) specifies the stage which which the uniform location, given by$(D_INLINECODE index), is valid.$(D_INLINECODE index) must be between zero and the value of$(D_INLINECODE GL_ACTIVE_SUBROUTINE_UNIFORMS) minus one for the shader stage.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_NUM_COMPATIBLE_SUBROUTINES), a single integer indicating the number of subroutines that can be assigned to the uniform is returned in$(D_INLINECODE values).)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_COMPATIBLE_SUBROUTINES), an array of integers is returned in$(D_INLINECODE values), with each integer specifying the index of an active subroutine that can be assigned to the selected subroutine uniform. The number of integers returned is the same as the value returned for$(D_INLINECODE GL_NUM_COMPATIBLE_SUBROUTINES).)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_UNIFORM_SIZE), a single integer is returned in$(D_INLINECODE values). If the selected subroutine uniform is an array, the declared size of the array is returned; otherwise, one is returned.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_UNIFORM_NAME_LENGTH), a single integer specifying the length of the subroutine uniform name (including the terminating null character) is returned in$(D_INLINECODE values).) | |
| * | |
| * Params: | |
| * program = $(P Specifies the name of the program containing the subroutine.) | |
| * shadertype = $(P Specifies the shader stage from which to query for the subroutine parameter.$(D_INLINECODE shadertype) must be one of$(D_INLINECODE GL_VERTEX_SHADER),$(D_INLINECODE GL_TESS_CONTROL_SHADER),$(D_INLINECODE GL_TESS_EVALUATION_SHADER),$(D_INLINECODE GL_GEOMETRY_SHADER) or$(D_INLINECODE GL_FRAGMENT_SHADER).) | |
| * index = $(P Specifies the index of the shader subroutine uniform.) | |
| * pname = $(P Specifies the parameter of the shader subroutine uniform to query.$(D_INLINECODE pname) must be$(D_INLINECODE GL_NUM_COMPATIBLE_SUBROUTINES),$(D_INLINECODE GL_COMPATIBLE_SUBROUTINES),$(D_INLINECODE GL_UNIFORM_SIZE) or$(D_INLINECODE GL_UNIFORM_NAME_LENGTH).) | |
| * values = $(P Specifies the address of a into which the queried value or values will be placed.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGetSubroutineIndex),$(D_INLINECODE glGetActiveSubroutineUniformName),$(D_INLINECODE glGetProgramStage)) | |
| */ | |
| extern(C) void function(GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint* values) @system @nogc nothrow glGetActiveSubroutineUniformiv; | |
| /** | |
| * glGetActiveSubroutineUniformName: man4/glGetActiveSubroutineUniformName.xml | |
| * | |
| * $(P $(D_INLINECODE glGetActiveSubroutineUniformName) retrieves the name of an active shader subroutine uniform.$(D_INLINECODE program) contains the name of the program containing the uniform.$(D_INLINECODE shadertype) specifies the stage for which which the uniform location, given by$(D_INLINECODE index), is valid.$(D_INLINECODE index) must be between zero and the value of$(D_INLINECODE GL_ACTIVE_SUBROUTINE_UNIFORMS) minus one for the shader stage.)$(P The uniform name is returned as a null-terminated string in$(D_INLINECODE name). The actual number of characters written into$(D_INLINECODE name), excluding the null terminator is returned in$(D_INLINECODE length). If$(D_INLINECODE length) is$(D_INLINECODE NULL), no length is returned. The maximum number of characters that may be written into$(D_INLINECODE name), including the null terminator, is specified by$(D_INLINECODE bufsize). The length of the longest subroutine uniform name in$(D_INLINECODE program) and$(D_INLINECODE shadertype) is given by the value of$(D_INLINECODE GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH), which can be queried with$(D_INLINECODE glGetProgramStage).) | |
| * | |
| * Params: | |
| * program = $(P Specifies the name of the program containing the subroutine.) | |
| * shadertype = $(P Specifies the shader stage from which to query for the subroutine parameter.$(D_INLINECODE shadertype) must be one of$(D_INLINECODE GL_VERTEX_SHADER),$(D_INLINECODE GL_TESS_CONTROL_SHADER),$(D_INLINECODE GL_TESS_EVALUATION_SHADER),$(D_INLINECODE GL_GEOMETRY_SHADER) or$(D_INLINECODE GL_FRAGMENT_SHADER).) | |
| * index = $(P Specifies the index of the shader subroutine uniform.) | |
| * bufsize = $(P Specifies the size of the buffer whose address is given in$(D_INLINECODE name).) | |
| * length = $(P Specifies the address of a variable into which is written the number of characters copied into$(D_INLINECODE name).) | |
| * name = $(P Specifies the address of a buffer that will receive the name of the specified shader subroutine uniform.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGetSubroutineIndex),$(D_INLINECODE glGetActiveSubroutineUniform),$(D_INLINECODE glGetProgramStage)) | |
| */ | |
| extern(C) void function(GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei* length, GLchar* name) @system @nogc nothrow glGetActiveSubroutineUniformName; | |
| /** | |
| * glGetActiveUniform: man4/glGetActiveUniform.xml | |
| * | |
| * $(P $(D_INLINECODE glGetActiveUniform) returns information about an active uniform variable in the program object specified by$(D_INLINECODE program). The number of active uniform variables can be obtained by calling$(D_INLINECODE glGetProgram) with the value$(D_INLINECODE GL_ACTIVE_UNIFORMS). A value of 0 for$(D_INLINECODE index) selects the first active uniform variable. Permissible values for$(D_INLINECODE index) range from zero to the number of active uniform variables minus one.)$(P Shaders may use either built-in uniform variables, user-defined uniform variables, or both. Built-in uniform variables have a prefix of "gl_" and reference existing OpenGL state or values derived from such state (e.g.,$(D_INLINECODE gl_DepthRangeParameters), see the OpenGL Shading Language specification for a complete list.) User-defined uniform variables have arbitrary names and obtain their values from the application through calls to$(D_INLINECODE glUniform). A uniform variable (either built-in or user-defined) is considered active if it is determined during the link operation that it may be accessed during program execution. Therefore,$(D_INLINECODE program) should have previously been the target of a call to$(D_INLINECODE glLinkProgram), but it is not necessary for it to have been linked successfully.)$(P The size of the character buffer required to store the longest uniform variable name in$(D_INLINECODE program) can be obtained by calling$(D_INLINECODE glGetProgram) with the value$(D_INLINECODE GL_ACTIVE_UNIFORM_MAX_LENGTH). This value should be used to allocate a buffer of sufficient size to store the returned uniform variable name. The size of this character buffer is passed in$(D_INLINECODE bufSize), and a pointer to this character buffer is passed in$(D_INLINECODE name.))$(P $(D_INLINECODE glGetActiveUniform) returns the name of the uniform variable indicated by$(D_INLINECODE index), storing it in the character buffer specified by$(D_INLINECODE name). The string returned will be null terminated. The actual number of characters written into this buffer is returned in$(D_INLINECODE length), and this count does not include the null termination character. If the length of the returned string is not required, a value of$(D_INLINECODE NULL) can be passed in the$(D_INLINECODE length) argument.)$(P The$(D_INLINECODE type) argument will return a pointer to the uniform variable's data type. The symbolic constants returned for uniform types are shown in the table below.$(B Returned Symbolic Contant)$(B Shader Uniform Type)$(D_INLINECODE GL_FLOAT)$(D_INLINECODE float)$(D_INLINECODE GL_FLOAT_VEC2)$(D_INLINECODE vec2)$(D_INLINECODE GL_FLOAT_VEC3)$(D_INLINECODE vec3)$(D_INLINECODE GL_FLOAT_VEC4)$(D_INLINECODE vec4)$(D_INLINECODE GL_DOUBLE)$(D_INLINECODE double)$(D_INLINECODE GL_DOUBLE_VEC2)$(D_INLINECODE dvec2)$(D_INLINECODE GL_DOUBLE_VEC3)$(D_INLINECODE dvec3)$(D_INLINECODE GL_DOUBLE_VEC4)$(D_INLINECODE dvec4)$(D_INLINECODE GL_INT)$(D_INLINECODE int)$(D_INLINECODE GL_INT_VEC2)$(D_INLINECODE ivec2)$(D_INLINECODE GL_INT_VEC3)$(D_INLINECODE ivec3)$(D_INLINECODE GL_INT_VEC4)$(D_INLINECODE ivec4)$(D_INLINECODE GL_UNSIGNED_INT)$(D_INLINECODE unsigned int)$(D_INLINECODE GL_UNSIGNED_INT_VEC2)$(D_INLINECODE uvec2)$(D_INLINECODE GL_UNSIGNED_INT_VEC3)$(D_INLINECODE uvec3)$(D_INLINECODE GL_UNSIGNED_INT_VEC4)$(D_INLINECODE uvec4)$(D_INLINECODE GL_BOOL)$(D_INLINECODE bool)$(D_INLINECODE GL_BOOL_VEC2)$(D_INLINECODE bvec2)$(D_INLINECODE GL_BOOL_VEC3)$(D_INLINECODE bvec3)$(D_INLINECODE GL_BOOL_VEC4)$(D_INLINECODE bvec4)$(D_INLINECODE GL_FLOAT_MAT2)$(D_INLINECODE mat2)$(D_INLINECODE GL_FLOAT_MAT3)$(D_INLINECODE mat3)$(D_INLINECODE GL_FLOAT_MAT4)$(D_INLINECODE mat4)$(D_INLINECODE GL_FLOAT_MAT2x3)$(D_INLINECODE mat2x3)$(D_INLINECODE GL_FLOAT_MAT2x4)$(D_INLINECODE mat2x4)$(D_INLINECODE GL_FLOAT_MAT3x2)$(D_INLINECODE mat3x2)$(D_INLINECODE GL_FLOAT_MAT3x4)$(D_INLINECODE mat3x4)$(D_INLINECODE GL_FLOAT_MAT4x2)$(D_INLINECODE mat4x2)$(D_INLINECODE GL_FLOAT_MAT4x3)$(D_INLINECODE mat4x3)$(D_INLINECODE GL_DOUBLE_MAT2)$(D_INLINECODE dmat2)$(D_INLINECODE GL_DOUBLE_MAT3)$(D_INLINECODE dmat3)$(D_INLINECODE GL_DOUBLE_MAT4)$(D_INLINECODE dmat4)$(D_INLINECODE GL_DOUBLE_MAT2x3)$(D_INLINECODE dmat2x3)$(D_INLINECODE GL_DOUBLE_MAT2x4)$(D_INLINECODE dmat2x4)$(D_INLINECODE GL_DOUBLE_MAT3x2)$(D_INLINECODE dmat3x2)$(D_INLINECODE GL_DOUBLE_MAT3x4)$(D_INLINECODE dmat3x4)$(D_INLINECODE GL_DOUBLE_MAT4x2)$(D_INLINECODE dmat4x2)$(D_INLINECODE GL_DOUBLE_MAT4x3)$(D_INLINECODE dmat4x3)$(D_INLINECODE GL_SAMPLER_1D)$(D_INLINECODE sampler1D)$(D_INLINECODE GL_SAMPLER_2D)$(D_INLINECODE sampler2D)$(D_INLINECODE GL_SAMPLER_3D)$(D_INLINECODE sampler3D)$(D_INLINECODE GL_SAMPLER_CUBE)$(D_INLINECODE samplerCube)$(D_INLINECODE GL_SAMPLER_1D_SHADOW)$(D_INLINECODE sampler1DShadow)$(D_INLINECODE GL_SAMPLER_2D_SHADOW)$(D_INLINECODE sampler2DShadow)$(D_INLINECODE GL_SAMPLER_1D_ARRAY)$(D_INLINECODE sampler1DArray)$(D_INLINECODE GL_SAMPLER_2D_ARRAY)$(D_INLINECODE sampler2DArray)$(D_INLINECODE GL_SAMPLER_1D_ARRAY_SHADOW)$(D_INLINECODE sampler1DArrayShadow)$(D_INLINECODE GL_SAMPLER_2D_ARRAY_SHADOW)$(D_INLINECODE sampler2DArrayShadow)$(D_INLINECODE GL_SAMPLER_2D_MULTISAMPLE)$(D_INLINECODE sampler2DMS)$(D_INLINECODE GL_SAMPLER_2D_MULTISAMPLE_ARRAY)$(D_INLINECODE sampler2DMSArray)$(D_INLINECODE GL_SAMPLER_CUBE_SHADOW)$(D_INLINECODE samplerCubeShadow)$(D_INLINECODE GL_SAMPLER_BUFFER)$(D_INLINECODE samplerBuffer)$(D_INLINECODE GL_SAMPLER_2D_RECT)$(D_INLINECODE sampler2DRect)$(D_INLINECODE GL_SAMPLER_2D_RECT_SHADOW)$(D_INLINECODE sampler2DRectShadow)$(D_INLINECODE GL_INT_SAMPLER_1D)$(D_INLINECODE isampler1D)$(D_INLINECODE GL_INT_SAMPLER_2D)$(D_INLINECODE isampler2D)$(D_INLINECODE GL_INT_SAMPLER_3D)$(D_INLINECODE isampler3D)$(D_INLINECODE GL_INT_SAMPLER_CUBE)$(D_INLINECODE isamplerCube)$(D_INLINECODE GL_INT_SAMPLER_1D_ARRAY)$(D_INLINECODE isampler1DArray)$(D_INLINECODE GL_INT_SAMPLER_2D_ARRAY)$(D_INLINECODE isampler2DArray)$(D_INLINECODE GL_INT_SAMPLER_2D_MULTISAMPLE)$(D_INLINECODE isampler2DMS)$(D_INLINECODE GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY)$(D_INLINECODE isampler2DMSArray)$(D_INLINECODE GL_INT_SAMPLER_BUFFER)$(D_INLINECODE isamplerBuffer)$(D_INLINECODE GL_INT_SAMPLER_2D_RECT)$(D_INLINECODE isampler2DRect)$(D_INLINECODE GL_UNSIGNED_INT_SAMPLER_1D)$(D_INLINECODE usampler1D)$(D_INLINECODE GL_UNSIGNED_INT_SAMPLER_2D)$(D_INLINECODE usampler2D)$(D_INLINECODE GL_UNSIGNED_INT_SAMPLER_3D)$(D_INLINECODE usampler3D)$(D_INLINECODE GL_UNSIGNED_INT_SAMPLER_CUBE)$(D_INLINECODE usamplerCube)$(D_INLINECODE GL_UNSIGNED_INT_SAMPLER_1D_ARRAY)$(D_INLINECODE usampler2DArray)$(D_INLINECODE GL_UNSIGNED_INT_SAMPLER_2D_ARRAY)$(D_INLINECODE usampler2DArray)$(D_INLINECODE GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE)$(D_INLINECODE usampler2DMS)$(D_INLINECODE GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY)$(D_INLINECODE usampler2DMSArray)$(D_INLINECODE GL_UNSIGNED_INT_SAMPLER_BUFFER)$(D_INLINECODE usamplerBuffer)$(D_INLINECODE GL_UNSIGNED_INT_SAMPLER_2D_RECT)$(D_INLINECODE usampler2DRect)$(D_INLINECODE GL_IMAGE_1D)$(D_INLINECODE image1D)$(D_INLINECODE GL_IMAGE_2D)$(D_INLINECODE image2D)$(D_INLINECODE GL_IMAGE_3D)$(D_INLINECODE image3D)$(D_INLINECODE GL_IMAGE_2D_RECT)$(D_INLINECODE image2DRect)$(D_INLINECODE GL_IMAGE_CUBE)$(D_INLINECODE imageCube)$(D_INLINECODE GL_IMAGE_BUFFER)$(D_INLINECODE imageBuffer)$(D_INLINECODE GL_IMAGE_1D_ARRAY)$(D_INLINECODE image1DArray)$(D_INLINECODE GL_IMAGE_2D_ARRAY)$(D_INLINECODE image2DArray)$(D_INLINECODE GL_IMAGE_2D_MULTISAMPLE)$(D_INLINECODE image2DMS)$(D_INLINECODE GL_IMAGE_2D_MULTISAMPLE_ARRAY)$(D_INLINECODE image2DMSArray)$(D_INLINECODE GL_INT_IMAGE_1D)$(D_INLINECODE iimage1D)$(D_INLINECODE GL_INT_IMAGE_2D)$(D_INLINECODE iimage2D)$(D_INLINECODE GL_INT_IMAGE_3D)$(D_INLINECODE iimage3D)$(D_INLINECODE GL_INT_IMAGE_2D_RECT)$(D_INLINECODE iimage2DRect)$(D_INLINECODE GL_INT_IMAGE_CUBE)$(D_INLINECODE iimageCube)$(D_INLINECODE GL_INT_IMAGE_BUFFER)$(D_INLINECODE iimageBuffer)$(D_INLINECODE GL_INT_IMAGE_1D_ARRAY)$(D_INLINECODE iimage1DArray)$(D_INLINECODE GL_INT_IMAGE_2D_ARRAY)$(D_INLINECODE iimage2DArray)$(D_INLINECODE GL_INT_IMAGE_2D_MULTISAMPLE)$(D_INLINECODE iimage2DMS)$(D_INLINECODE GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY)$(D_INLINECODE iimage2DMSArray)$(D_INLINECODE GL_UNSIGNED_INT_IMAGE_1D)$(D_INLINECODE uimage1D)$(D_INLINECODE GL_UNSIGNED_INT_IMAGE_2D)$(D_INLINECODE uimage2D)$(D_INLINECODE GL_UNSIGNED_INT_IMAGE_3D)$(D_INLINECODE uimage3D)$(D_INLINECODE GL_UNSIGNED_INT_IMAGE_2D_RECT)$(D_INLINECODE uimage2DRect)$(D_INLINECODE GL_UNSIGNED_INT_IMAGE_CUBE)$(D_INLINECODE uimageCube)$(D_INLINECODE GL_UNSIGNED_INT_IMAGE_BUFFER)$(D_INLINECODE uimageBuffer)$(D_INLINECODE GL_UNSIGNED_INT_IMAGE_1D_ARRAY)$(D_INLINECODE uimage1DArray)$(D_INLINECODE GL_UNSIGNED_INT_IMAGE_2D_ARRAY)$(D_INLINECODE uimage2DArray)$(D_INLINECODE GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE)$(D_INLINECODE uimage2DMS)$(D_INLINECODE GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY)$(D_INLINECODE uimage2DMSArray)$(D_INLINECODE GL_UNSIGNED_INT_ATOMIC_COUNTER)$(D_INLINECODE atomic_uint))$(P If one or more elements of an array are active, the name of the array is returned in$(D_INLINECODE name), the type is returned in$(D_INLINECODE type), and the$(D_INLINECODE size) parameter returns the highest array element index used, plus one, as determined by the compiler and/or linker. Only one active uniform variable will be reported for a uniform array.)$(P Uniform variables that are declared as structures or arrays of structures will not be returned directly by this function. Instead, each of these uniform variables will be reduced to its fundamental components containing the "." and "[]" operators such that each of the names is valid as an argument to$(D_INLINECODE glGetUniformLocation). Each of these reduced uniform variables is counted as one active uniform variable and is assigned an index. A valid name cannot be a structure, an array of structures, or a subcomponent of a vector or matrix.)$(P The size of the uniform variable will be returned in$(D_INLINECODE size). Uniform variables other than arrays will have a size of 1. Structures and arrays of structures will be reduced as described earlier, such that each of the names returned will be a data type in the earlier list. If this reduction results in an array, the size returned will be as described for uniform arrays; otherwise, the size returned will be 1.)$(P The list of active uniform variables may include both built-in uniform variables (which begin with the prefix "gl_") as well as user-defined uniform variable names.)$(P This function will return as much information as it can about the specified active uniform variable. If no information is available,$(D_INLINECODE length) will be 0, and$(D_INLINECODE name) will be an empty string. This situation could occur if this function is called after a link operation that failed. If an error occurs, the return values$(D_INLINECODE length),$(D_INLINECODE size),$(D_INLINECODE type), and$(D_INLINECODE name) will be unmodified.) | |
| * | |
| * $(P The double types,$(D_INLINECODE GL_DOUBLE),$(D_INLINECODE GL_DOUBLE_VEC2),$(D_INLINECODE GL_DOUBLE_VEC3),$(D_INLINECODE GL_DOUBLE_VEC4),$(D_INLINECODE GL_DOUBLE_MAT2),$(D_INLINECODE GL_DOUBLE_MAT3),$(D_INLINECODE GL_DOUBLE_MAT4),$(D_INLINECODE GL_DOUBLE_MAT2x3),$(D_INLINECODE GL_DOUBLE_MAT2x4),$(D_INLINECODE GL_DOUBLE_MAT3x2),$(D_INLINECODE GL_DOUBLE_MAT3x4),$(D_INLINECODE GL_DOUBLE_MAT4x2), and$(D_INLINECODE GL_DOUBLE_MAT4x3) are only available if the GL version is 4.1 or higher.)$(P The image types,$(D_INLINECODE GL_IMAGE_1D),$(D_INLINECODE GL_IMAGE_2D),$(D_INLINECODE GL_IMAGE_3D),$(D_INLINECODE GL_IMAGE_2D_RECT),$(D_INLINECODE GL_IMAGE_CUBE),$(D_INLINECODE GL_IMAGE_BUFFER),$(D_INLINECODE GL_IMAGE_1D_ARRAY),$(D_INLINECODE GL_IMAGE_2D_ARRAY),$(D_INLINECODE GL_IMAGE_2D_MULTISAMPLE),$(D_INLINECODE GL_IMAGE_2D_MULTISAMPLE_ARRAY),$(D_INLINECODE GL_INT_IMAGE_1D),$(D_INLINECODE GL_INT_IMAGE_2D),$(D_INLINECODE GL_INT_IMAGE_3D),$(D_INLINECODE GL_INT_IMAGE_2D_RECT),$(D_INLINECODE GL_INT_IMAGE_CUBE),$(D_INLINECODE GL_INT_IMAGE_BUFFER),$(D_INLINECODE GL_INT_IMAGE_1D_ARRAY),$(D_INLINECODE GL_INT_IMAGE_2D_ARRAY),$(D_INLINECODE GL_INT_IMAGE_2D_MULTISAMPLE),$(D_INLINECODE GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY),$(D_INLINECODE GL_UNSIGNED_INT_IMAGE_1D),$(D_INLINECODE GL_UNSIGNED_INT_IMAGE_2D),$(D_INLINECODE GL_UNSIGNED_INT_IMAGE_3D),$(D_INLINECODE GL_UNSIGNED_INT_IMAGE_2D_RECT),$(D_INLINECODE GL_UNSIGNED_INT_IMAGE_CUBE),$(D_INLINECODE GL_UNSIGNED_INT_IMAGE_BUFFER),$(D_INLINECODE GL_UNSIGNED_INT_IMAGE_1D_ARRAY),$(D_INLINECODE GL_UNSIGNED_INT_IMAGE_2D_ARRAY),$(D_INLINECODE GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE),$(D_INLINECODE GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY), and the atomic counter type,$(D_INLINECODE GL_UNSIGNED_INT_ATOMIC_COUNTER) are only available if the GL version is 4.2 or higher.) | |
| * | |
| * Params: | |
| * program = $(P Specifies the program object to be queried.) | |
| * index = $(P Specifies the index of the uniform variable to be queried.) | |
| * bufSize = $(P Specifies the maximum number of characters OpenGL is allowed to write in the character buffer indicated by$(D_INLINECODE name).) | |
| * length = $(P Returns the number of characters actually written by OpenGL in the string indicated by$(D_INLINECODE name) (excluding the null terminator) if a value other than$(D_INLINECODE NULL) is passed.) | |
| * size = $(P Returns the size of the uniform variable.) | |
| * type = $(P Returns the data type of the uniform variable.) | |
| * name = $(P Returns a null terminated string containing the name of the uniform variable.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2003-2005 3Dlabs Inc. Ltd. Copyright™ 2010-2014 Khronos Group This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGetUniform),$(D_INLINECODE glGetUniformLocation),$(D_INLINECODE glLinkProgram),$(D_INLINECODE glUniform),$(D_INLINECODE glUseProgram)) | |
| */ | |
| extern(C) void function(GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* type, GLchar* name) @system @nogc nothrow glGetActiveUniform; | |
| /** | |
| * glGetActiveUniformBlock: man4/glGetActiveUniformBlock.xml | |
| * | |
| * $(P $(D_INLINECODE glGetActiveUniformBlockiv) retrieves information about an active uniform block within$(D_INLINECODE program).)$(P $(D_INLINECODE program) must be the name of a program object for which the command$(D_INLINECODE glLinkProgram) must have been called in the past, although it is not required that$(D_INLINECODE glLinkProgram) must have succeeded. The link could have failed because the number of active uniforms exceeded the limit.)$(P $(D_INLINECODE uniformBlockIndex) is an active uniform block index of$(D_INLINECODE program), and must be less than the value of$(D_INLINECODE GL_ACTIVE_UNIFORM_BLOCKS).)$(P Upon success, the uniform block parameter(s) specified by$(D_INLINECODE pname) are returned in$(D_INLINECODE params). If an error occurs, nothing will be written to$(D_INLINECODE params).)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_UNIFORM_BLOCK_BINDING), then the index of the uniform buffer binding point last selected by the uniform block specified by$(D_INLINECODE uniformBlockIndex) for$(D_INLINECODE program) is returned. If no uniform block has been previously specified, zero is returned.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_UNIFORM_BLOCK_DATA_SIZE), then the implementation-dependent minimum total buffer object size, in basic machine units, required to hold all active uniforms in the uniform block identified by$(D_INLINECODE uniformBlockIndex) is returned. It is neither guaranteed nor expected that a given implementation will arrange uniform values as tightly packed in a buffer object. The exception to this is the, which guarantees specific packing behavior and does not require the application to query for offsets and strides. In this case the minimum size may still be queried, even though it is determined in advance based only on the uniform block declaration.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_UNIFORM_BLOCK_NAME_LENGTH), then the total length (including the nul terminator) of the name of the uniform block identified by$(D_INLINECODE uniformBlockIndex) is returned.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS), then the number of active uniforms in the uniform block identified by$(D_INLINECODE uniformBlockIndex) is returned.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES), then a list of the active uniform indices for the uniform block identified by$(D_INLINECODE uniformBlockIndex) is returned. The number of elements that will be written to$(D_INLINECODE params) is the value of$(D_INLINECODE GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS) for$(D_INLINECODE uniformBlockIndex).)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER),$(D_INLINECODE GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER),$(D_INLINECODE GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER),$(D_INLINECODE GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER),$(D_INLINECODE GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER), or$(D_INLINECODE GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER) then a boolean value indicating whether the uniform block identified by$(D_INLINECODE uniformBlockIndex) is referenced by the vertex, tessellation control, tessellation evaluation, geometry, fragment or compute programming stages of program, respectively, is returned.) | |
| * | |
| * $(P $(D_INLINECODE glGetActiveUniformBlockiv) is available only if the GL version is 3.1 or greater.)$(P $(D_INLINECODE GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER) is accepted only if the GL version is 4.3 or greater.) | |
| * | |
| * Params: | |
| * program = $(P Specifies the name of a program containing the uniform block.) | |
| * uniformBlockIndex = $(P Specifies the index of the uniform block within$(D_INLINECODE program).) | |
| * pname = $(P Specifies the name of the parameter to query.) | |
| * params = $(P Specifies the address of a variable to receive the result of the query.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGetActiveUniformBlockName),$(D_INLINECODE glGetUniformBlockIndex),$(D_INLINECODE glLinkProgram)) | |
| */ | |
| extern(C) void function(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params) @system @nogc nothrow glGetActiveUniformBlockiv; | |
| /** | |
| * glGetActiveUniformBlockName: man4/glGetActiveUniformBlockName.xml | |
| * | |
| * $(P $(D_INLINECODE glGetActiveUniformBlockName) retrieves the name of the active uniform block at$(D_INLINECODE uniformBlockIndex) within$(D_INLINECODE program).)$(P $(D_INLINECODE program) must be the name of a program object for which the command$(D_INLINECODE glLinkProgram) must have been called in the past, although it is not required that$(D_INLINECODE glLinkProgram) must have succeeded. The link could have failed because the number of active uniforms exceeded the limit.)$(P $(D_INLINECODE uniformBlockIndex) is an active uniform block index of$(D_INLINECODE program), and must be less than the value of$(D_INLINECODE GL_ACTIVE_UNIFORM_BLOCKS).)$(P Upon success, the name of the uniform block identified by$(D_INLINECODE unifomBlockIndex) is returned into$(D_INLINECODE uniformBlockName). The name is nul-terminated. The actual number of characters written into$(D_INLINECODE uniformBlockName), excluding the nul terminator, is returned in$(D_INLINECODE length). If$(D_INLINECODE length) is$(D_INLINECODE NULL), no length is returned.)$(P $(D_INLINECODE bufSize) contains the maximum number of characters (including the nul terminator) that will be written into$(D_INLINECODE uniformBlockName).)$(P If an error occurs, nothing will be written to$(D_INLINECODE uniformBlockName) or$(D_INLINECODE length).) | |
| * | |
| * $(P $(D_INLINECODE glGetActiveUniformBlockName) is available only if the GL version is 3.1 or greater.) | |
| * | |
| * Params: | |
| * program = $(P Specifies the name of a program containing the uniform block.) | |
| * uniformBlockIndex = $(P Specifies the index of the uniform block within$(D_INLINECODE program).) | |
| * bufSize = $(P Specifies the size of the buffer addressed by$(D_INLINECODE uniformBlockName).) | |
| * length = $(P Specifies the address of a variable to receive the number of characters that were written to$(D_INLINECODE uniformBlockName).) | |
| * uniformBlockName = $(P Specifies the address an array of characters to receive the name of the uniform block at$(D_INLINECODE uniformBlockIndex).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGetActiveUniformBlock),$(D_INLINECODE glGetUniformBlockIndex)) | |
| */ | |
| extern(C) void function(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName) @system @nogc nothrow glGetActiveUniformBlockName; | |
| /** | |
| * glGetActiveUniformName: man4/glGetActiveUniformName.xml | |
| * | |
| * $(P $(D_INLINECODE glGetActiveUniformName) returns the name of the active uniform at$(D_INLINECODE uniformIndex) within$(D_INLINECODE program). If$(D_INLINECODE uniformName) is not$(D_INLINECODE NULL), up to$(D_INLINECODE bufSize) characters (including a nul-terminator) will be written into the array whose address is specified by$(D_INLINECODE uniformName). If$(D_INLINECODE length) is not$(D_INLINECODE NULL), the number of characters that were (or would have been) written into$(D_INLINECODE uniformName) (not including the nul-terminator) will be placed in the variable whose address is specified in$(D_INLINECODE length). If$(D_INLINECODE length) is$(D_INLINECODE NULL), no length is returned. The length of the longest uniform name in$(D_INLINECODE program) is given by the value of$(D_INLINECODE GL_ACTIVE_UNIFORM_MAX_LENGTH), which can be queried with$(D_INLINECODE glGetProgram).)$(P If$(D_INLINECODE glGetActiveUniformName) is not successful, nothing is written to$(D_INLINECODE length) or$(D_INLINECODE uniformName).)$(P $(D_INLINECODE program) must be the name of a program for which the command$(D_INLINECODE glLinkProgram) has been issued in the past. It is not necessary for$(D_INLINECODE program) to have been linked successfully. The link could have failed because the number of active uniforms exceeded the limit.)$(P $(D_INLINECODE uniformIndex) must be an active uniform index of the program$(D_INLINECODE program), in the range zero to the value of$(D_INLINECODE GL_ACTIVE_UNIFORMS) minus one. The value of$(D_INLINECODE GL_ACTIVE_UNIFORMS) can be queried with$(D_INLINECODE glGetProgram).) | |
| * | |
| * Params: | |
| * program = $(P Specifies the program containing the active uniform index$(D_INLINECODE uniformIndex).) | |
| * uniformIndex = $(P Specifies the index of the active uniform whose name to query.) | |
| * bufSize = $(P Specifies the size of the buffer, in units of$(D_INLINECODE GLchar), of the buffer whose address is specified in$(D_INLINECODE uniformName).) | |
| * length = $(P Specifies the address of a variable that will receive the number of characters that were or would have been written to the buffer addressed by$(D_INLINECODE uniformName).) | |
| * uniformName = $(P Specifies the address of a buffer into which the GL will place the name of the active uniform at$(D_INLINECODE uniformIndex) within$(D_INLINECODE program).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGetActiveUniform),$(D_INLINECODE glGetUniformIndices),$(D_INLINECODE glGetProgram),$(D_INLINECODE glLinkProgram)) | |
| */ | |
| extern(C) void function(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName) @system @nogc nothrow glGetActiveUniformName; | |
| /** | |
| * glGetActiveUniformsiv: man4/glGetActiveUniformsiv.xml | |
| * | |
| * $(P $(D_INLINECODE glGetActiveUniformsiv) queries the value of the parameter named$(D_INLINECODE pname) for each of the uniforms within$(D_INLINECODE program) whose indices are specified in the array of$(D_INLINECODE uniformCount) unsigned integers$(D_INLINECODE uniformIndices). Upon success, the value of the parameter for each uniform is written into the corresponding entry in the array whose address is given in$(D_INLINECODE params). If an error is generated, nothing is written into$(D_INLINECODE params).)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_UNIFORM_TYPE), then an array identifying the types of uniforms specified by the corresponding array of$(D_INLINECODE uniformIndices) is returned. The returned types can be any of the values from the following table:$(B Returned Symbolic Contant)$(B Shader Uniform Type)$(D_INLINECODE GL_FLOAT)$(D_INLINECODE float)$(D_INLINECODE GL_FLOAT_VEC2)$(D_INLINECODE vec2)$(D_INLINECODE GL_FLOAT_VEC3)$(D_INLINECODE vec3)$(D_INLINECODE GL_FLOAT_VEC4)$(D_INLINECODE vec4)$(D_INLINECODE GL_DOUBLE)$(D_INLINECODE double)$(D_INLINECODE GL_DOUBLE_VEC2)$(D_INLINECODE dvec2)$(D_INLINECODE GL_DOUBLE_VEC3)$(D_INLINECODE dvec3)$(D_INLINECODE GL_DOUBLE_VEC4)$(D_INLINECODE dvec4)$(D_INLINECODE GL_INT)$(D_INLINECODE int)$(D_INLINECODE GL_INT_VEC2)$(D_INLINECODE ivec2)$(D_INLINECODE GL_INT_VEC3)$(D_INLINECODE ivec3)$(D_INLINECODE GL_INT_VEC4)$(D_INLINECODE ivec4)$(D_INLINECODE GL_UNSIGNED_INT)$(D_INLINECODE unsigned int)$(D_INLINECODE GL_UNSIGNED_INT_VEC2)$(D_INLINECODE uvec2)$(D_INLINECODE GL_UNSIGNED_INT_VEC3)$(D_INLINECODE uvec3)$(D_INLINECODE GL_UNSIGNED_INT_VEC4)$(D_INLINECODE uvec4)$(D_INLINECODE GL_BOOL)$(D_INLINECODE bool)$(D_INLINECODE GL_BOOL_VEC2)$(D_INLINECODE bvec2)$(D_INLINECODE GL_BOOL_VEC3)$(D_INLINECODE bvec3)$(D_INLINECODE GL_BOOL_VEC4)$(D_INLINECODE bvec4)$(D_INLINECODE GL_FLOAT_MAT2)$(D_INLINECODE mat2)$(D_INLINECODE GL_FLOAT_MAT3)$(D_INLINECODE mat3)$(D_INLINECODE GL_FLOAT_MAT4)$(D_INLINECODE mat4)$(D_INLINECODE GL_FLOAT_MAT2x3)$(D_INLINECODE mat2x3)$(D_INLINECODE GL_FLOAT_MAT2x4)$(D_INLINECODE mat2x4)$(D_INLINECODE GL_FLOAT_MAT3x2)$(D_INLINECODE mat3x2)$(D_INLINECODE GL_FLOAT_MAT3x4)$(D_INLINECODE mat3x4)$(D_INLINECODE GL_FLOAT_MAT4x2)$(D_INLINECODE mat4x2)$(D_INLINECODE GL_FLOAT_MAT4x3)$(D_INLINECODE mat4x3)$(D_INLINECODE GL_DOUBLE_MAT2)$(D_INLINECODE dmat2)$(D_INLINECODE GL_DOUBLE_MAT3)$(D_INLINECODE dmat3)$(D_INLINECODE GL_DOUBLE_MAT4)$(D_INLINECODE dmat4)$(D_INLINECODE GL_DOUBLE_MAT2x3)$(D_INLINECODE dmat2x3)$(D_INLINECODE GL_DOUBLE_MAT2x4)$(D_INLINECODE dmat2x4)$(D_INLINECODE GL_DOUBLE_MAT3x2)$(D_INLINECODE dmat3x2)$(D_INLINECODE GL_DOUBLE_MAT3x4)$(D_INLINECODE dmat3x4)$(D_INLINECODE GL_DOUBLE_MAT4x2)$(D_INLINECODE dmat4x2)$(D_INLINECODE GL_DOUBLE_MAT4x3)$(D_INLINECODE dmat4x3)$(D_INLINECODE GL_SAMPLER_1D)$(D_INLINECODE sampler1D)$(D_INLINECODE GL_SAMPLER_2D)$(D_INLINECODE sampler2D)$(D_INLINECODE GL_SAMPLER_3D)$(D_INLINECODE sampler3D)$(D_INLINECODE GL_SAMPLER_CUBE)$(D_INLINECODE samplerCube)$(D_INLINECODE GL_SAMPLER_1D_SHADOW)$(D_INLINECODE sampler1DShadow)$(D_INLINECODE GL_SAMPLER_2D_SHADOW)$(D_INLINECODE sampler2DShadow)$(D_INLINECODE GL_SAMPLER_1D_ARRAY)$(D_INLINECODE sampler1DArray)$(D_INLINECODE GL_SAMPLER_2D_ARRAY)$(D_INLINECODE sampler2DArray)$(D_INLINECODE GL_SAMPLER_1D_ARRAY_SHADOW)$(D_INLINECODE sampler1DArrayShadow)$(D_INLINECODE GL_SAMPLER_2D_ARRAY_SHADOW)$(D_INLINECODE sampler2DArrayShadow)$(D_INLINECODE GL_SAMPLER_2D_MULTISAMPLE)$(D_INLINECODE sampler2DMS)$(D_INLINECODE GL_SAMPLER_2D_MULTISAMPLE_ARRAY)$(D_INLINECODE sampler2DMSArray)$(D_INLINECODE GL_SAMPLER_CUBE_SHADOW)$(D_INLINECODE samplerCubeShadow)$(D_INLINECODE GL_SAMPLER_BUFFER)$(D_INLINECODE samplerBuffer)$(D_INLINECODE GL_SAMPLER_2D_RECT)$(D_INLINECODE sampler2DRect)$(D_INLINECODE GL_SAMPLER_2D_RECT_SHADOW)$(D_INLINECODE sampler2DRectShadow)$(D_INLINECODE GL_INT_SAMPLER_1D)$(D_INLINECODE isampler1D)$(D_INLINECODE GL_INT_SAMPLER_2D)$(D_INLINECODE isampler2D)$(D_INLINECODE GL_INT_SAMPLER_3D)$(D_INLINECODE isampler3D)$(D_INLINECODE GL_INT_SAMPLER_CUBE)$(D_INLINECODE isamplerCube)$(D_INLINECODE GL_INT_SAMPLER_1D_ARRAY)$(D_INLINECODE isampler1DArray)$(D_INLINECODE GL_INT_SAMPLER_2D_ARRAY)$(D_INLINECODE isampler2DArray)$(D_INLINECODE GL_INT_SAMPLER_2D_MULTISAMPLE)$(D_INLINECODE isampler2DMS)$(D_INLINECODE GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY)$(D_INLINECODE isampler2DMSArray)$(D_INLINECODE GL_INT_SAMPLER_BUFFER)$(D_INLINECODE isamplerBuffer)$(D_INLINECODE GL_INT_SAMPLER_2D_RECT)$(D_INLINECODE isampler2DRect)$(D_INLINECODE GL_UNSIGNED_INT_SAMPLER_1D)$(D_INLINECODE usampler1D)$(D_INLINECODE GL_UNSIGNED_INT_SAMPLER_2D)$(D_INLINECODE usampler2D)$(D_INLINECODE GL_UNSIGNED_INT_SAMPLER_3D)$(D_INLINECODE usampler3D)$(D_INLINECODE GL_UNSIGNED_INT_SAMPLER_CUBE)$(D_INLINECODE usamplerCube)$(D_INLINECODE GL_UNSIGNED_INT_SAMPLER_1D_ARRAY)$(D_INLINECODE usampler2DArray)$(D_INLINECODE GL_UNSIGNED_INT_SAMPLER_2D_ARRAY)$(D_INLINECODE usampler2DArray)$(D_INLINECODE GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE)$(D_INLINECODE usampler2DMS)$(D_INLINECODE GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY)$(D_INLINECODE usampler2DMSArray)$(D_INLINECODE GL_UNSIGNED_INT_SAMPLER_BUFFER)$(D_INLINECODE usamplerBuffer)$(D_INLINECODE GL_UNSIGNED_INT_SAMPLER_2D_RECT)$(D_INLINECODE usampler2DRect))$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_UNIFORM_SIZE), then an array identifying the size of the uniforms specified by the corresponding array of$(D_INLINECODE uniformIndices) is returned. The sizes returned are in units of the type returned by a query of$(D_INLINECODE GL_UNIFORM_TYPE). For active uniforms that are arrays, the size is the number of active elements in the array; for all other uniforms, the size is one.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_UNIFORM_NAME_LENGTH), then an array identifying the length, including the terminating null character, of the uniform name strings specified by the corresponding array of$(D_INLINECODE uniformIndices) is returned.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_UNIFORM_BLOCK_INDEX), then an array identifying the the uniform block index of each of the uniforms specified by the corresponding array of$(D_INLINECODE uniformIndices) is returned. The uniform block index of a uniform associated with the default uniform block is -1.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_UNIFORM_OFFSET), then an array of uniform buffer offsets is returned. For uniforms in a named uniform block, the returned value will be its offset, in basic machine units, relative to the beginning of the uniform block in the buffer object data store. For atomic counter uniforms, the returned value will be its offset relative to the beginning of its active atomic counter buffer. For all other uniforms, -1 will be returned.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_UNIFORM_ARRAY_STRIDE), then an array identifying the stride between elements of each of the uniforms specified by the corresponding array of$(D_INLINECODE uniformIndices) is returned. For uniforms in named uniform blocks and for uniforms declared as atomic counters, the stride is the difference, in basic machine units, of consecutive elements in an array, or zero for uniforms not declared as an array. For all other uniforms, a stride of -1 will be returned.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_UNIFORM_MATRIX_STRIDE), then an array identifying the stride between columns of a column-major matrix or rows of a row-major matrix, in basic machine units, of each of the uniforms specified by the corresponding array of$(D_INLINECODE uniformIndices) is returned. The matrix stride of a uniform associated with the default uniform block is -1. Note that this information only makes sense for uniforms that are matrices. For uniforms that are not matrices, but are declared in a named uniform block, a matrix stride of zero is returned.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_UNIFORM_IS_ROW_MAJOR), then an array identifying whether each of the uniforms specified by the corresponding array of$(D_INLINECODE uniformIndices) is a row-major matrix or not is returned. A value of one indicates a row-major matrix, and a value of zero indicates a column-major matrix, a matrix in the default uniform block, or a non-matrix.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX), then an array identifying the active atomic counter buffer index of each of the uniforms specified by the corresponding array of$(D_INLINECODE uniformIndices) is returned. For uniforms other than atomic counters, the returned buffer index is -1. The returned indices may be passed to$(D_INLINECODE glGetActiveAtomicCounterBufferiv) to query the properties of the associated buffer, and not necessarily the binding point specified in the uniform declaration.) | |
| * | |
| * $(P The double types,$(D_INLINECODE GL_DOUBLE),$(D_INLINECODE GL_DOUBLE_VEC2),$(D_INLINECODE GL_DOUBLE_VEC3),$(D_INLINECODE GL_DOUBLE_VEC4),$(D_INLINECODE GL_DOUBLE_MAT2),$(D_INLINECODE GL_DOUBLE_MAT3),$(D_INLINECODE GL_DOUBLE_MAT4),$(D_INLINECODE GL_DOUBLE_MAT2x3),$(D_INLINECODE GL_DOUBLE_MAT2x4),$(D_INLINECODE GL_DOUBLE_MAT3x2),$(D_INLINECODE GL_DOUBLE_MAT3x4),$(D_INLINECODE GL_DOUBLE_MAT4x2), and$(D_INLINECODE GL_DOUBLE_MAT4x3) are only available if the GL version is 4.1 or higher.)$(P $(D_INLINECODE GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX) is only accepted by$(D_INLINECODE pname) if the GL version is 4.2 or higher.) | |
| * | |
| * Params: | |
| * program = $(P Specifies the program object to be queried.) | |
| * uniformCount = $(P Specifies both the number of elements in the array of indices$(D_INLINECODE uniformIndices) and the number of parameters written to$(D_INLINECODE params) upon successful return.) | |
| * uniformIndices = $(P Specifies the address of an array of$(D_INLINECODE uniformCount) integers containing the indices of uniforms within$(D_INLINECODE program) whose parameter$(D_INLINECODE pname) should be queried.) | |
| * pname = $(P Specifies the property of each uniform in$(D_INLINECODE uniformIndices) that should be written into the corresponding element of$(D_INLINECODE params).) | |
| * params = $(P Specifies the address of an array of$(D_INLINECODE uniformCount) integers which are to receive the value of$(D_INLINECODE pname) for each uniform in$(D_INLINECODE uniformIndices).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2011-2014 Khronos Group This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGetUniform),$(D_INLINECODE glGetActiveUniform),$(D_INLINECODE glGetUniformLocation),$(D_INLINECODE glLinkProgram),$(D_INLINECODE glUniform),$(D_INLINECODE glUseProgram)) | |
| */ | |
| extern(C) void function(GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params) @system @nogc nothrow glGetActiveUniformsiv; | |
| /** | |
| * glGetAttachedShaders: man4/glGetAttachedShaders.xml | |
| * | |
| * $(P $(D_INLINECODE glGetAttachedShaders) returns the names of the shader objects attached to$(D_INLINECODE program). The names of shader objects that are attached to$(D_INLINECODE program) will be returned in$(D_INLINECODE shaders.) The actual number of shader names written into$(D_INLINECODE shaders) is returned in$(D_INLINECODE count.) If no shader objects are attached to$(D_INLINECODE program),$(D_INLINECODE count) is set to 0. The maximum number of shader names that may be returned in$(D_INLINECODE shaders) is specified by$(D_INLINECODE maxCount).)$(P If the number of names actually returned is not required (for instance, if it has just been obtained by calling$(D_INLINECODE glGetProgram) ), a value of$(D_INLINECODE NULL) may be passed for count. If no shader objects are attached to$(D_INLINECODE program), a value of 0 will be returned in$(D_INLINECODE count). The actual number of attached shaders can be obtained by calling$(D_INLINECODE glGetProgram) with the value$(D_INLINECODE GL_ATTACHED_SHADERS).) | |
| * | |
| * Params: | |
| * program = $(P Specifies the program object to be queried.) | |
| * maxCount = $(P Specifies the size of the array for storing the returned object names.) | |
| * count = $(P Returns the number of names actually returned in$(D_INLINECODE shaders).) | |
| * shaders = $(P Specifies an array that is used to return the names of attached shader objects.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2003-2005 3Dlabs Inc. Ltd. Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glAttachShader),$(D_INLINECODE glDetachShader).) | |
| */ | |
| extern(C) void function(GLuint program, GLsizei maxCount, GLsizei* count, GLuint* shaders) @system @nogc nothrow glGetAttachedShaders; | |
| /** | |
| * glGetAttribLocation: man4/glGetAttribLocation.xml | |
| * | |
| * $(P $(D_INLINECODE glGetAttribLocation) queries the previously linked program object specified by$(D_INLINECODE program) for the attribute variable specified by$(D_INLINECODE name) and returns the index of the generic vertex attribute that is bound to that attribute variable. If$(D_INLINECODE name) is a matrix attribute variable, the index of the first column of the matrix is returned. If the named attribute variable is not an active attribute in the specified program object or if$(D_INLINECODE name) starts with the reserved prefix "gl_", a value of -1 is returned.)$(P The association between an attribute variable name and a generic attribute index can be specified at any time by calling$(D_INLINECODE glBindAttribLocation). Attribute bindings do not go into effect until$(D_INLINECODE glLinkProgram) is called. After a program object has been linked successfully, the index values for attribute variables remain fixed until the next link command occurs. The attribute values can only be queried after a link if the link was successful.$(D_INLINECODE glGetAttribLocation) returns the binding that actually went into effect the last time$(D_INLINECODE glLinkProgram) was called for the specified program object. Attribute bindings that have been specified since the last link operation are not returned by$(D_INLINECODE glGetAttribLocation).) | |
| * | |
| * Params: | |
| * program = $(P Specifies the program object to be queried.) | |
| * name = $(P Points to a null terminated string containing the name of the attribute variable whose location is to be queried.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2003-2005 3Dlabs Inc. Ltd. Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBindAttribLocation),$(D_INLINECODE glLinkProgram),$(D_INLINECODE glVertexAttrib),$(D_INLINECODE glVertexAttribPointer)) | |
| */ | |
| extern(C) GLint function(GLuint program, const GLchar* name) @system @nogc nothrow glGetAttribLocation; | |
| /** | |
| * glGetBufferParameter: man4/glGetBufferParameter.xml | |
| * | |
| * $(P These functions return in$(D_INLINECODE data) a selected parameter of the specified buffer object.)$(P $(D_INLINECODE pname) names a specific buffer object parameter, as follows:) variablelist | |
| * | |
| * $(P If an error is generated, no change is made to the contents of$(D_INLINECODE data).)$(P The$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER) target is available only if the GL version is 4.2 or greater.)$(P The$(D_INLINECODE GL_DISPATCH_INDIRECT_BUFFER) and$(D_INLINECODE GL_SHADER_STORAGE_BUFFER) targets are available only if the GL version is 4.3 or greater.)$(P The$(D_INLINECODE GL_QUERY_BUFFER) target is available only if the GL version is 4.4 or greater.) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target to which the buffer object is bound for$(D_INLINECODE glGetBufferParameteriv) and$(D_INLINECODE glGetBufferParameteri64v). Must be one of the buffer binding targets in the following table:)$(B Buffer Binding Target)$(B Purpose)$(D_INLINECODE GL_ARRAY_BUFFER) Vertex attributes$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER) Atomic counter storage$(D_INLINECODE GL_COPY_READ_BUFFER) Buffer copy source$(D_INLINECODE GL_COPY_WRITE_BUFFER) Buffer copy destination$(D_INLINECODE GL_DISPATCH_INDIRECT_BUFFER) Indirect compute dispatch commands$(D_INLINECODE GL_DRAW_INDIRECT_BUFFER) Indirect command arguments$(D_INLINECODE GL_ELEMENT_ARRAY_BUFFER) Vertex array indices$(D_INLINECODE GL_PIXEL_PACK_BUFFER) Pixel read target$(D_INLINECODE GL_PIXEL_UNPACK_BUFFER) Texture data source$(D_INLINECODE GL_QUERY_BUFFER) Query result buffer$(D_INLINECODE GL_SHADER_STORAGE_BUFFER) Read-write storage for shaders$(D_INLINECODE GL_TEXTURE_BUFFER) Texture data buffer$(D_INLINECODE GL_TRANSFORM_FEEDBACK_BUFFER) Transform feedback buffer$(D_INLINECODE GL_UNIFORM_BUFFER) Uniform block storage | |
| * buffer = $(P Specifies the name of the buffer object for$(D_INLINECODE glGetNamedBufferParameteriv) and$(D_INLINECODE glGetNamedBufferParameteri64v).) | |
| * value = $(P Specifies the name of the buffer object parameter to query.) | |
| * data = $(P Returns the requested parameter.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2005 Addison-Wesley. Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBindBuffer),$(D_INLINECODE glBufferData),$(D_INLINECODE glGetBufferPointerv),$(D_INLINECODE glMapBuffer),$(D_INLINECODE glUnmapBuffer)) | |
| */ | |
| extern(C) void function(GLenum target, GLenum value, GLint* data) @system @nogc nothrow glGetBufferParameteriv; | |
| /// Ditto | |
| extern(C) void function(GLenum target, GLenum value, GLint64* data) @system @nogc nothrow glGetBufferParameteri64v; | |
| /// Ditto | |
| extern(C) void function(GLuint buffer, GLenum pname, GLint* params) @system @nogc nothrow glGetNamedBufferParameteriv; | |
| /// Ditto | |
| extern(C) void function(GLuint buffer, GLenum pname, GLint64* params) @system @nogc nothrow glGetNamedBufferParameteri64v; | |
| /** | |
| * glGetBufferPointerv: man4/glGetBufferPointerv.xml | |
| * | |
| * $(P $(D_INLINECODE glGetBufferPointerv) and$(D_INLINECODE glGetNamedBufferPointerv) return the buffer pointer$(D_INLINECODE pname), which must be$(D_INLINECODE GL_BUFFER_MAP_POINTER). The single buffer map pointer is returned in$(D_INLINECODE params). A$(D_INLINECODE NULL) pointer is returned if the buffer object's data store is not currently mapped; or if the requesting context did not map the buffer object's data store, and the implementation is unable to support mappings on multiple clients.) | |
| * | |
| * $(P If an error is generated, no change is made to the contents of$(D_INLINECODE params).)$(P The initial value for the pointer is$(D_INLINECODE NULL).)$(P The$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER) target is available only if the GL version is 4.2 or greater.)$(P The$(D_INLINECODE GL_DISPATCH_INDIRECT_BUFFER) and$(D_INLINECODE GL_SHADER_STORAGE_BUFFER) targets are available only if the GL version is 4.3 or greater.)$(P The$(D_INLINECODE GL_QUERY_BUFFER) target is available only if the GL version is 4.4 or greater.) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target to which the buffer object is bound for$(D_INLINECODE glGetBufferPointerv), which must be one of the buffer binding targets in the following table:)$(B Buffer Binding Target)$(B Purpose)$(D_INLINECODE GL_ARRAY_BUFFER) Vertex attributes$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER) Atomic counter storage$(D_INLINECODE GL_COPY_READ_BUFFER) Buffer copy source$(D_INLINECODE GL_COPY_WRITE_BUFFER) Buffer copy destination$(D_INLINECODE GL_DISPATCH_INDIRECT_BUFFER) Indirect compute dispatch commands$(D_INLINECODE GL_DRAW_INDIRECT_BUFFER) Indirect command arguments$(D_INLINECODE GL_ELEMENT_ARRAY_BUFFER) Vertex array indices$(D_INLINECODE GL_PIXEL_PACK_BUFFER) Pixel read target$(D_INLINECODE GL_PIXEL_UNPACK_BUFFER) Texture data source$(D_INLINECODE GL_QUERY_BUFFER) Query result buffer$(D_INLINECODE GL_SHADER_STORAGE_BUFFER) Read-write storage for shaders$(D_INLINECODE GL_TEXTURE_BUFFER) Texture data buffer$(D_INLINECODE GL_TRANSFORM_FEEDBACK_BUFFER) Transform feedback buffer$(D_INLINECODE GL_UNIFORM_BUFFER) Uniform block storage | |
| * buffer = $(P Specifies the name of the buffer object for$(D_INLINECODE glGetNamedBufferPointerv).) | |
| * pname = $(P Specifies the name of the pointer to be returned. Must be$(D_INLINECODE GL_BUFFER_MAP_POINTER).) | |
| * params = $(P Returns the pointer value specified by$(D_INLINECODE pname).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2005 Addison-Wesley. Copyright™ 2011-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBindBuffer),$(D_INLINECODE glMapBuffer)) | |
| */ | |
| extern(C) void function(GLenum target, GLenum pname, GLvoid** params) @system @nogc nothrow glGetBufferPointerv; | |
| /// Ditto | |
| extern(C) void function(GLuint buffer, GLenum pname, void** params) @system @nogc nothrow glGetNamedBufferPointerv; | |
| /** | |
| * glGetBufferSubData: man4/glGetBufferSubData.xml | |
| * | |
| * $(P $(D_INLINECODE glGetBufferSubData) and$(D_INLINECODE glGetNamedBufferSubData) return some or all of the data contents of the data store of the specified buffer object. Data starting at byte offset$(D_INLINECODE offset) and extending for$(D_INLINECODE size) bytes is copied from the buffer object's data store to the memory pointed to by$(D_INLINECODE data). An error is thrown if the buffer object is currently mapped, or if$(D_INLINECODE offset) and$(D_INLINECODE size) together define a range beyond the bounds of the buffer object's data store.) | |
| * | |
| * $(P If an error is generated, no change is made to the contents of$(D_INLINECODE data).)$(P The$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER) target is available only if the GL version is 4.2 or greater.)$(P The$(D_INLINECODE GL_DISPATCH_INDIRECT_BUFFER) and$(D_INLINECODE GL_SHADER_STORAGE_BUFFER) targets are available only if the GL version is 4.3 or greater.)$(P The$(D_INLINECODE GL_QUERY_BUFFER) target is available only if the GL version is 4.4 or greater.) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target to which the buffer object is bound for$(D_INLINECODE glGetBufferSubData), which must be one of the buffer binding targets in the following table:)$(B Buffer Binding Target)$(B Purpose)$(D_INLINECODE GL_ARRAY_BUFFER) Vertex attributes$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER) Atomic counter storage$(D_INLINECODE GL_COPY_READ_BUFFER) Buffer copy source$(D_INLINECODE GL_COPY_WRITE_BUFFER) Buffer copy destination$(D_INLINECODE GL_DISPATCH_INDIRECT_BUFFER) Indirect compute dispatch commands$(D_INLINECODE GL_DRAW_INDIRECT_BUFFER) Indirect command arguments$(D_INLINECODE GL_ELEMENT_ARRAY_BUFFER) Vertex array indices$(D_INLINECODE GL_PIXEL_PACK_BUFFER) Pixel read target$(D_INLINECODE GL_PIXEL_UNPACK_BUFFER) Texture data source$(D_INLINECODE GL_QUERY_BUFFER) Query result buffer$(D_INLINECODE GL_SHADER_STORAGE_BUFFER) Read-write storage for shaders$(D_INLINECODE GL_TEXTURE_BUFFER) Texture data buffer$(D_INLINECODE GL_TRANSFORM_FEEDBACK_BUFFER) Transform feedback buffer$(D_INLINECODE GL_UNIFORM_BUFFER) Uniform block storage | |
| * buffer = $(P Specifies the name of the buffer object for$(D_INLINECODE glGetNamedBufferSubData).) | |
| * offset = $(P Specifies the offset into the buffer object's data store from which data will be returned, measured in bytes.) | |
| * size = $(P Specifies the size in bytes of the data store region being returned.) | |
| * data = $(P Specifies a pointer to the location where buffer object data is returned.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2005 Addison-Wesley. Copyright™ 2011-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBindBuffer),$(D_INLINECODE glBufferData),$(D_INLINECODE glBufferSubData),$(D_INLINECODE glMapBuffer),$(D_INLINECODE glUnmapBuffer)) | |
| */ | |
| extern(C) void function(GLenum target, GLintptr offset, GLsizeiptr size, GLvoid* data) @system @nogc nothrow glGetBufferSubData; | |
| /// Ditto | |
| extern(C) void function(GLuint buffer, GLintptr offset, GLsizei size, void* data) @system @nogc nothrow glGetNamedBufferSubData; | |
| /** | |
| * glGetCompressedTexImage: man4/glGetCompressedTexImage.xml | |
| * | |
| * $(P $(D_INLINECODE glGetCompressedTexImage) and$(D_INLINECODE glGetnCompressedTexImage) return the compressed texture image associated with$(D_INLINECODE target) and$(D_INLINECODE lod) into$(D_INLINECODE pixels).$(D_INLINECODE glGetCompressedTextureImage) serves the same purpose, but instead of taking a texture target, it takes the ID of the texture object.$(D_INLINECODE pixels) should be an array of$(D_INLINECODE bufSize) bytes for$(D_INLINECODE glGetnCompresedTexImage) and$(D_INLINECODE glGetCompressedTextureImage) functions, and of$(D_INLINECODE GL_TEXTURE_COMPRESSED_IMAGE_SIZE) bytes in case of$(D_INLINECODE glGetCompressedTexImage). If the actual data takes less space than$(D_INLINECODE bufSize), the remaining bytes will not be touched.$(D_INLINECODE target) specifies the texture target, to which the texture the data the function should extract the data from is bound to.$(D_INLINECODE lod) specifies the level-of-detail number of the desired image.)$(P If a non-zero named buffer object is bound to the$(D_INLINECODE GL_PIXEL_PACK_BUFFER) target (see$(D_INLINECODE glBindBuffer) ) while a texture image is requested,$(D_INLINECODE pixels) is treated as a byte offset into the buffer object's data store.)$(P To minimize errors, first verify that the texture is compressed by calling$(D_INLINECODE glGetTexLevelParameter) with argument$(D_INLINECODE GL_TEXTURE_COMPRESSED). If the texture is compressed, you can determine the amount of memory required to store the compressed texture by calling$(D_INLINECODE glGetTexLevelParameter) with argument$(D_INLINECODE GL_TEXTURE_COMPRESSED_IMAGE_SIZE). Finally, retrieve the internal format of the texture by calling$(D_INLINECODE glGetTexLevelParameter) with argument$(D_INLINECODE GL_TEXTURE_INTERNAL_FORMAT). To store the texture for later use, associate the internal format and size with the retrieved texture image. These data can be used by the respective texture or subtexture loading routine used for loading$(D_INLINECODE target) textures.) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target to which the texture is bound for$(D_INLINECODE glGetCompressedTexImage) and$(D_INLINECODE glGetnCompressedTexImage) functions.$(D_INLINECODE GL_TEXTURE_1D),$(D_INLINECODE GL_TEXTURE_1D_ARRAY),$(D_INLINECODE GL_TEXTURE_2D),$(D_INLINECODE GL_TEXTURE_2D_ARRAY),$(D_INLINECODE GL_TEXTURE_3D),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_ARRAY),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_X),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_NEGATIVE_X),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_Y),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_NEGATIVE_Y),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_Z), and$(D_INLINECODE GL_TEXTURE_CUBE_MAP_NEGATIVE_Z),$(D_INLINECODE GL_TEXTURE_RECTANGLE) are accepted.) | |
| * texture = $(P Specifies the texture object name for$(D_INLINECODE glGetCompressedTextureImage) function.) | |
| * level = $(P Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level $n$ is the $n$-th mipmap reduction image.) | |
| * bufSize = $(P Specifies the size of the buffer$(D_INLINECODE pixels) for$(D_INLINECODE glGetCompressedTextureImage) and$(D_INLINECODE glGetnCompressedTexImage) functions.) | |
| * pixels = $(P Returns the compressed texture image.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glActiveTexture),$(D_INLINECODE glCompressedTexImage1D),$(D_INLINECODE glCompressedTexImage2D),$(D_INLINECODE glCompressedTexImage3D),$(D_INLINECODE glCompressedTexSubImage1D),$(D_INLINECODE glCompressedTexSubImage2D),$(D_INLINECODE glCompressedTexSubImage3D),$(D_INLINECODE glReadPixels),$(D_INLINECODE glTexImage1D),$(D_INLINECODE glTexImage2D),$(D_INLINECODE glTexImage3D),$(D_INLINECODE glTexParameter),$(D_INLINECODE glTexSubImage1D),$(D_INLINECODE glTexSubImage2D),$(D_INLINECODE glTexSubImage3D)) | |
| */ | |
| extern(C) void function(GLenum target, GLint level, GLvoid* pixels) @system @nogc nothrow glGetCompressedTexImage; | |
| /// Ditto | |
| extern(C) void function(GLenum target, GLint level, GLsizei bufSize, void* pixels) @system @nogc nothrow glGetnCompressedTexImage; | |
| /// Ditto | |
| extern(C) void function(GLuint texture, GLint level, GLsizei bufSize, void* pixels) @system @nogc nothrow glGetCompressedTextureImage; | |
| /** | |
| * glGetCompressedTextureSubImage: man4/glGetCompressedTextureSubImage.xml | |
| * | |
| * $(P $(D_INLINECODE glGetCompressedTextureSubImage) can be used to obtain a sub-region of a compressed texture image instead of the whole image, as long as the compressed data are arranged into fixed-size blocks of texels.$(D_INLINECODE texture) is the name of the texture object, and must not be a buffer or multisample texture. The effective$(D_INLINECODE target) is the value of$(D_INLINECODE GL_TEXTURE_TARGET) for texture.$(D_INLINECODE level) and$(D_INLINECODE pixels) have the same meaning as the corresponding arguments of$(D_INLINECODE glCompressedTexSubImage3D).$(D_INLINECODE bufSize) indicates the size of the buffer to receive the retrieved pixel data.)$(P For cube map textures, the behavior is as though$(D_INLINECODE glGetCompressedTexImage) were called once for each requested face (selected by$(D_INLINECODE zoffset) and$(D_INLINECODE depth), as described below) with target corresponding to the requested texture cube map face as indicated by the table presented below.$(D_INLINECODE pixels) is offset appropriately for each successive image.) Layer number Cube Map Face 0$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_X) 1$(D_INLINECODE GL_TEXTURE_CUBE_MAP_NEGATIVE_X) 2$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_Y) 3$(D_INLINECODE GL_TEXTURE_CUBE_MAP_NEGATIVE_Y) 4$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_Z) 5$(D_INLINECODE GL_TEXTURE_CUBE_MAP_NEGATIVE_Z)$(P $(D_INLINECODE xoffset),$(D_INLINECODE yoffset) and$(D_INLINECODE zoffset) indicate the position of the subregion to return.$(D_INLINECODE width),$(D_INLINECODE height) and$(D_INLINECODE depth) indicate the size of the region to return. These arguments have the same meaning as for$(D_INLINECODE glCompressedTexSubImage3D), though there are extra restrictions, described in the errors section below.)$(P The mapping between the$(D_INLINECODE xoffset),$(D_INLINECODE yoffset),$(D_INLINECODE zoffset),$(D_INLINECODE width),$(D_INLINECODE height) and$(D_INLINECODE depth) parameters and the faces, layers, and layer-faces for cube map, array, and cube map array textures is the same as for glGetTextureSubImage.)$(P The$(D_INLINECODE xoffset),$(D_INLINECODE yoffset),$(D_INLINECODE zoffset) offsets and$(D_INLINECODE width),$(D_INLINECODE height) and$(D_INLINECODE depth) sizes must be multiples of the values of$(D_INLINECODE GL_PACK_COMPRESSED_BLOCK_WIDTH),$(D_INLINECODE GL_PACK_COMPRESSED_BLOCK_HEIGHT), and$(D_INLINECODE GL_PACK_COMPRESSED_BLOCK_DEPTH) respectively, unless$(D_INLINECODE offset) is zero and the corresponding$(D_INLINECODE size) is the same as the texture size in that dimension.)$(P Pixel storage modes are treated as for$(D_INLINECODE glGetCompressedTexSubImage). The texel at ($(D_INLINECODE xoffset),$(D_INLINECODE yoffset),$(D_INLINECODE zoffset) ) will be stored at the location indicated by$(D_INLINECODE pixels) and the current pixel packing parameters.) | |
| * | |
| * Params: | |
| * texture = $(P Specifies the name of the source texture object. Must be$(D_INLINECODE GL_TEXTURE_1D),$(D_INLINECODE GL_TEXTURE_1D_ARRAY),$(D_INLINECODE GL_TEXTURE_2D),$(D_INLINECODE GL_TEXTURE_2D_ARRAY),$(D_INLINECODE GL_TEXTURE_3D),$(D_INLINECODE GL_TEXTURE_CUBE_MAP),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_ARRAY) or$(D_INLINECODE GL_TEXTURE_RECTANGLE). In specific, buffer and multisample textures are not permitted.) | |
| * level = $(P Specifies the level-of-detail number. Level 0 is the base image level. Level $n$ is the $n$th mipmap reduction image.) | |
| * xoffset = $(P Specifies a texel offset in the x direction within the texture array.) | |
| * yoffset = $(P Specifies a texel offset in the y direction within the texture array.) | |
| * zoffset = $(P Specifies a texel offset in the z direction within the texture array.) | |
| * width = $(P Specifies the width of the texture subimage. Must be a multiple of the compressed block's width, unless the$(D_INLINECODE offset) is zero and the size equals the texture image size.) | |
| * height = $(P Specifies the height of the texture subimage. Must be a multiple of the compressed block's height, unless the$(D_INLINECODE offset) is zero and the size equals the texture image size.) | |
| * depth = $(P Specifies the depth of the texture subimage. Must be a multiple of the compressed block's depth, unless the$(D_INLINECODE offset) is zero and the size equals the texture image size.) | |
| * bufSize = $(P Specifies the size of the buffer to receive the retrieved pixel data.) | |
| * pixels = $(P Returns the texture subimage. Should be a pointer to an array of the type specified by type.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glCompressedTexImage1D),$(D_INLINECODE glCompressedTexImage2D),$(D_INLINECODE glCompressedTexImage3D),$(D_INLINECODE glCompressedTexSubImage1D),$(D_INLINECODE glCompressedTexSubImage2D),$(D_INLINECODE glCompressedTexSubImage3D),$(D_INLINECODE glGetCompressedTexImage),$(D_INLINECODE glGetCompressedTextureImage),$(D_INLINECODE glReadPixels)) | |
| */ | |
| extern(C) void function(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei bufSize, void* pixels) @system @nogc nothrow glGetCompressedTextureSubImage; | |
| /** | |
| * glGetDebugMessageLog: man4/glGetDebugMessageLog.xml | |
| * | |
| * $(P $(D_INLINECODE glGetDebugMessageLog) retrieves messages from the debug message log. A maximum of$(D_INLINECODE count) messages are retrieved from the log. If$(D_INLINECODE sources) is not NULL then the source of each message is written into up to$(D_INLINECODE count) elements of the array. If$(D_INLINECODE types) is not NULL then the type of each message is written into up to$(D_INLINECODE count) elements of the array. If$(D_INLINECODE id) is not NULL then the identifier of each message is written into up to$(D_INLINECODE count) elements of the array. If$(D_INLINECODE severities) is not NULL then the severity of each message is written into up to$(D_INLINECODE count) elements of the array. If$(D_INLINECODE lengths) is not NULL then the length of each message is written into up to$(D_INLINECODE count) elements of the array.)$(P $(D_INLINECODE messageLog) specifies the address of a character array into which the debug messages will be written. Each message will be concatenated onto the array starting at the first element of$(D_INLINECODE messageLog).$(D_INLINECODE bufSize) specifies the size of the array$(D_INLINECODE messageLog). If a message will not fit into the remaining space in$(D_INLINECODE messageLog) then the function terminates and returns the number of messages written so far, which may be zero.)$(P If$(D_INLINECODE glGetDebugMessageLog) returns zero then no messages are present in the debug log, or there was not enough space in$(D_INLINECODE messageLog) to retrieve the first message in the queue. If$(D_INLINECODE messageLog) is NULL then no messages are written and the value of$(D_INLINECODE bufSize) is ignored.) | |
| * | |
| * $(P Although debug messages may be enabled in a non-debug context, the quantity and detail of such messages may be substantially inferior to those in a debug context. In particular, a valid implementation of the debug message queue in a non-debug context may produce no messages at all.) | |
| * | |
| * Params: | |
| * count = $(P The number of debug messages to retrieve from the log.) | |
| * bufSize = $(P The size of the buffer whose address is given by$(D_INLINECODE messageLog).) | |
| * sources = $(P The address of an array of variables to receive the sources of the retrieved messages.) | |
| * types = $(P The address of an array of variables to receive the types of the retrieved messages.) | |
| * ids = $(P The address of an array of unsigned integers to receive the ids of the retrieved messages.) | |
| * severities = $(P The address of an array of variables to receive the severites of the retrieved messages.) | |
| * lengths = $(P The address of an array of variables to receive the lengths of the received messages.) | |
| * messageLog = $(P The address of an array of characters that will receive the messages.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2013-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDebugMessageInsert),$(D_INLINECODE glDebugMessageCallback),$(D_INLINECODE glDebugMessageControl).) | |
| */ | |
| extern(C) GLuint function(GLuint count, GLsizei bufSize, GLenum* sources, GLenum* types, GLuint* ids, GLenum* severities, GLsizei* lengths, GLchar* messageLog) @system @nogc nothrow glGetDebugMessageLog; | |
| /** | |
| * glGetError: man4/glGetError.xml | |
| * | |
| * $(P $(D_INLINECODE glGetError) returns the value of the error flag. Each detectable error is assigned a numeric code and symbolic name. When an error occurs, the error flag is set to the appropriate error code value. No other errors are recorded until$(D_INLINECODE glGetError) is called, the error code is returned, and the flag is reset to$(D_INLINECODE GL_NO_ERROR). If a call to$(D_INLINECODE glGetError) returns$(D_INLINECODE GL_NO_ERROR), there has been no detectable error since the last call to$(D_INLINECODE glGetError), or since the GL was initialized.)$(P To allow for distributed implementations, there may be several error flags. If any single error flag has recorded an error, the value of that flag is returned and that flag is reset to$(D_INLINECODE GL_NO_ERROR) when$(D_INLINECODE glGetError) is called. If more than one flag has recorded an error,$(D_INLINECODE glGetError) returns and clears an arbitrary error flag value. Thus,$(D_INLINECODE glGetError) should always be called in a loop, until it returns$(D_INLINECODE GL_NO_ERROR), if all error flags are to be reset.)$(P Initially, all error flags are set to$(D_INLINECODE GL_NO_ERROR).)$(P The following errors are currently defined:) variablelist$(P When an error flag is set, results of a GL operation are undefined only if$(D_INLINECODE GL_OUT_OF_MEMORY) has occurred. In all other cases, the command generating the error is ignored and has no effect on the GL state or frame buffer contents. If the generating command returns a value, it returns 0. If$(D_INLINECODE glGetError) itself generates an error, it returns 0.) | |
| * | |
| * Params: | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * | |
| */ | |
| extern(C) GLenum function() @system @nogc nothrow glGetError; | |
| /** | |
| * glGetFragDataIndex: man4/glGetFragDataIndex.xml | |
| * | |
| * $(P $(D_INLINECODE glGetFragDataIndex) returns the index of the fragment color to which the variable$(D_INLINECODE name) was bound when the program object$(D_INLINECODE program) was last linked. If$(D_INLINECODE name) is not a varying out variable of$(D_INLINECODE program), or if an error occurs, -1 will be returned.) | |
| * | |
| * $(P $(D_INLINECODE glGetFragDataIndex) is available only if the GL version is 3.3 or greater.) | |
| * | |
| * Params: | |
| * program = $(P The name of the program containing varying out variable whose binding to query) | |
| * name = $(P The name of the user-defined varying out variable whose index to query) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glCreateProgram),$(D_INLINECODE glBindFragDataLocation),$(D_INLINECODE glBindFragDataLocationIndexed),$(D_INLINECODE glGetFragDataLocation)) | |
| */ | |
| extern(C) GLint function(GLuint program, const char* name) @system @nogc nothrow glGetFragDataIndex; | |
| /** | |
| * glGetFragDataLocation: man4/glGetFragDataLocation.xml | |
| * | |
| * $(P $(D_INLINECODE glGetFragDataLocation) retrieves the assigned color number binding for the user-defined varying out variable$(D_INLINECODE name) for program$(D_INLINECODE program).$(D_INLINECODE program) must have previously been linked.$(D_INLINECODE name) must be a null-terminated string. If$(D_INLINECODE name) is not the name of an active user-defined varying out fragment shader variable within$(D_INLINECODE program), -1 will be returned.) | |
| * | |
| * Params: | |
| * program = $(P The name of the program containing varying out variable whose binding to query) | |
| * name = $(P The name of the user-defined varying out variable whose binding to query) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glCreateProgram),$(D_INLINECODE glBindFragDataLocation)) | |
| */ | |
| extern(C) GLint function(GLuint program, const char* name) @system @nogc nothrow glGetFragDataLocation; | |
| /** | |
| * glGetFramebufferAttachmentParameter: man4/glGetFramebufferAttachmentParameter.xml | |
| * | |
| * $(P $(D_INLINECODE glGetFramebufferAttachmentParameteriv) and$(D_INLINECODE glGetNamedFramebufferAttachmentParameteriv) return parameters of attachments of a specified framebuffer object.)$(P For$(D_INLINECODE glGetFramebufferAttachmentParameteriv), the framebuffer object is that bound to$(D_INLINECODE target), which must be one of$(D_INLINECODE GL_DRAW_FRAMEBUFFER),$(D_INLINECODE GL_READ_FRAMEBUFFER) or$(D_INLINECODE GL_FRAMEBUFFER).$(D_INLINECODE GL_FRAMEBUFFER) is equivalent to$(D_INLINECODE GL_DRAW_FRAMEBUFFER). Buffers of default framebuffers may also be queried if bound to$(D_INLINECODE target).)$(P For$(D_INLINECODE glGetNamedFramebufferAttachmentParameteriv),$(D_INLINECODE framebuffer) is the name of the framebuffer object. If$(D_INLINECODE framebuffer) is zero, the default draw framebuffer is queried.)$(P If the specified framebuffer is a framebuffer object,$(D_INLINECODE attachment) must be one of$(D_INLINECODE GL_DEPTH_ATTACHMENT),$(D_INLINECODE GL_STENCIL_ATTACHMENT)$(D_INLINECODE GL_DEPTH_STENCIL_ATTACHMENT), or$(D_INLINECODE GL_COLOR_ATTACHMENT), where is between zero and the value of$(D_INLINECODE GL_MAX_COLOR_ATTACHMENTS) minus one.)$(P If the specified framebuffer is a default framebuffer,$(D_INLINECODE target),$(D_INLINECODE attachment) must be one of$(D_INLINECODE GL_FRONT_LEFT),$(D_INLINECODE GL_FRONT_RIGHT),$(D_INLINECODE GL_BACK_LEFT),$(D_INLINECODE GL_BACK_RIGHT),$(D_INLINECODE GL_DEPTH) or$(D_INLINECODE GL_STENCIL), identifying the corresponding buffer.)$(P If$(D_INLINECODE attachment) is$(D_INLINECODE GL_DEPTH_STENCIL_ATTACHMENT), the same object must be bound to both the depth and stencil attachment points of the framebuffer object, and information about that object is returned.)$(P Upon successful return, if$(D_INLINECODE pname) is$(D_INLINECODE GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE), then$(D_INLINECODE params) will contain one of$(D_INLINECODE GL_NONE),$(D_INLINECODE GL_FRAMEBUFFER_DEFAULT),$(D_INLINECODE GL_TEXTURE), or$(D_INLINECODE GL_RENDERBUFFER), identifying the type of object which contains the attached image. Other values accepted for$(D_INLINECODE pname) depend on the type of object, as described below.)$(P If the value of$(D_INLINECODE GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE) is$(D_INLINECODE GL_NONE), then either no framebuffer is bound to$(D_INLINECODE target); or a default framebuffer is queried,$(D_INLINECODE attachment) is$(D_INLINECODE GL_DEPTH) or$(D_INLINECODE GL_STENCIL), and the number of depth or stencil bits, respectively, is zero. In this case querying$(D_INLINECODE pname)$(D_INLINECODE GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME) will return zero, and all other queries will generate an error.)$(P If the value of$(D_INLINECODE GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE) is not$(D_INLINECODE GL_NONE), these queries apply to all other framebuffer types:) itemizedlist$(P If the value of$(D_INLINECODE GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE) is$(D_INLINECODE GL_RENDERBUFFER), then) itemizedlist$(P If the value of$(D_INLINECODE GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE) is$(D_INLINECODE GL_TEXTURE), then) itemizedlist | |
| * | |
| * $(P The$(D_INLINECODE GL_FRAMEBUFFER_ATTACHMENT_LAYERED) query is supported only if the GL version is 3.2 or greater.) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target to which the framebuffer object is bound for$(D_INLINECODE glGetFramebufferAttachmentParameteriv).) | |
| * framebuffer = $(P Specifies the name of the framebuffer object for$(D_INLINECODE glGetNamedFramebufferAttachmentParameteriv).) | |
| * attachment = $(P Specifies the attachment of the framebuffer object to query.) | |
| * pname = $(P Specifies the parameter of$(D_INLINECODE attachment) to query.) | |
| * params = $(P Returns the value of parameter$(D_INLINECODE pname) for$(D_INLINECODE attachment).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenFramebuffers),$(D_INLINECODE glBindFramebuffer)$(D_INLINECODE glGetFramebufferParameter)) | |
| */ | |
| extern(C) void function(GLenum target, GLenum attachment, GLenum pname, GLint* params) @system @nogc nothrow glGetFramebufferAttachmentParameteriv; | |
| /// Ditto | |
| extern(C) void function(GLuint framebuffer, GLenum attachment, GLenum pname, GLint* params) @system @nogc nothrow glGetNamedFramebufferAttachmentParameteriv; | |
| /** | |
| * glGetFramebufferParameter: man4/glGetFramebufferParameter.xml | |
| * | |
| * $(P $(D_INLINECODE glGetFramebufferParameteriv) and$(D_INLINECODE glGetNamedFramebufferParameteriv) query parameters of a specified framebuffer object.)$(P For$(D_INLINECODE glGetFramebufferParameteriv), the framebuffer object is that bound to$(D_INLINECODE target), which must be one of$(D_INLINECODE GL_DRAW_FRAMEBUFFER),$(D_INLINECODE GL_READ_FRAMEBUFFER) or$(D_INLINECODE GL_FRAMEBUFFER).$(D_INLINECODE GL_FRAMEBUFFER) is equivalent to$(D_INLINECODE GL_DRAW_FRAMEBUFFER). Default framebuffers may also be queried if bound to$(D_INLINECODE target).)$(P For$(D_INLINECODE glGetNamedFramebufferParameteriv),$(D_INLINECODE framebuffer) is the name of the framebuffer object. If$(D_INLINECODE framebuffer) is zero, the default draw framebuffer is queried.)$(P Upon successful return,$(D_INLINECODE param) will contain the value of the framebuffer parameter specified by$(D_INLINECODE pname), as described below.)$(P The following parameters can only be queried for framebuffer objects:) variablelist$(P The following parameters can be queried for both default framebuffers and framebuffer objects:) variablelist | |
| * | |
| * $(P Queries of default framebuffers are supported only if the GL version is 4.5 or higher. Otherwise, an$(D_INLINECODE GL_INVALID_OPERATION) error is generated.)$(P Queries of the framebuffer-dependent parameters$(D_INLINECODE GL_DOUBLEBUFFER),$(D_INLINECODE GL_IMPLEMENTATION_COLOR_READ_FORMAT),$(D_INLINECODE GL_IMPLEMENTATION_COLOR_READ_TYPE),$(D_INLINECODE GL_SAMPLES),$(D_INLINECODE GL_SAMPLE_BUFFERS) and$(D_INLINECODE GL_STEREO) are supported only if the GL version is 4.5 or higher.)$(P The framebuffer-dependent state$(D_INLINECODE GL_SAMPLE_POSITION) cannot be queried with these commands.) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target to which the framebuffer object is bound for$(D_INLINECODE glGetFramebufferParameteriv).) | |
| * framebuffer = $(P Specifies the name of the framebuffer object for$(D_INLINECODE glGetNamedFramebufferParameteriv).) | |
| * pname = $(P Specifies the parameter of the framebuffer object to query.) | |
| * params = $(P Returns the value of parameter$(D_INLINECODE pname) for the framebuffer object.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glFramebufferParameteri),$(D_INLINECODE glGetFramebufferAttachmentParameter)) | |
| */ | |
| extern(C) void function(GLenum target, GLenum pname, GLint* params) @system @nogc nothrow glGetFramebufferParameteriv; | |
| /// Ditto | |
| extern(C) void function(GLuint framebuffer, GLenum pname, GLint* param) @system @nogc nothrow glGetNamedFramebufferParameteriv; | |
| /** | |
| * glGetGraphicsResetStatus: man4/glGetGraphicsResetStatus.xml | |
| * | |
| * $(P Certain events can result in a reset of the GL context. Such a reset causes all context state to be lost and requires the application to recreate all objects in the affected context.)$(P $(D_INLINECODE glGetGraphicsResetStatus) can return one of the following constants:) variablelist$(P If a reset status other than$(D_INLINECODE GL_NO_ERROR) is returned and subsequent calls return$(D_INLINECODE GL_NO_ERROR), the context reset was encountered and completed. If a reset status is repeatedly returned, the context may be in the process of resetting.)$(P Reset notification behavior is determined at context creation time, and may be queried by calling$(D_INLINECODE GetIntegerv) with the symbolic constant$(D_INLINECODE GL_RESET_NOTIFICATION_STRATEGY).)$(P If the reset notification behavior is$(D_INLINECODE GL_NO_RESET_NOTIFICATION), then the implementation will never deliver notification of reset events, and$(D_INLINECODE glGetGraphicsResetStatus) will always return$(D_INLINECODE GL_NO_ERROR).)$(P If the behavior is$(D_INLINECODE GL_LOSE_CONTEXT_ON_RESET), a graphics reset will result in the loss of all context state, requiring the recreation of all associated objects. In this case$(D_INLINECODE glGetGraphicsResetStatus) may return any of the values described above.)$(P If a graphics reset notification occurs in a context, a notification must also occur in all other contexts which share objects with that context.)$(P After a graphics reset has occurred on a context, subsequent GL commands on that context (or any context which shares with that context) will generate a$(D_INLINECODE GL_CONTEXT_LOST) error. Such commands will not have side effects (in particular, they will not modify memory passed by pointer for query results), and will not block indefinitely or cause termination of the application. There are two important exceptions to this behavior:)$(P itemizedlist) | |
| * | |
| * Params: | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGetError)$(D_INLINECODE glGetIntegerv),$(D_INLINECODE glGetQueryObjectuiv)$(D_INLINECODE glGetSynciv)) | |
| */ | |
| extern(C) GLenum function() @system @nogc nothrow glGetGraphicsResetStatus; | |
| /** | |
| * glGetInternalformat: man4/glGetInternalformat.xml | |
| * | |
| * $(P $(D_INLINECODE glGetInternalformativ) and$(D_INLINECODE glGetInternalformati64v) retrieve information about implementation-dependent support for internal formats.$(D_INLINECODE target) indicates the target with which the internal format will be used and must be one of$(D_INLINECODE GL_RENDERBUFFER),$(D_INLINECODE GL_TEXTURE_2D_MULTISAMPLE), or$(D_INLINECODE GL_TEXTURE_2D_MULTISAMPLE_ARRAY), corresponding to usage as a renderbuffer, two-dimensional multisample texture or two-dimensional multisample array texture, respectively.)$(P $(D_INLINECODE internalformat) specifies the internal format about which to retrieve information and must be a color-renderable, depth-renderable or stencil-renderable format.)$(P The information retrieved will be written to memory addressed by the pointer specified in$(D_INLINECODE params). No more than$(D_INLINECODE bufSize) basic machine units will be written to this memory.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_NUM_SAMPLE_COUNTS), the number of sample counts that would be returned by querying$(D_INLINECODE GL_SAMPLES) will be returned in$(D_INLINECODE params).)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_SAMPLES), the sample counts supported for$(D_INLINECODE internalformat) and$(D_INLINECODE target) are written into$(D_INLINECODE params) in descending numeric order. Only positive values are returned. Querying$(D_INLINECODE GL_SAMPLES) with$(D_INLINECODE bufSize) of one will return just the maximum supported number of samples for this format. The maximum value in$(D_INLINECODE GL_SAMPLES) is guaranteed to be at least the lowest of the following: itemizedlist)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_INTERNALFORMAT_SUPPORTED),$(D_INLINECODE params) is set to$(D_INLINECODE GL_TRUE) if$(D_INLINECODE internalFormat) is a supported internal format for$(D_INLINECODE target) and to$(D_INLINECODE GL_FALSE) otherwise.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_INTERNALFORMAT_PREFERRED),$(D_INLINECODE params) is set to$(D_INLINECODE GL_TRUE) if$(D_INLINECODE internalFormat) is an format for$(D_INLINECODE target) that is preferred by the implementation and to$(D_INLINECODE GL_FALSE) otherwise.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_INTERNALFORMAT_RED_SIZE),$(D_INLINECODE GL_INTERNALFORMAT_GREEN_SIZE),$(D_INLINECODE GL_INTERNALFORMAT_BLUE_SIZE),$(D_INLINECODE GL_INTERNALFORMAT_ALPHA_SIZE),$(D_INLINECODE GL_INTERNALFORMAT_DEPTH_SIZE),$(D_INLINECODE GL_INTERNALFORMAT_STENCIL_SIZE), or$(D_INLINECODE GL_INTERNALFORMAT_SHARED_SIZE) then$(D_INLINECODE params) is set to the actual resolutions that would be used for storing image array components for the resource for the red, green, blue, alpha, depth, stencil and shared channels respectively. If$(D_INLINECODE internalFormat) is a compressed internal format, then$(D_INLINECODE params) is set to the component resolution of an uncompressed internal format that produces an image of roughly the same quality as the compressed algorithm. If the internal format is unsupported, or if a particular component is not present in the format, 0 is written to$(D_INLINECODE params).)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_INTERNALFORMAT_RED_TYPE),$(D_INLINECODE GL_INTERNALFORMAT_GREEN_TYPE),$(D_INLINECODE GL_INTERNALFORMAT_BLUE_TYPE),$(D_INLINECODE GL_INTERNALFORMAT_ALPHA_TYPE),$(D_INLINECODE GL_INTERNALFORMAT_DEPTH_TYPE), or$(D_INLINECODE GL_INTERNALFORMAT_STENCIL_TYPE) then$(D_INLINECODE params) is set to a token identifying the data type used to store the respective component. If the$(D_INLINECODE internalFormat) represents a compressed internal format then the types returned specify how components are interpreted after decompression.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_MAX_WIDTH),$(D_INLINECODE GL_MAX_HEIGHT),$(D_INLINECODE GL_MAX_DEPTH), or$(D_INLINECODE GL_MAX_LAYERS) then$(D_INLINECODE pname) is filled with the maximum width, height, depth or layer count for textures with internal format$(D_INLINECODE internalFormat), respectively. If$(D_INLINECODE pname) is$(D_INLINECODE GL_MAX_COMBINED_DIMENSIONS) then$(D_INLINECODE pname) is filled with the maximum combined dimensions of a texture of the specified internal format.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_COLOR_COMPONENTS) then$(D_INLINECODE params) is set to the value$(D_INLINECODE GL_TRUE) if the internal format contains any color component (i.e., red, green, blue or alpha) and to$(D_INLINECODE GL_FALSE) otherwise. If$(D_INLINECODE pname) is$(D_INLINECODE GL_DEPTH_COMPONENTS) or$(D_INLINECODE GL_STENCIL_COMPONENTS) then$(D_INLINECODE params) is set to$(D_INLINECODE GL_TRUE) if the internal format contains a depth or stencil component, respectively, and to$(D_INLINECODE GL_FALSE) otherwise.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_COLOR_RENDERABLE),$(D_INLINECODE GL_DEPTH_RENDERABLE) or$(D_INLINECODE GL_STENCIL_RENDERABLE) then$(D_INLINECODE params) is set to$(D_INLINECODE GL_TRUE) if the specified internal format is color, depth or stencil renderable, respectively, and to$(D_INLINECODE GL_FALSE) otherwise.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_FRAMEBUFFER_RENDERABLE) or$(D_INLINECODE GL_FRAMEBUFFER_RENDERABLE_LAYERED) then$(D_INLINECODE params) is set to one of$(D_INLINECODE GL_FULL_SUPPORT),$(D_INLINECODE GL_CAVEAT_SUPPORT) or$(D_INLINECODE GL_NONE) to indicate that framebuffer attachments (layered attachments in the case of$(D_INLINECODE GL_FRAMEBUFFER_RENDERABLE_LAYERED) ) with that internal format are either renderable with no restrictions, renderable with some restrictions or not renderable at all.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_FRAMEBUFFER_BLEND),$(D_INLINECODE params) is set to$(D_INLINECODE GL_TRUE) to indicate that the internal format is supported for blending operations when attached to a framebuffer, and to$(D_INLINECODE GL_FALSE) otherwise.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_READ_PIXELS) then$(D_INLINECODE params) is set to$(D_INLINECODE GL_FULL_SUPPORT),$(D_INLINECODE GL_CAVEAT_SUPPORT) or$(D_INLINECODE GL_NONE) to that either full support, limited support or no support at all is supplied for reading pixels from framebuffer attachments in the specified internal format.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_READ_PIXELS_FORMAT) or$(D_INLINECODE GL_READ_PIXELS_TYPE) then$(D_INLINECODE params) is filled with the format or type, respectively, most recommended to obtain the highest image quality and performance. For$(D_INLINECODE GL_READ_PIXELS_FORMAT), the value returned in$(D_INLINECODE params) is a token that is accepted for the$(D_INLINECODE format) argument to$(D_INLINECODE glReadPixels). For$(D_INLINECODE GL_READ_PIXELS_TYPE), the value returned in$(D_INLINECODE params) is a token that is accepted for the$(D_INLINECODE type) argument to$(D_INLINECODE glReadPixels).)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_TEXTURE_IMAGE_FORMAT) or$(D_INLINECODE GL_TEXTURE_IMAGE_TYPE) then$(D_INLINECODE params) is filled with the implementation-recommended format or type to be used in calls to$(D_INLINECODE glTexImage2D) and other similar functions. For$(D_INLINECODE GL_TEXTURE_IMAGE_FORMAT),$(D_INLINECODE params) is filled with a token suitable for use as the$(D_INLINECODE format) argument to$(D_INLINECODE glTexImage2D). For$(D_INLINECODE GL_TEXTURE_IMAGE_TYPE),$(D_INLINECODE params) is filled with a token suitable for use as the$(D_INLINECODE type) argument to$(D_INLINECODE glTexImage2D).)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_GET_TEXTURE_IMAGE_FORMAT) or$(D_INLINECODE GL_GET_TEXTURE_IMAGE_TYPE) then$(D_INLINECODE params) is filled with the implementation-recommended format or type to be used in calls to$(D_INLINECODE glGetTexImage) and other similar functions. For$(D_INLINECODE GL_GET_TEXTURE_IMAGE_FORMAT),$(D_INLINECODE params) is filled with a token suitable for use as the$(D_INLINECODE format) argument to$(D_INLINECODE glGetTexImage). For$(D_INLINECODE GL_GET_TEXTURE_IMAGE_TYPE),$(D_INLINECODE params) is filled with a token suitable for use as the$(D_INLINECODE type) argument to$(D_INLINECODE glGetTexImage).)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_MIPMAP) then$(D_INLINECODE pname) is set to$(D_INLINECODE GL_TRUE) to indicate that the specified internal format supports mipmaps and to$(D_INLINECODE GL_FALSE) otherwise.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_GENERATE_MIPMAP) or$(D_INLINECODE GL_AUTO_GENERATE_MIPMAP) then$(D_INLINECODE params) is indicates the level of support for manual or automatic mipmap generation for the specified internal format, respectively. Returned values may be one of$(D_INLINECODE GL_FULL_SUPPORT),$(D_INLINECODE GL_CAVEAT_SUPPORT) and$(D_INLINECODE GL_NONE) to indicate either full support, limited support or no support at all.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_COLOR_ENCODING) then the color encoding for the resource is returned in$(D_INLINECODE params). Possible values for color buffers are$(D_INLINECODE GL_LINEAR) or$(D_INLINECODE GL_SRGB), for linear or sRGB-encoded color components, respectively. For non-color formats (such as depth or stencil), or for unsupported resources, the value$(D_INLINECODE GL_NONE) is returned.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_SRGB_READ), or$(D_INLINECODE GL_SRGB_WRITE) then$(D_INLINECODE params) indicates the level of support for reading and writing to sRGB encoded images, respectively. For$(D_INLINECODE GL_SRGB_READ), support for converting from sRGB colorspace on read operations is returned in$(D_INLINECODE params) and for$(D_INLINECODE GL_SRGB_WRITE), support for converting to sRGB colorspace on write operations to the resource is returned in$(D_INLINECODE params).$(D_INLINECODE params) may be set to$(D_INLINECODE GL_FULL_SUPPORT),$(D_INLINECODE GL_CAVEAT_SUPPORT), or$(D_INLINECODE GL_NONE) to indicate full support, limited support or no support at all, respecitively.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_FILTER) the$(D_INLINECODE params) is set to either$(D_INLINECODE GL_TRUE) or$(D_INLINECODE GL_FALSE) to indicate support or lack thereof for filter modes other than$(D_INLINECODE GL_NEAREST) or$(D_INLINECODE GL_NEAREST_MIPMAP) for the specified internal format.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_VERTEX_TEXTURE),$(D_INLINECODE GL_TESS_CONTROL_TEXTURE),$(D_INLINECODE GL_TESS_EVALUATION_TEXTURE),$(D_INLINECODE GL_GEOMETRY_TEXTURE),$(D_INLINECODE GL_FRAGMENT_TEXTURE), or$(D_INLINECODE GL_COMPUTE_TEXTURE), then the value written to$(D_INLINECODE params) indicates support for use of the resource as a source of texturing in the vertex, tessellation control, tessellation evaluation, geometry, fragment and compute shader stages, respectively.$(D_INLINECODE params) may be set to$(D_INLINECODE GL_FULL_SUPPORT),$(D_INLINECODE GL_CAVEAT_SUPPORT) or$(D_INLINECODE GL_NONE) to indicate full support, limited support or no support at all, respectively.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_TEXTURE_SHADOW),$(D_INLINECODE GL_TEXTURE_GATHER) or$(D_INLINECODE GL_TEXTURE_GATHER_SHADOW) then the value written to$(D_INLINECODE params) indicates the level of support for using the resource with a shadow sampler, in gather operations or as a shadow sampler in gather operations, respectively. Returned values may be$(D_INLINECODE GL_FULL_SUPPORT),$(D_INLINECODE GL_CAVEAT_SUPPORT) or$(D_INLINECODE GL_NONE) to indicate full support, limited support or no support at all, respectively.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_SHADER_IMAGE_LOAD),$(D_INLINECODE GL_SHADER_IMAGE_STORE) or$(D_INLINECODE GL_SHADER_IMAGE_ATOMIC) then the value returned in$(D_INLINECODE params) indicates the level of support for image loads, stores and atomics for resources of the specified internal format. Returned values may be$(D_INLINECODE GL_FULL_SUPPORT),$(D_INLINECODE GL_CAVEAT_SUPPORT) or$(D_INLINECODE GL_NONE) to indicate full support, limited support or no support at all, respectively.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_IMAGE_TEXEL_SIZE) then the size of a texel when the resource when used as an image texture is returned in$(D_INLINECODE params). If the resource is not supported for image textures zero is returned.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_IMAGE_COMPATIBILITY_CLASS) then the compatibility class of the resource when used as an image texture is returned in$(D_INLINECODE params). The possible values returned are$(D_INLINECODE GL_IMAGE_CLASS_4_X_32),$(D_INLINECODE GL_IMAGE_CLASS_2_X_32),$(D_INLINECODE GL_IMAGE_CLASS_1_X_32),$(D_INLINECODE GL_IMAGE_CLASS_4_X_16),$(D_INLINECODE GL_IMAGE_CLASS_2_X_16),$(D_INLINECODE GL_IMAGE_CLASS_1_X_16),$(D_INLINECODE GL_IMAGE_CLASS_4_X_8),$(D_INLINECODE GL_IMAGE_CLASS_2_X_8),$(D_INLINECODE GL_IMAGE_CLASS_1_X_8),$(D_INLINECODE GL_IMAGE_CLASS_11_11_10), and$(D_INLINECODE GL_IMAGE_CLASS_10_10_10_2), which correspond to the 4x32, 2x32, 1x32, 4x16, 2x16, 1x16, 4x8, 2x8, 1x8, the class (a) 11/11/10 packed floating-point format, and the class (b) 10/10/10/2 packed formats, respectively. If the resource is not supported for image textures,$(D_INLINECODE GL_NONE) is returned.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_IMAGE_PIXEL_FORMAT) or$(D_INLINECODE GL_IMAGE_PIXEL_TYPE) then the pixel format or type of the resource when used as an image texture is returned in$(D_INLINECODE params), respectively. In either case, the resource is not supported for image textures$(D_INLINECODE GL_NONE) is returned.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_IMAGE_FORMAT_COMPATIBILITY_TYPE), the matching criteria use for the resource when used as an image textures is returned in$(D_INLINECODE params). Possible values returned in$(D_INLINECODE params) are$(D_INLINECODE GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE) or$(D_INLINECODE GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS). If the resource is not supported for image textures,$(D_INLINECODE GL_NONE) is returned.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST) or$(D_INLINECODE GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST), support for using the resource both as a source for texture sampling while it is bound as a buffer for depth or stencil test, respectively, is written to$(D_INLINECODE params). Possible values returned are$(D_INLINECODE GL_FULL_SUPPORT),$(D_INLINECODE GL_CAVEAT_SUPPORT), or$(D_INLINECODE GL_NONE) to indicate full support, limited support or no support at all. If the resource or operation is not supported,$(D_INLINECODE GL_NONE) is returned.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE) or$(D_INLINECODE GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE), support for using the resource both as a source for texture sampling while performing depth or stencil writes to the resources, respectively, is written to$(D_INLINECODE params). Possible values returned are$(D_INLINECODE GL_FULL_SUPPORT),$(D_INLINECODE GL_CAVEAT_SUPPORT), or$(D_INLINECODE GL_NONE) to indicate full support, limited support or no support at all. If the resource or operation is not supported,$(D_INLINECODE GL_NONE) is returned.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_TEXTURE_COMPRESSED) then$(D_INLINECODE GL_TRUE) is returned in$(D_INLINECODE params) if$(D_INLINECODE internalformat) is a compressed internal format.$(D_INLINECODE GL_FALSE) is returned in$(D_INLINECODE params) otherwise.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_TEXTURE_COMPRESSED_BLOCK_WIDTH),$(D_INLINECODE GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT) or$(D_INLINECODE GL_TEXTURE_COMPRESSED_BLOCK_SIZE) then the width, height or total size, respectively of a block (in basic machine units) is returned in$(D_INLINECODE params). If the internal format is not compressed, or the resource is not supported, 0 is returned.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_CLEAR_BUFFER), the level of support for using the resource with$(D_INLINECODE glClearBufferData) and$(D_INLINECODE glClearBufferSubData) is returned in$(D_INLINECODE params). Possible values returned are$(D_INLINECODE GL_FULL_SUPPORT),$(D_INLINECODE GL_CAVEAT_SUPPORT), or$(D_INLINECODE GL_NONE) to indicate full support, limited support or no support at all, respectively. If the resource or operation is not supported,$(D_INLINECODE GL_NONE) is returned.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_TEXTURE_VIEW), the level of support for using the resource with the$(D_INLINECODE glTextureView) command is returned in$(D_INLINECODE params). Possible values returned are$(D_INLINECODE GL_FULL_SUPPORT),$(D_INLINECODE GL_CAVEAT_SUPPORT), or$(D_INLINECODE GL_NONE) to indicate full support, limited support or no support at all, respectively. If the resource or operation is not supported,$(D_INLINECODE GL_NONE) is returned.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_VIEW_COMPATIBILITY_CLASS) then the compatibility class of the resource when used as a texture view is returned in$(D_INLINECODE params). The possible values returned are$(D_INLINECODE GL_VIEW_CLASS_128_BITS),$(D_INLINECODE GL_VIEW_CLASS_96_BITS),$(D_INLINECODE GL_VIEW_CLASS_64_BITS),$(D_INLINECODE GL_VIEW_CLASS_48_BITS),$(D_INLINECODE GL_VIEW_CLASS_32_BITS),$(D_INLINECODE GL_VIEW_CLASS_24_BITS),$(D_INLINECODE GL_VIEW_CLASS_16_BITS),$(D_INLINECODE GL_VIEW_CLASS_8_BITS),$(D_INLINECODE GL_VIEW_CLASS_S3TC_DXT1_RGB),$(D_INLINECODE GL_VIEW_CLASS_S3TC_DXT1_RGBA),$(D_INLINECODE GL_VIEW_CLASS_S3TC_DXT3_RGBA),$(D_INLINECODE GL_VIEW_CLASS_S3TC_DXT5_RGBA),$(D_INLINECODE GL_VIEW_CLASS_RGTC1_RED),$(D_INLINECODE GL_VIEW_CLASS_RGTC2_RG),$(D_INLINECODE GL_VIEW_CLASS_BPTC_UNORM), and$(D_INLINECODE GL_VIEW_CLASS_BPTC_FLOAT).)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_CLEAR_TEXTURE) then the presence of support for using the$(D_INLINECODE glClearTexImage) and$(D_INLINECODE glClearTexSubImage) commands with the resource is written to$(D_INLINECODE params). Possible values written are$(D_INLINECODE GL_FULL_SUPPORT),$(D_INLINECODE GL_CAVEAT_SUPPORT), or$(D_INLINECODE GL_NONE) to indicate full support, limited support or no support at all, respectively. If the resource or operation is not supported,$(D_INLINECODE GL_NONE) is returned.) | |
| * | |
| * $(P $(D_INLINECODE glGetInternalformativ) is available only if the GL version is 4.2 or higher.)$(P The tokens$(D_INLINECODE GL_INTERNALFORMAT_SUPPORTED),$(D_INLINECODE GL_INTERNALFORMAT_PREFERRED),$(D_INLINECODE GL_INTERNALFORMAT_RED_SIZE),$(D_INLINECODE GL_INTERNALFORMAT_GREEN_SIZE),$(D_INLINECODE GL_INTERNALFORMAT_BLUE_SIZE),$(D_INLINECODE GL_INTERNALFORMAT_ALPHA_SIZE),$(D_INLINECODE GL_INTERNALFORMAT_DEPTH_SIZE),$(D_INLINECODE GL_INTERNALFORMAT_STENCIL_SIZE),$(D_INLINECODE GL_INTERNALFORMAT_SHARED_SIZE),$(D_INLINECODE GL_INTERNALFORMAT_RED_TYPE),$(D_INLINECODE GL_INTERNALFORMAT_GREEN_TYPE),$(D_INLINECODE GL_INTERNALFORMAT_BLUE_TYPE),$(D_INLINECODE GL_INTERNALFORMAT_ALPHA_TYPE),$(D_INLINECODE GL_INTERNALFORMAT_DEPTH_TYPE),$(D_INLINECODE GL_INTERNALFORMAT_STENCIL_TYPE),$(D_INLINECODE GL_MAX_WIDTH),$(D_INLINECODE GL_MAX_HEIGHT),$(D_INLINECODE GL_MAX_DEPTH),$(D_INLINECODE GL_MAX_LAYERS),$(D_INLINECODE GL_MAX_COMBINED_DIMENSIONS),$(D_INLINECODE GL_COLOR_COMPONENTS),$(D_INLINECODE GL_DEPTH_COMPONENTS),$(D_INLINECODE GL_STENCIL_COMPONENTS),$(D_INLINECODE GL_COLOR_RENDERABLE),$(D_INLINECODE GL_DEPTH_RENDERABLE),$(D_INLINECODE GL_STENCIL_RENDERABLE),$(D_INLINECODE GL_FRAMEBUFFER_RENDERABLE),$(D_INLINECODE GL_FRAMEBUFFER_RENDERABLE_LAYERED),$(D_INLINECODE GL_FRAMEBUFFER_BLEND),$(D_INLINECODE GL_READ_PIXELS),$(D_INLINECODE GL_READ_PIXELS_FORMAT),$(D_INLINECODE GL_READ_PIXELS_TYPE),$(D_INLINECODE GL_TEXTURE_IMAGE_FORMAT),$(D_INLINECODE GL_TEXTURE_IMAGE_TYPE),$(D_INLINECODE GL_GET_TEXTURE_IMAGE_FORMAT),$(D_INLINECODE GL_GET_TEXTURE_IMAGE_TYPE),$(D_INLINECODE GL_MIPMAP),$(D_INLINECODE GL_GENERATE_MIPMAP),$(D_INLINECODE GL_AUTO_GENERATE_MIPMAP),$(D_INLINECODE GL_COLOR_ENCODING),$(D_INLINECODE GL_SRGB_READ),$(D_INLINECODE GL_SRGB_WRITE),$(D_INLINECODE GL_SRGB_DECODE_ARB),$(D_INLINECODE GL_FILTER),$(D_INLINECODE GL_VERTEX_TEXTURE),$(D_INLINECODE GL_TESS_CONTROL_TEXTURE),$(D_INLINECODE GL_TESS_EVALUATION_TEXTURE),$(D_INLINECODE GL_GEOMETRY_TEXTURE),$(D_INLINECODE GL_FRAGMENT_TEXTURE),$(D_INLINECODE GL_COMPUTE_TEXTURE),$(D_INLINECODE GL_TEXTURE_SHADOW),$(D_INLINECODE GL_TEXTURE_GATHER),$(D_INLINECODE GL_TEXTURE_GATHER_SHADOW),$(D_INLINECODE GL_SHADER_IMAGE_LOAD),$(D_INLINECODE GL_SHADER_IMAGE_STORE),$(D_INLINECODE GL_SHADER_IMAGE_ATOMIC),$(D_INLINECODE GL_IMAGE_TEXEL_SIZE),$(D_INLINECODE GL_IMAGE_COMPATIBILITY_CLASS),$(D_INLINECODE GL_IMAGE_PIXEL_FORMAT),$(D_INLINECODE GL_IMAGE_PIXEL_TYPE),$(D_INLINECODE GL_IMAGE_FORMAT_COMPATIBILITY_TYPE),$(D_INLINECODE GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST),$(D_INLINECODE GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST),$(D_INLINECODE GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE),$(D_INLINECODE GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE),$(D_INLINECODE GL_TEXTURE_COMPRESSED),$(D_INLINECODE GL_TEXTURE_COMPRESSED_BLOCK_WIDTH),$(D_INLINECODE GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT),$(D_INLINECODE GL_TEXTURE_COMPRESSED_BLOCK_SIZE),$(D_INLINECODE GL_CLEAR_BUFFER),$(D_INLINECODE GL_TEXTURE_VIEW), and$(D_INLINECODE GL_VIEW_COMPATIBILITY_CLASS) are supported only if the GL version is 4.3 or higher.)$(P The$(D_INLINECODE GL_CLEAR_TEXTURE) token is accepted for$(D_INLINECODE pname) only if the GL version is 4.4 or higher.) | |
| * | |
| * Params: | |
| * target = $(P Indicates the usage of the internal format.$(D_INLINECODE target) must be$(D_INLINECODE GL_TEXTURE_1D),$(D_INLINECODE GL_TEXTURE_1D_ARRAY),$(D_INLINECODE GL_TEXTURE_2D),$(D_INLINECODE GL_TEXTURE_2D_ARRAY),$(D_INLINECODE GL_TEXTURE_3D),$(D_INLINECODE GL_TEXTURE_CUBE_MAP),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_ARRAY),$(D_INLINECODE GL_TEXTURE_RECTANGLE),$(D_INLINECODE GL_TEXTURE_BUFFER),$(D_INLINECODE GL_RENDERBUFFER),$(D_INLINECODE GL_TEXTURE_2D_MULTISAMPLE) or$(D_INLINECODE GL_TEXTURE_2D_MULTISAMPLE_ARRAY).) | |
| * internalformat = $(P Specifies the internal format about which to retrieve information.) | |
| * pname = $(P Specifies the type of information to query.) | |
| * bufSize = $(P Specifies the maximum number of basic machine units that may be written to$(D_INLINECODE params) by the function.) | |
| * params = $(P Specifies the address of a variable into which to write the retrieved information.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2011-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGet)) | |
| */ | |
| extern(C) void function(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint* params) @system @nogc nothrow glGetInternalformativ; | |
| /// Ditto | |
| extern(C) void function(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint64* params) @system @nogc nothrow glGetInternalformati64v; | |
| /** | |
| * glGetMultisample: man4/glGetMultisample.xml | |
| * | |
| * $(P $(D_INLINECODE glGetMultisamplefv) queries the location of a given sample.$(D_INLINECODE pname) specifies the sample parameter to retrieve and must be$(D_INLINECODE GL_SAMPLE_POSITION).$(D_INLINECODE index) corresponds to the sample for which the location should be returned. The sample location is returned as two floating-point values in$(D_INLINECODE val[0]) and$(D_INLINECODE val[1]), each between 0 and 1, corresponding to the$(D_INLINECODE x) and$(D_INLINECODE y) locations respectively in the GL pixel space of that sample. (0.5, 0.5) this corresponds to the pixel center.$(D_INLINECODE index) must be between zero and the value of$(D_INLINECODE GL_SAMPLES) minus one.)$(P If the multisample mode does not have fixed sample locations, the returned values may only reflect the locations of samples within some pixels.) | |
| * | |
| * Params: | |
| * pname = $(P Specifies the sample parameter name.$(D_INLINECODE pname) must be$(D_INLINECODE GL_SAMPLE_POSITION).) | |
| * index = $(P Specifies the index of the sample whose position to query.) | |
| * val = $(P Specifies the address of an array to receive the position of the sample.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenFramebuffers),$(D_INLINECODE glBindFramebuffer)) | |
| */ | |
| extern(C) void function(GLenum pname, GLuint index, GLfloat* val) @system @nogc nothrow glGetMultisamplefv; | |
| /** | |
| * glGetNamedRenderbufferParameteriv: man4/glGetRenderbufferParameter.xml | |
| * | |
| * $(P $(D_INLINECODE glGetRenderbufferParameteriv) and$(D_INLINECODE glGetNamedRenderbufferParameteriv) query parameters of a specified renderbuffer object.)$(P For$(D_INLINECODE glGetRenderbufferParameteriv), the renderbuffer object is that bound to$(D_INLINECODE target), which must be$(D_INLINECODE GL_RENDERBUFFER).)$(P For$(D_INLINECODE glGetNamedRenderbufferParameteriv),$(D_INLINECODE renderbuffer) is the name of the renderbuffer object.)$(P Upon successful return,$(D_INLINECODE param) will contain the value of the renderbuffer parameter specified by$(D_INLINECODE pname), as described below.) variablelist | |
| * | |
| * Params: | |
| * target = $(P Specifies the target to which the renderbuffer object is bound for$(D_INLINECODE glGetRenderbufferParameteriv).$(D_INLINECODE target) must be$(D_INLINECODE GL_RENDERBUFFER).) | |
| * renderbuffer = $(P Specifies the name of the renderbuffer object for$(D_INLINECODE glGetNamedRenderbufferParameteriv).) | |
| * pname = $(P Specifies the parameter of the renderbuffer object to query.) | |
| * params = $(P Returns the value of parameter$(D_INLINECODE pname) for the renderbuffer object.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenRenderbuffers),$(D_INLINECODE glFramebufferRenderbuffer),$(D_INLINECODE glBindRenderbuffer),$(D_INLINECODE glRenderbufferStorage),$(D_INLINECODE glRenderbufferStorageMultisample)) | |
| */ | |
| extern(C) void function(GLenum target, GLenum pname, GLint* params) @system @nogc nothrow glGetRenderbufferParameteriv; | |
| /// Ditto | |
| extern(C) void function(GLuint renderbuffer, GLenum pname, GLint* params) @system @nogc nothrow glGetNamedRenderbufferParameteriv; | |
| /** | |
| * glGetnTexImage: man4/glGetTexImage.xml | |
| * | |
| * $(P $(D_INLINECODE glGetTexImage),$(D_INLINECODE glGetnTexImage) and$(D_INLINECODE glGetTextureImage) functions return a texture image into$(D_INLINECODE pixels). For$(D_INLINECODE glGetTexImage) and$(D_INLINECODE glGetnTexImage),$(D_INLINECODE target) specifies whether the desired texture image is one specified by$(D_INLINECODE glTexImage1D) ($(D_INLINECODE GL_TEXTURE_1D) ),$(D_INLINECODE glTexImage2D) ($(D_INLINECODE GL_TEXTURE_1D_ARRAY),$(D_INLINECODE GL_TEXTURE_RECTANGLE),$(D_INLINECODE GL_TEXTURE_2D) or any of$(D_INLINECODE GL_TEXTURE_CUBE_MAP_*) ), or$(D_INLINECODE glTexImage3D) ($(D_INLINECODE GL_TEXTURE_2D_ARRAY),$(D_INLINECODE GL_TEXTURE_3D),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_ARRAY) ). For$(D_INLINECODE glGetTextureImage),$(D_INLINECODE texture) specifies the texture object name. In addition to types of textures accepted by$(D_INLINECODE glGetTexImage) and$(D_INLINECODE glGetnTexImage), the function also accepts cube map texture objects (with effective target$(D_INLINECODE GL_TEXTURE_CUBE_MAP) ).$(D_INLINECODE level) specifies the level-of-detail number of the desired image.$(D_INLINECODE format) and$(D_INLINECODE type) specify the format and type of the desired image array. See the reference page for$(D_INLINECODE glTexImage1D) for a description of the acceptable values for the$(D_INLINECODE format) and$(D_INLINECODE type) parameters, respectively. For glGetnTexImage and glGetTextureImage functions, bufSize tells the size of the buffer to receive the retrieved pixel data.$(D_INLINECODE glGetnTexImage) and$(D_INLINECODE glGetTextureImage) do not write more than$(D_INLINECODE bufSize) bytes into$(D_INLINECODE pixels).)$(P If a non-zero named buffer object is bound to the$(D_INLINECODE GL_PIXEL_PACK_BUFFER) target (see$(D_INLINECODE glBindBuffer) ) while a texture image is requested,$(D_INLINECODE pixels) is treated as a byte offset into the buffer object's data store.)$(P To understand the operation of$(D_INLINECODE glGetTexImage), consider the selected internal four-component texture image to be an RGBA color buffer the size of the image. The semantics of$(D_INLINECODE glGetTexImage) are then identical to those of$(D_INLINECODE glReadPixels), with the exception that no pixel transfer operations are performed, when called with the same$(D_INLINECODE format) and$(D_INLINECODE type), with and set to 0, set to the width of the texture image and set to 1 for 1D images, or to the height of the texture image for 2D images.)$(P If the selected texture image does not contain four components, the following mappings are applied. Single-component textures are treated as RGBA buffers with red set to the single-component value, green set to 0, blue set to 0, and alpha set to 1. Two-component textures are treated as RGBA buffers with red set to the value of component zero, alpha set to the value of component one, and green and blue set to 0. Finally, three-component textures are treated as RGBA buffers with red set to component zero, green set to component one, blue set to component two, and alpha set to 1.)$(P To determine the required size of$(D_INLINECODE pixels), use$(D_INLINECODE glGetTexLevelParameter) to determine the dimensions of the internal texture image, then scale the required number of pixels by the storage required for each pixel, based on$(D_INLINECODE format) and$(D_INLINECODE type). Be sure to take the pixel storage parameters into account, especially$(D_INLINECODE GL_PACK_ALIGNMENT).)$(P If$(D_INLINECODE glGetTextureImage) is used against a cube map texture object, the texture is treated as a three-dimensional image of a depth of 6, where the cube map faces are ordered as image layers, in an order presented in the table below:) Layer number Cube Map Face 0 GL_TEXTURE_CUBE_MAP_POSITIVE_X 1 GL_TEXTURE_CUBE_MAP_NEGATIVE_X 2 GL_TEXTURE_CUBE_MAP_POSITIVE_Y 3 GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 4 GL_TEXTURE_CUBE_MAP_POSITIVE_Z 5 GL_TEXTURE_CUBE_MAP_NEGATIVE_Z | |
| * | |
| * $(P If an error is generated, no change is made to the contents of$(D_INLINECODE pixels).)$(P $(D_INLINECODE glGetTexImage) and$(D_INLINECODE glGetnTexImage) return the texture image for the active texture unit.)$(P $(D_INLINECODE GL_STENCIL_INDEX) is accepted for$(D_INLINECODE format) only if the GL version is 4.4 or greater.) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target to which the texture is bound for$(D_INLINECODE glGetTexImage) and$(D_INLINECODE glGetnTexImage) functions.$(D_INLINECODE GL_TEXTURE_1D),$(D_INLINECODE GL_TEXTURE_2D),$(D_INLINECODE GL_TEXTURE_3D),$(D_INLINECODE GL_TEXTURE_1D_ARRAY),$(D_INLINECODE GL_TEXTURE_2D_ARRAY),$(D_INLINECODE GL_TEXTURE_RECTANGLE),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_X),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_NEGATIVE_X),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_Y),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_NEGATIVE_Y),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_Z),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_NEGATIVE_Z), and$(D_INLINECODE GL_TEXTURE_CUBE_MAP_ARRAY) are acceptable.) | |
| * texture = $(P Specifies the texture object name.) | |
| * level = $(P Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level n is the n th mipmap reduction image.) | |
| * format = $(P Specifies a pixel format for the returned data. The supported formats are$(D_INLINECODE GL_STENCIL_INDEX),$(D_INLINECODE GL_DEPTH_COMPONENT),$(D_INLINECODE GL_DEPTH_STENCIL),$(D_INLINECODE GL_RED),$(D_INLINECODE GL_GREEN),$(D_INLINECODE GL_BLUE),$(D_INLINECODE GL_RG),$(D_INLINECODE GL_RGB),$(D_INLINECODE GL_RGBA),$(D_INLINECODE GL_BGR),$(D_INLINECODE GL_BGRA),$(D_INLINECODE GL_RED_INTEGER),$(D_INLINECODE GL_GREEN_INTEGER),$(D_INLINECODE GL_BLUE_INTEGER),$(D_INLINECODE GL_RG_INTEGER),$(D_INLINECODE GL_RGB_INTEGER),$(D_INLINECODE GL_RGBA_INTEGER),$(D_INLINECODE GL_BGR_INTEGER),$(D_INLINECODE GL_BGRA_INTEGER).) | |
| * type = $(P Specifies a pixel type for the returned data. The supported types are$(D_INLINECODE GL_UNSIGNED_BYTE),$(D_INLINECODE GL_BYTE),$(D_INLINECODE GL_UNSIGNED_SHORT),$(D_INLINECODE GL_SHORT),$(D_INLINECODE GL_UNSIGNED_INT),$(D_INLINECODE GL_INT),$(D_INLINECODE GL_HALF_FLOAT),$(D_INLINECODE GL_FLOAT),$(D_INLINECODE GL_UNSIGNED_BYTE_3_3_2),$(D_INLINECODE GL_UNSIGNED_BYTE_2_3_3_REV),$(D_INLINECODE GL_UNSIGNED_SHORT_5_6_5),$(D_INLINECODE GL_UNSIGNED_SHORT_5_6_5_REV),$(D_INLINECODE GL_UNSIGNED_SHORT_4_4_4_4),$(D_INLINECODE GL_UNSIGNED_SHORT_4_4_4_4_REV),$(D_INLINECODE GL_UNSIGNED_SHORT_5_5_5_1),$(D_INLINECODE GL_UNSIGNED_SHORT_1_5_5_5_REV),$(D_INLINECODE GL_UNSIGNED_INT_8_8_8_8),$(D_INLINECODE GL_UNSIGNED_INT_8_8_8_8_REV),$(D_INLINECODE GL_UNSIGNED_INT_10_10_10_2),$(D_INLINECODE GL_UNSIGNED_INT_2_10_10_10_REV),$(D_INLINECODE GL_UNSIGNED_INT_24_8),$(D_INLINECODE GL_UNSIGNED_INT_10F_11F_11F_REV),$(D_INLINECODE GL_UNSIGNED_INT_5_9_9_9_REV), and$(D_INLINECODE GL_FLOAT_32_UNSIGNED_INT_24_8_REV).) | |
| * bufSize = $(P Specifies the size of the buffer$(D_INLINECODE pixels) for$(D_INLINECODE glGetnTexImage) and$(D_INLINECODE glGetTextureImage) functions.) | |
| * pixels = $(P Returns the texture image. Should be a pointer to an array of the type specified by$(D_INLINECODE type).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glActiveTexture),$(D_INLINECODE glReadPixels),$(D_INLINECODE glTexImage1D),$(D_INLINECODE glTexImage2D),$(D_INLINECODE glTexImage3D),$(D_INLINECODE glTexSubImage1D),$(D_INLINECODE glTexSubImage2D),$(D_INLINECODE glTexSubImage3D),$(D_INLINECODE glTexParameter)) | |
| */ | |
| extern(C) void function(GLenum target, GLint level, GLenum format, GLenum type, GLvoid* pixels) @system @nogc nothrow glGetTexImage; | |
| /// Ditto | |
| extern(C) void function(GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void* pixels) @system @nogc nothrow glGetnTexImage; | |
| /// Ditto | |
| extern(C) void function(GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void* pixels) @system @nogc nothrow glGetTextureImage; | |
| /** | |
| * glGetnUniformdv: man4/glGetUniform.xml | |
| * | |
| * $(P $(D_INLINECODE glGetUniform) and$(D_INLINECODE glGetnUniform) return in$(D_INLINECODE params) the value(s) of the specified uniform variable. The type of the uniform variable specified by$(D_INLINECODE location) determines the number of values returned. If the uniform variable is defined in the shader as a boolean, int, or float, a single value will be returned. If it is defined as a vec2, ivec2, or bvec2, two values will be returned. If it is defined as a vec3, ivec3, or bvec3, three values will be returned, and so on. To query values stored in uniform variables declared as arrays, call$(D_INLINECODE glGetUniform) for each element of the array. To query values stored in uniform variables declared as structures, call$(D_INLINECODE glGetUniform) for each field in the structure. The values for uniform variables declared as a matrix will be returned in column major order.)$(P The locations assigned to uniform variables are not known until the program object is linked. After linking has occurred, the command$(D_INLINECODE glGetUniformLocation) can be used to obtain the location of a uniform variable. This location value can then be passed to$(D_INLINECODE glGetUniform) or$(D_INLINECODE glGetnUniform) in order to query the current value of the uniform variable. After a program object has been linked successfully, the index values for uniform variables remain fixed until the next link command occurs. The uniform variable values can only be queried after a link if the link was successful.)$(P The only difference between$(D_INLINECODE glGetUniform) and$(D_INLINECODE glGetnUniform) is that$(D_INLINECODE glGetnUniform) will generate an error if size of the$(D_INLINECODE params) buffer,as described by$(D_INLINECODE bufSize), is not large enough to hold the result data.) | |
| * | |
| * $(P If an error is generated, no change is made to the contents of$(D_INLINECODE params).) | |
| * | |
| * Params: | |
| * program = $(P Specifies the program object to be queried.) | |
| * location = $(P Specifies the location of the uniform variable to be queried.) | |
| * bufSize = $(P Specifies the size of the buffer$(D_INLINECODE params).) | |
| * params = $(P Returns the value of the specified uniform variable.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2003-2005 3Dlabs Inc. Ltd. Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glCreateProgram),$(D_INLINECODE glLinkProgram),$(D_INLINECODE glUniform)) | |
| */ | |
| extern(C) void function(GLuint program, GLint location, GLfloat* params) @system @nogc nothrow glGetUniformfv; | |
| /// Ditto | |
| extern(C) void function(GLuint program, GLint location, GLint* params) @system @nogc nothrow glGetUniformiv; | |
| /// Ditto | |
| extern(C) void function(GLuint program, GLint location, GLuint* params) @system @nogc nothrow glGetUniformuiv; | |
| /// Ditto | |
| extern(C) void function(GLuint program, GLint location, GLdouble* params) @system @nogc nothrow glGetUniformdv; | |
| /// Ditto | |
| extern(C) void function(GLuint program, GLint location, GLsizei bufSize, GLfloat* params) @system @nogc nothrow glGetnUniformfv; | |
| /// Ditto | |
| extern(C) void function(GLuint program, GLint location, GLsizei bufSize, GLint* params) @system @nogc nothrow glGetnUniformiv; | |
| /// Ditto | |
| extern(C) void function(GLuint program, GLint location, GLsizei bufSize, GLuint* params) @system @nogc nothrow glGetnUniformuiv; | |
| /// Ditto | |
| extern(C) void function(GLuint program, GLint location, GLsizei bufSize, GLdouble* params) @system @nogc nothrow glGetnUniformdv; | |
| /** | |
| * glGetObjectLabel: man4/glGetObjectLabel.xml | |
| * | |
| * $(P $(D_INLINECODE glGetObjectLabel) retrieves the label of the object identified by$(D_INLINECODE name) within the namespace given by$(D_INLINECODE identifier).$(D_INLINECODE identifier) must be one of$(D_INLINECODE GL_BUFFER),$(D_INLINECODE GL_SHADER),$(D_INLINECODE GL_PROGRAM),$(D_INLINECODE GL_VERTEX_ARRAY),$(D_INLINECODE GL_QUERY),$(D_INLINECODE GL_PROGRAM_PIPELINE),$(D_INLINECODE GL_TRANSFORM_FEEDBACK),$(D_INLINECODE GL_SAMPLER),$(D_INLINECODE GL_TEXTURE),$(D_INLINECODE GL_RENDERBUFFER),$(D_INLINECODE GL_FRAMEBUFFER), to indicate the namespace containing the names of buffers, shaders, programs, vertex array objects, query objects, program pipelines, transform feedback objects, samplers, textures, renderbuffers and frame buffers, respectively.)$(P $(D_INLINECODE label) is the address of a string that will be used to store the object label.$(D_INLINECODE bufSize) specifies the number of characters in the array identified by$(D_INLINECODE label).$(D_INLINECODE length) contains the address of a variable which will receive the the number of characters in the object label. If$(D_INLINECODE length) is NULL, then it is ignored and no data is written. Likewise, if$(D_INLINECODE label) is NULL, or if$(D_INLINECODE bufSize) is zero then no data is written to$(D_INLINECODE label).) | |
| * | |
| * Params: | |
| * identifier = $(P The namespace from which the name of the object is allocated.) | |
| * name = $(P The name of the object whose label to retrieve.) | |
| * bufSize = $(P The length of the buffer whose address is in$(D_INLINECODE label).) | |
| * length = $(P The address of a variable to receive the length of the object label.) | |
| * label = $(P The address of a string that will receive the object label.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2013-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glPushDebugGroup),$(D_INLINECODE glPopDebugGroup),$(D_INLINECODE glObjectLabel),$(D_INLINECODE glGetObjectPtrLabel).) | |
| */ | |
| extern(C) void function(GLenum identifier, GLuint name, GLsizei bifSize, GLsizei* length, char* label) @system @nogc nothrow glGetObjectLabel; | |
| /** | |
| * glGetObjectPtrLabel: man4/glGetObjectPtrLabel.xml | |
| * | |
| * $(P $(D_INLINECODE glGetObjectPtrLabel) retrieves the label of the sync object identified by$(D_INLINECODE ptr).)$(P $(D_INLINECODE label) is the address of a string that will be used to store the object label.$(D_INLINECODE bufSize) specifies the number of characters in the array identified by$(D_INLINECODE label).$(D_INLINECODE length) contains the address of a variable which will receive the the number of characters in the object label. If$(D_INLINECODE length) is NULL, then it is ignored and no data is written. Likewise, if$(D_INLINECODE label) is NULL, or if$(D_INLINECODE bufSize) is zero then no data is written to$(D_INLINECODE label).) | |
| * | |
| * Params: | |
| * ptr = $(P The name of the sync object whose label to retrieve.) | |
| * bufSize = $(P The length of the buffer whose address is in$(D_INLINECODE label).) | |
| * length = $(P The address of a variable to receive the length of the object label.) | |
| * label = $(P The address of a string that will receive the object label.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2013-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glPushDebugGroup),$(D_INLINECODE glPopDebugGroup),$(D_INLINECODE glObjectLabel),$(D_INLINECODE glGetObjectLabel).) | |
| */ | |
| extern(C) void function(void* ptr, GLsizei bifSize, GLsizei* length, char* label) @system @nogc nothrow glGetObjectPtrLabel; | |
| /** | |
| * glGetPointerv: man4/glGetPointerv.xml | |
| * | |
| * $(P $(D_INLINECODE glGetPointerv) returns pointer information.$(D_INLINECODE pname) indicates the pointer to be returned, and$(D_INLINECODE params) is a pointer to a location in which to place the returned data. The parameters that may be queried include:) variablelist | |
| * | |
| * $(P $(D_INLINECODE glGetPointerv) is available in the OpenGL core profile only if the GL version is 4.3 or later. It is available in the compatibility profile for all GL versions, and accepts additional queries. However, these reference pages document only the core profile.) | |
| * | |
| * Params: | |
| * pname = $(P Specifies the pointer to be returned. Must be one of$(D_INLINECODE GL_DEBUG_CALLBACK_FUNCTION) or$(D_INLINECODE GL_DEBUG_CALLBACK_USER_PARAM).) | |
| * params = $(P Returns the pointer value specified by$(D_INLINECODE pname).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDebugMessageCallback)) | |
| */ | |
| extern(C) void function(GLenum pname, GLvoid** params) @system @nogc nothrow glGetPointerv; | |
| /** | |
| * glGetProgram: man4/glGetProgram.xml | |
| * | |
| * $(P $(D_INLINECODE glGetProgram) returns in$(D_INLINECODE params) the value of a parameter for a specific program object. The following parameters are defined:) variablelist | |
| * | |
| * $(P $(D_INLINECODE GL_ACTIVE_UNIFORM_BLOCKS) and$(D_INLINECODE GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH) are available only if the GL version 3.1 or greater.)$(P $(D_INLINECODE GL_GEOMETRY_VERTICES_OUT),$(D_INLINECODE GL_GEOMETRY_INPUT_TYPE) and$(D_INLINECODE GL_GEOMETRY_OUTPUT_TYPE) are accepted only if the GL version is 3.2 or greater.)$(P $(D_INLINECODE GL_COMPUTE_WORK_GROUP_SIZE) is accepted only if the GL version is 4.3 or greater.)$(P If an error is generated, no change is made to the contents of$(D_INLINECODE params).) | |
| * | |
| * Params: | |
| * program = $(P Specifies the program object to be queried.) | |
| * pname = $(P Specifies the object parameter. Accepted symbolic names are$(D_INLINECODE GL_DELETE_STATUS),$(D_INLINECODE GL_LINK_STATUS),$(D_INLINECODE GL_VALIDATE_STATUS),$(D_INLINECODE GL_INFO_LOG_LENGTH),$(D_INLINECODE GL_ATTACHED_SHADERS),$(D_INLINECODE GL_ACTIVE_ATOMIC_COUNTER_BUFFERS),$(D_INLINECODE GL_ACTIVE_ATTRIBUTES),$(D_INLINECODE GL_ACTIVE_ATTRIBUTE_MAX_LENGTH),$(D_INLINECODE GL_ACTIVE_UNIFORMS),$(D_INLINECODE GL_ACTIVE_UNIFORM_BLOCKS),$(D_INLINECODE GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH),$(D_INLINECODE GL_ACTIVE_UNIFORM_MAX_LENGTH),$(D_INLINECODE GL_COMPUTE_WORK_GROUP_SIZE)$(D_INLINECODE GL_PROGRAM_BINARY_LENGTH),$(D_INLINECODE GL_TRANSFORM_FEEDBACK_BUFFER_MODE),$(D_INLINECODE GL_TRANSFORM_FEEDBACK_VARYINGS),$(D_INLINECODE GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH),$(D_INLINECODE GL_GEOMETRY_VERTICES_OUT),$(D_INLINECODE GL_GEOMETRY_INPUT_TYPE), and$(D_INLINECODE GL_GEOMETRY_OUTPUT_TYPE).) | |
| * params = $(P Returns the requested object parameter.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2003-2005 3Dlabs Inc. Ltd. Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glAttachShader),$(D_INLINECODE glCreateProgram),$(D_INLINECODE glDeleteProgram),$(D_INLINECODE glGetShader),$(D_INLINECODE glLinkProgram),$(D_INLINECODE glValidateProgram)) | |
| */ | |
| extern(C) void function(GLuint program, GLenum pname, GLint* params) @system @nogc nothrow glGetProgramiv; | |
| /** | |
| * glGetProgramBinary: man4/glGetProgramBinary.xml | |
| * | |
| * $(P $(D_INLINECODE glGetProgramBinary) returns a binary representation of the compiled and linked executable for$(D_INLINECODE program) into the array of bytes whose address is specified in$(D_INLINECODE binary). The maximum number of bytes that may be written into$(D_INLINECODE binary) is specified by$(D_INLINECODE bufSize). If the program binary is greater in size than$(D_INLINECODE bufSize) bytes, then an error is generated, otherwise the actual number of bytes written into$(D_INLINECODE binary) is returned in the variable whose address is given by$(D_INLINECODE length). If$(D_INLINECODE length) is$(D_INLINECODE NULL), then no length is returned.)$(P The format of the program binary written into$(D_INLINECODE binary) is returned in the variable whose address is given by$(D_INLINECODE binaryFormat), and may be implementation dependent. The binary produced by the GL may subsequently be returned to the GL by calling$(D_INLINECODE glProgramBinary), with$(D_INLINECODE binaryFormat) and$(D_INLINECODE length) set to the values returned by$(D_INLINECODE glGetProgramBinary), and passing the returned binary data in the$(D_INLINECODE binary) parameter.) | |
| * | |
| * Params: | |
| * program = $(P Specifies the name of a program object whose binary representation to retrieve.) | |
| * bufSize = $(P Specifies the size of the buffer whose address is given by$(D_INLINECODE binary).) | |
| * length = $(P Specifies the address of a variable to receive the number of bytes written into$(D_INLINECODE binary).) | |
| * binaryFormat = $(P Specifies the address of a variable to receive a token indicating the format of the binary data returned by the GL.) | |
| * binary = $(P Specifies the address an array into which the GL will return$(D_INLINECODE program) 's binary representation.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGetProgram),$(D_INLINECODE glProgramBinary)) | |
| */ | |
| extern(C) void function(GLuint program, GLsizei bufsize, GLsizei* length, GLenum* binaryFormat, void* binary) @system @nogc nothrow glGetProgramBinary; | |
| /** | |
| * glGetProgramInfoLog: man4/glGetProgramInfoLog.xml | |
| * | |
| * $(P $(D_INLINECODE glGetProgramInfoLog) returns the information log for the specified program object. The information log for a program object is modified when the program object is linked or validated. The string that is returned will be null terminated.)$(P $(D_INLINECODE glGetProgramInfoLog) returns in$(D_INLINECODE infoLog) as much of the information log as it can, up to a maximum of$(D_INLINECODE maxLength) characters. The number of characters actually returned, excluding the null termination character, is specified by$(D_INLINECODE length). If the length of the returned string is not required, a value of$(D_INLINECODE NULL) can be passed in the$(D_INLINECODE length) argument. The size of the buffer required to store the returned information log can be obtained by calling$(D_INLINECODE glGetProgram) with the value$(D_INLINECODE GL_INFO_LOG_LENGTH).)$(P The information log for a program object is either an empty string, or a string containing information about the last link operation, or a string containing information about the last validation operation. It may contain diagnostic messages, warning messages, and other information. When a program object is created, its information log will be a string of length 0.) | |
| * | |
| * $(P The information log for a program object is the OpenGL implementer's primary mechanism for conveying information about linking and validating. Therefore, the information log can be helpful to application developers during the development process, even when these operations are successful. Application developers should not expect different OpenGL implementations to produce identical information logs.) | |
| * | |
| * Params: | |
| * program = $(P Specifies the program object whose information log is to be queried.) | |
| * maxLength = $(P Specifies the size of the character buffer for storing the returned information log.) | |
| * length = $(P Returns the length of the string returned in$(D_INLINECODE infoLog) (excluding the null terminator).) | |
| * infoLog = $(P Specifies an array of characters that is used to return the information log.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2003-2005 3Dlabs Inc. Ltd. Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glCompileShader),$(D_INLINECODE glGetShaderInfoLog),$(D_INLINECODE glLinkProgram),$(D_INLINECODE glValidateProgram)) | |
| */ | |
| extern(C) void function(GLuint program, GLsizei maxLength, GLsizei* length, GLchar* infoLog) @system @nogc nothrow glGetProgramInfoLog; | |
| /** | |
| * glGetProgramInterface: man4/glGetProgramInterface.xml | |
| * | |
| * $(P $(D_INLINECODE glGetProgramInterfaceiv) queries the property of the interface identifed by$(D_INLINECODE programInterface) in$(D_INLINECODE program), the property name of which is given by$(D_INLINECODE pname).)$(P $(D_INLINECODE program) must be the name of an existing program object.$(D_INLINECODE programInterface) is the name of the interface within$(D_INLINECODE program) to query and must be one of the following values:) variablelist$(P $(D_INLINECODE pname) identifies the property of$(D_INLINECODE programInterface) to return in$(D_INLINECODE params).)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_ACTIVE_RESOURCES), the value returned is the number of resources in the active resource list for$(D_INLINECODE programInterface). If the list of active resources for$(D_INLINECODE programInterface) is empty, zero is returned.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_MAX_NAME_LENGTH), the value returned is the length of the longest active name string for an active resource in$(D_INLINECODE programInterface). This length includes an extra character for the null terminator. If the list of active resources for$(D_INLINECODE programInterface) is empty, zero is returned. It is an error to specify$(D_INLINECODE GL_MAX_NAME_LENGTH) when$(D_INLINECODE programInterface) is$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER), as active atomic counter buffer resources are not assigned name strings.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_MAX_NUM_ACTIVE_VARIABLES), the value returned is the number of active variables belonging to the interface block or atomic counter buffer resource in$(D_INLINECODE programInterface) with the most active variables. If the list of active resources for$(D_INLINECODE programInterface) is empty, zero is returned. When$(D_INLINECODE pname) is$(D_INLINECODE GL_MAX_NUM_ACTIVE_VARIABLES),$(D_INLINECODE programInterface) must be$(D_INLINECODE GL_UNIFORM_BLOCK),$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER), or$(D_INLINECODE GL_SHADER_STORAGE_BLOCK).)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_MAX_NUM_COMPATIBLE_SUBROUTINES), the value returned is the number of compatible subroutines belonging to the active subroutine uniform in$(D_INLINECODE programInterface) with the most compatible subroutines. If the list of active resources for$(D_INLINECODE programInterface) is empty, zero is returned. When$(D_INLINECODE pname) is$(D_INLINECODE GL_MAX_NUM_COMPATIBLE_SUBROUTINES),$(D_INLINECODE programInterface) must be one of$(D_INLINECODE GL_VERTEX_SUBROUTINE_UNIFORM),$(D_INLINECODE GL_TESS_CONTROL_SUBROUTINE_UNIFORM),$(D_INLINECODE GL_TESS_EVALUATION_SUBROUTINE_UNIFORM),$(D_INLINECODE GL_GEOMETRY_SUBROUTINE_UNIFORM),$(D_INLINECODE GL_FRAGMENT_SUBROUTINE_UNIFORM), or$(D_INLINECODE GL_COMPUTE_SUBROUTINE_UNIFORM).) | |
| * | |
| * Params: | |
| * program = $(P The name of a program object whose interface to query.) | |
| * programInterface = $(P A token identifying the interface within$(D_INLINECODE program) to query.) | |
| * pname = $(P The name of the parameter within$(D_INLINECODE programInterface) to query.) | |
| * params = $(P The address of a variable to retrieve the value of$(D_INLINECODE pname) for the program interface.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2013-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glPushDebugGroup),$(D_INLINECODE glPopDebugGroup),$(D_INLINECODE glObjectLabel),$(D_INLINECODE glGetObjectLabel).) | |
| */ | |
| extern(C) void function(GLuint program, GLenum programInterface, GLenum pname, GLint* params) @system @nogc nothrow glGetProgramInterfaceiv; | |
| /** | |
| * glGetProgramPipeline: man4/glGetProgramPipeline.xml | |
| * | |
| * $(P $(D_INLINECODE glGetProgramPipelineiv) retrieves the value of a property of the program pipeline object$(D_INLINECODE pipeline).$(D_INLINECODE pname) specifies the name of the parameter whose value to retrieve. The value of the parameter is written to the variable whose address is given by$(D_INLINECODE params).)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_ACTIVE_PROGRAM), the name of the active program object of the program pipeline object is returned in$(D_INLINECODE params).)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_VERTEX_SHADER), the name of the current program object for the vertex shader type of the program pipeline object is returned in$(D_INLINECODE params).)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_TESS_CONTROL_SHADER), the name of the current program object for the tessellation control shader type of the program pipeline object is returned in$(D_INLINECODE params).)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_TESS_EVALUATION_SHADER), the name of the current program object for the tessellation evaluation shader type of the program pipeline object is returned in$(D_INLINECODE params).)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_GEOMETRY_SHADER), the name of the current program object for the geometry shader type of the program pipeline object is returned in$(D_INLINECODE params).)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_FRAGMENT_SHADER), the name of the current program object for the fragment shader type of the program pipeline object is returned in$(D_INLINECODE params).)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_INFO_LOG_LENGTH), the length of the info log, including the null terminator, is returned in$(D_INLINECODE params). If there is no info log, zero is returned.) | |
| * | |
| * Params: | |
| * pipeline = $(P Specifies the name of a program pipeline object whose parameter retrieve.) | |
| * pname = $(P Specifies the name of the parameter to retrieve.) | |
| * params = $(P Specifies the address of a variable into which will be written the value or values of$(D_INLINECODE pname) for$(D_INLINECODE pipeline).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenProgramPipelines),$(D_INLINECODE glBindProgramPipeline),$(D_INLINECODE glDeleteProgramPipelines)) | |
| */ | |
| extern(C) void function(GLuint pipeline, GLenum pname, GLint* params) @system @nogc nothrow glGetProgramPipelineiv; | |
| /** | |
| * glGetProgramPipelineInfoLog: man4/glGetProgramPipelineInfoLog.xml | |
| * | |
| * $(P $(D_INLINECODE glGetProgramPipelineInfoLog) retrieves the info log for the program pipeline object$(D_INLINECODE pipeline). The info log, including its null terminator, is written into the array of characters whose address is given by$(D_INLINECODE infoLog). The maximum number of characters that may be written into$(D_INLINECODE infoLog) is given by$(D_INLINECODE bufSize), and the actual number of characters written into$(D_INLINECODE infoLog) is returned in the integer whose address is given by$(D_INLINECODE length). If$(D_INLINECODE length) is$(D_INLINECODE NULL), no length is returned.)$(P The actual length of the info log for the program pipeline may be determined by calling$(D_INLINECODE glGetProgramPipeline) with$(D_INLINECODE pname) set to$(D_INLINECODE GL_INFO_LOG_LENGTH).) | |
| * | |
| * Params: | |
| * pipeline = $(P Specifies the name of a program pipeline object from which to retrieve the info log.) | |
| * bufSize = $(P Specifies the maximum number of characters, including the null terminator, that may be written into$(D_INLINECODE infoLog).) | |
| * length = $(P Specifies the address of a variable into which will be written the number of characters written into$(D_INLINECODE infoLog).) | |
| * infoLog = $(P Specifies the address of an array of characters into which will be written the info log for$(D_INLINECODE pipeline).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenProgramPipelines),$(D_INLINECODE glBindProgramPipeline),$(D_INLINECODE glDeleteProgramPipelines),$(D_INLINECODE glGetProgramPipeline)) | |
| */ | |
| extern(C) void function(GLuint pipeline, GLsizei bufSize, GLsizei* length, GLchar* infoLog) @system @nogc nothrow glGetProgramPipelineInfoLog; | |
| /** | |
| * glGetProgramResource: man4/glGetProgramResource.xml | |
| * | |
| * $(P $(D_INLINECODE glGetProgramResourceiv) returns values for multiple properties of a single active resource with an index of$(D_INLINECODE index) in the interface$(D_INLINECODE programInterface) of program object$(D_INLINECODE program). For each resource, values for$(D_INLINECODE propCount) properties specified by the array$(D_INLINECODE props) are returned.$(D_INLINECODE propCount) may not be zero. An error is generated if any value in$(D_INLINECODE props) is not one of the properties described immediately belowor if any value in$(D_INLINECODE props) is not allowed for$(D_INLINECODE programInterface). The set of allowed$(D_INLINECODE programInterface) values for each property can be found in the following table:) Property Supported Interfaces$(D_INLINECODE GL_NAME_LENGTH) Any except$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER) and$(D_INLINECODE GL_TRANSFORM_FEEDBACK_BUFFER)$(D_INLINECODE GL_TYPE)$(D_INLINECODE GL_UNIFORM),$(D_INLINECODE GL_PROGRAM_INPUT),$(D_INLINECODE GL_PROGRAM_OUTPUT),$(D_INLINECODE GL_TRANSFORM_FEEDBACK_VARYING),$(D_INLINECODE GL_BUFFER_VARIABLE)$(D_INLINECODE GL_ARRAY_SIZE)$(D_INLINECODE GL_UNIFORM),$(D_INLINECODE GL_BUFFER_VARIABLE),$(D_INLINECODE GL_PROGRAM_INPUT),$(D_INLINECODE GL_PROGRAM_OUTPUT, VERTEX_SUBROUTINE_UNIFORM),$(D_INLINECODE GL_TESS_CONTROL_SUBROUTINE_UNIFORM),$(D_INLINECODE GL_TESS_EVALUATION_SUBROUTINE_UNIFORM),$(D_INLINECODE GL_GEOMETRY_SUBROUTINE_UNIFORM),$(D_INLINECODE GL_FRAGMENT_SUBROUTINE_UNIFORM),$(D_INLINECODE GL_COMPUTE_SUBROUTINE_UNIFORM),$(D_INLINECODE GL_TRANSFORM_FEEDBACK_VARYING)$(D_INLINECODE GL_OFFSET)$(D_INLINECODE GL_UNIFORM),$(D_INLINECODE GL_BUFFER_VARIABLE),$(D_INLINECODE GL_TRANSFORM_FEEDBACK_VARYING)$(D_INLINECODE GL_BLOCK_INDEX)$(D_INLINECODE GL_UNIFORM),$(D_INLINECODE GL_BUFFER_VARIABLE)$(D_INLINECODE GL_ARRAY_STRIDE)$(D_INLINECODE GL_UNIFORM),$(D_INLINECODE GL_BUFFER_VARIABLE)$(D_INLINECODE GL_MATRIX_STRIDE)$(D_INLINECODE GL_UNIFORM),$(D_INLINECODE GL_BUFFER_VARIABLE)$(D_INLINECODE GL_IS_ROW_MAJOR)$(D_INLINECODE GL_UNIFORM),$(D_INLINECODE GL_BUFFER_VARIABLE)$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER_INDEX)$(D_INLINECODE GL_UNIFORM)$(D_INLINECODE GL_TEXTURE_BUFFER)$(D_INLINECODE GL_BUFFER_BINDING)$(D_INLINECODE GL_UNIFORM_BLOCK),$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER),$(D_INLINECODE GL_SHADER_STORAGE_BLOCK),$(D_INLINECODE GL_TRANSFORM_FEEDBACK_BUFFER)$(D_INLINECODE GL_BUFFER_DATA_SIZE)$(D_INLINECODE GL_UNIFORM_BLOCK),$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER),$(D_INLINECODE GL_SHADER_STORAGE_BLOCK)$(D_INLINECODE GL_NUM_ACTIVE_VARIABLES)$(D_INLINECODE GL_UNIFORM_BLOCK),$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER),$(D_INLINECODE GL_SHADER_STORAGE_BLOCK),$(D_INLINECODE GL_TRANSFORM_FEEDBACK_BUFFER)$(D_INLINECODE GL_ACTIVE_VARIABLES)$(D_INLINECODE GL_UNIFORM_BLOCK),$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER),$(D_INLINECODE GL_SHADER_STORAGE_BLOCK),$(D_INLINECODE GL_TRANSFORM_FEEDBACK_BUFFER)$(D_INLINECODE GL_REFERENCED_BY_VERTEX_SHADER)$(D_INLINECODE GL_UNIFORM),$(D_INLINECODE GL_UNIFORM_BLOCK),$(D_INLINECODE GL_ATOMIC_COUNTER_SHADER),$(D_INLINECODE GL_BUFFER),$(D_INLINECODE GL_SHADER_STORAGE_BLOCK),$(D_INLINECODE GL_BUFFER_VARIABLE),$(D_INLINECODE GL_PROGRAM_INPUT),$(D_INLINECODE GL_PROGRAM_OUTPUT)$(D_INLINECODE GL_REFERENCED_BY_TESS_CONTROL_SHADER)$(D_INLINECODE GL_UNIFORM),$(D_INLINECODE GL_UNIFORM_BLOCK),$(D_INLINECODE GL_ATOMIC_COUNTER_SHADER),$(D_INLINECODE GL_BUFFER),$(D_INLINECODE GL_SHADER_STORAGE_BLOCK),$(D_INLINECODE GL_BUFFER_VARIABLE),$(D_INLINECODE GL_PROGRAM_INPUT),$(D_INLINECODE GL_PROGRAM_OUTPUT)$(D_INLINECODE GL_REFERENCED_BY_TESS_EVALUATION_SHADER)$(D_INLINECODE GL_UNIFORM),$(D_INLINECODE GL_UNIFORM_BLOCK),$(D_INLINECODE GL_ATOMIC_COUNTER_SHADER),$(D_INLINECODE GL_BUFFER),$(D_INLINECODE GL_SHADER_STORAGE_BLOCK),$(D_INLINECODE GL_BUFFER_VARIABLE),$(D_INLINECODE GL_PROGRAM_INPUT),$(D_INLINECODE GL_PROGRAM_OUTPUT)$(D_INLINECODE GL_REFERENCED_BY_GEOMETRY_SHADER)$(D_INLINECODE GL_UNIFORM),$(D_INLINECODE GL_UNIFORM_BLOCK),$(D_INLINECODE GL_ATOMIC_COUNTER_SHADER),$(D_INLINECODE GL_BUFFER),$(D_INLINECODE GL_SHADER_STORAGE_BLOCK),$(D_INLINECODE GL_BUFFER_VARIABLE),$(D_INLINECODE GL_PROGRAM_INPUT),$(D_INLINECODE GL_PROGRAM_OUTPUT)$(D_INLINECODE GL_REFERENCED_BY_FRAGMENT_SHADER)$(D_INLINECODE GL_UNIFORM),$(D_INLINECODE GL_UNIFORM_BLOCK),$(D_INLINECODE GL_ATOMIC_COUNTER_SHADER),$(D_INLINECODE GL_BUFFER),$(D_INLINECODE GL_SHADER_STORAGE_BLOCK),$(D_INLINECODE GL_BUFFER_VARIABLE),$(D_INLINECODE GL_PROGRAM_INPUT),$(D_INLINECODE GL_PROGRAM_OUTPUT)$(D_INLINECODE GL_REFERENCED_BY_COMPUTE_SHADER)$(D_INLINECODE GL_UNIFORM),$(D_INLINECODE GL_UNIFORM_BLOCK),$(D_INLINECODE GL_ATOMIC_COUNTER_SHADER),$(D_INLINECODE GL_BUFFER),$(D_INLINECODE GL_SHADER_STORAGE_BLOCK),$(D_INLINECODE GL_BUFFER_VARIABLE),$(D_INLINECODE GL_PROGRAM_INPUT),$(D_INLINECODE GL_PROGRAM_OUTPUT)$(D_INLINECODE GL_NUM_COMPATIBLE_SUBROUTINES)$(D_INLINECODE GL_VERTEX_SUBROUTINE_UNIFORM),$(D_INLINECODE GL_TESS_CONTROL_SUBROUTINE_UNIFORM),$(D_INLINECODE GL_TESS_EVALUATION_SUBROUTINE_UNIFORM),$(D_INLINECODE GL_GEOMETRY_SUBROUTINE_UNIFORM),$(D_INLINECODE GL_FRAGMENT_SUBROUTINE_UNIFORM),$(D_INLINECODE GL_COMPUTE_SUBROUTINE_UNIFORM)$(D_INLINECODE GL_COMPATIBLE_SUBROUTINES)$(D_INLINECODE GL_VERTEX_SUBROUTINE_UNIFORM),$(D_INLINECODE GL_TESS_CONTROL_SUBROUTINE_UNIFORM),$(D_INLINECODE GL_TESS_EVALUATION_SUBROUTINE_UNIFORM),$(D_INLINECODE GL_GEOMETRY_SUBROUTINE_UNIFORM),$(D_INLINECODE GL_FRAGMENT_SUBROUTINE_UNIFORM),$(D_INLINECODE GL_COMPUTE_SUBROUTINE_UNIFORM)$(D_INLINECODE GL_TOP_LEVEL_ARRAY_SIZE)$(D_INLINECODE GL_BUFFER_VARIABLE)$(D_INLINECODE GL_TOP_LEVEL_ARRAY_STRIDE)$(D_INLINECODE GL_BUFFER_VARIABLE)$(D_INLINECODE GL_LOCATION)$(D_INLINECODE GL_UNIFORM),$(D_INLINECODE GL_PROGRAM_INPUT),$(D_INLINECODE GL_PROGRAM_OUTPUT),$(D_INLINECODE GL_VERTEX_SUBROUTINE_UNIFORM),$(D_INLINECODE GL_TESS_CONTROL_SUBROUTINE_UNIFORM),$(D_INLINECODE GL_TESS_EVALUATION_SUBROUTINE_UNIFORM),$(D_INLINECODE GL_GEOMETRY_SUBROUTINE_UNIFORM),$(D_INLINECODE GL_FRAGMENT_SUBROUTINE_UNIFORM),$(D_INLINECODE GL_COMPUTE_SUBROUTINE_UNIFORM)$(D_INLINECODE GL_LOCATION_INDEX)$(D_INLINECODE GL_PROGRAM_OUTPUT)$(D_INLINECODE GL_IS_PER_PATCH)$(D_INLINECODE GL_PROGRAM_INPUT),$(D_INLINECODE GL_PROGRAM_OUTPUT)$(D_INLINECODE GL_LOCATION_COMPONENT)$(D_INLINECODE GL_PROGRAM_INPUT),$(D_INLINECODE GL_PROGRAM_OUTPUT)$(D_INLINECODE GL_TRANSFORM_FEEDBACK_BUFFER_INDEX)$(D_INLINECODE GL_TRANSFORM_FEEDBACK_VARYING)$(D_INLINECODE GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE)$(D_INLINECODE GL_TRANSFORM_FEEDBACK_BUFFER)$(P For the property$(D_INLINECODE GL_NAME_LENGTH), a single integer identifying the length of the name string associated with an active variable, interface block, or subroutine is written to$(D_INLINECODE params). The name length includes a terminating null character.)$(P For the property$(D_INLINECODE GL_TYPE), a single integer identifying the type of an active variable is written to$(D_INLINECODE params). The integer returned is one of the values found in table 2.16.)$(P For the property$(D_INLINECODE GL_ARRAY_SIZE), a single integer identifying the number of active array elements of an active variable is written to$(D_INLINECODE params). The array size returned is in units of the type associated with the property$(D_INLINECODE GL_TYPE). For active variables not corresponding to an array of basic types, the value zero is written to$(D_INLINECODE params).)$(P For the property$(D_INLINECODE GL_BLOCK_INDEX), a single integer identifying the index of the active interface block containing an active variable is written to$(D_INLINECODE params). If the variable is not the member of an interface block, the value -1 is written to$(D_INLINECODE params).)$(P For the property$(D_INLINECODE GL_OFFSET), a single integer identifying the offset of an active variable is written to$(D_INLINECODE params). For variables in the$(D_INLINECODE GL_UNIFORM) and$(D_INLINECODE GL_BUFFER_VARIABLE) interfaces that are backed by a buffer object, the value written is the offset of that variable relative to the base of the buffer range holding its value. For variables in the$(D_INLINECODE GL_TRANSFORM_FEEDBACK_VARYING) interface, the value written is the offset in the transform feedback buffer storage assigned to each vertex captured in transform feedback mode where the value of the variable will be stored. Such offsets are specified via the$(D_INLINECODE xfb_offset) layout qualifier or assigned according to the variables position in the list of strings passed to$(D_INLINECODE glTransformFeedbackVaryings). Offsets are expressed in basic machine units. For all variables not recorded in transform feedback mode, including the special names$(D_INLINECODE "gl_NextBuffer"),$(D_INLINECODE "gl_SkipComponents1"),$(D_INLINECODE "gl_SkipComponents2"),$(D_INLINECODE "gl_SkipComponents3"), and$(D_INLINECODE "gl_SkipComponents4"), -1 is written to$(D_INLINECODE params).)$(P For the property$(D_INLINECODE GL_ARRAY_STRIDE), a single integer identifying the stride between array elements in an active variable is written to$(D_INLINECODE params). For active variables declared as an array of basic types, the value written is the difference, in basic machine units, between the offsets of consecutive elements in an array. For active variables not declared as an array of basic types, zero is written to$(D_INLINECODE params). For active variables not backed by a buffer object, -1 is written to$(D_INLINECODE params), regardless of the variable type.)$(P For the property$(D_INLINECODE GL_MATRIX_STRIDE), a single integer identifying the stride between columns of a column-major matrix or rows of a row-major matrix is written to$(D_INLINECODE params). For active variables declared a single matrix or array of matrices, the value written is the difference, in basic machine units, between the offsets of consecutive columns or rows in each matrix. For active variables not declared as a matrix or array of matrices, zero is written to$(D_INLINECODE params). For active variables not backed by a buffer object, -1 is written to$(D_INLINECODE params), regardless of the variable type.)$(P For the property$(D_INLINECODE GL_IS_ROW_MAJOR), a single integer identifying whether an active variable is a row-major matrix is written to$(D_INLINECODE params). For active variables backed by a buffer object, declared as a single matrix or array of matrices, and stored in row-major order, one is written to$(D_INLINECODE params). For all other active variables, zero is written to$(D_INLINECODE params).)$(P For the property$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER_INDEX), a single integer identifying the index of the active atomic counter buffer containing an active variable is written to$(D_INLINECODE params). If the variable is not an atomic counter uniform, the value -1 is written to$(D_INLINECODE params).)$(P For the property$(D_INLINECODE GL_BUFFER_BINDING), to index of the buffer binding point associated with the active uniform block, shader storage block, atomic counter buffer or transform feedback buffer is written to$(D_INLINECODE params).)$(P For the property$(D_INLINECODE GL_BUFFER_DATA_SIZE), then the implementation-dependent minimum total buffer object size, in basic machine units, required to hold all active variables associated with an active uniform block, shader storage block, or atomic counter buffer is written to$(D_INLINECODE params). If the final member of an active shader storage block is array with no declared size, the minimum buffer size is computed assuming the array was declared as an array with one element.)$(P For the property$(D_INLINECODE GL_NUM_ACTIVE_VARIABLES), the number of active variables associated with an active uniform block, shader storage block, atomic counter buffer or transform feedback buffer is written to$(D_INLINECODE params).)$(P For the property$(D_INLINECODE GL_ACTIVE_VARIABLES), an array of active variable indices associated with an active uniform block, shader storage block, atomic counter buffer or transform feedback buffer is written to$(D_INLINECODE params). The number of values written to$(D_INLINECODE params) for an active resource is given by the value of the property$(D_INLINECODE GL_NUM_ACTIVE_VARIABLES) for the resource.)$(P For the properties$(D_INLINECODE GL_REFERENCED_BY_VERTEX_SHADER),$(D_INLINECODE GL_REFERENCED_BY_TESS_CONTROL_SHADER),$(D_INLINECODE GL_REFERENCED_BY_TESS_EVALUATION_SHADER),$(D_INLINECODE GL_REFERENCED_BY_GEOMETRY_SHADER),$(D_INLINECODE GL_REFERENCED_BY_FRAGMENT_SHADER), and$(D_INLINECODE GL_REFERENCED_BY_COMPUTE_SHADER), a single integer is written to$(D_INLINECODE params), identifying whether the active resource is referenced by the vertex, tessellation control, tessellation evaluation, geometry, or fragment shaders, respectively, in the program object. The value one is written to$(D_INLINECODE params) if an active variable is referenced by the corresponding shader, or if an active uniform block, shader storage block, or atomic counter buffer contains at least one variable referenced by the corresponding shader. Otherwise, the value zero is written to$(D_INLINECODE params).)$(P For the property$(D_INLINECODE GL_TOP_LEVEL_ARRAY_SIZE), a single integer identifying the number of active array elements of the top-level shader storage block member containing to the active variable is written to$(D_INLINECODE params). If the top-level block member is not declared as an array, the value one is written to$(D_INLINECODE params). If the top-level block member is an array with no declared size, the value zero is written to$(D_INLINECODE params).)$(P For the property$(D_INLINECODE GL_TOP_LEVEL_ARRAY_STRIDE), a single integer identifying the stride between array elements of the top-level shader storage block member containing the active variable is written to$(D_INLINECODE params). For top-level block members declared as arrays, the value written is the difference, in basic machine units, between the offsets of the active variable for consecutive elements in the top-level array. For top-level block members not declared as an array, zero is written to$(D_INLINECODE params).)$(P For the property$(D_INLINECODE GL_LOCATION), a single integer identifying the assigned location for an active uniform, input, output, or subroutine uniform variable is written to$(D_INLINECODE params). For input, output, or uniform variables with locations specified by a layout qualifier, the specified location is used. For vertex shader input or fragment shader output variables without a layout qualifier, the location assigned when a program is linked is written to$(D_INLINECODE params). For all other input and output variables, the value -1 is written to$(D_INLINECODE params). For uniforms in uniform blocks, the value -1 is written to$(D_INLINECODE params).)$(P For the property$(D_INLINECODE GL_LOCATION_INDEX), a single integer identifying the fragment color index of an active fragment shader output variable is written to$(D_INLINECODE params). If the active variable is an output for a non-fragment shader, the value -1 will be written to$(D_INLINECODE params).)$(P For the property$(D_INLINECODE GL_IS_PER_PATCH), a single integer identifying whether the input or output is a per-patch attribute. If the active variable is a per-patch attribute (declared with the$(D_INLINECODE patch) qualifier), the value one is written to$(D_INLINECODE params); otherwise, the value zero is written to$(D_INLINECODE params).)$(P For the property$(D_INLINECODE GL_LOCATION_COMPONENT), a single integer indicating the first component of the location assigned to an active input or output variable is written to$(D_INLINECODE params). For input and output variables with a component specified by a$(D_INLINECODE layout) qualifier, the specified component is written. For all other input and output variables, the value zero is written.)$(P For the property$(D_INLINECODE GL_TRANSFORM_FEEDBACK_BUFFER_INDEX), a single integer identifying the index of the active transform feedback buffer associated with an active variable is written to$(D_INLINECODE params). For variables corresponding to the special names$(D_INLINECODE "gl_NextBuffer"),$(D_INLINECODE "gl_SkipComponents1"),$(D_INLINECODE "gl_SkipComponents2"),$(D_INLINECODE "gl_SkipComponents3"), and$(D_INLINECODE "gl_SkipComponents4"), -1 is written to$(D_INLINECODE params).)$(P For the property$(D_INLINECODE GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE), a single integer identifying the stride, in basic machine units, between consecutive vertices written to the transform feedback buffer is written to$(D_INLINECODE params).) | |
| * | |
| * Params: | |
| * program = $(P The name of a program object whose resources to query.) | |
| * programInterface = $(P A token identifying the interface within$(D_INLINECODE program) containing the resource named$(D_INLINECODE name).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2013-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGetProgramResourceName),$(D_INLINECODE glGetProgramResourceIndex),$(D_INLINECODE glGetProgramResourceLocation),$(D_INLINECODE glGetProgramResourceLocationIndex).) | |
| */ | |
| extern(C) void function(GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum* props, GLsizei bufSize, GLsizei* length, GLint* params) @system @nogc nothrow glGetProgramResourceiv; | |
| /** | |
| * glGetProgramResourceIndex: man4/glGetProgramResourceIndex.xml | |
| * | |
| * $(P $(D_INLINECODE glGetProgramResourceIndex) returns the unsigned integer index assigned to a resource named$(D_INLINECODE name) in the interface type$(D_INLINECODE programInterface) of program object$(D_INLINECODE program).)$(P $(D_INLINECODE program) must be the name of an existing program object.$(D_INLINECODE programInterface) is the name of the interface within$(D_INLINECODE program) which contains the resource named$(D_INLINECODE name) and must be one of the following values:) variablelist$(P If$(D_INLINECODE name) exactly matches the name string of one of the active resources for$(D_INLINECODE programInterface), the index of the matched resource is returned. Additionally, if$(D_INLINECODE name) would exactly match the name string of an active resource if "[0]" were appended to$(D_INLINECODE name), the index of the matched resource is returned. Otherwise,$(D_INLINECODE name) is considered not to be the name of an active resource, and$(D_INLINECODE GL_INVALID_INDEX) is returned.)$(P For the interface$(D_INLINECODE GL_TRANSFORM_FEEDBACK_VARYING), the value$(D_INLINECODE GL_INVALID_INDEX) should be returned when querying the index assigned to the special names$(D_INLINECODE gl_NextBuffer),$(D_INLINECODE gl_SkipComponents1),$(D_INLINECODE gl_SkipComponents2),$(D_INLINECODE gl_SkipComponents3), or$(D_INLINECODE gl_SkipComponents4).) | |
| * | |
| * Params: | |
| * program = $(P The name of a program object whose resources to query.) | |
| * programInterface = $(P A token identifying the interface within$(D_INLINECODE program) containing the resource named$(D_INLINECODE name).) | |
| * name = $(P The name of the resource to query the index of.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2013-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGetProgramResourceName),$(D_INLINECODE glGetProgramResource),$(D_INLINECODE glGetProgramResourceLocation),$(D_INLINECODE glGetProgramResourceLocationIndex).) | |
| */ | |
| extern(C) GLuint function(GLuint program, GLenum programInterface, const char* name) @system @nogc nothrow glGetProgramResourceIndex; | |
| /** | |
| * glGetProgramResourceLocation: man4/glGetProgramResourceLocation.xml | |
| * | |
| * $(P $(D_INLINECODE glGetProgramResourceLocation) returns the location assigned to the variable named$(D_INLINECODE name) in interface$(D_INLINECODE programInterface) of program object$(D_INLINECODE program).$(D_INLINECODE program) must be the name of a program that has been linked successfully.$(D_INLINECODE programInterface) must be one of$(D_INLINECODE GL_UNIFORM),$(D_INLINECODE GL_PROGRAM_INPUT),$(D_INLINECODE GL_PROGRAM_OUTPUT),$(D_INLINECODE GL_VERTEX_SUBROUTINE_UNIFORM),$(D_INLINECODE GL_TESS_CONTROL_SUBROUTINE_UNIFORM),$(D_INLINECODE GL_TESS_EVALUATION_SUBROUTINE_UNIFORM),$(D_INLINECODE GL_GEOMETRY_SUBROUTINE_UNIFORM),$(D_INLINECODE GL_FRAGMENT_SUBROUTINE_UNIFORM),$(D_INLINECODE GL_COMPUTE_SUBROUTINE_UNIFORM), or$(D_INLINECODE GL_TRANSFORM_FEEDBACK_BUFFER).)$(P The value -1 will be returned if an error occurs, if$(D_INLINECODE name) does not identify an active variable on$(D_INLINECODE programInterface), or if$(D_INLINECODE name) identifies an active variable that does not have a valid location assigned, as described above. The locations returned by these commands are the same locations returned when querying the$(D_INLINECODE GL_LOCATION) and$(D_INLINECODE GL_LOCATION_INDEX) resource properties.)$(P A string provided to$(D_INLINECODE glGetProgramResourceLocation) is considered to match an active variable if:) itemizedlist$(P Any other string is considered not to identify an active variable. If the string specifies an element of an array variable,$(D_INLINECODE glGetProgramResourceLocation) returns the location assigned to that element. If it specifies the base name of an array, it identifies the resources associated with the first element of the array.) | |
| * | |
| * Params: | |
| * program = $(P The name of a program object whose resources to query.) | |
| * programInterface = $(P A token identifying the interface within$(D_INLINECODE program) containing the resource named$(D_INLINECODE name).) | |
| * name = $(P The name of the resource to query the location of.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2013-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGetProgramResourceName),$(D_INLINECODE glGetProgramResourceIndex),$(D_INLINECODE glGetProgramResource),$(D_INLINECODE glGetProgramResourceLocationIndex).) | |
| */ | |
| extern(C) GLint function(GLuint program, GLenum programInterface, const char* name) @system @nogc nothrow glGetProgramResourceLocation; | |
| /** | |
| * glGetProgramResourceLocationIndex: man4/glGetProgramResourceLocationIndex.xml | |
| * | |
| * $(P $(D_INLINECODE glGetProgramResourceLocationIndex) returns the fragment color index assigned to the variable named$(D_INLINECODE name) in interface$(D_INLINECODE programInterface) of program object$(D_INLINECODE program).$(D_INLINECODE program) must be the name of a program that has been linked successfully.$(D_INLINECODE programInterface) must be$(D_INLINECODE GL_PROGRAM_OUTPUT).)$(P The value -1 will be returned if an error occurs, if$(D_INLINECODE name) does not identify an active variable on$(D_INLINECODE programInterface), or if$(D_INLINECODE name) identifies an active variable that does not have a valid location assigned, as described above. The locations returned by these commands are the same locations returned when querying the$(D_INLINECODE GL_LOCATION) and$(D_INLINECODE GL_LOCATION_INDEX) resource properties.)$(P A string provided to$(D_INLINECODE glGetProgramResourceLocationIndex) is considered to match an active variable if:) itemizedlist$(P Any other string is considered not to identify an active variable. If the string specifies an element of an array variable,$(D_INLINECODE glGetProgramResourceLocation) returns the location assigned to that element. If it specifies the base name of an array, it identifies the resources associated with the first element of the array.) | |
| * | |
| * Params: | |
| * program = $(P The name of a program object whose resources to query.) | |
| * programInterface = $(P A token identifying the interface within$(D_INLINECODE program) containing the resource named$(D_INLINECODE name).) | |
| * name = $(P The name of the resource to query the location of.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2013-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGetProgramResourceName),$(D_INLINECODE glGetProgramResourceIndex),$(D_INLINECODE glGetProgramResource),$(D_INLINECODE glGetProgramResourceLocationIndex).) | |
| */ | |
| extern(C) GLint function(GLuint program, GLenum programInterface, const char* name) @system @nogc nothrow glGetProgramResourceLocationIndex; | |
| /** | |
| * glGetProgramResourceName: man4/glGetProgramResourceName.xml | |
| * | |
| * $(P $(D_INLINECODE glGetProgramResourceName) retrieves the name string assigned to the single active resource with an index of$(D_INLINECODE index) in the interface$(D_INLINECODE programInterface) of program object$(D_INLINECODE program).$(D_INLINECODE index) must be less than the number of entries in the active resource list for$(D_INLINECODE programInterface).)$(P $(D_INLINECODE program) must be the name of an existing program object.$(D_INLINECODE programInterface) is the name of the interface within$(D_INLINECODE program) which contains the resource and must be one of the following values:) variablelist$(P The name string assigned to the active resource identified by$(D_INLINECODE index) is returned as a null-terminated string in the character array whose address is given in$(D_INLINECODE name). The actual number of characters written into$(D_INLINECODE name), excluding the null terminator, is returned in$(D_INLINECODE length). If$(D_INLINECODE length) is NULL, no length is returned. The maximum number of characters that may be written into$(D_INLINECODE name), including the null terminator, is specified by$(D_INLINECODE bufSize). If the length of the name string is greater than$(D_INLINECODE bufSize), the first$(D_INLINECODE bufSize) -1 characters of the name string will be written to$(D_INLINECODE name), followed by a null terminator. If$(D_INLINECODE bufSize) is zero, no error will be generated but no characters will be written to$(D_INLINECODE name). The length of the longest name string for$(D_INLINECODE programInterface) >, including a null terminator, can be queried by calling$(D_INLINECODE glGetProgramInterface) with a$(D_INLINECODE pname) of$(D_INLINECODE GL_MAX_NAME_LENGTH).) | |
| * | |
| * Params: | |
| * program = $(P The name of a program object whose resources to query.) | |
| * programInterface = $(P A token identifying the interface within$(D_INLINECODE program) containing the indexed resource.) | |
| * index = $(P The index of the resource within$(D_INLINECODE programInterface) of$(D_INLINECODE program).) | |
| * bufSize = $(P The size of the character array whose address is given by$(D_INLINECODE name).) | |
| * length = $(P The address of a variable which will receive the length of the resource name.) | |
| * name = $(P The address of a character array into which will be written the name of the resource.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2013-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGetProgramResourceIndex),$(D_INLINECODE glGetProgramResource),$(D_INLINECODE glGetProgramResourceLocation),$(D_INLINECODE glGetProgramResourceLocationIndex).) | |
| */ | |
| extern(C) void function(GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei* length, char* name) @system @nogc nothrow glGetProgramResourceName; | |
| /** | |
| * glGetProgramStage: man4/glGetProgramStage.xml | |
| * | |
| * $(P $(D_INLINECODE glGetProgramStage) queries a parameter of a shader stage attached to a program object.$(D_INLINECODE program) contains the name of the program to which the shader is attached.$(D_INLINECODE shadertype) specifies the stage from which to query the parameter.$(D_INLINECODE pname) specifies which parameter should be queried. The value or values of the parameter to be queried is returned in the variable whose address is given in$(D_INLINECODE values).)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_ACTIVE_SUBROUTINE_UNIFORMS), the number of active subroutine variables in the stage is returned in$(D_INLINECODE values).)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS), the number of active subroutine variable locations in the stage is returned in$(D_INLINECODE values).)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_ACTIVE_SUBROUTINES), the number of active subroutines in the stage is returned in$(D_INLINECODE values).)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH), the length of the longest subroutine uniform for the stage is returned in$(D_INLINECODE values).)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_ACTIVE_SUBROUTINE_MAX_LENGTH), the length of the longest subroutine name for the stage is returned in$(D_INLINECODE values). The returned name length includes space for the null-terminator.)$(P If there is no shader present of type$(D_INLINECODE shadertype), the returned value will be consistent with a shader containing no subroutines or subroutine uniforms.) | |
| * | |
| * Params: | |
| * program = $(P Specifies the name of the program containing shader stage.) | |
| * shadertype = $(P Specifies the shader stage from which to query for the subroutine parameter.$(D_INLINECODE shadertype) must be one of$(D_INLINECODE GL_VERTEX_SHADER),$(D_INLINECODE GL_TESS_CONTROL_SHADER),$(D_INLINECODE GL_TESS_EVALUATION_SHADER),$(D_INLINECODE GL_GEOMETRY_SHADER) or$(D_INLINECODE GL_FRAGMENT_SHADER).) | |
| * pname = $(P Specifies the parameter of the shader to query.$(D_INLINECODE pname) must be$(D_INLINECODE GL_ACTIVE_SUBROUTINE_UNIFORMS),$(D_INLINECODE GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS),$(D_INLINECODE GL_ACTIVE_SUBROUTINES),$(D_INLINECODE GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH), or$(D_INLINECODE GL_ACTIVE_SUBROUTINE_MAX_LENGTH).) | |
| * values = $(P Specifies the address of a variable into which the queried value or values will be placed.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGetProgram)) | |
| */ | |
| extern(C) void function(GLuint program, GLenum shadertype, GLenum pname, GLint* values) @system @nogc nothrow glGetProgramStageiv; | |
| /** | |
| * glGetQueryIndexed: man4/glGetQueryIndexed.xml | |
| * | |
| * $(P $(D_INLINECODE glGetQueryIndexediv) returns in$(D_INLINECODE params) a selected parameter of the indexed query object target specified by$(D_INLINECODE target) and$(D_INLINECODE index).$(D_INLINECODE index) specifies the index of the query object target and must be between zero and a target-specific maxiumum.)$(P $(D_INLINECODE pname) names a specific query object target parameter. When$(D_INLINECODE pname) is$(D_INLINECODE GL_CURRENT_QUERY), the name of the currently active query for the specified$(D_INLINECODE index) of$(D_INLINECODE target), or zero if no query is active, will be placed in$(D_INLINECODE params). If$(D_INLINECODE pname) is$(D_INLINECODE GL_QUERY_COUNTER_BITS), the implementation-dependent number of bits used to hold the result of queries for$(D_INLINECODE target) is returned in$(D_INLINECODE params).) | |
| * | |
| * $(P The target$(D_INLINECODE GL_ANY_SAMPLES_PASSED_CONSERVATIVE) is available only if the GL version is 4.3 or greater.)$(P If an error is generated, no change is made to the contents of$(D_INLINECODE params).)$(P Calling$(D_INLINECODE glGetQueryiv) is equivalent to calling$(D_INLINECODE glGetQueryIndexediv) with$(D_INLINECODE index) set to zero.) | |
| * | |
| * Params: | |
| * target = $(P Specifies a query object target. Must be$(D_INLINECODE GL_SAMPLES_PASSED),$(D_INLINECODE GL_ANY_SAMPLES_PASSED),$(D_INLINECODE GL_ANY_SAMPLES_PASSED_CONSERVATIVE)$(D_INLINECODE GL_PRIMITIVES_GENERATED),$(D_INLINECODE GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN),$(D_INLINECODE GL_TIME_ELAPSED), or$(D_INLINECODE GL_TIMESTAMP).) | |
| * index = $(P Specifies the index of the query object target.) | |
| * pname = $(P Specifies the symbolic name of a query object target parameter. Accepted values are$(D_INLINECODE GL_CURRENT_QUERY) or$(D_INLINECODE GL_QUERY_COUNTER_BITS).) | |
| * params = $(P Returns the requested data.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGetQueryObject),$(D_INLINECODE glIsQuery)) | |
| */ | |
| extern(C) void function(GLenum target, GLuint index, GLenum pname, GLint* params) @system @nogc nothrow glGetQueryIndexediv; | |
| /** | |
| * glGetQueryiv: man4/glGetQueryiv.xml | |
| * | |
| * $(P $(D_INLINECODE glGetQueryiv) returns in$(D_INLINECODE params) a selected parameter of the query object target specified by$(D_INLINECODE target).)$(P $(D_INLINECODE pname) names a specific query object target parameter. When$(D_INLINECODE pname) is$(D_INLINECODE GL_CURRENT_QUERY), the name of the currently active query for$(D_INLINECODE target), or zero if no query is active, will be placed in$(D_INLINECODE params). If$(D_INLINECODE pname) is$(D_INLINECODE GL_QUERY_COUNTER_BITS), the implementation-dependent number of bits used to hold the result of queries for$(D_INLINECODE target) is returned in$(D_INLINECODE params).) | |
| * | |
| * $(P The target$(D_INLINECODE GL_ANY_SAMPLES_PASSED_CONSERVATIVE) is available only if the GL version is 4.3 or greater.)$(P If an error is generated, no change is made to the contents of$(D_INLINECODE params).) | |
| * | |
| * Params: | |
| * target = $(P Specifies a query object target. Must be$(D_INLINECODE GL_SAMPLES_PASSED),$(D_INLINECODE GL_ANY_SAMPLES_PASSED),$(D_INLINECODE GL_ANY_SAMPLES_PASSED_CONSERVATIVE)$(D_INLINECODE GL_PRIMITIVES_GENERATED),$(D_INLINECODE GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN),$(D_INLINECODE GL_TIME_ELAPSED), or$(D_INLINECODE GL_TIMESTAMP).) | |
| * pname = $(P Specifies the symbolic name of a query object target parameter. Accepted values are$(D_INLINECODE GL_CURRENT_QUERY) or$(D_INLINECODE GL_QUERY_COUNTER_BITS).) | |
| * params = $(P Returns the requested data.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2005 Addison-Wesley. Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGetQueryObject),$(D_INLINECODE glIsQuery)) | |
| */ | |
| extern(C) void function(GLenum target, GLenum pname, GLint* params) @system @nogc nothrow glGetQueryiv; | |
| /** | |
| * glGetQueryObject: man4/glGetQueryObject.xml | |
| * | |
| * $(P $(D_INLINECODE glGetQueryObject) returns in$(D_INLINECODE params) a selected parameter of the query object specified by$(D_INLINECODE id).)$(P $(D_INLINECODE pname) names a specific query object parameter.$(D_INLINECODE pname) can be as follows:) variablelist | |
| * | |
| * $(P If an error is generated, no change is made to the contents of$(D_INLINECODE params).)$(P $(D_INLINECODE glGetQueryObject) implicitly flushes the GL pipeline so that any incomplete rendering delimited by the occlusion query completes in finite time.)$(P If multiple queries are issued using the same query object$(D_INLINECODE id) before calling$(D_INLINECODE glGetQueryObject), the results of the most recent query will be returned. In this case, when issuing a new query, the results of the previous query are discarded.)$(P $(D_INLINECODE glGetQueryObjecti64v) and$(D_INLINECODE glGetQueryObjectui64v) are available only if the GL version is 3.3 or greater.)$(P $(D_INLINECODE GL_QUERY_RESULT_NO_WAIT) is accepted for$(D_INLINECODE pname) only if the GL version is 4.4 or greater.)$(P The$(D_INLINECODE GL_QUERY_RESULT_BUFFER) target is available only if the GL version is 4.4 or higher. On earlier versions of the GL,$(D_INLINECODE params) is always an address in client memory.) | |
| * | |
| * Params: | |
| * id = $(P Specifies the name of a query object.) | |
| * pname = $(P Specifies the symbolic name of a query object parameter. Accepted values are$(D_INLINECODE GL_QUERY_RESULT) or$(D_INLINECODE GL_QUERY_RESULT_AVAILABLE).) | |
| * params = $(P If a buffer is bound to the$(D_INLINECODE GL_QUERY_RESULT_BUFFER) target, then$(D_INLINECODE params) is treated as an offset to a location within that buffer's data store to receive the result of the query. If no buffer is bound to$(D_INLINECODE GL_QUERY_RESULT_BUFFER), then$(D_INLINECODE params) is treated as an address in client memory of a variable to receive the resulting data.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2005 Addison-Wesley. Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBeginQuery),$(D_INLINECODE glEndQuery),$(D_INLINECODE glGetQueryiv),$(D_INLINECODE glIsQuery),$(D_INLINECODE glQueryCounter)) | |
| */ | |
| extern(C) void function(GLuint id, GLenum pname, GLint* params) @system @nogc nothrow glGetQueryObjectiv; | |
| /** | |
| * glGetSamplerParameter: man4/glGetSamplerParameter.xml | |
| * | |
| * $(P $(D_INLINECODE glGetSamplerParameter) returns in$(D_INLINECODE params) the value or values of the sampler parameter specified as$(D_INLINECODE pname).$(D_INLINECODE sampler) defines the target sampler, and must be the name of an existing sampler object, returned from a previous call to$(D_INLINECODE glGenSamplers).$(D_INLINECODE pname) accepts the same symbols as$(D_INLINECODE glSamplerParameter), with the same interpretations:) variablelist | |
| * | |
| * $(P If an error is generated, no change is made to the contents of$(D_INLINECODE params).)$(P $(D_INLINECODE glGetSamplerParameter) is available only if the GL version is 3.3 or higher.) | |
| * | |
| * Params: | |
| * sampler = $(P Specifies name of the sampler object from which to retrieve parameters.) | |
| * pname = $(P Specifies the symbolic name of a sampler parameter.$(D_INLINECODE GL_TEXTURE_MAG_FILTER),$(D_INLINECODE GL_TEXTURE_MIN_FILTER),$(D_INLINECODE GL_TEXTURE_MIN_LOD),$(D_INLINECODE GL_TEXTURE_MAX_LOD),$(D_INLINECODE GL_TEXTURE_LOD_BIAS),$(D_INLINECODE GL_TEXTURE_WRAP_S),$(D_INLINECODE GL_TEXTURE_WRAP_T),$(D_INLINECODE GL_TEXTURE_WRAP_R),$(D_INLINECODE GL_TEXTURE_BORDER_COLOR),$(D_INLINECODE GL_TEXTURE_COMPARE_MODE), and$(D_INLINECODE GL_TEXTURE_COMPARE_FUNC) are accepted.) | |
| * params = $(P Returns the sampler parameters.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glSamplerParameter),$(D_INLINECODE glGenSamplers),$(D_INLINECODE glDeleteSamplers),$(D_INLINECODE glSamplerParameter)) | |
| */ | |
| extern(C) void function(GLuint sampler, GLenum pname, GLfloat* params) @system @nogc nothrow glGetSamplerParameterfv; | |
| /** | |
| * glGetShader: man4/glGetShader.xml | |
| * | |
| * $(P $(D_INLINECODE glGetShader) returns in$(D_INLINECODE params) the value of a parameter for a specific shader object. The following parameters are defined:) variablelist | |
| * | |
| * $(P If an error is generated, no change is made to the contents of$(D_INLINECODE params).) | |
| * | |
| * Params: | |
| * shader = $(P Specifies the shader object to be queried.) | |
| * pname = $(P Specifies the object parameter. Accepted symbolic names are$(D_INLINECODE GL_SHADER_TYPE),$(D_INLINECODE GL_DELETE_STATUS),$(D_INLINECODE GL_COMPILE_STATUS),$(D_INLINECODE GL_INFO_LOG_LENGTH),$(D_INLINECODE GL_SHADER_SOURCE_LENGTH).) | |
| * params = $(P Returns the requested object parameter.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2003-2005 3Dlabs Inc. Ltd. Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glCompileShader),$(D_INLINECODE glCreateShader),$(D_INLINECODE glDeleteShader),$(D_INLINECODE glGetProgram),$(D_INLINECODE glShaderSource)) | |
| */ | |
| extern(C) void function(GLuint shader, GLenum pname, GLint* params) @system @nogc nothrow glGetShaderiv; | |
| /** | |
| * glGetShaderInfoLog: man4/glGetShaderInfoLog.xml | |
| * | |
| * $(P $(D_INLINECODE glGetShaderInfoLog) returns the information log for the specified shader object. The information log for a shader object is modified when the shader is compiled. The string that is returned will be null terminated.)$(P $(D_INLINECODE glGetShaderInfoLog) returns in$(D_INLINECODE infoLog) as much of the information log as it can, up to a maximum of$(D_INLINECODE maxLength) characters. The number of characters actually returned, excluding the null termination character, is specified by$(D_INLINECODE length). If the length of the returned string is not required, a value of$(D_INLINECODE NULL) can be passed in the$(D_INLINECODE length) argument. The size of the buffer required to store the returned information log can be obtained by calling$(D_INLINECODE glGetShader) with the value$(D_INLINECODE GL_INFO_LOG_LENGTH).)$(P The information log for a shader object is a string that may contain diagnostic messages, warning messages, and other information about the last compile operation. When a shader object is created, its information log will be a string of length 0.) | |
| * | |
| * $(P The information log for a shader object is the OpenGL implementer's primary mechanism for conveying information about the compilation process. Therefore, the information log can be helpful to application developers during the development process, even when compilation is successful. Application developers should not expect different OpenGL implementations to produce identical information logs.) | |
| * | |
| * Params: | |
| * shader = $(P Specifies the shader object whose information log is to be queried.) | |
| * maxLength = $(P Specifies the size of the character buffer for storing the returned information log.) | |
| * length = $(P Returns the length of the string returned in$(D_INLINECODE infoLog) (excluding the null terminator).) | |
| * infoLog = $(P Specifies an array of characters that is used to return the information log.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2003-2005 3Dlabs Inc. Ltd. Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glCompileShader),$(D_INLINECODE glGetProgramInfoLog),$(D_INLINECODE glLinkProgram),$(D_INLINECODE glValidateProgram)) | |
| */ | |
| extern(C) void function(GLuint shader, GLsizei maxLength, GLsizei* length, GLchar* infoLog) @system @nogc nothrow glGetShaderInfoLog; | |
| /** | |
| * glGetShaderPrecisionFormat: man4/glGetShaderPrecisionFormat.xml | |
| * | |
| * $(P $(D_INLINECODE glGetShaderPrecisionFormat) retrieves the numeric range and precision for the implementation's representation of quantities in different numeric formats in specified shader type.$(D_INLINECODE shaderType) specifies the type of shader for which the numeric precision and range is to be retrieved and must be one of$(D_INLINECODE GL_VERTEX_SHADER) or$(D_INLINECODE GL_FRAGMENT_SHADER).$(D_INLINECODE precisionType) specifies the numeric format to query and must be one of$(D_INLINECODE GL_LOW_FLOAT),$(D_INLINECODE GL_MEDIUM_FLOAT)$(D_INLINECODE GL_HIGH_FLOAT),$(D_INLINECODE GL_LOW_INT),$(D_INLINECODE GL_MEDIUM_INT), or$(D_INLINECODE GL_HIGH_INT).)$(P $(D_INLINECODE range) points to an array of two integers into which the format's numeric range will be returned. If min and max are the smallest values representable in the format, then the values returned are defined to be:$(D_INLINECODE range) [0] = floor(log2(|min|)) and$(D_INLINECODE range) [1] = floor(log2(|max|)).)$(P $(D_INLINECODE precision) specifies the address of an integer into which will be written the log2 value of the number of bits of precision of the format. If the smallest representable value greater than 1 is 1 +, then the integer addressed by$(D_INLINECODE precision) will contain floor(-log2(eps)).) | |
| * | |
| * Params: | |
| * shaderType = $(P Specifies the type of shader whose precision to query.$(D_INLINECODE shaderType) must be$(D_INLINECODE GL_VERTEX_SHADER) or$(D_INLINECODE GL_FRAGMENT_SHADER).) | |
| * precisionType = $(P Specifies the numeric format whose precision and range to query.) | |
| * range = $(P Specifies the address of array of two integers into which encodings of the implementation's numeric range are returned.) | |
| * precision = $(P Specifies the address of an integer into which the numeric precision of the implementation is written.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * | |
| */ | |
| extern(C) void function(GLenum shaderType, GLenum precisionType, GLint* range, GLint* precision) @system @nogc nothrow glGetShaderPrecisionFormat; | |
| /** | |
| * glGetShaderSource: man4/glGetShaderSource.xml | |
| * | |
| * $(P $(D_INLINECODE glGetShaderSource) returns the concatenation of the source code strings from the shader object specified by$(D_INLINECODE shader). The source code strings for a shader object are the result of a previous call to$(D_INLINECODE glShaderSource). The string returned by the function will be null terminated.)$(P $(D_INLINECODE glGetShaderSource) returns in$(D_INLINECODE source) as much of the source code string as it can, up to a maximum of$(D_INLINECODE bufSize) characters. The number of characters actually returned, excluding the null termination character, is specified by$(D_INLINECODE length). If the length of the returned string is not required, a value of$(D_INLINECODE NULL) can be passed in the$(D_INLINECODE length) argument. The size of the buffer required to store the returned source code string can be obtained by calling$(D_INLINECODE glGetShader) with the value$(D_INLINECODE GL_SHADER_SOURCE_LENGTH).) | |
| * | |
| * Params: | |
| * shader = $(P Specifies the shader object to be queried.) | |
| * bufSize = $(P Specifies the size of the character buffer for storing the returned source code string.) | |
| * length = $(P Returns the length of the string returned in$(D_INLINECODE source) (excluding the null terminator).) | |
| * source = $(P Specifies an array of characters that is used to return the source code string.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2003-2005 3Dlabs Inc. Ltd. Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glCreateShader),$(D_INLINECODE glShaderSource)) | |
| */ | |
| extern(C) void function(GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* source) @system @nogc nothrow glGetShaderSource; | |
| /** | |
| * glGetString: man4/glGetString.xml | |
| * | |
| * $(P $(D_INLINECODE glGetString) returns a pointer to a static string describing some aspect of the current GL connection.$(D_INLINECODE name) can be one of the following:) variablelist$(P $(D_INLINECODE glGetStringi) returns a pointer to a static string indexed by$(D_INLINECODE index).$(D_INLINECODE name) can be one of the following:) variablelist$(P Strings$(D_INLINECODE GL_VENDOR) and$(D_INLINECODE GL_RENDERER) together uniquely specify a platform. They do not change from release to release and should be used by platform-recognition algorithms.)$(P The$(D_INLINECODE GL_VERSION) and$(D_INLINECODE GL_SHADING_LANGUAGE_VERSION) strings begin with a version number. The version number uses one of these forms:)$(P )$(P Vendor-specific information may follow the version number. Its format depends on the implementation, but a space always separates the version number and the vendor-specific information.)$(P All strings are null-terminated.) | |
| * | |
| * $(P If an error is generated,$(D_INLINECODE glGetString) returns 0.)$(P The client and server may support different versions.$(D_INLINECODE glGetString) always returns a compatible version number. The release number always describes the server.) | |
| * | |
| * Params: | |
| * name = $(P Specifies a symbolic constant, one of$(D_INLINECODE GL_VENDOR),$(D_INLINECODE GL_RENDERER),$(D_INLINECODE GL_VERSION), or$(D_INLINECODE GL_SHADING_LANGUAGE_VERSION). Additionally,$(D_INLINECODE glGetStringi) accepts the$(D_INLINECODE GL_EXTENSIONS) token.) | |
| * index = $(P For$(D_INLINECODE glGetStringi), specifies the index of the string to return.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * | |
| */ | |
| extern(C) const GLubyte function(GLenum name) @system @nogc nothrow glGetString; | |
| /** | |
| * glGetSubroutineIndex: man4/glGetSubroutineIndex.xml | |
| * | |
| * $(P $(D_INLINECODE glGetSubroutineIndex) returns the index of a subroutine uniform within a shader stage attached to a program object.$(D_INLINECODE program) contains the name of the program to which the shader is attached.$(D_INLINECODE shadertype) specifies the stage from which to query shader subroutine index.$(D_INLINECODE name) contains the null-terminated name of the subroutine uniform whose name to query.)$(P If$(D_INLINECODE name) is not the name of a subroutine uniform in the shader stage,$(D_INLINECODE GL_INVALID_INDEX) is returned, but no error is generated. If$(D_INLINECODE name) is the name of a subroutine uniform in the shader stage, a value between zero and the value of$(D_INLINECODE GL_ACTIVE_SUBROUTINES) minus one will be returned. Subroutine indices are assigned using consecutive integers in the range from zero to the value of$(D_INLINECODE GL_ACTIVE_SUBROUTINES) minus one for the shader stage.) | |
| * | |
| * Params: | |
| * program = $(P Specifies the name of the program containing shader stage.) | |
| * shadertype = $(P Specifies the shader stage from which to query for subroutine uniform index.$(D_INLINECODE shadertype) must be one of$(D_INLINECODE GL_VERTEX_SHADER),$(D_INLINECODE GL_TESS_CONTROL_SHADER),$(D_INLINECODE GL_TESS_EVALUATION_SHADER),$(D_INLINECODE GL_GEOMETRY_SHADER) or$(D_INLINECODE GL_FRAGMENT_SHADER).) | |
| * name = $(P Specifies the name of the subroutine uniform whose index to query.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGetProgram),$(D_INLINECODE glGetActiveSubroutineUniform),$(D_INLINECODE glGetActiveSubroutineUniformName)) | |
| */ | |
| extern(C) GLuint function(GLuint program, GLenum shadertype, const GLchar* name) @system @nogc nothrow glGetSubroutineIndex; | |
| /** | |
| * glGetSubroutineUniformLocation: man4/glGetSubroutineUniformLocation.xml | |
| * | |
| * $(P $(D_INLINECODE glGetSubroutineUniformLocation) returns the location of the subroutine uniform variable$(D_INLINECODE name) in the shader stage of type$(D_INLINECODE shadertype) attached to$(D_INLINECODE program), with behavior otherwise identical to$(D_INLINECODE glGetUniformLocation).)$(P If$(D_INLINECODE name) is not the name of a subroutine uniform in the shader stage, -1 is returned, but no error is generated. If$(D_INLINECODE name) is the name of a subroutine uniform in the shader stage, a value between zero and the value of$(D_INLINECODE GL_ACTIVE_SUBROUTINE_LOCATIONS) minus one will be returned. Subroutine locations are assigned using consecutive integers in the range from zero to the value of$(D_INLINECODE GL_ACTIVE_SUBROUTINE_LOCATIONS) minus one for the shader stage. For active subroutine uniforms declared as arrays, the declared array elements are assigned consecutive locations.) | |
| * | |
| * Params: | |
| * program = $(P Specifies the name of the program containing shader stage.) | |
| * shadertype = $(P Specifies the shader stage from which to query for subroutine uniform index.$(D_INLINECODE shadertype) must be one of$(D_INLINECODE GL_VERTEX_SHADER),$(D_INLINECODE GL_TESS_CONTROL_SHADER),$(D_INLINECODE GL_TESS_EVALUATION_SHADER),$(D_INLINECODE GL_GEOMETRY_SHADER) or$(D_INLINECODE GL_FRAGMENT_SHADER).) | |
| * name = $(P Specifies the name of the subroutine uniform whose index to query.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGetProgram),$(D_INLINECODE glGetActiveSubroutineUniform),$(D_INLINECODE glGetActiveSubroutineUniformName),$(D_INLINECODE glGetUniformLocation)) | |
| */ | |
| extern(C) GLint function(GLuint program, GLenum shadertype, const GLchar* name) @system @nogc nothrow glGetSubroutineUniformLocation; | |
| /** | |
| * glGetSync: man4/glGetSync.xml | |
| * | |
| * $(P $(D_INLINECODE glGetSynciv) retrieves properties of a sync object.$(D_INLINECODE sync) specifies the name of the sync object whose properties to retrieve.)$(P On success,$(D_INLINECODE glGetSynciv) replaces up to$(D_INLINECODE bufSize) integers in$(D_INLINECODE values) with the corresponding property values of the object being queried. The actual number of integers replaced is returned in the variable whose address is specified in$(D_INLINECODE length). If$(D_INLINECODE length) is$(D_INLINECODE NULL), no length is returned.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_OBJECT_TYPE), a single value representing the specific type of the sync object is placed in$(D_INLINECODE values). The only type supported is$(D_INLINECODE GL_SYNC_FENCE).)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_SYNC_STATUS), a single value representing the status of the sync object ($(D_INLINECODE GL_SIGNALED) or$(D_INLINECODE GL_UNSIGNALED) ) is placed in$(D_INLINECODE values).)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_SYNC_CONDITION), a single value representing the condition of the sync object is placed in$(D_INLINECODE values). The only condition supported is$(D_INLINECODE GL_SYNC_GPU_COMMANDS_COMPLETE).)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_SYNC_FLAGS), a single value representing the flags with which the sync object was created is placed in$(D_INLINECODE values). No flags are currently supported$(P $(D_INLINECODE flags) is expected to be used in future extensions to the sync objects.).)$(P If an error occurs, nothing will be written to$(D_INLINECODE values) or$(D_INLINECODE length).) | |
| * | |
| * Params: | |
| * sync = $(P Specifies the sync object whose properties to query.) | |
| * pname = $(P Specifies the parameter whose value to retrieve from the sync object specified in$(D_INLINECODE sync).) | |
| * bufSize = $(P Specifies the size of the buffer whose address is given in$(D_INLINECODE values).) | |
| * length = $(P Specifies the address of an variable to receive the number of integers placed in$(D_INLINECODE values).) | |
| * values = $(P Specifies the address of an array to receive the values of the queried parameter.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glFenceSync),$(D_INLINECODE glWaitSync),$(D_INLINECODE glClientWaitSync)) | |
| */ | |
| extern(C) void function(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values) @system @nogc nothrow glGetSynciv; | |
| /** | |
| * glGetTexLevelParameter: man4/glGetTexLevelParameter.xml | |
| * | |
| * $(P $(D_INLINECODE glGetTexLevelParameterfv),$(D_INLINECODE glGetTexLevelParameteriv),$(D_INLINECODE glGetTextureLevelParameterfv) and$(D_INLINECODE glGetTextureLevelParameteriv) return in$(D_INLINECODE params) texture parameter values for a specific level-of-detail value, specified as$(D_INLINECODE level). For the first two functions,$(D_INLINECODE target) defines the target texture, either$(D_INLINECODE GL_TEXTURE_1D),$(D_INLINECODE GL_TEXTURE_2D),$(D_INLINECODE GL_TEXTURE_3D),$(D_INLINECODE GL_PROXY_TEXTURE_1D),$(D_INLINECODE GL_PROXY_TEXTURE_2D),$(D_INLINECODE GL_PROXY_TEXTURE_3D),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_X),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_NEGATIVE_X),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_Y),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_NEGATIVE_Y),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_Z),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_NEGATIVE_Z), or$(D_INLINECODE GL_PROXY_TEXTURE_CUBE_MAP). The remaining two take a$(D_INLINECODE texture) argument which specifies the name of the texture object.)$(P $(D_INLINECODE GL_MAX_TEXTURE_SIZE), and$(D_INLINECODE GL_MAX_3D_TEXTURE_SIZE) are not really descriptive enough. It has to report the largest square texture image that can be accommodated with mipmaps but a long skinny texture, or a texture without mipmaps may easily fit in texture memory. The proxy targets allow the user to more accurately query whether the GL can accommodate a texture of a given configuration. If the texture cannot be accommodated, the texture state variables, which may be queried with$(D_INLINECODE glGetTexLevelParameter) and$(D_INLINECODE glGetTextureLevelParameter), are set to 0. If the texture can be accommodated, the texture state values will be set as they would be set for a non-proxy target.)$(P $(D_INLINECODE pname) specifies the texture parameter whose value or values will be returned.)$(P The accepted parameter names are as follows:) variablelist | |
| * | |
| * $(P If an error is generated, no change is made to the contents of$(D_INLINECODE params).)$(P $(D_INLINECODE glGetTexLevelParameter) returns the texture level parameters for the active texture unit.)$(P $(D_INLINECODE GL_TEXTURE_BUFFER_OFFSET) and$(D_INLINECODE GL_TEXTURE_BUFFER_SIZE) are available only if the GL version is 4.3 or greater.) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target to which the texture is bound for$(D_INLINECODE glGetTexLevelParameterfv) and$(D_INLINECODE glGetTexLevelParameteriv) functions. Must be one of the following values:$(D_INLINECODE GL_TEXTURE_1D),$(D_INLINECODE GL_TEXTURE_2D),$(D_INLINECODE GL_TEXTURE_3D),$(D_INLINECODE GL_TEXTURE_1D_ARRAY),$(D_INLINECODE GL_TEXTURE_2D_ARRAY),$(D_INLINECODE GL_TEXTURE_RECTANGLE),$(D_INLINECODE GL_TEXTURE_2D_MULTISAMPLE),$(D_INLINECODE GL_TEXTURE_2D_MULTISAMPLE_ARRAY),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_X),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_NEGATIVE_X),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_Y),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_NEGATIVE_Y),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_Z),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_NEGATIVE_Z),$(D_INLINECODE GL_PROXY_TEXTURE_1D),$(D_INLINECODE GL_PROXY_TEXTURE_2D),$(D_INLINECODE GL_PROXY_TEXTURE_3D),$(D_INLINECODE GL_PROXY_TEXTURE_1D_ARRAY),$(D_INLINECODE GL_PROXY_TEXTURE_2D_ARRAY),$(D_INLINECODE GL_PROXY_TEXTURE_RECTANGLE),$(D_INLINECODE GL_PROXY_TEXTURE_2D_MULTISAMPLE),$(D_INLINECODE GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY),$(D_INLINECODE GL_PROXY_TEXTURE_CUBE_MAP), or$(D_INLINECODE GL_TEXTURE_BUFFER).) | |
| * texture = $(P Specifies the texture object name for$(D_INLINECODE glGetTextureLevelParameterfv) and$(D_INLINECODE glGetTextureLevelParameteriv) functions.) | |
| * level = $(P Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level n is the n th mipmap reduction image.) | |
| * pname = $(P Specifies the symbolic name of a texture parameter.$(D_INLINECODE GL_TEXTURE_WIDTH),$(D_INLINECODE GL_TEXTURE_HEIGHT),$(D_INLINECODE GL_TEXTURE_DEPTH),$(D_INLINECODE GL_TEXTURE_INTERNAL_FORMAT),$(D_INLINECODE GL_TEXTURE_RED_SIZE),$(D_INLINECODE GL_TEXTURE_GREEN_SIZE),$(D_INLINECODE GL_TEXTURE_BLUE_SIZE),$(D_INLINECODE GL_TEXTURE_ALPHA_SIZE),$(D_INLINECODE GL_TEXTURE_DEPTH_SIZE),$(D_INLINECODE GL_TEXTURE_COMPRESSED),$(D_INLINECODE GL_TEXTURE_COMPRESSED_IMAGE_SIZE), and$(D_INLINECODE GL_TEXTURE_BUFFER_OFFSET) are accepted.) | |
| * params = $(P Returns the requested data.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glActiveTexture),$(D_INLINECODE glGetTexParameter),$(D_INLINECODE glCopyTexImage1D),$(D_INLINECODE glCopyTexImage2D),$(D_INLINECODE glCopyTexSubImage1D),$(D_INLINECODE glCopyTexSubImage2D),$(D_INLINECODE glCopyTexSubImage3D),$(D_INLINECODE glTexImage1D),$(D_INLINECODE glTexImage2D),$(D_INLINECODE glTexImage3D),$(D_INLINECODE glTexSubImage1D),$(D_INLINECODE glTexSubImage2D),$(D_INLINECODE glTexSubImage3D),$(D_INLINECODE glTexParameter)) | |
| */ | |
| extern(C) void function(GLenum target, GLint level, GLenum pname, GLfloat* params) @system @nogc nothrow glGetTexLevelParameterfv; | |
| /// Ditto | |
| extern(C) void function(GLenum target, GLint level, GLenum pname, GLint* params) @system @nogc nothrow glGetTexLevelParameteriv; | |
| /// Ditto | |
| extern(C) void function(GLuint texture, GLint level, GLenum pname, GLfloat* params) @system @nogc nothrow glGetTextureLevelParameterfv; | |
| /// Ditto | |
| extern(C) void function(GLuint texture, GLint level, GLenum pname, GLint* params) @system @nogc nothrow glGetTextureLevelParameteriv; | |
| /** | |
| * glGetTexParameter: man4/glGetTexParameter.xml | |
| * | |
| * $(P $(D_INLINECODE glGetTexParameter) and$(D_INLINECODE glGetTextureParameter) return in$(D_INLINECODE params) the value or values of the texture parameter specified as$(D_INLINECODE pname).$(D_INLINECODE target) defines the target texture.$(D_INLINECODE GL_TEXTURE_1D),$(D_INLINECODE GL_TEXTURE_2D),$(D_INLINECODE GL_TEXTURE_3D),$(D_INLINECODE GL_TEXTURE_1D_ARRAY),$(D_INLINECODE GL_TEXTURE_2D_ARRAY),$(D_INLINECODE GL_TEXTURE_RECTANGLE),$(D_INLINECODE GL_TEXTURE_CUBE_MAP),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_ARRAY),$(D_INLINECODE GL_TEXTURE_2D_MULTISAMPLE), or$(D_INLINECODE GL_TEXTURE_2D_MULTISAMPLE_ARRAY) specify one-, two-, or three-dimensional, one-dimensional array, two-dimensional array, rectangle, cube-mapped or cube-mapped array, two-dimensional multisample, or two-dimensional multisample array texturing, respectively.$(D_INLINECODE pname) accepts the same symbols as$(D_INLINECODE glTexParameter), with the same interpretations:) variablelist$(P In addition to the parameters that may be set with$(D_INLINECODE glTexParameter),$(D_INLINECODE glGetTexParameter) and$(D_INLINECODE glGetTextureParameter) accept the following read-only parameters:) variablelist | |
| * | |
| * $(P If an error is generated, no change is made to the contents of$(D_INLINECODE params).)$(P $(D_INLINECODE GL_IMAGE_FORMAT_COMPATIBILITY_TYPE) is available only if the GL version is 4.2 or greater.)$(P $(D_INLINECODE GL_DEPTH_STENCIL_TEXTURE_MODE),$(D_INLINECODE GL_TEXTURE_VIEW_MIN_LEVEL),$(D_INLINECODE GL_TEXTURE_VIEW_NUM_LEVELS),$(D_INLINECODE GL_TEXTURE_VIEW_MIN_LAYER),$(D_INLINECODE GL_TEXTURE_VIEW_NUM_LAYERS) and$(D_INLINECODE GL_TEXTURE_IMMUTABLE_LEVELS) are available only if the GL version is 4.3 or greater.)$(P $(D_INLINECODE GL_TEXTURE_TARGET) are available only if the GL version is 4.5 or greater.) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target to which the texture is bound for$(D_INLINECODE glGetTexParameterfv),$(D_INLINECODE glGetTexParameteriv),$(D_INLINECODE glGetTexParameterIiv), and$(D_INLINECODE glGetTexParameterIuiv) functions.$(D_INLINECODE GL_TEXTURE_1D),$(D_INLINECODE GL_TEXTURE_1D_ARRAY),$(D_INLINECODE GL_TEXTURE_2D),$(D_INLINECODE GL_TEXTURE_2D_ARRAY),$(D_INLINECODE GL_TEXTURE_2D_MULTISAMPLE),$(D_INLINECODE GL_TEXTURE_2D_MULTISAMPLE_ARRAY),$(D_INLINECODE GL_TEXTURE_3D),$(D_INLINECODE GL_TEXTURE_CUBE_MAP),$(D_INLINECODE GL_TEXTURE_RECTANGLE), and$(D_INLINECODE GL_TEXTURE_CUBE_MAP_ARRAY) are accepted.) | |
| * texture = $(P Specifies the texture object name for$(D_INLINECODE glGetTextureParameterfv),$(D_INLINECODE glGetTextureParameteriv),$(D_INLINECODE glGetTextureParameterIiv), and$(D_INLINECODE glGetTextureParameterIuiv) functions.) | |
| * pname = $(P Specifies the symbolic name of a texture parameter.$(D_INLINECODE GL_DEPTH_STENCIL_TEXTURE_MODE),$(D_INLINECODE GL_IMAGE_FORMAT_COMPATIBILITY_TYPE),$(D_INLINECODE GL_TEXTURE_BASE_LEVEL),$(D_INLINECODE GL_TEXTURE_BORDER_COLOR),$(D_INLINECODE GL_TEXTURE_COMPARE_MODE),$(D_INLINECODE GL_TEXTURE_COMPARE_FUNC),$(D_INLINECODE GL_TEXTURE_IMMUTABLE_FORMAT),$(D_INLINECODE GL_TEXTURE_IMMUTABLE_LEVELS),$(D_INLINECODE GL_TEXTURE_LOD_BIAS),$(D_INLINECODE GL_TEXTURE_MAG_FILTER),$(D_INLINECODE GL_TEXTURE_MAX_LEVEL),$(D_INLINECODE GL_TEXTURE_MAX_LOD),$(D_INLINECODE GL_TEXTURE_MIN_FILTER),$(D_INLINECODE GL_TEXTURE_MIN_LOD),$(D_INLINECODE GL_TEXTURE_SWIZZLE_R),$(D_INLINECODE GL_TEXTURE_SWIZZLE_G),$(D_INLINECODE GL_TEXTURE_SWIZZLE_B),$(D_INLINECODE GL_TEXTURE_SWIZZLE_A),$(D_INLINECODE GL_TEXTURE_SWIZZLE_RGBA),$(D_INLINECODE GL_TEXTURE_TARGET),$(D_INLINECODE GL_TEXTURE_VIEW_MIN_LAYER),$(D_INLINECODE GL_TEXTURE_VIEW_MIN_LEVEL),$(D_INLINECODE GL_TEXTURE_VIEW_NUM_LAYERS),$(D_INLINECODE GL_TEXTURE_VIEW_NUM_LEVELS),$(D_INLINECODE GL_TEXTURE_WRAP_S),$(D_INLINECODE GL_TEXTURE_WRAP_T), and$(D_INLINECODE GL_TEXTURE_WRAP_R) are accepted.) | |
| * params = $(P Returns the texture parameters.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glTexParameter),$(D_INLINECODE glTextureParameter),$(D_INLINECODE glTexStorage1D),$(D_INLINECODE glTexStorage2D),$(D_INLINECODE glTexStorage3D),$(D_INLINECODE glTextureStorage1D),$(D_INLINECODE glTextureStorage2D),$(D_INLINECODE glTextureStorage3D),$(D_INLINECODE glTextureView)) | |
| */ | |
| extern(C) void function(GLenum target, GLenum pname, GLfloat* params) @system @nogc nothrow glGetTexParameterfv; | |
| /// Ditto | |
| extern(C) void function(GLenum target, GLenum pname, GLint* params) @system @nogc nothrow glGetTexParameteriv; | |
| /// Ditto | |
| extern(C) void function(GLenum target, GLenum pname, GLint* params) @system @nogc nothrow glGetTexParameterIiv; | |
| /// Ditto | |
| extern(C) void function(GLenum target, GLenum pname, GLuint* params) @system @nogc nothrow glGetTexParameterIuiv; | |
| /// Ditto | |
| extern(C) void function(GLuint texture, GLenum pname, GLfloat* params) @system @nogc nothrow glGetTextureParameterfv; | |
| /// Ditto | |
| extern(C) void function(GLuint texture, GLenum pname, GLint* params) @system @nogc nothrow glGetTextureParameteriv; | |
| /// Ditto | |
| extern(C) void function(GLuint texture, GLenum pname, GLint* params) @system @nogc nothrow glGetTextureParameterIiv; | |
| /// Ditto | |
| extern(C) void function(GLuint texture, GLenum pname, GLuint* params) @system @nogc nothrow glGetTextureParameterIuiv; | |
| /** | |
| * glGetTextureSubImage: man4/glGetTextureSubImage.xml | |
| * | |
| * $(P $(D_INLINECODE glGetTextureSubImage) returns a texture subimage into pixels.)$(P $(D_INLINECODE texture) is the name of the source texture object and must not be a buffer or multisample texture. The effective$(D_INLINECODE target) parameter is the value of$(D_INLINECODE GL_TEXTURE_TARGET) for texture.$(D_INLINECODE Level),$(D_INLINECODE format),$(D_INLINECODE type) and$(D_INLINECODE pixels) have the same meaning as for$(D_INLINECODE glGetTexImage).$(D_INLINECODE bufSize) is the size of the buffer to receive the retrieved pixel data.)$(P For cube map textures, the behavior is as though$(D_INLINECODE GetTextureImage) were called, but only texels from the requested cube map faces (selected by$(D_INLINECODE zoffset) and$(D_INLINECODE depth), as described below) were returned.)$(P $(D_INLINECODE xoffset),$(D_INLINECODE yoffset) and$(D_INLINECODE zoffset) values indicate the position of the subregion to return.$(D_INLINECODE width),$(D_INLINECODE height) and$(D_INLINECODE depth) indicate the size of the region to return. These parameters have the same meaning as for$(D_INLINECODE glTexSubImage3D), though for one- and two-dimensional textures there are extra restrictions, described in the errors section below.)$(P For one-dimensional array textures,$(D_INLINECODE yoffset) is interpreted as the first layer to access and$(D_INLINECODE height) is the number of layers to access.)$(P For two-dimensional array textures,$(D_INLINECODE zoffset) is interpreted as the first layer to access and$(D_INLINECODE depth) is the number of layers to access.)$(P Cube map textures are treated as an array of six slices in the z-dimension, where the value of$(D_INLINECODE zoffset) is interpreted as specifying the cube map face for the corresponding layer (as presented in the table below) and$(D_INLINECODE depth) is the number of faces to access:)$(P Layer number Cube Map Face 0 GL_TEXTURE_CUBE_MAP_POSITIVE_X 1 GL_TEXTURE_CUBE_MAP_NEGATIVE_X 2 GL_TEXTURE_CUBE_MAP_POSITIVE_Y 3 GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 4 GL_TEXTURE_CUBE_MAP_POSITIVE_Z 5 GL_TEXTURE_CUBE_MAP_NEGATIVE_Z)$(P For cube map array textures,$(D_INLINECODE zoffset) is the first layer-face to access, and$(D_INLINECODE depth) is the number of layer-faces to access. A layer-face described by $k$ is translated into an array layer and face according to $$ layer = \left\lfloor { layer \over 6 } \right\rfloor$$ and $$ face = k \bmod 6. $$)$(P Component groups from the specified sub-region are packed and placed into memory as described for$(D_INLINECODE glGetTextureImage), starting with the texel at ($(D_INLINECODE xoffset),$(D_INLINECODE yoffset),$(D_INLINECODE zoffset) ).) | |
| * | |
| * Params: | |
| * texture = $(P Specifies the name of the source texture object. Must be$(D_INLINECODE GL_TEXTURE_1D),$(D_INLINECODE GL_TEXTURE_1D_ARRAY),$(D_INLINECODE GL_TEXTURE_2D),$(D_INLINECODE GL_TEXTURE_2D_ARRAY),$(D_INLINECODE GL_TEXTURE_3D),$(D_INLINECODE GL_TEXTURE_CUBE_MAP),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_ARRAY) or$(D_INLINECODE GL_TEXTURE_RECTANGLE). In specific, buffer and multisample textures are not permitted.) | |
| * level = $(P Specifies the level-of-detail number. Level 0 is the base image level. Level $n$ is the $n$th mipmap reduction image.) | |
| * xoffset = $(P Specifies a texel offset in the x direction within the texture array.) | |
| * yoffset = $(P Specifies a texel offset in the y direction within the texture array.) | |
| * zoffset = $(P Specifies a texel offset in the z direction within the texture array.) | |
| * width = $(P Specifies the width of the texture subimage.) | |
| * height = $(P Specifies the height of the texture subimage.) | |
| * depth = $(P Specifies the depth of the texture subimage.) | |
| * format = $(P Specifies the format of the pixel data. The following symbolic values are accepted:$(D_INLINECODE GL_RED),$(D_INLINECODE GL_RG),$(D_INLINECODE GL_RGB),$(D_INLINECODE GL_BGR),$(D_INLINECODE GL_RGBA),$(D_INLINECODE GL_BGRA),$(D_INLINECODE GL_DEPTH_COMPONENT) and$(D_INLINECODE GL_STENCIL_INDEX).) | |
| * type = $(P Specifies the data type of the pixel data. The following symbolic values are accepted:$(D_INLINECODE GL_UNSIGNED_BYTE),$(D_INLINECODE GL_BYTE),$(D_INLINECODE GL_UNSIGNED_SHORT),$(D_INLINECODE GL_SHORT),$(D_INLINECODE GL_UNSIGNED_INT),$(D_INLINECODE GL_INT),$(D_INLINECODE GL_FLOAT),$(D_INLINECODE GL_UNSIGNED_BYTE_3_3_2),$(D_INLINECODE GL_UNSIGNED_BYTE_2_3_3_REV),$(D_INLINECODE GL_UNSIGNED_SHORT_5_6_5),$(D_INLINECODE GL_UNSIGNED_SHORT_5_6_5_REV),$(D_INLINECODE GL_UNSIGNED_SHORT_4_4_4_4),$(D_INLINECODE GL_UNSIGNED_SHORT_4_4_4_4_REV),$(D_INLINECODE GL_UNSIGNED_SHORT_5_5_5_1),$(D_INLINECODE GL_UNSIGNED_SHORT_1_5_5_5_REV),$(D_INLINECODE GL_UNSIGNED_INT_8_8_8_8),$(D_INLINECODE GL_UNSIGNED_INT_8_8_8_8_REV),$(D_INLINECODE GL_UNSIGNED_INT_10_10_10_2), and$(D_INLINECODE GL_UNSIGNED_INT_2_10_10_10_REV).) | |
| * bufSize = $(P Specifies the size of the buffer to receive the retrieved pixel data.) | |
| * pixels = $(P Returns the texture subimage. Should be a pointer to an array of the type specified by$(D_INLINECODE type).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGetTexImage),$(D_INLINECODE glGetTextureImage),$(D_INLINECODE glReadPixels),$(D_INLINECODE glTexImage1D),$(D_INLINECODE glTexImage2D),$(D_INLINECODE glTexImage3D),$(D_INLINECODE glTexSubImage1D),$(D_INLINECODE glTexSubImage2D),$(D_INLINECODE glTexSubImage3D)) | |
| */ | |
| extern(C) void function(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, void* pixels) @system @nogc nothrow glGetTextureSubImage; | |
| /** | |
| * glGetTransformFeedback: man4/glGetTransformFeedback.xml | |
| * | |
| * $(P In order to use the Transform Feedback functionality, you need to configure the Transform Feedback Buffer indexed bindings. This can be achieved by either using$(D_INLINECODE glBindBufferBase) or$(D_INLINECODE glBindBuffersBase) to associate whole buffer object storage to one of the Transform Feedback Binding Points, or by calling$(D_INLINECODE glBindBufferRange) or$(D_INLINECODE glBindBuffersRange) to use a region of a buffer object storage for the binding. You may want to (but are not required to) bind a Transform Feedback Object first, in order to cache the binding configuration. This usually allows you to restore the Transform Feedback configuration faster, than if you were to execute a list of API calls necessary to set up the Transform Feedback state of your liking.)$(P This reference page discusses two types of getters that operate on Transform Feedback Objects and their bindings.)$(P The first class operates on general Transform Feedback binding point and includes$(D_INLINECODE glGetTransformFeedbackiv) function.$(D_INLINECODE glGetTransformFeedbackiv) can be used to retrieve information about Transform Feedback object bound to the general Transform Feedback binding point, as configured with a$(D_INLINECODE glBindTransformFeedback) call. In this case, you can check:)$(P itemizedlist)$(P The latter class, which includes$(D_INLINECODE glGetTransformFeedbacki_v) and$(D_INLINECODE glGetTransformFeedbacki64_v) functions, can be used to check what the current configuration of each of the buffer object regions bound to Transform Feedback Buffer binding points is. This allows you to query for the following information:)$(P itemizedlist) | |
| * | |
| * Params: | |
| * xfb = $(P The name of an existing transform feedback object, or zero for the default transform feedback object.) | |
| * pname = $(P Property to use for the query. Must be one of the values:$(D_INLINECODE GL_TRANSFORM_FEEDBACK_BUFFER_BINDING),$(D_INLINECODE GL_TRANSFORM_FEEDBACK_BUFFER_START),$(D_INLINECODE GL_TRANSFORM_FEEDBACK_BUFFER_SIZE),$(D_INLINECODE GL_TRANSFORM_FEEDBACK_PAUSED),$(D_INLINECODE GL_TRANSFORM_FEEDBACK_ACTIVE).) | |
| * index = $(P Index of the transform feedback stream (for indexed state).) | |
| * param = $(P The address of a buffer into which will be written the requested state information.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBindBufferBase),$(D_INLINECODE glBindBufferRange),$(D_INLINECODE glBindBuffersBase),$(D_INLINECODE glBindBuffersRange),$(D_INLINECODE glBindTransformFeedback)) | |
| */ | |
| extern(C) void function(GLuint xfb, GLenum pname, GLint* param) @system @nogc nothrow glGetTransformFeedbackiv; | |
| /** | |
| * glGetTransformFeedbackVarying: man4/glGetTransformFeedbackVarying.xml | |
| * | |
| * $(P Information about the set of varying variables in a linked program that will be captured during transform feedback may be retrieved by calling$(D_INLINECODE glGetTransformFeedbackVarying).$(D_INLINECODE glGetTransformFeedbackVarying) provides information about the varying variable selected by$(D_INLINECODE index). An$(D_INLINECODE index) of 0 selects the first varying variable specified in the$(D_INLINECODE varyings) array passed to$(D_INLINECODE glTransformFeedbackVaryings), and an$(D_INLINECODE index) of the value of$(D_INLINECODE GL_TRANSFORM_FEEDBACK_VARYINGS) minus one selects the last such variable.)$(P The name of the selected varying is returned as a null-terminated string in$(D_INLINECODE name). The actual number of characters written into$(D_INLINECODE name), excluding the null terminator, is returned in$(D_INLINECODE length). If$(D_INLINECODE length) is NULL, no length is returned. The maximum number of characters that may be written into$(D_INLINECODE name), including the null terminator, is specified by$(D_INLINECODE bufSize).)$(P The length of the longest varying name in program is given by$(D_INLINECODE GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH), which can be queried with$(D_INLINECODE glGetProgram).)$(P For the selected varying variable, its type is returned into$(D_INLINECODE type). The size of the varying is returned into$(D_INLINECODE size). The value in$(D_INLINECODE size) is in units of the type returned in$(D_INLINECODE type). The type returned can be any of the scalar, vector, or matrix attribute types returned by$(D_INLINECODE glGetActiveAttrib). If an error occurred, the return parameters$(D_INLINECODE length),$(D_INLINECODE size),$(D_INLINECODE type) and$(D_INLINECODE name) will be unmodified. This command will return as much information about the varying variables as possible. If no information is available,$(D_INLINECODE length) will be set to zero and$(D_INLINECODE name) will be an empty string. This situation could arise if$(D_INLINECODE glGetTransformFeedbackVarying) is called after a failed link.) | |
| * | |
| * Params: | |
| * program = $(P The name of the target program object.) | |
| * index = $(P The index of the varying variable whose information to retrieve.) | |
| * bufSize = $(P The maximum number of characters, including the null terminator, that may be written into$(D_INLINECODE name).) | |
| * length = $(P The address of a variable which will receive the number of characters written into$(D_INLINECODE name), excluding the null-terminator. If$(D_INLINECODE length) is$(D_INLINECODE NULL) no length is returned.) | |
| * size = $(P The address of a variable that will receive the size of the varying.) | |
| * type = $(P The address of a variable that will recieve the type of the varying.) | |
| * name = $(P The address of a buffer into which will be written the name of the varying.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBeginTransformFeedback),$(D_INLINECODE glEndTransformFeedback),$(D_INLINECODE glTransformFeedbackVaryings),$(D_INLINECODE glGetProgram)) | |
| */ | |
| extern(C) void function(GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* type, char* name) @system @nogc nothrow glGetTransformFeedbackVarying; | |
| /** | |
| * glGetUniformBlockIndex: man4/glGetUniformBlockIndex.xml | |
| * | |
| * $(P $(D_INLINECODE glGetUniformBlockIndex) retrieves the index of a uniform block within$(D_INLINECODE program).)$(P $(D_INLINECODE program) must be the name of a program object for which the command$(D_INLINECODE glLinkProgram) must have been called in the past, although it is not required that$(D_INLINECODE glLinkProgram) must have succeeded. The link could have failed because the number of active uniforms exceeded the limit.)$(P $(D_INLINECODE uniformBlockName) must contain a nul-terminated string specifying the name of the uniform block.)$(P $(D_INLINECODE glGetUniformBlockIndex) returns the uniform block index for the uniform block named$(D_INLINECODE uniformBlockName) of$(D_INLINECODE program). If$(D_INLINECODE uniformBlockName) does not identify an active uniform block of$(D_INLINECODE program),$(D_INLINECODE glGetUniformBlockIndex) returns the special identifier,$(D_INLINECODE GL_INVALID_INDEX). Indices of the active uniform blocks of a program are assigned in consecutive order, beginning with zero.) | |
| * | |
| * $(P $(D_INLINECODE glGetUniformBlockIndex) is available only if the GL version is 3.1 or greater.) | |
| * | |
| * Params: | |
| * program = $(P Specifies the name of a program containing the uniform block.) | |
| * uniformBlockName = $(P Specifies the address an array of characters to containing the name of the uniform block whose index to retrieve.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGetActiveUniformBlockName),$(D_INLINECODE glGetActiveUniformBlock),$(D_INLINECODE glLinkProgram)) | |
| */ | |
| extern(C) GLuint function(GLuint program, const GLchar* uniformBlockName) @system @nogc nothrow glGetUniformBlockIndex; | |
| /** | |
| * glGetUniformIndices: man4/glGetUniformIndices.xml | |
| * | |
| * $(P $(D_INLINECODE glGetUniformIndices) retrieves the indices of a number of uniforms within$(D_INLINECODE program).)$(P $(D_INLINECODE program) must be the name of a program object for which the command$(D_INLINECODE glLinkProgram) must have been called in the past, although it is not required that$(D_INLINECODE glLinkProgram) must have succeeded. The link could have failed because the number of active uniforms exceeded the limit.)$(P $(D_INLINECODE uniformCount) indicates both the number of elements in the array of names$(D_INLINECODE uniformNames) and the number of indices that may be written to$(D_INLINECODE uniformIndices).)$(P $(D_INLINECODE uniformNames) contains a list of$(D_INLINECODE uniformCount) name strings identifying the uniform names to be queried for indices. For each name string in$(D_INLINECODE uniformNames), the index assigned to the active uniform of that name will be written to the corresponding element of$(D_INLINECODE uniformIndices). If a string in$(D_INLINECODE uniformNames) is not the name of an active uniform, the special value$(D_INLINECODE GL_INVALID_INDEX) will be written to the corresponding element of$(D_INLINECODE uniformIndices).)$(P If an error occurs, nothing is written to$(D_INLINECODE uniformIndices).) | |
| * | |
| * $(P $(D_INLINECODE glGetUniformIndices) is available only if the GL version is 3.1 or greater.) | |
| * | |
| * Params: | |
| * program = $(P Specifies the name of a program containing uniforms whose indices to query.) | |
| * uniformCount = $(P Specifies the number of uniforms whose indices to query.) | |
| * uniformNames = $(P Specifies the address of an array of pointers to buffers containing the names of the queried uniforms.) | |
| * uniformIndices = $(P Specifies the address of an array that will receive the indices of the uniforms.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGetActiveUniform),$(D_INLINECODE glGetActiveUniformName),$(D_INLINECODE glLinkProgram)) | |
| */ | |
| extern(C) void function(GLuint program, GLsizei uniformCount, const GLchar** uniformNames, GLuint* uniformIndices) @system @nogc nothrow glGetUniformIndices; | |
| /** | |
| * glGetUniformLocation: man4/glGetUniformLocation.xml | |
| * | |
| * $(P $(D_INLINECODE glGetUniformLocation) returns an integer that represents the location of a specific uniform variable within a program object.$(D_INLINECODE name) must be a null terminated string that contains no white space.$(D_INLINECODE name) must be an active uniform variable name in$(D_INLINECODE program) that is not a structure, an array of structures, or a subcomponent of a vector or a matrix. This function returns -1 if$(D_INLINECODE name) does not correspond to an active uniform variable in$(D_INLINECODE program), if$(D_INLINECODE name) starts with the reserved prefix "gl_", or if$(D_INLINECODE name) is associated with an atomic counter or a named uniform block.)$(P Uniform variables that are structures or arrays of structures may be queried by calling$(D_INLINECODE glGetUniformLocation) for each field within the structure. The array element operator "[]" and the structure field operator "." may be used in$(D_INLINECODE name) in order to select elements within an array or fields within a structure. The result of using these operators is not allowed to be another structure, an array of structures, or a subcomponent of a vector or a matrix. Except if the last part of$(D_INLINECODE name) indicates a uniform variable array, the location of the first element of an array can be retrieved by using the name of the array, or by using the name appended by "[0]".)$(P The actual locations assigned to uniform variables are not known until the program object is linked successfully. After linking has occurred, the command$(D_INLINECODE glGetUniformLocation) can be used to obtain the location of a uniform variable. This location value can then be passed to$(D_INLINECODE glUniform) to set the value of the uniform variable or to$(D_INLINECODE glGetUniform) in order to query the current value of the uniform variable. After a program object has been linked successfully, the index values for uniform variables remain fixed until the next link command occurs. Uniform variable locations and values can only be queried after a link if the link was successful.) | |
| * | |
| * Params: | |
| * program = $(P Specifies the program object to be queried.) | |
| * name = $(P Points to a null terminated string containing the name of the uniform variable whose location is to be queried.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2003-2005 3Dlabs Inc. Ltd. Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glLinkProgram),$(D_INLINECODE glUniform)) | |
| */ | |
| extern(C) GLint function(GLuint program, const GLchar* name) @system @nogc nothrow glGetUniformLocation; | |
| /** | |
| * glGetUniformSubroutine: man4/glGetUniformSubroutine.xml | |
| * | |
| * $(P $(D_INLINECODE glGetUniformSubroutine) retrieves the value of the subroutine uniform at location$(D_INLINECODE location) for shader stage$(D_INLINECODE shadertype) of the current program.$(D_INLINECODE location) must be less than the value of$(D_INLINECODE GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS) for the shader currently in use at shader stage$(D_INLINECODE shadertype). The value of the subroutine uniform is returned in$(D_INLINECODE values).) | |
| * | |
| * Params: | |
| * shadertype = $(P Specifies the shader stage from which to query for subroutine uniform index.$(D_INLINECODE shadertype) must be one of$(D_INLINECODE GL_VERTEX_SHADER),$(D_INLINECODE GL_TESS_CONTROL_SHADER),$(D_INLINECODE GL_TESS_EVALUATION_SHADER),$(D_INLINECODE GL_GEOMETRY_SHADER) or$(D_INLINECODE GL_FRAGMENT_SHADER).) | |
| * location = $(P Specifies the location of the subroutine uniform.) | |
| * values = $(P Specifies the address of a variable to receive the value or values of the subroutine uniform.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGetProgram),$(D_INLINECODE glGetActiveSubroutineUniform),$(D_INLINECODE glGetActiveSubroutineUniformName),$(D_INLINECODE glGetUniformLocation)) | |
| */ | |
| extern(C) void function(GLenum shadertype, GLint location, GLuint* values) @system @nogc nothrow glGetUniformSubroutineuiv; | |
| /** | |
| * glGetVertexArrayIndexed: man4/glGetVertexArrayIndexed.xml | |
| * | |
| * $(P $(D_INLINECODE glGetVertexArrayIndexediv) and$(D_INLINECODE glGetVertexArrayIndexed64iv) provide a way of querying parameters of an attribute at an user-specified index of a vertex array object. The vertex array object does not have to be bound to the rendering context at the time of the call, but must have been bound at least once prior to this call.)$(P The following parameter values can be retrieved with$(D_INLINECODE glGetVertexArrayIndexediv) for each of the attributes defined for a vertex array object:)$(P itemizedlist$(D_INLINECODE glGetVertexArrayIndexed64iv) can be used to retrieve$(D_INLINECODE GL_VERTEX_BINDING_OFFSET) parameter value for any of the attributes defined for a vertex array object. When$(D_INLINECODE pname) is set to$(D_INLINECODE GL_VERTEX_BINDING_OFFSET),$(D_INLINECODE param) returns a single value that is the byte offset of the first element in the bound buffer's data store. The initial value for this parameter is 0.) | |
| * | |
| * Params: | |
| * vaobj = $(P Specifies the name of a vertex array object.) | |
| * index = $(P Specifies the index of the vertex array object attribute. Must be a number between 0 and ($(D_INLINECODE GL_MAX_VERTEX_ATTRIBS) - 1).) | |
| * pname = $(P Specifies the property to be used for the query. For$(D_INLINECODE glGetVertexArrayIndexediv), it must be one of the following values:$(D_INLINECODE GL_VERTEX_ATTRIB_ARRAY_ENABLED),$(D_INLINECODE GL_VERTEX_ATTRIB_ARRAY_SIZE),$(D_INLINECODE GL_VERTEX_ATTRIB_ARRAY_STRIDE),$(D_INLINECODE GL_VERTEX_ATTRIB_ARRAY_TYPE),$(D_INLINECODE GL_VERTEX_ATTRIB_ARRAY_NORMALIZED),$(D_INLINECODE GL_VERTEX_ATTRIB_ARRAY_INTEGER),$(D_INLINECODE GL_VERTEX_ATTRIB_ARRAY_LONG),$(D_INLINECODE GL_VERTEX_ATTRIB_ARRAY_DIVISOR), or$(D_INLINECODE GL_VERTEX_ATTRIB_RELATIVE_OFFSET). For$(D_INLINECODE glGetVertexArrayIndexed64v), it must be equal to$(D_INLINECODE GL_VERTEX_BINDING_OFFSET).) | |
| * param = $(P Returns the requested value.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGetVertexAttrib),$(D_INLINECODE glVertexAttribBinding),$(D_INLINECODE glVertexAttribIPointer),$(D_INLINECODE glVertexAttribLPointer),$(D_INLINECODE glVertexAttribPointer)) | |
| */ | |
| extern(C) void function(GLuint vaobj, GLuint index, GLenum pname, GLint64* param) @system @nogc nothrow glGetVertexArrayIndexed64iv; | |
| /** | |
| * glGetVertexArrayiv: man4/glGetVertexArrayiv.xml | |
| * | |
| * $(P This function provides a mean of querying properties of an existing vertex array object. The vertex array object does not have to be bound to the rendering context at the time of the call, but must have been bound at least once prior to this call.)$(P $(D_INLINECODE glGetVertexArrayiv) can be used to retrieve ID of a buffer object that will be bound to the$(D_INLINECODE GL_ELEMENT_ARRAY_BUFFER) binding point whenever the queried vertex array object is bound to the rendering context. The binding can be changed for an active vertex array object with a$(D_INLINECODE glBindBuffer) call.) | |
| * | |
| * Params: | |
| * vaobj = $(P specifies the name of the vertex array object to use for the query.) | |
| * pname = $(P Name of the property to use for the query. Must be$(D_INLINECODE GL_ELEMENT_ARRAY_BUFFER_BINDING).) | |
| * param = $(P Returns the requested value.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBindBuffer),$(D_INLINECODE glBindVertexArray),$(D_INLINECODE glGet)) | |
| */ | |
| extern(C) void function(GLuint vaobj, GLenum pname, GLint* param) @system @nogc nothrow glGetVertexArrayiv; | |
| /** | |
| * glGetVertexAttrib: man4/glGetVertexAttrib.xml | |
| * | |
| * $(P $(D_INLINECODE glGetVertexAttrib) returns in$(D_INLINECODE params) the value of a generic vertex attribute parameter. The generic vertex attribute to be queried is specified by$(D_INLINECODE index), and the parameter to be queried is specified by$(D_INLINECODE pname).)$(P The accepted parameter names are as follows:) variablelist$(P All of the parameters except$(D_INLINECODE GL_CURRENT_VERTEX_ATTRIB) represent state stored in the currently bound vertex array object.) | |
| * | |
| * $(P If an error is generated, no change is made to the contents of$(D_INLINECODE params).) | |
| * | |
| * Params: | |
| * index = $(P Specifies the generic vertex attribute parameter to be queried.) | |
| * pname = $(P Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are$(D_INLINECODE GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING),$(D_INLINECODE GL_VERTEX_ATTRIB_ARRAY_ENABLED),$(D_INLINECODE GL_VERTEX_ATTRIB_ARRAY_SIZE),$(D_INLINECODE GL_VERTEX_ATTRIB_ARRAY_STRIDE),$(D_INLINECODE GL_VERTEX_ATTRIB_ARRAY_TYPE),$(D_INLINECODE GL_VERTEX_ATTRIB_ARRAY_NORMALIZED),$(D_INLINECODE GL_VERTEX_ATTRIB_ARRAY_INTEGER),$(D_INLINECODE GL_VERTEX_ATTRIB_ARRAY_DIVISOR), or$(D_INLINECODE GL_CURRENT_VERTEX_ATTRIB).) | |
| * params = $(P Returns the requested data.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2003-2005 3Dlabs Inc. Ltd. Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBindAttribLocation),$(D_INLINECODE glBindBuffer),$(D_INLINECODE glDisableVertexAttribArray),$(D_INLINECODE glEnableVertexAttribArray),$(D_INLINECODE glVertexAttrib),$(D_INLINECODE glVertexAttribDivisor),$(D_INLINECODE glVertexAttribPointer)) | |
| */ | |
| extern(C) void function(GLuint index, GLenum pname, GLdouble* params) @system @nogc nothrow glGetVertexAttribdv; | |
| /// Ditto | |
| extern(C) void function(GLuint index, GLenum pname, GLfloat* params) @system @nogc nothrow glGetVertexAttribfv; | |
| /// Ditto | |
| extern(C) void function(GLuint index, GLenum pname, GLint* params) @system @nogc nothrow glGetVertexAttribiv; | |
| /// Ditto | |
| extern(C) void function(GLuint index, GLenum pname, GLint* params) @system @nogc nothrow glGetVertexAttribIiv; | |
| /// Ditto | |
| extern(C) void function(GLuint index, GLenum pname, GLuint* params) @system @nogc nothrow glGetVertexAttribIuiv; | |
| /// Ditto | |
| extern(C) void function(GLuint index, GLenum pname, GLdouble* params) @system @nogc nothrow glGetVertexAttribLdv; | |
| /** | |
| * glGetVertexAttribPointerv: man4/glGetVertexAttribPointerv.xml | |
| * | |
| * $(P $(D_INLINECODE glGetVertexAttribPointerv) returns pointer information.$(D_INLINECODE index) is the generic vertex attribute to be queried,$(D_INLINECODE pname) is a symbolic constant indicating the pointer to be returned, and$(D_INLINECODE params) is a pointer to a location in which to place the returned data.)$(P The$(D_INLINECODE pointer) returned is a byte offset into the data store of the buffer object that was bound to the$(D_INLINECODE GL_ARRAY_BUFFER) target (see$(D_INLINECODE glBindBuffer) ) when the desired pointer was previously specified.) | |
| * | |
| * $(P The state returned is retrieved from the currently bound vertex array object.)$(P The initial value for each pointer is 0.) | |
| * | |
| * Params: | |
| * index = $(P Specifies the generic vertex attribute parameter to be returned.) | |
| * pname = $(P Specifies the symbolic name of the generic vertex attribute parameter to be returned. Must be$(D_INLINECODE GL_VERTEX_ATTRIB_ARRAY_POINTER).) | |
| * pointer = $(P Returns the pointer value.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2003-2005 3Dlabs Inc. Ltd. Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGetVertexAttrib),$(D_INLINECODE glVertexAttribPointer)) | |
| */ | |
| extern(C) void function(GLuint index, GLenum pname, GLvoid** pointer) @system @nogc nothrow glGetVertexAttribPointerv; | |
| /** | |
| * glHint: man4/glHint.xml | |
| * | |
| * $(P Certain aspects of GL behavior, when there is room for interpretation, can be controlled with hints. A hint is specified with two arguments.$(D_INLINECODE target) is a symbolic constant indicating the behavior to be controlled, and$(D_INLINECODE mode) is another symbolic constant indicating the desired behavior. The initial value for each$(D_INLINECODE target) is$(D_INLINECODE GL_DONT_CARE).$(D_INLINECODE mode) can be one of the following:) variablelist$(P Though the implementation aspects that can be hinted are well defined, the interpretation of the hints depends on the implementation. The hint aspects that can be specified with$(D_INLINECODE target), along with suggested semantics, are as follows:) variablelist | |
| * | |
| * $(P The interpretation of hints depends on the implementation. Some implementations ignore$(D_INLINECODE glHint) settings.) | |
| * | |
| * Params: | |
| * target = $(P Specifies a symbolic constant indicating the behavior to be controlled.$(D_INLINECODE GL_LINE_SMOOTH_HINT),$(D_INLINECODE GL_POLYGON_SMOOTH_HINT),$(D_INLINECODE GL_TEXTURE_COMPRESSION_HINT), and$(D_INLINECODE GL_FRAGMENT_SHADER_DERIVATIVE_HINT) are accepted.) | |
| * mode = $(P Specifies a symbolic constant indicating the desired behavior.$(D_INLINECODE GL_FASTEST),$(D_INLINECODE GL_NICEST), and$(D_INLINECODE GL_DONT_CARE) are accepted.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * | |
| */ | |
| extern(C) void function(GLenum target, GLenum mode) @system @nogc nothrow glHint; | |
| /** | |
| * glInvalidateBufferData: man4/glInvalidateBufferData.xml | |
| * | |
| * $(P $(D_INLINECODE glInvalidateBufferData) invalidates all of the content of the data store of a buffer object. After invalidation, the content of the buffer's data store becomes undefined.) | |
| * | |
| * Params: | |
| * buffer = $(P The name of a buffer object whose data store to invalidate.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2013-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glInvalidateTexSubImage),,$(D_INLINECODE glInvalidateTexImage),$(D_INLINECODE glInvalidateBufferSubData),$(D_INLINECODE glInvalidateFramebuffer),$(D_INLINECODE glInvalidateSubFramebuffer).) | |
| */ | |
| extern(C) void function(GLuint buffer) @system @nogc nothrow glInvalidateBufferData; | |
| /** | |
| * glInvalidateBufferSubData: man4/glInvalidateBufferSubData.xml | |
| * | |
| * $(P $(D_INLINECODE glInvalidateBufferSubData) invalidates all or part of the content of the data store of a buffer object. After invalidation, the content of the specified range of the buffer's data store becomes undefined. The start of the range is given by$(D_INLINECODE offset) and its size is given by$(D_INLINECODE length), both measured in basic machine units.) | |
| * | |
| * Params: | |
| * buffer = $(P The name of a buffer object, a subrange of whose data store to invalidate.) | |
| * offset = $(P The offset within the buffer's data store of the start of the range to be invalidated.) | |
| * length = $(P The length of the range within the buffer's data store to be invalidated.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2013-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glInvalidateTexSubImage),,$(D_INLINECODE glInvalidateTexImage),$(D_INLINECODE glInvalidateBufferData),$(D_INLINECODE glInvalidateFramebuffer),$(D_INLINECODE glInvalidateSubFramebuffer).) | |
| */ | |
| extern(C) void function(GLuint buffer, GLintptr offset, GLsizeiptr length) @system @nogc nothrow glInvalidateBufferSubData; | |
| /** | |
| * glInvalidateFramebuffer: man4/glInvalidateFramebuffer.xml | |
| * | |
| * $(P $(D_INLINECODE glInvalidateFramebuffer) and$(D_INLINECODE glInvalidateNamedFramebufferData) invalidate the entire contents of a specified set of attachments of a framebuffer.)$(P For$(D_INLINECODE glInvalidateFramebuffer), the framebuffer object is that bound to$(D_INLINECODE target).$(D_INLINECODE target) must be$(D_INLINECODE GL_FRAMEBUFFER),$(D_INLINECODE GL_READ_FRAMEBUFFER) or$(D_INLINECODE GL_DRAW_FRAMEBUFFER).$(D_INLINECODE GL_FRAMEBUFFER) is equivalent to$(D_INLINECODE GL_DRAW_FRAMEBUFFER). Default framebuffers may also be invalidated if bound to$(D_INLINECODE target).)$(P For$(D_INLINECODE glInvalidateNamedFramebufferData),$(D_INLINECODE framebuffer) is the name of the framebuffer object. If$(D_INLINECODE framebuffer) is zero, the default draw framebuffer is affected.)$(P The set of attachments whose contents are to be invalidated are specified in the$(D_INLINECODE attachments) array, which contains$(D_INLINECODE numAttachments) elements.)$(P If the specified framebuffer is a framebuffer object, each element of$(D_INLINECODE attachments) must be one of$(D_INLINECODE GL_DEPTH_ATTACHMENT),$(D_INLINECODE GL_STENCIL_ATTACHMENT)$(D_INLINECODE GL_DEPTH_STENCIL_ATTACHMENT), or$(D_INLINECODE GL_COLOR_ATTACHMENT), where is between zero and the value of$(D_INLINECODE GL_MAX_FRAMEBUFFER_ATTACHMENTS) minus one.)$(P If the specified framebuffer is a default framebuffer, each element of$(D_INLINECODE attachments) must be one of$(D_INLINECODE GL_FRONT_LEFT),$(D_INLINECODE GL_FRONT_RIGHT),$(D_INLINECODE GL_BACK_LEFT),$(D_INLINECODE GL_BACK_RIGHT),$(D_INLINECODE GL_AUX),$(D_INLINECODE GL_ACCUM),$(D_INLINECODE GL_COLOR),$(D_INLINECODE GL_DEPTH), or$(D_INLINECODE GL_STENCIL).$(D_INLINECODE GL_COLOR), is treated as$(D_INLINECODE GL_BACK_LEFT) for a double-buffered context and$(D_INLINECODE GL_FRONT_LEFT) for a single-buffered context. The other attachments identify the corresponding specific buffer.)$(P The entire contents of each specified attachment become undefined after execution of$(D_INLINECODE glInvalidateFramebuffer) or$(D_INLINECODE glInvalidateNamedFramebufferData).)$(P If the framebuffer object is not complete,$(D_INLINECODE glInvalidateFramebuffer) and$(D_INLINECODE glInvalidateNamedFramebufferData) may be ignored. This is not an error.) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target to which the framebuffer object is attached for$(D_INLINECODE glInvalidateFramebuffer).) | |
| * framebuffer = $(P Specifies the name of the framebuffer object for$(D_INLINECODE glInvalidateNamedFramebufferData).) | |
| * numAttachments = $(P Specifies the number of entries in the$(D_INLINECODE attachments) array.) | |
| * attachments = $(P Specifies a pointer to an array identifying the attachments to be invalidated.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glInvalidateTexSubImage),$(D_INLINECODE glInvalidateTexImage),$(D_INLINECODE glInvalidateBufferSubData),$(D_INLINECODE glInvalidateBufferData),$(D_INLINECODE glInvalidateSubFramebuffer).) | |
| */ | |
| extern(C) void function(GLenum target, GLsizei numAttachments, const GLenum* attachments) @system @nogc nothrow glInvalidateFramebuffer; | |
| /// Ditto | |
| extern(C) void function(GLuint framebuffer, GLsizei numAttachments, const GLenum* attachments) @system @nogc nothrow glInvalidateNamedFramebufferData; | |
| /** | |
| * glInvalidateNamedFramebufferSubData: man4/glInvalidateSubFramebuffer.xml | |
| * | |
| * $(P $(D_INLINECODE glInvalidateSubFramebuffer) and$(D_INLINECODE glInvalidateNamedFramebufferSubData) invalidate the contents of a specified region of a specified set of attachments of a framebuffer.)$(P For$(D_INLINECODE glInvalidateSubFramebuffer), the framebuffer object is that bound to$(D_INLINECODE target), which must be one of$(D_INLINECODE GL_FRAMEBUFFER),$(D_INLINECODE GL_READ_FRAMEBUFFER) or$(D_INLINECODE GL_DRAW_FRAMEBUFFER).$(D_INLINECODE GL_FRAMEBUFFER) is equivalent to$(D_INLINECODE GL_DRAW_FRAMEBUFFER). Default framebuffers may also be invalidated if bound to$(D_INLINECODE target).)$(P For$(D_INLINECODE glInvalidateNamedFramebufferSubData),$(D_INLINECODE framebuffer) is the name of the framebuffer object. If$(D_INLINECODE framebuffer) is zero, the default draw framebuffer is affected.)$(P The set of attachments of which a region is to be invalidated are specified in the$(D_INLINECODE attachments) array, which contains$(D_INLINECODE numAttachments) elements.)$(P If the specified framebuffer is a framebuffer object, each element of$(D_INLINECODE attachments) must be one of$(D_INLINECODE GL_DEPTH_ATTACHMENT),$(D_INLINECODE GL_STENCIL_ATTACHMENT)$(D_INLINECODE GL_DEPTH_STENCIL_ATTACHMENT), or$(D_INLINECODE GL_COLOR_ATTACHMENT), where is between zero and the value of$(D_INLINECODE GL_MAX_FRAMEBUFFER_ATTACHMENTS) minus one.)$(P If the specified framebuffer is a default framebuffer, each element of$(D_INLINECODE attachments) must be one of$(D_INLINECODE GL_FRONT_LEFT),$(D_INLINECODE GL_FRONT_RIGHT),$(D_INLINECODE GL_BACK_LEFT),$(D_INLINECODE GL_BACK_RIGHT),$(D_INLINECODE GL_AUX),$(D_INLINECODE GL_ACCUM),$(D_INLINECODE GL_COLOR),$(D_INLINECODE GL_DEPTH), or$(D_INLINECODE GL_STENCIL).$(D_INLINECODE GL_COLOR), is treated as$(D_INLINECODE GL_BACK_LEFT) for a double-buffered context and$(D_INLINECODE GL_FRONT_LEFT) for a single-buffered context. The other attachments identify the corresponding specific buffer.)$(P The contents of the specified region of each specified attachment become undefined after execution of$(D_INLINECODE glInvalidateSubFramebuffer) or$(D_INLINECODE glInvalidateNamedFramebufferSubData). The region to be invalidated is specified by$(D_INLINECODE x),$(D_INLINECODE y),$(D_INLINECODE width) and$(D_INLINECODE height) where$(D_INLINECODE x) and$(D_INLINECODE y) give the offset from the origin (with lower-left corner at $(0,0)$) and$(D_INLINECODE width) and$(D_INLINECODE height) are the width and height, respectively, of the region. Any pixels lying outside of the window allocated to the current GL context (for the default framebuffer), or outside of the attachments of the framebuffer object, are ignored. If the framebuffer object is not complete, these commands may be ignored.)$(P If the framebuffer object is not complete,$(D_INLINECODE glInvalidateSubFramebuffer) and$(D_INLINECODE glInvalidateNamedFramebufferSubData) may be ignored. This is not an error.) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target to which the framebuffer object is attached for$(D_INLINECODE glInvalidateSubFramebuffer).) | |
| * framebuffer = $(P Specifies the name of the framebuffer object for$(D_INLINECODE glInvalidateNamedFramebufferSubData).) | |
| * numAttachments = $(P Specifies the number of entries in the$(D_INLINECODE attachments) array.) | |
| * attachments = $(P Specifies a pointer to an array identifying the attachments to be invalidated.) | |
| * x = $(P Specifies the X offset of the region to be invalidated.) | |
| * y = $(P Specifies the Y offset of the region to be invalidated.) | |
| * width = $(P Specifies the width of the region to be invalidated.) | |
| * height = $(P Specifies the height of the region to be invalidated.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glInvalidateTexSubImage),$(D_INLINECODE glInvalidateTexImage),$(D_INLINECODE glInvalidateBufferSubData),$(D_INLINECODE glInvalidateBufferData),$(D_INLINECODE glInvalidateFramebuffer).) | |
| */ | |
| extern(C) void function(GLenum target, GLsizei numAttachments, const GLenum* attachments, GLint x, GLint y, GLint width, GLint height) @system @nogc nothrow glInvalidateSubFramebuffer; | |
| /// Ditto | |
| extern(C) void function(GLuint framebuffer, GLsizei numAttachments, const GLenum* attachments, GLint x, GLint y, GLsizei width, GLsizei height) @system @nogc nothrow glInvalidateNamedFramebufferSubData; | |
| /** | |
| * glInvalidateTexImage: man4/glInvalidateTexImage.xml | |
| * | |
| * $(P $(D_INLINECODE glInvalidateTexSubImage) invalidates all of a texture image.$(D_INLINECODE texture) and$(D_INLINECODE level) indicated which texture image is being invalidated. After this command, data in the texture image has undefined values.)$(P $(D_INLINECODE level) must be greater than or equal to zero and be less than the base 2 logarithm of the maximum texture width, height, or depth.)$(P For textures of targets$(D_INLINECODE GL_TEXTURE_RECTANGLE),$(D_INLINECODE GL_TEXTURE_BUFFER),$(D_INLINECODE GL_TEXTURE_2D_MULTISAMPLE), or$(D_INLINECODE GL_TEXTURE_2D_MULTISAMPLE_ARRAY), level must be zero.) | |
| * | |
| * Params: | |
| * texture = $(P The name of a texture object to invalidate.) | |
| * level = $(P The level of detail of the texture object to invalidate.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2013-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glInvalidateTexSubImage),,$(D_INLINECODE glInvalidateBufferSubData),$(D_INLINECODE glInvalidateBufferData),$(D_INLINECODE glInvalidateFramebuffer),$(D_INLINECODE glInvalidateSubFramebuffer).) | |
| */ | |
| extern(C) void function(GLuint texture, GLint level) @system @nogc nothrow glInvalidateTexImage; | |
| /** | |
| * glInvalidateTexSubImage: man4/glInvalidateTexSubImage.xml | |
| * | |
| * $(P $(D_INLINECODE glInvalidateTexSubImage) invalidates all or part of a texture image.$(D_INLINECODE texture) and$(D_INLINECODE level) indicated which texture image is being invalidated. After this command, data in that subregion have undefined values.$(D_INLINECODE xoffset),$(D_INLINECODE yoffset),$(D_INLINECODE zoffset),$(D_INLINECODE width),$(D_INLINECODE height), and$(D_INLINECODE depth) are interpreted as they are in$(D_INLINECODE glTexSubImage3D). For texture targets that don't have certain dimensions, this command treats those dimensions as having a size of 1. For example, to invalidate a portion of a two- dimensional texture, the application would use$(D_INLINECODE zoffset) equal to zero and$(D_INLINECODE depth) equal to one. Cube map textures are treated as an array of six slices in the z-dimension, where a value of$(D_INLINECODE zoffset) is interpreted as specifying face$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_X) +$(D_INLINECODE zoffset).)$(P $(D_INLINECODE level) must be greater than or equal to zero and be less than the base 2 logarithm of the maximum texture width, height, or depth.$(D_INLINECODE xoffset),$(D_INLINECODE yoffset) and$(D_INLINECODE zoffset) must be greater than or equal to zero and be less than the width, height or depth of the image, respectively. Furthermore,$(D_INLINECODE xoffset) +$(D_INLINECODE width),$(D_INLINECODE yoffset) +$(D_INLINECODE height), and$(D_INLINECODE zoffset) +$(D_INLINECODE depth) must be less than or equal to the width, height or depth of the image, respectively.)$(P For textures of targets$(D_INLINECODE GL_TEXTURE_RECTANGLE),$(D_INLINECODE GL_TEXTURE_BUFFER),$(D_INLINECODE GL_TEXTURE_2D_MULTISAMPLE), or$(D_INLINECODE GL_TEXTURE_2D_MULTISAMPLE_ARRAY), level must be zero.) | |
| * | |
| * Params: | |
| * texture = $(P The name of a texture object a subregion of which to invalidate.) | |
| * level = $(P The level of detail of the texture object within which the region resides.) | |
| * xoffset = $(P The X offset of the region to be invalidated.) | |
| * yoffset = $(P The Y offset of the region to be invalidated.) | |
| * zoffset = $(P The Z offset of the region to be invalidated.) | |
| * width = $(P The width of the region to be invalidated.) | |
| * height = $(P The height of the region to be invalidated.) | |
| * depth = $(P The depth of the region to be invalidated.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2013-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glInvalidateTexImage),,$(D_INLINECODE glInvalidateBufferSubData),$(D_INLINECODE glInvalidateBufferData),$(D_INLINECODE glInvalidateFramebuffer),$(D_INLINECODE glInvalidateSubFramebuffer).) | |
| */ | |
| extern(C) void function(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth) @system @nogc nothrow glInvalidateTexSubImage; | |
| /** | |
| * glIsBuffer: man4/glIsBuffer.xml | |
| * | |
| * $(P $(D_INLINECODE glIsBuffer) returns$(D_INLINECODE GL_TRUE) if$(D_INLINECODE buffer) is currently the name of a buffer object. If$(D_INLINECODE buffer) is zero, or is a non-zero value that is not currently the name of a buffer object, or if an error occurs,$(D_INLINECODE glIsBuffer) returns$(D_INLINECODE GL_FALSE).)$(P A name returned by$(D_INLINECODE glGenBuffers), but not yet associated with a buffer object by calling$(D_INLINECODE glBindBuffer), is not the name of a buffer object.) | |
| * | |
| * Params: | |
| * buffer = $(P Specifies a value that may be the name of a buffer object.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2005 Addison-Wesley. Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBindBuffer),$(D_INLINECODE glDeleteBuffers),$(D_INLINECODE glGenBuffers),$(D_INLINECODE glGet)) | |
| */ | |
| extern(C) GLboolean function(GLuint buffer) @system @nogc nothrow glIsBuffer; | |
| /** | |
| * glIsEnabled: man4/glIsEnabled.xml | |
| * | |
| * $(P $(D_INLINECODE glIsEnabled) returns$(D_INLINECODE GL_TRUE) if$(D_INLINECODE cap) is an enabled capability and returns$(D_INLINECODE GL_FALSE) otherwise. Boolean states that are indexed may be tested with$(D_INLINECODE glIsEnabledi). For$(D_INLINECODE glIsEnabledi),$(D_INLINECODE index) specifies the index of the capability to test.$(D_INLINECODE index) must be between zero and the count of indexed capabilities for$(D_INLINECODE cap). Initially all capabilities except$(D_INLINECODE GL_DITHER) are disabled;$(D_INLINECODE GL_DITHER) is initially enabled.)$(P The following capabilities are accepted for$(D_INLINECODE cap) :)$(B Constant)$(B See)$(D_INLINECODE GL_BLEND)$(D_INLINECODE glBlendFunc),$(D_INLINECODE glLogicOp)$(D_INLINECODE GL_CLIP_DISTANCE)$(D_INLINECODE glEnable)$(D_INLINECODE GL_COLOR_LOGIC_OP)$(D_INLINECODE glLogicOp)$(D_INLINECODE GL_CULL_FACE)$(D_INLINECODE glCullFace)$(D_INLINECODE GL_DEPTH_CLAMP)$(D_INLINECODE glEnable)$(D_INLINECODE GL_DEBUG_OUTPUT)$(D_INLINECODE glEnable)$(D_INLINECODE GL_DEBUG_OUTPUT_SYNCHRONOUS)$(D_INLINECODE glEnable)$(D_INLINECODE GL_DEPTH_TEST)$(D_INLINECODE glDepthFunc),$(D_INLINECODE glDepthRange)$(D_INLINECODE GL_DITHER)$(D_INLINECODE glEnable)$(D_INLINECODE GL_FRAMEBUFFER_SRGB)$(D_INLINECODE glEnable)$(D_INLINECODE GL_LINE_SMOOTH)$(D_INLINECODE glLineWidth)$(D_INLINECODE GL_MULTISAMPLE)$(D_INLINECODE glSampleCoverage)$(D_INLINECODE GL_POLYGON_SMOOTH)$(D_INLINECODE glPolygonMode)$(D_INLINECODE GL_POLYGON_OFFSET_FILL)$(D_INLINECODE glPolygonOffset)$(D_INLINECODE GL_POLYGON_OFFSET_LINE)$(D_INLINECODE glPolygonOffset)$(D_INLINECODE GL_POLYGON_OFFSET_POINT)$(D_INLINECODE glPolygonOffset)$(D_INLINECODE GL_PROGRAM_POINT_SIZE)$(D_INLINECODE glEnable)$(D_INLINECODE GL_PRIMITIVE_RESTART)$(D_INLINECODE glEnable),$(D_INLINECODE glPrimitiveRestartIndex)$(D_INLINECODE GL_SAMPLE_ALPHA_TO_COVERAGE)$(D_INLINECODE glSampleCoverage)$(D_INLINECODE GL_SAMPLE_ALPHA_TO_ONE)$(D_INLINECODE glSampleCoverage)$(D_INLINECODE GL_SAMPLE_COVERAGE)$(D_INLINECODE glSampleCoverage)$(D_INLINECODE GL_SAMPLE_MASK)$(D_INLINECODE glEnable)$(D_INLINECODE GL_SCISSOR_TEST)$(D_INLINECODE glScissor)$(D_INLINECODE GL_STENCIL_TEST)$(D_INLINECODE glStencilFunc),$(D_INLINECODE glStencilOp)$(D_INLINECODE GL_TEXTURE_CUBE_MAP_SEAMLESS)$(D_INLINECODE glEnable) | |
| * | |
| * $(P If an error is generated,$(D_INLINECODE glIsEnabled) and$(D_INLINECODE glIsEnabledi) return$(D_INLINECODE GL_FALSE).)$(P $(D_INLINECODE GL_DEBUG_OUTPUT) and$(D_INLINECODE GL_DEBUG_OUTPUT_SYNCHRONOUS) are available only if the GL version is 4.3 or greater.) | |
| * | |
| * Params: | |
| * cap = $(P Specifies a symbolic constant indicating a GL capability.) | |
| * index = $(P Specifies the index of the capability.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glEnable),$(D_INLINECODE glDisable),$(D_INLINECODE glGet)) | |
| */ | |
| extern(C) GLboolean function(GLenum cap) @system @nogc nothrow glIsEnabled; | |
| /** | |
| * glIsFramebuffer: man4/glIsFramebuffer.xml | |
| * | |
| * $(P $(D_INLINECODE glIsFramebuffer) returns$(D_INLINECODE GL_TRUE) if$(D_INLINECODE framebuffer) is currently the name of a framebuffer object. If$(D_INLINECODE framebuffer) is zero, or if$(D_INLINECODE framebuffer) is not the name of a framebuffer object, or if an error occurs,$(D_INLINECODE glIsFramebuffer) returns$(D_INLINECODE GL_FALSE). If$(D_INLINECODE framebuffer) is a name returned by$(D_INLINECODE glGenFramebuffers), by that has not yet been bound through a call to$(D_INLINECODE glBindFramebuffer), then the name is not a framebuffer object and$(D_INLINECODE glIsFramebuffer) returns$(D_INLINECODE GL_FALSE).) | |
| * | |
| * Params: | |
| * framebuffer = $(P Specifies a value that may be the name of a framebuffer object.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenFramebuffers),$(D_INLINECODE glBindFramebuffer),$(D_INLINECODE glDeleteFramebuffers)) | |
| */ | |
| extern(C) GLboolean function(GLuint framebuffer) @system @nogc nothrow glIsFramebuffer; | |
| /** | |
| * glIsProgram: man4/glIsProgram.xml | |
| * | |
| * $(P $(D_INLINECODE glIsProgram) returns$(D_INLINECODE GL_TRUE) if$(D_INLINECODE program) is the name of a program object previously created with$(D_INLINECODE glCreateProgram) and not yet deleted with$(D_INLINECODE glDeleteProgram). If$(D_INLINECODE program) is zero or a non-zero value that is not the name of a program object, or if an error occurs,$(D_INLINECODE glIsProgram) returns$(D_INLINECODE GL_FALSE).) | |
| * | |
| * $(P No error is generated if$(D_INLINECODE program) is not a valid program object name.)$(P A program object marked for deletion with$(D_INLINECODE glDeleteProgram) but still in use as part of current rendering state is still considered a program object and$(D_INLINECODE glIsProgram) will return$(D_INLINECODE GL_TRUE).) | |
| * | |
| * Params: | |
| * program = $(P Specifies a potential program object.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2003-2005 3Dlabs Inc. Ltd. Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glAttachShader),$(D_INLINECODE glBindAttribLocation),$(D_INLINECODE glCreateProgram),$(D_INLINECODE glDeleteProgram),$(D_INLINECODE glDetachShader),$(D_INLINECODE glLinkProgram),$(D_INLINECODE glUniform),$(D_INLINECODE glUseProgram),$(D_INLINECODE glValidateProgram)) | |
| */ | |
| extern(C) GLboolean function(GLuint program) @system @nogc nothrow glIsProgram; | |
| /** | |
| * glIsProgramPipeline: man4/glIsProgramPipeline.xml | |
| * | |
| * $(P $(D_INLINECODE glIsProgramPipeline) returns$(D_INLINECODE GL_TRUE) if$(D_INLINECODE pipeline) is currently the name of a program pipeline object. If$(D_INLINECODE pipeline) is zero, or if$(D_INLINECODE pipeline) is not the name of a program pipeline object, or if an error occurs,$(D_INLINECODE glIsProgramPipeline) returns$(D_INLINECODE GL_FALSE). If$(D_INLINECODE pipeline) is a name returned by$(D_INLINECODE glGenProgramPipelines), but that has not yet been bound through a call to$(D_INLINECODE glBindProgramPipeline), then the name is not a program pipeline object and$(D_INLINECODE glIsProgramPipeline) returns$(D_INLINECODE GL_FALSE).) | |
| * | |
| * Params: | |
| * pipeline = $(P Specifies a value that may be the name of a program pipeline object.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenProgramPipelines),$(D_INLINECODE glBindProgramPipeline),$(D_INLINECODE glDeleteProgramPipelines)) | |
| */ | |
| extern(C) GLboolean function(GLuint pipeline) @system @nogc nothrow glIsProgramPipeline; | |
| /** | |
| * glIsQuery: man4/glIsQuery.xml | |
| * | |
| * $(P $(D_INLINECODE glIsQuery) returns$(D_INLINECODE GL_TRUE) if$(D_INLINECODE id) is currently the name of a query object. If$(D_INLINECODE id) is zero, or is a non-zero value that is not currently the name of a query object, or if an error occurs,$(D_INLINECODE glIsQuery) returns$(D_INLINECODE GL_FALSE).)$(P A name returned by$(D_INLINECODE glGenQueries), but not yet associated with a query object by calling$(D_INLINECODE glBeginQuery), is not the name of a query object.) | |
| * | |
| * Params: | |
| * id = $(P Specifies a value that may be the name of a query object.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2005 Addison-Wesley. Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBeginQuery),$(D_INLINECODE glDeleteQueries),$(D_INLINECODE glEndQuery),$(D_INLINECODE glGenQueries)) | |
| */ | |
| extern(C) GLboolean function(GLuint id) @system @nogc nothrow glIsQuery; | |
| /** | |
| * glIsRenderbuffer: man4/glIsRenderbuffer.xml | |
| * | |
| * $(P $(D_INLINECODE glIsRenderbuffer) returns$(D_INLINECODE GL_TRUE) if$(D_INLINECODE renderbuffer) is currently the name of a renderbuffer object. If$(D_INLINECODE renderbuffer) is zero, or if$(D_INLINECODE renderbuffer) is not the name of a renderbuffer object, or if an error occurs,$(D_INLINECODE glIsRenderbuffer) returns$(D_INLINECODE GL_FALSE). If$(D_INLINECODE renderbuffer) is a name returned by$(D_INLINECODE glGenRenderbuffers), by that has not yet been bound through a call to$(D_INLINECODE glBindRenderbuffer) or$(D_INLINECODE glFramebufferRenderbuffer), then the name is not a renderbuffer object and$(D_INLINECODE glIsRenderbuffer) returns$(D_INLINECODE GL_FALSE).) | |
| * | |
| * Params: | |
| * renderbuffer = $(P Specifies a value that may be the name of a renderbuffer object.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenRenderbuffers),$(D_INLINECODE glBindRenderbuffer),$(D_INLINECODE glFramebufferRenderbuffer),$(D_INLINECODE glDeleteRenderbuffers)) | |
| */ | |
| extern(C) GLboolean function(GLuint renderbuffer) @system @nogc nothrow glIsRenderbuffer; | |
| /** | |
| * glIsSampler: man4/glIsSampler.xml | |
| * | |
| * $(P $(D_INLINECODE glIsSampler) returns$(D_INLINECODE GL_TRUE) if$(D_INLINECODE id) is currently the name of a sampler object. If$(D_INLINECODE id) is zero, or is a non-zero value that is not currently the name of a sampler object, or if an error occurs,$(D_INLINECODE glIsSampler) returns$(D_INLINECODE GL_FALSE).)$(P A name returned by$(D_INLINECODE glGenSamplers), is the name of a sampler object.) | |
| * | |
| * $(P $(D_INLINECODE glIsSampler) is available only if the GL version is 3.3 or higher.) | |
| * | |
| * Params: | |
| * id = $(P Specifies a value that may be the name of a sampler object.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenSamplers),$(D_INLINECODE glBindSampler),$(D_INLINECODE glDeleteSamplers)) | |
| */ | |
| extern(C) GLboolean function(GLuint id) @system @nogc nothrow glIsSampler; | |
| /** | |
| * glIsShader: man4/glIsShader.xml | |
| * | |
| * $(P $(D_INLINECODE glIsShader) returns$(D_INLINECODE GL_TRUE) if$(D_INLINECODE shader) is the name of a shader object previously created with$(D_INLINECODE glCreateShader) and not yet deleted with$(D_INLINECODE glDeleteShader). If$(D_INLINECODE shader) is zero or a non-zero value that is not the name of a shader object, or if an error occurs,$(D_INLINECODE glIsShader) returns$(D_INLINECODE GL_FALSE).) | |
| * | |
| * $(P No error is generated if$(D_INLINECODE shader) is not a valid shader object name.)$(P A shader object marked for deletion with$(D_INLINECODE glDeleteShader) but still attached to a program object is still considered a shader object and$(D_INLINECODE glIsShader) will return$(D_INLINECODE GL_TRUE).) | |
| * | |
| * Params: | |
| * shader = $(P Specifies a potential shader object.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2003-2005 3Dlabs Inc. Ltd. Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glAttachShader),$(D_INLINECODE glCompileShader),$(D_INLINECODE glCreateShader),$(D_INLINECODE glDeleteShader),$(D_INLINECODE glDetachShader),$(D_INLINECODE glLinkProgram),$(D_INLINECODE glShaderSource)) | |
| */ | |
| extern(C) GLboolean function(GLuint shader) @system @nogc nothrow glIsShader; | |
| /** | |
| * glIsSync: man4/glIsSync.xml | |
| * | |
| * $(P $(D_INLINECODE glIsSync) returns$(D_INLINECODE GL_TRUE) if$(D_INLINECODE sync) is currently the name of a sync object. If$(D_INLINECODE sync) is not the name of a sync object, or if an error occurs,$(D_INLINECODE glIsSync) returns$(D_INLINECODE GL_FALSE). Note that zero is not the name of a sync object.) | |
| * | |
| * $(P $(D_INLINECODE glIsSync) is available only if the GL version is 3.2 or greater.) | |
| * | |
| * Params: | |
| * sync = $(P Specifies a value that may be the name of a sync object.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glFenceSync),$(D_INLINECODE glWaitSync),$(D_INLINECODE glClientWaitSync),$(D_INLINECODE glDeleteSync)) | |
| */ | |
| extern(C) GLboolean function(GLsync sync) @system @nogc nothrow glIsSync; | |
| /** | |
| * glIsTexture: man4/glIsTexture.xml | |
| * | |
| * $(P $(D_INLINECODE glIsTexture) returns$(D_INLINECODE GL_TRUE) if$(D_INLINECODE texture) is currently the name of a texture. If$(D_INLINECODE texture) is zero, or is a non-zero value that is not currently the name of a texture, or if an error occurs,$(D_INLINECODE glIsTexture) returns$(D_INLINECODE GL_FALSE).)$(P A name returned by$(D_INLINECODE glGenTextures), but not yet associated with a texture by calling$(D_INLINECODE glBindTexture), is not the name of a texture.) | |
| * | |
| * Params: | |
| * texture = $(P Specifies a value that may be the name of a texture.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBindTexture),$(D_INLINECODE glCopyTexImage1D),$(D_INLINECODE glCopyTexImage2D),$(D_INLINECODE glDeleteTextures),$(D_INLINECODE glGenTextures),$(D_INLINECODE glGet),$(D_INLINECODE glGetTexParameter),$(D_INLINECODE glTexImage1D),$(D_INLINECODE glTexImage2D),$(D_INLINECODE glTexImage3D),$(D_INLINECODE glTexParameter)) | |
| */ | |
| extern(C) GLboolean function(GLuint texture) @system @nogc nothrow glIsTexture; | |
| /** | |
| * glIsTransformFeedback: man4/glIsTransformFeedback.xml | |
| * | |
| * $(P $(D_INLINECODE glIsTransformFeedback) returns$(D_INLINECODE GL_TRUE) if$(D_INLINECODE id) is currently the name of a transform feedback object. If$(D_INLINECODE id) is zero, or if$(D_INLINECODE id) is not the name of a transform feedback object, or if an error occurs,$(D_INLINECODE glIsTransformFeedback) returns$(D_INLINECODE GL_FALSE). If$(D_INLINECODE id) is a name returned by$(D_INLINECODE glGenTransformFeedbacks), but that has not yet been bound through a call to$(D_INLINECODE glBindTransformFeedback), then the name is not a transform feedback object and$(D_INLINECODE glIsTransformFeedback) returns$(D_INLINECODE GL_FALSE).) | |
| * | |
| * Params: | |
| * id = $(P Specifies a value that may be the name of a transform feedback object.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenTransformFeedbacks),$(D_INLINECODE glBindTransformFeedback),$(D_INLINECODE glDeleteTransformFeedbacks)) | |
| */ | |
| extern(C) GLboolean function(GLuint id) @system @nogc nothrow glIsTransformFeedback; | |
| /** | |
| * glIsVertexArray: man4/glIsVertexArray.xml | |
| * | |
| * $(P $(D_INLINECODE glIsVertexArray) returns$(D_INLINECODE GL_TRUE) if$(D_INLINECODE array) is currently the name of a vertex array object. If$(D_INLINECODE array) is zero, or if$(D_INLINECODE array) is not the name of a vertex array object, or if an error occurs,$(D_INLINECODE glIsVertexArray) returns$(D_INLINECODE GL_FALSE). If$(D_INLINECODE array) is a name returned by$(D_INLINECODE glGenVertexArrays), by that has not yet been bound through a call to$(D_INLINECODE glBindVertexArray), then the name is not a vertex array object and$(D_INLINECODE glIsVertexArray) returns$(D_INLINECODE GL_FALSE).) | |
| * | |
| * Params: | |
| * array = $(P Specifies a value that may be the name of a vertex array object.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenVertexArrays),$(D_INLINECODE glBindVertexArray),$(D_INLINECODE glDeleteVertexArrays)) | |
| */ | |
| extern(C) GLboolean function(GLuint array) @system @nogc nothrow glIsVertexArray; | |
| /** | |
| * glLineWidth: man4/glLineWidth.xml | |
| * | |
| * $(P $(D_INLINECODE glLineWidth) specifies the rasterized width of both aliased and antialiased lines. Using a line width other than 1 has different effects, depending on whether line antialiasing is enabled. To enable and disable line antialiasing, call$(D_INLINECODE glEnable) and$(D_INLINECODE glDisable) with argument$(D_INLINECODE GL_LINE_SMOOTH). Line antialiasing is initially disabled.)$(P If line antialiasing is disabled, the actual width is determined by rounding the supplied width to the nearest integer. (If the rounding results in the value 0, it is as if the line width were 1.) If Δ x >= Δ y, pixels are filled in each column that is rasterized, where is the rounded value of$(D_INLINECODE width). Otherwise, pixels are filled in each row that is rasterized.)$(P If antialiasing is enabled, line rasterization produces a fragment for each pixel square that intersects the region lying within the rectangle having width equal to the current line width, length equal to the actual length of the line, and centered on the mathematical line segment. The coverage value for each fragment is the window coordinate area of the intersection of the rectangular region with the corresponding pixel square. This value is saved and used in the final rasterization step.)$(P Not all widths can be supported when line antialiasing is enabled. If an unsupported width is requested, the nearest supported width is used. Only width 1 is guaranteed to be supported; others depend on the implementation. Likewise, there is a range for aliased line widths as well. To query the range of supported widths and the size difference between supported widths within the range, call$(D_INLINECODE glGet) with arguments$(D_INLINECODE GL_ALIASED_LINE_WIDTH_RANGE),$(D_INLINECODE GL_SMOOTH_LINE_WIDTH_RANGE), and$(D_INLINECODE GL_SMOOTH_LINE_WIDTH_GRANULARITY).) | |
| * | |
| * $(P The line width specified by$(D_INLINECODE glLineWidth) is always returned when$(D_INLINECODE GL_LINE_WIDTH) is queried. Clamping and rounding for aliased and antialiased lines have no effect on the specified value.)$(P Nonantialiased line width may be clamped to an implementation-dependent maximum. Call$(D_INLINECODE glGet) with$(D_INLINECODE GL_ALIASED_LINE_WIDTH_RANGE) to determine the maximum width.)$(P In OpenGL 1.2, the tokens$(D_INLINECODE GL_LINE_WIDTH_RANGE) and$(D_INLINECODE GL_LINE_WIDTH_GRANULARITY) were replaced by$(D_INLINECODE GL_ALIASED_LINE_WIDTH_RANGE),$(D_INLINECODE GL_SMOOTH_LINE_WIDTH_RANGE), and$(D_INLINECODE GL_SMOOTH_LINE_WIDTH_GRANULARITY). The old names are retained for backward compatibility, but should not be used in new code.) | |
| * | |
| * Params: | |
| * width = $(P Specifies the width of rasterized lines. The initial value is 1.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glEnable)) | |
| */ | |
| extern(C) void function(GLfloat width) @system @nogc nothrow glLineWidth; | |
| /** | |
| * glLinkProgram: man4/glLinkProgram.xml | |
| * | |
| * $(P $(D_INLINECODE glLinkProgram) links the program object specified by$(D_INLINECODE program). If any shader objects of type$(D_INLINECODE GL_VERTEX_SHADER) are attached to$(D_INLINECODE program), they will be used to create an executable that will run on the programmable vertex processor. If any shader objects of type$(D_INLINECODE GL_GEOMETRY_SHADER) are attached to$(D_INLINECODE program), they will be used to create an executable that will run on the programmable geometry processor. If any shader objects of type$(D_INLINECODE GL_FRAGMENT_SHADER) are attached to$(D_INLINECODE program), they will be used to create an executable that will run on the programmable fragment processor.)$(P The status of the link operation will be stored as part of the program object's state. This value will be set to$(D_INLINECODE GL_TRUE) if the program object was linked without errors and is ready for use, and$(D_INLINECODE GL_FALSE) otherwise. It can be queried by calling$(D_INLINECODE glGetProgram) with arguments$(D_INLINECODE program) and$(D_INLINECODE GL_LINK_STATUS).)$(P As a result of a successful link operation, all active user-defined uniform variables belonging to$(D_INLINECODE program) will be initialized to 0, and each of the program object's active uniform variables will be assigned a location that can be queried by calling$(D_INLINECODE glGetUniformLocation). Also, any active user-defined attribute variables that have not been bound to a generic vertex attribute index will be bound to one at this time.)$(P Linking of a program object can fail for a number of reasons as specified in the. The following lists some of the conditions that will cause a link error.) itemizedlist$(P When a program object has been successfully linked, the program object can be made part of current state by calling$(D_INLINECODE glUseProgram). Whether or not the link operation was successful, the program object's information log will be overwritten. The information log can be retrieved by calling$(D_INLINECODE glGetProgramInfoLog).)$(P $(D_INLINECODE glLinkProgram) will also install the generated executables as part of the current rendering state if the link operation was successful and the specified program object is already currently in use as a result of a previous call to$(D_INLINECODE glUseProgram). If the program object currently in use is relinked unsuccessfully, its link status will be set to$(D_INLINECODE GL_FALSE), but the executables and associated state will remain part of the current state until a subsequent call to$(D_INLINECODE glUseProgram) removes it from use. After it is removed from use, it cannot be made part of current state until it has been successfully relinked.)$(P If$(D_INLINECODE program) contains shader objects of type$(D_INLINECODE GL_VERTEX_SHADER), and optionally of type$(D_INLINECODE GL_GEOMETRY_SHADER), but does not contain shader objects of type$(D_INLINECODE GL_FRAGMENT_SHADER), the vertex shader executable will be installed on the programmable vertex processor, the geometry shader executable, if present, will be installed on the programmable geometry processor, but no executable will be installed on the fragment processor. The results of rasterizing primitives with such a program will be undefined.)$(P The program object's information log is updated and the program is generated at the time of the link operation. After the link operation, applications are free to modify attached shader objects, compile attached shader objects, detach shader objects, delete shader objects, and attach additional shader objects. None of these operations affects the information log or the program that is part of the program object.) | |
| * | |
| * $(P If the link operation is unsuccessful, any information about a previous link operation on$(D_INLINECODE program) is lost (i.e., a failed link does not restore the old state of$(D_INLINECODE program) ). Certain information can still be retrieved from$(D_INLINECODE program) even after an unsuccessful link operation. See for instance$(D_INLINECODE glGetActiveAttrib) and$(D_INLINECODE glGetActiveUniform).) | |
| * | |
| * Params: | |
| * program = $(P Specifies the handle of the program object to be linked.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2003-2005 3Dlabs Inc. Ltd. Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glAttachShader),$(D_INLINECODE glBindAttribLocation),$(D_INLINECODE glCompileShader),$(D_INLINECODE glCreateProgram),$(D_INLINECODE glDeleteProgram),$(D_INLINECODE glDetachShader),$(D_INLINECODE glUniform),$(D_INLINECODE glUseProgram),$(D_INLINECODE glValidateProgram)) | |
| */ | |
| extern(C) void function(GLuint program) @system @nogc nothrow glLinkProgram; | |
| /** | |
| * glLogicOp: man4/glLogicOp.xml | |
| * | |
| * $(P $(D_INLINECODE glLogicOp) specifies a logical operation that, when enabled, is applied between the incoming RGBA color and the RGBA color at the corresponding location in the frame buffer. To enable or disable the logical operation, call$(D_INLINECODE glEnable) and$(D_INLINECODE glDisable) using the symbolic constant$(D_INLINECODE GL_COLOR_LOGIC_OP). The initial value is disabled.)$(B Opcode)$(B Resulting Operation)$(D_INLINECODE GL_CLEAR) 0$(D_INLINECODE GL_SET) 1$(D_INLINECODE GL_COPY) s$(D_INLINECODE GL_COPY_INVERTED) ~s$(D_INLINECODE GL_NOOP) d$(D_INLINECODE GL_INVERT) ~d$(D_INLINECODE GL_AND) s & d$(D_INLINECODE GL_NAND) ~(s & d)$(D_INLINECODE GL_OR) s | d$(D_INLINECODE GL_NOR) ~(s | d)$(D_INLINECODE GL_XOR) s ^ d$(D_INLINECODE GL_EQUIV) ~(s ^ d)$(D_INLINECODE GL_AND_REVERSE) s & ~d$(D_INLINECODE GL_AND_INVERTED) ~s & d$(D_INLINECODE GL_OR_REVERSE) s | ~d$(D_INLINECODE GL_OR_INVERTED) ~s | d$(P $(D_INLINECODE opcode) is a symbolic constant chosen from the list above. In the explanation of the logical operations, represents the incoming color and represents the color in the frame buffer. Standard C-language operators are used. As these bitwise operators suggest, the logical operation is applied independently to each bit pair of the source and destination colors.) | |
| * | |
| * $(P When more than one RGBA color buffer is enabled for drawing, logical operations are performed separately for each enabled buffer, using for the destination value the contents of that buffer (see$(D_INLINECODE glDrawBuffer) ).)$(P Logic operations have no effect on floating point draw buffers. However, if$(D_INLINECODE GL_COLOR_LOGIC_OP) is enabled, blending is still disabled in this case.) | |
| * | |
| * Params: | |
| * opcode = $(P Specifies a symbolic constant that selects a logical operation. The following symbols are accepted:$(D_INLINECODE GL_CLEAR),$(D_INLINECODE GL_SET),$(D_INLINECODE GL_COPY),$(D_INLINECODE GL_COPY_INVERTED),$(D_INLINECODE GL_NOOP),$(D_INLINECODE GL_INVERT),$(D_INLINECODE GL_AND),$(D_INLINECODE GL_NAND),$(D_INLINECODE GL_OR),$(D_INLINECODE GL_NOR),$(D_INLINECODE GL_XOR),$(D_INLINECODE GL_EQUIV),$(D_INLINECODE GL_AND_REVERSE),$(D_INLINECODE GL_AND_INVERTED),$(D_INLINECODE GL_OR_REVERSE), and$(D_INLINECODE GL_OR_INVERTED). The initial value is$(D_INLINECODE GL_COPY).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBlendFunc),$(D_INLINECODE glDrawBuffer),$(D_INLINECODE glEnable),$(D_INLINECODE glStencilOp)) | |
| */ | |
| extern(C) void function(GLenum opcode) @system @nogc nothrow glLogicOp; | |
| /** | |
| * glMapBuffer: man4/glMapBuffer.xml | |
| * | |
| * $(P $(D_INLINECODE glMapBuffer) and$(D_INLINECODE glMapNamedBuffer) map the entire data store of a specified buffer object into the client's address space. The data can then be directly read and/or written relative to the returned pointer, depending on the specified$(D_INLINECODE access) policy.)$(P A pointer to the beginning of the mapped range is returned once all pending operations on that buffer object have completed, and may be used to modify and/or query the corresponding range of the data store according to the value of$(D_INLINECODE access) : itemizedlist)$(P If an error is generated, a$(D_INLINECODE NULL) pointer is returned.)$(P If no error occurs, the returned pointer will reflect an allocation aligned to the value of$(D_INLINECODE GL_MIN_MAP_BUFFER_ALIGNMENT) basic machine units.)$(P The returned pointer values may not be passed as parameter values to GL commands. For example, they may not be used to specify array pointers, or to specify or query pixel or texture image data; such actions produce undefined results, although implementations may not check for such behavior for performance reasons.)$(P No GL error is generated if the returned pointer is accessed in a way inconsistent with$(D_INLINECODE access) (e.g. used to read from a mapping made with$(D_INLINECODE access)$(D_INLINECODE GL_WRITE_ONLY) or write to a mapping made with$(D_INLINECODE access)$(D_INLINECODE GL_READ_ONLY) ), but the result is undefined and system errors (possibly including program termination) may occur.)$(P Mappings to the data stores of buffer objects may have nonstandard performance characteristics. For example, such mappings may be marked as uncacheable regions of memory, and in such cases reading from them may be very slow. To ensure optimal performance, the client should use the mapping in a fashion consistent with the values of$(D_INLINECODE GL_BUFFER_USAGE) for the buffer object and of$(D_INLINECODE access). Using a mapping in a fashion inconsistent with these values is liable to be multiple orders of magnitude slower than using normal memory.) | |
| * | |
| * $(P Alignment of the returned pointer is guaranteed only if the version of the GL version is 4.2 or greater. Also, the$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER) target is accepted only if the GL version is 4.2 or greater.)$(P The$(D_INLINECODE GL_DISPATCH_INDIRECT_BUFFER) and$(D_INLINECODE GL_SHADER_STORAGE_BUFFER) targets are available only if the GL version is 4.3 or greater.)$(P The$(D_INLINECODE GL_QUERY_BUFFER) target is available only if the GL version is 4.4 or greater.) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target to which the buffer object is bound for$(D_INLINECODE glMapBuffer), which must be one of the buffer binding targets in the following table:)$(B Buffer Binding Target)$(B Purpose)$(D_INLINECODE GL_ARRAY_BUFFER) Vertex attributes$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER) Atomic counter storage$(D_INLINECODE GL_COPY_READ_BUFFER) Buffer copy source$(D_INLINECODE GL_COPY_WRITE_BUFFER) Buffer copy destination$(D_INLINECODE GL_DISPATCH_INDIRECT_BUFFER) Indirect compute dispatch commands$(D_INLINECODE GL_DRAW_INDIRECT_BUFFER) Indirect command arguments$(D_INLINECODE GL_ELEMENT_ARRAY_BUFFER) Vertex array indices$(D_INLINECODE GL_PIXEL_PACK_BUFFER) Pixel read target$(D_INLINECODE GL_PIXEL_UNPACK_BUFFER) Texture data source$(D_INLINECODE GL_QUERY_BUFFER) Query result buffer$(D_INLINECODE GL_SHADER_STORAGE_BUFFER) Read-write storage for shaders$(D_INLINECODE GL_TEXTURE_BUFFER) Texture data buffer$(D_INLINECODE GL_TRANSFORM_FEEDBACK_BUFFER) Transform feedback buffer$(D_INLINECODE GL_UNIFORM_BUFFER) Uniform block storage | |
| * buffer = $(P Specifies the name of the buffer object for$(D_INLINECODE glMapNamedBuffer).) | |
| * access = $(P Specifies the access policy for$(D_INLINECODE glMapBuffer) and$(D_INLINECODE glMapNamedBuffer), indicating whether it will be possible to read from, write to, or both read from and write to the buffer object's mapped data store. The symbolic constant must be$(D_INLINECODE GL_READ_ONLY),$(D_INLINECODE GL_WRITE_ONLY), or$(D_INLINECODE GL_READ_WRITE).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2005 Addison-Wesley. Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBindBuffer),$(D_INLINECODE glBindBufferBase),$(D_INLINECODE glBindBufferRange),$(D_INLINECODE glBufferData),$(D_INLINECODE glBufferSubData),$(D_INLINECODE glDeleteBuffers),$(D_INLINECODE glMapBufferRange),$(D_INLINECODE glUnmapBuffer)) | |
| */ | |
| extern(C) void function(GLenum target, GLenum access) @system @nogc nothrow glMapBuffer; | |
| /// Ditto | |
| extern(C) void function(GLuint buffer, GLenum access) @system @nogc nothrow glMapNamedBuffer; | |
| /** | |
| * glMapBufferRange: man4/glMapBufferRange.xml | |
| * | |
| * $(P $(D_INLINECODE glMapBufferRange) and$(D_INLINECODE glMapNamedBufferRange) map all or part of the data store of a specified buffer object into the client's address space.$(D_INLINECODE offset) and$(D_INLINECODE length) indicate the range of data in the buffer object that is to be mapped, in terms of basic machine units.$(D_INLINECODE access) is a bitfield containing flags which describe the requested mapping. These flags are described below.)$(P A pointer to the beginning of the mapped range is returned once all pending operations on the buffer object have completed, and may be used to modify and/or query the corresponding range of the data store according to the following flag bits set in$(D_INLINECODE access) : itemizedlist)$(P The following flag bits in$(D_INLINECODE access) may be used to modify the mapping: itemizedlist)$(P If an error occurs, a$(D_INLINECODE NULL) pointer is returned.)$(P If no error occurs, the returned pointer will reflect an allocation aligned to the value of$(D_INLINECODE GL_MIN_MAP_BUFFER_ALIGNMENT) basic machine units. Subtracting$(D_INLINECODE offset) from this returned pointer will always produce a multiple of the value of$(D_INLINECODE GL_MIN_MAP_BUFFER_ALIGNMENT).)$(P The returned pointer values may not be passed as parameter values to GL commands. For example, they may not be used to specify array pointers, or to specify or query pixel or texture image data; such actions produce undefined results, although implementations may not check for such behavior for performance reasons.)$(P Mappings to the data stores of buffer objects may have nonstandard performance characteristics. For example, such mappings may be marked as uncacheable regions of memory, and in such cases reading from them may be very slow. To ensure optimal performance, the client should use the mapping in a fashion consistent with the values of$(D_INLINECODE GL_BUFFER_USAGE) for the buffer object and of$(D_INLINECODE access). Using a mapping in a fashion inconsistent with these values is liable to be multiple orders of magnitude slower than using normal memory.) | |
| * | |
| * $(P Alignment of the returned pointer is guaranteed only if the version of the GL version is 4.2 or greater. Also, the$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER) target is accepted only if the GL version is 4.2 or greater.)$(P The$(D_INLINECODE GL_DISPATCH_INDIRECT_BUFFER) and$(D_INLINECODE GL_SHADER_STORAGE_BUFFER) targets are accepted only if the GL version is 4.3 or greater.)$(P The$(D_INLINECODE GL_QUERY_BUFFER) target is available only if the GL version is 4.4 or greater.)$(P The$(D_INLINECODE GL_MAP_PERSISTENT_BIT) and$(D_INLINECODE GL_MAP_COHERENT_BIT) flags are available only if the GL version is 4.4 or greater.) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target to which the buffer object is bound for$(D_INLINECODE glMapBufferRange), which must be one of the buffer binding targets in the following table:)$(B Buffer Binding Target)$(B Purpose)$(D_INLINECODE GL_ARRAY_BUFFER) Vertex attributes$(D_INLINECODE GL_ATOMIC_COUNTER_BUFFER) Atomic counter storage$(D_INLINECODE GL_COPY_READ_BUFFER) Buffer copy source$(D_INLINECODE GL_COPY_WRITE_BUFFER) Buffer copy destination$(D_INLINECODE GL_DISPATCH_INDIRECT_BUFFER) Indirect compute dispatch commands$(D_INLINECODE GL_DRAW_INDIRECT_BUFFER) Indirect command arguments$(D_INLINECODE GL_ELEMENT_ARRAY_BUFFER) Vertex array indices$(D_INLINECODE GL_PIXEL_PACK_BUFFER) Pixel read target$(D_INLINECODE GL_PIXEL_UNPACK_BUFFER) Texture data source$(D_INLINECODE GL_QUERY_BUFFER) Query result buffer$(D_INLINECODE GL_SHADER_STORAGE_BUFFER) Read-write storage for shaders$(D_INLINECODE GL_TEXTURE_BUFFER) Texture data buffer$(D_INLINECODE GL_TRANSFORM_FEEDBACK_BUFFER) Transform feedback buffer$(D_INLINECODE GL_UNIFORM_BUFFER) Uniform block storage | |
| * buffer = $(P Specifies the name of the buffer object for$(D_INLINECODE glMapNamedBufferRange).) | |
| * offset = $(P Specifies the starting offset within the buffer of the range to be mapped.) | |
| * length = $(P Specifies the length of the range to be mapped.) | |
| * access = $(P Specifies a combination of access flags indicating the desired access to the mapped range.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glMapBuffer),$(D_INLINECODE glUnmapBuffer),$(D_INLINECODE glFlushMappedBufferRange),$(D_INLINECODE glBindBuffer),$(D_INLINECODE glBufferStorage)) | |
| */ | |
| extern(C) void function(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access) @system @nogc nothrow glMapBufferRange; | |
| /// Ditto | |
| extern(C) void function(GLuint buffer, GLintptr offset, GLsizei length, GLbitfield access) @system @nogc nothrow glMapNamedBufferRange; | |
| /** | |
| * glMemoryBarrier: man4/glMemoryBarrier.xml | |
| * | |
| * $(P $(D_INLINECODE glMemoryBarrier) defines a barrier ordering the memory transactions issued prior to the command relative to those issued after the barrier. For the purposes of this ordering, memory transactions performed by shaders are considered to be issued by the rendering command that triggered the execution of the shader.$(D_INLINECODE barriers) is a bitfield indicating the set of operations that are synchronized with shader stores; the bits used in$(D_INLINECODE barriers) are as follows:)$(P variablelist)$(P If$(D_INLINECODE barriers) is$(D_INLINECODE GL_ALL_BARRIER_BITS), shader memory accesses will be synchronized relative to all the operations described above.)$(P Implementations may cache buffer object and texture image memory that could be written by shaders in multiple caches; for example, there may be separate caches for texture, vertex fetching, and one or more caches for shader memory accesses. Implementations are not required to keep these caches coherent with shader memory writes. Stores issued by one invocation may not be immediately observable by other pipeline stages or other shader invocations because the value stored may remain in a cache local to the processor executing the store, or because data overwritten by the store is still in a cache elsewhere in the system. When$(D_INLINECODE glMemoryBarrier) is called, the GL flushes and/or invalidates any caches relevant to the operations specified by the$(D_INLINECODE barriers) parameter to ensure consistent ordering of operations across the barrier.)$(P To allow for independent shader invocations to communicate by reads and writes to a common memory address, image variables in the OpenGL Shading Language may be declared as "coherent". Buffer object or texture image memory accessed through such variables may be cached only if caches are automatically updated due to stores issued by any other shader invocation. If the same address is accessed using both coherent and non-coherent variables, the accesses using variables declared as coherent will observe the results stored using coherent variables in other invocations. Using variables declared as "coherent" guarantees only that the results of stores will be immediately visible to shader invocations using similarly-declared variables; calling$(D_INLINECODE glMemoryBarrier) is required to ensure that the stores are visible to other operations.)$(P The following guidelines may be helpful in choosing when to use coherent memory accesses and when to use barriers.)$(P itemizedlist) | |
| * | |
| * $(P $(D_INLINECODE GL_SHADER_STORAGE_BARRIER_BIT) is available only if the GL version is 4.3 or higher.)$(P $(D_INLINECODE GL_QUERY_BUFFER_BARRIER_BIT) is available only if the GL version is 4.4 or higher.) | |
| * | |
| * Params: | |
| * barriers = $(P Specifies the barriers to insert.)$(P For$(D_INLINECODE glMemoryBarrier), must be a bitwise combination of any of$(D_INLINECODE GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT),$(D_INLINECODE GL_ELEMENT_ARRAY_BARRIER_BIT),$(D_INLINECODE GL_UNIFORM_BARRIER_BIT),$(D_INLINECODE GL_TEXTURE_FETCH_BARRIER_BIT),$(D_INLINECODE GL_SHADER_IMAGE_ACCESS_BARRIER_BIT),$(D_INLINECODE GL_COMMAND_BARRIER_BIT),$(D_INLINECODE GL_PIXEL_BUFFER_BARRIER_BIT),$(D_INLINECODE GL_TEXTURE_UPDATE_BARRIER_BIT),$(D_INLINECODE GL_BUFFER_UPDATE_BARRIER_BIT),$(D_INLINECODE GL_FRAMEBUFFER_BARRIER_BIT),$(D_INLINECODE GL_TRANSFORM_FEEDBACK_BARRIER_BIT),$(D_INLINECODE GL_ATOMIC_COUNTER_BARRIER_BIT), or$(D_INLINECODE GL_SHADER_STORAGE_BARRIER_BIT).)$(P For$(D_INLINECODE glMemoryBarrier), must be a bitwise combination of any of$(D_INLINECODE GL_ATOMIC_COUNTER_BARRIER_BIT), or$(D_INLINECODE GL_FRAMEBUFFER_BARRIER_BIT),$(D_INLINECODE GL_SHADER_IMAGE_ACCESS_BARRIER_BIT),$(D_INLINECODE GL_SHADER_STORAGE_BARRIER_BIT).$(D_INLINECODE GL_TEXTURE_FETCH_BARRIER_BIT), or$(D_INLINECODE GL_UNIFORM_BARRIER_BIT).)$(P If the special value$(D_INLINECODE GL_ALL_BARRIER_BITS) is specified, all supported barriers for the corresponding command will be inserted.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2011-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBindImageTexture),$(D_INLINECODE glBufferData),$(D_INLINECODE glMapBuffer),$(D_INLINECODE glMapBufferRange),$(D_INLINECODE glFlushMappedBufferRange),$(D_INLINECODE memoryBarrier)) | |
| */ | |
| extern(C) void function(GLbitfield barriers) @system @nogc nothrow glMemoryBarrier; | |
| /// Ditto | |
| extern(C) void function(GLbitfield barriers) @system @nogc nothrow glMemoryBarrierByRegion; | |
| /** | |
| * glMinSampleShading: man4/glMinSampleShading.xml | |
| * | |
| * $(P $(D_INLINECODE glMinSampleShading) specifies the rate at which samples are shaded within a covered pixel. Sample-rate shading is enabled by calling$(D_INLINECODE glEnable) with the parameter$(D_INLINECODE GL_SAMPLE_SHADING). If$(D_INLINECODE GL_MULTISAMPLE) or$(D_INLINECODE GL_SAMPLE_SHADING) is disabled, sample shading has no effect. Otherwise, an implementation must provide at least as many unique color values for each covered fragment as specified by$(D_INLINECODE value) times$(D_INLINECODE samples) where$(D_INLINECODE samples) is the value of$(D_INLINECODE GL_SAMPLES) for the current framebuffer. At least 1 sample for each covered fragment is generated.)$(P A$(D_INLINECODE value) of 1.0 indicates that each sample in the framebuffer should be indpendently shaded. A$(D_INLINECODE value) of 0.0 effectively allows the GL to ignore sample rate shading. Any value between 0.0 and 1.0 allows the GL to shade only a subset of the total samples within each covered fragment. Which samples are shaded and the algorithm used to select that subset of the fragment's samples is implementation dependent.) | |
| * | |
| * $(P The type of the$(D_INLINECODE value) parameter was changed from GLclampf to GLfloat. This change is transparent to user code and is described in detail on the$(D_INLINECODE removedTypes) page.) | |
| * | |
| * Params: | |
| * value = $(P Specifies the rate at which samples are shaded within each covered pixel.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2011-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE removedTypes)) | |
| */ | |
| extern(C) void function(GLfloat value) @system @nogc nothrow glMinSampleShading; | |
| /** | |
| * glMultiDrawArrays: man4/glMultiDrawArrays.xml | |
| * | |
| * $(P $(D_INLINECODE glMultiDrawArrays) specifies multiple sets of geometric primitives with very few subroutine calls. Instead of calling a GL procedure to pass each individual vertex, normal, texture coordinate, edge flag, or color, you can prespecify separate arrays of vertices, normals, and colors and use them to construct a sequence of primitives with a single call to$(D_INLINECODE glMultiDrawArrays).)$(P $(D_INLINECODE glMultiDrawArrays) behaves identically to$(D_INLINECODE glDrawArrays) except that$(D_INLINECODE drawcount) separate ranges of elements are specified instead.)$(P When$(D_INLINECODE glMultiDrawArrays) is called, it uses$(D_INLINECODE count) sequential elements from each enabled array to construct a sequence of geometric primitives, beginning with element$(D_INLINECODE first).$(D_INLINECODE mode) specifies what kind of primitives are constructed, and how the array elements construct those primitives.)$(P Vertex attributes that are modified by$(D_INLINECODE glMultiDrawArrays) have an unspecified value after$(D_INLINECODE glMultiDrawArrays) returns. Attributes that aren't modified remain well defined.) | |
| * | |
| * $(P $(D_INLINECODE GL_LINE_STRIP_ADJACENCY),$(D_INLINECODE GL_LINES_ADJACENCY),$(D_INLINECODE GL_TRIANGLE_STRIP_ADJACENCY) and$(D_INLINECODE GL_TRIANGLES_ADJACENCY) are available only if the GL version is 3.2 or greater.) | |
| * | |
| * Params: | |
| * mode = $(P Specifies what kind of primitives to render. Symbolic constants$(D_INLINECODE GL_POINTS),$(D_INLINECODE GL_LINE_STRIP),$(D_INLINECODE GL_LINE_LOOP),$(D_INLINECODE GL_LINES),$(D_INLINECODE GL_LINE_STRIP_ADJACENCY),$(D_INLINECODE GL_LINES_ADJACENCY),$(D_INLINECODE GL_TRIANGLE_STRIP),$(D_INLINECODE GL_TRIANGLE_FAN),$(D_INLINECODE GL_TRIANGLES),$(D_INLINECODE GL_TRIANGLE_STRIP_ADJACENCY),$(D_INLINECODE GL_TRIANGLES_ADJACENCY) and$(D_INLINECODE GL_PATCHES) are accepted.) | |
| * first = $(P Points to an array of starting indices in the enabled arrays.) | |
| * count = $(P Points to an array of the number of indices to be rendered.) | |
| * drawcount = $(P Specifies the size of the first and count) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDrawElements),$(D_INLINECODE glDrawRangeElements)) | |
| */ | |
| extern(C) void function(GLenum mode, const GLint* first, const GLsizei* count, GLsizei drawcount) @system @nogc nothrow glMultiDrawArrays; | |
| /** | |
| * glMultiDrawArraysIndirect: man4/glMultiDrawArraysIndirect.xml | |
| * | |
| * $(P $(D_INLINECODE glMultiDrawArraysIndirect) specifies multiple geometric primitives with very few subroutine calls.$(D_INLINECODE glMultiDrawArraysIndirect) behaves similarly to a multitude of calls to$(D_INLINECODE glDrawArraysInstancedBaseInstance), execept that the parameters to each call to$(D_INLINECODE glDrawArraysInstancedBaseInstance) are stored in an array in memory at the address given by$(D_INLINECODE indirect), separated by the stride, in basic machine units, specified by$(D_INLINECODE stride). If$(D_INLINECODE stride) is zero, then the array is assumed to be tightly packed in memory.)$(P The parameters addressed by$(D_INLINECODE indirect) are packed into an array of structures, each element of which takes the form (in C):$(D_INLINECODE typedef struct { uint count; uint instanceCount; uint first; uint baseInstance; } DrawArraysIndirectCommand;))$(P A single call to$(D_INLINECODE glMultiDrawArraysIndirect) is equivalent, assuming no errors are generated to:$(D_INLINECODE GLsizei n; for (n = 0; n < drawcount; n++) { const DrawArraysIndirectCommand *cmd; if (stride != 0) { cmd = (const DrawArraysIndirectCommand *)((uintptr)indirect + n * stride); } else { cmd = (const DrawArraysIndirectCommand *)indirect + n; } glDrawArraysInstancedBaseInstance(mode, cmd->first, cmd->count, cmd->instanceCount, cmd->baseInstance); }))$(P If a buffer is bound to the$(D_INLINECODE GL_DRAW_INDIRECT_BUFFER) binding at the time of a call to$(D_INLINECODE glMultiDrawArraysIndirect),$(D_INLINECODE indirect) is interpreted as an offset, in basic machine units, into that buffer and the parameter data is read from the buffer rather than from client memory.)$(P In contrast to$(D_INLINECODE glDrawArraysInstancedBaseInstance), the$(D_INLINECODE first) member of the parameter structure is unsigned, and out-of-range indices do not generate an error.)$(P Vertex attributes that are modified by$(D_INLINECODE glMultiDrawArraysIndirect) have an unspecified value after$(D_INLINECODE glMultiDrawArraysIndirect) returns. Attributes that aren't modified remain well defined.) | |
| * | |
| * $(P The$(D_INLINECODE baseInstance) member of the$(D_INLINECODE DrawArraysIndirectCommand) structure is defined only if the GL version is 4.2 or greater. For versions of the GL less than 4.2, this parameter is present but is reserved and should be set to zero. On earlier versions of the GL, behavior is undefined if it is non-zero.)$(P $(D_INLINECODE glMultiDrawArraysIndirect) is available only if the GL version is 4.3 or greater.) | |
| * | |
| * Params: | |
| * mode = $(P Specifies what kind of primitives to render. Symbolic constants$(D_INLINECODE GL_POINTS),$(D_INLINECODE GL_LINE_STRIP),$(D_INLINECODE GL_LINE_LOOP),$(D_INLINECODE GL_LINES),$(D_INLINECODE GL_LINE_STRIP_ADJACENCY),$(D_INLINECODE GL_LINES_ADJACENCY),$(D_INLINECODE GL_TRIANGLE_STRIP),$(D_INLINECODE GL_TRIANGLE_FAN),$(D_INLINECODE GL_TRIANGLES),$(D_INLINECODE GL_TRIANGLE_STRIP_ADJACENCY),$(D_INLINECODE GL_TRIANGLES_ADJACENCY), and$(D_INLINECODE GL_PATCHES) are accepted.) | |
| * indirect = $(P Specifies the address of an array of structures containing the draw parameters.) | |
| * drawcount = $(P Specifies the the number of elements in the array of draw parameter structures.) | |
| * stride = $(P Specifies the distance in basic machine units between elements of the draw parameter array.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2012-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDrawArrays),$(D_INLINECODE glDrawArraysInstanced),$(D_INLINECODE glDrawElements),$(D_INLINECODE glDrawRangeElements),$(D_INLINECODE glDrawArraysIndirect),$(D_INLINECODE glMultiDrawElementsIndirect)) | |
| */ | |
| extern(C) void function(GLenum mode, const void* indirect, GLsizei drawcount, GLsizei stride) @system @nogc nothrow glMultiDrawArraysIndirect; | |
| /** | |
| * glMultiDrawElements: man4/glMultiDrawElements.xml | |
| * | |
| * $(P $(D_INLINECODE glMultiDrawElements) specifies multiple sets of geometric primitives with very few subroutine calls. Instead of calling a GL function to pass each individual vertex, normal, texture coordinate, edge flag, or color, you can prespecify separate arrays of vertices, normals, and so on, and use them to construct a sequence of primitives with a single call to$(D_INLINECODE glMultiDrawElements).)$(P $(D_INLINECODE glMultiDrawElements) is identical in operation to$(D_INLINECODE glDrawElements) except that$(D_INLINECODE drawcount) separate lists of elements are specified.)$(P Vertex attributes that are modified by$(D_INLINECODE glMultiDrawElements) have an unspecified value after$(D_INLINECODE glMultiDrawElements) returns. Attributes that aren't modified maintain their previous values.) | |
| * | |
| * $(P $(D_INLINECODE GL_LINE_STRIP_ADJACENCY),$(D_INLINECODE GL_LINES_ADJACENCY),$(D_INLINECODE GL_TRIANGLE_STRIP_ADJACENCY) and$(D_INLINECODE GL_TRIANGLES_ADJACENCY) are available only if the GL version is 3.2 or greater.) | |
| * | |
| * Params: | |
| * mode = $(P Specifies what kind of primitives to render. Symbolic constants$(D_INLINECODE GL_POINTS),$(D_INLINECODE GL_LINE_STRIP),$(D_INLINECODE GL_LINE_LOOP),$(D_INLINECODE GL_LINES),$(D_INLINECODE GL_LINE_STRIP_ADJACENCY),$(D_INLINECODE GL_LINES_ADJACENCY),$(D_INLINECODE GL_TRIANGLE_STRIP),$(D_INLINECODE GL_TRIANGLE_FAN),$(D_INLINECODE GL_TRIANGLES),$(D_INLINECODE GL_TRIANGLE_STRIP_ADJACENCY),$(D_INLINECODE GL_TRIANGLES_ADJACENCY) and$(D_INLINECODE GL_PATCHES) are accepted.) | |
| * count = $(P Points to an array of the elements counts.) | |
| * type = $(P Specifies the type of the values in$(D_INLINECODE indices). Must be one of$(D_INLINECODE GL_UNSIGNED_BYTE),$(D_INLINECODE GL_UNSIGNED_SHORT), or$(D_INLINECODE GL_UNSIGNED_INT).) | |
| * indices = $(P Specifies a pointer to the location where the indices are stored.) | |
| * drawcount = $(P Specifies the size of the$(D_INLINECODE count) and$(D_INLINECODE indices) arrays.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDrawArrays),$(D_INLINECODE glDrawRangeElements)) | |
| */ | |
| extern(C) void function(GLenum mode, const GLsizei* count, GLenum type, const(const(GLvoid*)*) indices, GLsizei drawcount) @system @nogc nothrow glMultiDrawElements; | |
| /** | |
| * glMultiDrawElementsBaseVertex: man4/glMultiDrawElementsBaseVertex.xml | |
| * | |
| * $(P $(D_INLINECODE glMultiDrawElementsBaseVertex) behaves identically to$(D_INLINECODE glDrawElementsBaseVertex), except that$(D_INLINECODE drawcount) separate lists of elements are specifried instead.)$(P It has the same effect as:$(D_INLINECODE for (int i = 0; i <$(D_INLINECODE drawcount); i++) if ($(D_INLINECODE count) [i] > 0) glDrawElementsBaseVertex($(D_INLINECODE mode),$(D_INLINECODE count) [i],$(D_INLINECODE type),$(D_INLINECODE indices[i]),$(D_INLINECODE basevertex[i]) );)) | |
| * | |
| * $(P $(D_INLINECODE glMultiDrawElementsBaseVertex) is available only if the GL version is 3.1 or greater.)$(P $(D_INLINECODE GL_LINE_STRIP_ADJACENCY),$(D_INLINECODE GL_LINES_ADJACENCY),$(D_INLINECODE GL_TRIANGLE_STRIP_ADJACENCY) and$(D_INLINECODE GL_TRIANGLES_ADJACENCY) are available only if the GL version is 3.2 or greater.) | |
| * | |
| * Params: | |
| * mode = $(P Specifies what kind of primitives to render. Symbolic constants$(D_INLINECODE GL_POINTS),$(D_INLINECODE GL_LINE_STRIP),$(D_INLINECODE GL_LINE_LOOP),$(D_INLINECODE GL_LINES),$(D_INLINECODE GL_LINE_STRIP_ADJACENCY),$(D_INLINECODE GL_LINES_ADJACENCY),$(D_INLINECODE GL_TRIANGLE_STRIP),$(D_INLINECODE GL_TRIANGLE_FAN),$(D_INLINECODE GL_TRIANGLES),$(D_INLINECODE GL_TRIANGLE_STRIP_ADJACENCY),$(D_INLINECODE GL_TRIANGLES_ADJACENCY) and$(D_INLINECODE GL_PATCHES) are accepted.) | |
| * count = $(P Points to an array of the elements counts.) | |
| * type = $(P Specifies the type of the values in$(D_INLINECODE indices). Must be one of$(D_INLINECODE GL_UNSIGNED_BYTE),$(D_INLINECODE GL_UNSIGNED_SHORT), or$(D_INLINECODE GL_UNSIGNED_INT).) | |
| * indices = $(P Specifies a pointer to the location where the indices are stored.) | |
| * drawcount = $(P Specifies the size of the$(D_INLINECODE count),$(D_INLINECODE indices) and$(D_INLINECODE basevertex) arrays.) | |
| * basevertex = $(P Specifies a pointer to the location where the base vertices are stored.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glMultiDrawElements),$(D_INLINECODE glDrawElementsBaseVertex),$(D_INLINECODE glDrawArrays),$(D_INLINECODE glVertexAttribPointer)) | |
| */ | |
| extern(C) void function(GLenum mode, const GLsizei* count, GLenum type, const(const(GLvoid*)*) indices, GLsizei drawcount, const GLint* basevertex) @system @nogc nothrow glMultiDrawElementsBaseVertex; | |
| /** | |
| * glMultiDrawElementsIndirect: man4/glMultiDrawElementsIndirect.xml | |
| * | |
| * $(P $(D_INLINECODE glMultiDrawElementsIndirect) specifies multiple indexed geometric primitives with very few subroutine calls.$(D_INLINECODE glMultiDrawElementsIndirect) behaves similarly to a multitude of calls to$(D_INLINECODE glDrawElementsInstancedBaseVertexBaseInstance), execpt that the parameters to$(D_INLINECODE glDrawElementsInstancedBaseVertexBaseInstance) are stored in an array in memory at the address given by$(D_INLINECODE indirect), separated by the stride, in basic machine units, specified by$(D_INLINECODE stride). If$(D_INLINECODE stride) is zero, then the array is assumed to be tightly packed in memory.)$(P The parameters addressed by$(D_INLINECODE indirect) are packed into a structure that takes the form (in C):$(D_INLINECODE typedef struct { uint count; uint instanceCount; uint firstIndex; uint baseVertex; uint baseInstance; } DrawElementsIndirectCommand;))$(P A single call to$(D_INLINECODE glMultiDrawElementsIndirect) is equivalent, assuming no errors are generated to:$(D_INLINECODE GLsizei n; for (n = 0; n < drawcount; n++) { const DrawElementsIndirectCommand *cmd; if (stride != 0) { cmd = (const DrawElementsIndirectCommand *)((uintptr)indirect + n * stride); } else { cmd = (const DrawElementsIndirectCommand *)indirect + n; } glDrawElementsInstancedBaseVertexBaseInstance(mode, cmd->count, type, cmd->firstIndex + size-of-type, cmd->instanceCount, cmd->baseVertex, cmd->baseInstance); }))$(P If a buffer is bound to the$(D_INLINECODE GL_DRAW_INDIRECT_BUFFER) binding at the time of a call to$(D_INLINECODE glDrawElementsIndirect),$(D_INLINECODE indirect) is interpreted as an offset, in basic machine units, into that buffer and the parameter data is read from the buffer rather than from client memory.)$(P Note that indices stored in client memory are not supported. If no buffer is bound to the$(D_INLINECODE GL_ELEMENT_ARRAY_BUFFER) binding, an error will be generated.)$(P The results of the operation are undefined if the$(D_INLINECODE reservedMustBeZero) member of the parameter structure is non-zero. However, no error is generated in this case.)$(P Vertex attributes that are modified by$(D_INLINECODE glDrawElementsIndirect) have an unspecified value after$(D_INLINECODE glDrawElementsIndirect) returns. Attributes that aren't modified remain well defined.) | |
| * | |
| * $(P The$(D_INLINECODE baseInstance) member of the$(D_INLINECODE DrawElementsIndirectCommand) structure is defined only if the GL version is 4.2 or greater. For versions of the GL less than 4.2, this parameter is present but is reserved and should be set to zero. On earlier versions of the GL, behavior is undefined if it is non-zero.) | |
| * | |
| * Params: | |
| * mode = $(P Specifies what kind of primitives to render. Symbolic constants$(D_INLINECODE GL_POINTS),$(D_INLINECODE GL_LINE_STRIP),$(D_INLINECODE GL_LINE_LOOP),$(D_INLINECODE GL_LINES),$(D_INLINECODE GL_LINE_STRIP_ADJACENCY),$(D_INLINECODE GL_LINES_ADJACENCY),$(D_INLINECODE GL_TRIANGLE_STRIP),$(D_INLINECODE GL_TRIANGLE_FAN),$(D_INLINECODE GL_TRIANGLES),$(D_INLINECODE GL_TRIANGLE_STRIP_ADJACENCY),$(D_INLINECODE GL_TRIANGLES_ADJACENCY), and$(D_INLINECODE GL_PATCHES) are accepted.) | |
| * type = $(P Specifies the type of data in the buffer bound to the$(D_INLINECODE GL_ELEMENT_ARRAY_BUFFER) binding.) | |
| * indirect = $(P Specifies the address of a structure containing an array of draw parameters.) | |
| * drawcount = $(P Specifies the number of elements in the array addressed by$(D_INLINECODE indirect).) | |
| * stride = $(P Specifies the distance in basic machine units between elements of the draw parameter array.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDrawArrays),$(D_INLINECODE glDrawArraysInstanced),$(D_INLINECODE glDrawArraysIndirect),$(D_INLINECODE glDrawElements),$(D_INLINECODE glDrawRangeElements),$(D_INLINECODE glDrawElementsIndirect),$(D_INLINECODE glMultiDrawArraysIndirect)) | |
| */ | |
| extern(C) void function(GLenum mode, GLenum type, const void* indirect, GLsizei drawcount, GLsizei stride) @system @nogc nothrow glMultiDrawElementsIndirect; | |
| /** | |
| * glNamedFramebufferReadBuffer: man4/glReadBuffer.xml | |
| * | |
| * $(P $(D_INLINECODE glReadBuffer) specifies a color buffer as the source for subsequent$(D_INLINECODE glReadPixels),$(D_INLINECODE glCopyTexImage1D),$(D_INLINECODE glCopyTexImage2D),$(D_INLINECODE glCopyTexSubImage1D),$(D_INLINECODE glCopyTexSubImage2D), and$(D_INLINECODE glCopyTexSubImage3D) commands.$(D_INLINECODE mode) accepts one of twelve or more predefined values. In a fully configured system,$(D_INLINECODE GL_FRONT),$(D_INLINECODE GL_LEFT), and$(D_INLINECODE GL_FRONT_LEFT) all name the front left buffer,$(D_INLINECODE GL_FRONT_RIGHT) and$(D_INLINECODE GL_RIGHT) name the front right buffer, and$(D_INLINECODE GL_BACK_LEFT) and$(D_INLINECODE GL_BACK) name the back left buffer. Further more, the constants$(D_INLINECODE GL_COLOR_ATTACHMENT) may be used to indicate the<sup> th</sup> color attachment where ranges from zero to the value of$(D_INLINECODE GL_MAX_COLOR_ATTACHMENTS) minus one.)$(P Nonstereo double-buffered configurations have only a front left and a back left buffer. Single-buffered configurations have a front left and a front right buffer if stereo, and only a front left buffer if nonstereo. It is an error to specify a nonexistent buffer to$(D_INLINECODE glReadBuffer).)$(P $(D_INLINECODE mode) is initially$(D_INLINECODE GL_FRONT) in single-buffered configurations and$(D_INLINECODE GL_BACK) in double-buffered configurations.)$(P For$(D_INLINECODE glReadBuffer), the target framebuffer object is that bound to$(D_INLINECODE GL_READ_FRAMEBUFFER). For$(D_INLINECODE glNamedFramebufferReadBuffer),$(D_INLINECODE framebuffer) must either be zero or the name of the target framebuffer object. If$(D_INLINECODE framebuffer) is zero, then the default read framebuffer is affected.) | |
| * | |
| * Params: | |
| * framebuffer = $(P Specifies the name of the framebuffer object for$(D_INLINECODE glNamedFramebufferReadBuffer) function.) | |
| * mode = $(P Specifies a color buffer. Accepted values are$(D_INLINECODE GL_FRONT_LEFT),$(D_INLINECODE GL_FRONT_RIGHT),$(D_INLINECODE GL_BACK_LEFT),$(D_INLINECODE GL_BACK_RIGHT),$(D_INLINECODE GL_FRONT),$(D_INLINECODE GL_BACK),$(D_INLINECODE GL_LEFT),$(D_INLINECODE GL_RIGHT), and the constants$(D_INLINECODE GL_COLOR_ATTACHMENT).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2011-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glCopyTexImage1D),$(D_INLINECODE glCopyTexImage2D),$(D_INLINECODE glCopyTexSubImage1D),$(D_INLINECODE glCopyTexSubImage2D),$(D_INLINECODE glCopyTexSubImage3D),$(D_INLINECODE glDrawBuffer),$(D_INLINECODE glReadPixels)) | |
| */ | |
| extern(C) void function(GLenum mode) @system @nogc nothrow glReadBuffer; | |
| /// Ditto | |
| extern(C) void function(GLuint framebuffer, GLenum mode) @system @nogc nothrow glNamedFramebufferReadBuffer; | |
| /** | |
| * glNamedRenderbufferStorage: man4/glRenderbufferStorage.xml | |
| * | |
| * $(P $(D_INLINECODE glRenderbufferStorage) is equivalent to calling$(D_INLINECODE glRenderbufferStorageMultisample) with the$(D_INLINECODE samples) set to zero, and$(D_INLINECODE glNamedRenderbufferStorage) is equivalent to calling$(D_INLINECODE glNamedRenderbufferStorageMultisample) with the samples set to zero.)$(P For$(D_INLINECODE glRenderbufferStorage), the target of the operation, specified by$(D_INLINECODE target) must be$(D_INLINECODE GL_RENDERBUFFER). For$(D_INLINECODE glNamedRenderbufferStorage),$(D_INLINECODE renderbuffer) must be a name of an existing renderbuffer object.$(D_INLINECODE internalformat) specifies the internal format to be used for the renderbuffer object's storage and must be a color-renderable, depth-renderable, or stencil-renderable format.$(D_INLINECODE width) and$(D_INLINECODE height) are the dimensions, in pixels, of the renderbuffer. Both$(D_INLINECODE width) and$(D_INLINECODE height) must be less than or equal to the value of$(D_INLINECODE GL_MAX_RENDERBUFFER_SIZE).)$(P Upon success,$(D_INLINECODE glRenderbufferStorage) and$(D_INLINECODE glNamedRenderbufferStorage) delete any existing data store for the renderbuffer image and the contents of the data store after calling$(D_INLINECODE glRenderbufferStorage) are undefined.) | |
| * | |
| * Params: | |
| * target = $(P Specifies a binding target of the allocation for$(D_INLINECODE glRenderbufferStorage) function. Must be$(D_INLINECODE GL_RENDERBUFFER).) | |
| * renderbuffer = $(P Specifies the name of the renderbuffer object for$(D_INLINECODE glNamedRenderbufferStorage) function.) | |
| * internalformat = $(P Specifies the internal format to use for the renderbuffer object's image.) | |
| * width = $(P Specifies the width of the renderbuffer, in pixels.) | |
| * height = $(P Specifies the height of the renderbuffer, in pixels.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenRenderbuffers),$(D_INLINECODE glBindRenderbuffer),$(D_INLINECODE glNamedRenderbufferStorageMultisample),$(D_INLINECODE glRenderbufferStorageMultisample),$(D_INLINECODE glFramebufferRenderbuffer),$(D_INLINECODE glDeleteRenderbuffers)) | |
| */ | |
| extern(C) void function(GLenum target, GLenum internalformat, GLsizei width, GLsizei height) @system @nogc nothrow glRenderbufferStorage; | |
| /// Ditto | |
| extern(C) void function(GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height) @system @nogc nothrow glNamedRenderbufferStorage; | |
| /** | |
| * glNamedRenderbufferStorageMultisample: man4/glRenderbufferStorageMultisample.xml | |
| * | |
| * $(P $(D_INLINECODE glRenderbufferStorageMultisample) and$(D_INLINECODE glNamedRenderbufferStorageMultisample) establish the data storage, format, dimensions and number of samples of a renderbuffer object's image.)$(P For$(D_INLINECODE glRenderbufferStorageMultisample), the target of the operation, specified by$(D_INLINECODE target) must be$(D_INLINECODE GL_RENDERBUFFER). For$(D_INLINECODE glNamedRenderbufferStorageMultisample),$(D_INLINECODE renderbuffer) must be an ID of an existing renderbuffer object.$(D_INLINECODE internalformat) specifies the internal format to be used for the renderbuffer object's storage and must be a color-renderable, depth-renderable, or stencil-renderable format.$(D_INLINECODE width) and$(D_INLINECODE height) are the dimensions, in pixels, of the renderbuffer. Both$(D_INLINECODE width) and$(D_INLINECODE height) must be less than or equal to the value of$(D_INLINECODE GL_MAX_RENDERBUFFER_SIZE).$(D_INLINECODE samples) specifies the number of samples to be used for the renderbuffer object's image, and must be less than or equal to the value of$(D_INLINECODE GL_MAX_SAMPLES). If$(D_INLINECODE internalformat) is a signed or unsigned integer format then$(D_INLINECODE samples) must be less than or equal to the value of$(D_INLINECODE GL_MAX_INTEGER_SAMPLES).)$(P Upon success,$(D_INLINECODE glRenderbufferStorageMultisample) and$(D_INLINECODE glNamedRenderbufferStorageMultisample) delete any existing data store for the renderbuffer image and the contents of the data store after calling either of the functions are undefined.) | |
| * | |
| * Params: | |
| * target = $(P Specifies a binding target of the allocation for$(D_INLINECODE glRenderbufferStorageMultisample) function. Must be$(D_INLINECODE GL_RENDERBUFFER).) | |
| * renderbuffer = $(P Specifies the name of the renderbuffer object for$(D_INLINECODE glNamedRenderbufferStorageMultisample) function.) | |
| * samples = $(P Specifies the number of samples to be used for the renderbuffer object's storage.) | |
| * internalformat = $(P Specifies the internal format to use for the renderbuffer object's image.) | |
| * width = $(P Specifies the width of the renderbuffer, in pixels.) | |
| * height = $(P Specifies the height of the renderbuffer, in pixels.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenRenderbuffers),$(D_INLINECODE glBindRenderbuffer),$(D_INLINECODE glNamedRenderbufferStorage),$(D_INLINECODE glRenderbufferStorage),$(D_INLINECODE glFramebufferRenderbuffer),$(D_INLINECODE glDeleteRenderbuffers)) | |
| */ | |
| extern(C) void function(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) @system @nogc nothrow glRenderbufferStorageMultisample; | |
| /// Ditto | |
| extern(C) void function(GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) @system @nogc nothrow glNamedRenderbufferStorageMultisample; | |
| /** | |
| * glObjectLabel: man4/glObjectLabel.xml | |
| * | |
| * $(P $(D_INLINECODE glObjectLabel) labels the object identified by$(D_INLINECODE name) within the namespace given by$(D_INLINECODE identifier).$(D_INLINECODE identifier) must be one of$(D_INLINECODE GL_BUFFER),$(D_INLINECODE GL_SHADER),$(D_INLINECODE GL_PROGRAM),$(D_INLINECODE GL_VERTEX_ARRAY),$(D_INLINECODE GL_QUERY),$(D_INLINECODE GL_PROGRAM_PIPELINE),$(D_INLINECODE GL_TRANSFORM_FEEDBACK),$(D_INLINECODE GL_SAMPLER),$(D_INLINECODE GL_TEXTURE),$(D_INLINECODE GL_RENDERBUFFER),$(D_INLINECODE GL_FRAMEBUFFER), to indicate the namespace containing the names of buffers, shaders, programs, vertex array objects, query objects, program pipelines, transform feedback objects, samplers, textures, renderbuffers and frame buffers, respectively.)$(P $(D_INLINECODE label) is the address of a string that will be used to label an object.$(D_INLINECODE length) contains the number of characters in$(D_INLINECODE label). If$(D_INLINECODE length) is negative, it is implied that$(D_INLINECODE label) contains a null-terminated string. If$(D_INLINECODE label) is NULL, any debug label is effectively removed from the object.) | |
| * | |
| * Params: | |
| * identifier = $(P The namespace from which the name of the object is allocated.) | |
| * name = $(P The name of the object to label.) | |
| * length = $(P The length of the label to be used for the object.) | |
| * label = $(P The address of a string containing the label to assign to the object.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2013-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glPushDebugGroup),$(D_INLINECODE glPopDebugGroup),$(D_INLINECODE glObjectPtrLabel).) | |
| */ | |
| extern(C) void function(GLenum identifier, GLuint name, GLsizei length, const char* label) @system @nogc nothrow glObjectLabel; | |
| /** | |
| * glObjectPtrLabel: man4/glObjectPtrLabel.xml | |
| * | |
| * $(P $(D_INLINECODE glObjectPtrLabel) labels the sync object identified by$(D_INLINECODE ptr).)$(P $(D_INLINECODE label) is the address of a string that will be used to label the object.$(D_INLINECODE length) contains the number of characters in$(D_INLINECODE label). If$(D_INLINECODE length) is negative, it is implied that$(D_INLINECODE label) contains a null-terminated string. If$(D_INLINECODE label) is NULL, any debug label is effectively removed from the object.) | |
| * | |
| * Params: | |
| * ptr = $(P A pointer identifying a sync object.) | |
| * length = $(P The length of the label to be used for the object.) | |
| * label = $(P The address of a string containing the label to assign to the object.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2013-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glPushDebugGroup),$(D_INLINECODE glPopDebugGroup),$(D_INLINECODE glObjectLabel).) | |
| */ | |
| extern(C) void function(void* ptr, GLsizei length, const char* label) @system @nogc nothrow glObjectPtrLabel; | |
| /** | |
| * glPatchParameter: man4/glPatchParameter.xml | |
| * | |
| * $(P $(D_INLINECODE glPatchParameter) specifies the parameters that will be used for patch primitives.$(D_INLINECODE pname) specifies the parameter to modify and must be either$(D_INLINECODE GL_PATCH_VERTICES),$(D_INLINECODE GL_PATCH_DEFAULT_OUTER_LEVEL) or$(D_INLINECODE GL_PATCH_DEFAULT_INNER_LEVEL). For$(D_INLINECODE glPatchParameteri),$(D_INLINECODE value) specifies the new value for the parameter specified by$(D_INLINECODE pname). For$(D_INLINECODE glPatchParameterfv),$(D_INLINECODE values) specifies the address of an array containing the new values for the parameter specified by$(D_INLINECODE pname).)$(P When$(D_INLINECODE pname) is$(D_INLINECODE GL_PATCH_VERTICES),$(D_INLINECODE value) specifies the number of vertices that will be used to make up a single patch primitive. Patch primitives are consumed by the tessellation control shader (if present) and subsequently used for tessellation. When primitives are specified using$(D_INLINECODE glDrawArrays) or a similar function, each patch will be made from$(D_INLINECODE parameter) control points, each represented by a vertex taken from the enabeld vertex arrays.$(D_INLINECODE parameter) must be greater than zero, and less than or equal to the value of$(D_INLINECODE GL_MAX_PATCH_VERTICES).)$(P When$(D_INLINECODE pname) is$(D_INLINECODE GL_PATCH_DEFAULT_OUTER_LEVEL) or$(D_INLINECODE GL_PATCH_DEFAULT_INNER_LEVEL),$(D_INLINECODE values) contains the address of an array contiaining the default outer or inner tessellation levels, respectively, to be used when no tessellation control shader is present.) | |
| * | |
| * Params: | |
| * pname = $(P Specifies the name of the parameter to set. The symbolc constants$(D_INLINECODE GL_PATCH_VERTICES),$(D_INLINECODE GL_PATCH_DEFAULT_OUTER_LEVEL), and$(D_INLINECODE GL_PATCH_DEFAULT_INNER_LEVEL) are accepted.) | |
| * value = $(P Specifies the new value for the parameter given by$(D_INLINECODE pname).) | |
| * values = $(P Specifies the address of an array containing the new values for the parameter given by$(D_INLINECODE pname).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDrawArrays),$(D_INLINECODE glDrawArraysInstanced),$(D_INLINECODE glDrawElements),$(D_INLINECODE glDrawRangeElements),) | |
| */ | |
| extern(C) void function(GLenum pname, GLint value) @system @nogc nothrow glPatchParameteri; | |
| /** | |
| * glPauseTransformFeedback: man4/glPauseTransformFeedback.xml | |
| * | |
| * $(P $(D_INLINECODE glPauseTransformFeedback) pauses transform feedback operations on the currently active transform feedback object. When transform feedback operations are paused, transform feedback is still considered active and changing most transform feedback state related to the object results in an error. However, a new transform feedback object may be bound while transform feedback is paused.) | |
| * | |
| * Params: | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenTransformFeedbacks),$(D_INLINECODE glBindTransformFeedback),$(D_INLINECODE glBeginTransformFeedback),$(D_INLINECODE glResumeTransformFeedback),$(D_INLINECODE glEndTransformFeedback),$(D_INLINECODE glDeleteTransformFeedbacks)) | |
| */ | |
| extern(C) void function() @system @nogc nothrow glPauseTransformFeedback; | |
| /** | |
| * glPixelStore: man4/glPixelStore.xml | |
| * | |
| * $(P $(D_INLINECODE glPixelStore) sets pixel storage modes that affect the operation of subsequent$(D_INLINECODE glReadPixels) as well as the unpacking of texture patterns (see$(D_INLINECODE glTexImage1D),$(D_INLINECODE glTexImage2D),$(D_INLINECODE glTexImage3D),$(D_INLINECODE glTexSubImage1D),$(D_INLINECODE glTexSubImage2D),$(D_INLINECODE glTexSubImage3D) ),$(D_INLINECODE glCompressedTexImage1D),$(D_INLINECODE glCompressedTexImage2D),$(D_INLINECODE glCompressedTexImage3D),$(D_INLINECODE glCompressedTexSubImage1D),$(D_INLINECODE glCompressedTexSubImage2D) or$(D_INLINECODE glCompressedTexSubImage1D).)$(P $(D_INLINECODE pname) is a symbolic constant indicating the parameter to be set, and$(D_INLINECODE param) is the new value. Six of the twelve storage parameters affect how pixel data is returned to client memory. They are as follows:) variablelist$(P The other six of the twelve storage parameters affect how pixel data is read from client memory. These values are significant for$(D_INLINECODE glTexImage1D),$(D_INLINECODE glTexImage2D),$(D_INLINECODE glTexImage3D),$(D_INLINECODE glTexSubImage1D),$(D_INLINECODE glTexSubImage2D), and$(D_INLINECODE glTexSubImage3D))$(P They are as follows:) variablelist$(P The following table gives the type, initial value, and range of valid values for each storage parameter that can be set with$(D_INLINECODE glPixelStore).)$(B $(D_INLINECODE pname))$(B Type)$(B Initial Value)$(B Valid Range)$(D_INLINECODE GL_PACK_SWAP_BYTES) boolean false true or false$(D_INLINECODE GL_PACK_LSB_FIRST) boolean false true or false$(D_INLINECODE GL_PACK_ROW_LENGTH) integer 0 0 ∞$(D_INLINECODE GL_PACK_IMAGE_HEIGHT) integer 0 0 ∞$(D_INLINECODE GL_PACK_SKIP_ROWS) integer 0 0 ∞$(D_INLINECODE GL_PACK_SKIP_PIXELS) integer 0 0 ∞$(D_INLINECODE GL_PACK_SKIP_IMAGES) integer 0 0 ∞$(D_INLINECODE GL_PACK_ALIGNMENT) integer 4 1, 2, 4, or 8$(D_INLINECODE GL_UNPACK_SWAP_BYTES) boolean false true or false$(D_INLINECODE GL_UNPACK_LSB_FIRST) boolean false true or false$(D_INLINECODE GL_UNPACK_ROW_LENGTH) integer 0 0 ∞$(D_INLINECODE GL_UNPACK_IMAGE_HEIGHT) integer 0 0 ∞$(D_INLINECODE GL_UNPACK_SKIP_ROWS) integer 0 0 ∞$(D_INLINECODE GL_UNPACK_SKIP_PIXELS) integer 0 0 ∞$(D_INLINECODE GL_UNPACK_SKIP_IMAGES) integer 0 0 ∞$(D_INLINECODE GL_UNPACK_ALIGNMENT) integer 4 1, 2, 4, or 8$(P $(D_INLINECODE glPixelStoref) can be used to set any pixel store parameter. If the parameter type is boolean, then if$(D_INLINECODE param) is 0, the parameter is false; otherwise it is set to true. If$(D_INLINECODE pname) is a integer type parameter,$(D_INLINECODE param) is rounded to the nearest integer.)$(P Likewise,$(D_INLINECODE glPixelStorei) can also be used to set any of the pixel store parameters. Boolean parameters are set to false if$(D_INLINECODE param) is 0 and true otherwise.) | |
| * | |
| * Params: | |
| * pname = $(P Specifies the symbolic name of the parameter to be set. Six values affect the packing of pixel data into memory:$(D_INLINECODE GL_PACK_SWAP_BYTES),$(D_INLINECODE GL_PACK_LSB_FIRST),$(D_INLINECODE GL_PACK_ROW_LENGTH),$(D_INLINECODE GL_PACK_IMAGE_HEIGHT),$(D_INLINECODE GL_PACK_SKIP_PIXELS),$(D_INLINECODE GL_PACK_SKIP_ROWS),$(D_INLINECODE GL_PACK_SKIP_IMAGES), and$(D_INLINECODE GL_PACK_ALIGNMENT). Six more affect the unpacking of pixel data memory:$(D_INLINECODE GL_UNPACK_SWAP_BYTES),$(D_INLINECODE GL_UNPACK_LSB_FIRST),$(D_INLINECODE GL_UNPACK_ROW_LENGTH),$(D_INLINECODE GL_UNPACK_IMAGE_HEIGHT),$(D_INLINECODE GL_UNPACK_SKIP_PIXELS),$(D_INLINECODE GL_UNPACK_SKIP_ROWS),$(D_INLINECODE GL_UNPACK_SKIP_IMAGES), and$(D_INLINECODE GL_UNPACK_ALIGNMENT).) | |
| * param = $(P Specifies the value that$(D_INLINECODE pname) is set to.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glReadPixels),$(D_INLINECODE glTexImage1D),$(D_INLINECODE glTexImage2D),$(D_INLINECODE glTexImage3D),$(D_INLINECODE glTexSubImage1D),$(D_INLINECODE glTexSubImage2D),$(D_INLINECODE glTexSubImage3D),$(D_INLINECODE glCompressedTexImage1D),$(D_INLINECODE glCompressedTexImage2D),$(D_INLINECODE glCompressedTexImage3D),$(D_INLINECODE glCompressedTexSubImage1D),$(D_INLINECODE glCompressedTexSubImage2D),$(D_INLINECODE glCompressedTexSubImage1D).) | |
| */ | |
| extern(C) void function(GLenum pname, GLfloat param) @system @nogc nothrow glPixelStoref; | |
| /** | |
| * glPointParameter: man4/glPointParameter.xml | |
| * | |
| * $(P The following values are accepted for$(D_INLINECODE pname) :) variablelist | |
| * | |
| * Params: | |
| * pname = $(P Specifies a single-valued point parameter.$(D_INLINECODE GL_POINT_FADE_THRESHOLD_SIZE), and$(D_INLINECODE GL_POINT_SPRITE_COORD_ORIGIN) are accepted.) | |
| * param = $(P For$(D_INLINECODE glPointParameterf) and$(D_INLINECODE glPointParameteri), specifies the value that$(D_INLINECODE pname) will be set to.) | |
| * params = $(P For$(D_INLINECODE glPointParameterfv) and$(D_INLINECODE glPointParameteriv), specifies a pointer to an array where the value or values to be assigned to$(D_INLINECODE pname) are stored.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glPointSize)) | |
| */ | |
| extern(C) void function(GLenum pname, GLfloat param) @system @nogc nothrow glPointParameterf; | |
| /** | |
| * glPointSize: man4/glPointSize.xml | |
| * | |
| * $(P $(D_INLINECODE glPointSize) specifies the rasterized diameter of points. If point size mode is disabled (see$(D_INLINECODE glEnable) with parameter$(D_INLINECODE GL_PROGRAM_POINT_SIZE) ), this value will be used to rasterize points. Otherwise, the value written to the shading language built-in variable$(D_INLINECODE gl_PointSize) will be used.) | |
| * | |
| * $(P The point size specified by$(D_INLINECODE glPointSize) is always returned when$(D_INLINECODE GL_POINT_SIZE) is queried. Clamping and rounding for points have no effect on the specified value.) | |
| * | |
| * Params: | |
| * size = $(P Specifies the diameter of rasterized points. The initial value is 1.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glEnable),$(D_INLINECODE glPointParameter)) | |
| */ | |
| extern(C) void function(GLfloat size) @system @nogc nothrow glPointSize; | |
| /** | |
| * glPolygonMode: man4/glPolygonMode.xml | |
| * | |
| * $(P $(D_INLINECODE glPolygonMode) controls the interpretation of polygons for rasterization.$(D_INLINECODE face) describes which polygons$(D_INLINECODE mode) applies to: both front and back-facing polygons ($(D_INLINECODE GL_FRONT_AND_BACK) ). The polygon mode affects only the final rasterization of polygons. In particular, a polygon's vertices are lit and the polygon is clipped and possibly culled before these modes are applied.)$(P Three modes are defined and can be specified in$(D_INLINECODE mode) :) variablelist | |
| * | |
| * $(P Vertices are marked as boundary or nonboundary with an edge flag. Edge flags are generated internally by the GL when it decomposes triangle stips and fans.) | |
| * | |
| * Params: | |
| * face = $(P Specifies the polygons that$(D_INLINECODE mode) applies to. Must be$(D_INLINECODE GL_FRONT_AND_BACK) for front- and back-facing polygons.) | |
| * mode = $(P Specifies how polygons will be rasterized. Accepted values are$(D_INLINECODE GL_POINT),$(D_INLINECODE GL_LINE), and$(D_INLINECODE GL_FILL). The initial value is$(D_INLINECODE GL_FILL) for both front- and back-facing polygons.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glLineWidth),$(D_INLINECODE glPointSize)) | |
| */ | |
| extern(C) void function(GLenum face, GLenum mode) @system @nogc nothrow glPolygonMode; | |
| /** | |
| * glPolygonOffset: man4/glPolygonOffset.xml | |
| * | |
| * $(P When$(D_INLINECODE GL_POLYGON_OFFSET_FILL),$(D_INLINECODE GL_POLYGON_OFFSET_LINE), or$(D_INLINECODE GL_POLYGON_OFFSET_POINT) is enabled, each fragment's value will be offset after it is interpolated from the values of the appropriate vertices. The value of the offset is factor × DZ + r × units, where DZ is a measurement of the change in depth relative to the screen area of the polygon, and r is the smallest value that is guaranteed to produce a resolvable offset for a given implementation. The offset is added before the depth test is performed and before the value is written into the depth buffer.)$(P $(D_INLINECODE glPolygonOffset) is useful for rendering hidden-line images, for applying decals to surfaces, and for rendering solids with highlighted edges.) | |
| * | |
| * Params: | |
| * factor = $(P Specifies a scale factor that is used to create a variable depth offset for each polygon. The initial value is 0.) | |
| * units = $(P Is multiplied by an implementation-specific value to create a constant depth offset. The initial value is 0.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDepthFunc),$(D_INLINECODE glEnable),$(D_INLINECODE glGet),$(D_INLINECODE glIsEnabled)) | |
| */ | |
| extern(C) void function(GLfloat factor, GLfloat units) @system @nogc nothrow glPolygonOffset; | |
| /** | |
| * glPopDebugGroup: man4/glPopDebugGroup.xml | |
| * | |
| * $(P $(D_INLINECODE glPopDebugGroup) pops the active debug group. After popping a debug group, the GL will also generate a debug output message describing its cause based on the$(D_INLINECODE message) string, the source$(D_INLINECODE source), and an ID$(D_INLINECODE id) submitted to the corresponding$(D_INLINECODE glPushDebugGroup) command.$(D_INLINECODE GL_DEBUG_TYPE_PUSH_GROUP) and$(D_INLINECODE GL_DEBUG_TYPE_POP_GROUP) share a single namespace for message$(D_INLINECODE id).$(D_INLINECODE severity) has the value$(D_INLINECODE GL_DEBUG_SEVERITY_NOTIFICATION). The$(D_INLINECODE type) has the value$(D_INLINECODE GL_DEBUG_TYPE_POP_GROUP). Popping a debug group restores the debug output volume control of the parent debug group.) | |
| * | |
| * Params: | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2013-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glPushDebugGroup),$(D_INLINECODE glObjectLabel),$(D_INLINECODE glObjectPtrLabel).) | |
| */ | |
| extern(C) void function() @system @nogc nothrow glPopDebugGroup; | |
| /** | |
| * glPrimitiveRestartIndex: man4/glPrimitiveRestartIndex.xml | |
| * | |
| * $(P $(D_INLINECODE glPrimitiveRestartIndex) specifies a vertex array element that is treated specially when primitive restarting is enabled. This is known as the primitive restart index.)$(P When one of the$(D_INLINECODE Draw*) commands transfers a set of generic attribute array elements to the GL, if the index within the vertex arrays corresponding to that set is equal to the primitive restart index, then the GL does not process those elements as a vertex. Instead, it is as if the drawing command ended with the immediately preceding transfer, and another drawing command is immediately started with the same parameters, but only transferring the immediately following element through the end of the originally specified elements.)$(P When either$(D_INLINECODE glDrawElementsBaseVertex),$(D_INLINECODE glDrawElementsInstancedBaseVertex) or$(D_INLINECODE glMultiDrawElementsBaseVertex) is used, the primitive restart comparison occurs before the basevertex offset is added to the array index.) | |
| * | |
| * $(P $(D_INLINECODE glPrimitiveRestartIndex) is available only if the GL version is 3.1 or greater.) | |
| * | |
| * Params: | |
| * index = $(P Specifies the value to be interpreted as the primitive restart index.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glDrawArrays),$(D_INLINECODE glDrawElements),$(D_INLINECODE glDrawElementsBaseVertex),$(D_INLINECODE glDrawElementsInstancedBaseVertex)) | |
| */ | |
| extern(C) void function(GLuint index) @system @nogc nothrow glPrimitiveRestartIndex; | |
| /** | |
| * glProgramBinary: man4/glProgramBinary.xml | |
| * | |
| * $(P $(D_INLINECODE glProgramBinary) loads a program object with a program binary previously returned from$(D_INLINECODE glGetProgramBinary).$(D_INLINECODE binaryFormat) and$(D_INLINECODE binary) must be those returned by a previous call to$(D_INLINECODE glGetProgramBinary), and$(D_INLINECODE length) must be the length returned by$(D_INLINECODE glGetProgramBinary), or by$(D_INLINECODE glGetProgram) when called with$(D_INLINECODE pname) set to$(D_INLINECODE GL_PROGRAM_BINARY_LENGTH). If these conditions are not met, loading the program binary will fail and$(D_INLINECODE program) 's$(D_INLINECODE GL_LINK_STATUS) will be set to$(D_INLINECODE GL_FALSE).)$(P A program object's program binary is replaced by calls to$(D_INLINECODE glLinkProgram) or$(D_INLINECODE glProgramBinary). When linking success or failure is concerned,$(D_INLINECODE glProgramBinary) can be considered to perform an implicit linking operation.$(D_INLINECODE glLinkProgram) and$(D_INLINECODE glProgramBinary) both set the program object's$(D_INLINECODE GL_LINK_STATUS) to$(D_INLINECODE GL_TRUE) or$(D_INLINECODE GL_FALSE).)$(P A successful call to$(D_INLINECODE glProgramBinary) will reset all uniform variables to their initial values. The initial value is either the value of the variable's initializer as specified in the original shader source, or zero if no initializer was present. Additionally, all vertex shader input and fragment shader output assignments that were in effect when the program was linked before saving are restored with$(D_INLINECODE glProgramBinary) is called.) | |
| * | |
| * $(P A program binary may fail to load if the implementation determines that there has been a change in hardware or software configuration from when the program binary was produced such as having been compiled with an incompatible or outdated version of the compiler.) | |
| * | |
| * Params: | |
| * program = $(P Specifies the name of a program object into which to load a program binary.) | |
| * binaryFormat = $(P Specifies the format of the binary data in binary.) | |
| * binary = $(P Specifies the address an array containing the binary to be loaded into$(D_INLINECODE program).) | |
| * length = $(P Specifies the number of bytes contained in$(D_INLINECODE binary).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGetProgram),$(D_INLINECODE glGetProgramBinary)) | |
| */ | |
| extern(C) void function(GLuint program, GLenum binaryFormat, const void* binary, GLsizei length) @system @nogc nothrow glProgramBinary; | |
| /** | |
| * glProgramParameter: man4/glProgramParameter.xml | |
| * | |
| * $(P $(D_INLINECODE glProgramParameter) specifies a new value for the parameter nameed by$(D_INLINECODE pname) for the program object$(D_INLINECODE program).)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_PROGRAM_BINARY_RETRIEVABLE_HINT),$(D_INLINECODE value) should be$(D_INLINECODE GL_FALSE) or$(D_INLINECODE GL_TRUE) to indicate to the implementation the intention of the application to retrieve the program's binary representation with$(D_INLINECODE glGetProgramBinary). The implementation may use this information to store information that may be useful for a future query of the program's binary. It is recommended to set$(D_INLINECODE GL_PROGRAM_BINARY_RETRIEVABLE_HINT) for the program to$(D_INLINECODE GL_TRUE) before calling$(D_INLINECODE glLinkProgram), and using the program at run-time if the binary is to be retrieved later.)$(P If$(D_INLINECODE pname) is$(D_INLINECODE GL_PROGRAM_SEPARABLE),$(D_INLINECODE value) must be$(D_INLINECODE GL_TRUE) or$(D_INLINECODE GL_FALSE) and indicates whether$(D_INLINECODE program) can be bound to individual pipeline stages via$(D_INLINECODE glUseProgramStages). A program's$(D_INLINECODE GL_PROGRAM_SEPARABLE) parameter must be set to$(D_INLINECODE GL_TRUE)$(D_INLINECODE glLinkProgram) is called in order for it to be usable with a program pipeline object. The initial state of$(D_INLINECODE GL_PROGRAM_SEPARABLE) is$(D_INLINECODE GL_FALSE).) | |
| * | |
| * Params: | |
| * program = $(P Specifies the name of a program object whose parameter to modify.) | |
| * pname = $(P Specifies the name of the parameter to modify.) | |
| * value = $(P Specifies the new value of the parameter specified by$(D_INLINECODE pname) for$(D_INLINECODE program).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGetProgram),$(D_INLINECODE glGetProgramBinary),$(D_INLINECODE glProgramBinary)) | |
| */ | |
| extern(C) void function(GLuint program, GLenum pname, GLint value) @system @nogc nothrow glProgramParameteri; | |
| /** | |
| * glProgramUniform: man4/glProgramUniform.xml | |
| * | |
| * $(P $(D_INLINECODE glProgramUniform) modifies the value of a uniform variable or a uniform variable array. The location of the uniform variable to be modified is specified by$(D_INLINECODE location), which should be a value returned by$(D_INLINECODE glGetUniformLocation).$(D_INLINECODE glProgramUniform) operates on the program object specified by$(D_INLINECODE program).)$(P The commands$(D_INLINECODE glProgramUniform{1|2|3|4}{f|i|ui}) are used to change the value of the uniform variable specified by$(D_INLINECODE location) using the values passed as arguments. The number specified in the command should match the number of components in the data type of the specified uniform variable (e.g.,$(D_INLINECODE 1) for$(D_INLINECODE float),$(D_INLINECODE int),$(D_INLINECODE unsigned int),$(D_INLINECODE bool);$(D_INLINECODE 2) for$(D_INLINECODE vec2),$(D_INLINECODE ivec2),$(D_INLINECODE uvec2),$(D_INLINECODE bvec2), etc.). The suffix$(D_INLINECODE f) indicates that floating-point values are being passed; the suffix$(D_INLINECODE i) indicates that integer values are being passed; the suffix$(D_INLINECODE ui) indicates that unsigned integer values are being passed, and this type should also match the data type of the specified uniform variable. The$(D_INLINECODE i) variants of this function should be used to provide values for uniform variables defined as$(D_INLINECODE int),$(D_INLINECODE ivec2),$(D_INLINECODE ivec3),$(D_INLINECODE ivec4), or arrays of these. The$(D_INLINECODE ui) variants of this function should be used to provide values for uniform variables defined as$(D_INLINECODE unsigned int),$(D_INLINECODE uvec2),$(D_INLINECODE uvec3),$(D_INLINECODE uvec4), or arrays of these. The$(D_INLINECODE f) variants should be used to provide values for uniform variables of type$(D_INLINECODE float),$(D_INLINECODE vec2),$(D_INLINECODE vec3),$(D_INLINECODE vec4), or arrays of these. Either the$(D_INLINECODE i),$(D_INLINECODE ui) or$(D_INLINECODE f) variants may be used to provide values for uniform variables of type$(D_INLINECODE bool),$(D_INLINECODE bvec2),$(D_INLINECODE bvec3),$(D_INLINECODE bvec4), or arrays of these. The uniform variable will be set to$(D_INLINECODE false) if the input value is 0 or 0.0f, and it will be set to$(D_INLINECODE true) otherwise.)$(P All active uniform variables defined in a program object are initialized to 0 when the program object is linked successfully. They retain the values assigned to them by a call to$(D_INLINECODE glProgramUniform) until the next successful link operation occurs on the program object, when they are once again initialized to 0.)$(P The commands$(D_INLINECODE glProgramUniform{1|2|3|4}{f|i|ui}v) can be used to modify a single uniform variable or a uniform variable array. These commands pass a count and a pointer to the values to be loaded into a uniform variable or a uniform variable array. A count of 1 should be used if modifying the value of a single uniform variable, and a count of 1 or greater can be used to modify an entire array or part of an array. When loading elements starting at an arbitrary position in a uniform variable array, elements + - 1 in the array will be replaced with the new values. If$(D_INLINECODE m) +$(D_INLINECODE n) - 1 is larger than the size of the uniform variable array, values for all array elements beyond the end of the array will be ignored. The number specified in the name of the command indicates the number of components for each element in$(D_INLINECODE value), and it should match the number of components in the data type of the specified uniform variable (e.g.,$(D_INLINECODE 1) for$(D_INLINECODE float),$(D_INLINECODE int),$(D_INLINECODE bool);$(D_INLINECODE 2) for$(D_INLINECODE vec2),$(D_INLINECODE ivec2),$(D_INLINECODE bvec2), etc.). The data type specified in the name of the command must match the data type for the specified uniform variable as described previously for$(D_INLINECODE glProgramUniform{1|2|3|4}{f|i|ui}).)$(P For uniform variable arrays, each element of the array is considered to be of the type indicated in the name of the command (e.g.,$(D_INLINECODE glProgramUniform3f) or$(D_INLINECODE glProgramUniform3fv) can be used to load a uniform variable array of type vec3). The number of elements of the uniform variable array to be modified is specified by$(D_INLINECODE count))$(P The commands$(D_INLINECODE glProgramUniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv) are used to modify a matrix or an array of matrices. The numbers in the command name are interpreted as the dimensionality of the matrix. The number$(D_INLINECODE 2) indicates a 2 × 2 matrix (i.e., 4 values), the number$(D_INLINECODE 3) indicates a 3 × 3 matrix (i.e., 9 values), and the number$(D_INLINECODE 4) indicates a 4 × 4 matrix (i.e., 16 values). Non-square matrix dimensionality is explicit, with the first number representing the number of columns and the second number representing the number of rows. For example,$(D_INLINECODE 2x4) indicates a 2 × 4 matrix with 2 columns and 4 rows (i.e., 8 values). If$(D_INLINECODE transpose) is$(D_INLINECODE GL_FALSE), each matrix is assumed to be supplied in column major order. If$(D_INLINECODE transpose) is$(D_INLINECODE GL_TRUE), each matrix is assumed to be supplied in row major order. The$(D_INLINECODE count) argument indicates the number of matrices to be passed. A count of 1 should be used if modifying the value of a single matrix, and a count greater than 1 can be used to modify an array of matrices.) | |
| * | |
| * $(P $(D_INLINECODE glProgramUniform1i) and$(D_INLINECODE glProgramUniform1iv) 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$(D_INLINECODE GL_INVALID_OPERATION) error.)$(P If$(D_INLINECODE count) is greater than 1 and the indicated uniform variable is not an array, a$(D_INLINECODE GL_INVALID_OPERATION) error is generated and the specified uniform variable will remain unchanged.)$(P 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$(D_INLINECODE GL_INVALID_OPERATION) error will be generated and the specified uniform variable will remain unchanged.)$(P If$(D_INLINECODE location) is a value other than -1 and it does not represent a valid uniform variable location in within$(D_INLINECODE program), an error will be generated, and no changes will be made to the uniform variable storage of$(D_INLINECODE program). If$(D_INLINECODE location) is equal to -1, the data passed in will be silently ignored and the specified uniform variable will not be changed.) | |
| * | |
| * Params: | |
| * program = $(P Specifies the handle of the program containing the uniform variable to be modified.) | |
| * location = $(P Specifies the location of the uniform variable to be modified.) | |
| * count = $(P For the vector commands ($(D_INLINECODE glProgramUniform*v) ), 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.)$(P For the matrix commands ($(D_INLINECODE glProgramUniformMatrix*) ), specifies the number of matrices that are to be modified. This should be 1 if the targeted uniform variable is not an array of matrices, and 1 or more if it is an array of matrices.) | |
| * transpose = $(P For the matrix commands, specifies whether to transpose the matrix as the values are loaded into the uniform variable.) | |
| * v0, v1, v2, v3 = $(P For the scalar commands, specifies the new values to be used for the specified uniform variable.) | |
| * value = $(P For the vector and matrix commands, specifies a pointer to an array of$(D_INLINECODE count) values that will be used to update the specified uniform variable.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2003-2005 3Dlabs Inc. Ltd. Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glLinkProgram),$(D_INLINECODE glUseProgram)) | |
| */ | |
| extern(C) void function(GLuint program, GLint location, GLfloat v0) @system @nogc nothrow glProgramUniform1f; | |
| /// Ditto | |
| extern(C) void function(GLuint program, GLint location, GLfloat v0, GLfloat v1) @system @nogc nothrow glProgramUniform2f; | |
| /// Ditto | |
| extern(C) void function(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2) @system @nogc nothrow glProgramUniform3f; | |
| /// Ditto | |
| extern(C) void function(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3) @system @nogc nothrow glProgramUniform4f; | |
| /// Ditto | |
| extern(C) void function(GLuint program, GLint location, GLint v0) @system @nogc nothrow glProgramUniform1i; | |
| /// Ditto | |
| extern(C) void function(GLuint program, GLint location, GLint v0, GLint v1) @system @nogc nothrow glProgramUniform2i; | |
| /// Ditto | |
| extern(C) void function(GLuint program, GLint location, GLint v0, GLint v1, GLint v2) @system @nogc nothrow glProgramUniform3i; | |
| /// Ditto | |
| extern(C) void function(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3) @system @nogc nothrow glProgramUniform4i; | |
| /// Ditto | |
| extern(C) void function(GLuint program, GLint location, GLuint v0) @system @nogc nothrow glProgramUniform1ui; | |
| /// Ditto | |
| extern(C) void function(GLuint program, GLint location, GLint v0, GLuint v1) @system @nogc nothrow glProgramUniform2ui; | |
| /// Ditto | |
| extern(C) void function(GLuint program, GLint location, GLint v0, GLint v1, GLuint v2) @system @nogc nothrow glProgramUniform3ui; | |
| /// Ditto | |
| extern(C) void function(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLuint v3) @system @nogc nothrow glProgramUniform4ui; | |
| /// Ditto | |
| extern(C) void function(GLuint program, GLint location, GLsizei count, const GLfloat* value) @system @nogc nothrow glProgramUniform1fv; | |
| /// Ditto | |
| extern(C) void function(GLuint program, GLint location, GLsizei count, const GLfloat* value) @system @nogc nothrow glProgramUniform2fv; | |
| /// Ditto | |
| extern(C) void function(GLuint program, GLint location, GLsizei count, const GLfloat* value) @system @nogc nothrow glProgramUniform3fv; | |
| /// Ditto | |
| extern(C) void function(GLuint program, GLint location, GLsizei count, const GLfloat* value) @system @nogc nothrow glProgramUniform4fv; | |
| /// Ditto | |
| extern(C) void function(GLuint program, GLint location, GLsizei count, const GLint* value) @system @nogc nothrow glProgramUniform1iv; | |
| /// Ditto | |
| extern(C) void function(GLuint program, GLint location, GLsizei count, const GLint* value) @system @nogc nothrow glProgramUniform2iv; | |
| /// Ditto | |
| extern(C) void function(GLuint program, GLint location, GLsizei count, const GLint* value) @system @nogc nothrow glProgramUniform3iv; | |
| /// Ditto | |
| extern(C) void function(GLuint program, GLint location, GLsizei count, const GLint* value) @system @nogc nothrow glProgramUniform4iv; | |
| /// Ditto | |
| extern(C) void function(GLuint program, GLint location, GLsizei count, const GLuint* value) @system @nogc nothrow glProgramUniform1uiv; | |
| /// Ditto | |
| extern(C) void function(GLuint program, GLint location, GLsizei count, const GLuint* value) @system @nogc nothrow glProgramUniform2uiv; | |
| /// Ditto | |
| extern(C) void function(GLuint program, GLint location, GLsizei count, const GLuint* value) @system @nogc nothrow glProgramUniform3uiv; | |
| /// Ditto | |
| extern(C) void function(GLuint program, GLint location, GLsizei count, const GLuint* value) @system @nogc nothrow glProgramUniform4uiv; | |
| /// Ditto | |
| extern(C) void function(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) @system @nogc nothrow glProgramUniformMatrix2fv; | |
| /// Ditto | |
| extern(C) void function(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) @system @nogc nothrow glProgramUniformMatrix3fv; | |
| /// Ditto | |
| extern(C) void function(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) @system @nogc nothrow glProgramUniformMatrix4fv; | |
| /// Ditto | |
| extern(C) void function(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) @system @nogc nothrow glProgramUniformMatrix2x3fv; | |
| /// Ditto | |
| extern(C) void function(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) @system @nogc nothrow glProgramUniformMatrix3x2fv; | |
| /// Ditto | |
| extern(C) void function(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) @system @nogc nothrow glProgramUniformMatrix2x4fv; | |
| /// Ditto | |
| extern(C) void function(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) @system @nogc nothrow glProgramUniformMatrix4x2fv; | |
| /// Ditto | |
| extern(C) void function(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) @system @nogc nothrow glProgramUniformMatrix3x4fv; | |
| /// Ditto | |
| extern(C) void function(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) @system @nogc nothrow glProgramUniformMatrix4x3fv; | |
| /** | |
| * glProvokingVertex: man4/glProvokingVertex.xml | |
| * | |
| * $(P a vertex shader varying output means to assign all vetices of the primitive the same value for that output. The vertex from which these values is derived is known as the and$(D_INLINECODE glProvokingVertex) specifies which vertex is to be used as the source of data for flat shaded varyings.)$(P $(D_INLINECODE provokeMode) must be either$(D_INLINECODE GL_FIRST_VERTEX_CONVENTION) or$(D_INLINECODE GL_LAST_VERTEX_CONVENTION), and controls the selection of the vertex whose values are assigned to flatshaded varying outputs. The interpretation of these values for the supported primitive types is:$(B Primitive Type of Polygon)$(B First Vertex Convention)$(B Last Vertex Convention) point independent line 2 - 1 2 line loop$(P + 1, if <)$(P 1, if =) line strip + 1 independent triangle 3 - 2 3 triangle strip + 2 triangle fan + 1 + 2 line adjacency 4 - 2 4 - 1 line strip adjacency + 1 + 2 triangle adjacency 6 - 5 6 - 1 triangle strip adjacency 2 - 1 2 + 3)$(P If a vertex or geometry shader is active, user-defined varying outputs may be flatshaded by using the$(D_INLINECODE flat) qualifier when declaring the output.) | |
| * | |
| * $(P $(D_INLINECODE glProvokingVertex) is available only if the GL version is 3.2 or greater.) | |
| * | |
| * Params: | |
| * provokeMode = $(P Specifies the vertex to be used as the source of data for flat shaded varyings.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * | |
| */ | |
| extern(C) void function(GLenum provokeMode) @system @nogc nothrow glProvokingVertex; | |
| /** | |
| * glPushDebugGroup: man4/glPushDebugGroup.xml | |
| * | |
| * $(P $(D_INLINECODE glPushDebugGroup) pushes a debug group described by the string$(D_INLINECODE message) into the command stream. The value of$(D_INLINECODE id) specifies the ID of messages generated. The parameter$(D_INLINECODE length) contains the number of characters in$(D_INLINECODE message). If$(D_INLINECODE length) is negative, it is implied that$(D_INLINECODE message) contains a null terminated string. The message has the specified$(D_INLINECODE source) and$(D_INLINECODE id), the$(D_INLINECODE type)$(D_INLINECODE GL_DEBUG_TYPE_PUSH_GROUP), and$(D_INLINECODE severity)$(D_INLINECODE GL_DEBUG_SEVERITY_NOTIFICATION). The GL will put a new debug group on top of the debug group stack which inherits the control of the volume of debug output of the debug group previously residing on the top of the debug group stack. Because debug groups are strictly hierarchical, any additional control of the debug output volume will only apply within the active debug group and the debug groups pushed on top of the active debug group.) | |
| * | |
| * Params: | |
| * source = $(P The source of the debug message.) | |
| * id = $(P The identifier of the message.) | |
| * length = $(P The length of the message to be sent to the debug output stream.) | |
| * message = $(P The a string containing the message to be sent to the debug output stream.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2013-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glPopDebugGroup),$(D_INLINECODE glObjectLabel),$(D_INLINECODE glObjectPtrLabel).) | |
| */ | |
| extern(C) void function(GLenum source, GLuint id, GLsizei length, const char* message) @system @nogc nothrow glPushDebugGroup; | |
| /** | |
| * glQueryCounter: man4/glQueryCounter.xml | |
| * | |
| * $(P $(D_INLINECODE glQueryCounter) causes the GL to record the current time into the query object named$(D_INLINECODE id).$(D_INLINECODE target) must be$(D_INLINECODE GL_TIMESTAMP). The time is recorded after all previous commands on the GL client and server state and the framebuffer have been fully realized. When the time is recorded, the query result for that object is marked available.$(D_INLINECODE glQueryCounter) timer queries can be used within a$(D_INLINECODE glBeginQuery) /$(D_INLINECODE glEndQuery) block where the target is$(D_INLINECODE GL_TIME_ELAPSED) and it does not affect the result of that query object.) | |
| * | |
| * $(P $(D_INLINECODE glQueryCounter) is available only if the GL version is 3.3 or higher.) | |
| * | |
| * Params: | |
| * id = $(P Specify the name of a query object into which to record the GL time.) | |
| * target = $(P Specify the counter to query.$(D_INLINECODE target) must be$(D_INLINECODE GL_TIMESTAMP).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenQueries),$(D_INLINECODE glBeginQuery),$(D_INLINECODE glEndQuery),$(D_INLINECODE glDeleteQueries),$(D_INLINECODE glGetQueryObject),$(D_INLINECODE glGetQueryiv),$(D_INLINECODE glGet)) | |
| */ | |
| extern(C) void function(GLuint id, GLenum target) @system @nogc nothrow glQueryCounter; | |
| /** | |
| * glReadnPixels: man4/glReadPixels.xml | |
| * | |
| * $(P $(D_INLINECODE glReadPixels) and$(D_INLINECODE glReadnPixels) return pixel data from the frame buffer, starting with the pixel whose lower left corner is at location ($(D_INLINECODE x),$(D_INLINECODE y) ), into client memory starting at location$(D_INLINECODE data). Several parameters control the processing of the pixel data before it is placed into client memory. These parameters are set with$(D_INLINECODE glPixelStore). This reference page describes the effects on$(D_INLINECODE glReadPixels) and$(D_INLINECODE glReadnPixels) of most, but not all of the parameters specified by these three commands.)$(P If a non-zero named buffer object is bound to the$(D_INLINECODE GL_PIXEL_PACK_BUFFER) target (see$(D_INLINECODE glBindBuffer) ) while a block of pixels is requested,$(D_INLINECODE data) is treated as a byte offset into the buffer object's data store rather than a pointer to client memory.)$(P $(D_INLINECODE glReadPixels) and$(D_INLINECODE glReadnPixels) return values from each pixel with lower left corner at x + i y + j for 0 <= i < width and 0 <= j < height. This pixel is said to be the i th pixel in the j th row. Pixels are returned in row order from the lowest to the highest row, left to right in each row.)$(P $(D_INLINECODE format) specifies the format for the returned pixel values; accepted values are:) variablelist$(P Finally, the indices or components are converted to the proper format, as specified by$(D_INLINECODE type). If$(D_INLINECODE format) is$(D_INLINECODE GL_STENCIL_INDEX) and$(D_INLINECODE type) is not$(D_INLINECODE GL_FLOAT), each index is masked with the mask value given in the following table. If$(D_INLINECODE type) is$(D_INLINECODE GL_FLOAT), then each integer index is converted to single-precision floating-point format.)$(P If$(D_INLINECODE format) is$(D_INLINECODE GL_RED),$(D_INLINECODE GL_GREEN),$(D_INLINECODE GL_BLUE),$(D_INLINECODE GL_RGB),$(D_INLINECODE GL_BGR),$(D_INLINECODE GL_RGBA), or$(D_INLINECODE GL_BGRA) and$(D_INLINECODE type) is not$(D_INLINECODE GL_FLOAT), each component is multiplied by the multiplier shown in the following table. If type is$(D_INLINECODE GL_FLOAT), then each component is passed as is (or converted to the client's single-precision floating-point format if it is different from the one used by the GL).)$(D_INLINECODE type)$(B Index Mask)$(B Component Conversion)$(D_INLINECODE GL_UNSIGNED_BYTE) 2 8 - 1 2 8 - 1 ⁢ c$(D_INLINECODE GL_BYTE) 2 7 - 1 2 8 - 1 ⁢ c - 1 2$(D_INLINECODE GL_UNSIGNED_SHORT) 2 16 - 1 2 16 - 1 ⁢ c$(D_INLINECODE GL_SHORT) 2 15 - 1 2 16 - 1 ⁢ c - 1 2$(D_INLINECODE GL_UNSIGNED_INT) 2 32 - 1 2 32 - 1 ⁢ c$(D_INLINECODE GL_INT) 2 31 - 1 2 32 - 1 ⁢ c - 1 2$(D_INLINECODE GL_HALF_FLOAT) none c$(D_INLINECODE GL_FLOAT) none c$(D_INLINECODE GL_UNSIGNED_BYTE_3_3_2) 2 N - 1 2 N - 1 ⁢ c$(D_INLINECODE GL_UNSIGNED_BYTE_2_3_3_REV) 2 N - 1 2 N - 1 ⁢ c$(D_INLINECODE GL_UNSIGNED_SHORT_5_6_5) 2 N - 1 2 N - 1 ⁢ c$(D_INLINECODE GL_UNSIGNED_SHORT_5_6_5_REV) 2 N - 1 2 N - 1 ⁢ c$(D_INLINECODE GL_UNSIGNED_SHORT_4_4_4_4) 2 N - 1 2 N - 1 ⁢ c$(D_INLINECODE GL_UNSIGNED_SHORT_4_4_4_4_REV) 2 N - 1 2 N - 1 ⁢ c$(D_INLINECODE GL_UNSIGNED_SHORT_5_5_5_1) 2 N - 1 2 N - 1 ⁢ c$(D_INLINECODE GL_UNSIGNED_SHORT_1_5_5_5_REV) 2 N - 1 2 N - 1 ⁢ c$(D_INLINECODE GL_UNSIGNED_INT_8_8_8_8) 2 N - 1 2 N - 1 ⁢ c$(D_INLINECODE GL_UNSIGNED_INT_8_8_8_8_REV) 2 N - 1 2 N - 1 ⁢ c$(D_INLINECODE GL_UNSIGNED_INT_10_10_10_2) 2 N - 1 2 N - 1 ⁢ c$(D_INLINECODE GL_UNSIGNED_INT_2_10_10_10_REV) 2 N - 1 2 N - 1 ⁢ c$(D_INLINECODE GL_UNSIGNED_INT_24_8) 2 N - 1 2 N - 1 ⁢ c$(D_INLINECODE GL_UNSIGNED_INT_10F_11F_11F_REV) -- Special$(D_INLINECODE GL_UNSIGNED_INT_5_9_9_9_REV) -- Special$(D_INLINECODE GL_FLOAT_32_UNSIGNED_INT_24_8_REV) none c (Depth Only)$(P Return values are placed in memory as follows. If$(D_INLINECODE format) is$(D_INLINECODE GL_STENCIL_INDEX),$(D_INLINECODE GL_DEPTH_COMPONENT),$(D_INLINECODE GL_RED),$(D_INLINECODE GL_GREEN), or$(D_INLINECODE GL_BLUE), a single value is returned and the data for the i th pixel in the j th row is placed in location j ⁢ width + i.$(D_INLINECODE GL_RGB) and$(D_INLINECODE GL_BGR) return three values,$(D_INLINECODE GL_RGBA) and$(D_INLINECODE GL_BGRA) return four values for each pixel, with all values corresponding to a single pixel occupying contiguous space in$(D_INLINECODE data). Storage parameters set by$(D_INLINECODE glPixelStore), such as$(D_INLINECODE GL_PACK_LSB_FIRST) and$(D_INLINECODE GL_PACK_SWAP_BYTES), affect the way that data is written into memory. See$(D_INLINECODE glPixelStore) for a description.)$(P $(D_INLINECODE glReadnPixels) function will only handle the call if$(D_INLINECODE bufSize) is at least of the size required to store the requested data. Otherwise, it will generate a$(D_INLINECODE GL_INVALID_OPERATION) error.) | |
| * | |
| * $(P Values for pixels that lie outside the window connected to the current GL context are undefined.)$(P If an error is generated, no change is made to the contents of$(D_INLINECODE data).) | |
| * | |
| * Params: | |
| * x = $(P Specify the window coordinates of the first pixel that is read from the frame buffer. This location is the lower left corner of a rectangular block of pixels.) | |
| * width = $(P Specify the dimensions of the pixel rectangle.$(D_INLINECODE width) and$(D_INLINECODE height) of one correspond to a single pixel.) | |
| * format = $(P Specifies the format of the pixel data. The following symbolic values are accepted:$(D_INLINECODE GL_STENCIL_INDEX),$(D_INLINECODE GL_DEPTH_COMPONENT),$(D_INLINECODE GL_DEPTH_STENCIL),$(D_INLINECODE GL_RED),$(D_INLINECODE GL_GREEN),$(D_INLINECODE GL_BLUE),$(D_INLINECODE GL_RGB),$(D_INLINECODE GL_BGR),$(D_INLINECODE GL_RGBA), and$(D_INLINECODE GL_BGRA).) | |
| * type = $(P Specifies the data type of the pixel data. Must be one of$(D_INLINECODE GL_UNSIGNED_BYTE),$(D_INLINECODE GL_BYTE),$(D_INLINECODE GL_UNSIGNED_SHORT),$(D_INLINECODE GL_SHORT),$(D_INLINECODE GL_UNSIGNED_INT),$(D_INLINECODE GL_INT),$(D_INLINECODE GL_HALF_FLOAT),$(D_INLINECODE GL_FLOAT),$(D_INLINECODE GL_UNSIGNED_BYTE_3_3_2),$(D_INLINECODE GL_UNSIGNED_BYTE_2_3_3_REV),$(D_INLINECODE GL_UNSIGNED_SHORT_5_6_5),$(D_INLINECODE GL_UNSIGNED_SHORT_5_6_5_REV),$(D_INLINECODE GL_UNSIGNED_SHORT_4_4_4_4),$(D_INLINECODE GL_UNSIGNED_SHORT_4_4_4_4_REV),$(D_INLINECODE GL_UNSIGNED_SHORT_5_5_5_1),$(D_INLINECODE GL_UNSIGNED_SHORT_1_5_5_5_REV),$(D_INLINECODE GL_UNSIGNED_INT_8_8_8_8),$(D_INLINECODE GL_UNSIGNED_INT_8_8_8_8_REV),$(D_INLINECODE GL_UNSIGNED_INT_10_10_10_2),$(D_INLINECODE GL_UNSIGNED_INT_2_10_10_10_REV),$(D_INLINECODE GL_UNSIGNED_INT_24_8),$(D_INLINECODE GL_UNSIGNED_INT_10F_11F_11F_REV),$(D_INLINECODE GL_UNSIGNED_INT_5_9_9_9_REV), or$(D_INLINECODE GL_FLOAT_32_UNSIGNED_INT_24_8_REV).) | |
| * bufSize = $(P Specifies the size of the buffer$(D_INLINECODE data) for$(D_INLINECODE glReadnPixels) function.) | |
| * data = $(P Returns the pixel data.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glPixelStore),$(D_INLINECODE glReadBuffer)) | |
| */ | |
| extern(C) void function(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* data) @system @nogc nothrow glReadPixels; | |
| /// Ditto | |
| extern(C) void function(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void* data) @system @nogc nothrow glReadnPixels; | |
| /** | |
| * glReleaseShaderCompiler: man4/glReleaseShaderCompiler.xml | |
| * | |
| * $(P $(D_INLINECODE glReleaseShaderCompiler) provides a hint to the implementation that it may free internal resources associated with its shader compiler.$(D_INLINECODE glCompileShader) may subsequently be called and the implementation may at that time reallocate resources previously freed by the call to$(D_INLINECODE glReleaseShaderCompiler).) | |
| * | |
| * Params: | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glCompileShader),$(D_INLINECODE glLinkProgram)) | |
| */ | |
| extern(C) void function() @system @nogc nothrow glReleaseShaderCompiler; | |
| /** | |
| * glResumeTransformFeedback: man4/glResumeTransformFeedback.xml | |
| * | |
| * $(P $(D_INLINECODE glResumeTransformFeedback) resumes transform feedback operations on the currently active transform feedback object. When transform feedback operations are paused, transform feedback is still considered active and changing most transform feedback state related to the object results in an error. However, a new transform feedback object may be bound while transform feedback is paused.) | |
| * | |
| * Params: | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenTransformFeedbacks),$(D_INLINECODE glBindTransformFeedback),$(D_INLINECODE glBeginTransformFeedback),$(D_INLINECODE glPauseTransformFeedback),$(D_INLINECODE glEndTransformFeedback),$(D_INLINECODE glDeleteTransformFeedbacks)) | |
| */ | |
| extern(C) void function() @system @nogc nothrow glResumeTransformFeedback; | |
| /** | |
| * glSampleCoverage: man4/glSampleCoverage.xml | |
| * | |
| * $(P Multisampling samples a pixel multiple times at various implementation-dependent subpixel locations to generate antialiasing effects. Multisampling transparently antialiases points, lines, polygons, and images if it is enabled.)$(P $(D_INLINECODE value) is used in constructing a temporary mask used in determining which samples will be used in resolving the final fragment color. This mask is bitwise-anded with the coverage mask generated from the multisampling computation. If the$(D_INLINECODE invert) flag is set, the temporary mask is inverted (all bits flipped) and then the bitwise-and is computed.)$(P If an implementation does not have any multisample buffers available, or multisampling is disabled, rasterization occurs with only a single sample computing a pixel's final RGB color.)$(P Provided an implementation supports multisample buffers, and multisampling is enabled, then a pixel's final color is generated by combining several samples per pixel. Each sample contains color, depth, and stencil information, allowing those operations to be performed on each sample.) | |
| * | |
| * $(P The type of the$(D_INLINECODE value) parameter was changed from GLclampf to GLfloat. This change is transparent to user code and is described in detail on the$(D_INLINECODE removedTypes) page.) | |
| * | |
| * Params: | |
| * value = $(P Specify a single floating-point sample coverage value. The value is clamped to the range 0 1. The initial value is 1.0.) | |
| * invert = $(P Specify a single boolean value representing if the coverage masks should be inverted.$(D_INLINECODE GL_TRUE) and$(D_INLINECODE GL_FALSE) are accepted. The initial value is$(D_INLINECODE GL_FALSE).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glEnable),$(D_INLINECODE removedTypes)) | |
| */ | |
| extern(C) void function(GLfloat value, GLboolean invert) @system @nogc nothrow glSampleCoverage; | |
| /** | |
| * glSampleMaski: man4/glSampleMaski.xml | |
| * | |
| * $(P $(D_INLINECODE glSampleMaski) sets one 32-bit sub-word of the multi-word sample mask,$(D_INLINECODE GL_SAMPLE_MASK_VALUE).)$(P $(D_INLINECODE maskIndex) specifies which 32-bit sub-word of the sample mask to update, and$(D_INLINECODE mask) specifies the new value to use for that sub-word.$(D_INLINECODE maskIndex) must be less than the value of$(D_INLINECODE GL_MAX_SAMPLE_MASK_WORDS). Bit of mask word corresponds to sample 32 x +.) | |
| * | |
| * $(P $(D_INLINECODE glSampleMaski) is available only if the GL version is 3.2 or greater, or if the$(D_INLINECODE ARB_texture_multisample) extension is supported.) | |
| * | |
| * Params: | |
| * maskNumber = $(P Specifies which 32-bit sub-word of the sample mask to update.) | |
| * mask = $(P Specifies the new value of the mask sub-word.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenRenderbuffers),$(D_INLINECODE glBindRenderbuffer),$(D_INLINECODE glRenderbufferStorageMultisample),$(D_INLINECODE glFramebufferRenderbuffer),$(D_INLINECODE glDeleteRenderbuffers)) | |
| */ | |
| extern(C) void function(GLuint maskNumber, GLbitfield mask) @system @nogc nothrow glSampleMaski; | |
| /** | |
| * glSamplerParameter: man4/glSamplerParameter.xml | |
| * | |
| * $(P $(D_INLINECODE glSamplerParameter) assigns the value or values in$(D_INLINECODE params) to the sampler parameter specified as$(D_INLINECODE pname).$(D_INLINECODE sampler) specifies the sampler object to be modified, and must be the name of a sampler object previously returned from a call to$(D_INLINECODE glGenSamplers). The following symbols are accepted in$(D_INLINECODE pname) :) variablelist variablelist variablelist variablelist variablelist | |
| * | |
| * $(P $(D_INLINECODE glSamplerParameter) is available only if the GL version is 3.3 or higher.)$(P If a sampler object is bound to a texture unit and that unit is used to sample from a texture, the parameters in the sampler are used to sample from the texture, rather than the equivalent parameters in the texture object bound to that unit. This introduces the possibility of sampling from the same texture object with different sets of sampler state, which may lead to a condition where a texture is with respect to one sampler object and not with respect to another. Thus, completeness can be considered a function of a sampler object and a texture object bound to a single texture unit, rather than a property of the texture object itself.)$(P $(D_INLINECODE GL_MIRROR_CLAMP_TO_EDGE) is available only if the GL version is 4.4 or greater.) | |
| * | |
| * Params: | |
| * sampler = $(P Specifies the sampler object whose parameter to modify.) | |
| * pname = $(P Specifies the symbolic name of a sampler parameter.$(D_INLINECODE pname) can be one of the following:$(D_INLINECODE GL_TEXTURE_WRAP_S),$(D_INLINECODE GL_TEXTURE_WRAP_T),$(D_INLINECODE GL_TEXTURE_WRAP_R),$(D_INLINECODE GL_TEXTURE_MIN_FILTER),$(D_INLINECODE GL_TEXTURE_MAG_FILTER),$(D_INLINECODE GL_TEXTURE_BORDER_COLOR),$(D_INLINECODE GL_TEXTURE_MIN_LOD),$(D_INLINECODE GL_TEXTURE_MAX_LOD),$(D_INLINECODE GL_TEXTURE_LOD_BIAS)$(D_INLINECODE GL_TEXTURE_COMPARE_MODE), or$(D_INLINECODE GL_TEXTURE_COMPARE_FUNC).) | |
| * param = $(P For the scalar commands, specifies the value of$(D_INLINECODE pname).) | |
| * params = $(P For the vector commands ($(D_INLINECODE glSamplerParameter*v) ), specifies a pointer to an array where the value or values of$(D_INLINECODE pname) are stored.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenSamplers),$(D_INLINECODE glBindSampler),$(D_INLINECODE glDeleteSamplers),$(D_INLINECODE glIsSampler),$(D_INLINECODE glBindTexture),$(D_INLINECODE glTexParameter)) | |
| */ | |
| extern(C) void function(GLuint sampler, GLenum pname, GLfloat param) @system @nogc nothrow glSamplerParameterf; | |
| /** | |
| * glScissor: man4/glScissor.xml | |
| * | |
| * $(P $(D_INLINECODE glScissor) defines a rectangle, called the scissor box, in window coordinates. The first two arguments,$(D_INLINECODE x) and$(D_INLINECODE y), specify the lower left corner of the box.$(D_INLINECODE width) and$(D_INLINECODE height) specify the width and height of the box.)$(P To enable and disable the scissor test, call$(D_INLINECODE glEnable) and$(D_INLINECODE glDisable) with argument$(D_INLINECODE GL_SCISSOR_TEST). The test is initially disabled. While the test is enabled, only pixels that lie within the scissor box can be modified by drawing commands. Window coordinates have integer values at the shared corners of frame buffer pixels.$(D_INLINECODE glScissor(0,0,1,1)) allows modification of only the lower left pixel in the window, and$(D_INLINECODE glScissor(0,0,0,0)) doesn't allow modification of any pixels in the window.)$(P When the scissor test is disabled, it is as though the scissor box includes the entire window.) | |
| * | |
| * Params: | |
| * x = $(P Specify the lower left corner of the scissor box. Initially (0, 0).) | |
| * width = $(P Specify the width and height of the scissor box. When a GL context is first attached to a window,$(D_INLINECODE width) and$(D_INLINECODE height) are set to the dimensions of that window.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glEnable),$(D_INLINECODE glViewport)) | |
| */ | |
| extern(C) void function(GLint x, GLint y, GLsizei width, GLsizei height) @system @nogc nothrow glScissor; | |
| /** | |
| * glScissorArray: man4/glScissorArray.xml | |
| * | |
| * $(P $(D_INLINECODE glScissorArrayv) defines rectangles, called scissor boxes, in window coordinates for each viewport.$(D_INLINECODE first) specifies the index of the first scissor box to modify and$(D_INLINECODE count) specifies the number of scissor boxes to modify.$(D_INLINECODE first) must be less than the value of$(D_INLINECODE GL_MAX_VIEWPORTS), and$(D_INLINECODE first) +$(D_INLINECODE count) must be less than or equal to the value of$(D_INLINECODE GL_MAX_VIEWPORTS).$(D_INLINECODE v) specifies the address of an array containing integers specifying the lower left corner of the scissor boxes, and the width and height of the scissor boxes, in that order.)$(P To enable and disable the scissor test, call$(D_INLINECODE glEnable) and$(D_INLINECODE glDisable) with argument$(D_INLINECODE GL_SCISSOR_TEST). The test is initially disabled for all viewports. While the test is enabled, only pixels that lie within the scissor box can be modified by drawing commands. Window coordinates have integer values at the shared corners of frame buffer pixels.$(D_INLINECODE glScissor(0,0,1,1)) allows modification of only the lower left pixel in the window, and$(D_INLINECODE glScissor(0,0,0,0)) doesn't allow modification of any pixels in the window.)$(P When the scissor test is disabled, it is as though the scissor box includes the entire window.) | |
| * | |
| * Params: | |
| * first = $(P Specifies the index of the first viewport whose scissor box to modify.) | |
| * count = $(P Specifies the number of scissor boxes to modify.) | |
| * v = $(P Specifies the address of an array containing the left, bottom, width and height of each scissor box, in that order.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glEnable),$(D_INLINECODE glViewport),$(D_INLINECODE glViewportIndexed),$(D_INLINECODE glViewportArray)) | |
| */ | |
| extern(C) void function(GLuint first, GLsizei count, const GLint* v) @system @nogc nothrow glScissorArrayv; | |
| /** | |
| * glScissorIndexed: man4/glScissorIndexed.xml | |
| * | |
| * $(P $(D_INLINECODE glScissorIndexed) defines the scissor box for a specified viewport.$(D_INLINECODE index) specifies the index of scissor box to modify.$(D_INLINECODE index) must be less than the value of$(D_INLINECODE GL_MAX_VIEWPORTS). For$(D_INLINECODE glScissorIndexed),$(D_INLINECODE left),$(D_INLINECODE bottom),$(D_INLINECODE width) and$(D_INLINECODE height) specify the left, bottom, width and height of the scissor box, in pixels, respectively. For$(D_INLINECODE glScissorIndexedv),$(D_INLINECODE v) specifies the address of an array containing integers specifying the lower left corner of the scissor box, and the width and height of the scissor box, in that order.)$(P To enable and disable the scissor test, call$(D_INLINECODE glEnable) and$(D_INLINECODE glDisable) with argument$(D_INLINECODE GL_SCISSOR_TEST). The test is initially disabled for all viewports. While the test is enabled, only pixels that lie within the scissor box can be modified by drawing commands. Window coordinates have integer values at the shared corners of frame buffer pixels.$(D_INLINECODE glScissor(0,0,1,1)) allows modification of only the lower left pixel in the window, and$(D_INLINECODE glScissor(0,0,0,0)) doesn't allow modification of any pixels in the window.)$(P When the scissor test is disabled, it is as though the scissor box includes the entire window.) | |
| * | |
| * Params: | |
| * index = $(P Specifies the index of the viewport whose scissor box to modify.) | |
| * left = $(P Specify the coordinate of the bottom left corner of the scissor box, in pixels.) | |
| * width = $(P Specify ths dimensions of the scissor box, in pixels.) | |
| * v = $(P For$(D_INLINECODE glScissorIndexedv), specifies the address of an array containing the left, bottom, width and height of each scissor box, in that order.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glEnable),$(D_INLINECODE glScissor),$(D_INLINECODE glScissorArray)) | |
| */ | |
| extern(C) void function(GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height) @system @nogc nothrow glScissorIndexed; | |
| /// Ditto | |
| extern(C) void function(GLuint index, const GLint* v) @system @nogc nothrow glScissorIndexedv; | |
| /** | |
| * glShaderBinary: man4/glShaderBinary.xml | |
| * | |
| * $(P $(D_INLINECODE glShaderBinary) loads pre-compiled shader binary code into the$(D_INLINECODE count) shader objects whose handles are given in$(D_INLINECODE shaders).$(D_INLINECODE binary) points to$(D_INLINECODE length) bytes of binary shader code stored in client memory.$(D_INLINECODE binaryFormat) specifies the format of the pre-compiled code.)$(P The binary image contained in$(D_INLINECODE binary) will be decoded according to the extension specification defining the specified$(D_INLINECODE binaryFormat) token. OpenGL does not define any specific binary formats, but it does provide a mechanism to obtain token vaues for such formats provided by such extensions.)$(P Depending on the types of the shader objects in$(D_INLINECODE shaders),$(D_INLINECODE glShaderBinary) will individually load binary vertex or fragment shaders, or load an executable binary that contains an optimized pair of vertex and fragment shaders stored in the same binary.) | |
| * | |
| * Params: | |
| * count = $(P Specifies the number of shader object handles contained in$(D_INLINECODE shaders).) | |
| * shaders = $(P Specifies the address of an array of shader handles into which to load pre-compiled shader binaries.) | |
| * binaryFormat = $(P Specifies the format of the shader binaries contained in$(D_INLINECODE binary).) | |
| * binary = $(P Specifies the address of an array of bytes containing pre-compiled binary shader code.) | |
| * length = $(P Specifies the length of the array whose address is given in$(D_INLINECODE binary).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGetProgram),$(D_INLINECODE glGetProgramBinary),$(D_INLINECODE glProgramBinary)) | |
| */ | |
| extern(C) void function(GLsizei count, const GLuint* shaders, GLenum binaryFormat, const void* binary, GLsizei length) @system @nogc nothrow glShaderBinary; | |
| /** | |
| * glShaderSource: man4/glShaderSource.xml | |
| * | |
| * $(P $(D_INLINECODE glShaderSource) sets the source code in$(D_INLINECODE shader) to the source code in the array of strings specified by$(D_INLINECODE string). Any source code previously stored in the shader object is completely replaced. The number of strings in the array is specified by$(D_INLINECODE count). If$(D_INLINECODE length) is$(D_INLINECODE NULL), each string is assumed to be null terminated. If$(D_INLINECODE length) is a value other than$(D_INLINECODE NULL), it points to an array containing a string length for each of the corresponding elements of$(D_INLINECODE string). Each element in the$(D_INLINECODE length) array may contain the length of the corresponding string (the null character is not counted as part of the string length) or a value less than 0 to indicate that the string is null terminated. The source code strings are not scanned or parsed at this time; they are simply copied into the specified shader object.) | |
| * | |
| * $(P OpenGL copies the shader source code strings when$(D_INLINECODE glShaderSource) is called, so an application may free its copy of the source code strings immediately after the function returns.) | |
| * | |
| * Params: | |
| * shader = $(P Specifies the handle of the shader object whose source code is to be replaced.) | |
| * count = $(P Specifies the number of elements in the$(D_INLINECODE string) and$(D_INLINECODE length) arrays.) | |
| * string = $(P Specifies an array of pointers to strings containing the source code to be loaded into the shader.) | |
| * length = $(P Specifies an array of string lengths.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2003-2005 3Dlabs Inc. Ltd. Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glCompileShader),$(D_INLINECODE glCreateShader),$(D_INLINECODE glDeleteShader)) | |
| */ | |
| extern(C) void function(GLuint shader, GLsizei count, const GLchar** string, const GLint* length) @system @nogc nothrow glShaderSource; | |
| /** | |
| * glShaderStorageBlockBinding: man4/glShaderStorageBlockBinding.xml | |
| * | |
| * $(P $(D_INLINECODE glShaderStorageBlockBinding), changes the active shader storage block with an assigned index of$(D_INLINECODE storageBlockIndex) in program object$(D_INLINECODE program).$(D_INLINECODE storageBlockIndex) must be an active shader storage block index in$(D_INLINECODE program).$(D_INLINECODE storageBlockBinding) must be less than the value of$(D_INLINECODE GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS). If successful,$(D_INLINECODE glShaderStorageBinding) specifies that$(D_INLINECODE program) will use the data store of the buffer object bound to the binding point$(D_INLINECODE storageBlockBinding) to read and write the values of the buffer variables in the shader storage block identified by$(D_INLINECODE storageBlockIndex).) | |
| * | |
| * Params: | |
| * program = $(P The name of the program containing the block whose binding to change.) | |
| * storageBlockIndex = $(P The index storage block within the program.) | |
| * storageBlockBinding = $(P The index storage block binding to associate with the specified storage block.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * | |
| */ | |
| extern(C) void function(GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding) @system @nogc nothrow glShaderStorageBlockBinding; | |
| /** | |
| * glStencilFunc: man4/glStencilFunc.xml | |
| * | |
| * $(P Stenciling, like depth-buffering, enables and disables drawing on a per-pixel basis. Stencil planes are first drawn into using GL drawing primitives, then geometry and images are rendered using the stencil planes to mask out portions of the screen. Stenciling is typically used in multipass rendering algorithms to achieve special effects, such as decals, outlining, and constructive solid geometry rendering.)$(P The stencil test conditionally eliminates a pixel based on the outcome of a comparison between the reference value and the value in the stencil buffer. To enable and disable the test, call$(D_INLINECODE glEnable) and$(D_INLINECODE glDisable) with argument$(D_INLINECODE GL_STENCIL_TEST). To specify actions based on the outcome of the stencil test, call$(D_INLINECODE glStencilOp) or$(D_INLINECODE glStencilOpSeparate).)$(P There can be two separate sets of$(D_INLINECODE func),$(D_INLINECODE ref), and$(D_INLINECODE mask) parameters; one affects back-facing polygons, and the other affects front-facing polygons as well as other non-polygon primitives.$(D_INLINECODE glStencilFunc) sets both front and back stencil state to the same values. Use$(D_INLINECODE glStencilFuncSeparate) to set front and back stencil state to different values.)$(P $(D_INLINECODE func) is a symbolic constant that determines the stencil comparison function. It accepts one of eight values, shown in the following list.$(D_INLINECODE ref) is an integer reference value that is used in the stencil comparison. It is clamped to the range 0 2 n - 1, where n is the number of bitplanes in the stencil buffer.$(D_INLINECODE mask) is bitwise ANDed with both the reference value and the stored stencil value, with the ANDed values participating in the comparison.)$(P If represents the value stored in the corresponding stencil buffer location, the following list shows the effect of each comparison function that can be specified by$(D_INLINECODE func). Only if the comparison succeeds is the pixel passed through to the next stage in the rasterization process (see$(D_INLINECODE glStencilOp) ). All tests treat values as unsigned integers in the range 0 2 n - 1, where n is the number of bitplanes in the stencil buffer.)$(P The following values are accepted by$(D_INLINECODE func) :) variablelist | |
| * | |
| * $(P Initially, the stencil test is disabled. If there is no stencil buffer, no stencil modification can occur and it is as if the stencil test always passes.)$(P $(D_INLINECODE glStencilFunc) is the same as calling$(D_INLINECODE glStencilFuncSeparate) with$(D_INLINECODE face) set to$(D_INLINECODE GL_FRONT_AND_BACK).) | |
| * | |
| * Params: | |
| * func = $(P Specifies the test function. Eight symbolic constants are valid:$(D_INLINECODE GL_NEVER),$(D_INLINECODE GL_LESS),$(D_INLINECODE GL_LEQUAL),$(D_INLINECODE GL_GREATER),$(D_INLINECODE GL_GEQUAL),$(D_INLINECODE GL_EQUAL),$(D_INLINECODE GL_NOTEQUAL), and$(D_INLINECODE GL_ALWAYS). The initial value is$(D_INLINECODE GL_ALWAYS).) | |
| * ref_ = $(P Specifies the reference value for the stencil test.$(D_INLINECODE ref) is clamped to the range 0 2 n - 1, where n is the number of bitplanes in the stencil buffer. The initial value is 0.) | |
| * mask = $(P Specifies a mask that is ANDed with both the reference value and the stored stencil value when the test is done. The initial value is all 1's.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBlendFunc),$(D_INLINECODE glDepthFunc),$(D_INLINECODE glEnable),$(D_INLINECODE glLogicOp),$(D_INLINECODE glStencilFuncSeparate),$(D_INLINECODE glStencilMask),$(D_INLINECODE glStencilMaskSeparate),$(D_INLINECODE glStencilOp),$(D_INLINECODE glStencilOpSeparate)) | |
| */ | |
| extern(C) void function(GLenum func, GLint ref_, GLuint mask) @system @nogc nothrow glStencilFunc; | |
| /** | |
| * glStencilFuncSeparate: man4/glStencilFuncSeparate.xml | |
| * | |
| * $(P Stenciling, like depth-buffering, enables and disables drawing on a per-pixel basis. You draw into the stencil planes using GL drawing primitives, then render geometry and images, using the stencil planes to mask out portions of the screen. Stenciling is typically used in multipass rendering algorithms to achieve special effects, such as decals, outlining, and constructive solid geometry rendering.)$(P The stencil test conditionally eliminates a pixel based on the outcome of a comparison between the reference value and the value in the stencil buffer. To enable and disable the test, call$(D_INLINECODE glEnable) and$(D_INLINECODE glDisable) with argument$(D_INLINECODE GL_STENCIL_TEST). To specify actions based on the outcome of the stencil test, call$(D_INLINECODE glStencilOp) or$(D_INLINECODE glStencilOpSeparate).)$(P There can be two separate sets of$(D_INLINECODE func),$(D_INLINECODE ref), and$(D_INLINECODE mask) parameters; one affects back-facing polygons, and the other affects front-facing polygons as well as other non-polygon primitives.$(D_INLINECODE glStencilFunc) sets both front and back stencil state to the same values, as if$(D_INLINECODE glStencilFuncSeparate) were called with$(D_INLINECODE face) set to$(D_INLINECODE GL_FRONT_AND_BACK).)$(P $(D_INLINECODE func) is a symbolic constant that determines the stencil comparison function. It accepts one of eight values, shown in the following list.$(D_INLINECODE ref) is an integer reference value that is used in the stencil comparison. It is clamped to the range 0 2 n - 1, where n is the number of bitplanes in the stencil buffer.$(D_INLINECODE mask) is bitwise ANDed with both the reference value and the stored stencil value, with the ANDed values participating in the comparison.)$(P If represents the value stored in the corresponding stencil buffer location, the following list shows the effect of each comparison function that can be specified by$(D_INLINECODE func). Only if the comparison succeeds is the pixel passed through to the next stage in the rasterization process (see$(D_INLINECODE glStencilOp) ). All tests treat values as unsigned integers in the range 0 2 n - 1, where n is the number of bitplanes in the stencil buffer.)$(P The following values are accepted by$(D_INLINECODE func) :) variablelist | |
| * | |
| * $(P Initially, the stencil test is disabled. If there is no stencil buffer, no stencil modification can occur and it is as if the stencil test always passes.) | |
| * | |
| * Params: | |
| * face = $(P Specifies whether front and/or back stencil state is updated. Three symbolic constants are valid:$(D_INLINECODE GL_FRONT),$(D_INLINECODE GL_BACK), and$(D_INLINECODE GL_FRONT_AND_BACK).) | |
| * func = $(P Specifies the test function. Eight symbolic constants are valid:$(D_INLINECODE GL_NEVER),$(D_INLINECODE GL_LESS),$(D_INLINECODE GL_LEQUAL),$(D_INLINECODE GL_GREATER),$(D_INLINECODE GL_GEQUAL),$(D_INLINECODE GL_EQUAL),$(D_INLINECODE GL_NOTEQUAL), and$(D_INLINECODE GL_ALWAYS). The initial value is$(D_INLINECODE GL_ALWAYS).) | |
| * ref_ = $(P Specifies the reference value for the stencil test.$(D_INLINECODE ref) is clamped to the range 0 2 n - 1, where n is the number of bitplanes in the stencil buffer. The initial value is 0.) | |
| * mask = $(P Specifies a mask that is ANDed with both the reference value and the stored stencil value when the test is done. The initial value is all 1's.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2006 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBlendFunc),$(D_INLINECODE glDepthFunc),$(D_INLINECODE glEnable),$(D_INLINECODE glLogicOp),$(D_INLINECODE glStencilFunc),$(D_INLINECODE glStencilMask),$(D_INLINECODE glStencilMaskSeparate),$(D_INLINECODE glStencilOp),$(D_INLINECODE glStencilOpSeparate)) | |
| */ | |
| extern(C) void function(GLenum face, GLenum func, GLint ref_, GLuint mask) @system @nogc nothrow glStencilFuncSeparate; | |
| /** | |
| * glStencilMask: man4/glStencilMask.xml | |
| * | |
| * $(P $(D_INLINECODE glStencilMask) controls the writing of individual bits in the stencil planes. The least significant n bits of$(D_INLINECODE mask), where n is the number of bits in the stencil buffer, specify a mask. Where a 1 appears in the mask, it's possible to write to the corresponding bit in the stencil buffer. Where a 0 appears, the corresponding bit is write-protected. Initially, all bits are enabled for writing.)$(P There can be two separate$(D_INLINECODE mask) writemasks; one affects back-facing polygons, and the other affects front-facing polygons as well as other non-polygon primitives.$(D_INLINECODE glStencilMask) sets both front and back stencil writemasks to the same values. Use$(D_INLINECODE glStencilMaskSeparate) to set front and back stencil writemasks to different values.) | |
| * | |
| * $(P $(D_INLINECODE glStencilMask) is the same as calling$(D_INLINECODE glStencilMaskSeparate) with$(D_INLINECODE face) set to$(D_INLINECODE GL_FRONT_AND_BACK).) | |
| * | |
| * Params: | |
| * mask = $(P Specifies a bit mask to enable and disable writing of individual bits in the stencil planes. Initially, the mask is all 1's.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glColorMask),$(D_INLINECODE glDepthMask),$(D_INLINECODE glStencilFunc),$(D_INLINECODE glStencilFuncSeparate),$(D_INLINECODE glStencilMaskSeparate),$(D_INLINECODE glStencilOp),$(D_INLINECODE glStencilOpSeparate)) | |
| */ | |
| extern(C) void function(GLuint mask) @system @nogc nothrow glStencilMask; | |
| /** | |
| * glStencilMaskSeparate: man4/glStencilMaskSeparate.xml | |
| * | |
| * $(P $(D_INLINECODE glStencilMaskSeparate) controls the writing of individual bits in the stencil planes. The least significant n bits of$(D_INLINECODE mask), where n is the number of bits in the stencil buffer, specify a mask. Where a 1 appears in the mask, it's possible to write to the corresponding bit in the stencil buffer. Where a 0 appears, the corresponding bit is write-protected. Initially, all bits are enabled for writing.)$(P There can be two separate$(D_INLINECODE mask) writemasks; one affects back-facing polygons, and the other affects front-facing polygons as well as other non-polygon primitives.$(D_INLINECODE glStencilMask) sets both front and back stencil writemasks to the same values, as if$(D_INLINECODE glStencilMaskSeparate) were called with$(D_INLINECODE face) set to$(D_INLINECODE GL_FRONT_AND_BACK).) | |
| * | |
| * Params: | |
| * face = $(P Specifies whether the front and/or back stencil writemask is updated. Three symbolic constants are valid:$(D_INLINECODE GL_FRONT),$(D_INLINECODE GL_BACK), and$(D_INLINECODE GL_FRONT_AND_BACK).) | |
| * mask = $(P Specifies a bit mask to enable and disable writing of individual bits in the stencil planes. Initially, the mask is all 1's.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2006 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glColorMask),$(D_INLINECODE glDepthMask),$(D_INLINECODE glStencilFunc),$(D_INLINECODE glStencilFuncSeparate),$(D_INLINECODE glStencilMask),$(D_INLINECODE glStencilOp),$(D_INLINECODE glStencilOpSeparate)) | |
| */ | |
| extern(C) void function(GLenum face, GLuint mask) @system @nogc nothrow glStencilMaskSeparate; | |
| /** | |
| * glStencilOp: man4/glStencilOp.xml | |
| * | |
| * $(P Stenciling, like depth-buffering, enables and disables drawing on a per-pixel basis. You draw into the stencil planes using GL drawing primitives, then render geometry and images, using the stencil planes to mask out portions of the screen. Stenciling is typically used in multipass rendering algorithms to achieve special effects, such as decals, outlining, and constructive solid geometry rendering.)$(P The stencil test conditionally eliminates a pixel based on the outcome of a comparison between the value in the stencil buffer and a reference value. To enable and disable the test, call$(D_INLINECODE glEnable) and$(D_INLINECODE glDisable) with argument$(D_INLINECODE GL_STENCIL_TEST); to control it, call$(D_INLINECODE glStencilFunc) or$(D_INLINECODE glStencilFuncSeparate).)$(P There can be two separate sets of$(D_INLINECODE sfail),$(D_INLINECODE dpfail), and$(D_INLINECODE dppass) parameters; one affects back-facing polygons, and the other affects front-facing polygons as well as other non-polygon primitives.$(D_INLINECODE glStencilOp) sets both front and back stencil state to the same values. Use$(D_INLINECODE glStencilOpSeparate) to set front and back stencil state to different values.)$(P $(D_INLINECODE glStencilOp) takes three arguments that indicate what happens to the stored stencil value while stenciling is enabled. If the stencil test fails, no change is made to the pixel's color or depth buffers, and$(D_INLINECODE sfail) specifies what happens to the stencil buffer contents. The following eight actions are possible.) variablelist$(P Stencil buffer values are treated as unsigned integers. When incremented and decremented, values are clamped to 0 and 2 n - 1, where n is the value returned by querying$(D_INLINECODE GL_STENCIL_BITS).)$(P The other two arguments to$(D_INLINECODE glStencilOp) specify stencil buffer actions that depend on whether subsequent depth buffer tests succeed ($(D_INLINECODE dppass) ) or fail ($(D_INLINECODE dpfail) ) (see$(D_INLINECODE glDepthFunc) ). The actions are specified using the same eight symbolic constants as$(D_INLINECODE sfail). Note that$(D_INLINECODE dpfail) is ignored when there is no depth buffer, or when the depth buffer is not enabled. In these cases,$(D_INLINECODE sfail) and$(D_INLINECODE dppass) specify stencil action when the stencil test fails and passes, respectively.) | |
| * | |
| * $(P Initially the stencil test is disabled. If there is no stencil buffer, no stencil modification can occur and it is as if the stencil tests always pass, regardless of any call to$(D_INLINECODE glStencilOp).)$(P $(D_INLINECODE glStencilOp) is the same as calling$(D_INLINECODE glStencilOpSeparate) with$(D_INLINECODE face) set to$(D_INLINECODE GL_FRONT_AND_BACK).) | |
| * | |
| * Params: | |
| * sfail = $(P Specifies the action to take when the stencil test fails. Eight symbolic constants are accepted:$(D_INLINECODE GL_KEEP),$(D_INLINECODE GL_ZERO),$(D_INLINECODE GL_REPLACE),$(D_INLINECODE GL_INCR),$(D_INLINECODE GL_INCR_WRAP),$(D_INLINECODE GL_DECR),$(D_INLINECODE GL_DECR_WRAP), and$(D_INLINECODE GL_INVERT). The initial value is$(D_INLINECODE GL_KEEP).) | |
| * dpfail = $(P Specifies the stencil action when the stencil test passes, but the depth test fails.$(D_INLINECODE dpfail) accepts the same symbolic constants as$(D_INLINECODE sfail). The initial value is$(D_INLINECODE GL_KEEP).) | |
| * dppass = $(P Specifies the stencil action when both the stencil test and the depth test pass, or when the stencil test passes and either there is no depth buffer or depth testing is not enabled.$(D_INLINECODE dppass) accepts the same symbolic constants as$(D_INLINECODE sfail). The initial value is$(D_INLINECODE GL_KEEP).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBlendFunc),$(D_INLINECODE glDepthFunc),$(D_INLINECODE glEnable),$(D_INLINECODE glLogicOp),$(D_INLINECODE glStencilFunc),$(D_INLINECODE glStencilFuncSeparate),$(D_INLINECODE glStencilMask),$(D_INLINECODE glStencilMaskSeparate),$(D_INLINECODE glStencilOpSeparate)) | |
| */ | |
| extern(C) void function(GLenum sfail, GLenum dpfail, GLenum dppass) @system @nogc nothrow glStencilOp; | |
| /** | |
| * glStencilOpSeparate: man4/glStencilOpSeparate.xml | |
| * | |
| * $(P Stenciling, like depth-buffering, enables and disables drawing on a per-pixel basis. You draw into the stencil planes using GL drawing primitives, then render geometry and images, using the stencil planes to mask out portions of the screen. Stenciling is typically used in multipass rendering algorithms to achieve special effects, such as decals, outlining, and constructive solid geometry rendering.)$(P The stencil test conditionally eliminates a pixel based on the outcome of a comparison between the value in the stencil buffer and a reference value. To enable and disable the test, call$(D_INLINECODE glEnable) and$(D_INLINECODE glDisable) with argument$(D_INLINECODE GL_STENCIL_TEST); to control it, call$(D_INLINECODE glStencilFunc) or$(D_INLINECODE glStencilFuncSeparate).)$(P There can be two separate sets of$(D_INLINECODE sfail),$(D_INLINECODE dpfail), and$(D_INLINECODE dppass) parameters; one affects back-facing polygons, and the other affects front-facing polygons as well as other non-polygon primitives.$(D_INLINECODE glStencilOp) sets both front and back stencil state to the same values, as if$(D_INLINECODE glStencilOpSeparate) were called with$(D_INLINECODE face) set to$(D_INLINECODE GL_FRONT_AND_BACK).)$(P $(D_INLINECODE glStencilOpSeparate) takes three arguments that indicate what happens to the stored stencil value while stenciling is enabled. If the stencil test fails, no change is made to the pixel's color or depth buffers, and$(D_INLINECODE sfail) specifies what happens to the stencil buffer contents. The following eight actions are possible.) variablelist$(P Stencil buffer values are treated as unsigned integers. When incremented and decremented, values are clamped to 0 and 2 n - 1, where n is the value returned by querying$(D_INLINECODE GL_STENCIL_BITS).)$(P The other two arguments to$(D_INLINECODE glStencilOpSeparate) specify stencil buffer actions that depend on whether subsequent depth buffer tests succeed ($(D_INLINECODE dppass) ) or fail ($(D_INLINECODE dpfail) ) (see$(D_INLINECODE glDepthFunc) ). The actions are specified using the same eight symbolic constants as$(D_INLINECODE sfail). Note that$(D_INLINECODE dpfail) is ignored when there is no depth buffer, or when the depth buffer is not enabled. In these cases,$(D_INLINECODE sfail) and$(D_INLINECODE dppass) specify stencil action when the stencil test fails and passes, respectively.) | |
| * | |
| * $(P Initially the stencil test is disabled. If there is no stencil buffer, no stencil modification can occur and it is as if the stencil test always passes.) | |
| * | |
| * Params: | |
| * face = $(P Specifies whether front and/or back stencil state is updated. Three symbolic constants are valid:$(D_INLINECODE GL_FRONT),$(D_INLINECODE GL_BACK), and$(D_INLINECODE GL_FRONT_AND_BACK).) | |
| * sfail = $(P Specifies the action to take when the stencil test fails. Eight symbolic constants are accepted:$(D_INLINECODE GL_KEEP),$(D_INLINECODE GL_ZERO),$(D_INLINECODE GL_REPLACE),$(D_INLINECODE GL_INCR),$(D_INLINECODE GL_INCR_WRAP),$(D_INLINECODE GL_DECR),$(D_INLINECODE GL_DECR_WRAP), and$(D_INLINECODE GL_INVERT). The initial value is$(D_INLINECODE GL_KEEP).) | |
| * dpfail = $(P Specifies the stencil action when the stencil test passes, but the depth test fails.$(D_INLINECODE dpfail) accepts the same symbolic constants as$(D_INLINECODE sfail). The initial value is$(D_INLINECODE GL_KEEP).) | |
| * dppass = $(P Specifies the stencil action when both the stencil test and the depth test pass, or when the stencil test passes and either there is no depth buffer or depth testing is not enabled.$(D_INLINECODE dppass) accepts the same symbolic constants as$(D_INLINECODE sfail). The initial value is$(D_INLINECODE GL_KEEP).) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2006 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glBlendFunc),$(D_INLINECODE glDepthFunc),$(D_INLINECODE glEnable),$(D_INLINECODE glLogicOp),$(D_INLINECODE glStencilFunc),$(D_INLINECODE glStencilFuncSeparate),$(D_INLINECODE glStencilMask),$(D_INLINECODE glStencilMaskSeparate),$(D_INLINECODE glStencilOp)) | |
| */ | |
| extern(C) void function(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass) @system @nogc nothrow glStencilOpSeparate; | |
| /** | |
| * glTexBuffer: man4/glTexBuffer.xml | |
| * | |
| * $(P $(D_INLINECODE glTexBuffer) and$(D_INLINECODE glTextureBuffer) attaches the data store of a specified buffer object to a specified texture object, and specify the storage format for the texture image found found in the buffer object. The texture object must be a buffer texture.)$(P If$(D_INLINECODE buffer) is zero, any buffer object attached to the buffer texture is detached and no new buffer object is attached. If$(D_INLINECODE buffer) is non-zero, it must be the name of an existing buffer object.)$(P $(D_INLINECODE internalformat) specifies the storage format, and must be one of the following sized internal formats:)$(P $(D_INLINECODE internalformat) specifies the storage format, and must be one of the following sized internal formats:)$(B Component)$(B Sized Internal Format)$(B Base Type)$(B Components)$(B Norm) 0 1 2 3$(D_INLINECODE GL_R8) ubyte 1 YES R 0 0 1$(D_INLINECODE GL_R16) ushort 1 YES R 0 0 1$(D_INLINECODE GL_R16F) half 1 NO R 0 0 1$(D_INLINECODE GL_R32F) float 1 NO R 0 0 1$(D_INLINECODE GL_R8I) byte 1 NO R 0 0 1$(D_INLINECODE GL_R16I) short 1 NO R 0 0 1$(D_INLINECODE GL_R32I) int 1 NO R 0 0 1$(D_INLINECODE GL_R8UI) ubyte 1 NO R 0 0 1$(D_INLINECODE GL_R16UI) ushort 1 NO R 0 0 1$(D_INLINECODE GL_R32UI) uint 1 NO R 0 0 1$(D_INLINECODE GL_RG8) ubyte 2 YES R G 0 1$(D_INLINECODE GL_RG16) ushort 2 YES R G 0 1$(D_INLINECODE GL_RG16F) half 2 NO R G 0 1$(D_INLINECODE GL_RG32F) float 2 NO R G 0 1$(D_INLINECODE GL_RG8I) byte 2 NO R G 0 1$(D_INLINECODE GL_RG16I) short 2 NO R G 0 1$(D_INLINECODE GL_RG32I) int 2 NO R G 0 1$(D_INLINECODE GL_RG8UI) ubyte 2 NO R G 0 1$(D_INLINECODE GL_RG16UI) ushort 2 NO R G 0 1$(D_INLINECODE GL_RG32UI) uint 2 NO R G 0 1$(D_INLINECODE GL_RGB32F) float 3 NO R G B 1$(D_INLINECODE GL_RGB32I) int 3 NO R G B 1$(D_INLINECODE GL_RGB32UI) uint 3 NO R G B 1$(D_INLINECODE GL_RGBA8) uint 4 YES R G B A$(D_INLINECODE GL_RGBA16) short 4 YES R G B A$(D_INLINECODE GL_RGBA16F) half 4 NO R G B A$(D_INLINECODE GL_RGBA32F) float 4 NO R G B A$(D_INLINECODE GL_RGBA8I) byte 4 NO R G B A$(D_INLINECODE GL_RGBA16I) short 4 NO R G B A$(D_INLINECODE GL_RGBA32I) int 4 NO R G B A$(D_INLINECODE GL_RGBA8UI) ubyte 4 NO R G B A$(D_INLINECODE GL_RGBA16UI) ushort 4 NO R G B A$(D_INLINECODE GL_RGBA32UI) uint 4 NO R G B A$(P When a buffer object is attached to a buffer texture, the buffer object's data store is taken as the texture's texel array. The number of texels in the buffer texture's texel array is given by $$ \left\lfloor { size \over { components \times sizeof(base\_type) } } \right\rfloor $$ where $size$ is the size of the buffer object in basic machine units (the value of$(D_INLINECODE GL_BUFFER_SIZE) for$(D_INLINECODE buffer) ), and $components$ and $base\_type$ are the element count and base data type for elements, as specified in the table above. The number of texels in the texel array is then clamped to the value of the implementation-dependent limit$(D_INLINECODE GL_MAX_TEXTURE_BUFFER_SIZE). When a buffer texture is accessed in a shader, the results of a texel fetch are undefined if the specified texel coordinate is negative, or greater than or equal to the clamped number of texels in the texel array.) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target to which the texture is bound for$(D_INLINECODE glTexBuffer). Must be$(D_INLINECODE GL_TEXTURE_BUFFER).) | |
| * texture = $(P Specifies the texture object name for$(D_INLINECODE glTextureBuffer).) | |
| * internalFormat = $(P Specifies the internal format of the data in the store belonging to$(D_INLINECODE buffer).) | |
| * buffer = $(P Specifies the name of the buffer object whose storage to attach to the active buffer texture.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glGenBuffers),$(D_INLINECODE glBindBuffer),$(D_INLINECODE glBufferData),$(D_INLINECODE glDeleteBuffers),$(D_INLINECODE glGenTextures),$(D_INLINECODE glBindTexture),$(D_INLINECODE glDeleteTextures)) | |
| */ | |
| extern(C) void function(GLenum target, GLenum internalFormat, GLuint buffer) @system @nogc nothrow glTexBuffer; | |
| /// Ditto | |
| extern(C) void function(GLuint texture, GLenum internalformat, GLuint buffer) @system @nogc nothrow glTextureBuffer; | |
| /** | |
| * glTexBufferRange: man4/glTexBufferRange.xml | |
| * | |
| * $(P $(D_INLINECODE glTexBufferRange) and$(D_INLINECODE glTextureBufferRange) attach a range of the data store of a specified buffer object to a specified texture object, and specify the storage format for the texture image found found in the buffer object. The texture object must be a buffer texture.)$(P If$(D_INLINECODE buffer) is zero, any buffer object attached to the buffer texture is detached and no new buffer object is attached. If$(D_INLINECODE buffer) is non-zero, it must be the name of an existing buffer object.)$(P The start and size of the range are specified by$(D_INLINECODE offset) and$(D_INLINECODE size) respectively, both measured in basic machine units.$(D_INLINECODE offset) must be greater than or equal to zero,$(D_INLINECODE size) must be greater than zero, and the sum of$(D_INLINECODE offset) and$(D_INLINECODE size) must not exceed the value of$(D_INLINECODE GL_BUFFER_SIZE) for$(D_INLINECODE buffer). Furthermore,$(D_INLINECODE offset) must be an integer multiple of the value of$(D_INLINECODE GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT).)$(P $(D_INLINECODE internalformat) specifies the storage format, and must be one of the following sized internal formats:)$(B Component)$(B Sized Internal Format)$(B Base Type)$(B Components)$(B Norm) 0 1 2 3$(D_INLINECODE GL_R8) ubyte 1 YES R 0 0 1$(D_INLINECODE GL_R16) ushort 1 YES R 0 0 1$(D_INLINECODE GL_R16F) half 1 NO R 0 0 1$(D_INLINECODE GL_R32F) float 1 NO R 0 0 1$(D_INLINECODE GL_R8I) byte 1 NO R 0 0 1$(D_INLINECODE GL_R16I) short 1 NO R 0 0 1$(D_INLINECODE GL_R32I) int 1 NO R 0 0 1$(D_INLINECODE GL_R8UI) ubyte 1 NO R 0 0 1$(D_INLINECODE GL_R16UI) ushort 1 NO R 0 0 1$(D_INLINECODE GL_R32UI) uint 1 NO R 0 0 1$(D_INLINECODE GL_RG8) ubyte 2 YES R G 0 1$(D_INLINECODE GL_RG16) ushort 2 YES R G 0 1$(D_INLINECODE GL_RG16F) half 2 NO R G 0 1$(D_INLINECODE GL_RG32F) float 2 NO R G 0 1$(D_INLINECODE GL_RG8I) byte 2 NO R G 0 1$(D_INLINECODE GL_RG16I) short 2 NO R G 0 1$(D_INLINECODE GL_RG32I) int 2 NO R G 0 1$(D_INLINECODE GL_RG8UI) ubyte 2 NO R G 0 1$(D_INLINECODE GL_RG16UI) ushort 2 NO R G 0 1$(D_INLINECODE GL_RG32UI) uint 2 NO R G 0 1$(D_INLINECODE GL_RGB32F) float 3 NO R G B 1$(D_INLINECODE GL_RGB32I) int 3 NO R G B 1$(D_INLINECODE GL_RGB32UI) uint 3 NO R G B 1$(D_INLINECODE GL_RGBA8) uint 4 YES R G B A$(D_INLINECODE GL_RGBA16) short 4 YES R G B A$(D_INLINECODE GL_RGBA16F) half 4 NO R G B A$(D_INLINECODE GL_RGBA32F) float 4 NO R G B A$(D_INLINECODE GL_RGBA8I) byte 4 NO R G B A$(D_INLINECODE GL_RGBA16I) short 4 NO R G B A$(D_INLINECODE GL_RGBA32I) int 4 NO R G B A$(D_INLINECODE GL_RGBA8UI) ubyte 4 NO R G B A$(D_INLINECODE GL_RGBA16UI) ushort 4 NO R G B A$(D_INLINECODE GL_RGBA32UI) uint 4 NO R G B A$(P When a range of a buffer object is attached to a buffer texture, the specified range of the buffer object's data store is taken as the texture's texel array. The number of texels in the buffer texture's texel array is given by $$ \left\lfloor { size \over { components \times sizeof(base\_type) } } \right\rfloor $$ where $components$ and $base\_type$ are the element count and base data type for elements, as specified in the table above. The number of texels in the texel array is then clamped to the value of the implementation-dependent limit$(D_INLINECODE GL_MAX_TEXTURE_BUFFER_SIZE). When a buffer texture is accessed in a shader, the results of a texel fetch are undefined if the specified texel coordinate is negative, or greater than or equal to the clamped number of texels in the texel array.) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target to which the texture object is bound for$(D_INLINECODE glTexBufferRange). Must be$(D_INLINECODE GL_TEXTURE_BUFFER).) | |
| * texture = $(P Specifies the texture object name for$(D_INLINECODE glTextureBufferRange).) | |
| * internalFormat = $(P Specifies the internal format of the data in the store belonging to$(D_INLINECODE buffer).) | |
| * buffer = $(P Specifies the name of the buffer object whose storage to attach to the active buffer texture.) | |
| * offset = $(P Specifies the offset of the start of the range of the buffer's data store to attach.) | |
| * size = $(P Specifies the size of the range of the buffer's data store to attach.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 2012-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999.$(LINK2 http://opencontent.org/openpub/, http://opencontent.org/openpub/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glTexBuffer).) | |
| */ | |
| extern(C) void function(GLenum target, GLenum internalFormat, GLuint buffer, GLintptr offset, GLsizeiptr size) @system @nogc nothrow glTexBufferRange; | |
| /// Ditto | |
| extern(C) void function(GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizei size) @system @nogc nothrow glTextureBufferRange; | |
| /** | |
| * glTexImage1D: man4/glTexImage1D.xml | |
| * | |
| * $(P Texturing maps a portion of a specified texture image onto each graphical primitive for which texturing is enabled. To enable and disable one-dimensional texturing, call$(D_INLINECODE glEnable) and$(D_INLINECODE glDisable) with argument$(D_INLINECODE GL_TEXTURE_1D).)$(P Texture images are defined with$(D_INLINECODE glTexImage1D). The arguments describe the parameters of the texture image, such as width, width of the border, level-of-detail number (see$(D_INLINECODE glTexParameter) ), and the internal resolution and format used to store the image. The last three arguments describe how the image is represented in memory.)$(P If$(D_INLINECODE target) is$(D_INLINECODE GL_PROXY_TEXTURE_1D), no data is read from$(D_INLINECODE data), but all of the texture image state is recalculated, checked for consistency, and checked against the implementation's capabilities. If the implementation cannot handle a texture of the requested texture size, it sets all of the image state to 0, but does not generate an error (see$(D_INLINECODE glGetError) ). To query for an entire mipmap array, use an image array level greater than or equal to 1.)$(P If$(D_INLINECODE target) is$(D_INLINECODE GL_TEXTURE_1D), data is read from$(D_INLINECODE data) as a sequence of signed or unsigned bytes, shorts, or longs, or single-precision floating-point values, depending on$(D_INLINECODE type). These values are grouped into sets of one, two, three, or four values, depending on$(D_INLINECODE format), to form elements. Each data byte is treated as eight 1-bit elements, with bit ordering determined by$(D_INLINECODE GL_UNPACK_LSB_FIRST) (see$(D_INLINECODE glPixelStore) ).)$(P If a non-zero named buffer object is bound to the$(D_INLINECODE GL_PIXEL_UNPACK_BUFFER) target (see$(D_INLINECODE glBindBuffer) ) while a texture image is specified,$(D_INLINECODE data) is treated as a byte offset into the buffer object's data store.)$(P The first element corresponds to the left end of the texture array. Subsequent elements progress left-to-right through the remaining texels in the texture array. The final element corresponds to the right end of the texture array.)$(P $(D_INLINECODE format) determines the composition of each element in$(D_INLINECODE data). It can assume one of these symbolic values:) variablelist$(P If an application wants to store the texture at a certain resolution or in a certain format, it can request the resolution and format with$(D_INLINECODE internalFormat). The GL will choose an internal representation that closely approximates that requested by$(D_INLINECODE internalFormat), but it may not match exactly. (The representations specified by$(D_INLINECODE GL_RED),$(D_INLINECODE GL_RG),$(D_INLINECODE GL_RGB) and$(D_INLINECODE GL_RGBA) must match exactly.))$(P $(D_INLINECODE internalFormat) may be one of the base internal formats shown in Table 1, below)$(P <h3> Base Internal Formats</h3>$(B Base Internal Format)$(B RGBA, Depth and Stencil Values)$(B Internal Components)$(D_INLINECODE GL_DEPTH_COMPONENT) Depth D$(D_INLINECODE GL_DEPTH_STENCIL) Depth, Stencil D, S$(D_INLINECODE GL_RED) Red R$(D_INLINECODE GL_RG) Red, Green R, G$(D_INLINECODE GL_RGB) Red, Green, Blue R, G, B$(D_INLINECODE GL_RGBA) Red, Green, Blue, Alpha R, G, B, A)$(P $(D_INLINECODE internalFormat) may also be one of the sized internal formats shown in Table 2, below)$(P <h3> Sized Internal Formats</h3>$(B Sized Internal Format)$(B Base Internal Format)$(B Red Bits)$(B Green Bits)$(B Blue Bits)$(B Alpha Bits)$(B Shared Bits)$(D_INLINECODE GL_R8)$(D_INLINECODE GL_RED) 8$(D_INLINECODE GL_R8_SNORM)$(D_INLINECODE GL_RED) s8$(D_INLINECODE GL_R16)$(D_INLINECODE GL_RED) 16$(D_INLINECODE GL_R16_SNORM)$(D_INLINECODE GL_RED) s16$(D_INLINECODE GL_RG8)$(D_INLINECODE GL_RG) 8 8$(D_INLINECODE GL_RG8_SNORM)$(D_INLINECODE GL_RG) s8 s8$(D_INLINECODE GL_RG16)$(D_INLINECODE GL_RG) 16 16$(D_INLINECODE GL_RG16_SNORM)$(D_INLINECODE GL_RG) s16 s16$(D_INLINECODE GL_R3_G3_B2)$(D_INLINECODE GL_RGB) 3 3 2$(D_INLINECODE GL_RGB4)$(D_INLINECODE GL_RGB) 4 4 4$(D_INLINECODE GL_RGB5)$(D_INLINECODE GL_RGB) 5 5 5$(D_INLINECODE GL_RGB8)$(D_INLINECODE GL_RGB) 8 8 8$(D_INLINECODE GL_RGB8_SNORM)$(D_INLINECODE GL_RGB) s8 s8 s8$(D_INLINECODE GL_RGB10)$(D_INLINECODE GL_RGB) 10 10 10$(D_INLINECODE GL_RGB12)$(D_INLINECODE GL_RGB) 12 12 12$(D_INLINECODE GL_RGB16_SNORM)$(D_INLINECODE GL_RGB) 16 16 16$(D_INLINECODE GL_RGBA2)$(D_INLINECODE GL_RGB) 2 2 2 2$(D_INLINECODE GL_RGBA4)$(D_INLINECODE GL_RGB) 4 4 4 4$(D_INLINECODE GL_RGB5_A1)$(D_INLINECODE GL_RGBA) 5 5 5 1$(D_INLINECODE GL_RGBA8)$(D_INLINECODE GL_RGBA) 8 8 8 8$(D_INLINECODE GL_RGBA8_SNORM)$(D_INLINECODE GL_RGBA) s8 s8 s8 s8$(D_INLINECODE GL_RGB10_A2)$(D_INLINECODE GL_RGBA) 10 10 10 2$(D_INLINECODE GL_RGB10_A2UI)$(D_INLINECODE GL_RGBA) ui10 ui10 ui10 ui2$(D_INLINECODE GL_RGBA12)$(D_INLINECODE GL_RGBA) 12 12 12 12$(D_INLINECODE GL_RGBA16)$(D_INLINECODE GL_RGBA) 16 16 16 16$(D_INLINECODE GL_SRGB8)$(D_INLINECODE GL_RGB) 8 8 8$(D_INLINECODE GL_SRGB8_ALPHA8)$(D_INLINECODE GL_RGBA) 8 8 8 8$(D_INLINECODE GL_R16F)$(D_INLINECODE GL_RED) f16$(D_INLINECODE GL_RG16F)$(D_INLINECODE GL_RG) f16 f16$(D_INLINECODE GL_RGB16F)$(D_INLINECODE GL_RGB) f16 f16 f16$(D_INLINECODE GL_RGBA16F)$(D_INLINECODE GL_RGBA) f16 f16 f16 f16$(D_INLINECODE GL_R32F)$(D_INLINECODE GL_RED) f32$(D_INLINECODE GL_RG32F)$(D_INLINECODE GL_RG) f32 f32$(D_INLINECODE GL_RGB32F)$(D_INLINECODE GL_RGB) f32 f32 f32$(D_INLINECODE GL_RGBA32F)$(D_INLINECODE GL_RGBA) f32 f32 f32 f32$(D_INLINECODE GL_R11F_G11F_B10F)$(D_INLINECODE GL_RGB) f11 f11 f10$(D_INLINECODE GL_RGB9_E5)$(D_INLINECODE GL_RGB) 9 9 9 5$(D_INLINECODE GL_R8I)$(D_INLINECODE GL_RED) i8$(D_INLINECODE GL_R8UI)$(D_INLINECODE GL_RED) ui8$(D_INLINECODE GL_R16I)$(D_INLINECODE GL_RED) i16$(D_INLINECODE GL_R16UI)$(D_INLINECODE GL_RED) ui16$(D_INLINECODE GL_R32I)$(D_INLINECODE GL_RED) i32$(D_INLINECODE GL_R32UI)$(D_INLINECODE GL_RED) ui32$(D_INLINECODE GL_RG8I)$(D_INLINECODE GL_RG) i8 i8$(D_INLINECODE GL_RG8UI)$(D_INLINECODE GL_RG) ui8 ui8$(D_INLINECODE GL_RG16I)$(D_INLINECODE GL_RG) i16 i16$(D_INLINECODE GL_RG16UI)$(D_INLINECODE GL_RG) ui16 ui16$(D_INLINECODE GL_RG32I)$(D_INLINECODE GL_RG) i32 i32$(D_INLINECODE GL_RG32UI)$(D_INLINECODE GL_RG) ui32 ui32$(D_INLINECODE GL_RGB8I)$(D_INLINECODE GL_RGB) i8 i8 i8$(D_INLINECODE GL_RGB8UI)$(D_INLINECODE GL_RGB) ui8 ui8 ui8$(D_INLINECODE GL_RGB16I)$(D_INLINECODE GL_RGB) i16 i16 i16$(D_INLINECODE GL_RGB16UI)$(D_INLINECODE GL_RGB) ui16 ui16 ui16$(D_INLINECODE GL_RGB32I)$(D_INLINECODE GL_RGB) i32 i32 i32$(D_INLINECODE GL_RGB32UI)$(D_INLINECODE GL_RGB) ui32 ui32 ui32$(D_INLINECODE GL_RGBA8I)$(D_INLINECODE GL_RGBA) i8 i8 i8 i8$(D_INLINECODE GL_RGBA8UI)$(D_INLINECODE GL_RGBA) ui8 ui8 ui8 ui8$(D_INLINECODE GL_RGBA16I)$(D_INLINECODE GL_RGBA) i16 i16 i16 i16$(D_INLINECODE GL_RGBA16UI)$(D_INLINECODE GL_RGBA) ui16 ui16 ui16 ui16$(D_INLINECODE GL_RGBA32I)$(D_INLINECODE GL_RGBA) i32 i32 i32 i32$(D_INLINECODE GL_RGBA32UI)$(D_INLINECODE GL_RGBA) ui32 ui32 ui32 ui32)$(P Finally,$(D_INLINECODE internalFormat) may also be one of the generic or compressed compressed texture formats shown in Table 3 below)$(P <h3> Compressed Internal Formats</h3>$(B Compressed Internal Format)$(B Base Internal Format)$(B Type)$(D_INLINECODE GL_COMPRESSED_RED)$(D_INLINECODE GL_RED) Generic$(D_INLINECODE GL_COMPRESSED_RG)$(D_INLINECODE GL_RG) Generic$(D_INLINECODE GL_COMPRESSED_RGB)$(D_INLINECODE GL_RGB) Generic$(D_INLINECODE GL_COMPRESSED_RGBA)$(D_INLINECODE GL_RGBA) Generic$(D_INLINECODE GL_COMPRESSED_SRGB)$(D_INLINECODE GL_RGB) Generic$(D_INLINECODE GL_COMPRESSED_SRGB_ALPHA)$(D_INLINECODE GL_RGBA) Generic$(D_INLINECODE GL_COMPRESSED_RED_RGTC1)$(D_INLINECODE GL_RED) Specific$(D_INLINECODE GL_COMPRESSED_SIGNED_RED_RGTC1)$(D_INLINECODE GL_RED) Specific$(D_INLINECODE GL_COMPRESSED_RG_RGTC2)$(D_INLINECODE GL_RG) Specific$(D_INLINECODE GL_COMPRESSED_SIGNED_RG_RGTC2)$(D_INLINECODE GL_RG) Specific$(D_INLINECODE GL_COMPRESSED_RGBA_BPTC_UNORM)$(D_INLINECODE GL_RGBA) Specific$(D_INLINECODE GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM)$(D_INLINECODE GL_RGBA) Specific$(D_INLINECODE GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT)$(D_INLINECODE GL_RGB) Specific$(D_INLINECODE GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT)$(D_INLINECODE GL_RGB) Specific)$(P If the$(D_INLINECODE internalFormat) parameter is one of the generic compressed formats,$(D_INLINECODE GL_COMPRESSED_RED),$(D_INLINECODE GL_COMPRESSED_RG),$(D_INLINECODE GL_COMPRESSED_RGB), or$(D_INLINECODE GL_COMPRESSED_RGBA), the GL will replace the internal format with the symbolic constant for a specific internal format and compress the texture before storage. If no corresponding internal format is available, or the GL can not compress that image for any reason, the internal format is instead replaced with a corresponding base internal format.)$(P If the$(D_INLINECODE internalFormat) parameter is$(D_INLINECODE GL_SRGB),$(D_INLINECODE GL_SRGB8),$(D_INLINECODE GL_SRGB_ALPHA) or$(D_INLINECODE GL_SRGB8_ALPHA8), the texture is treated as if the red, green, or blue components are encoded in the sRGB color space. Any alpha component is left unchanged. The conversion from the sRGB encoded component c s to a linear component c l is:)$(P c l = { c s 12.92 if c s ≤ 0.04045 ( c s + 0.055 1.055 ) 2.4 if c s > 0.04045)$(P Assume c s is the sRGB component in the range [0,1].)$(P Use the$(D_INLINECODE GL_PROXY_TEXTURE_1D) target to try out a resolution and format. The implementation will update and recompute its best match for the requested storage resolution and format. To then query this state, call$(D_INLINECODE glGetTexLevelParameter). If the texture cannot be accommodated, texture state is set to 0.)$(P A one-component texture image uses only the red component of the RGBA color from$(D_INLINECODE data). A two-component image uses the R and A values. A three-component image uses the R, G, and B values. A four-component image uses all of the RGBA components.)$(P Image-based shadowing can be enabled by comparing texture r coordinates to depth texture values to generate a boolean result. See$(D_INLINECODE glTexParameter) for details on texture comparison.) | |
| * | |
| * $(P $(D_INLINECODE glPixelStore) modes affect texture images.)$(P $(D_INLINECODE data) may be a null pointer. In this case texture memory is allocated to accommodate a texture of width$(D_INLINECODE width). You can then download subtextures to initialize the texture memory. The image is undefined if the program tries to apply an uninitialized portion of the texture image to a primitive.)$(P $(D_INLINECODE glTexImage1D) specifies the one-dimensional texture for the current texture unit, specified with$(D_INLINECODE glActiveTexture).)$(P $(D_INLINECODE GL_STENCIL_INDEX) may be used for$(D_INLINECODE format) only if the GL version is 4.4 or higher.) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target texture. Must be$(D_INLINECODE GL_TEXTURE_1D) or$(D_INLINECODE GL_PROXY_TEXTURE_1D).) | |
| * level = $(P Specifies the level-of-detail number. Level 0 is the base image level. Level is the th mipmap reduction image.) | |
| * internalFormat = $(P Specifies the number of color components in the texture. Must be one of base internal formats given in Table 1, one of the sized internal formats given in Table 2, or one of the compressed internal formats given in Table 3, below.) | |
| * width = $(P Specifies the width of the texture image. All implementations support texture images that are at least 1024 texels wide. The height of the 1D texture image is 1.) | |
| * border = $(P This value must be 0.) | |
| * format = $(P Specifies the format of the pixel data. The following symbolic values are accepted:$(D_INLINECODE GL_RED),$(D_INLINECODE GL_RG),$(D_INLINECODE GL_RGB),$(D_INLINECODE GL_BGR),$(D_INLINECODE GL_RGBA),$(D_INLINECODE GL_BGRA),$(D_INLINECODE GL_RED_INTEGER),$(D_INLINECODE GL_RG_INTEGER),$(D_INLINECODE GL_RGB_INTEGER),$(D_INLINECODE GL_BGR_INTEGER),$(D_INLINECODE GL_RGBA_INTEGER),$(D_INLINECODE GL_BGRA_INTEGER),$(D_INLINECODE GL_STENCIL_INDEX),$(D_INLINECODE GL_DEPTH_COMPONENT),$(D_INLINECODE GL_DEPTH_STENCIL).) | |
| * type = $(P Specifies the data type of the pixel data. The following symbolic values are accepted:$(D_INLINECODE GL_UNSIGNED_BYTE),$(D_INLINECODE GL_BYTE),$(D_INLINECODE GL_UNSIGNED_SHORT),$(D_INLINECODE GL_SHORT),$(D_INLINECODE GL_UNSIGNED_INT),$(D_INLINECODE GL_INT),$(D_INLINECODE GL_FLOAT),$(D_INLINECODE GL_UNSIGNED_BYTE_3_3_2),$(D_INLINECODE GL_UNSIGNED_BYTE_2_3_3_REV),$(D_INLINECODE GL_UNSIGNED_SHORT_5_6_5),$(D_INLINECODE GL_UNSIGNED_SHORT_5_6_5_REV),$(D_INLINECODE GL_UNSIGNED_SHORT_4_4_4_4),$(D_INLINECODE GL_UNSIGNED_SHORT_4_4_4_4_REV),$(D_INLINECODE GL_UNSIGNED_SHORT_5_5_5_1),$(D_INLINECODE GL_UNSIGNED_SHORT_1_5_5_5_REV),$(D_INLINECODE GL_UNSIGNED_INT_8_8_8_8),$(D_INLINECODE GL_UNSIGNED_INT_8_8_8_8_REV),$(D_INLINECODE GL_UNSIGNED_INT_10_10_10_2), and$(D_INLINECODE GL_UNSIGNED_INT_2_10_10_10_REV).) | |
| * data = $(P Specifies a pointer to the image data in memory.) | |
| * | |
| * Copyright: | |
| * $(P Copyright™ 1991-2006 Silicon Graphics, Inc. Copyright™ 2011-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see$(LINK2 http://oss.sgi.com/projects/FreeB/, http://oss.sgi.com/projects/FreeB/).) | |
| * | |
| * See_Also: | |
| * $(P $(D_INLINECODE glActiveTexture),$(D_INLINECODE glCompressedTexImage1D),$(D_INLINECODE glCompressedTexSubImage1D),$(D_INLINECODE glCopyTexImage1D),$(D_INLINECODE glCopyTexSubImage1D),$(D_INLINECODE glGetCompressedTexImage),$(D_INLINECODE glPixelStore),$(D_INLINECODE glTexImage2D),$(D_INLINECODE glTexImage3D),$(D_INLINECODE glTexSubImage1D),$(D_INLINECODE glTexSubImage2D),$(D_INLINECODE glTexSubImage3D),$(D_INLINECODE glTexParameter)) | |
| */ | |
| extern(C) void function(GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid* data) @system @nogc nothrow glTexImage1D; | |
| /** | |
| * glTexImage2D: man4/glTexImage2D.xml | |
| * | |
| * $(P Texturing allows elements of an image array to be read by shaders.)$(P To define texture images, call$(D_INLINECODE glTexImage2D). The arguments describe the parameters of the texture image, such as height, width, width of the border, level-of-detail number (see$(D_INLINECODE glTexParameter) ), and number of color components provided. The last three arguments describe how the image is represented in memory.)$(P If$(D_INLINECODE target) is$(D_INLINECODE GL_PROXY_TEXTURE_2D),$(D_INLINECODE GL_PROXY_TEXTURE_1D_ARRAY),$(D_INLINECODE GL_PROXY_TEXTURE_CUBE_MAP), or$(D_INLINECODE GL_PROXY_TEXTURE_RECTANGLE), no data is read from$(D_INLINECODE data), but all of the texture image state is recalculated, checked for consistency, and checked against the implementation's capabilities. If the implementation cannot handle a texture of the requested texture size, it sets all of the image state to 0, but does not generate an error (see$(D_INLINECODE glGetError) ). To query for an entire mipmap array, use an image array level greater than or equal to 1.)$(P If$(D_INLINECODE target) is$(D_INLINECODE GL_TEXTURE_2D),$(D_INLINECODE GL_TEXTURE_RECTANGLE) or one of the$(D_INLINECODE GL_TEXTURE_CUBE_MAP) targets, data is read from$(D_INLINECODE data) as a sequence of signed or unsigned bytes, shorts, or longs, or single-precision floating-point values, depending on$(D_INLINECODE type). These values are grouped into sets of one, two, three, or four values, depending on$(D_INLINECODE format), to form elements. Each data byte is treated as eight 1-bit elements, with bit ordering determined by$(D_INLINECODE GL_UNPACK_LSB_FIRST) (see$(D_INLINECODE glPixelStore) ).)$(P If$(D_INLINECODE target) is$(D_INLINECODE GL_TEXTURE_1D_ARRAY), data is interpreted as an array of one-dimensional images.)$(P If a non-zero named buffer object is bound to the$(D_INLINECODE GL_PIXEL_UNPACK_BUFFER) target (see$(D_INLINECODE glBindBuffer) ) while a texture image is specified,$(D_INLINECODE data) is treated as a byte offset into the buffer object's data store.)$(P The first element corresponds to the lower left corner of the texture image. Subsequent elements progress left-to-right through the remaining texels in the lowest row of the texture image, and then in successively higher rows of the texture image. The final element corresponds to the upper right corner of the texture image.)$(P $(D_INLINECODE format) determines the composition of each element in$(D_INLINECODE data). It can assume one of these symbolic values:) variablelist$(P If an application wants to store the texture at a certain resolution or in a certain format, it can request the resolution and format with$(D_INLINECODE internalFormat). The GL will choose an internal representation that closely approximates that requested by$(D_INLINECODE internalFormat), but it may not match exactly. (The representations specified by$(D_INLINECODE GL_RED),$(D_INLINECODE GL_RG),$(D_INLINECODE GL_RGB), and$(D_INLINECODE GL_RGBA) must match exactly.))$(P $(D_INLINECODE internalFormat) may be one of the base internal formats shown in Table 1, below)$(P <h3> Base Internal Formats</h3>$(B Base Internal Format)$(B RGBA, Depth and Stencil Values)$(B Internal Components)$(D_INLINECODE GL_DEPTH_COMPONENT) Depth D$(D_INLINECODE GL_DEPTH_STENCIL) Depth, Stencil D, S$(D_INLINECODE GL_RED) Red R$(D_INLINECODE GL_RG) Red, Green R, G$(D_INLINECODE GL_RGB) Red, Green, Blue R, G, B$(D_INLINECODE GL_RGBA) Red, Green, Blue, Alpha R, G, B, A)$(P $(D_INLINECODE internalFormat) may also be one of the sized internal formats shown in Table 2, below)$(P <h3> Sized Internal Formats</h3>$(B Sized Internal Format)$(B Base Internal Format)$(B Red Bits)$(B Green Bits)$(B Blue Bits)$(B Alpha Bits)$(B Shared Bits)$(D_INLINECODE GL_R8)$(D_INLINECODE GL_RED) 8$(D_INLINECODE GL_R8_SNORM)$(D_INLINECODE GL_RED) s8$(D_INLINECODE GL_R16)$(D_INLINECODE GL_RED) 16$(D_INLINECODE GL_R16_SNORM)$(D_INLINECODE GL_RED) s16$(D_INLINECODE GL_RG8)$(D_INLINECODE GL_RG) 8 8$(D_INLINECODE GL_RG8_SNORM)$(D_INLINECODE GL_RG) s8 s8$(D_INLINECODE GL_RG16)$(D_INLINECODE GL_RG) 16 16$(D_INLINECODE GL_RG16_SNORM)$(D_INLINECODE GL_RG) s16 s16$(D_INLINECODE GL_R3_G3_B2)$(D_INLINECODE GL_RGB) 3 3 2$(D_INLINECODE GL_RGB4)$(D_INLINECODE GL_RGB) 4 4 4$(D_INLINECODE GL_RGB5)$(D_INLINECODE GL_RGB) 5 5 5$(D_INLINECODE GL_RGB8)$(D_INLINECODE GL_RGB) 8 8 8$(D_INLINECODE GL_RGB8_SNORM)$(D_INLINECODE GL_RGB) s8 s8 s8$(D_INLINECODE GL_RGB10)$(D_INLINECODE GL_RGB) 10 10 10$(D_INLINECODE GL_RGB12)$(D_INLINECODE GL_RGB) 12 12 12$(D_INLINECODE GL_RGB16_SNORM)$(D_INLINECODE GL_RGB) 16 16 16$(D_INLINECODE GL_RGBA2)$(D_INLINECODE GL_RGB) 2 2 2 2$(D_INLINECODE GL_RGBA4)$(D_INLINECODE GL_RGB) 4 4 4 4$(D_INLINECODE GL_RGB5_A1)$(D_INLINECODE GL_RGBA) 5 5 5 1$(D_INLINECODE GL_RGBA8)$(D_INLINECODE GL_RGBA) 8 8 8 8$(D_INLINECODE GL_RGBA8_SNORM)$(D_INLINECODE GL_RGBA) s8 s8 s8 s8$(D_INLINECODE GL_RGB10_A2)$(D_INLINECODE GL_RGBA) 10 10 10 2$(D_INLINECODE GL_RGB10_A2UI)$(D_INLINECODE GL_RGBA) ui10 ui10 ui10 ui2$(D_INLINECODE GL_RGBA12)$(D_INLINECODE GL_RGBA) 12 12 12 12$(D_INLINECODE GL_RGBA16)$(D_INLINECODE GL_RGBA) 16 16 16 16$(D_INLINECODE GL_SRGB8)$(D_INLINECODE GL_RGB) 8 8 8$(D_INLINECODE GL_SRGB8_ALPHA8)$(D_INLINECODE GL_RGBA) 8 8 8 8$(D_INLINECODE GL_R16F)$(D_INLINECODE GL_RED) f16$(D_INLINECODE GL_RG16F)$(D_INLINECODE GL_RG) f16 f16$(D_INLINECODE GL_RGB16F)$(D_INLINECODE GL_RGB) f16 f16 f16$(D_INLINECODE GL_RGBA16F)$(D_INLINECODE GL_RGBA) f16 f16 f16 f16$(D_INLINECODE GL_R32F)$(D_INLINECODE GL_RED) f32$(D_INLINECODE GL_RG32F)$(D_INLINECODE GL_RG) f32 f32$(D_INLINECODE GL_RGB32F)$(D_INLINECODE GL_RGB) f32 f32 f32$(D_INLINECODE GL_RGBA32F)$(D_INLINECODE GL_RGBA) f32 f32 f32 f32$(D_INLINECODE GL_R11F_G11F_B10F)$(D_INLINECODE GL_RGB) f11 f11 f10$(D_INLINECODE GL_RGB9_E5)$(D_INLINECODE GL_RGB) 9 9 9 5$(D_INLINECODE GL_R8I)$(D_INLINECODE GL_RED) i8$(D_INLINECODE GL_R8UI)$(D_INLINECODE GL_RED) ui8$(D_INLINECODE GL_R16I)$(D_INLINECODE GL_RED) i16$(D_INLINECODE GL_R16UI)$(D_INLINECODE GL_RED) ui16$(D_INLINECODE GL_R32I)$(D_INLINECODE GL_RED) i32$(D_INLINECODE GL_R32UI)$(D_INLINECODE GL_RED) ui32$(D_INLINECODE GL_RG8I)$(D_INLINECODE GL_RG) i8 i8$(D_INLINECODE GL_RG8UI)$(D_INLINECODE GL_RG) ui8 ui8$(D_INLINECODE GL_RG16I)$(D_INLINECODE GL_RG) i16 i16$(D_INLINECODE GL_RG16UI)$(D_INLINECODE GL_RG) ui16 ui16$(D_INLINECODE GL_RG32I)$(D_INLINECODE GL_RG) i32 i32$(D_INLINECODE GL_RG32UI)$(D_INLINECODE GL_RG) ui32 ui32$(D_INLINECODE GL_RGB8I)$(D_INLINECODE GL_RGB) i8 i8 i8$(D_INLINECODE GL_RGB8UI)$(D_INLINECODE GL_RGB) ui8 ui8 ui8$(D_INLINECODE GL_RGB16I)$(D_INLINECODE GL_RGB) i16 i16 i16$(D_INLINECODE GL_RGB16UI)$(D_INLINECODE GL_RGB) ui16 ui16 ui16$(D_INLINECODE GL_RGB32I)$(D_INLINECODE GL_RGB) i32 i32 i32$(D_INLINECODE GL_RGB32UI)$(D_INLINECODE GL_RGB) ui32 ui32 ui32$(D_INLINECODE GL_RGBA8I)$(D_INLINECODE GL_RGBA) i8 i8 i8 i8$(D_INLINECODE GL_RGBA8UI)$(D_INLINECODE GL_RGBA) ui8 ui8 ui8 ui8$(D_INLINECODE GL_RGBA16I)$(D_INLINECODE GL_RGBA) i16 i16 i16 i16$(D_INLINECODE GL_RGBA16UI)$(D_INLINECODE GL_RGBA) ui16 ui16 ui16 ui16$(D_INLINECODE GL_RGBA32I)$(D_INLINECODE GL_RGBA) i32 i32 i32 i32$(D_INLINECODE GL_RGBA32UI)$(D_INLINECODE GL_RGBA) ui32 ui32 ui32 ui32)$(P Finally,$(D_INLINECODE internalFormat) may also be one of the generic or compressed compressed texture formats shown in Table 3 below)$(P <h3> Compressed Internal Formats</h3>$(B Compressed Internal Format)$(B Base Internal Format)$(B Type)$(D_INLINECODE GL_COMPRESSED_RED)$(D_INLINECODE GL_RED) Generic$(D_INLINECODE GL_COMPRESSED_RG)$(D_INLINECODE GL_RG) Generic$(D_INLINECODE GL_COMPRESSED_RGB)$(D_INLINECODE GL_RGB) Generic$(D_INLINECODE GL_COMPRESSED_RGBA)$(D_INLINECODE GL_RGBA) Generic$(D_INLINECODE GL_COMPRESSED_SRGB)$(D_INLINECODE GL_RGB) Generic$(D_INLINECODE GL_COMPRESSED_SRGB_ALPHA)$(D_INLINECODE GL_RGBA) Generic$(D_INLINECODE GL_COMPRESSED_RED_RGTC1)$(D_INLINECODE GL_RED) Specific$(D_INLINECODE GL_COMPRESSED_SIGNED_RED_RGTC1)$(D_INLINECODE GL_RED) Specific$(D_INLINECODE GL_COMPRESSED_RG_RGTC2)$(D_INLINECODE GL_RG) Specific$(D_INLINECODE GL_COMPRESSED_SIGNED_RG_RGTC2)$(D_INLINECODE GL_RG) Specific$(D_INLINECODE GL_COMPRESSED_RGBA_BPTC_UNORM)$(D_INLINECODE GL_RGBA) Specific$(D_INLINECODE GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM)$(D_INLINECODE GL_RGBA) Specific$(D_INLINECODE GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT)$(D_INLINECODE GL_RGB) Specific$(D_INLINECODE GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT)$(D_INLINECODE GL_RGB) Specific)$(P If the$(D_INLINECODE internalFormat) parameter is one of the generic compressed formats,$(D_INLINECODE GL_COMPRESSED_RED),$(D_INLINECODE GL_COMPRESSED_RG),$(D_INLINECODE GL_COMPRESSED_RGB), or$(D_INLINECODE GL_COMPRESSED_RGBA), the GL will replace the internal format with the symbolic constant for a specific internal format and compress the texture before storage. If no corresponding internal format is available, or the GL can not compress that image for any reason, the internal format is instead replaced with a corresponding base internal format.)$(P If the$(D_INLINECODE internalFormat) parameter is$(D_INLINECODE GL_SRGB),$(D_INLINECODE GL_SRGB8),$(D_INLINECODE GL_SRGB_ALPHA), or$(D_INLINECODE GL_SRGB8_ALPHA8), the texture is treated as if the red, green, or blue components are encoded in the sRGB color space. Any alpha component is left unchanged. The conversion from the sRGB encoded component c s to a linear component c l is:)$(P c l = { c s 12.92 if c s ≤ 0.04045 ( c s + 0.055 1.055 ) 2.4 if c s > 0.04045)$(P Assume c s is the sRGB component in the range [0,1].)$(P Use the$(D_INLINECODE GL_PROXY_TEXTURE_2D),$(D_INLINECODE GL_PROXY_TEXTURE_1D_ARRAY),$(D_INLINECODE GL_PROXY_TEXTURE_RECTANGLE), or$(D_INLINECODE GL_PROXY_TEXTURE_CUBE_MAP) target to try out a resolution and format. The implementation will update and recompute its best match for the requested storage resolution and format. To then query this state, call$(D_INLINECODE glGetTexLevelParameter). If the texture cannot be accommodated, texture state is set to 0.)$(P A one-component texture image uses only the red component of the RGBA color extracted from$(D_INLINECODE data). A two-component image uses the R and G values. A three-component image uses the R, G, and B values. A four-component image uses all of the RGBA components.)$(P Image-based shadowing can be enabled by comparing texture r coordinates to depth texture values to generate a boolean result. See$(D_INLINECODE glTexParameter) for details on texture comparison.) | |
| * | |
| * $(P The$(D_INLINECODE glPixelStore) mode affects texture images.)$(P $(D_INLINECODE data) may be a null pointer. In this case, texture memory is allocated to accommodate a texture of width$(D_INLINECODE width) and height$(D_INLINECODE height). You can then download subtextures to initialize this texture memory. The image is undefined if the user tries to apply an uninitialized portion of the texture image to a primitive.)$(P $(D_INLINECODE glTexImage2D) specifies the two-dimensional texture for the current texture unit, specified with$(D_INLINECODE glActiveTexture).)$(P $(D_INLINECODE GL_STENCIL_INDEX) may be used for$(D_INLINECODE format) only if the GL version is 4.4 or higher.) | |
| * | |
| * Params: | |
| * target = $(P Specifies the target texture. Must be$(D_INLINECODE GL_TEXTURE_2D),$(D_INLINECODE GL_PROXY_TEXTURE_2D),$(D_INLINECODE GL_TEXTURE_1D_ARRAY),$(D_INLINECODE GL_PROXY_TEXTURE_1D_ARRAY),$(D_INLINECODE GL_TEXTURE_RECTANGLE),$(D_INLINECODE GL_PROXY_TEXTURE_RECTANGLE),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_X),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_NEGATIVE_X),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_Y),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_NEGATIVE_Y),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_POSITIVE_Z),$(D_INLINECODE GL_TEXTURE_CUBE_MAP_NEGATIVE_Z), or$(D_INLINECODE GL_PROXY_TEXTURE_CUBE_MAP).) | |
| * level = $(P Specifies the level-of-detail number. Level 0 is the base image level. Level is the th mipmap reduction image. If$(D_INLINECODE target) is$(D_INLINECODE GL_TEXTURE_RECTANGLE) or$(D_INLINECODE GL_PROXY_TEXTURE_RECTANGLE),$(D_INLINECODE level) must be 0.) | |
| * internalFormat = $(P Specifies the number of color components in the texture. Must be one of base internal formats given in Table 1, one of the sized internal formats given in Table 2, or one of the compressed internal formats given in Table 3, below.) | |
| * width = $(P Specifies the width of the texture image. All implementations support texture images that are at least 1024 texels wide.) | |
| * height = $(P Specifies the height of the texture image, or the number of layers in a texture array, in the case of the$(D_INLINECODE GL_TEXTURE_1D_ARRAY) and$(D_INLINECODE GL_PROXY_TEXTURE_1D_ARRAY) targets. All implementations support 2D texture images that are at least 1024 texels high, and texture arrays that are at least 256 layers deep.) | |
| * border = $(P This value must be 0.) | |
| * format = $(P Specifies the format of the pixel data. The following symbolic values are accepted:$(D_INLINECODE GL_RED),$(D_INLINECODE GL_RG),$(D_INLINECODE GL_RGB),$(D_INLINECODE GL_BGR),$(D_INLINECODE GL_RGBA),$(D_INLINECODE GL_BGRA),$(D_IN |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment