1gl(3) Erlang Module Definition gl(3)
2
3
4
6 gl - Erlang wrapper functions for OpenGL
7
9 Standard OpenGL API
10
11 This documents the functions as a brief version of the complete OpenGL
12 reference pages.
13
15 clamp() = float()
16
17 offset() = integer() >= 0
18
19 i() = integer()
20
21 f() = float()
22
23 enum() = integer() >= 0
24
25 matrix() = m12() | m16()
26
27 m12() =
28 {f(), f(), f(), f(), f(), f(), f(), f(), f(), f(), f(), f()}
29
30 m16() =
31 {f(),
32 f(),
33 f(),
34 f(),
35 f(),
36 f(),
37 f(),
38 f(),
39 f(),
40 f(),
41 f(),
42 f(),
43 f(),
44 f(),
45 f(),
46 f()}
47
48 mem() = binary() | tuple()
49
51 accum(Op :: enum(), Value :: f()) -> ok
52
53 The accumulation buffer is an extended-range color buffer. Im‐
54 ages are not rendered into it. Rather, images rendered into one
55 of the color buffers are added to the contents of the accumula‐
56 tion buffer after rendering. Effects such as antialiasing (of
57 points, lines, and polygons), motion blur, and depth of field
58 can be created by accumulating images generated with different
59 transformation matrices.
60
61 External documentation.
62
63 activeShaderProgram(Pipeline :: i(), Program :: i()) -> ok
64
65 gl:activeShaderProgram/2 sets the linked program named by Pro‐
66 gram to be the active program for the program pipeline object
67 Pipeline. The active program in the active program pipeline ob‐
68 ject is the target of calls to gl:uniform() when no program has
69 been made current through a call to gl:useProgram/1.
70
71 External documentation.
72
73 activeTexture(Texture :: enum()) -> ok
74
75 gl:activeTexture/1 selects which texture unit subsequent texture
76 state calls will affect. The number of texture units an imple‐
77 mentation supports is implementation dependent, but must be at
78 least 80.
79
80 External documentation.
81
82 alphaFunc(Func :: enum(), Ref :: clamp()) -> ok
83
84 The alpha test discards fragments depending on the outcome of a
85 comparison between an incoming fragment's alpha value and a con‐
86 stant reference value. gl:alphaFunc/2 specifies the reference
87 value and the comparison function. The comparison is performed
88 only if alpha testing is enabled. By default, it is not enabled.
89 (See gl:enable/1 and gl:disable/1 of ?GL_ALPHA_TEST.)
90
91 External documentation.
92
93 areTexturesResident(Textures :: [i()]) ->
94 {0 | 1, Residences :: [0 | 1]}
95
96 GL establishes a ``working set'' of textures that are resident
97 in texture memory. These textures can be bound to a texture tar‐
98 get much more efficiently than textures that are not resident.
99
100 External documentation.
101
102 arrayElement(I :: i()) -> ok
103
104 gl:arrayElement/1 commands are used within gl:'be‐
105 gin'/1/gl:'end'/0 pairs to specify vertex and attribute data for
106 point, line, and polygon primitives. If ?GL_VERTEX_ARRAY is en‐
107 abled when gl:arrayElement/1 is called, a single vertex is
108 drawn, using vertex and attribute data taken from location I of
109 the enabled arrays. If ?GL_VERTEX_ARRAY is not enabled, no draw‐
110 ing occurs but the attributes corresponding to the enabled ar‐
111 rays are modified.
112
113 External documentation.
114
115 attachObjectARB(ContainerObj :: i(), Obj :: i()) -> ok
116
117 No documentation available.
118
119 attachShader(Program :: i(), Shader :: i()) -> ok
120
121 In order to create a complete shader program, there must be a
122 way to specify the list of things that will be linked together.
123 Program objects provide this mechanism. Shaders that are to be
124 linked together in a program object must first be attached to
125 that program object. gl:attachShader/2 attaches the shader ob‐
126 ject specified by Shader to the program object specified by Pro‐
127 gram. This indicates that Shader will be included in link opera‐
128 tions that will be performed on Program.
129
130 External documentation.
131
132 'begin'(Mode :: enum()) -> ok
133
134 'end'() -> ok
135
136 gl:'begin'/1 and gl:'end'/0 delimit the vertices that define a
137 primitive or a group of like primitives. gl:'begin'/1 accepts a
138 single argument that specifies in which of ten ways the vertices
139 are interpreted. Taking n as an integer count starting at one,
140 and N as the total number of vertices specified, the interpreta‐
141 tions are as follows:
142
143 External documentation.
144
145 beginConditionalRender(Id :: i(), Mode :: enum()) -> ok
146
147 endConditionalRender() -> ok
148
149 Conditional rendering is started using gl:beginConditionalRen‐
150 der/2 and ended using gl:endConditionalRender/0. During condi‐
151 tional rendering, all vertex array commands, as well as
152 gl:clear/1 and gl:clearBuffer() have no effect if the (?GL_SAM‐
153 PLES_PASSED) result of the query object Id is zero, or if the
154 (?GL_ANY_SAMPLES_PASSED) result is ?GL_FALSE. The results of
155 commands setting the current vertex state, such as gl:vertexAt‐
156 trib() are undefined. If the (?GL_SAMPLES_PASSED) result is non-
157 zero or if the (?GL_ANY_SAMPLES_PASSED) result is ?GL_TRUE, such
158 commands are not discarded. The Id parameter to gl:beginCondi‐
159 tionalRender/2 must be the name of a query object previously re‐
160 turned from a call to gl:genQueries/1. Mode specifies how the
161 results of the query object are to be interpreted. If Mode is
162 ?GL_QUERY_WAIT, the GL waits for the results of the query to be
163 available and then uses the results to determine if subsequent
164 rendering commands are discarded. If Mode is ?GL_QUERY_NO_WAIT,
165 the GL may choose to unconditionally execute the subsequent ren‐
166 dering commands without waiting for the query to complete.
167
168 External documentation.
169
170 endList() -> ok
171
172 No documentation available.
173
174 beginQuery(Target :: enum(), Id :: i()) -> ok
175
176 endQuery(Target :: enum()) -> ok
177
178 gl:beginQuery/2 and gl:endQuery/1 delimit the boundaries of a
179 query object. Query must be a name previously returned from a
180 call to gl:genQueries/1. If a query object with name Id does not
181 yet exist it is created with the type determined by Target. Tar‐
182 get must be one of ?GL_SAMPLES_PASSED, ?GL_ANY_SAMPLES_PASSED,
183 ?GL_PRIMITIVES_GENERATED, ?GL_TRANSFORM_FEEDBACK_PRIMI‐
184 TIVES_WRITTEN, or ?GL_TIME_ELAPSED. The behavior of the query
185 object depends on its type and is as follows.
186
187 External documentation.
188
189 beginQueryIndexed(Target :: enum(), Index :: i(), Id :: i()) -> ok
190
191 No documentation available.
192
193 endQueryIndexed(Target :: enum(), Index :: i()) -> ok
194
195 gl:beginQueryIndexed/3 and gl:endQueryIndexed/2 delimit the
196 boundaries of a query object. Query must be a name previously
197 returned from a call to gl:genQueries/1. If a query object with
198 name Id does not yet exist it is created with the type deter‐
199 mined by Target. Target must be one of ?GL_SAMPLES_PASSED,
200 ?GL_ANY_SAMPLES_PASSED, ?GL_PRIMITIVES_GENERATED, ?GL_TRANS‐
201 FORM_FEEDBACK_PRIMITIVES_WRITTEN, or ?GL_TIME_ELAPSED. The be‐
202 havior of the query object depends on its type and is as fol‐
203 lows.
204
205 External documentation.
206
207 beginTransformFeedback(PrimitiveMode :: enum()) -> ok
208
209 endTransformFeedback() -> ok
210
211 Transform feedback mode captures the values of varying variables
212 written by the vertex shader (or, if active, the geometry
213 shader). Transform feedback is said to be active after a call to
214 gl:beginTransformFeedback/1 until a subsequent call to gl:end‐
215 TransformFeedback/0. Transform feedback commands must be paired.
216
217 External documentation.
218
219 bindAttribLocation(Program :: i(), Index :: i(), Name :: string()) ->
220 ok
221
222 gl:bindAttribLocation/3 is used to associate a user-defined at‐
223 tribute variable in the program object specified by Program with
224 a generic vertex attribute index. The name of the user-defined
225 attribute variable is passed as a null terminated string in
226 Name. The generic vertex attribute index to be bound to this
227 variable is specified by Index. When Program is made part of
228 current state, values provided via the generic vertex attribute
229 Index will modify the value of the user-defined attribute vari‐
230 able specified by Name.
231
232 External documentation.
233
234 bindAttribLocationARB(ProgramObj :: i(),
235 Index :: i(),
236 Name :: string()) ->
237 ok
238
239 No documentation available.
240
241 bindBuffer(Target :: enum(), Buffer :: i()) -> ok
242
243 gl:bindBuffer/2 binds a buffer object to the specified buffer
244 binding point. Calling gl:bindBuffer/2 with Target set to one of
245 the accepted symbolic constants and Buffer set to the name of a
246 buffer object binds that buffer object name to the target. If no
247 buffer object with name Buffer exists, one is created with that
248 name. When a buffer object is bound to a target, the previous
249 binding for that target is automatically broken.
250
251 External documentation.
252
253 bindBufferBase(Target :: enum(), Index :: i(), Buffer :: i()) ->
254 ok
255
256 gl:bindBufferBase/3 binds the buffer object Buffer to the bind‐
257 ing point at index Index of the array of targets specified by
258 Target. Each Target represents an indexed array of buffer bind‐
259 ing points, as well as a single general binding point that can
260 be used by other buffer manipulation functions such as gl:bind‐
261 Buffer/2 or glMapBuffer. In addition to binding Buffer to the
262 indexed buffer binding target, gl:bindBufferBase/3 also binds
263 Buffer to the generic buffer binding point specified by Target.
264
265 External documentation.
266
267 bindBufferRange(Target :: enum(),
268 Index :: i(),
269 Buffer :: i(),
270 Offset :: i(),
271 Size :: i()) ->
272 ok
273
274 gl:bindBufferRange/5 binds a range the buffer object Buffer rep‐
275 resented by Offset and Size to the binding point at index Index
276 of the array of targets specified by Target. Each Target repre‐
277 sents an indexed array of buffer binding points, as well as a
278 single general binding point that can be used by other buffer
279 manipulation functions such as gl:bindBuffer/2 or glMapBuffer.
280 In addition to binding a range of Buffer to the indexed buffer
281 binding target, gl:bindBufferRange/5 also binds the range to the
282 generic buffer binding point specified by Target.
283
284 External documentation.
285
286 bindBuffersBase(Target :: enum(), First :: i(), Buffers :: [i()]) ->
287 ok
288
289 gl:bindBuffersBase/3 binds a set of Count buffer objects whose
290 names are given in the array Buffers to the Count consecutive
291 binding points starting from index First of the array of targets
292 specified by Target. If Buffers is ?NULL then gl:bindBuffers‐
293 Base/3 unbinds any buffers that are currently bound to the ref‐
294 erenced binding points. Assuming no errors are generated, it is
295 equivalent to the following pseudo-code, which calls gl:bind‐
296 BufferBase/3, with the exception that the non-indexed Target is
297 not changed by gl:bindBuffersBase/3:
298
299 External documentation.
300
301 bindBuffersRange(Target :: enum(),
302 First :: i(),
303 Buffers :: [i()],
304 Offsets :: [i()],
305 Sizes :: [i()]) ->
306 ok
307
308 gl:bindBuffersRange/5 binds a set of Count ranges from buffer
309 objects whose names are given in the array Buffers to the Count
310 consecutive binding points starting from index First of the ar‐
311 ray of targets specified by Target. Offsets specifies the ad‐
312 dress of an array containing Count starting offsets within the
313 buffers, and Sizes specifies the address of an array of Count
314 sizes of the ranges. If Buffers is ?NULL then Offsets and Sizes
315 are ignored and gl:bindBuffersRange/5 unbinds any buffers that
316 are currently bound to the referenced binding points. Assuming
317 no errors are generated, it is equivalent to the following
318 pseudo-code, which calls gl:bindBufferRange/5, with the excep‐
319 tion that the non-indexed Target is not changed by gl:bind‐
320 BuffersRange/5:
321
322 External documentation.
323
324 bindFragDataLocation(Program :: i(),
325 Color :: i(),
326 Name :: string()) ->
327 ok
328
329 gl:bindFragDataLocation/3 explicitly specifies the binding of
330 the user-defined varying out variable Name to fragment shader
331 color number ColorNumber for program Program. If Name was bound
332 previously, its assigned binding is replaced with ColorNumber.
333 Name must be a null-terminated string. ColorNumber must be less
334 than ?GL_MAX_DRAW_BUFFERS.
335
336 External documentation.
337
338 bindFragDataLocationIndexed(Program :: i(),
339 ColorNumber :: i(),
340 Index :: i(),
341 Name :: string()) ->
342 ok
343
344 No documentation available.
345
346 bindFramebuffer(Target :: enum(), Framebuffer :: i()) -> ok
347
348 gl:bindFramebuffer/2 binds the framebuffer object with name
349 Framebuffer to the framebuffer target specified by Target. Tar‐
350 get must be either ?GL_DRAW_FRAMEBUFFER, ?GL_READ_FRAMEBUFFER or
351 ?GL_FRAMEBUFFER. If a framebuffer object is bound to
352 ?GL_DRAW_FRAMEBUFFER or ?GL_READ_FRAMEBUFFER, it becomes the
353 target for rendering or readback operations, respectively, until
354 it is deleted or another framebuffer is bound to the correspond‐
355 ing bind point. Calling gl:bindFramebuffer/2 with Target set to
356 ?GL_FRAMEBUFFER binds Framebuffer to both the read and draw
357 framebuffer targets. Framebuffer is the name of a framebuffer
358 object previously returned from a call to gl:genFramebuffers/1,
359 or zero to break the existing binding of a framebuffer object to
360 Target.
361
362 External documentation.
363
364 bindImageTexture(Unit, Texture, Level, Layered, Layer, Access,
365 Format) ->
366 ok
367
368 Types:
369
370 Unit = Texture = Level = i()
371 Layered = 0 | 1
372 Layer = i()
373 Access = Format = enum()
374
375 gl:bindImageTexture/7 binds a single level of a texture to an
376 image unit for the purpose of reading and writing it from
377 shaders. Unit specifies the zero-based index of the image unit
378 to which to bind the texture level. Texture specifies the name
379 of an existing texture object to bind to the image unit. If Tex‐
380 ture is zero, then any existing binding to the image unit is
381 broken. Level specifies the level of the texture to bind to the
382 image unit.
383
384 External documentation.
385
386 bindImageTextures(First :: i(), Textures :: [i()]) -> ok
387
388 gl:bindImageTextures/2 binds images from an array of existing
389 texture objects to a specified number of consecutive image
390 units. Count specifies the number of texture objects whose names
391 are stored in the array Textures. That number of texture names
392 are read from the array and bound to the Count consecutive tex‐
393 ture units starting from First. If the name zero appears in the
394 Textures array, any existing binding to the image unit is reset.
395 Any non-zero entry in Textures must be the name of an existing
396 texture object. When a non-zero entry in Textures is present,
397 the image at level zero is bound, the binding is considered lay‐
398 ered, with the first layer set to zero, and the image is bound
399 for read-write access. The image unit format parameter is taken
400 from the internal format of the image at level zero of the tex‐
401 ture object. For cube map textures, the internal format of the
402 positive X image of level zero is used. If Textures is ?NULL
403 then it is as if an appropriately sized array containing only
404 zeros had been specified.
405
406 External documentation.
407
408 bindProgramARB(Target :: enum(), Program :: i()) -> ok
409
410 No documentation available.
411
412 bindProgramPipeline(Pipeline :: i()) -> ok
413
414 gl:bindProgramPipeline/1 binds a program pipeline object to the
415 current context. Pipeline must be a name previously returned
416 from a call to gl:genProgramPipelines/1. If no program pipeline
417 exists with name Pipeline then a new pipeline object is created
418 with that name and initialized to the default state vector.
419
420 External documentation.
421
422 bindRenderbuffer(Target :: enum(), Renderbuffer :: i()) -> ok
423
424 gl:bindRenderbuffer/2 binds the renderbuffer object with name
425 Renderbuffer to the renderbuffer target specified by Target.
426 Target must be ?GL_RENDERBUFFER. Renderbuffer is the name of a
427 renderbuffer object previously returned from a call to gl:gen‐
428 Renderbuffers/1, or zero to break the existing binding of a ren‐
429 derbuffer object to Target.
430
431 External documentation.
432
433 bindSampler(Unit :: i(), Sampler :: i()) -> ok
434
435 gl:bindSampler/2 binds Sampler to the texture unit at index
436 Unit. Sampler must be zero or the name of a sampler object pre‐
437 viously returned from a call to gl:genSamplers/1. Unit must be
438 less than the value of ?GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS.
439
440 External documentation.
441
442 bindSamplers(First :: i(), Samplers :: [i()]) -> ok
443
444 gl:bindSamplers/2 binds samplers from an array of existing sam‐
445 pler objects to a specified number of consecutive sampler units.
446 Count specifies the number of sampler objects whose names are
447 stored in the array Samplers. That number of sampler names is
448 read from the array and bound to the Count consecutive sampler
449 units starting from First.
450
451 External documentation.
452
453 bindTexture(Target :: enum(), Texture :: i()) -> ok
454
455 gl:bindTexture/2 lets you create or use a named texture. Calling
456 gl:bindTexture/2 with Target set to ?GL_TEXTURE_1D, ?GL_TEX‐
457 TURE_2D, ?GL_TEXTURE_3D, ?GL_TEXTURE_1D_ARRAY, ?GL_TEX‐
458 TURE_2D_ARRAY, ?GL_TEXTURE_RECTANGLE, ?GL_TEXTURE_CUBE_MAP,
459 ?GL_TEXTURE_CUBE_MAP_ARRAY, ?GL_TEXTURE_BUFFER, ?GL_TEX‐
460 TURE_2D_MULTISAMPLE or ?GL_TEXTURE_2D_MULTISAMPLE_ARRAY and Tex‐
461 ture set to the name of the new texture binds the texture name
462 to the target. When a texture is bound to a target, the previous
463 binding for that target is automatically broken.
464
465 External documentation.
466
467 bindTextureUnit(Unit :: i(), Texture :: i()) -> ok
468
469 gl:bindTextureUnit/2 binds an existing texture object to the
470 texture unit numbered Unit.
471
472 External documentation.
473
474 bindTextures(First :: i(), Textures :: [i()]) -> ok
475
476 gl:bindTextures/2 binds an array of existing texture objects to
477 a specified number of consecutive texture units. Count specifies
478 the number of texture objects whose names are stored in the ar‐
479 ray Textures. That number of texture names are read from the ar‐
480 ray and bound to the Count consecutive texture units starting
481 from First. The target, or type of texture is deduced from the
482 texture object and each texture is bound to the corresponding
483 target of the texture unit. If the name zero appears in the Tex‐
484 tures array, any existing binding to any target of the texture
485 unit is reset and the default texture for that target is bound
486 in its place. Any non-zero entry in Textures must be the name of
487 an existing texture object. If Textures is ?NULL then it is as
488 if an appropriately sized array containing only zeros had been
489 specified.
490
491 External documentation.
492
493 bindTransformFeedback(Target :: enum(), Id :: i()) -> ok
494
495 gl:bindTransformFeedback/2 binds the transform feedback object
496 with name Id to the current GL state. Id must be a name previ‐
497 ously returned from a call to gl:genTransformFeedbacks/1. If Id
498 has not previously been bound, a new transform feedback object
499 with name Id and initialized with the default transform state
500 vector is created.
501
502 External documentation.
503
504 bindVertexArray(Array :: i()) -> ok
505
506 gl:bindVertexArray/1 binds the vertex array object with name Ar‐
507 ray. Array is the name of a vertex array object previously re‐
508 turned from a call to gl:genVertexArrays/1, or zero to break the
509 existing vertex array object binding.
510
511 External documentation.
512
513 bindVertexBuffer(Bindingindex :: i(),
514 Buffer :: i(),
515 Offset :: i(),
516 Stride :: i()) ->
517 ok
518
519 gl:bindVertexBuffer/4 and gl:vertexArrayVertexBuffer/5 bind the
520 buffer named Buffer to the vertex buffer binding point whose in‐
521 dex is given by Bindingindex. gl:bindVertexBuffer/4 modifies the
522 binding of the currently bound vertex array object, whereas
523 gl:vertexArrayVertexBuffer/5 allows the caller to specify ID of
524 the vertex array object with an argument named Vaobj, for which
525 the binding should be modified. Offset and Stride specify the
526 offset of the first element within the buffer and the distance
527 between elements within the buffer, respectively, and are both
528 measured in basic machine units. Bindingindex must be less than
529 the value of ?GL_MAX_VERTEX_ATTRIB_BINDINGS. Offset and Stride
530 must be greater than or equal to zero. If Buffer is zero, then
531 any buffer currently bound to the specified binding point is un‐
532 bound.
533
534 External documentation.
535
536 bindVertexBuffers(First :: i(),
537 Buffers :: [i()],
538 Offsets :: [i()],
539 Strides :: [i()]) ->
540 ok
541
542 gl:bindVertexBuffers/4 and gl:vertexArrayVertexBuffers/5 bind
543 storage from an array of existing buffer objects to a specified
544 number of consecutive vertex buffer binding points units in a
545 vertex array object. For gl:bindVertexBuffers/4, the vertex ar‐
546 ray object is the currently bound vertex array object. For
547 gl:vertexArrayVertexBuffers/5, Vaobj is the name of the vertex
548 array object.
549
550 External documentation.
551
552 bitmap(Width, Height, Xorig, Yorig, Xmove, Ymove, Bitmap) -> ok
553
554 Types:
555
556 Width = Height = i()
557 Xorig = Yorig = Xmove = Ymove = f()
558 Bitmap = offset() | mem()
559
560 A bitmap is a binary image. When drawn, the bitmap is positioned
561 relative to the current raster position, and frame buffer pixels
562 corresponding to 1's in the bitmap are written using the current
563 raster color or index. Frame buffer pixels corresponding to 0's
564 in the bitmap are not modified.
565
566 External documentation.
567
568 blendBarrierKHR() -> ok
569
570 No documentation available.
571
572 blendColor(Red :: clamp(),
573 Green :: clamp(),
574 Blue :: clamp(),
575 Alpha :: clamp()) ->
576 ok
577
578 The ?GL_BLEND_COLOR may be used to calculate the source and des‐
579 tination blending factors. The color components are clamped to
580 the range [0 1] before being stored. See gl:blendFunc/2 for a
581 complete description of the blending operations. Initially the
582 ?GL_BLEND_COLOR is set to (0, 0, 0, 0).
583
584 External documentation.
585
586 blendEquation(Mode :: enum()) -> ok
587
588 blendEquationi(Buf :: i(), Mode :: enum()) -> ok
589
590 The blend equations determine how a new pixel (the ''source''
591 color) is combined with a pixel already in the framebuffer (the
592 ''destination'' color). This function sets both the RGB blend
593 equation and the alpha blend equation to a single equation.
594 gl:blendEquationi/2 specifies the blend equation for a single
595 draw buffer whereas gl:blendEquation/1 sets the blend equation
596 for all draw buffers.
597
598 External documentation.
599
600 blendEquationSeparate(ModeRGB :: enum(), ModeAlpha :: enum()) ->
601 ok
602
603 blendEquationSeparatei(Buf :: i(),
604 ModeRGB :: enum(),
605 ModeAlpha :: enum()) ->
606 ok
607
608 The blend equations determines how a new pixel (the ''source''
609 color) is combined with a pixel already in the framebuffer (the
610 ''destination'' color). These functions specify one blend equa‐
611 tion for the RGB-color components and one blend equation for the
612 alpha component. gl:blendEquationSeparatei/3 specifies the blend
613 equations for a single draw buffer whereas gl:blendEquationSepa‐
614 rate/2 sets the blend equations for all draw buffers.
615
616 External documentation.
617
618 blendFunc(Sfactor :: enum(), Dfactor :: enum()) -> ok
619
620 Pixels can be drawn using a function that blends the incoming
621 (source) RGBA values with the RGBA values that are already in
622 the frame buffer (the destination values). Blending is initially
623 disabled. Use gl:enable/1 and gl:disable/1 with argument
624 ?GL_BLEND to enable and disable blending.
625
626 External documentation.
627
628 blendFuncSeparate(SfactorRGB, DfactorRGB, SfactorAlpha,
629 DfactorAlpha) ->
630 ok
631
632 blendFuncSeparatei(Buf :: i(),
633 SrcRGB :: enum(),
634 DstRGB :: enum(),
635 SrcAlpha :: enum(),
636 DstAlpha :: enum()) ->
637 ok
638
639 Pixels can be drawn using a function that blends the incoming
640 (source) RGBA values with the RGBA values that are already in
641 the frame buffer (the destination values). Blending is initially
642 disabled. Use gl:enable/1 and gl:disable/1 with argument
643 ?GL_BLEND to enable and disable blending.
644
645 External documentation.
646
647 blendFunci(Buf :: i(), Src :: enum(), Dst :: enum()) -> ok
648
649 No documentation available.
650
651 blitFramebuffer(SrcX0, SrcY0, SrcX1, SrcY1, DstX0, DstY0, DstX1,
652 DstY1, Mask, Filter) ->
653 ok
654
655 Types:
656
657 SrcX0 = SrcY0 = SrcX1 = SrcY1 = DstX0 = DstY0 = DstX1 = DstY1
658 = Mask = i()
659 Filter = enum()
660
661 gl:blitFramebuffer/10 and glBlitNamedFramebuffer transfer a rec‐
662 tangle of pixel values from one region of a read framebuffer to
663 another region of a draw framebuffer.
664
665 External documentation.
666
667 bufferData(Target :: enum(),
668 Size :: i(),
669 Data :: offset() | mem(),
670 Usage :: enum()) ->
671 ok
672
673 gl:bufferData/4 and glNamedBufferData create a new data store
674 for a buffer object. In case of gl:bufferData/4, the buffer ob‐
675 ject currently bound to Target is used. For glNamedBufferData, a
676 buffer object associated with ID specified by the caller in Buf‐
677 fer will be used instead.
678
679 External documentation.
680
681 bufferPageCommitmentARB(Target :: enum(),
682 Offset :: i(),
683 Size :: i(),
684 Commit :: 0 | 1) ->
685 ok
686
687 No documentation available.
688
689 bufferStorage(Target :: enum(),
690 Size :: i(),
691 Data :: offset() | mem(),
692 Flags :: i()) ->
693 ok
694
695 gl:bufferStorage/4 and glNamedBufferStorage create a new im‐
696 mutable data store. For gl:bufferStorage/4, the buffer object
697 currently bound to Target will be initialized. For glNamed‐
698 BufferStorage, Buffer is the name of the buffer object that will
699 be configured. The size of the data store is specified by Size.
700 If an initial data is available, its address may be supplied in
701 Data. Otherwise, to create an uninitialized data store, Data
702 should be ?NULL.
703
704 External documentation.
705
706 bufferSubData(Target :: enum(),
707 Offset :: i(),
708 Size :: i(),
709 Data :: offset() | mem()) ->
710 ok
711
712 gl:bufferSubData/4 and glNamedBufferSubData redefine some or all
713 of the data store for the specified buffer object. Data starting
714 at byte offset Offset and extending for Size bytes is copied to
715 the data store from the memory pointed to by Data. Offset and
716 Size must define a range lying entirely within the buffer ob‐
717 ject's data store.
718
719 External documentation.
720
721 callList(List :: i()) -> ok
722
723 gl:callList/1 causes the named display list to be executed. The
724 commands saved in the display list are executed in order, just
725 as if they were called without using a display list. If List has
726 not been defined as a display list, gl:callList/1 is ignored.
727
728 External documentation.
729
730 callLists(Lists :: [i()]) -> ok
731
732 gl:callLists/1 causes each display list in the list of names
733 passed as Lists to be executed. As a result, the commands saved
734 in each display list are executed in order, just as if they were
735 called without using a display list. Names of display lists that
736 have not been defined are ignored.
737
738 External documentation.
739
740 checkFramebufferStatus(Target :: enum()) -> enum()
741
742 gl:checkFramebufferStatus/1 and glCheckNamedFramebufferStatus
743 return the completeness status of a framebuffer object when
744 treated as a read or draw framebuffer, depending on the value of
745 Target.
746
747 External documentation.
748
749 clampColor(Target :: enum(), Clamp :: enum()) -> ok
750
751 gl:clampColor/2 controls color clamping that is performed during
752 gl:readPixels/7. Target must be ?GL_CLAMP_READ_COLOR. If Clamp
753 is ?GL_TRUE, read color clamping is enabled; if Clamp is
754 ?GL_FALSE, read color clamping is disabled. If Clamp is
755 ?GL_FIXED_ONLY, read color clamping is enabled only if the se‐
756 lected read buffer has fixed point components and disabled oth‐
757 erwise.
758
759 External documentation.
760
761 clear(Mask :: i()) -> ok
762
763 gl:clear/1 sets the bitplane area of the window to values previ‐
764 ously selected by gl:clearColor/4, gl:clearDepth/1, and
765 gl:clearStencil/1. Multiple color buffers can be cleared simul‐
766 taneously by selecting more than one buffer at a time using
767 gl:drawBuffer/1.
768
769 External documentation.
770
771 clearAccum(Red :: f(), Green :: f(), Blue :: f(), Alpha :: f()) ->
772 ok
773
774 gl:clearAccum/4 specifies the red, green, blue, and alpha values
775 used by gl:clear/1 to clear the accumulation buffer.
776
777 External documentation.
778
779 clearBufferfv(Buffer :: enum(),
780 Drawbuffer :: i(),
781 Value :: tuple()) ->
782 ok
783
784 clearBufferiv(Buffer :: enum(),
785 Drawbuffer :: i(),
786 Value :: tuple()) ->
787 ok
788
789 clearBufferuiv(Buffer :: enum(),
790 Drawbuffer :: i(),
791 Value :: tuple()) ->
792 ok
793
794 These commands clear a specified buffer of a framebuffer to
795 specified value(s). For glClearBuffer*, the framebuffer is the
796 currently bound draw framebuffer object. For glClearNamedFrame‐
797 buffer*, Framebuffer is zero, indicating the default draw frame‐
798 buffer, or the name of a framebuffer object.
799
800 External documentation.
801
802 clearBufferData(Target, Internalformat, Format, Type, Data) -> ok
803
804 Types:
805
806 Target = Internalformat = Format = Type = enum()
807 Data = offset() | mem()
808
809 gl:clearBufferData/5 and glClearNamedBufferData fill the en‐
810 tirety of a buffer object's data store with data from client
811 memory.
812
813 External documentation.
814
815 clearBufferSubData(Target, Internalformat, Offset, Size, Format,
816 Type, Data) ->
817 ok
818
819 Types:
820
821 Target = Internalformat = enum()
822 Offset = Size = i()
823 Format = Type = enum()
824 Data = offset() | mem()
825
826 gl:clearBufferSubData/7 and glClearNamedBufferSubData fill a
827 specified region of a buffer object's data store with data from
828 client memory.
829
830 External documentation.
831
832 clearBufferfi(Buffer :: enum(),
833 Drawbuffer :: i(),
834 Depth :: f(),
835 Stencil :: i()) ->
836 ok
837
838 No documentation available.
839
840 clearColor(Red :: clamp(),
841 Green :: clamp(),
842 Blue :: clamp(),
843 Alpha :: clamp()) ->
844 ok
845
846 gl:clearColor/4 specifies the red, green, blue, and alpha values
847 used by gl:clear/1 to clear the color buffers. Values specified
848 by gl:clearColor/4 are clamped to the range [0 1].
849
850 External documentation.
851
852 clearDepth(Depth :: clamp()) -> ok
853
854 gl:clearDepth/1 specifies the depth value used by gl:clear/1 to
855 clear the depth buffer. Values specified by gl:clearDepth/1 are
856 clamped to the range [0 1].
857
858 External documentation.
859
860 clearDepthf(D :: f()) -> ok
861
862 No documentation available.
863
864 clearIndex(C :: f()) -> ok
865
866 gl:clearIndex/1 specifies the index used by gl:clear/1 to clear
867 the color index buffers. C is not clamped. Rather, C is con‐
868 verted to a fixed-point value with unspecified precision to the
869 right of the binary point. The integer part of this value is
870 then masked with 2 m-1, where m is the number of bits in a color
871 index stored in the frame buffer.
872
873 External documentation.
874
875 clearStencil(S :: i()) -> ok
876
877 gl:clearStencil/1 specifies the index used by gl:clear/1 to
878 clear the stencil buffer. S is masked with 2 m-1, where m is the
879 number of bits in the stencil buffer.
880
881 External documentation.
882
883 clearTexImage(Texture :: i(),
884 Level :: i(),
885 Format :: enum(),
886 Type :: enum(),
887 Data :: offset() | mem()) ->
888 ok
889
890 gl:clearTexImage/5 fills all an image contained in a texture
891 with an application supplied value. Texture must be the name of
892 an existing texture. Further, Texture may not be the name of a
893 buffer texture, nor may its internal format be compressed.
894
895 External documentation.
896
897 clearTexSubImage(Texture, Level, Xoffset, Yoffset, Zoffset, Width,
898 Height, Depth, Format, Type, Data) ->
899 ok
900
901 Types:
902
903 Texture = Level = Xoffset = Yoffset = Zoffset = Width =
904 Height = Depth = i()
905 Format = Type = enum()
906 Data = offset() | mem()
907
908 gl:clearTexSubImage/11 fills all or part of an image contained
909 in a texture with an application supplied value. Texture must be
910 the name of an existing texture. Further, Texture may not be the
911 name of a buffer texture, nor may its internal format be com‐
912 pressed.
913
914 External documentation.
915
916 clientActiveTexture(Texture :: enum()) -> ok
917
918 gl:clientActiveTexture/1 selects the vertex array client state
919 parameters to be modified by gl:texCoordPointer/4, and enabled
920 or disabled with gl:enableClientState/1 or gl:disable‐
921 ClientState/1, respectively, when called with a parameter of
922 ?GL_TEXTURE_COORD_ARRAY.
923
924 External documentation.
925
926 clientWaitSync(Sync :: i(), Flags :: i(), Timeout :: i()) ->
927 enum()
928
929 gl:clientWaitSync/3 causes the client to block and wait for the
930 sync object specified by Sync to become signaled. If Sync is
931 signaled when gl:clientWaitSync/3 is called, gl:clientWaitSync/3
932 returns immediately, otherwise it will block and wait for up to
933 Timeout nanoseconds for Sync to become signaled.
934
935 External documentation.
936
937 clipControl(Origin :: enum(), Depth :: enum()) -> ok
938
939 gl:clipControl/2 controls the clipping volume behavior and the
940 clip coordinate to window coordinate transformation behavior.
941
942 External documentation.
943
944 clipPlane(Plane :: enum(), Equation :: {f(), f(), f(), f()}) -> ok
945
946 Geometry is always clipped against the boundaries of a six-plane
947 frustum in x, y, and z. gl:clipPlane/2 allows the specification
948 of additional planes, not necessarily perpendicular to the x, y,
949 or z axis, against which all geometry is clipped. To determine
950 the maximum number of additional clipping planes, call gl:get‐
951 Integerv/1 with argument ?GL_MAX_CLIP_PLANES. All implementa‐
952 tions support at least six such clipping planes. Because the re‐
953 sulting clipping region is the intersection of the defined half-
954 spaces, it is always convex.
955
956 External documentation.
957
958 color3b(Red :: i(), Green :: i(), Blue :: i()) -> ok
959
960 color3bv(X1 :: {Red :: i(), Green :: i(), Blue :: i()}) -> ok
961
962 color3d(Red :: f(), Green :: f(), Blue :: f()) -> ok
963
964 color3dv(X1 :: {Red :: f(), Green :: f(), Blue :: f()}) -> ok
965
966 color3f(Red :: f(), Green :: f(), Blue :: f()) -> ok
967
968 color3fv(X1 :: {Red :: f(), Green :: f(), Blue :: f()}) -> ok
969
970 color3i(Red :: i(), Green :: i(), Blue :: i()) -> ok
971
972 color3iv(X1 :: {Red :: i(), Green :: i(), Blue :: i()}) -> ok
973
974 color3s(Red :: i(), Green :: i(), Blue :: i()) -> ok
975
976 color3sv(X1 :: {Red :: i(), Green :: i(), Blue :: i()}) -> ok
977
978 color3ub(Red :: i(), Green :: i(), Blue :: i()) -> ok
979
980 color3ubv(X1 :: {Red :: i(), Green :: i(), Blue :: i()}) -> ok
981
982 color3ui(Red :: i(), Green :: i(), Blue :: i()) -> ok
983
984 color3uiv(X1 :: {Red :: i(), Green :: i(), Blue :: i()}) -> ok
985
986 color3us(Red :: i(), Green :: i(), Blue :: i()) -> ok
987
988 color3usv(X1 :: {Red :: i(), Green :: i(), Blue :: i()}) -> ok
989
990 color4b(Red :: i(), Green :: i(), Blue :: i(), Alpha :: i()) -> ok
991
992 color4bv(X1 ::
993 {Red :: i(), Green :: i(), Blue :: i(), Alpha :: i()}) ->
994 ok
995
996 color4d(Red :: f(), Green :: f(), Blue :: f(), Alpha :: f()) -> ok
997
998 color4dv(X1 ::
999 {Red :: f(), Green :: f(), Blue :: f(), Alpha :: f()}) ->
1000 ok
1001
1002 color4f(Red :: f(), Green :: f(), Blue :: f(), Alpha :: f()) -> ok
1003
1004 color4fv(X1 ::
1005 {Red :: f(), Green :: f(), Blue :: f(), Alpha :: f()}) ->
1006 ok
1007
1008 color4i(Red :: i(), Green :: i(), Blue :: i(), Alpha :: i()) -> ok
1009
1010 color4iv(X1 ::
1011 {Red :: i(), Green :: i(), Blue :: i(), Alpha :: i()}) ->
1012 ok
1013
1014 color4s(Red :: i(), Green :: i(), Blue :: i(), Alpha :: i()) -> ok
1015
1016 color4sv(X1 ::
1017 {Red :: i(), Green :: i(), Blue :: i(), Alpha :: i()}) ->
1018 ok
1019
1020 color4ub(Red :: i(), Green :: i(), Blue :: i(), Alpha :: i()) ->
1021 ok
1022
1023 color4ubv(X1 ::
1024 {Red :: i(),
1025 Green :: i(),
1026 Blue :: i(),
1027 Alpha :: i()}) ->
1028 ok
1029
1030 color4ui(Red :: i(), Green :: i(), Blue :: i(), Alpha :: i()) ->
1031 ok
1032
1033 color4uiv(X1 ::
1034 {Red :: i(),
1035 Green :: i(),
1036 Blue :: i(),
1037 Alpha :: i()}) ->
1038 ok
1039
1040 color4us(Red :: i(), Green :: i(), Blue :: i(), Alpha :: i()) ->
1041 ok
1042
1043 color4usv(X1 ::
1044 {Red :: i(),
1045 Green :: i(),
1046 Blue :: i(),
1047 Alpha :: i()}) ->
1048 ok
1049
1050 The GL stores both a current single-valued color index and a
1051 current four-valued RGBA color. gl:color() sets a new four-val‐
1052 ued RGBA color. gl:color() has two major variants: gl:color3()
1053 and gl:color4(). gl:color3() variants specify new red, green,
1054 and blue values explicitly and set the current alpha value to
1055 1.0 (full intensity) implicitly. gl:color4() variants specify
1056 all four color components explicitly.
1057
1058 External documentation.
1059
1060 colorMask(Red :: 0 | 1,
1061 Green :: 0 | 1,
1062 Blue :: 0 | 1,
1063 Alpha :: 0 | 1) ->
1064 ok
1065
1066 gl:colorMask/4 and gl:colorMaski/5 specify whether the individ‐
1067 ual color components in the frame buffer can or cannot be writ‐
1068 ten. gl:colorMaski/5 sets the mask for a specific draw buffer,
1069 whereas gl:colorMask/4 sets the mask for all draw buffers. If
1070 Red is ?GL_FALSE, for example, no change is made to the red com‐
1071 ponent of any pixel in any of the color buffers, regardless of
1072 the drawing operation attempted.
1073
1074 External documentation.
1075
1076 colorMaski(Index :: i(),
1077 R :: 0 | 1,
1078 G :: 0 | 1,
1079 B :: 0 | 1,
1080 A :: 0 | 1) ->
1081 ok
1082
1083 No documentation available.
1084
1085 colorMaterial(Face :: enum(), Mode :: enum()) -> ok
1086
1087 gl:colorMaterial/2 specifies which material parameters track the
1088 current color. When ?GL_COLOR_MATERIAL is enabled, the material
1089 parameter or parameters specified by Mode, of the material or
1090 materials specified by Face, track the current color at all
1091 times.
1092
1093 External documentation.
1094
1095 colorPointer(Size :: i(),
1096 Type :: enum(),
1097 Stride :: i(),
1098 Ptr :: offset() | mem()) ->
1099 ok
1100
1101 gl:colorPointer/4 specifies the location and data format of an
1102 array of color components to use when rendering. Size specifies
1103 the number of components per color, and must be 3 or 4. Type
1104 specifies the data type of each color component, and Stride
1105 specifies the byte stride from one color to the next, allowing
1106 vertices and attributes to be packed into a single array or
1107 stored in separate arrays. (Single-array storage may be more ef‐
1108 ficient on some implementations; see gl:interleavedArrays/3.)
1109
1110 External documentation.
1111
1112 colorSubTable(Target, Start, Count, Format, Type, Data) -> ok
1113
1114 Types:
1115
1116 Target = enum()
1117 Start = Count = i()
1118 Format = Type = enum()
1119 Data = offset() | mem()
1120
1121 gl:colorSubTable/6 is used to respecify a contiguous portion of
1122 a color table previously defined using gl:colorTable/6. The pix‐
1123 els referenced by Data replace the portion of the existing table
1124 from indices Start to start+count-1, inclusive. This region may
1125 not include any entries outside the range of the color table as
1126 it was originally specified. It is not an error to specify a
1127 subtexture with width of 0, but such a specification has no ef‐
1128 fect.
1129
1130 External documentation.
1131
1132 colorTable(Target, Internalformat, Width, Format, Type, Table) ->
1133 ok
1134
1135 Types:
1136
1137 Target = Internalformat = enum()
1138 Width = i()
1139 Format = Type = enum()
1140 Table = offset() | mem()
1141
1142 gl:colorTable/6 may be used in two ways: to test the actual size
1143 and color resolution of a lookup table given a particular set of
1144 parameters, or to load the contents of a color lookup table. Use
1145 the targets ?GL_PROXY_* for the first case and the other targets
1146 for the second case.
1147
1148 External documentation.
1149
1150 colorTableParameterfv(Target :: enum(),
1151 Pname :: enum(),
1152 Params :: {f(), f(), f(), f()}) ->
1153 ok
1154
1155 colorTableParameteriv(Target :: enum(),
1156 Pname :: enum(),
1157 Params :: {i(), i(), i(), i()}) ->
1158 ok
1159
1160 gl:colorTableParameter() is used to specify the scale factors
1161 and bias terms applied to color components when they are loaded
1162 into a color table. Target indicates which color table the scale
1163 and bias terms apply to; it must be set to ?GL_COLOR_TABLE,
1164 ?GL_POST_CONVOLUTION_COLOR_TABLE, or ?GL_POST_COLOR_MA‐
1165 TRIX_COLOR_TABLE.
1166
1167 External documentation.
1168
1169 compileShader(Shader :: i()) -> ok
1170
1171 gl:compileShader/1 compiles the source code strings that have
1172 been stored in the shader object specified by Shader.
1173
1174 External documentation.
1175
1176 compileShaderARB(ShaderObj :: i()) -> ok
1177
1178 No documentation available.
1179
1180 compileShaderIncludeARB(Shader :: i(),
1181 Path :: [unicode:chardata()]) ->
1182 ok
1183
1184 No documentation available.
1185
1186 compressedTexImage1D(Target, Level, Internalformat, Width, Border,
1187 ImageSize, Data) ->
1188 ok
1189
1190 Types:
1191
1192 Target = enum()
1193 Level = i()
1194 Internalformat = enum()
1195 Width = Border = ImageSize = i()
1196 Data = offset() | mem()
1197
1198 Texturing allows elements of an image array to be read by
1199 shaders.
1200
1201 External documentation.
1202
1203 compressedTexImage2D(Target, Level, Internalformat, Width, Height,
1204 Border, ImageSize, Data) ->
1205 ok
1206
1207 Types:
1208
1209 Target = enum()
1210 Level = i()
1211 Internalformat = enum()
1212 Width = Height = Border = ImageSize = i()
1213 Data = offset() | mem()
1214
1215 Texturing allows elements of an image array to be read by
1216 shaders.
1217
1218 External documentation.
1219
1220 compressedTexImage3D(Target, Level, Internalformat, Width, Height,
1221 Depth, Border, ImageSize, Data) ->
1222 ok
1223
1224 Types:
1225
1226 Target = enum()
1227 Level = i()
1228 Internalformat = enum()
1229 Width = Height = Depth = Border = ImageSize = i()
1230 Data = offset() | mem()
1231
1232 Texturing allows elements of an image array to be read by
1233 shaders.
1234
1235 External documentation.
1236
1237 compressedTexSubImage1D(Target, Level, Xoffset, Width, Format,
1238 ImageSize, Data) ->
1239 ok
1240
1241 Types:
1242
1243 Target = enum()
1244 Level = Xoffset = Width = i()
1245 Format = enum()
1246 ImageSize = i()
1247 Data = offset() | mem()
1248
1249 Texturing allows elements of an image array to be read by
1250 shaders.
1251
1252 External documentation.
1253
1254 compressedTexSubImage2D(Target, Level, Xoffset, Yoffset, Width,
1255 Height, Format, ImageSize, Data) ->
1256 ok
1257
1258 Types:
1259
1260 Target = enum()
1261 Level = Xoffset = Yoffset = Width = Height = i()
1262 Format = enum()
1263 ImageSize = i()
1264 Data = offset() | mem()
1265
1266 Texturing allows elements of an image array to be read by
1267 shaders.
1268
1269 External documentation.
1270
1271 compressedTexSubImage3D(Target, Level, Xoffset, Yoffset, Zoffset,
1272 Width, Height, Depth, Format, ImageSize,
1273 Data) ->
1274 ok
1275
1276 Types:
1277
1278 Target = enum()
1279 Level = Xoffset = Yoffset = Zoffset = Width = Height = Depth
1280 = i()
1281 Format = enum()
1282 ImageSize = i()
1283 Data = offset() | mem()
1284
1285 Texturing allows elements of an image array to be read by
1286 shaders.
1287
1288 External documentation.
1289
1290 compressedTextureSubImage1D(Texture, Level, Xoffset, Width,
1291 Format, ImageSize, Data) ->
1292 ok
1293
1294 Types:
1295
1296 Texture = Level = Xoffset = Width = i()
1297 Format = enum()
1298 ImageSize = i()
1299 Data = offset() | mem()
1300
1301 No documentation available.
1302
1303 compressedTextureSubImage2D(Texture, Level, Xoffset, Yoffset,
1304 Width, Height, Format, ImageSize,
1305 Data) ->
1306 ok
1307
1308 Types:
1309
1310 Texture = Level = Xoffset = Yoffset = Width = Height = i()
1311 Format = enum()
1312 ImageSize = i()
1313 Data = offset() | mem()
1314
1315 No documentation available.
1316
1317 compressedTextureSubImage3D(Texture, Level, Xoffset, Yoffset,
1318 Zoffset, Width, Height, Depth, Format,
1319 ImageSize, Data) ->
1320 ok
1321
1322 Types:
1323
1324 Texture = Level = Xoffset = Yoffset = Zoffset = Width =
1325 Height = Depth = i()
1326 Format = enum()
1327 ImageSize = i()
1328 Data = offset() | mem()
1329
1330 No documentation available.
1331
1332 convolutionFilter1D(Target, Internalformat, Width, Format, Type,
1333 Image) ->
1334 ok
1335
1336 Types:
1337
1338 Target = Internalformat = enum()
1339 Width = i()
1340 Format = Type = enum()
1341 Image = offset() | mem()
1342
1343 gl:convolutionFilter1D/6 builds a one-dimensional convolution
1344 filter kernel from an array of pixels.
1345
1346 External documentation.
1347
1348 convolutionFilter2D(Target, Internalformat, Width, Height, Format,
1349 Type, Image) ->
1350 ok
1351
1352 Types:
1353
1354 Target = Internalformat = enum()
1355 Width = Height = i()
1356 Format = Type = enum()
1357 Image = offset() | mem()
1358
1359 gl:convolutionFilter2D/7 builds a two-dimensional convolution
1360 filter kernel from an array of pixels.
1361
1362 External documentation.
1363
1364 convolutionParameterf(Target :: enum(),
1365 Pname :: enum(),
1366 Params :: tuple()) ->
1367 ok
1368
1369 convolutionParameterfv(Target :: enum(),
1370 Pname :: enum(),
1371 Params :: tuple()) ->
1372 ok
1373
1374 convolutionParameteri(Target :: enum(),
1375 Pname :: enum(),
1376 Params :: tuple()) ->
1377 ok
1378
1379 convolutionParameteriv(Target :: enum(),
1380 Pname :: enum(),
1381 Params :: tuple()) ->
1382 ok
1383
1384 gl:convolutionParameter() sets the value of a convolution param‐
1385 eter.
1386
1387 External documentation.
1388
1389 copyBufferSubData(ReadTarget, WriteTarget, ReadOffset,
1390 WriteOffset, Size) ->
1391 ok
1392
1393 Types:
1394
1395 ReadTarget = WriteTarget = enum()
1396 ReadOffset = WriteOffset = Size = i()
1397
1398 gl:copyBufferSubData/5 and glCopyNamedBufferSubData copy part of
1399 the data store attached to a source buffer object to the data
1400 store attached to a destination buffer object. The number of ba‐
1401 sic machine units indicated by Size is copied from the source at
1402 offset ReadOffset to the destination at WriteOffset. ReadOffset,
1403 WriteOffset and Size are in terms of basic machine units.
1404
1405 External documentation.
1406
1407 copyColorSubTable(Target :: enum(),
1408 Start :: i(),
1409 X :: i(),
1410 Y :: i(),
1411 Width :: i()) ->
1412 ok
1413
1414 gl:copyColorSubTable/5 is used to respecify a contiguous portion
1415 of a color table previously defined using gl:colorTable/6. The
1416 pixels copied from the framebuffer replace the portion of the
1417 existing table from indices Start to start+x-1, inclusive. This
1418 region may not include any entries outside the range of the
1419 color table, as was originally specified. It is not an error to
1420 specify a subtexture with width of 0, but such a specification
1421 has no effect.
1422
1423 External documentation.
1424
1425 copyColorTable(Target :: enum(),
1426 Internalformat :: enum(),
1427 X :: i(),
1428 Y :: i(),
1429 Width :: i()) ->
1430 ok
1431
1432 gl:copyColorTable/5 loads a color table with pixels from the
1433 current ?GL_READ_BUFFER (rather than from main memory, as is the
1434 case for gl:colorTable/6).
1435
1436 External documentation.
1437
1438 copyConvolutionFilter1D(Target :: enum(),
1439 Internalformat :: enum(),
1440 X :: i(),
1441 Y :: i(),
1442 Width :: i()) ->
1443 ok
1444
1445 gl:copyConvolutionFilter1D/5 defines a one-dimensional convolu‐
1446 tion filter kernel with pixels from the current ?GL_READ_BUFFER
1447 (rather than from main memory, as is the case for gl:convolu‐
1448 tionFilter1D/6).
1449
1450 External documentation.
1451
1452 copyConvolutionFilter2D(Target :: enum(),
1453 Internalformat :: enum(),
1454 X :: i(),
1455 Y :: i(),
1456 Width :: i(),
1457 Height :: i()) ->
1458 ok
1459
1460 gl:copyConvolutionFilter2D/6 defines a two-dimensional convolu‐
1461 tion filter kernel with pixels from the current ?GL_READ_BUFFER
1462 (rather than from main memory, as is the case for gl:convolu‐
1463 tionFilter2D/7).
1464
1465 External documentation.
1466
1467 copyImageSubData(SrcName, SrcTarget, SrcLevel, SrcX, SrcY, SrcZ,
1468 DstName, DstTarget, DstLevel, DstX, DstY, DstZ,
1469 SrcWidth, SrcHeight, SrcDepth) ->
1470 ok
1471
1472 Types:
1473
1474 SrcName = i()
1475 SrcTarget = enum()
1476 SrcLevel = SrcX = SrcY = SrcZ = DstName = i()
1477 DstTarget = enum()
1478 DstLevel = DstX = DstY = DstZ = SrcWidth = SrcHeight = Sr‐
1479 cDepth = i()
1480
1481 gl:copyImageSubData/15 may be used to copy data from one image
1482 (i.e. texture or renderbuffer) to another. gl:copyImageSub‐
1483 Data/15 does not perform general-purpose conversions such as
1484 scaling, resizing, blending, color-space, or format conversions.
1485 It should be considered to operate in a manner similar to a CPU
1486 memcpy. CopyImageSubData can copy between images with different
1487 internal formats, provided the formats are compatible.
1488
1489 External documentation.
1490
1491 copyPixels(X :: i(),
1492 Y :: i(),
1493 Width :: i(),
1494 Height :: i(),
1495 Type :: enum()) ->
1496 ok
1497
1498 gl:copyPixels/5 copies a screen-aligned rectangle of pixels from
1499 the specified frame buffer location to a region relative to the
1500 current raster position. Its operation is well defined only if
1501 the entire pixel source region is within the exposed portion of
1502 the window. Results of copies from outside the window, or from
1503 regions of the window that are not exposed, are hardware depen‐
1504 dent and undefined.
1505
1506 External documentation.
1507
1508 copyTexImage1D(Target, Level, Internalformat, X, Y, Width, Border) ->
1509 ok
1510
1511 Types:
1512
1513 Target = enum()
1514 Level = i()
1515 Internalformat = enum()
1516 X = Y = Width = Border = i()
1517
1518 gl:copyTexImage1D/7 defines a one-dimensional texture image with
1519 pixels from the current ?GL_READ_BUFFER.
1520
1521 External documentation.
1522
1523 copyTexImage2D(Target, Level, Internalformat, X, Y, Width, Height,
1524 Border) ->
1525 ok
1526
1527 Types:
1528
1529 Target = enum()
1530 Level = i()
1531 Internalformat = enum()
1532 X = Y = Width = Height = Border = i()
1533
1534 gl:copyTexImage2D/8 defines a two-dimensional texture image, or
1535 cube-map texture image with pixels from the current
1536 ?GL_READ_BUFFER.
1537
1538 External documentation.
1539
1540 copyTexSubImage1D(Target :: enum(),
1541 Level :: i(),
1542 Xoffset :: i(),
1543 X :: i(),
1544 Y :: i(),
1545 Width :: i()) ->
1546 ok
1547
1548 gl:copyTexSubImage1D/6 and glCopyTextureSubImage1D replace a
1549 portion of a one-dimensional texture image with pixels from the
1550 current ?GL_READ_BUFFER (rather than from main memory, as is the
1551 case for gl:texSubImage1D/7). For gl:copyTexSubImage1D/6, the
1552 texture object that is bound to Target will be used for the
1553 process. For glCopyTextureSubImage1D, Texture tells which tex‐
1554 ture object should be used for the purpose of the call.
1555
1556 External documentation.
1557
1558 copyTexSubImage2D(Target, Level, Xoffset, Yoffset, X, Y, Width,
1559 Height) ->
1560 ok
1561
1562 Types:
1563
1564 Target = enum()
1565 Level = Xoffset = Yoffset = X = Y = Width = Height = i()
1566
1567 gl:copyTexSubImage2D/8 and glCopyTextureSubImage2D replace a
1568 rectangular portion of a two-dimensional texture image, cube-map
1569 texture image, rectangular image, or a linear portion of a num‐
1570 ber of slices of a one-dimensional array texture with pixels
1571 from the current ?GL_READ_BUFFER (rather than from main memory,
1572 as is the case for gl:texSubImage2D/9).
1573
1574 External documentation.
1575
1576 copyTexSubImage3D(Target, Level, Xoffset, Yoffset, Zoffset, X, Y,
1577 Width, Height) ->
1578 ok
1579
1580 Types:
1581
1582 Target = enum()
1583 Level = Xoffset = Yoffset = Zoffset = X = Y = Width = Height
1584 = i()
1585
1586 gl:copyTexSubImage3D/9 and glCopyTextureSubImage3D functions re‐
1587 place a rectangular portion of a three-dimensional or two-dimen‐
1588 sional array texture image with pixels from the current
1589 ?GL_READ_BUFFER (rather than from main memory, as is the case
1590 for gl:texSubImage3D/11).
1591
1592 External documentation.
1593
1594 createBuffers(N :: i()) -> [i()]
1595
1596 gl:createBuffers/1 returns N previously unused buffer names in
1597 Buffers, each representing a new buffer object initialized as if
1598 it had been bound to an unspecified target.
1599
1600 External documentation.
1601
1602 createFramebuffers(N :: i()) -> [i()]
1603
1604 gl:createFramebuffers/1 returns N previously unused framebuffer
1605 names in Framebuffers, each representing a new framebuffer ob‐
1606 ject initialized to the default state.
1607
1608 External documentation.
1609
1610 createProgram() -> i()
1611
1612 gl:createProgram/0 creates an empty program object and returns a
1613 non-zero value by which it can be referenced. A program object
1614 is an object to which shader objects can be attached. This pro‐
1615 vides a mechanism to specify the shader objects that will be
1616 linked to create a program. It also provides a means for check‐
1617 ing the compatibility of the shaders that will be used to create
1618 a program (for instance, checking the compatibility between a
1619 vertex shader and a fragment shader). When no longer needed as
1620 part of a program object, shader objects can be detached.
1621
1622 External documentation.
1623
1624 createProgramObjectARB() -> i()
1625
1626 No documentation available.
1627
1628 createProgramPipelines(N :: i()) -> [i()]
1629
1630 gl:createProgramPipelines/1 returns N previously unused program
1631 pipeline names in Pipelines, each representing a new program
1632 pipeline object initialized to the default state.
1633
1634 External documentation.
1635
1636 createQueries(Target :: enum(), N :: i()) -> [i()]
1637
1638 gl:createQueries/2 returns N previously unused query object
1639 names in Ids, each representing a new query object with the
1640 specified Target.
1641
1642 External documentation.
1643
1644 createRenderbuffers(N :: i()) -> [i()]
1645
1646 gl:createRenderbuffers/1 returns N previously unused render‐
1647 buffer object names in Renderbuffers, each representing a new
1648 renderbuffer object initialized to the default state.
1649
1650 External documentation.
1651
1652 createSamplers(N :: i()) -> [i()]
1653
1654 gl:createSamplers/1 returns N previously unused sampler names in
1655 Samplers, each representing a new sampler object initialized to
1656 the default state.
1657
1658 External documentation.
1659
1660 createShader(Type :: enum()) -> i()
1661
1662 gl:createShader/1 creates an empty shader object and returns a
1663 non-zero value by which it can be referenced. A shader object is
1664 used to maintain the source code strings that define a shader.
1665 ShaderType indicates the type of shader to be created. Five
1666 types of shader are supported. A shader of type ?GL_COM‐
1667 PUTE_SHADER is a shader that is intended to run on the program‐
1668 mable compute processor. A shader of type ?GL_VERTEX_SHADER is a
1669 shader that is intended to run on the programmable vertex pro‐
1670 cessor. A shader of type ?GL_TESS_CONTROL_SHADER is a shader
1671 that is intended to run on the programmable tessellation proces‐
1672 sor in the control stage. A shader of type ?GL_TESS_EVALUA‐
1673 TION_SHADER is a shader that is intended to run on the program‐
1674 mable tessellation processor in the evaluation stage. A shader
1675 of type ?GL_GEOMETRY_SHADER is a shader that is intended to run
1676 on the programmable geometry processor. A shader of type
1677 ?GL_FRAGMENT_SHADER is a shader that is intended to run on the
1678 programmable fragment processor.
1679
1680 External documentation.
1681
1682 createShaderObjectARB(ShaderType :: enum()) -> i()
1683
1684 No documentation available.
1685
1686 createShaderProgramv(Type :: enum(),
1687 Strings :: [unicode:chardata()]) ->
1688 i()
1689
1690 No documentation available.
1691
1692 createTextures(Target :: enum(), N :: i()) -> [i()]
1693
1694 gl:createTextures/2 returns N previously unused texture names in
1695 Textures, each representing a new texture object of the dimen‐
1696 sionality and type specified by Target and initialized to the
1697 default values for that texture type.
1698
1699 External documentation.
1700
1701 createTransformFeedbacks(N :: i()) -> [i()]
1702
1703 gl:createTransformFeedbacks/1 returns N previously unused trans‐
1704 form feedback object names in Ids, each representing a new
1705 transform feedback object initialized to the default state.
1706
1707 External documentation.
1708
1709 createVertexArrays(N :: i()) -> [i()]
1710
1711 gl:createVertexArrays/1 returns N previously unused vertex array
1712 object names in Arrays, each representing a new vertex array ob‐
1713 ject initialized to the default state.
1714
1715 External documentation.
1716
1717 cullFace(Mode :: enum()) -> ok
1718
1719 gl:cullFace/1 specifies whether front- or back-facing facets are
1720 culled (as specified by mode) when facet culling is enabled.
1721 Facet culling is initially disabled. To enable and disable facet
1722 culling, call the gl:enable/1 and gl:disable/1 commands with the
1723 argument ?GL_CULL_FACE. Facets include triangles, quadrilater‐
1724 als, polygons, and rectangles.
1725
1726 External documentation.
1727
1728 currentPaletteMatrixARB(Index :: i()) -> ok
1729
1730 No documentation available.
1731
1732 debugMessageControl(Source :: enum(),
1733 Type :: enum(),
1734 Severity :: enum(),
1735 Ids :: [i()],
1736 Enabled :: 0 | 1) ->
1737 ok
1738
1739 gl:debugMessageControl/5 controls the reporting of debug mes‐
1740 sages generated by a debug context. The parameters Source, Type
1741 and Severity form a filter to select messages from the pool of
1742 potential messages generated by the GL.
1743
1744 External documentation.
1745
1746 debugMessageInsert(Source, Type, Id, Severity, Length, Buf) -> ok
1747
1748 Types:
1749
1750 Source = Type = enum()
1751 Id = i()
1752 Severity = enum()
1753 Length = i()
1754 Buf = string()
1755
1756 gl:debugMessageInsert/6 inserts a user-supplied message into the
1757 debug output queue. Source specifies the source that will be
1758 used to classify the message and must be ?GL_DEBUG_SOURCE_APPLI‐
1759 CATION or ?GL_DEBUG_SOURCE_THIRD_PARTY. All other sources are
1760 reserved for use by the GL implementation. Type indicates the
1761 type of the message to be inserted and may be one of ?GL_DE‐
1762 BUG_TYPE_ERROR, ?GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR, ?GL_DE‐
1763 BUG_TYPE_UNDEFINED_BEHAVIOR, ?GL_DEBUG_TYPE_PORTABILITY, ?GL_DE‐
1764 BUG_TYPE_PERFORMANCE, ?GL_DEBUG_TYPE_MARKER, ?GL_DE‐
1765 BUG_TYPE_PUSH_GROUP, ?GL_DEBUG_TYPE_POP_GROUP, or ?GL_DE‐
1766 BUG_TYPE_OTHER. Severity indicates the severity of the message
1767 and may be ?GL_DEBUG_SEVERITY_LOW, ?GL_DEBUG_SEVERITY_MEDIUM,
1768 ?GL_DEBUG_SEVERITY_HIGH or ?GL_DEBUG_SEVERITY_NOTIFICATION. Id
1769 is available for application defined use and may be any value.
1770 This value will be recorded and used to identify the message.
1771
1772 External documentation.
1773
1774 deleteBuffers(Buffers :: [i()]) -> ok
1775
1776 gl:deleteBuffers/1 deletes N buffer objects named by the ele‐
1777 ments of the array Buffers. After a buffer object is deleted, it
1778 has no contents, and its name is free for reuse (for example by
1779 gl:genBuffers/1). If a buffer object that is currently bound is
1780 deleted, the binding reverts to 0 (the absence of any buffer ob‐
1781 ject).
1782
1783 External documentation.
1784
1785 deleteFramebuffers(Framebuffers :: [i()]) -> ok
1786
1787 gl:deleteFramebuffers/1 deletes the N framebuffer objects whose
1788 names are stored in the array addressed by Framebuffers. The
1789 name zero is reserved by the GL and is silently ignored, should
1790 it occur in Framebuffers, as are other unused names. Once a
1791 framebuffer object is deleted, its name is again unused and it
1792 has no attachments. If a framebuffer that is currently bound to
1793 one or more of the targets ?GL_DRAW_FRAMEBUFFER or
1794 ?GL_READ_FRAMEBUFFER is deleted, it is as though gl:bindFrame‐
1795 buffer/2 had been executed with the corresponding Target and
1796 Framebuffer zero.
1797
1798 External documentation.
1799
1800 deleteLists(List :: i(), Range :: i()) -> ok
1801
1802 gl:deleteLists/2 causes a contiguous group of display lists to
1803 be deleted. List is the name of the first display list to be
1804 deleted, and Range is the number of display lists to delete. All
1805 display lists d with list<= d<= list+range-1 are deleted.
1806
1807 External documentation.
1808
1809 deleteNamedStringARB(Name :: string()) -> ok
1810
1811 No documentation available.
1812
1813 deleteObjectARB(Obj :: i()) -> ok
1814
1815 No documentation available.
1816
1817 deleteProgram(Program :: i()) -> ok
1818
1819 gl:deleteProgram/1 frees the memory and invalidates the name as‐
1820 sociated with the program object specified by Program. This com‐
1821 mand effectively undoes the effects of a call to gl:createPro‐
1822 gram/0.
1823
1824 External documentation.
1825
1826 deleteProgramPipelines(Pipelines :: [i()]) -> ok
1827
1828 gl:deleteProgramPipelines/1 deletes the N program pipeline ob‐
1829 jects whose names are stored in the array Pipelines. Unused
1830 names in Pipelines are ignored, as is the name zero. After a
1831 program pipeline object is deleted, its name is again unused and
1832 it has no contents. If program pipeline object that is currently
1833 bound is deleted, the binding for that object reverts to zero
1834 and no program pipeline object becomes current.
1835
1836 External documentation.
1837
1838 deleteProgramsARB(Programs :: [i()]) -> ok
1839
1840 No documentation available.
1841
1842 deleteQueries(Ids :: [i()]) -> ok
1843
1844 gl:deleteQueries/1 deletes N query objects named by the elements
1845 of the array Ids. After a query object is deleted, it has no
1846 contents, and its name is free for reuse (for example by gl:gen‐
1847 Queries/1).
1848
1849 External documentation.
1850
1851 deleteRenderbuffers(Renderbuffers :: [i()]) -> ok
1852
1853 gl:deleteRenderbuffers/1 deletes the N renderbuffer objects
1854 whose names are stored in the array addressed by Renderbuffers.
1855 The name zero is reserved by the GL and is silently ignored,
1856 should it occur in Renderbuffers, as are other unused names.
1857 Once a renderbuffer object is deleted, its name is again unused
1858 and it has no contents. If a renderbuffer that is currently
1859 bound to the target ?GL_RENDERBUFFER is deleted, it is as though
1860 gl:bindRenderbuffer/2 had been executed with a Target of
1861 ?GL_RENDERBUFFER and a Name of zero.
1862
1863 External documentation.
1864
1865 deleteSamplers(Samplers :: [i()]) -> ok
1866
1867 gl:deleteSamplers/1 deletes N sampler objects named by the ele‐
1868 ments of the array Samplers. After a sampler object is deleted,
1869 its name is again unused. If a sampler object that is currently
1870 bound to a sampler unit is deleted, it is as though gl:bindSam‐
1871 pler/2 is called with unit set to the unit the sampler is bound
1872 to and sampler zero. Unused names in samplers are silently ig‐
1873 nored, as is the reserved name zero.
1874
1875 External documentation.
1876
1877 deleteShader(Shader :: i()) -> ok
1878
1879 gl:deleteShader/1 frees the memory and invalidates the name as‐
1880 sociated with the shader object specified by Shader. This com‐
1881 mand effectively undoes the effects of a call to gl:create‐
1882 Shader/1.
1883
1884 External documentation.
1885
1886 deleteSync(Sync :: i()) -> ok
1887
1888 gl:deleteSync/1 deletes the sync object specified by Sync. If
1889 the fence command corresponding to the specified sync object has
1890 completed, or if no gl:waitSync/3 or gl:clientWaitSync/3 com‐
1891 mands are blocking on Sync, the object is deleted immediately.
1892 Otherwise, Sync is flagged for deletion and will be deleted when
1893 it is no longer associated with any fence command and is no
1894 longer blocking any gl:waitSync/3 or gl:clientWaitSync/3 com‐
1895 mand. In either case, after gl:deleteSync/1 returns, the name
1896 Sync is invalid and can no longer be used to refer to the sync
1897 object.
1898
1899 External documentation.
1900
1901 deleteTextures(Textures :: [i()]) -> ok
1902
1903 gl:deleteTextures/1 deletes N textures named by the elements of
1904 the array Textures. After a texture is deleted, it has no con‐
1905 tents or dimensionality, and its name is free for reuse (for ex‐
1906 ample by gl:genTextures/1). If a texture that is currently bound
1907 is deleted, the binding reverts to 0 (the default texture).
1908
1909 External documentation.
1910
1911 deleteTransformFeedbacks(Ids :: [i()]) -> ok
1912
1913 gl:deleteTransformFeedbacks/1 deletes the N transform feedback
1914 objects whose names are stored in the array Ids. Unused names in
1915 Ids are ignored, as is the name zero. After a transform feedback
1916 object is deleted, its name is again unused and it has no con‐
1917 tents. If an active transform feedback object is deleted, its
1918 name immediately becomes unused, but the underlying object is
1919 not deleted until it is no longer active.
1920
1921 External documentation.
1922
1923 deleteVertexArrays(Arrays :: [i()]) -> ok
1924
1925 gl:deleteVertexArrays/1 deletes N vertex array objects whose
1926 names are stored in the array addressed by Arrays. Once a vertex
1927 array object is deleted it has no contents and its name is again
1928 unused. If a vertex array object that is currently bound is
1929 deleted, the binding for that object reverts to zero and the de‐
1930 fault vertex array becomes current. Unused names in Arrays are
1931 silently ignored, as is the value zero.
1932
1933 External documentation.
1934
1935 depthBoundsEXT(Zmin :: clamp(), Zmax :: clamp()) -> ok
1936
1937 No documentation available.
1938
1939 depthFunc(Func :: enum()) -> ok
1940
1941 gl:depthFunc/1 specifies the function used to compare each in‐
1942 coming pixel depth value with the depth value present in the
1943 depth buffer. The comparison is performed only if depth testing
1944 is enabled. (See gl:enable/1 and gl:disable/1 of
1945 ?GL_DEPTH_TEST.)
1946
1947 External documentation.
1948
1949 depthMask(Flag :: 0 | 1) -> ok
1950
1951 gl:depthMask/1 specifies whether the depth buffer is enabled for
1952 writing. If Flag is ?GL_FALSE, depth buffer writing is disabled.
1953 Otherwise, it is enabled. Initially, depth buffer writing is en‐
1954 abled.
1955
1956 External documentation.
1957
1958 depthRange(Near_val :: clamp(), Far_val :: clamp()) -> ok
1959
1960 depthRangef(N :: f(), F :: f()) -> ok
1961
1962 After clipping and division by w, depth coordinates range from
1963 -1 to 1, corresponding to the near and far clipping planes.
1964 gl:depthRange/2 specifies a linear mapping of the normalized
1965 depth coordinates in this range to window depth coordinates. Re‐
1966 gardless of the actual depth buffer implementation, window coor‐
1967 dinate depth values are treated as though they range from 0
1968 through 1 (like color components). Thus, the values accepted by
1969 gl:depthRange/2 are both clamped to this range before they are
1970 accepted.
1971
1972 External documentation.
1973
1974 depthRangeArrayv(First :: i(), V :: [{f(), f()}]) -> ok
1975
1976 No documentation available.
1977
1978 depthRangeIndexed(Index :: i(), N :: f(), F :: f()) -> ok
1979
1980 No documentation available.
1981
1982 detachObjectARB(ContainerObj :: i(), AttachedObj :: i()) -> ok
1983
1984 No documentation available.
1985
1986 detachShader(Program :: i(), Shader :: i()) -> ok
1987
1988 gl:detachShader/2 detaches the shader object specified by Shader
1989 from the program object specified by Program. This command can
1990 be used to undo the effect of the command gl:attachShader/2.
1991
1992 External documentation.
1993
1994 dispatchCompute(Num_groups_x :: i(),
1995 Num_groups_y :: i(),
1996 Num_groups_z :: i()) ->
1997 ok
1998
1999 gl:dispatchCompute/3 launches one or more compute work groups.
2000 Each work group is processed by the active program object for
2001 the compute shader stage. While the individual shader invoca‐
2002 tions within a work group are executed as a unit, work groups
2003 are executed completely independently and in unspecified order.
2004 Num_groups_x, Num_groups_y and Num_groups_z specify the number
2005 of local work groups that will be dispatched in the X, Y and Z
2006 dimensions, respectively.
2007
2008 External documentation.
2009
2010 dispatchComputeGroupSizeARB(Num_groups_x, Num_groups_y,
2011 Num_groups_z, Group_size_x,
2012 Group_size_y, Group_size_z) ->
2013 ok
2014
2015 Types:
2016
2017 Num_groups_x = Num_groups_y = Num_groups_z = Group_size_x =
2018 Group_size_y = Group_size_z = i()
2019
2020 No documentation available.
2021
2022 dispatchComputeIndirect(Indirect :: i()) -> ok
2023
2024 gl:dispatchComputeIndirect/1 launches one or more compute work
2025 groups using parameters stored in the buffer object currently
2026 bound to the ?GL_DISPATCH_INDIRECT_BUFFER target. Each work
2027 group is processed by the active program object for the compute
2028 shader stage. While the individual shader invocations within a
2029 work group are executed as a unit, work groups are executed com‐
2030 pletely independently and in unspecified order. Indirect con‐
2031 tains the offset into the data store of the buffer object bound
2032 to the ?GL_DISPATCH_INDIRECT_BUFFER target at which the parame‐
2033 ters are stored.
2034
2035 External documentation.
2036
2037 drawArrays(Mode :: enum(), First :: i(), Count :: i()) -> ok
2038
2039 gl:drawArrays/3 specifies multiple geometric primitives with
2040 very few subroutine calls. Instead of calling a GL procedure to
2041 pass each individual vertex, normal, texture coordinate, edge
2042 flag, or color, you can prespecify separate arrays of vertices,
2043 normals, and colors and use them to construct a sequence of
2044 primitives with a single call to gl:drawArrays/3.
2045
2046 External documentation.
2047
2048 drawArraysIndirect(Mode :: enum(), Indirect :: offset() | mem()) ->
2049 ok
2050
2051 gl:drawArraysIndirect/2 specifies multiple geometric primitives
2052 with very few subroutine calls. gl:drawArraysIndirect/2 behaves
2053 similarly to gl:drawArraysInstancedBaseInstance/5, execept that
2054 the parameters to gl:drawArraysInstancedBaseInstance/5 are
2055 stored in memory at the address given by Indirect.
2056
2057 External documentation.
2058
2059 drawArraysInstanced(Mode :: enum(),
2060 First :: i(),
2061 Count :: i(),
2062 Instancecount :: i()) ->
2063 ok
2064
2065 No documentation available.
2066
2067 drawArraysInstancedBaseInstance(Mode :: enum(),
2068 First :: i(),
2069 Count :: i(),
2070 Instancecount :: i(),
2071 Baseinstance :: i()) ->
2072 ok
2073
2074 gl:drawArraysInstancedBaseInstance/5 behaves identically to
2075 gl:drawArrays/3 except that Instancecount instances of the range
2076 of elements are executed and the value of the internal counter
2077 InstanceID advances for each iteration. InstanceID is an inter‐
2078 nal 32-bit integer counter that may be read by a vertex shader
2079 as ?gl_InstanceID.
2080
2081 External documentation.
2082
2083 drawBuffer(Mode :: enum()) -> ok
2084
2085 When colors are written to the frame buffer, they are written
2086 into the color buffers specified by gl:drawBuffer/1. One of the
2087 following values can be used for default framebuffer:
2088
2089 External documentation.
2090
2091 drawBuffers(Bufs :: [enum()]) -> ok
2092
2093 gl:drawBuffers/1 and glNamedFramebufferDrawBuffers define an ar‐
2094 ray of buffers into which outputs from the fragment shader data
2095 will be written. If a fragment shader writes a value to one or
2096 more user defined output variables, then the value of each vari‐
2097 able will be written into the buffer specified at a location
2098 within Bufs corresponding to the location assigned to that user
2099 defined output. The draw buffer used for user defined outputs
2100 assigned to locations greater than or equal to N is implicitly
2101 set to ?GL_NONE and any data written to such an output is dis‐
2102 carded.
2103
2104 External documentation.
2105
2106 drawElements(Mode :: enum(),
2107 Count :: i(),
2108 Type :: enum(),
2109 Indices :: offset() | mem()) ->
2110 ok
2111
2112 gl:drawElements/4 specifies multiple geometric primitives with
2113 very few subroutine calls. Instead of calling a GL function to
2114 pass each individual vertex, normal, texture coordinate, edge
2115 flag, or color, you can prespecify separate arrays of vertices,
2116 normals, and so on, and use them to construct a sequence of
2117 primitives with a single call to gl:drawElements/4.
2118
2119 External documentation.
2120
2121 drawElementsBaseVertex(Mode, Count, Type, Indices, Basevertex) ->
2122 ok
2123
2124 Types:
2125
2126 Mode = enum()
2127 Count = i()
2128 Type = enum()
2129 Indices = offset() | mem()
2130 Basevertex = i()
2131
2132 gl:drawElementsBaseVertex/5 behaves identically to gl:drawEle‐
2133 ments/4 except that the ith element transferred by the corre‐
2134 sponding draw call will be taken from element Indices[i] + Ba‐
2135 severtex of each enabled array. If the resulting value is larger
2136 than the maximum value representable by Type, it is as if the
2137 calculation were upconverted to 32-bit unsigned integers (with
2138 wrapping on overflow conditions). The operation is undefined if
2139 the sum would be negative.
2140
2141 External documentation.
2142
2143 drawElementsIndirect(Mode :: enum(),
2144 Type :: enum(),
2145 Indirect :: offset() | mem()) ->
2146 ok
2147
2148 gl:drawElementsIndirect/3 specifies multiple indexed geometric
2149 primitives with very few subroutine calls. gl:drawElementsIndi‐
2150 rect/3 behaves similarly to gl:drawElementsInstancedBaseVer‐
2151 texBaseInstance/7, execpt that the parameters to gl:drawEle‐
2152 mentsInstancedBaseVertexBaseInstance/7 are stored in memory at
2153 the address given by Indirect.
2154
2155 External documentation.
2156
2157 drawElementsInstanced(Mode, Count, Type, Indices, Instancecount) ->
2158 ok
2159
2160 Types:
2161
2162 Mode = enum()
2163 Count = i()
2164 Type = enum()
2165 Indices = offset() | mem()
2166 Instancecount = i()
2167
2168 No documentation available.
2169
2170 drawElementsInstancedBaseInstance(Mode, Count, Type, Indices,
2171 Instancecount, Baseinstance) ->
2172 ok
2173
2174 Types:
2175
2176 Mode = enum()
2177 Count = i()
2178 Type = enum()
2179 Indices = offset() | mem()
2180 Instancecount = Baseinstance = i()
2181
2182 gl:drawElementsInstancedBaseInstance/6 behaves identically to
2183 gl:drawElements/4 except that Instancecount instances of the set
2184 of elements are executed and the value of the internal counter
2185 InstanceID advances for each iteration. InstanceID is an inter‐
2186 nal 32-bit integer counter that may be read by a vertex shader
2187 as ?gl_InstanceID.
2188
2189 External documentation.
2190
2191 drawElementsInstancedBaseVertex(Mode, Count, Type, Indices,
2192 Instancecount, Basevertex) ->
2193 ok
2194
2195 Types:
2196
2197 Mode = enum()
2198 Count = i()
2199 Type = enum()
2200 Indices = offset() | mem()
2201 Instancecount = Basevertex = i()
2202
2203 gl:drawElementsInstancedBaseVertex/6 behaves identically to
2204 gl:drawElementsInstanced/5 except that the ith element trans‐
2205 ferred by the corresponding draw call will be taken from element
2206 Indices[i] + Basevertex of each enabled array. If the resulting
2207 value is larger than the maximum value representable by Type, it
2208 is as if the calculation were upconverted to 32-bit unsigned in‐
2209 tegers (with wrapping on overflow conditions). The operation is
2210 undefined if the sum would be negative.
2211
2212 External documentation.
2213
2214 drawElementsInstancedBaseVertexBaseInstance(Mode, Count, Type,
2215 Indices,
2216 Instancecount,
2217 Basevertex,
2218 Baseinstance) ->
2219 ok
2220
2221 Types:
2222
2223 Mode = enum()
2224 Count = i()
2225 Type = enum()
2226 Indices = offset() | mem()
2227 Instancecount = Basevertex = Baseinstance = i()
2228
2229 gl:drawElementsInstancedBaseVertexBaseInstance/7 behaves identi‐
2230 cally to gl:drawElementsInstanced/5 except that the ith element
2231 transferred by the corresponding draw call will be taken from
2232 element Indices[i] + Basevertex of each enabled array. If the
2233 resulting value is larger than the maximum value representable
2234 by Type, it is as if the calculation were upconverted to 32-bit
2235 unsigned integers (with wrapping on overflow conditions). The
2236 operation is undefined if the sum would be negative.
2237
2238 External documentation.
2239
2240 drawPixels(Width :: i(),
2241 Height :: i(),
2242 Format :: enum(),
2243 Type :: enum(),
2244 Pixels :: offset() | mem()) ->
2245 ok
2246
2247 gl:drawPixels/5 reads pixel data from memory and writes it into
2248 the frame buffer relative to the current raster position, pro‐
2249 vided that the raster position is valid. Use gl:rasterPos() or
2250 gl:windowPos() to set the current raster position; use gl:get()
2251 with argument ?GL_CURRENT_RASTER_POSITION_VALID to determine if
2252 the specified raster position is valid, and gl:get() with argu‐
2253 ment ?GL_CURRENT_RASTER_POSITION to query the raster position.
2254
2255 External documentation.
2256
2257 drawRangeElements(Mode, Start, End, Count, Type, Indices) -> ok
2258
2259 Types:
2260
2261 Mode = enum()
2262 Start = End = Count = i()
2263 Type = enum()
2264 Indices = offset() | mem()
2265
2266 gl:drawRangeElements/6 is a restricted form of gl:drawEle‐
2267 ments/4. Mode, and Count match the corresponding arguments to
2268 gl:drawElements/4, with the additional constraint that all val‐
2269 ues in the arrays Count must lie between Start and End, inclu‐
2270 sive.
2271
2272 External documentation.
2273
2274 drawRangeElementsBaseVertex(Mode, Start, End, Count, Type,
2275 Indices, Basevertex) ->
2276 ok
2277
2278 Types:
2279
2280 Mode = enum()
2281 Start = End = Count = i()
2282 Type = enum()
2283 Indices = offset() | mem()
2284 Basevertex = i()
2285
2286 gl:drawRangeElementsBaseVertex/7 is a restricted form of
2287 gl:drawElementsBaseVertex/5. Mode, Count and Basevertex match
2288 the corresponding arguments to gl:drawElementsBaseVertex/5, with
2289 the additional constraint that all values in the array Indices
2290 must lie between Start and End, inclusive, prior to adding Ba‐
2291 severtex. Index values lying outside the range [Start, End] are
2292 treated in the same way as gl:drawElementsBaseVertex/5. The ith
2293 element transferred by the corresponding draw call will be taken
2294 from element Indices[i] + Basevertex of each enabled array. If
2295 the resulting value is larger than the maximum value repre‐
2296 sentable by Type, it is as if the calculation were upconverted
2297 to 32-bit unsigned integers (with wrapping on overflow condi‐
2298 tions). The operation is undefined if the sum would be negative.
2299
2300 External documentation.
2301
2302 drawTransformFeedback(Mode :: enum(), Id :: i()) -> ok
2303
2304 gl:drawTransformFeedback/2 draws primitives of a type specified
2305 by Mode using a count retrieved from the transform feedback
2306 specified by Id. Calling gl:drawTransformFeedback/2 is equiva‐
2307 lent to calling gl:drawArrays/3 with Mode as specified, First
2308 set to zero, and Count set to the number of vertices captured on
2309 vertex stream zero the last time transform feedback was active
2310 on the transform feedback object named by Id.
2311
2312 External documentation.
2313
2314 drawTransformFeedbackInstanced(Mode :: enum(),
2315 Id :: i(),
2316 Instancecount :: i()) ->
2317 ok
2318
2319 No documentation available.
2320
2321 drawTransformFeedbackStream(Mode :: enum(),
2322 Id :: i(),
2323 Stream :: i()) ->
2324 ok
2325
2326 gl:drawTransformFeedbackStream/3 draws primitives of a type
2327 specified by Mode using a count retrieved from the transform
2328 feedback stream specified by Stream of the transform feedback
2329 object specified by Id. Calling gl:drawTransformFeedbackStream/3
2330 is equivalent to calling gl:drawArrays/3 with Mode as specified,
2331 First set to zero, and Count set to the number of vertices cap‐
2332 tured on vertex stream Stream the last time transform feedback
2333 was active on the transform feedback object named by Id.
2334
2335 External documentation.
2336
2337 drawTransformFeedbackStreamInstanced(Mode :: enum(),
2338 Id :: i(),
2339 Stream :: i(),
2340 Instancecount :: i()) ->
2341 ok
2342
2343 No documentation available.
2344
2345 edgeFlag(Flag :: 0 | 1) -> ok
2346
2347 Each vertex of a polygon, separate triangle, or separate quadri‐
2348 lateral specified between a gl:'begin'/1/gl:'end'/0 pair is
2349 marked as the start of either a boundary or nonboundary edge. If
2350 the current edge flag is true when the vertex is specified, the
2351 vertex is marked as the start of a boundary edge. Otherwise, the
2352 vertex is marked as the start of a nonboundary edge. gl:edge‐
2353 Flag/1 sets the edge flag bit to ?GL_TRUE if Flag is ?GL_TRUE
2354 and to ?GL_FALSE otherwise.
2355
2356 External documentation.
2357
2358 edgeFlagPointer(Stride :: i(), Ptr :: offset() | mem()) -> ok
2359
2360 gl:edgeFlagPointer/2 specifies the location and data format of
2361 an array of boolean edge flags to use when rendering. Stride
2362 specifies the byte stride from one edge flag to the next, allow‐
2363 ing vertices and attributes to be packed into a single array or
2364 stored in separate arrays.
2365
2366 External documentation.
2367
2368 edgeFlagv(X1 :: {Flag :: 0 | 1}) -> ok
2369
2370 No documentation available.
2371
2372 disable(Cap :: enum()) -> ok
2373
2374 enable(Cap :: enum()) -> ok
2375
2376 enablei(Target :: enum(), Index :: i()) -> ok
2377
2378 gl:enable/1 and gl:disable/1 enable and disable various capabil‐
2379 ities. Use gl:isEnabled/1 or gl:get() to determine the current
2380 setting of any capability. The initial value for each capability
2381 with the exception of ?GL_DITHER and ?GL_MULTISAMPLE is
2382 ?GL_FALSE. The initial value for ?GL_DITHER and ?GL_MULTISAMPLE
2383 is ?GL_TRUE.
2384
2385 External documentation.
2386
2387 disableClientState(Cap :: enum()) -> ok
2388
2389 enableClientState(Cap :: enum()) -> ok
2390
2391 gl:enableClientState/1 and gl:disableClientState/1 enable or
2392 disable individual client-side capabilities. By default, all
2393 client-side capabilities are disabled. Both gl:enable‐
2394 ClientState/1 and gl:disableClientState/1 take a single argu‐
2395 ment, Cap, which can assume one of the following values:
2396
2397 External documentation.
2398
2399 disableVertexArrayAttrib(Vaobj :: i(), Index :: i()) -> ok
2400
2401 enableVertexArrayAttrib(Vaobj :: i(), Index :: i()) -> ok
2402
2403 No documentation available.
2404
2405 disableVertexAttribArray(Index :: i()) -> ok
2406
2407 enableVertexAttribArray(Index :: i()) -> ok
2408
2409 gl:enableVertexAttribArray/1 and gl:enableVertexArrayAttrib/2
2410 enable the generic vertex attribute array specified by Index.
2411 gl:enableVertexAttribArray/1 uses currently bound vertex array
2412 object for the operation, whereas gl:enableVertexArrayAttrib/2
2413 updates state of the vertex array object with ID Vaobj.
2414
2415 External documentation.
2416
2417 disablei(Target :: enum(), Index :: i()) -> ok
2418
2419 No documentation available.
2420
2421 evalCoord1d(U :: f()) -> ok
2422
2423 evalCoord1dv(X1 :: {U :: f()}) -> ok
2424
2425 evalCoord1f(U :: f()) -> ok
2426
2427 evalCoord1fv(X1 :: {U :: f()}) -> ok
2428
2429 evalCoord2d(U :: f(), V :: f()) -> ok
2430
2431 evalCoord2dv(X1 :: {U :: f(), V :: f()}) -> ok
2432
2433 evalCoord2f(U :: f(), V :: f()) -> ok
2434
2435 evalCoord2fv(X1 :: {U :: f(), V :: f()}) -> ok
2436
2437 gl:evalCoord1() evaluates enabled one-dimensional maps at argu‐
2438 ment U. gl:evalCoord2() does the same for two-dimensional maps
2439 using two domain values, U and V. To define a map, call
2440 gl:map1() and gl:map2(); to enable and disable it, call gl:en‐
2441 able/1 and gl:disable/1.
2442
2443 External documentation.
2444
2445 evalMesh1(Mode :: enum(), I1 :: i(), I2 :: i()) -> ok
2446
2447 evalMesh2(Mode :: enum(),
2448 I1 :: i(),
2449 I2 :: i(),
2450 J1 :: i(),
2451 J2 :: i()) ->
2452 ok
2453
2454 gl:mapGrid() and gl:evalMesh() are used in tandem to efficiently
2455 generate and evaluate a series of evenly-spaced map domain val‐
2456 ues. gl:evalMesh() steps through the integer domain of a one- or
2457 two-dimensional grid, whose range is the domain of the evalua‐
2458 tion maps specified by gl:map1() and gl:map2(). Mode determines
2459 whether the resulting vertices are connected as points, lines,
2460 or filled polygons.
2461
2462 External documentation.
2463
2464 evalPoint1(I :: i()) -> ok
2465
2466 evalPoint2(I :: i(), J :: i()) -> ok
2467
2468 gl:mapGrid() and gl:evalMesh() are used in tandem to efficiently
2469 generate and evaluate a series of evenly spaced map domain val‐
2470 ues. gl:evalPoint() can be used to evaluate a single grid point
2471 in the same gridspace that is traversed by gl:evalMesh(). Call‐
2472 ing gl:evalPoint1/1 is equivalent to calling glEvalCoord1( i.ð
2473 u+u 1 ); where ð u=(u 2-u 1)/n
2474
2475 External documentation.
2476
2477 evaluateDepthValuesARB() -> ok
2478
2479 No documentation available.
2480
2481 feedbackBuffer(Size :: i(), Type :: enum(), Buffer :: mem()) -> ok
2482
2483 The gl:feedbackBuffer/3 function controls feedback. Feedback,
2484 like selection, is a GL mode. The mode is selected by calling
2485 gl:renderMode/1 with ?GL_FEEDBACK. When the GL is in feedback
2486 mode, no pixels are produced by rasterization. Instead, informa‐
2487 tion about primitives that would have been rasterized is fed
2488 back to the application using the GL.
2489
2490 External documentation.
2491
2492 fenceSync(Condition :: enum(), Flags :: i()) -> i()
2493
2494 gl:fenceSync/2 creates a new fence sync object, inserts a fence
2495 command into the GL command stream and associates it with that
2496 sync object, and returns a non-zero name corresponding to the
2497 sync object.
2498
2499 External documentation.
2500
2501 finish() -> ok
2502
2503 gl:finish/0 does not return until the effects of all previously
2504 called GL commands are complete. Such effects include all
2505 changes to GL state, all changes to connection state, and all
2506 changes to the frame buffer contents.
2507
2508 External documentation.
2509
2510 flush() -> ok
2511
2512 Different GL implementations buffer commands in several differ‐
2513 ent locations, including network buffers and the graphics accel‐
2514 erator itself. gl:flush/0 empties all of these buffers, causing
2515 all issued commands to be executed as quickly as they are ac‐
2516 cepted by the actual rendering engine. Though this execution may
2517 not be completed in any particular time period, it does complete
2518 in finite time.
2519
2520 External documentation.
2521
2522 flushMappedBufferRange(Target :: enum(),
2523 Offset :: i(),
2524 Length :: i()) ->
2525 ok
2526
2527 gl:flushMappedBufferRange/3 indicates that modifications have
2528 been made to a range of a mapped buffer object. The buffer ob‐
2529 ject must previously have been mapped with the ?GL_MAP_FLUSH_EX‐
2530 PLICIT_BIT flag.
2531
2532 External documentation.
2533
2534 flushMappedNamedBufferRange(Buffer :: i(),
2535 Offset :: i(),
2536 Length :: i()) ->
2537 ok
2538
2539 No documentation available.
2540
2541 fogf(Pname :: enum(), Param :: f()) -> ok
2542
2543 fogfv(Pname :: enum(), Params :: tuple()) -> ok
2544
2545 fogi(Pname :: enum(), Param :: i()) -> ok
2546
2547 fogiv(Pname :: enum(), Params :: tuple()) -> ok
2548
2549 Fog is initially disabled. While enabled, fog affects rasterized
2550 geometry, bitmaps, and pixel blocks, but not buffer clear opera‐
2551 tions. To enable and disable fog, call gl:enable/1 and gl:dis‐
2552 able/1 with argument ?GL_FOG.
2553
2554 External documentation.
2555
2556 fogCoordd(Coord :: f()) -> ok
2557
2558 fogCoorddv(X1 :: {Coord :: f()}) -> ok
2559
2560 fogCoordf(Coord :: f()) -> ok
2561
2562 fogCoordfv(X1 :: {Coord :: f()}) -> ok
2563
2564 gl:fogCoord() specifies the fog coordinate that is associated
2565 with each vertex and the current raster position. The value
2566 specified is interpolated and used in computing the fog color
2567 (see gl:fog()).
2568
2569 External documentation.
2570
2571 fogCoordPointer(Type :: enum(),
2572 Stride :: i(),
2573 Pointer :: offset() | mem()) ->
2574 ok
2575
2576 gl:fogCoordPointer/3 specifies the location and data format of
2577 an array of fog coordinates to use when rendering. Type speci‐
2578 fies the data type of each fog coordinate, and Stride specifies
2579 the byte stride from one fog coordinate to the next, allowing
2580 vertices and attributes to be packed into a single array or
2581 stored in separate arrays.
2582
2583 External documentation.
2584
2585 framebufferParameteri(Target :: enum(),
2586 Pname :: enum(),
2587 Param :: i()) ->
2588 ok
2589
2590 No documentation available.
2591
2592 framebufferRenderbuffer(Target, Attachment, Renderbuffertarget,
2593 Renderbuffer) ->
2594 ok
2595
2596 Types:
2597
2598 Target = Attachment = Renderbuffertarget = enum()
2599 Renderbuffer = i()
2600
2601 gl:framebufferRenderbuffer/4 and glNamedFramebufferRenderbuffer
2602 attaches a renderbuffer as one of the logical buffers of the
2603 specified framebuffer object. Renderbuffers cannot be attached
2604 to the default draw and read framebuffer, so they are not valid
2605 targets of these commands.
2606
2607 External documentation.
2608
2609 framebufferTexture(Target :: enum(),
2610 Attachment :: enum(),
2611 Texture :: i(),
2612 Level :: i()) ->
2613 ok
2614
2615 framebufferTexture1D(Target :: enum(),
2616 Attachment :: enum(),
2617 Textarget :: enum(),
2618 Texture :: i(),
2619 Level :: i()) ->
2620 ok
2621
2622 framebufferTexture2D(Target :: enum(),
2623 Attachment :: enum(),
2624 Textarget :: enum(),
2625 Texture :: i(),
2626 Level :: i()) ->
2627 ok
2628
2629 framebufferTexture3D(Target, Attachment, Textarget, Texture,
2630 Level, Zoffset) ->
2631 ok
2632
2633 framebufferTextureFaceARB(Target :: enum(),
2634 Attachment :: enum(),
2635 Texture :: i(),
2636 Level :: i(),
2637 Face :: enum()) ->
2638 ok
2639
2640 framebufferTextureLayer(Target :: enum(),
2641 Attachment :: enum(),
2642 Texture :: i(),
2643 Level :: i(),
2644 Layer :: i()) ->
2645 ok
2646
2647 These commands attach a selected mipmap level or image of a tex‐
2648 ture object as one of the logical buffers of the specified
2649 framebuffer object. Textures cannot be attached to the default
2650 draw and read framebuffer, so they are not valid targets of
2651 these commands.
2652
2653 External documentation.
2654
2655 frontFace(Mode :: enum()) -> ok
2656
2657 In a scene composed entirely of opaque closed surfaces, back-
2658 facing polygons are never visible. Eliminating these invisible
2659 polygons has the obvious benefit of speeding up the rendering of
2660 the image. To enable and disable elimination of back-facing
2661 polygons, call gl:enable/1 and gl:disable/1 with argument
2662 ?GL_CULL_FACE.
2663
2664 External documentation.
2665
2666 frustum(Left :: f(),
2667 Right :: f(),
2668 Bottom :: f(),
2669 Top :: f(),
2670 Near_val :: f(),
2671 Far_val :: f()) ->
2672 ok
2673
2674 gl:frustum/6 describes a perspective matrix that produces a per‐
2675 spective projection. The current matrix (see gl:matrixMode/1) is
2676 multiplied by this matrix and the result replaces the current
2677 matrix, as if gl:multMatrix() were called with the following ma‐
2678 trix as its argument:
2679
2680 External documentation.
2681
2682 genBuffers(N :: i()) -> [i()]
2683
2684 gl:genBuffers/1 returns N buffer object names in Buffers. There
2685 is no guarantee that the names form a contiguous set of inte‐
2686 gers; however, it is guaranteed that none of the returned names
2687 was in use immediately before the call to gl:genBuffers/1.
2688
2689 External documentation.
2690
2691 genFramebuffers(N :: i()) -> [i()]
2692
2693 gl:genFramebuffers/1 returns N framebuffer object names in Ids.
2694 There is no guarantee that the names form a contiguous set of
2695 integers; however, it is guaranteed that none of the returned
2696 names was in use immediately before the call to gl:genFrame‐
2697 buffers/1.
2698
2699 External documentation.
2700
2701 genLists(Range :: i()) -> i()
2702
2703 gl:genLists/1 has one argument, Range. It returns an integer n
2704 such that Range contiguous empty display lists, named n, n+1,
2705 ..., n+range-1, are created. If Range is 0, if there is no group
2706 of Range contiguous names available, or if any error is gener‐
2707 ated, no display lists are generated, and 0 is returned.
2708
2709 External documentation.
2710
2711 genProgramPipelines(N :: i()) -> [i()]
2712
2713 gl:genProgramPipelines/1 returns N previously unused program
2714 pipeline object names in Pipelines. These names are marked as
2715 used, for the purposes of gl:genProgramPipelines/1 only, but
2716 they acquire program pipeline state only when they are first
2717 bound.
2718
2719 External documentation.
2720
2721 genProgramsARB(N :: i()) -> [i()]
2722
2723 No documentation available.
2724
2725 genQueries(N :: i()) -> [i()]
2726
2727 gl:genQueries/1 returns N query object names in Ids. There is no
2728 guarantee that the names form a contiguous set of integers; how‐
2729 ever, it is guaranteed that none of the returned names was in
2730 use immediately before the call to gl:genQueries/1.
2731
2732 External documentation.
2733
2734 genRenderbuffers(N :: i()) -> [i()]
2735
2736 gl:genRenderbuffers/1 returns N renderbuffer object names in
2737 Renderbuffers. There is no guarantee that the names form a con‐
2738 tiguous set of integers; however, it is guaranteed that none of
2739 the returned names was in use immediately before the call to
2740 gl:genRenderbuffers/1.
2741
2742 External documentation.
2743
2744 genSamplers(Count :: i()) -> [i()]
2745
2746 gl:genSamplers/1 returns N sampler object names in Samplers.
2747 There is no guarantee that the names form a contiguous set of
2748 integers; however, it is guaranteed that none of the returned
2749 names was in use immediately before the call to gl:genSam‐
2750 plers/1.
2751
2752 External documentation.
2753
2754 genTextures(N :: i()) -> [i()]
2755
2756 gl:genTextures/1 returns N texture names in Textures. There is
2757 no guarantee that the names form a contiguous set of integers;
2758 however, it is guaranteed that none of the returned names was in
2759 use immediately before the call to gl:genTextures/1.
2760
2761 External documentation.
2762
2763 genTransformFeedbacks(N :: i()) -> [i()]
2764
2765 gl:genTransformFeedbacks/1 returns N previously unused transform
2766 feedback object names in Ids. These names are marked as used,
2767 for the purposes of gl:genTransformFeedbacks/1 only, but they
2768 acquire transform feedback state only when they are first bound.
2769
2770 External documentation.
2771
2772 genVertexArrays(N :: i()) -> [i()]
2773
2774 gl:genVertexArrays/1 returns N vertex array object names in Ar‐
2775 rays. There is no guarantee that the names form a contiguous set
2776 of integers; however, it is guaranteed that none of the returned
2777 names was in use immediately before the call to gl:genVertexAr‐
2778 rays/1.
2779
2780 External documentation.
2781
2782 generateMipmap(Target :: enum()) -> ok
2783
2784 gl:generateMipmap/1 and gl:generateTextureMipmap/1 generates
2785 mipmaps for the specified texture object. For gl:gener‐
2786 ateMipmap/1, the texture object that is bound to Target. For
2787 gl:generateTextureMipmap/1, Texture is the name of the texture
2788 object.
2789
2790 External documentation.
2791
2792 generateTextureMipmap(Texture :: i()) -> ok
2793
2794 No documentation available.
2795
2796 getBooleani_v(Target :: enum(), Index :: i()) -> [0 | 1]
2797
2798 getBooleanv(Pname :: enum()) -> [0 | 1]
2799
2800 getDoublei_v(Target :: enum(), Index :: i()) -> [f()]
2801
2802 getDoublev(Pname :: enum()) -> [f()]
2803
2804 getFloati_v(Target :: enum(), Index :: i()) -> [f()]
2805
2806 getFloatv(Pname :: enum()) -> [f()]
2807
2808 getInteger64i_v(Target :: enum(), Index :: i()) -> [i()]
2809
2810 getInteger64v(Pname :: enum()) -> [i()]
2811
2812 getIntegeri_v(Target :: enum(), Index :: i()) -> [i()]
2813
2814 getIntegerv(Pname :: enum()) -> [i()]
2815
2816 These commands return values for simple state variables in GL.
2817 Pname is a symbolic constant indicating the state variable to be
2818 returned, and Data is a pointer to an array of the indicated
2819 type in which to place the returned data.
2820
2821 External documentation.
2822
2823 getActiveAttrib(Program :: i(), Index :: i(), BufSize :: i()) ->
2824 {Size :: i(), Type :: enum(), Name :: string()}
2825
2826 gl:getActiveAttrib/3 returns information about an active attri‐
2827 bute variable in the program object specified by Program. The
2828 number of active attributes can be obtained by calling gl:get‐
2829 Program() with the value ?GL_ACTIVE_ATTRIBUTES. A value of 0 for
2830 Index selects the first active attribute variable. Permissible
2831 values for Index range from zero to the number of active attri‐
2832 bute variables minus one.
2833
2834 External documentation.
2835
2836 getActiveAttribARB(ProgramObj :: i(),
2837 Index :: i(),
2838 MaxLength :: i()) ->
2839 {Size :: i(),
2840 Type :: enum(),
2841 Name :: string()}
2842
2843 No documentation available.
2844
2845 getActiveSubroutineName(Program :: i(),
2846 Shadertype :: enum(),
2847 Index :: i(),
2848 Bufsize :: i()) ->
2849 string()
2850
2851 gl:getActiveSubroutineName/4 queries the name of an active
2852 shader subroutine uniform from the program object given in Pro‐
2853 gram. Index specifies the index of the shader subroutine uniform
2854 within the shader stage given by Stage, and must between zero
2855 and the value of ?GL_ACTIVE_SUBROUTINES minus one for the shader
2856 stage.
2857
2858 External documentation.
2859
2860 getActiveSubroutineUniformName(Program :: i(),
2861 Shadertype :: enum(),
2862 Index :: i(),
2863 Bufsize :: i()) ->
2864 string()
2865
2866 gl:getActiveSubroutineUniformName/4 retrieves the name of an ac‐
2867 tive shader subroutine uniform. Program contains the name of the
2868 program containing the uniform. Shadertype specifies the stage
2869 for which the uniform location, given by Index, is valid. Index
2870 must be between zero and the value of ?GL_ACTIVE_SUBROUTINE_UNI‐
2871 FORMS minus one for the shader stage.
2872
2873 External documentation.
2874
2875 getActiveUniform(Program :: i(), Index :: i(), BufSize :: i()) ->
2876 {Size :: i(),
2877 Type :: enum(),
2878 Name :: string()}
2879
2880 gl:getActiveUniform/3 returns information about an active uni‐
2881 form variable in the program object specified by Program. The
2882 number of active uniform variables can be obtained by calling
2883 gl:getProgram() with the value ?GL_ACTIVE_UNIFORMS. A value of 0
2884 for Index selects the first active uniform variable. Permissible
2885 values for Index range from zero to the number of active uniform
2886 variables minus one.
2887
2888 External documentation.
2889
2890 getActiveUniformARB(ProgramObj :: i(),
2891 Index :: i(),
2892 MaxLength :: i()) ->
2893 {Size :: i(),
2894 Type :: enum(),
2895 Name :: string()}
2896
2897 No documentation available.
2898
2899 getActiveUniformBlockiv(Program :: i(),
2900 UniformBlockIndex :: i(),
2901 Pname :: enum(),
2902 Params :: mem()) ->
2903 ok
2904
2905 gl:getActiveUniformBlockiv/4 retrieves information about an ac‐
2906 tive uniform block within Program.
2907
2908 External documentation.
2909
2910 getActiveUniformBlockName(Program :: i(),
2911 UniformBlockIndex :: i(),
2912 BufSize :: i()) ->
2913 string()
2914
2915 gl:getActiveUniformBlockName/3 retrieves the name of the active
2916 uniform block at UniformBlockIndex within Program.
2917
2918 External documentation.
2919
2920 getActiveUniformName(Program :: i(),
2921 UniformIndex :: i(),
2922 BufSize :: i()) ->
2923 string()
2924
2925 gl:getActiveUniformName/3 returns the name of the active uniform
2926 at UniformIndex within Program. If UniformName is not NULL, up
2927 to BufSize characters (including a nul-terminator) will be writ‐
2928 ten into the array whose address is specified by UniformName. If
2929 Length is not NULL, the number of characters that were (or would
2930 have been) written into UniformName (not including the nul-ter‐
2931 minator) will be placed in the variable whose address is speci‐
2932 fied in Length. If Length is NULL, no length is returned. The
2933 length of the longest uniform name in Program is given by the
2934 value of ?GL_ACTIVE_UNIFORM_MAX_LENGTH, which can be queried
2935 with gl:getProgram().
2936
2937 External documentation.
2938
2939 getActiveUniformsiv(Program :: i(),
2940 UniformIndices :: [i()],
2941 Pname :: enum()) ->
2942 [i()]
2943
2944 No documentation available.
2945
2946 getAttachedObjectsARB(ContainerObj :: i(), MaxCount :: i()) ->
2947 [i()]
2948
2949 No documentation available.
2950
2951 getAttachedShaders(Program :: i(), MaxCount :: i()) -> [i()]
2952
2953 gl:getAttachedShaders/2 returns the names of the shader objects
2954 attached to Program. The names of shader objects that are at‐
2955 tached to Program will be returned in Shaders. The actual number
2956 of shader names written into Shaders is returned in Count. If no
2957 shader objects are attached to Program, Count is set to 0. The
2958 maximum number of shader names that may be returned in Shaders
2959 is specified by MaxCount.
2960
2961 External documentation.
2962
2963 getAttribLocation(Program :: i(), Name :: string()) -> i()
2964
2965 gl:getAttribLocation/2 queries the previously linked program ob‐
2966 ject specified by Program for the attribute variable specified
2967 by Name and returns the index of the generic vertex attribute
2968 that is bound to that attribute variable. If Name is a matrix
2969 attribute variable, the index of the first column of the matrix
2970 is returned. If the named attribute variable is not an active
2971 attribute in the specified program object or if Name starts with
2972 the reserved prefix "gl_", a value of -1 is returned.
2973
2974 External documentation.
2975
2976 getAttribLocationARB(ProgramObj :: i(), Name :: string()) -> i()
2977
2978 No documentation available.
2979
2980 getBufferParameterivARB(Target :: enum(), Pname :: enum()) ->
2981 [i()]
2982
2983 No documentation available.
2984
2985 getBufferParameteri64v(Target :: enum(), Pname :: enum()) -> [i()]
2986
2987 No documentation available.
2988
2989 getBufferParameteriv(Target :: enum(), Pname :: enum()) -> i()
2990
2991 gl:getBufferParameteriv/2 returns in Data a selected parameter
2992 of the buffer object specified by Target.
2993
2994 External documentation.
2995
2996 getBufferSubData(Target :: enum(),
2997 Offset :: i(),
2998 Size :: i(),
2999 Data :: mem()) ->
3000 ok
3001
3002 gl:getBufferSubData/4 and glGetNamedBufferSubData return some or
3003 all of the data contents of the data store of the specified buf‐
3004 fer object. Data starting at byte offset Offset and extending
3005 for Size bytes is copied from the buffer object's data store to
3006 the memory pointed to by Data. An error is thrown if the buffer
3007 object is currently mapped, or if Offset and Size together de‐
3008 fine a range beyond the bounds of the buffer object's data
3009 store.
3010
3011 External documentation.
3012
3013 getClipPlane(Plane :: enum()) -> {f(), f(), f(), f()}
3014
3015 gl:getClipPlane/1 returns in Equation the four coefficients of
3016 the plane equation for Plane.
3017
3018 External documentation.
3019
3020 getColorTable(Target :: enum(),
3021 Format :: enum(),
3022 Type :: enum(),
3023 Table :: mem()) ->
3024 ok
3025
3026 gl:getColorTable/4 returns in Table the contents of the color
3027 table specified by Target. No pixel transfer operations are per‐
3028 formed, but pixel storage modes that are applicable to gl:read‐
3029 Pixels/7 are performed.
3030
3031 External documentation.
3032
3033 getColorTableParameterfv(Target :: enum(), Pname :: enum()) ->
3034 {f(), f(), f(), f()}
3035
3036 getColorTableParameteriv(Target :: enum(), Pname :: enum()) ->
3037 {i(), i(), i(), i()}
3038
3039 Returns parameters specific to color table Target.
3040
3041 External documentation.
3042
3043 getCompressedTexImage(Target :: enum(), Lod :: i(), Img :: mem()) ->
3044 ok
3045
3046 gl:getCompressedTexImage/3 and glGetnCompressedTexImage return
3047 the compressed texture image associated with Target and Lod into
3048 Pixels. glGetCompressedTextureImage serves the same purpose, but
3049 instead of taking a texture target, it takes the ID of the tex‐
3050 ture object. Pixels should be an array of BufSize bytes for
3051 glGetnCompresedTexImage and glGetCompressedTextureImage func‐
3052 tions, and of ?GL_TEXTURE_COMPRESSED_IMAGE_SIZE bytes in case of
3053 gl:getCompressedTexImage/3. If the actual data takes less space
3054 than BufSize, the remaining bytes will not be touched. Target
3055 specifies the texture target, to which the texture the data the
3056 function should extract the data from is bound to. Lod specifies
3057 the level-of-detail number of the desired image.
3058
3059 External documentation.
3060
3061 getCompressedTexImageARB(Target :: enum(),
3062 Level :: i(),
3063 Img :: mem()) ->
3064 ok
3065
3066 No documentation available.
3067
3068 getConvolutionFilter(Target :: enum(),
3069 Format :: enum(),
3070 Type :: enum(),
3071 Image :: mem()) ->
3072 ok
3073
3074 gl:getConvolutionFilter/4 returns the current 1D or 2D convolu‐
3075 tion filter kernel as an image. The one- or two-dimensional im‐
3076 age is placed in Image according to the specifications in Format
3077 and Type. No pixel transfer operations are performed on this im‐
3078 age, but the relevant pixel storage modes are applied.
3079
3080 External documentation.
3081
3082 getConvolutionParameterfv(Target :: enum(), Pname :: enum()) ->
3083 {f(), f(), f(), f()}
3084
3085 getConvolutionParameteriv(Target :: enum(), Pname :: enum()) ->
3086 {i(), i(), i(), i()}
3087
3088 gl:getConvolutionParameter() retrieves convolution parameters.
3089 Target determines which convolution filter is queried. Pname de‐
3090 termines which parameter is returned:
3091
3092 External documentation.
3093
3094 getDebugMessageLog(Count :: i(), BufSize :: i()) ->
3095 {i(),
3096 Sources :: [enum()],
3097 Types :: [enum()],
3098 Ids :: [i()],
3099 Severities :: [enum()],
3100 MessageLog :: string()}
3101
3102 gl:getDebugMessageLog/2 retrieves messages from the debug mes‐
3103 sage log. A maximum of Count messages are retrieved from the
3104 log. If Sources is not NULL then the source of each message is
3105 written into up to Count elements of the array. If Types is not
3106 NULL then the type of each message is written into up to Count
3107 elements of the array. If Id is not NULL then the identifier of
3108 each message is written into up to Count elements of the array.
3109 If Severities is not NULL then the severity of each message is
3110 written into up to Count elements of the array. If Lengths is
3111 not NULL then the length of each message is written into up to
3112 Count elements of the array.
3113
3114 External documentation.
3115
3116 getError() -> enum()
3117
3118 gl:getError/0 returns the value of the error flag. Each de‐
3119 tectable error is assigned a numeric code and symbolic name.
3120 When an error occurs, the error flag is set to the appropriate
3121 error code value. No other errors are recorded until gl:getEr‐
3122 ror/0 is called, the error code is returned, and the flag is re‐
3123 set to ?GL_NO_ERROR. If a call to gl:getError/0 returns
3124 ?GL_NO_ERROR, there has been no detectable error since the last
3125 call to gl:getError/0, or since the GL was initialized.
3126
3127 External documentation.
3128
3129 getFragDataIndex(Program :: i(), Name :: string()) -> i()
3130
3131 gl:getFragDataIndex/2 returns the index of the fragment color to
3132 which the variable Name was bound when the program object Pro‐
3133 gram was last linked. If Name is not a varying out variable of
3134 Program, or if an error occurs, -1 will be returned.
3135
3136 External documentation.
3137
3138 getFragDataLocation(Program :: i(), Name :: string()) -> i()
3139
3140 gl:getFragDataLocation/2 retrieves the assigned color number
3141 binding for the user-defined varying out variable Name for pro‐
3142 gram Program. Program must have previously been linked. Name
3143 must be a null-terminated string. If Name is not the name of an
3144 active user-defined varying out fragment shader variable within
3145 Program, -1 will be returned.
3146
3147 External documentation.
3148
3149 getFramebufferAttachmentParameteriv(Target :: enum(),
3150 Attachment :: enum(),
3151 Pname :: enum()) ->
3152 i()
3153
3154 gl:getFramebufferAttachmentParameteriv/3 and glGetNamedFrame‐
3155 bufferAttachmentParameteriv return parameters of attachments of
3156 a specified framebuffer object.
3157
3158 External documentation.
3159
3160 getFramebufferParameteriv(Target :: enum(), Pname :: enum()) ->
3161 i()
3162
3163 gl:getFramebufferParameteriv/2 and glGetNamedFramebufferParame‐
3164 teriv query parameters of a specified framebuffer object.
3165
3166 External documentation.
3167
3168 getGraphicsResetStatus() -> enum()
3169
3170 Certain events can result in a reset of the GL context. Such a
3171 reset causes all context state to be lost and requires the ap‐
3172 plication to recreate all objects in the affected context.
3173
3174 External documentation.
3175
3176 getHandleARB(Pname :: enum()) -> i()
3177
3178 No documentation available.
3179
3180 getHistogram(Target :: enum(),
3181 Reset :: 0 | 1,
3182 Format :: enum(),
3183 Type :: enum(),
3184 Values :: mem()) ->
3185 ok
3186
3187 gl:getHistogram/5 returns the current histogram table as a one-
3188 dimensional image with the same width as the histogram. No pixel
3189 transfer operations are performed on this image, but pixel stor‐
3190 age modes that are applicable to 1D images are honored.
3191
3192 External documentation.
3193
3194 getHistogramParameterfv(Target :: enum(), Pname :: enum()) ->
3195 {f()}
3196
3197 getHistogramParameteriv(Target :: enum(), Pname :: enum()) ->
3198 {i()}
3199
3200 gl:getHistogramParameter() is used to query parameter values for
3201 the current histogram or for a proxy. The histogram state infor‐
3202 mation may be queried by calling gl:getHistogramParameter() with
3203 a Target of ?GL_HISTOGRAM (to obtain information for the current
3204 histogram table) or ?GL_PROXY_HISTOGRAM (to obtain information
3205 from the most recent proxy request) and one of the following
3206 values for the Pname argument:
3207
3208 External documentation.
3209
3210 getImageHandleARB(Texture :: i(),
3211 Level :: i(),
3212 Layered :: 0 | 1,
3213 Layer :: i(),
3214 Format :: enum()) ->
3215 i()
3216
3217 No documentation available.
3218
3219 getInfoLogARB(Obj :: i(), MaxLength :: i()) -> string()
3220
3221 No documentation available.
3222
3223 getInternalformativ(Target :: enum(),
3224 Internalformat :: enum(),
3225 Pname :: enum(),
3226 BufSize :: i()) ->
3227 [i()]
3228
3229 gl:getInternalformativ/4 and gl:getInternalformati64v/4 retrieve
3230 information about implementation-dependent support for internal
3231 formats. Target indicates the target with which the internal
3232 format will be used and must be one of ?GL_RENDERBUFFER,
3233 ?GL_TEXTURE_2D_MULTISAMPLE, or ?GL_TEXTURE_2D_MULTISAMPLE_ARRAY,
3234 corresponding to usage as a renderbuffer, two-dimensional multi‐
3235 sample texture or two-dimensional multisample array texture, re‐
3236 spectively.
3237
3238 External documentation.
3239
3240 getInternalformati64v(Target :: enum(),
3241 Internalformat :: enum(),
3242 Pname :: enum(),
3243 BufSize :: i()) ->
3244 [i()]
3245
3246 No documentation available.
3247
3248 getLightfv(Light :: enum(), Pname :: enum()) ->
3249 {f(), f(), f(), f()}
3250
3251 getLightiv(Light :: enum(), Pname :: enum()) ->
3252 {i(), i(), i(), i()}
3253
3254 gl:getLight() returns in Params the value or values of a light
3255 source parameter. Light names the light and is a symbolic name
3256 of the form ?GL_LIGHT i where i ranges from 0 to the value of
3257 ?GL_MAX_LIGHTS - 1. ?GL_MAX_LIGHTS is an implementation depen‐
3258 dent constant that is greater than or equal to eight. Pname
3259 specifies one of ten light source parameters, again by symbolic
3260 name.
3261
3262 External documentation.
3263
3264 getMapdv(Target :: enum(), Query :: enum(), V :: mem()) -> ok
3265
3266 getMapfv(Target :: enum(), Query :: enum(), V :: mem()) -> ok
3267
3268 getMapiv(Target :: enum(), Query :: enum(), V :: mem()) -> ok
3269
3270 gl:map1() and gl:map2() define evaluators. gl:getMap() returns
3271 evaluator parameters. Target chooses a map, Query selects a spe‐
3272 cific parameter, and V points to storage where the values will
3273 be returned.
3274
3275 External documentation.
3276
3277 getMaterialfv(Face :: enum(), Pname :: enum()) ->
3278 {f(), f(), f(), f()}
3279
3280 getMaterialiv(Face :: enum(), Pname :: enum()) ->
3281 {i(), i(), i(), i()}
3282
3283 gl:getMaterial() returns in Params the value or values of param‐
3284 eter Pname of material Face. Six parameters are defined:
3285
3286 External documentation.
3287
3288 getMinmax(Target :: enum(),
3289 Reset :: 0 | 1,
3290 Format :: enum(),
3291 Types :: enum(),
3292 Values :: mem()) ->
3293 ok
3294
3295 gl:getMinmax/5 returns the accumulated minimum and maximum pixel
3296 values (computed on a per-component basis) in a one-dimensional
3297 image of width 2. The first set of return values are the minima,
3298 and the second set of return values are the maxima. The format
3299 of the return values is determined by Format, and their type is
3300 determined by Types.
3301
3302 External documentation.
3303
3304 getMinmaxParameterfv(Target :: enum(), Pname :: enum()) -> {f()}
3305
3306 getMinmaxParameteriv(Target :: enum(), Pname :: enum()) -> {i()}
3307
3308 gl:getMinmaxParameter() retrieves parameters for the current
3309 minmax table by setting Pname to one of the following values:
3310
3311 External documentation.
3312
3313 getMultisamplefv(Pname :: enum(), Index :: i()) -> {f(), f()}
3314
3315 gl:getMultisamplefv/2 queries the location of a given sample.
3316 Pname specifies the sample parameter to retrieve and must be
3317 ?GL_SAMPLE_POSITION. Index corresponds to the sample for which
3318 the location should be returned. The sample location is returned
3319 as two floating-point values in Val[0] and Val[1], each between
3320 0 and 1, corresponding to the X and Y locations respectively in
3321 the GL pixel space of that sample. (0.5, 0.5) this corresponds
3322 to the pixel center. Index must be between zero and the value of
3323 ?GL_SAMPLES minus one.
3324
3325 External documentation.
3326
3327 getObjectParameterfvARB(Obj :: i(), Pname :: enum()) -> f()
3328
3329 getObjectParameterivARB(Obj :: i(), Pname :: enum()) -> i()
3330
3331 No documentation available.
3332
3333 getPixelMapfv(Map :: enum(), Values :: mem()) -> ok
3334
3335 getPixelMapuiv(Map :: enum(), Values :: mem()) -> ok
3336
3337 getPixelMapusv(Map :: enum(), Values :: mem()) -> ok
3338
3339 See the gl:pixelMap() reference page for a description of the
3340 acceptable values for the Map parameter. gl:getPixelMap() re‐
3341 turns in Data the contents of the pixel map specified in Map.
3342 Pixel maps are used during the execution of gl:readPixels/7,
3343 gl:drawPixels/5, gl:copyPixels/5, gl:texImage1D/8, gl:texIm‐
3344 age2D/9, gl:texImage3D/10, gl:texSubImage1D/7, gl:texSubIm‐
3345 age2D/9, gl:texSubImage3D/11, gl:copyTexImage1D/7, gl:copyTexIm‐
3346 age2D/8, gl:copyTexSubImage1D/6, gl:copyTexSubImage2D/8, and
3347 gl:copyTexSubImage3D/9. to map color indices, stencil indices,
3348 color components, and depth components to other values.
3349
3350 External documentation.
3351
3352 getPolygonStipple() -> binary()
3353
3354 gl:getPolygonStipple/0 returns to Pattern a 32×32 polygon stip‐
3355 ple pattern. The pattern is packed into memory as if gl:readPix‐
3356 els/7 with both height and width of 32, type of ?GL_BITMAP, and
3357 format of ?GL_COLOR_INDEX were called, and the stipple pattern
3358 were stored in an internal 32×32 color index buffer. Unlike
3359 gl:readPixels/7, however, pixel transfer operations (shift, off‐
3360 set, pixel map) are not applied to the returned stipple image.
3361
3362 External documentation.
3363
3364 getProgramiv(Program :: i(), Pname :: enum()) -> i()
3365
3366 gl:getProgram() returns in Params the value of a parameter for a
3367 specific program object. The following parameters are defined:
3368
3369 External documentation.
3370
3371 getProgramBinary(Program :: i(), BufSize :: i()) ->
3372 {BinaryFormat :: enum(), Binary :: binary()}
3373
3374 gl:getProgramBinary/2 returns a binary representation of the
3375 compiled and linked executable for Program into the array of
3376 bytes whose address is specified in Binary. The maximum number
3377 of bytes that may be written into Binary is specified by Buf‐
3378 Size. If the program binary is greater in size than BufSize
3379 bytes, then an error is generated, otherwise the actual number
3380 of bytes written into Binary is returned in the variable whose
3381 address is given by Length. If Length is ?NULL, then no length
3382 is returned.
3383
3384 External documentation.
3385
3386 getProgramEnvParameterdvARB(Target :: enum(), Index :: i()) ->
3387 {f(), f(), f(), f()}
3388
3389 getProgramEnvParameterfvARB(Target :: enum(), Index :: i()) ->
3390 {f(), f(), f(), f()}
3391
3392 No documentation available.
3393
3394 getProgramInfoLog(Program :: i(), BufSize :: i()) -> string()
3395
3396 gl:getProgramInfoLog/2 returns the information log for the spec‐
3397 ified program object. The information log for a program object
3398 is modified when the program object is linked or validated. The
3399 string that is returned will be null terminated.
3400
3401 External documentation.
3402
3403 getProgramInterfaceiv(Program :: i(),
3404 ProgramInterface :: enum(),
3405 Pname :: enum()) ->
3406 i()
3407
3408 gl:getProgramInterfaceiv/3 queries the property of the interface
3409 identifed by ProgramInterface in Program, the property name of
3410 which is given by Pname.
3411
3412 External documentation.
3413
3414 getProgramLocalParameterdvARB(Target :: enum(), Index :: i()) ->
3415 {f(), f(), f(), f()}
3416
3417 getProgramLocalParameterfvARB(Target :: enum(), Index :: i()) ->
3418 {f(), f(), f(), f()}
3419
3420 No documentation available.
3421
3422 getProgramPipelineiv(Pipeline :: i(), Pname :: enum()) -> i()
3423
3424 gl:getProgramPipelineiv/2 retrieves the value of a property of
3425 the program pipeline object Pipeline. Pname specifies the name
3426 of the parameter whose value to retrieve. The value of the pa‐
3427 rameter is written to the variable whose address is given by
3428 Params.
3429
3430 External documentation.
3431
3432 getProgramPipelineInfoLog(Pipeline :: i(), BufSize :: i()) ->
3433 string()
3434
3435 gl:getProgramPipelineInfoLog/2 retrieves the info log for the
3436 program pipeline object Pipeline. The info log, including its
3437 null terminator, is written into the array of characters whose
3438 address is given by InfoLog. The maximum number of characters
3439 that may be written into InfoLog is given by BufSize, and the
3440 actual number of characters written into InfoLog is returned in
3441 the integer whose address is given by Length. If Length is
3442 ?NULL, no length is returned.
3443
3444 External documentation.
3445
3446 getProgramResourceIndex(Program :: i(),
3447 ProgramInterface :: enum(),
3448 Name :: string()) ->
3449 i()
3450
3451 gl:getProgramResourceIndex/3 returns the unsigned integer index
3452 assigned to a resource named Name in the interface type Program‐
3453 Interface of program object Program.
3454
3455 External documentation.
3456
3457 getProgramResourceLocation(Program :: i(),
3458 ProgramInterface :: enum(),
3459 Name :: string()) ->
3460 i()
3461
3462 gl:getProgramResourceLocation/3 returns the location assigned to
3463 the variable named Name in interface ProgramInterface of program
3464 object Program. Program must be the name of a program that has
3465 been linked successfully. ProgramInterface must be one of
3466 ?GL_UNIFORM, ?GL_PROGRAM_INPUT, ?GL_PROGRAM_OUTPUT, ?GL_VER‐
3467 TEX_SUBROUTINE_UNIFORM, ?GL_TESS_CONTROL_SUBROUTINE_UNIFORM,
3468 ?GL_TESS_EVALUATION_SUBROUTINE_UNIFORM, ?GL_GEOMETRY_SUBROU‐
3469 TINE_UNIFORM, ?GL_FRAGMENT_SUBROUTINE_UNIFORM, ?GL_COMPUTE_SUB‐
3470 ROUTINE_UNIFORM, or ?GL_TRANSFORM_FEEDBACK_BUFFER.
3471
3472 External documentation.
3473
3474 getProgramResourceLocationIndex(Program :: i(),
3475 ProgramInterface :: enum(),
3476 Name :: string()) ->
3477 i()
3478
3479 gl:getProgramResourceLocationIndex/3 returns the fragment color
3480 index assigned to the variable named Name in interface Program‐
3481 Interface of program object Program. Program must be the name of
3482 a program that has been linked successfully. ProgramInterface
3483 must be ?GL_PROGRAM_OUTPUT.
3484
3485 External documentation.
3486
3487 getProgramResourceName(Program :: i(),
3488 ProgramInterface :: enum(),
3489 Index :: i(),
3490 BufSize :: i()) ->
3491 string()
3492
3493 gl:getProgramResourceName/4 retrieves the name string assigned
3494 to the single active resource with an index of Index in the in‐
3495 terface ProgramInterface of program object Program. Index must
3496 be less than the number of entries in the active resource list
3497 for ProgramInterface.
3498
3499 External documentation.
3500
3501 getProgramStageiv(Program :: i(),
3502 Shadertype :: enum(),
3503 Pname :: enum()) ->
3504 i()
3505
3506 gl:getProgramStage() queries a parameter of a shader stage at‐
3507 tached to a program object. Program contains the name of the
3508 program to which the shader is attached. Shadertype specifies
3509 the stage from which to query the parameter. Pname specifies
3510 which parameter should be queried. The value or values of the
3511 parameter to be queried is returned in the variable whose ad‐
3512 dress is given in Values.
3513
3514 External documentation.
3515
3516 getProgramStringARB(Target :: enum(),
3517 Pname :: enum(),
3518 String :: mem()) ->
3519 ok
3520
3521 No documentation available.
3522
3523 getQueryiv(Target :: enum(), Pname :: enum()) -> i()
3524
3525 No documentation available.
3526
3527 getQueryBufferObjectiv(Id :: i(),
3528 Buffer :: i(),
3529 Pname :: enum(),
3530 Offset :: i()) ->
3531 ok
3532
3533 getQueryBufferObjectuiv(Id :: i(),
3534 Buffer :: i(),
3535 Pname :: enum(),
3536 Offset :: i()) ->
3537 ok
3538
3539 No documentation available.
3540
3541 getQueryBufferObjecti64v(Id :: i(),
3542 Buffer :: i(),
3543 Pname :: enum(),
3544 Offset :: i()) ->
3545 ok
3546
3547 No documentation available.
3548
3549 getQueryBufferObjectui64v(Id :: i(),
3550 Buffer :: i(),
3551 Pname :: enum(),
3552 Offset :: i()) ->
3553 ok
3554
3555 No documentation available.
3556
3557 getQueryIndexediv(Target :: enum(), Index :: i(), Pname :: enum()) ->
3558 i()
3559
3560 gl:getQueryIndexediv/3 returns in Params a selected parameter of
3561 the indexed query object target specified by Target and Index.
3562 Index specifies the index of the query object target and must be
3563 between zero and a target-specific maxiumum.
3564
3565 External documentation.
3566
3567 getQueryObjectiv(Id :: i(), Pname :: enum()) -> i()
3568
3569 getQueryObjectuiv(Id :: i(), Pname :: enum()) -> i()
3570
3571 These commands return a selected parameter of the query object
3572 specified by Id. gl:getQueryObject() returns in Params a se‐
3573 lected parameter of the query object specified by Id. gl:get‐
3574 QueryBufferObject() returns in Buffer a selected parameter of
3575 the query object specified by Id, by writing it to Buffer's data
3576 store at the byte offset specified by Offset.
3577
3578 External documentation.
3579
3580 getQueryObjecti64v(Id :: i(), Pname :: enum()) -> i()
3581
3582 No documentation available.
3583
3584 getQueryObjectui64v(Id :: i(), Pname :: enum()) -> i()
3585
3586 No documentation available.
3587
3588 getRenderbufferParameteriv(Target :: enum(), Pname :: enum()) ->
3589 i()
3590
3591 gl:getRenderbufferParameteriv/2 and glGetNamedRenderbufferParam‐
3592 eteriv query parameters of a specified renderbuffer object.
3593
3594 External documentation.
3595
3596 getSamplerParameterIiv(Sampler :: i(), Pname :: enum()) -> [i()]
3597
3598 getSamplerParameterfv(Sampler :: i(), Pname :: enum()) -> [f()]
3599
3600 getSamplerParameteriv(Sampler :: i(), Pname :: enum()) -> [i()]
3601
3602 gl:getSamplerParameter() returns in Params the value or values
3603 of the sampler parameter specified as Pname. Sampler defines the
3604 target sampler, and must be the name of an existing sampler ob‐
3605 ject, returned from a previous call to gl:genSamplers/1. Pname
3606 accepts the same symbols as gl:samplerParameter(), with the same
3607 interpretations:
3608
3609 External documentation.
3610
3611 getSamplerParameterIuiv(Sampler :: i(), Pname :: enum()) -> [i()]
3612
3613 No documentation available.
3614
3615 getShaderiv(Shader :: i(), Pname :: enum()) -> i()
3616
3617 gl:getShader() returns in Params the value of a parameter for a
3618 specific shader object. The following parameters are defined:
3619
3620 External documentation.
3621
3622 getShaderInfoLog(Shader :: i(), BufSize :: i()) -> string()
3623
3624 gl:getShaderInfoLog/2 returns the information log for the speci‐
3625 fied shader object. The information log for a shader object is
3626 modified when the shader is compiled. The string that is re‐
3627 turned will be null terminated.
3628
3629 External documentation.
3630
3631 getShaderPrecisionFormat(Shadertype :: enum(),
3632 Precisiontype :: enum()) ->
3633 {Range :: {i(), i()},
3634 Precision :: i()}
3635
3636 gl:getShaderPrecisionFormat/2 retrieves the numeric range and
3637 precision for the implementation's representation of quantities
3638 in different numeric formats in specified shader type. Shader‐
3639 Type specifies the type of shader for which the numeric preci‐
3640 sion and range is to be retrieved and must be one of ?GL_VER‐
3641 TEX_SHADER or ?GL_FRAGMENT_SHADER. PrecisionType specifies the
3642 numeric format to query and must be one of ?GL_LOW_FLOAT,
3643 ?GL_MEDIUM_FLOAT?GL_HIGH_FLOAT, ?GL_LOW_INT, ?GL_MEDIUM_INT, or
3644 ?GL_HIGH_INT.
3645
3646 External documentation.
3647
3648 getShaderSource(Shader :: i(), BufSize :: i()) -> string()
3649
3650 gl:getShaderSource/2 returns the concatenation of the source
3651 code strings from the shader object specified by Shader. The
3652 source code strings for a shader object are the result of a pre‐
3653 vious call to gl:shaderSource/2. The string returned by the
3654 function will be null terminated.
3655
3656 External documentation.
3657
3658 getShaderSourceARB(Obj :: i(), MaxLength :: i()) -> string()
3659
3660 No documentation available.
3661
3662 getString(Name :: enum()) -> string()
3663
3664 getStringi(Name :: enum(), Index :: i()) -> string()
3665
3666 gl:getString/1 returns a pointer to a static string describing
3667 some aspect of the current GL connection. Name can be one of the
3668 following:
3669
3670 External documentation.
3671
3672 getSubroutineIndex(Program :: i(),
3673 Shadertype :: enum(),
3674 Name :: string()) ->
3675 i()
3676
3677 gl:getSubroutineIndex/3 returns the index of a subroutine uni‐
3678 form within a shader stage attached to a program object. Program
3679 contains the name of the program to which the shader is at‐
3680 tached. Shadertype specifies the stage from which to query
3681 shader subroutine index. Name contains the null-terminated name
3682 of the subroutine uniform whose name to query.
3683
3684 External documentation.
3685
3686 getSubroutineUniformLocation(Program :: i(),
3687 Shadertype :: enum(),
3688 Name :: string()) ->
3689 i()
3690
3691 gl:getSubroutineUniformLocation/3 returns the location of the
3692 subroutine uniform variable Name in the shader stage of type
3693 Shadertype attached to Program, with behavior otherwise identi‐
3694 cal to gl:getUniformLocation/2.
3695
3696 External documentation.
3697
3698 getSynciv(Sync :: i(), Pname :: enum(), BufSize :: i()) -> [i()]
3699
3700 gl:getSynciv/3 retrieves properties of a sync object. Sync spec‐
3701 ifies the name of the sync object whose properties to retrieve.
3702
3703 External documentation.
3704
3705 getTexEnvfv(Target :: enum(), Pname :: enum()) ->
3706 {f(), f(), f(), f()}
3707
3708 getTexEnviv(Target :: enum(), Pname :: enum()) ->
3709 {i(), i(), i(), i()}
3710
3711 gl:getTexEnv() returns in Params selected values of a texture
3712 environment that was specified with gl:texEnv(). Target speci‐
3713 fies a texture environment.
3714
3715 External documentation.
3716
3717 getTexGendv(Coord :: enum(), Pname :: enum()) ->
3718 {f(), f(), f(), f()}
3719
3720 getTexGenfv(Coord :: enum(), Pname :: enum()) ->
3721 {f(), f(), f(), f()}
3722
3723 getTexGeniv(Coord :: enum(), Pname :: enum()) ->
3724 {i(), i(), i(), i()}
3725
3726 gl:getTexGen() returns in Params selected parameters of a tex‐
3727 ture coordinate generation function that was specified using
3728 gl:texGen(). Coord names one of the (s, t, r, q) texture coordi‐
3729 nates, using the symbolic constant ?GL_S, ?GL_T, ?GL_R, or
3730 ?GL_Q.
3731
3732 External documentation.
3733
3734 getTexImage(Target :: enum(),
3735 Level :: i(),
3736 Format :: enum(),
3737 Type :: enum(),
3738 Pixels :: mem()) ->
3739 ok
3740
3741 gl:getTexImage/5, glGetnTexImage and glGetTextureImage functions
3742 return a texture image into Pixels. For gl:getTexImage/5 and
3743 glGetnTexImage, Target specifies whether the desired texture im‐
3744 age is one specified by gl:texImage1D/8 (?GL_TEXTURE_1D),
3745 gl:texImage2D/9 (?GL_TEXTURE_1D_ARRAY, ?GL_TEXTURE_RECTANGLE,
3746 ?GL_TEXTURE_2D or any of ?GL_TEXTURE_CUBE_MAP_*), or gl:texIm‐
3747 age3D/10 (?GL_TEXTURE_2D_ARRAY, ?GL_TEXTURE_3D, ?GL_TEX‐
3748 TURE_CUBE_MAP_ARRAY). For glGetTextureImage, Texture specifies
3749 the texture object name. In addition to types of textures ac‐
3750 cepted by gl:getTexImage/5 and glGetnTexImage, the function also
3751 accepts cube map texture objects (with effective target ?GL_TEX‐
3752 TURE_CUBE_MAP). Level specifies the level-of-detail number of
3753 the desired image. Format and Type specify the format and type
3754 of the desired image array. See the reference page for gl:texIm‐
3755 age1D/8 for a description of the acceptable values for the For‐
3756 mat and Type parameters, respectively. For glGetnTexImage and
3757 glGetTextureImage functions, bufSize tells the size of the buf‐
3758 fer to receive the retrieved pixel data. glGetnTexImage and
3759 glGetTextureImage do not write more than BufSize bytes into Pix‐
3760 els.
3761
3762 External documentation.
3763
3764 getTexLevelParameterfv(Target :: enum(),
3765 Level :: i(),
3766 Pname :: enum()) ->
3767 {f()}
3768
3769 getTexLevelParameteriv(Target :: enum(),
3770 Level :: i(),
3771 Pname :: enum()) ->
3772 {i()}
3773
3774 gl:getTexLevelParameterfv/3, gl:getTexLevelParameteriv/3, glGet‐
3775 TextureLevelParameterfv and glGetTextureLevelParameteriv return
3776 in Params texture parameter values for a specific level-of-de‐
3777 tail value, specified as Level. For the first two functions,
3778 Target defines the target texture, either ?GL_TEXTURE_1D,
3779 ?GL_TEXTURE_2D, ?GL_TEXTURE_3D, ?GL_PROXY_TEXTURE_1D,
3780 ?GL_PROXY_TEXTURE_2D, ?GL_PROXY_TEXTURE_3D, ?GL_TEX‐
3781 TURE_CUBE_MAP_POSITIVE_X, ?GL_TEXTURE_CUBE_MAP_NEGATIVE_X,
3782 ?GL_TEXTURE_CUBE_MAP_POSITIVE_Y, ?GL_TEXTURE_CUBE_MAP_NEGA‐
3783 TIVE_Y, ?GL_TEXTURE_CUBE_MAP_POSITIVE_Z, ?GL_TEX‐
3784 TURE_CUBE_MAP_NEGATIVE_Z, or ?GL_PROXY_TEXTURE_CUBE_MAP. The re‐
3785 maining two take a Texture argument which specifies the name of
3786 the texture object.
3787
3788 External documentation.
3789
3790 getTexParameterIiv(Target :: enum(), Pname :: enum()) ->
3791 {i(), i(), i(), i()}
3792
3793 getTexParameterfv(Target :: enum(), Pname :: enum()) ->
3794 {f(), f(), f(), f()}
3795
3796 getTexParameteriv(Target :: enum(), Pname :: enum()) ->
3797 {i(), i(), i(), i()}
3798
3799 gl:getTexParameter() and glGetTextureParameter return in Params
3800 the value or values of the texture parameter specified as Pname.
3801 Target defines the target texture. ?GL_TEXTURE_1D, ?GL_TEX‐
3802 TURE_2D, ?GL_TEXTURE_3D, ?GL_TEXTURE_1D_ARRAY, ?GL_TEX‐
3803 TURE_2D_ARRAY, ?GL_TEXTURE_RECTANGLE, ?GL_TEXTURE_CUBE_MAP,
3804 ?GL_TEXTURE_CUBE_MAP_ARRAY, ?GL_TEXTURE_2D_MULTISAMPLE, or
3805 ?GL_TEXTURE_2D_MULTISAMPLE_ARRAY specify one-, two-, or three-
3806 dimensional, one-dimensional array, two-dimensional array, rec‐
3807 tangle, cube-mapped or cube-mapped array, two-dimensional multi‐
3808 sample, or two-dimensional multisample array texturing, respec‐
3809 tively. Pname accepts the same symbols as gl:texParameter(),
3810 with the same interpretations:
3811
3812 External documentation.
3813
3814 getTexParameterIuiv(Target :: enum(), Pname :: enum()) ->
3815 {i(), i(), i(), i()}
3816
3817 No documentation available.
3818
3819 getTransformFeedbackVarying(Program :: i(),
3820 Index :: i(),
3821 BufSize :: i()) ->
3822 {Size :: i(),
3823 Type :: enum(),
3824 Name :: string()}
3825
3826 Information about the set of varying variables in a linked pro‐
3827 gram that will be captured during transform feedback may be re‐
3828 trieved by calling gl:getTransformFeedbackVarying/3. gl:get‐
3829 TransformFeedbackVarying/3 provides information about the vary‐
3830 ing variable selected by Index. An Index of 0 selects the first
3831 varying variable specified in the Varyings array passed to
3832 gl:transformFeedbackVaryings/3, and an Index of the value of
3833 ?GL_TRANSFORM_FEEDBACK_VARYINGS minus one selects the last such
3834 variable.
3835
3836 External documentation.
3837
3838 getUniformdv(Program :: i(), Location :: i()) -> matrix()
3839
3840 getUniformfv(Program :: i(), Location :: i()) -> matrix()
3841
3842 getUniformiv(Program :: i(), Location :: i()) ->
3843 {i(),
3844 i(),
3845 i(),
3846 i(),
3847 i(),
3848 i(),
3849 i(),
3850 i(),
3851 i(),
3852 i(),
3853 i(),
3854 i(),
3855 i(),
3856 i(),
3857 i(),
3858 i()}
3859
3860 getUniformuiv(Program :: i(), Location :: i()) ->
3861 {i(),
3862 i(),
3863 i(),
3864 i(),
3865 i(),
3866 i(),
3867 i(),
3868 i(),
3869 i(),
3870 i(),
3871 i(),
3872 i(),
3873 i(),
3874 i(),
3875 i(),
3876 i()}
3877
3878 gl:getUniform() and glGetnUniform return in Params the value(s)
3879 of the specified uniform variable. The type of the uniform vari‐
3880 able specified by Location determines the number of values re‐
3881 turned. If the uniform variable is defined in the shader as a
3882 boolean, int, or float, a single value will be returned. If it
3883 is defined as a vec2, ivec2, or bvec2, two values will be re‐
3884 turned. If it is defined as a vec3, ivec3, or bvec3, three val‐
3885 ues will be returned, and so on. To query values stored in uni‐
3886 form variables declared as arrays, call gl:getUniform() for each
3887 element of the array. To query values stored in uniform vari‐
3888 ables declared as structures, call gl:getUniform() for each
3889 field in the structure. The values for uniform variables de‐
3890 clared as a matrix will be returned in column major order.
3891
3892 External documentation.
3893
3894 getUniformfvARB(ProgramObj :: i(), Location :: i()) -> matrix()
3895
3896 getUniformivARB(ProgramObj :: i(), Location :: i()) ->
3897 {i(),
3898 i(),
3899 i(),
3900 i(),
3901 i(),
3902 i(),
3903 i(),
3904 i(),
3905 i(),
3906 i(),
3907 i(),
3908 i(),
3909 i(),
3910 i(),
3911 i(),
3912 i()}
3913
3914 No documentation available.
3915
3916 getUniformBlockIndex(Program :: i(), UniformBlockName :: string()) ->
3917 i()
3918
3919 gl:getUniformBlockIndex/2 retrieves the index of a uniform block
3920 within Program.
3921
3922 External documentation.
3923
3924 getUniformIndices(Program :: i(),
3925 UniformNames :: [unicode:chardata()]) ->
3926 [i()]
3927
3928 gl:getUniformIndices/2 retrieves the indices of a number of uni‐
3929 forms within Program.
3930
3931 External documentation.
3932
3933 getUniformLocation(Program :: i(), Name :: string()) -> i()
3934
3935 glGetUniformLocation returns an integer that represents the lo‐
3936 cation of a specific uniform variable within a program object.
3937 Name must be a null terminated string that contains no white
3938 space. Name must be an active uniform variable name in Program
3939 that is not a structure, an array of structures, or a subcompo‐
3940 nent of a vector or a matrix. This function returns -1 if Name
3941 does not correspond to an active uniform variable in Program, if
3942 Name starts with the reserved prefix "gl_", or if Name is asso‐
3943 ciated with an atomic counter or a named uniform block.
3944
3945 External documentation.
3946
3947 getUniformLocationARB(ProgramObj :: i(), Name :: string()) -> i()
3948
3949 No documentation available.
3950
3951 getUniformSubroutineuiv(Shadertype :: enum(), Location :: i()) ->
3952 {i(),
3953 i(),
3954 i(),
3955 i(),
3956 i(),
3957 i(),
3958 i(),
3959 i(),
3960 i(),
3961 i(),
3962 i(),
3963 i(),
3964 i(),
3965 i(),
3966 i(),
3967 i()}
3968
3969 gl:getUniformSubroutine() retrieves the value of the subroutine
3970 uniform at location Location for shader stage Shadertype of the
3971 current program. Location must be less than the value of ?GL_AC‐
3972 TIVE_SUBROUTINE_UNIFORM_LOCATIONS for the shader currently in
3973 use at shader stage Shadertype. The value of the subroutine uni‐
3974 form is returned in Values.
3975
3976 External documentation.
3977
3978 getUniformi64vARB(Program :: i(), Location :: i()) ->
3979 {i(),
3980 i(),
3981 i(),
3982 i(),
3983 i(),
3984 i(),
3985 i(),
3986 i(),
3987 i(),
3988 i(),
3989 i(),
3990 i(),
3991 i(),
3992 i(),
3993 i(),
3994 i()}
3995
3996 No documentation available.
3997
3998 getUniformui64vARB(Program :: i(), Location :: i()) ->
3999 {i(),
4000 i(),
4001 i(),
4002 i(),
4003 i(),
4004 i(),
4005 i(),
4006 i(),
4007 i(),
4008 i(),
4009 i(),
4010 i(),
4011 i(),
4012 i(),
4013 i(),
4014 i()}
4015
4016 No documentation available.
4017
4018 getVertexAttribIiv(Index :: i(), Pname :: enum()) ->
4019 {i(), i(), i(), i()}
4020
4021 getVertexAttribdv(Index :: i(), Pname :: enum()) ->
4022 {f(), f(), f(), f()}
4023
4024 getVertexAttribfv(Index :: i(), Pname :: enum()) ->
4025 {f(), f(), f(), f()}
4026
4027 getVertexAttribiv(Index :: i(), Pname :: enum()) ->
4028 {i(), i(), i(), i()}
4029
4030 gl:getVertexAttrib() returns in Params the value of a generic
4031 vertex attribute parameter. The generic vertex attribute to be
4032 queried is specified by Index, and the parameter to be queried
4033 is specified by Pname.
4034
4035 External documentation.
4036
4037 getVertexAttribIuiv(Index :: i(), Pname :: enum()) ->
4038 {i(), i(), i(), i()}
4039
4040 No documentation available.
4041
4042 getVertexAttribLdv(Index :: i(), Pname :: enum()) ->
4043 {f(), f(), f(), f()}
4044
4045 No documentation available.
4046
4047 hint(Target :: enum(), Mode :: enum()) -> ok
4048
4049 Certain aspects of GL behavior, when there is room for interpre‐
4050 tation, can be controlled with hints. A hint is specified with
4051 two arguments. Target is a symbolic constant indicating the be‐
4052 havior to be controlled, and Mode is another symbolic constant
4053 indicating the desired behavior. The initial value for each Tar‐
4054 get is ?GL_DONT_CARE. Mode can be one of the following:
4055
4056 External documentation.
4057
4058 histogram(Target :: enum(),
4059 Width :: i(),
4060 Internalformat :: enum(),
4061 Sink :: 0 | 1) ->
4062 ok
4063
4064 When ?GL_HISTOGRAM is enabled, RGBA color components are con‐
4065 verted to histogram table indices by clamping to the range
4066 [0,1], multiplying by the width of the histogram table, and
4067 rounding to the nearest integer. The table entries selected by
4068 the RGBA indices are then incremented. (If the internal format
4069 of the histogram table includes luminance, then the index de‐
4070 rived from the R color component determines the luminance table
4071 entry to be incremented.) If a histogram table entry is incre‐
4072 mented beyond its maximum value, then its value becomes unde‐
4073 fined. (This is not an error.)
4074
4075 External documentation.
4076
4077 indexd(C :: f()) -> ok
4078
4079 indexdv(X1 :: {C :: f()}) -> ok
4080
4081 indexf(C :: f()) -> ok
4082
4083 indexfv(X1 :: {C :: f()}) -> ok
4084
4085 indexi(C :: i()) -> ok
4086
4087 indexiv(X1 :: {C :: i()}) -> ok
4088
4089 indexs(C :: i()) -> ok
4090
4091 indexsv(X1 :: {C :: i()}) -> ok
4092
4093 indexub(C :: i()) -> ok
4094
4095 indexubv(X1 :: {C :: i()}) -> ok
4096
4097 gl:index() updates the current (single-valued) color index. It
4098 takes one argument, the new value for the current color index.
4099
4100 External documentation.
4101
4102 indexMask(Mask :: i()) -> ok
4103
4104 gl:indexMask/1 controls the writing of individual bits in the
4105 color index buffers. The least significant n bits of Mask, where
4106 n is the number of bits in a color index buffer, specify a mask.
4107 Where a 1 (one) appears in the mask, it's possible to write to
4108 the corresponding bit in the color index buffer (or buffers).
4109 Where a 0 (zero) appears, the corresponding bit is write-pro‐
4110 tected.
4111
4112 External documentation.
4113
4114 indexPointer(Type :: enum(),
4115 Stride :: i(),
4116 Ptr :: offset() | mem()) ->
4117 ok
4118
4119 gl:indexPointer/3 specifies the location and data format of an
4120 array of color indexes to use when rendering. Type specifies the
4121 data type of each color index and Stride specifies the byte
4122 stride from one color index to the next, allowing vertices and
4123 attributes to be packed into a single array or stored in sepa‐
4124 rate arrays.
4125
4126 External documentation.
4127
4128 initNames() -> ok
4129
4130 The name stack is used during selection mode to allow sets of
4131 rendering commands to be uniquely identified. It consists of an
4132 ordered set of unsigned integers. gl:initNames/0 causes the name
4133 stack to be initialized to its default empty state.
4134
4135 External documentation.
4136
4137 interleavedArrays(Format :: enum(),
4138 Stride :: i(),
4139 Pointer :: offset() | mem()) ->
4140 ok
4141
4142 gl:interleavedArrays/3 lets you specify and enable individual
4143 color, normal, texture and vertex arrays whose elements are part
4144 of a larger aggregate array element. For some implementations,
4145 this is more efficient than specifying the arrays separately.
4146
4147 External documentation.
4148
4149 invalidateBufferData(Buffer :: i()) -> ok
4150
4151 gl:invalidateBufferData/1 invalidates all of the content of the
4152 data store of a buffer object. After invalidation, the content
4153 of the buffer's data store becomes undefined.
4154
4155 External documentation.
4156
4157 invalidateBufferSubData(Buffer :: i(),
4158 Offset :: i(),
4159 Length :: i()) ->
4160 ok
4161
4162 gl:invalidateBufferSubData/3 invalidates all or part of the con‐
4163 tent of the data store of a buffer object. After invalidation,
4164 the content of the specified range of the buffer's data store
4165 becomes undefined. The start of the range is given by Offset and
4166 its size is given by Length, both measured in basic machine
4167 units.
4168
4169 External documentation.
4170
4171 invalidateFramebuffer(Target :: enum(), Attachments :: [enum()]) ->
4172 ok
4173
4174 gl:invalidateFramebuffer/2 and glInvalidateNamedFramebufferData
4175 invalidate the entire contents of a specified set of attachments
4176 of a framebuffer.
4177
4178 External documentation.
4179
4180 invalidateSubFramebuffer(Target :: enum(),
4181 Attachments :: [enum()],
4182 X :: i(),
4183 Y :: i(),
4184 Width :: i(),
4185 Height :: i()) ->
4186 ok
4187
4188 gl:invalidateSubFramebuffer/6 and glInvalidateNamedFramebuffer‐
4189 SubData invalidate the contents of a specified region of a spec‐
4190 ified set of attachments of a framebuffer.
4191
4192 External documentation.
4193
4194 invalidateTexImage(Texture :: i(), Level :: i()) -> ok
4195
4196 gl:invalidateTexSubImage/8 invalidates all of a texture image.
4197 Texture and Level indicated which texture image is being invali‐
4198 dated. After this command, data in the texture image has unde‐
4199 fined values.
4200
4201 External documentation.
4202
4203 invalidateTexSubImage(Texture, Level, Xoffset, Yoffset, Zoffset,
4204 Width, Height, Depth) ->
4205 ok
4206
4207 Types:
4208
4209 Texture = Level = Xoffset = Yoffset = Zoffset = Width =
4210 Height = Depth = i()
4211
4212 gl:invalidateTexSubImage/8 invalidates all or part of a texture
4213 image. Texture and Level indicated which texture image is being
4214 invalidated. After this command, data in that subregion have un‐
4215 defined values. Xoffset, Yoffset, Zoffset, Width, Height, and
4216 Depth are interpreted as they are in gl:texSubImage3D/11. For
4217 texture targets that don't have certain dimensions, this command
4218 treats those dimensions as having a size of 1. For example, to
4219 invalidate a portion of a two- dimensional texture, the applica‐
4220 tion would use Zoffset equal to zero and Depth equal to one.
4221 Cube map textures are treated as an array of six slices in the
4222 z-dimension, where a value of Zoffset is interpreted as specify‐
4223 ing face ?GL_TEXTURE_CUBE_MAP_POSITIVE_X + Zoffset.
4224
4225 External documentation.
4226
4227 isBuffer(Buffer :: i()) -> 0 | 1
4228
4229 gl:isBuffer/1 returns ?GL_TRUE if Buffer is currently the name
4230 of a buffer object. If Buffer is zero, or is a non-zero value
4231 that is not currently the name of a buffer object, or if an er‐
4232 ror occurs, gl:isBuffer/1 returns ?GL_FALSE.
4233
4234 External documentation.
4235
4236 isEnabled(Cap :: enum()) -> 0 | 1
4237
4238 gl:isEnabled/1 returns ?GL_TRUE if Cap is an enabled capability
4239 and returns ?GL_FALSE otherwise. Boolean states that are indexed
4240 may be tested with gl:isEnabledi/2. For gl:isEnabledi/2, Index
4241 specifies the index of the capability to test. Index must be be‐
4242 tween zero and the count of indexed capabilities for Cap. Ini‐
4243 tially all capabilities except ?GL_DITHER are disabled;
4244 ?GL_DITHER is initially enabled.
4245
4246 External documentation.
4247
4248 isEnabledi(Target :: enum(), Index :: i()) -> 0 | 1
4249
4250 No documentation available.
4251
4252 isFramebuffer(Framebuffer :: i()) -> 0 | 1
4253
4254 gl:isFramebuffer/1 returns ?GL_TRUE if Framebuffer is currently
4255 the name of a framebuffer object. If Framebuffer is zero, or if
4256 ?framebuffer is not the name of a framebuffer object, or if an
4257 error occurs, gl:isFramebuffer/1 returns ?GL_FALSE. If Frame‐
4258 buffer is a name returned by gl:genFramebuffers/1, by that has
4259 not yet been bound through a call to gl:bindFramebuffer/2, then
4260 the name is not a framebuffer object and gl:isFramebuffer/1 re‐
4261 turns ?GL_FALSE.
4262
4263 External documentation.
4264
4265 isImageHandleResidentARB(Handle :: i()) -> 0 | 1
4266
4267 No documentation available.
4268
4269 isList(List :: i()) -> 0 | 1
4270
4271 gl:isList/1 returns ?GL_TRUE if List is the name of a display
4272 list and returns ?GL_FALSE if it is not, or if an error occurs.
4273
4274 External documentation.
4275
4276 isNamedStringARB(Name :: string()) -> 0 | 1
4277
4278 No documentation available.
4279
4280 isProgram(Program :: i()) -> 0 | 1
4281
4282 gl:isProgram/1 returns ?GL_TRUE if Program is the name of a pro‐
4283 gram object previously created with gl:createProgram/0 and not
4284 yet deleted with gl:deleteProgram/1. If Program is zero or a
4285 non-zero value that is not the name of a program object, or if
4286 an error occurs, gl:isProgram/1 returns ?GL_FALSE.
4287
4288 External documentation.
4289
4290 isProgramPipeline(Pipeline :: i()) -> 0 | 1
4291
4292 gl:isProgramPipeline/1 returns ?GL_TRUE if Pipeline is currently
4293 the name of a program pipeline object. If Pipeline is zero, or
4294 if ?pipeline is not the name of a program pipeline object, or if
4295 an error occurs, gl:isProgramPipeline/1 returns ?GL_FALSE. If
4296 Pipeline is a name returned by gl:genProgramPipelines/1, but
4297 that has not yet been bound through a call to gl:bindPro‐
4298 gramPipeline/1, then the name is not a program pipeline object
4299 and gl:isProgramPipeline/1 returns ?GL_FALSE.
4300
4301 External documentation.
4302
4303 isQuery(Id :: i()) -> 0 | 1
4304
4305 gl:isQuery/1 returns ?GL_TRUE if Id is currently the name of a
4306 query object. If Id is zero, or is a non-zero value that is not
4307 currently the name of a query object, or if an error occurs,
4308 gl:isQuery/1 returns ?GL_FALSE.
4309
4310 External documentation.
4311
4312 isRenderbuffer(Renderbuffer :: i()) -> 0 | 1
4313
4314 gl:isRenderbuffer/1 returns ?GL_TRUE if Renderbuffer is cur‐
4315 rently the name of a renderbuffer object. If Renderbuffer is
4316 zero, or if Renderbuffer is not the name of a renderbuffer ob‐
4317 ject, or if an error occurs, gl:isRenderbuffer/1 returns
4318 ?GL_FALSE. If Renderbuffer is a name returned by gl:genRender‐
4319 buffers/1, by that has not yet been bound through a call to
4320 gl:bindRenderbuffer/2 or gl:framebufferRenderbuffer/4, then the
4321 name is not a renderbuffer object and gl:isRenderbuffer/1 re‐
4322 turns ?GL_FALSE.
4323
4324 External documentation.
4325
4326 isSampler(Sampler :: i()) -> 0 | 1
4327
4328 gl:isSampler/1 returns ?GL_TRUE if Id is currently the name of a
4329 sampler object. If Id is zero, or is a non-zero value that is
4330 not currently the name of a sampler object, or if an error oc‐
4331 curs, gl:isSampler/1 returns ?GL_FALSE.
4332
4333 External documentation.
4334
4335 isShader(Shader :: i()) -> 0 | 1
4336
4337 gl:isShader/1 returns ?GL_TRUE if Shader is the name of a shader
4338 object previously created with gl:createShader/1 and not yet
4339 deleted with gl:deleteShader/1. If Shader is zero or a non-zero
4340 value that is not the name of a shader object, or if an error
4341 occurs, glIsShader returns ?GL_FALSE.
4342
4343 External documentation.
4344
4345 isSync(Sync :: i()) -> 0 | 1
4346
4347 gl:isSync/1 returns ?GL_TRUE if Sync is currently the name of a
4348 sync object. If Sync is not the name of a sync object, or if an
4349 error occurs, gl:isSync/1 returns ?GL_FALSE. Note that zero is
4350 not the name of a sync object.
4351
4352 External documentation.
4353
4354 isTexture(Texture :: i()) -> 0 | 1
4355
4356 gl:isTexture/1 returns ?GL_TRUE if Texture is currently the name
4357 of a texture. If Texture is zero, or is a non-zero value that is
4358 not currently the name of a texture, or if an error occurs,
4359 gl:isTexture/1 returns ?GL_FALSE.
4360
4361 External documentation.
4362
4363 isTextureHandleResidentARB(Handle :: i()) -> 0 | 1
4364
4365 No documentation available.
4366
4367 isTransformFeedback(Id :: i()) -> 0 | 1
4368
4369 gl:isTransformFeedback/1 returns ?GL_TRUE if Id is currently the
4370 name of a transform feedback object. If Id is zero, or if ?id is
4371 not the name of a transform feedback object, or if an error oc‐
4372 curs, gl:isTransformFeedback/1 returns ?GL_FALSE. If Id is a
4373 name returned by gl:genTransformFeedbacks/1, but that has not
4374 yet been bound through a call to gl:bindTransformFeedback/2,
4375 then the name is not a transform feedback object and gl:isTrans‐
4376 formFeedback/1 returns ?GL_FALSE.
4377
4378 External documentation.
4379
4380 isVertexArray(Array :: i()) -> 0 | 1
4381
4382 gl:isVertexArray/1 returns ?GL_TRUE if Array is currently the
4383 name of a vertex array object. If Array is zero, or if Array is
4384 not the name of a vertex array object, or if an error occurs,
4385 gl:isVertexArray/1 returns ?GL_FALSE. If Array is a name re‐
4386 turned by gl:genVertexArrays/1, by that has not yet been bound
4387 through a call to gl:bindVertexArray/1, then the name is not a
4388 vertex array object and gl:isVertexArray/1 returns ?GL_FALSE.
4389
4390 External documentation.
4391
4392 lightf(Light :: enum(), Pname :: enum(), Param :: f()) -> ok
4393
4394 lightfv(Light :: enum(), Pname :: enum(), Params :: tuple()) -> ok
4395
4396 lighti(Light :: enum(), Pname :: enum(), Param :: i()) -> ok
4397
4398 lightiv(Light :: enum(), Pname :: enum(), Params :: tuple()) -> ok
4399
4400 gl:light() sets the values of individual light source parame‐
4401 ters. Light names the light and is a symbolic name of the form
4402 ?GL_LIGHT i, where i ranges from 0 to the value of
4403 ?GL_MAX_LIGHTS - 1. Pname specifies one of ten light source pa‐
4404 rameters, again by symbolic name. Params is either a single
4405 value or a pointer to an array that contains the new values.
4406
4407 External documentation.
4408
4409 lightModelf(Pname :: enum(), Param :: f()) -> ok
4410
4411 lightModelfv(Pname :: enum(), Params :: tuple()) -> ok
4412
4413 lightModeli(Pname :: enum(), Param :: i()) -> ok
4414
4415 lightModeliv(Pname :: enum(), Params :: tuple()) -> ok
4416
4417 gl:lightModel() sets the lighting model parameter. Pname names a
4418 parameter and Params gives the new value. There are three light‐
4419 ing model parameters:
4420
4421 External documentation.
4422
4423 lineStipple(Factor :: i(), Pattern :: i()) -> ok
4424
4425 Line stippling masks out certain fragments produced by rasteri‐
4426 zation; those fragments will not be drawn. The masking is
4427 achieved by using three parameters: the 16-bit line stipple pat‐
4428 tern Pattern, the repeat count Factor, and an integer stipple
4429 counter s.
4430
4431 External documentation.
4432
4433 lineWidth(Width :: f()) -> ok
4434
4435 gl:lineWidth/1 specifies the rasterized width of both aliased
4436 and antialiased lines. Using a line width other than 1 has dif‐
4437 ferent effects, depending on whether line antialiasing is en‐
4438 abled. To enable and disable line antialiasing, call gl:enable/1
4439 and gl:disable/1 with argument ?GL_LINE_SMOOTH. Line antialias‐
4440 ing is initially disabled.
4441
4442 External documentation.
4443
4444 linkProgram(Program :: i()) -> ok
4445
4446 gl:linkProgram/1 links the program object specified by Program.
4447 If any shader objects of type ?GL_VERTEX_SHADER are attached to
4448 Program, they will be used to create an executable that will run
4449 on the programmable vertex processor. If any shader objects of
4450 type ?GL_GEOMETRY_SHADER are attached to Program, they will be
4451 used to create an executable that will run on the programmable
4452 geometry processor. If any shader objects of type ?GL_FRAG‐
4453 MENT_SHADER are attached to Program, they will be used to create
4454 an executable that will run on the programmable fragment proces‐
4455 sor.
4456
4457 External documentation.
4458
4459 linkProgramARB(ProgramObj :: i()) -> ok
4460
4461 No documentation available.
4462
4463 listBase(Base :: i()) -> ok
4464
4465 gl:callLists/1 specifies an array of offsets. Display-list names
4466 are generated by adding Base to each offset. Names that refer‐
4467 ence valid display lists are executed; the others are ignored.
4468
4469 External documentation.
4470
4471 loadIdentity() -> ok
4472
4473 gl:loadIdentity/0 replaces the current matrix with the identity
4474 matrix. It is semantically equivalent to calling gl:loadMatrix()
4475 with the identity matrix
4476
4477 External documentation.
4478
4479 loadMatrixd(M :: matrix()) -> ok
4480
4481 loadMatrixf(M :: matrix()) -> ok
4482
4483 gl:loadMatrix() replaces the current matrix with the one whose
4484 elements are specified by M. The current matrix is the projec‐
4485 tion matrix, modelview matrix, or texture matrix, depending on
4486 the current matrix mode (see gl:matrixMode/1).
4487
4488 External documentation.
4489
4490 loadName(Name :: i()) -> ok
4491
4492 The name stack is used during selection mode to allow sets of
4493 rendering commands to be uniquely identified. It consists of an
4494 ordered set of unsigned integers and is initially empty.
4495
4496 External documentation.
4497
4498 loadTransposeMatrixd(M :: matrix()) -> ok
4499
4500 loadTransposeMatrixf(M :: matrix()) -> ok
4501
4502 gl:loadTransposeMatrix() replaces the current matrix with the
4503 one whose elements are specified by M. The current matrix is the
4504 projection matrix, modelview matrix, or texture matrix, depend‐
4505 ing on the current matrix mode (see gl:matrixMode/1).
4506
4507 External documentation.
4508
4509 loadTransposeMatrixdARB(M :: matrix()) -> ok
4510
4511 loadTransposeMatrixfARB(M :: matrix()) -> ok
4512
4513 No documentation available.
4514
4515 logicOp(Opcode :: enum()) -> ok
4516
4517 gl:logicOp/1 specifies a logical operation that, when enabled,
4518 is applied between the incoming RGBA color and the RGBA color at
4519 the corresponding location in the frame buffer. To enable or
4520 disable the logical operation, call gl:enable/1 and gl:disable/1
4521 using the symbolic constant ?GL_COLOR_LOGIC_OP. The initial
4522 value is disabled.
4523
4524 External documentation.
4525
4526 makeImageHandleNonResidentARB(Handle :: i()) -> ok
4527
4528 No documentation available.
4529
4530 makeImageHandleResidentARB(Handle :: i(), Access :: enum()) -> ok
4531
4532 No documentation available.
4533
4534 makeTextureHandleNonResidentARB(Handle :: i()) -> ok
4535
4536 No documentation available.
4537
4538 makeTextureHandleResidentARB(Handle :: i()) -> ok
4539
4540 No documentation available.
4541
4542 map1d(Target :: enum(),
4543 U1 :: f(),
4544 U2 :: f(),
4545 Stride :: i(),
4546 Order :: i(),
4547 Points :: binary()) ->
4548 ok
4549
4550 map1f(Target :: enum(),
4551 U1 :: f(),
4552 U2 :: f(),
4553 Stride :: i(),
4554 Order :: i(),
4555 Points :: binary()) ->
4556 ok
4557
4558 map2d(Target, U1, U2, Ustride, Uorder, V1, V2, Vstride, Vorder,
4559 Points) ->
4560 ok
4561
4562 map2f(Target, U1, U2, Ustride, Uorder, V1, V2, Vstride, Vorder,
4563 Points) ->
4564 ok
4565
4566 Types:
4567
4568 Target = enum()
4569 U1 = U2 = f()
4570 Ustride = Uorder = i()
4571 V1 = V2 = f()
4572 Vstride = Vorder = i()
4573 Points = binary()
4574
4575 No documentation available.
4576
4577 mapGrid1d(Un :: i(), U1 :: f(), U2 :: f()) -> ok
4578
4579 mapGrid1f(Un :: i(), U1 :: f(), U2 :: f()) -> ok
4580
4581 mapGrid2d(Un :: i(),
4582 U1 :: f(),
4583 U2 :: f(),
4584 Vn :: i(),
4585 V1 :: f(),
4586 V2 :: f()) ->
4587 ok
4588
4589 mapGrid2f(Un :: i(),
4590 U1 :: f(),
4591 U2 :: f(),
4592 Vn :: i(),
4593 V1 :: f(),
4594 V2 :: f()) ->
4595 ok
4596
4597 gl:mapGrid() and gl:evalMesh() are used together to efficiently
4598 generate and evaluate a series of evenly-spaced map domain val‐
4599 ues. gl:evalMesh() steps through the integer domain of a one- or
4600 two-dimensional grid, whose range is the domain of the evalua‐
4601 tion maps specified by gl:map1() and gl:map2().
4602
4603 External documentation.
4604
4605 materialf(Face :: enum(), Pname :: enum(), Param :: f()) -> ok
4606
4607 materialfv(Face :: enum(), Pname :: enum(), Params :: tuple()) ->
4608 ok
4609
4610 materiali(Face :: enum(), Pname :: enum(), Param :: i()) -> ok
4611
4612 materialiv(Face :: enum(), Pname :: enum(), Params :: tuple()) ->
4613 ok
4614
4615 gl:material() assigns values to material parameters. There are
4616 two matched sets of material parameters. One, the front-facing
4617 set, is used to shade points, lines, bitmaps, and all polygons
4618 (when two-sided lighting is disabled), or just front-facing
4619 polygons (when two-sided lighting is enabled). The other set,
4620 back-facing, is used to shade back-facing polygons only when
4621 two-sided lighting is enabled. Refer to the gl:lightModel() ref‐
4622 erence page for details concerning one- and two-sided lighting
4623 calculations.
4624
4625 External documentation.
4626
4627 matrixIndexubvARB(Indices :: [i()]) -> ok
4628
4629 matrixIndexuivARB(Indices :: [i()]) -> ok
4630
4631 matrixIndexusvARB(Indices :: [i()]) -> ok
4632
4633 No documentation available.
4634
4635 matrixMode(Mode :: enum()) -> ok
4636
4637 gl:matrixMode/1 sets the current matrix mode. Mode can assume
4638 one of four values:
4639
4640 External documentation.
4641
4642 maxShaderCompilerThreadsARB(Count :: i()) -> ok
4643
4644 No documentation available.
4645
4646 maxShaderCompilerThreadsKHR(Count :: i()) -> ok
4647
4648 No documentation available.
4649
4650 memoryBarrier(Barriers :: i()) -> ok
4651
4652 gl:memoryBarrier/1 defines a barrier ordering the memory trans‐
4653 actions issued prior to the command relative to those issued af‐
4654 ter the barrier. For the purposes of this ordering, memory
4655 transactions performed by shaders are considered to be issued by
4656 the rendering command that triggered the execution of the
4657 shader. Barriers is a bitfield indicating the set of operations
4658 that are synchronized with shader stores; the bits used in Bar‐
4659 riers are as follows:
4660
4661 External documentation.
4662
4663 memoryBarrierByRegion(Barriers :: i()) -> ok
4664
4665 No documentation available.
4666
4667 minSampleShading(Value :: f()) -> ok
4668
4669 gl:minSampleShading/1 specifies the rate at which samples are
4670 shaded within a covered pixel. Sample-rate shading is enabled by
4671 calling gl:enable/1 with the parameter ?GL_SAMPLE_SHADING. If
4672 ?GL_MULTISAMPLE or ?GL_SAMPLE_SHADING is disabled, sample shad‐
4673 ing has no effect. Otherwise, an implementation must provide at
4674 least as many unique color values for each covered fragment as
4675 specified by Value times Samples where Samples is the value of
4676 ?GL_SAMPLES for the current framebuffer. At least 1 sample for
4677 each covered fragment is generated.
4678
4679 External documentation.
4680
4681 minmax(Target :: enum(), Internalformat :: enum(), Sink :: 0 | 1) ->
4682 ok
4683
4684 When ?GL_MINMAX is enabled, the RGBA components of incoming pix‐
4685 els are compared to the minimum and maximum values for each com‐
4686 ponent, which are stored in the two-element minmax table. (The
4687 first element stores the minima, and the second element stores
4688 the maxima.) If a pixel component is greater than the corre‐
4689 sponding component in the maximum element, then the maximum ele‐
4690 ment is updated with the pixel component value. If a pixel com‐
4691 ponent is less than the corresponding component in the minimum
4692 element, then the minimum element is updated with the pixel com‐
4693 ponent value. (In both cases, if the internal format of the min‐
4694 max table includes luminance, then the R color component of in‐
4695 coming pixels is used for comparison.) The contents of the min‐
4696 max table may be retrieved at a later time by calling gl:getMin‐
4697 max/5. The minmax operation is enabled or disabled by calling
4698 gl:enable/1 or gl:disable/1, respectively, with an argument of
4699 ?GL_MINMAX.
4700
4701 External documentation.
4702
4703 multMatrixd(M :: matrix()) -> ok
4704
4705 multMatrixf(M :: matrix()) -> ok
4706
4707 gl:multMatrix() multiplies the current matrix with the one spec‐
4708 ified using M, and replaces the current matrix with the product.
4709
4710 External documentation.
4711
4712 multTransposeMatrixd(M :: matrix()) -> ok
4713
4714 multTransposeMatrixf(M :: matrix()) -> ok
4715
4716 gl:multTransposeMatrix() multiplies the current matrix with the
4717 one specified using M, and replaces the current matrix with the
4718 product.
4719
4720 External documentation.
4721
4722 multTransposeMatrixdARB(M :: matrix()) -> ok
4723
4724 multTransposeMatrixfARB(M :: matrix()) -> ok
4725
4726 No documentation available.
4727
4728 multiDrawArrays(Mode :: enum(),
4729 First :: [integer()] | mem(),
4730 Count :: [integer()] | mem()) ->
4731 ok
4732
4733 gl:multiDrawArrays/3 specifies multiple sets of geometric primi‐
4734 tives with very few subroutine calls. Instead of calling a GL
4735 procedure to pass each individual vertex, normal, texture coor‐
4736 dinate, edge flag, or color, you can prespecify separate arrays
4737 of vertices, normals, and colors and use them to construct a se‐
4738 quence of primitives with a single call to gl:multiDrawArrays/3.
4739
4740 External documentation.
4741
4742 multiDrawArraysIndirect(Mode :: enum(),
4743 Indirect :: offset() | mem(),
4744 Drawcount :: i(),
4745 Stride :: i()) ->
4746 ok
4747
4748 gl:multiDrawArraysIndirect/4 specifies multiple geometric primi‐
4749 tives with very few subroutine calls. gl:multiDrawArraysIndi‐
4750 rect/4 behaves similarly to a multitude of calls to gl:drawAr‐
4751 raysInstancedBaseInstance/5, execept that the parameters to each
4752 call to gl:drawArraysInstancedBaseInstance/5 are stored in an
4753 array in memory at the address given by Indirect, separated by
4754 the stride, in basic machine units, specified by Stride. If
4755 Stride is zero, then the array is assumed to be tightly packed
4756 in memory.
4757
4758 External documentation.
4759
4760 multiDrawArraysIndirectCount(Mode, Indirect, Drawcount,
4761 Maxdrawcount, Stride) ->
4762 ok
4763
4764 Types:
4765
4766 Mode = enum()
4767 Indirect = offset() | mem()
4768 Drawcount = Maxdrawcount = Stride = i()
4769
4770 No documentation available.
4771
4772 multiTexCoord1d(Target :: enum(), S :: f()) -> ok
4773
4774 multiTexCoord1dv(Target :: enum(), X2 :: {S :: f()}) -> ok
4775
4776 multiTexCoord1f(Target :: enum(), S :: f()) -> ok
4777
4778 multiTexCoord1fv(Target :: enum(), X2 :: {S :: f()}) -> ok
4779
4780 multiTexCoord1i(Target :: enum(), S :: i()) -> ok
4781
4782 multiTexCoord1iv(Target :: enum(), X2 :: {S :: i()}) -> ok
4783
4784 multiTexCoord1s(Target :: enum(), S :: i()) -> ok
4785
4786 multiTexCoord1sv(Target :: enum(), X2 :: {S :: i()}) -> ok
4787
4788 multiTexCoord2d(Target :: enum(), S :: f(), T :: f()) -> ok
4789
4790 multiTexCoord2dv(Target :: enum(), X2 :: {S :: f(), T :: f()}) ->
4791 ok
4792
4793 multiTexCoord2f(Target :: enum(), S :: f(), T :: f()) -> ok
4794
4795 multiTexCoord2fv(Target :: enum(), X2 :: {S :: f(), T :: f()}) ->
4796 ok
4797
4798 multiTexCoord2i(Target :: enum(), S :: i(), T :: i()) -> ok
4799
4800 multiTexCoord2iv(Target :: enum(), X2 :: {S :: i(), T :: i()}) ->
4801 ok
4802
4803 multiTexCoord2s(Target :: enum(), S :: i(), T :: i()) -> ok
4804
4805 multiTexCoord2sv(Target :: enum(), X2 :: {S :: i(), T :: i()}) ->
4806 ok
4807
4808 multiTexCoord3d(Target :: enum(), S :: f(), T :: f(), R :: f()) ->
4809 ok
4810
4811 multiTexCoord3dv(Target :: enum(),
4812 X2 :: {S :: f(), T :: f(), R :: f()}) ->
4813 ok
4814
4815 multiTexCoord3f(Target :: enum(), S :: f(), T :: f(), R :: f()) ->
4816 ok
4817
4818 multiTexCoord3fv(Target :: enum(),
4819 X2 :: {S :: f(), T :: f(), R :: f()}) ->
4820 ok
4821
4822 multiTexCoord3i(Target :: enum(), S :: i(), T :: i(), R :: i()) ->
4823 ok
4824
4825 multiTexCoord3iv(Target :: enum(),
4826 X2 :: {S :: i(), T :: i(), R :: i()}) ->
4827 ok
4828
4829 multiTexCoord3s(Target :: enum(), S :: i(), T :: i(), R :: i()) ->
4830 ok
4831
4832 multiTexCoord3sv(Target :: enum(),
4833 X2 :: {S :: i(), T :: i(), R :: i()}) ->
4834 ok
4835
4836 multiTexCoord4d(Target :: enum(),
4837 S :: f(),
4838 T :: f(),
4839 R :: f(),
4840 Q :: f()) ->
4841 ok
4842
4843 multiTexCoord4dv(Target :: enum(),
4844 X2 :: {S :: f(), T :: f(), R :: f(), Q :: f()}) ->
4845 ok
4846
4847 multiTexCoord4f(Target :: enum(),
4848 S :: f(),
4849 T :: f(),
4850 R :: f(),
4851 Q :: f()) ->
4852 ok
4853
4854 multiTexCoord4fv(Target :: enum(),
4855 X2 :: {S :: f(), T :: f(), R :: f(), Q :: f()}) ->
4856 ok
4857
4858 multiTexCoord4i(Target :: enum(),
4859 S :: i(),
4860 T :: i(),
4861 R :: i(),
4862 Q :: i()) ->
4863 ok
4864
4865 multiTexCoord4iv(Target :: enum(),
4866 X2 :: {S :: i(), T :: i(), R :: i(), Q :: i()}) ->
4867 ok
4868
4869 multiTexCoord4s(Target :: enum(),
4870 S :: i(),
4871 T :: i(),
4872 R :: i(),
4873 Q :: i()) ->
4874 ok
4875
4876 multiTexCoord4sv(Target :: enum(),
4877 X2 :: {S :: i(), T :: i(), R :: i(), Q :: i()}) ->
4878 ok
4879
4880 gl:multiTexCoord() specifies texture coordinates in one, two,
4881 three, or four dimensions. gl:multiTexCoord1() sets the current
4882 texture coordinates to (s 0 0 1); a call to gl:multiTexCoord2()
4883 sets them to (s t 0 1). Similarly, gl:multiTexCoord3() specifies
4884 the texture coordinates as (s t r 1), and gl:multiTexCoord4()
4885 defines all four components explicitly as (s t r q).
4886
4887 External documentation.
4888
4889 newList(List :: i(), Mode :: enum()) -> ok
4890
4891 Display lists are groups of GL commands that have been stored
4892 for subsequent execution. Display lists are created with
4893 gl:newList/2. All subsequent commands are placed in the display
4894 list, in the order issued, until gl:endList/0 is called.
4895
4896 External documentation.
4897
4898 normal3b(Nx :: i(), Ny :: i(), Nz :: i()) -> ok
4899
4900 normal3bv(X1 :: {Nx :: i(), Ny :: i(), Nz :: i()}) -> ok
4901
4902 normal3d(Nx :: f(), Ny :: f(), Nz :: f()) -> ok
4903
4904 normal3dv(X1 :: {Nx :: f(), Ny :: f(), Nz :: f()}) -> ok
4905
4906 normal3f(Nx :: f(), Ny :: f(), Nz :: f()) -> ok
4907
4908 normal3fv(X1 :: {Nx :: f(), Ny :: f(), Nz :: f()}) -> ok
4909
4910 normal3i(Nx :: i(), Ny :: i(), Nz :: i()) -> ok
4911
4912 normal3iv(X1 :: {Nx :: i(), Ny :: i(), Nz :: i()}) -> ok
4913
4914 normal3s(Nx :: i(), Ny :: i(), Nz :: i()) -> ok
4915
4916 normal3sv(X1 :: {Nx :: i(), Ny :: i(), Nz :: i()}) -> ok
4917
4918 The current normal is set to the given coordinates whenever
4919 gl:normal() is issued. Byte, short, or integer arguments are
4920 converted to floating-point format with a linear mapping that
4921 maps the most positive representable integer value to 1.0 and
4922 the most negative representable integer value to -1.0.
4923
4924 External documentation.
4925
4926 normalPointer(Type :: enum(),
4927 Stride :: i(),
4928 Ptr :: offset() | mem()) ->
4929 ok
4930
4931 gl:normalPointer/3 specifies the location and data format of an
4932 array of normals to use when rendering. Type specifies the data
4933 type of each normal coordinate, and Stride specifies the byte
4934 stride from one normal to the next, allowing vertices and at‐
4935 tributes to be packed into a single array or stored in separate
4936 arrays. (Single-array storage may be more efficient on some im‐
4937 plementations; see gl:interleavedArrays/3.)
4938
4939 External documentation.
4940
4941 objectPtrLabel(Ptr :: offset() | mem(),
4942 Length :: i(),
4943 Label :: string()) ->
4944 ok
4945
4946 gl:objectPtrLabel/3 labels the sync object identified by Ptr.
4947
4948 External documentation.
4949
4950 ortho(Left :: f(),
4951 Right :: f(),
4952 Bottom :: f(),
4953 Top :: f(),
4954 Near_val :: f(),
4955 Far_val :: f()) ->
4956 ok
4957
4958 gl:ortho/6 describes a transformation that produces a parallel
4959 projection. The current matrix (see gl:matrixMode/1) is multi‐
4960 plied by this matrix and the result replaces the current matrix,
4961 as if gl:multMatrix() were called with the following matrix as
4962 its argument:
4963
4964 External documentation.
4965
4966 passThrough(Token :: f()) -> ok
4967
4968 External documentation.
4969
4970 patchParameterfv(Pname :: enum(), Values :: [f()]) -> ok
4971
4972 patchParameteri(Pname :: enum(), Value :: i()) -> ok
4973
4974 gl:patchParameter() specifies the parameters that will be used
4975 for patch primitives. Pname specifies the parameter to modify
4976 and must be either ?GL_PATCH_VERTICES, ?GL_PATCH_DE‐
4977 FAULT_OUTER_LEVEL or ?GL_PATCH_DEFAULT_INNER_LEVEL. For
4978 gl:patchParameteri/2, Value specifies the new value for the pa‐
4979 rameter specified by Pname. For gl:patchParameterfv/2, Values
4980 specifies the address of an array containing the new values for
4981 the parameter specified by Pname.
4982
4983 External documentation.
4984
4985 pauseTransformFeedback() -> ok
4986
4987 gl:pauseTransformFeedback/0 pauses transform feedback operations
4988 on the currently active transform feedback object. When trans‐
4989 form feedback operations are paused, transform feedback is still
4990 considered active and changing most transform feedback state re‐
4991 lated to the object results in an error. However, a new trans‐
4992 form feedback object may be bound while transform feedback is
4993 paused.
4994
4995 External documentation.
4996
4997 pixelMapfv(Map :: enum(), Mapsize :: i(), Values :: binary()) ->
4998 ok
4999
5000 pixelMapuiv(Map :: enum(), Mapsize :: i(), Values :: binary()) ->
5001 ok
5002
5003 pixelMapusv(Map :: enum(), Mapsize :: i(), Values :: binary()) ->
5004 ok
5005
5006 gl:pixelMap() sets up translation tables, or maps, used by
5007 gl:copyPixels/5, gl:copyTexImage1D/7, gl:copyTexImage2D/8,
5008 gl:copyTexSubImage1D/6, gl:copyTexSubImage2D/8, gl:copyTexSubIm‐
5009 age3D/9, gl:drawPixels/5, gl:readPixels/7, gl:texImage1D/8,
5010 gl:texImage2D/9, gl:texImage3D/10, gl:texSubImage1D/7, gl:tex‐
5011 SubImage2D/9, and gl:texSubImage3D/11. Additionally, if the
5012 ARB_imaging subset is supported, the routines gl:colorTable/6,
5013 gl:colorSubTable/6, gl:convolutionFilter1D/6, gl:convolutionFil‐
5014 ter2D/7, gl:histogram/4, gl:minmax/3, and gl:separable‐
5015 Filter2D/8. Use of these maps is described completely in the
5016 gl:pixelTransfer() reference page, and partly in the reference
5017 pages for the pixel and texture image commands. Only the speci‐
5018 fication of the maps is described in this reference page.
5019
5020 External documentation.
5021
5022 pixelStoref(Pname :: enum(), Param :: f()) -> ok
5023
5024 pixelStorei(Pname :: enum(), Param :: i()) -> ok
5025
5026 gl:pixelStore() sets pixel storage modes that affect the opera‐
5027 tion of subsequent gl:readPixels/7 as well as the unpacking of
5028 texture patterns (see gl:texImage1D/8, gl:texImage2D/9, gl:tex‐
5029 Image3D/10, gl:texSubImage1D/7, gl:texSubImage2D/9, gl:texSubIm‐
5030 age3D/11), gl:compressedTexImage1D/7, gl:compressedTexImage2D/8,
5031 gl:compressedTexImage3D/9, gl:compressedTexSubImage1D/7, gl:com‐
5032 pressedTexSubImage2D/9 or gl:compressedTexSubImage1D/7.
5033
5034 External documentation.
5035
5036 pixelTransferf(Pname :: enum(), Param :: f()) -> ok
5037
5038 pixelTransferi(Pname :: enum(), Param :: i()) -> ok
5039
5040 gl:pixelTransfer() sets pixel transfer modes that affect the op‐
5041 eration of subsequent gl:copyPixels/5, gl:copyTexImage1D/7,
5042 gl:copyTexImage2D/8, gl:copyTexSubImage1D/6, gl:copyTexSubIm‐
5043 age2D/8, gl:copyTexSubImage3D/9, gl:drawPixels/5, gl:readPix‐
5044 els/7, gl:texImage1D/8, gl:texImage2D/9, gl:texImage3D/10,
5045 gl:texSubImage1D/7, gl:texSubImage2D/9, and gl:texSubImage3D/11
5046 commands. Additionally, if the ARB_imaging subset is supported,
5047 the routines gl:colorTable/6, gl:colorSubTable/6, gl:convolu‐
5048 tionFilter1D/6, gl:convolutionFilter2D/7, gl:histogram/4,
5049 gl:minmax/3, and gl:separableFilter2D/8 are also affected. The
5050 algorithms that are specified by pixel transfer modes operate on
5051 pixels after they are read from the frame buffer (gl:copyPix‐
5052 els/5gl:copyTexImage1D/7, gl:copyTexImage2D/8, gl:copyTexSubIm‐
5053 age1D/6, gl:copyTexSubImage2D/8, gl:copyTexSubImage3D/9, and
5054 gl:readPixels/7), or unpacked from client memory (gl:drawPix‐
5055 els/5, gl:texImage1D/8, gl:texImage2D/9, gl:texImage3D/10,
5056 gl:texSubImage1D/7, gl:texSubImage2D/9, and gl:texSubIm‐
5057 age3D/11). Pixel transfer operations happen in the same order,
5058 and in the same manner, regardless of the command that resulted
5059 in the pixel operation. Pixel storage modes (see gl:pixel‐
5060 Store()) control the unpacking of pixels being read from client
5061 memory and the packing of pixels being written back into client
5062 memory.
5063
5064 External documentation.
5065
5066 pixelZoom(Xfactor :: f(), Yfactor :: f()) -> ok
5067
5068 gl:pixelZoom/2 specifies values for the x and y zoom factors.
5069 During the execution of gl:drawPixels/5 or gl:copyPixels/5, if (
5070 xr, yr) is the current raster position, and a given element is
5071 in the mth row and nth column of the pixel rectangle, then pix‐
5072 els whose centers are in the rectangle with corners at
5073
5074 External documentation.
5075
5076 pointParameterf(Pname :: enum(), Param :: f()) -> ok
5077
5078 pointParameterfv(Pname :: enum(), Params :: tuple()) -> ok
5079
5080 pointParameteri(Pname :: enum(), Param :: i()) -> ok
5081
5082 pointParameteriv(Pname :: enum(), Params :: tuple()) -> ok
5083
5084 The following values are accepted for Pname:
5085
5086 External documentation.
5087
5088 pointSize(Size :: f()) -> ok
5089
5090 gl:pointSize/1 specifies the rasterized diameter of points. If
5091 point size mode is disabled (see gl:enable/1 with parameter
5092 ?GL_PROGRAM_POINT_SIZE), this value will be used to rasterize
5093 points. Otherwise, the value written to the shading language
5094 built-in variable gl_PointSize will be used.
5095
5096 External documentation.
5097
5098 polygonMode(Face :: enum(), Mode :: enum()) -> ok
5099
5100 gl:polygonMode/2 controls the interpretation of polygons for
5101 rasterization. Face describes which polygons Mode applies to:
5102 both front and back-facing polygons (?GL_FRONT_AND_BACK). The
5103 polygon mode affects only the final rasterization of polygons.
5104 In particular, a polygon's vertices are lit and the polygon is
5105 clipped and possibly culled before these modes are applied.
5106
5107 External documentation.
5108
5109 polygonOffset(Factor :: f(), Units :: f()) -> ok
5110
5111 When ?GL_POLYGON_OFFSET_FILL, ?GL_POLYGON_OFFSET_LINE, or
5112 ?GL_POLYGON_OFFSET_POINT is enabled, each fragment's depth value
5113 will be offset after it is interpolated from the depth values of
5114 the appropriate vertices. The value of the offset is fac‐
5115 tor×DZ+r×units, where DZ is a measurement of the change in depth
5116 relative to the screen area of the polygon, and r is the small‐
5117 est value that is guaranteed to produce a resolvable offset for
5118 a given implementation. The offset is added before the depth
5119 test is performed and before the value is written into the depth
5120 buffer.
5121
5122 External documentation.
5123
5124 polygonOffsetClamp(Factor :: f(), Units :: f(), Clamp :: f()) ->
5125 ok
5126
5127 No documentation available.
5128
5129 polygonStipple(Mask :: binary()) -> ok
5130
5131 Polygon stippling, like line stippling (see gl:lineStipple/2),
5132 masks out certain fragments produced by rasterization, creating
5133 a pattern. Stippling is independent of polygon antialiasing.
5134
5135 External documentation.
5136
5137 primitiveBoundingBoxARB(MinX, MinY, MinZ, MinW, MaxX, MaxY, MaxZ,
5138 MaxW) ->
5139 ok
5140
5141 Types:
5142
5143 MinX = MinY = MinZ = MinW = MaxX = MaxY = MaxZ = MaxW = f()
5144
5145 No documentation available.
5146
5147 primitiveRestartIndex(Index :: i()) -> ok
5148
5149 gl:primitiveRestartIndex/1 specifies a vertex array element that
5150 is treated specially when primitive restarting is enabled. This
5151 is known as the primitive restart index.
5152
5153 External documentation.
5154
5155 prioritizeTextures(Textures :: [i()], Priorities :: [clamp()]) ->
5156 ok
5157
5158 gl:prioritizeTextures/2 assigns the N texture priorities given
5159 in Priorities to the N textures named in Textures.
5160
5161 External documentation.
5162
5163 programBinary(Program :: i(),
5164 BinaryFormat :: enum(),
5165 Binary :: binary()) ->
5166 ok
5167
5168 gl:programBinary/3 loads a program object with a program binary
5169 previously returned from gl:getProgramBinary/2. BinaryFormat and
5170 Binary must be those returned by a previous call to gl:getPro‐
5171 gramBinary/2, and Length must be the length returned by gl:get‐
5172 ProgramBinary/2, or by gl:getProgram() when called with Pname
5173 set to ?GL_PROGRAM_BINARY_LENGTH. If these conditions are not
5174 met, loading the program binary will fail and Program's
5175 ?GL_LINK_STATUS will be set to ?GL_FALSE.
5176
5177 External documentation.
5178
5179 programEnvParameter4dARB(Target :: enum(),
5180 Index :: i(),
5181 X :: f(),
5182 Y :: f(),
5183 Z :: f(),
5184 W :: f()) ->
5185 ok
5186
5187 programEnvParameter4dvARB(Target :: enum(),
5188 Index :: i(),
5189 Params :: {f(), f(), f(), f()}) ->
5190 ok
5191
5192 programEnvParameter4fARB(Target :: enum(),
5193 Index :: i(),
5194 X :: f(),
5195 Y :: f(),
5196 Z :: f(),
5197 W :: f()) ->
5198 ok
5199
5200 programEnvParameter4fvARB(Target :: enum(),
5201 Index :: i(),
5202 Params :: {f(), f(), f(), f()}) ->
5203 ok
5204
5205 No documentation available.
5206
5207 programLocalParameter4dARB(Target :: enum(),
5208 Index :: i(),
5209 X :: f(),
5210 Y :: f(),
5211 Z :: f(),
5212 W :: f()) ->
5213 ok
5214
5215 programLocalParameter4dvARB(Target :: enum(),
5216 Index :: i(),
5217 Params :: {f(), f(), f(), f()}) ->
5218 ok
5219
5220 programLocalParameter4fARB(Target :: enum(),
5221 Index :: i(),
5222 X :: f(),
5223 Y :: f(),
5224 Z :: f(),
5225 W :: f()) ->
5226 ok
5227
5228 programLocalParameter4fvARB(Target :: enum(),
5229 Index :: i(),
5230 Params :: {f(), f(), f(), f()}) ->
5231 ok
5232
5233 No documentation available.
5234
5235 programParameteri(Program :: i(), Pname :: enum(), Value :: i()) ->
5236 ok
5237
5238 gl:programParameter() specifies a new value for the parameter
5239 nameed by Pname for the program object Program.
5240
5241 External documentation.
5242
5243 programStringARB(Target :: enum(),
5244 Format :: enum(),
5245 String :: string()) ->
5246 ok
5247
5248 No documentation available.
5249
5250 programUniform1d(Program :: i(), Location :: i(), V0 :: f()) -> ok
5251
5252 programUniform1dv(Program :: i(), Location :: i(), Value :: [f()]) ->
5253 ok
5254
5255 programUniform1f(Program :: i(), Location :: i(), V0 :: f()) -> ok
5256
5257 programUniform1fv(Program :: i(), Location :: i(), Value :: [f()]) ->
5258 ok
5259
5260 programUniform1i(Program :: i(), Location :: i(), V0 :: i()) -> ok
5261
5262 programUniform1iv(Program :: i(), Location :: i(), Value :: [i()]) ->
5263 ok
5264
5265 programUniform1ui(Program :: i(), Location :: i(), V0 :: i()) ->
5266 ok
5267
5268 programUniform1uiv(Program :: i(),
5269 Location :: i(),
5270 Value :: [i()]) ->
5271 ok
5272
5273 programUniform2d(Program :: i(),
5274 Location :: i(),
5275 V0 :: f(),
5276 V1 :: f()) ->
5277 ok
5278
5279 programUniform2dv(Program :: i(),
5280 Location :: i(),
5281 Value :: [{f(), f()}]) ->
5282 ok
5283
5284 programUniform2f(Program :: i(),
5285 Location :: i(),
5286 V0 :: f(),
5287 V1 :: f()) ->
5288 ok
5289
5290 programUniform2fv(Program :: i(),
5291 Location :: i(),
5292 Value :: [{f(), f()}]) ->
5293 ok
5294
5295 programUniform2i(Program :: i(),
5296 Location :: i(),
5297 V0 :: i(),
5298 V1 :: i()) ->
5299 ok
5300
5301 programUniform2iv(Program :: i(),
5302 Location :: i(),
5303 Value :: [{i(), i()}]) ->
5304 ok
5305
5306 programUniform2ui(Program :: i(),
5307 Location :: i(),
5308 V0 :: i(),
5309 V1 :: i()) ->
5310 ok
5311
5312 programUniform2uiv(Program :: i(),
5313 Location :: i(),
5314 Value :: [{i(), i()}]) ->
5315 ok
5316
5317 programUniform3d(Program :: i(),
5318 Location :: i(),
5319 V0 :: f(),
5320 V1 :: f(),
5321 V2 :: f()) ->
5322 ok
5323
5324 programUniform3dv(Program :: i(),
5325 Location :: i(),
5326 Value :: [{f(), f(), f()}]) ->
5327 ok
5328
5329 programUniform3f(Program :: i(),
5330 Location :: i(),
5331 V0 :: f(),
5332 V1 :: f(),
5333 V2 :: f()) ->
5334 ok
5335
5336 programUniform3fv(Program :: i(),
5337 Location :: i(),
5338 Value :: [{f(), f(), f()}]) ->
5339 ok
5340
5341 programUniform3i(Program :: i(),
5342 Location :: i(),
5343 V0 :: i(),
5344 V1 :: i(),
5345 V2 :: i()) ->
5346 ok
5347
5348 programUniform3iv(Program :: i(),
5349 Location :: i(),
5350 Value :: [{i(), i(), i()}]) ->
5351 ok
5352
5353 programUniform3ui(Program :: i(),
5354 Location :: i(),
5355 V0 :: i(),
5356 V1 :: i(),
5357 V2 :: i()) ->
5358 ok
5359
5360 programUniform3uiv(Program :: i(),
5361 Location :: i(),
5362 Value :: [{i(), i(), i()}]) ->
5363 ok
5364
5365 programUniform4d(Program :: i(),
5366 Location :: i(),
5367 V0 :: f(),
5368 V1 :: f(),
5369 V2 :: f(),
5370 V3 :: f()) ->
5371 ok
5372
5373 programUniform4dv(Program :: i(),
5374 Location :: i(),
5375 Value :: [{f(), f(), f(), f()}]) ->
5376 ok
5377
5378 programUniform4f(Program :: i(),
5379 Location :: i(),
5380 V0 :: f(),
5381 V1 :: f(),
5382 V2 :: f(),
5383 V3 :: f()) ->
5384 ok
5385
5386 programUniform4fv(Program :: i(),
5387 Location :: i(),
5388 Value :: [{f(), f(), f(), f()}]) ->
5389 ok
5390
5391 programUniform4i(Program :: i(),
5392 Location :: i(),
5393 V0 :: i(),
5394 V1 :: i(),
5395 V2 :: i(),
5396 V3 :: i()) ->
5397 ok
5398
5399 programUniform4iv(Program :: i(),
5400 Location :: i(),
5401 Value :: [{i(), i(), i(), i()}]) ->
5402 ok
5403
5404 programUniform4ui(Program :: i(),
5405 Location :: i(),
5406 V0 :: i(),
5407 V1 :: i(),
5408 V2 :: i(),
5409 V3 :: i()) ->
5410 ok
5411
5412 programUniform4uiv(Program :: i(),
5413 Location :: i(),
5414 Value :: [{i(), i(), i(), i()}]) ->
5415 ok
5416
5417 programUniformMatrix2dv(Program :: i(),
5418 Location :: i(),
5419 Transpose :: 0 | 1,
5420 Value :: [{f(), f(), f(), f()}]) ->
5421 ok
5422
5423 programUniformMatrix2fv(Program :: i(),
5424 Location :: i(),
5425 Transpose :: 0 | 1,
5426 Value :: [{f(), f(), f(), f()}]) ->
5427 ok
5428
5429 programUniformMatrix2x3dv(Program :: i(),
5430 Location :: i(),
5431 Transpose :: 0 | 1,
5432 Value ::
5433 [{f(), f(), f(), f(), f(), f()}]) ->
5434 ok
5435
5436 programUniformMatrix2x3fv(Program :: i(),
5437 Location :: i(),
5438 Transpose :: 0 | 1,
5439 Value ::
5440 [{f(), f(), f(), f(), f(), f()}]) ->
5441 ok
5442
5443 programUniformMatrix2x4dv(Program, Location, Transpose, Value) ->
5444 ok
5445
5446 programUniformMatrix2x4fv(Program, Location, Transpose, Value) ->
5447 ok
5448
5449 programUniformMatrix3dv(Program, Location, Transpose, Value) -> ok
5450
5451 programUniformMatrix3fv(Program, Location, Transpose, Value) -> ok
5452
5453 programUniformMatrix3x2dv(Program :: i(),
5454 Location :: i(),
5455 Transpose :: 0 | 1,
5456 Value ::
5457 [{f(), f(), f(), f(), f(), f()}]) ->
5458 ok
5459
5460 programUniformMatrix3x2fv(Program :: i(),
5461 Location :: i(),
5462 Transpose :: 0 | 1,
5463 Value ::
5464 [{f(), f(), f(), f(), f(), f()}]) ->
5465 ok
5466
5467 programUniformMatrix3x4dv(Program, Location, Transpose, Value) ->
5468 ok
5469
5470 programUniformMatrix3x4fv(Program, Location, Transpose, Value) ->
5471 ok
5472
5473 programUniformMatrix4dv(Program, Location, Transpose, Value) -> ok
5474
5475 programUniformMatrix4fv(Program, Location, Transpose, Value) -> ok
5476
5477 programUniformMatrix4x2dv(Program, Location, Transpose, Value) ->
5478 ok
5479
5480 programUniformMatrix4x2fv(Program, Location, Transpose, Value) ->
5481 ok
5482
5483 programUniformMatrix4x3dv(Program, Location, Transpose, Value) ->
5484 ok
5485
5486 programUniformMatrix4x3fv(Program, Location, Transpose, Value) ->
5487 ok
5488
5489 Types:
5490
5491 Program = Location = i()
5492 Transpose = 0 | 1
5493 Value =
5494 [{f(), f(), f(), f(), f(), f(), f(), f(), f(), f(), f(),
5495 f()}]
5496
5497 gl:programUniform() modifies the value of a uniform variable or
5498 a uniform variable array. The location of the uniform variable
5499 to be modified is specified by Location, which should be a value
5500 returned by gl:getUniformLocation/2. gl:programUniform() oper‐
5501 ates on the program object specified by Program.
5502
5503 External documentation.
5504
5505 programUniform1i64vARB(Program :: i(),
5506 Location :: i(),
5507 Value :: [i()]) ->
5508 ok
5509
5510 No documentation available.
5511
5512 programUniform1i64ARB(Program :: i(), Location :: i(), X :: i()) ->
5513 ok
5514
5515 No documentation available.
5516
5517 programUniform1ui64vARB(Program :: i(),
5518 Location :: i(),
5519 Value :: [i()]) ->
5520 ok
5521
5522 No documentation available.
5523
5524 programUniform1ui64ARB(Program :: i(), Location :: i(), X :: i()) ->
5525 ok
5526
5527 No documentation available.
5528
5529 programUniform2i64vARB(Program :: i(),
5530 Location :: i(),
5531 Value :: [{i(), i()}]) ->
5532 ok
5533
5534 No documentation available.
5535
5536 programUniform2i64ARB(Program :: i(),
5537 Location :: i(),
5538 X :: i(),
5539 Y :: i()) ->
5540 ok
5541
5542 No documentation available.
5543
5544 programUniform2ui64vARB(Program :: i(),
5545 Location :: i(),
5546 Value :: [{i(), i()}]) ->
5547 ok
5548
5549 No documentation available.
5550
5551 programUniform2ui64ARB(Program :: i(),
5552 Location :: i(),
5553 X :: i(),
5554 Y :: i()) ->
5555 ok
5556
5557 No documentation available.
5558
5559 programUniform3i64vARB(Program :: i(),
5560 Location :: i(),
5561 Value :: [{i(), i(), i()}]) ->
5562 ok
5563
5564 No documentation available.
5565
5566 programUniform3i64ARB(Program :: i(),
5567 Location :: i(),
5568 X :: i(),
5569 Y :: i(),
5570 Z :: i()) ->
5571 ok
5572
5573 No documentation available.
5574
5575 programUniform3ui64vARB(Program :: i(),
5576 Location :: i(),
5577 Value :: [{i(), i(), i()}]) ->
5578 ok
5579
5580 No documentation available.
5581
5582 programUniform3ui64ARB(Program :: i(),
5583 Location :: i(),
5584 X :: i(),
5585 Y :: i(),
5586 Z :: i()) ->
5587 ok
5588
5589 No documentation available.
5590
5591 programUniform4i64vARB(Program :: i(),
5592 Location :: i(),
5593 Value :: [{i(), i(), i(), i()}]) ->
5594 ok
5595
5596 No documentation available.
5597
5598 programUniform4i64ARB(Program :: i(),
5599 Location :: i(),
5600 X :: i(),
5601 Y :: i(),
5602 Z :: i(),
5603 W :: i()) ->
5604 ok
5605
5606 No documentation available.
5607
5608 programUniform4ui64vARB(Program :: i(),
5609 Location :: i(),
5610 Value :: [{i(), i(), i(), i()}]) ->
5611 ok
5612
5613 No documentation available.
5614
5615 programUniform4ui64ARB(Program :: i(),
5616 Location :: i(),
5617 X :: i(),
5618 Y :: i(),
5619 Z :: i(),
5620 W :: i()) ->
5621 ok
5622
5623 No documentation available.
5624
5625 programUniformHandleui64ARB(Program :: i(),
5626 Location :: i(),
5627 Value :: i()) ->
5628 ok
5629
5630 No documentation available.
5631
5632 provokingVertex(Mode :: enum()) -> ok
5633
5634 Flatshading a vertex shader varying output means to assign all
5635 vetices of the primitive the same value for that output. The
5636 vertex from which these values is derived is known as the pro‐
5637 voking vertex and gl:provokingVertex/1 specifies which vertex is
5638 to be used as the source of data for flat shaded varyings.
5639
5640 External documentation.
5641
5642 popAttrib() -> ok
5643
5644 pushAttrib(Mask :: i()) -> ok
5645
5646 gl:pushAttrib/1 takes one argument, a mask that indicates which
5647 groups of state variables to save on the attribute stack. Sym‐
5648 bolic constants are used to set bits in the mask. Mask is typi‐
5649 cally constructed by specifying the bitwise-or of several of
5650 these constants together. The special mask ?GL_ALL_ATTRIB_BITS
5651 can be used to save all stackable states.
5652
5653 External documentation.
5654
5655 popClientAttrib() -> ok
5656
5657 pushClientAttrib(Mask :: i()) -> ok
5658
5659 gl:pushClientAttrib/1 takes one argument, a mask that indicates
5660 which groups of client-state variables to save on the client at‐
5661 tribute stack. Symbolic constants are used to set bits in the
5662 mask. Mask is typically constructed by specifying the bitwise-or
5663 of several of these constants together. The special mask
5664 ?GL_CLIENT_ALL_ATTRIB_BITS can be used to save all stackable
5665 client state.
5666
5667 External documentation.
5668
5669 popDebugGroup() -> ok
5670
5671 pushDebugGroup(Source :: enum(),
5672 Id :: i(),
5673 Length :: i(),
5674 Message :: string()) ->
5675 ok
5676
5677 gl:pushDebugGroup/4 pushes a debug group described by the string
5678 Message into the command stream. The value of Id specifies the
5679 ID of messages generated. The parameter Length contains the num‐
5680 ber of characters in Message. If Length is negative, it is im‐
5681 plied that Message contains a null terminated string. The mes‐
5682 sage has the specified Source and Id, the Type?GL_DE‐
5683 BUG_TYPE_PUSH_GROUP, and Severity?GL_DEBUG_SEVERITY_NOTIFICA‐
5684 TION. The GL will put a new debug group on top of the debug
5685 group stack which inherits the control of the volume of debug
5686 output of the debug group previously residing on the top of the
5687 debug group stack. Because debug groups are strictly hierarchi‐
5688 cal, any additional control of the debug output volume will only
5689 apply within the active debug group and the debug groups pushed
5690 on top of the active debug group.
5691
5692 External documentation.
5693
5694 popMatrix() -> ok
5695
5696 pushMatrix() -> ok
5697
5698 There is a stack of matrices for each of the matrix modes. In
5699 ?GL_MODELVIEW mode, the stack depth is at least 32. In the other
5700 modes, ?GL_COLOR, ?GL_PROJECTION, and ?GL_TEXTURE, the depth is
5701 at least 2. The current matrix in any mode is the matrix on the
5702 top of the stack for that mode.
5703
5704 External documentation.
5705
5706 popName() -> ok
5707
5708 pushName(Name :: i()) -> ok
5709
5710 The name stack is used during selection mode to allow sets of
5711 rendering commands to be uniquely identified. It consists of an
5712 ordered set of unsigned integers and is initially empty.
5713
5714 External documentation.
5715
5716 queryCounter(Id :: i(), Target :: enum()) -> ok
5717
5718 gl:queryCounter/2 causes the GL to record the current time into
5719 the query object named Id. Target must be ?GL_TIMESTAMP. The
5720 time is recorded after all previous commands on the GL client
5721 and server state and the framebuffer have been fully realized.
5722 When the time is recorded, the query result for that object is
5723 marked available. gl:queryCounter/2 timer queries can be used
5724 within a gl:beginQuery/2 / gl:endQuery/1 block where the target
5725 is ?GL_TIME_ELAPSED and it does not affect the result of that
5726 query object.
5727
5728 External documentation.
5729
5730 rasterPos2d(X :: f(), Y :: f()) -> ok
5731
5732 rasterPos2dv(X1 :: {X :: f(), Y :: f()}) -> ok
5733
5734 rasterPos2f(X :: f(), Y :: f()) -> ok
5735
5736 rasterPos2fv(X1 :: {X :: f(), Y :: f()}) -> ok
5737
5738 rasterPos2i(X :: i(), Y :: i()) -> ok
5739
5740 rasterPos2iv(X1 :: {X :: i(), Y :: i()}) -> ok
5741
5742 rasterPos2s(X :: i(), Y :: i()) -> ok
5743
5744 rasterPos2sv(X1 :: {X :: i(), Y :: i()}) -> ok
5745
5746 rasterPos3d(X :: f(), Y :: f(), Z :: f()) -> ok
5747
5748 rasterPos3dv(X1 :: {X :: f(), Y :: f(), Z :: f()}) -> ok
5749
5750 rasterPos3f(X :: f(), Y :: f(), Z :: f()) -> ok
5751
5752 rasterPos3fv(X1 :: {X :: f(), Y :: f(), Z :: f()}) -> ok
5753
5754 rasterPos3i(X :: i(), Y :: i(), Z :: i()) -> ok
5755
5756 rasterPos3iv(X1 :: {X :: i(), Y :: i(), Z :: i()}) -> ok
5757
5758 rasterPos3s(X :: i(), Y :: i(), Z :: i()) -> ok
5759
5760 rasterPos3sv(X1 :: {X :: i(), Y :: i(), Z :: i()}) -> ok
5761
5762 rasterPos4d(X :: f(), Y :: f(), Z :: f(), W :: f()) -> ok
5763
5764 rasterPos4dv(X1 :: {X :: f(), Y :: f(), Z :: f(), W :: f()}) -> ok
5765
5766 rasterPos4f(X :: f(), Y :: f(), Z :: f(), W :: f()) -> ok
5767
5768 rasterPos4fv(X1 :: {X :: f(), Y :: f(), Z :: f(), W :: f()}) -> ok
5769
5770 rasterPos4i(X :: i(), Y :: i(), Z :: i(), W :: i()) -> ok
5771
5772 rasterPos4iv(X1 :: {X :: i(), Y :: i(), Z :: i(), W :: i()}) -> ok
5773
5774 rasterPos4s(X :: i(), Y :: i(), Z :: i(), W :: i()) -> ok
5775
5776 rasterPos4sv(X1 :: {X :: i(), Y :: i(), Z :: i(), W :: i()}) -> ok
5777
5778 The GL maintains a 3D position in window coordinates. This posi‐
5779 tion, called the raster position, is used to position pixel and
5780 bitmap write operations. It is maintained with subpixel accu‐
5781 racy. See gl:bitmap/7, gl:drawPixels/5, and gl:copyPixels/5.
5782
5783 External documentation.
5784
5785 readBuffer(Mode :: enum()) -> ok
5786
5787 gl:readBuffer/1 specifies a color buffer as the source for sub‐
5788 sequent gl:readPixels/7, gl:copyTexImage1D/7, gl:copyTexIm‐
5789 age2D/8, gl:copyTexSubImage1D/6, gl:copyTexSubImage2D/8, and
5790 gl:copyTexSubImage3D/9 commands. Mode accepts one of twelve or
5791 more predefined values. In a fully configured system, ?GL_FRONT,
5792 ?GL_LEFT, and ?GL_FRONT_LEFT all name the front left buffer,
5793 ?GL_FRONT_RIGHT and ?GL_RIGHT name the front right buffer, and
5794 ?GL_BACK_LEFT and ?GL_BACK name the back left buffer. Further
5795 more, the constants ?GL_COLOR_ATTACHMENTi may be used to indi‐
5796 cate the ith color attachment where i ranges from zero to the
5797 value of ?GL_MAX_COLOR_ATTACHMENTS minus one.
5798
5799 External documentation.
5800
5801 readPixels(X, Y, Width, Height, Format, Type, Pixels) -> ok
5802
5803 Types:
5804
5805 X = Y = Width = Height = i()
5806 Format = Type = enum()
5807 Pixels = mem()
5808
5809 gl:readPixels/7 and glReadnPixels return pixel data from the
5810 frame buffer, starting with the pixel whose lower left corner is
5811 at location (X, Y), into client memory starting at location
5812 Data. Several parameters control the processing of the pixel
5813 data before it is placed into client memory. These parameters
5814 are set with gl:pixelStore(). This reference page describes the
5815 effects on gl:readPixels/7 and glReadnPixels of most, but not
5816 all of the parameters specified by these three commands.
5817
5818 External documentation.
5819
5820 rectd(X1 :: f(), Y1 :: f(), X2 :: f(), Y2 :: f()) -> ok
5821
5822 rectdv(V1 :: {f(), f()}, V2 :: {f(), f()}) -> ok
5823
5824 rectf(X1 :: f(), Y1 :: f(), X2 :: f(), Y2 :: f()) -> ok
5825
5826 rectfv(V1 :: {f(), f()}, V2 :: {f(), f()}) -> ok
5827
5828 recti(X1 :: i(), Y1 :: i(), X2 :: i(), Y2 :: i()) -> ok
5829
5830 rectiv(V1 :: {i(), i()}, V2 :: {i(), i()}) -> ok
5831
5832 rects(X1 :: i(), Y1 :: i(), X2 :: i(), Y2 :: i()) -> ok
5833
5834 rectsv(V1 :: {i(), i()}, V2 :: {i(), i()}) -> ok
5835
5836 gl:rect() supports efficient specification of rectangles as two
5837 corner points. Each rectangle command takes four arguments, or‐
5838 ganized either as two consecutive pairs of (x y) coordinates or
5839 as two pointers to arrays, each containing an (x y) pair. The
5840 resulting rectangle is defined in the z=0 plane.
5841
5842 External documentation.
5843
5844 releaseShaderCompiler() -> ok
5845
5846 gl:releaseShaderCompiler/0 provides a hint to the implementation
5847 that it may free internal resources associated with its shader
5848 compiler. gl:compileShader/1 may subsequently be called and the
5849 implementation may at that time reallocate resources previously
5850 freed by the call to gl:releaseShaderCompiler/0.
5851
5852 External documentation.
5853
5854 renderMode(Mode :: enum()) -> i()
5855
5856 gl:renderMode/1 sets the rasterization mode. It takes one argu‐
5857 ment, Mode, which can assume one of three predefined values:
5858
5859 External documentation.
5860
5861 renderbufferStorage(Target :: enum(),
5862 Internalformat :: enum(),
5863 Width :: i(),
5864 Height :: i()) ->
5865 ok
5866
5867 gl:renderbufferStorage/4 is equivalent to calling gl:render‐
5868 bufferStorageMultisample/5 with the Samples set to zero, and
5869 glNamedRenderbufferStorage is equivalent to calling glNamedRen‐
5870 derbufferStorageMultisample with the samples set to zero.
5871
5872 External documentation.
5873
5874 renderbufferStorageMultisample(Target :: enum(),
5875 Samples :: i(),
5876 Internalformat :: enum(),
5877 Width :: i(),
5878 Height :: i()) ->
5879 ok
5880
5881 gl:renderbufferStorageMultisample/5 and glNamedRenderbufferStor‐
5882 ageMultisample establish the data storage, format, dimensions
5883 and number of samples of a renderbuffer object's image.
5884
5885 External documentation.
5886
5887 resetHistogram(Target :: enum()) -> ok
5888
5889 gl:resetHistogram/1 resets all the elements of the current his‐
5890 togram table to zero.
5891
5892 External documentation.
5893
5894 resetMinmax(Target :: enum()) -> ok
5895
5896 gl:resetMinmax/1 resets the elements of the current minmax table
5897 to their initial values: the ``maximum'' element receives the
5898 minimum possible component values, and the ``minimum'' element
5899 receives the maximum possible component values.
5900
5901 External documentation.
5902
5903 resumeTransformFeedback() -> ok
5904
5905 gl:resumeTransformFeedback/0 resumes transform feedback opera‐
5906 tions on the currently active transform feedback object. When
5907 transform feedback operations are paused, transform feedback is
5908 still considered active and changing most transform feedback
5909 state related to the object results in an error. However, a new
5910 transform feedback object may be bound while transform feedback
5911 is paused.
5912
5913 External documentation.
5914
5915 rotated(Angle :: f(), X :: f(), Y :: f(), Z :: f()) -> ok
5916
5917 rotatef(Angle :: f(), X :: f(), Y :: f(), Z :: f()) -> ok
5918
5919 gl:rotate() produces a rotation of Angle degrees around the vec‐
5920 tor (x y z). The current matrix (see gl:matrixMode/1) is multi‐
5921 plied by a rotation matrix with the product replacing the cur‐
5922 rent matrix, as if gl:multMatrix() were called with the follow‐
5923 ing matrix as its argument:
5924
5925 External documentation.
5926
5927 sampleCoverage(Value :: clamp(), Invert :: 0 | 1) -> ok
5928
5929 Multisampling samples a pixel multiple times at various imple‐
5930 mentation-dependent subpixel locations to generate antialiasing
5931 effects. Multisampling transparently antialiases points, lines,
5932 polygons, and images if it is enabled.
5933
5934 External documentation.
5935
5936 sampleCoverageARB(Value :: f(), Invert :: 0 | 1) -> ok
5937
5938 No documentation available.
5939
5940 sampleMaski(MaskNumber :: i(), Mask :: i()) -> ok
5941
5942 gl:sampleMaski/2 sets one 32-bit sub-word of the multi-word sam‐
5943 ple mask, ?GL_SAMPLE_MASK_VALUE.
5944
5945 External documentation.
5946
5947 samplerParameterIiv(Sampler :: i(),
5948 Pname :: enum(),
5949 Param :: [i()]) ->
5950 ok
5951
5952 samplerParameterf(Sampler :: i(), Pname :: enum(), Param :: f()) ->
5953 ok
5954
5955 samplerParameterfv(Sampler :: i(),
5956 Pname :: enum(),
5957 Param :: [f()]) ->
5958 ok
5959
5960 samplerParameteri(Sampler :: i(), Pname :: enum(), Param :: i()) ->
5961 ok
5962
5963 samplerParameteriv(Sampler :: i(),
5964 Pname :: enum(),
5965 Param :: [i()]) ->
5966 ok
5967
5968 gl:samplerParameter() assigns the value or values in Params to
5969 the sampler parameter specified as Pname. Sampler specifies the
5970 sampler object to be modified, and must be the name of a sampler
5971 object previously returned from a call to gl:genSamplers/1. The
5972 following symbols are accepted in Pname:
5973
5974 External documentation.
5975
5976 samplerParameterIuiv(Sampler :: i(),
5977 Pname :: enum(),
5978 Param :: [i()]) ->
5979 ok
5980
5981 No documentation available.
5982
5983 scaled(X :: f(), Y :: f(), Z :: f()) -> ok
5984
5985 scalef(X :: f(), Y :: f(), Z :: f()) -> ok
5986
5987 gl:scale() produces a nonuniform scaling along the x, y, and z
5988 axes. The three parameters indicate the desired scale factor
5989 along each of the three axes.
5990
5991 External documentation.
5992
5993 scissor(X :: i(), Y :: i(), Width :: i(), Height :: i()) -> ok
5994
5995 gl:scissor/4 defines a rectangle, called the scissor box, in
5996 window coordinates. The first two arguments, X and Y, specify
5997 the lower left corner of the box. Width and Height specify the
5998 width and height of the box.
5999
6000 External documentation.
6001
6002 scissorArrayv(First :: i(), V :: [{i(), i(), i(), i()}]) -> ok
6003
6004 No documentation available.
6005
6006 scissorIndexed(Index :: i(),
6007 Left :: i(),
6008 Bottom :: i(),
6009 Width :: i(),
6010 Height :: i()) ->
6011 ok
6012
6013 scissorIndexedv(Index :: i(), V :: {i(), i(), i(), i()}) -> ok
6014
6015 No documentation available.
6016
6017 secondaryColor3b(Red :: i(), Green :: i(), Blue :: i()) -> ok
6018
6019 secondaryColor3bv(X1 :: {Red :: i(), Green :: i(), Blue :: i()}) ->
6020 ok
6021
6022 secondaryColor3d(Red :: f(), Green :: f(), Blue :: f()) -> ok
6023
6024 secondaryColor3dv(X1 :: {Red :: f(), Green :: f(), Blue :: f()}) ->
6025 ok
6026
6027 secondaryColor3f(Red :: f(), Green :: f(), Blue :: f()) -> ok
6028
6029 secondaryColor3fv(X1 :: {Red :: f(), Green :: f(), Blue :: f()}) ->
6030 ok
6031
6032 secondaryColor3i(Red :: i(), Green :: i(), Blue :: i()) -> ok
6033
6034 secondaryColor3iv(X1 :: {Red :: i(), Green :: i(), Blue :: i()}) ->
6035 ok
6036
6037 secondaryColor3s(Red :: i(), Green :: i(), Blue :: i()) -> ok
6038
6039 secondaryColor3sv(X1 :: {Red :: i(), Green :: i(), Blue :: i()}) ->
6040 ok
6041
6042 secondaryColor3ub(Red :: i(), Green :: i(), Blue :: i()) -> ok
6043
6044 secondaryColor3ubv(X1 :: {Red :: i(), Green :: i(), Blue :: i()}) ->
6045 ok
6046
6047 secondaryColor3ui(Red :: i(), Green :: i(), Blue :: i()) -> ok
6048
6049 secondaryColor3uiv(X1 :: {Red :: i(), Green :: i(), Blue :: i()}) ->
6050 ok
6051
6052 secondaryColor3us(Red :: i(), Green :: i(), Blue :: i()) -> ok
6053
6054 secondaryColor3usv(X1 :: {Red :: i(), Green :: i(), Blue :: i()}) ->
6055 ok
6056
6057 The GL stores both a primary four-valued RGBA color and a sec‐
6058 ondary four-valued RGBA color (where alpha is always set to 0.0)
6059 that is associated with every vertex.
6060
6061 External documentation.
6062
6063 secondaryColorPointer(Size :: i(),
6064 Type :: enum(),
6065 Stride :: i(),
6066 Pointer :: offset() | mem()) ->
6067 ok
6068
6069 gl:secondaryColorPointer/4 specifies the location and data for‐
6070 mat of an array of color components to use when rendering. Size
6071 specifies the number of components per color, and must be 3.
6072 Type specifies the data type of each color component, and Stride
6073 specifies the byte stride from one color to the next, allowing
6074 vertices and attributes to be packed into a single array or
6075 stored in separate arrays.
6076
6077 External documentation.
6078
6079 selectBuffer(Size :: i(), Buffer :: mem()) -> ok
6080
6081 gl:selectBuffer/2 has two arguments: Buffer is a pointer to an
6082 array of unsigned integers, and Size indicates the size of the
6083 array. Buffer returns values from the name stack (see gl:init‐
6084 Names/0, gl:loadName/1, gl:pushName/1) when the rendering mode
6085 is ?GL_SELECT (see gl:renderMode/1). gl:selectBuffer/2 must be
6086 issued before selection mode is enabled, and it must not be is‐
6087 sued while the rendering mode is ?GL_SELECT.
6088
6089 External documentation.
6090
6091 separableFilter2D(Target, Internalformat, Width, Height, Format,
6092 Type, Row, Column) ->
6093 ok
6094
6095 Types:
6096
6097 Target = Internalformat = enum()
6098 Width = Height = i()
6099 Format = Type = enum()
6100 Row = Column = offset() | mem()
6101
6102 gl:separableFilter2D/8 builds a two-dimensional separable convo‐
6103 lution filter kernel from two arrays of pixels.
6104
6105 External documentation.
6106
6107 shadeModel(Mode :: enum()) -> ok
6108
6109 GL primitives can have either flat or smooth shading. Smooth
6110 shading, the default, causes the computed colors of vertices to
6111 be interpolated as the primitive is rasterized, typically as‐
6112 signing different colors to each resulting pixel fragment. Flat
6113 shading selects the computed color of just one vertex and as‐
6114 signs it to all the pixel fragments generated by rasterizing a
6115 single primitive. In either case, the computed color of a vertex
6116 is the result of lighting if lighting is enabled, or it is the
6117 current color at the time the vertex was specified if lighting
6118 is disabled.
6119
6120 External documentation.
6121
6122 shaderBinary(Shaders :: [i()],
6123 Binaryformat :: enum(),
6124 Binary :: binary()) ->
6125 ok
6126
6127 gl:shaderBinary/3 loads pre-compiled shader binary code into the
6128 Count shader objects whose handles are given in Shaders. Binary
6129 points to Length bytes of binary shader code stored in client
6130 memory. BinaryFormat specifies the format of the pre-compiled
6131 code.
6132
6133 External documentation.
6134
6135 shaderSource(Shader :: i(), String :: [unicode:chardata()]) -> ok
6136
6137 gl:shaderSource/2 sets the source code in Shader to the source
6138 code in the array of strings specified by String. Any source
6139 code previously stored in the shader object is completely re‐
6140 placed. The number of strings in the array is specified by
6141 Count. If Length is ?NULL, each string is assumed to be null
6142 terminated. If Length is a value other than ?NULL, it points to
6143 an array containing a string length for each of the correspond‐
6144 ing elements of String. Each element in the Length array may
6145 contain the length of the corresponding string (the null charac‐
6146 ter is not counted as part of the string length) or a value less
6147 than 0 to indicate that the string is null terminated. The
6148 source code strings are not scanned or parsed at this time; they
6149 are simply copied into the specified shader object.
6150
6151 External documentation.
6152
6153 shaderSourceARB(ShaderObj :: i(), String :: [unicode:chardata()]) ->
6154 ok
6155
6156 No documentation available.
6157
6158 shaderStorageBlockBinding(Program :: i(),
6159 StorageBlockIndex :: i(),
6160 StorageBlockBinding :: i()) ->
6161 ok
6162
6163 gl:shaderStorageBlockBinding/3, changes the active shader stor‐
6164 age block with an assigned index of StorageBlockIndex in program
6165 object Program. StorageBlockIndex must be an active shader stor‐
6166 age block index in Program. StorageBlockBinding must be less
6167 than the value of ?GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS. If
6168 successful, gl:shaderStorageBlockBinding/3 specifies that Pro‐
6169 gram will use the data store of the buffer object bound to the
6170 binding point StorageBlockBinding to read and write the values
6171 of the buffer variables in the shader storage block identified
6172 by StorageBlockIndex.
6173
6174 External documentation.
6175
6176 stencilFunc(Func :: enum(), Ref :: i(), Mask :: i()) -> ok
6177
6178 Stenciling, like depth-buffering, enables and disables drawing
6179 on a per-pixel basis. Stencil planes are first drawn into using
6180 GL drawing primitives, then geometry and images are rendered us‐
6181 ing the stencil planes to mask out portions of the screen. Sten‐
6182 ciling is typically used in multipass rendering algorithms to
6183 achieve special effects, such as decals, outlining, and con‐
6184 structive solid geometry rendering.
6185
6186 External documentation.
6187
6188 stencilFuncSeparate(Face :: enum(),
6189 Func :: enum(),
6190 Ref :: i(),
6191 Mask :: i()) ->
6192 ok
6193
6194 Stenciling, like depth-buffering, enables and disables drawing
6195 on a per-pixel basis. You draw into the stencil planes using GL
6196 drawing primitives, then render geometry and images, using the
6197 stencil planes to mask out portions of the screen. Stenciling is
6198 typically used in multipass rendering algorithms to achieve spe‐
6199 cial effects, such as decals, outlining, and constructive solid
6200 geometry rendering.
6201
6202 External documentation.
6203
6204 stencilMask(Mask :: i()) -> ok
6205
6206 gl:stencilMask/1 controls the writing of individual bits in the
6207 stencil planes. The least significant n bits of Mask, where n is
6208 the number of bits in the stencil buffer, specify a mask. Where
6209 a 1 appears in the mask, it's possible to write to the corre‐
6210 sponding bit in the stencil buffer. Where a 0 appears, the cor‐
6211 responding bit is write-protected. Initially, all bits are en‐
6212 abled for writing.
6213
6214 External documentation.
6215
6216 stencilMaskSeparate(Face :: enum(), Mask :: i()) -> ok
6217
6218 gl:stencilMaskSeparate/2 controls the writing of individual bits
6219 in the stencil planes. The least significant n bits of Mask,
6220 where n is the number of bits in the stencil buffer, specify a
6221 mask. Where a 1 appears in the mask, it's possible to write to
6222 the corresponding bit in the stencil buffer. Where a 0 appears,
6223 the corresponding bit is write-protected. Initially, all bits
6224 are enabled for writing.
6225
6226 External documentation.
6227
6228 stencilOp(Fail :: enum(), Zfail :: enum(), Zpass :: enum()) -> ok
6229
6230 Stenciling, like depth-buffering, enables and disables drawing
6231 on a per-pixel basis. You draw into the stencil planes using GL
6232 drawing primitives, then render geometry and images, using the
6233 stencil planes to mask out portions of the screen. Stenciling is
6234 typically used in multipass rendering algorithms to achieve spe‐
6235 cial effects, such as decals, outlining, and constructive solid
6236 geometry rendering.
6237
6238 External documentation.
6239
6240 stencilOpSeparate(Face :: enum(),
6241 Sfail :: enum(),
6242 Dpfail :: enum(),
6243 Dppass :: enum()) ->
6244 ok
6245
6246 Stenciling, like depth-buffering, enables and disables drawing
6247 on a per-pixel basis. You draw into the stencil planes using GL
6248 drawing primitives, then render geometry and images, using the
6249 stencil planes to mask out portions of the screen. Stenciling is
6250 typically used in multipass rendering algorithms to achieve spe‐
6251 cial effects, such as decals, outlining, and constructive solid
6252 geometry rendering.
6253
6254 External documentation.
6255
6256 texBuffer(Target :: enum(),
6257 Internalformat :: enum(),
6258 Buffer :: i()) ->
6259 ok
6260
6261 gl:texBuffer/3 and gl:textureBuffer/3 attaches the data store of
6262 a specified buffer object to a specified texture object, and
6263 specify the storage format for the texture image found in the
6264 buffer object. The texture object must be a buffer texture.
6265
6266 External documentation.
6267
6268 texBufferRange(Target :: enum(),
6269 Internalformat :: enum(),
6270 Buffer :: i(),
6271 Offset :: i(),
6272 Size :: i()) ->
6273 ok
6274
6275 gl:texBufferRange/5 and gl:textureBufferRange/5 attach a range
6276 of the data store of a specified buffer object to a specified
6277 texture object, and specify the storage format for the texture
6278 image found in the buffer object. The texture object must be a
6279 buffer texture.
6280
6281 External documentation.
6282
6283 texCoord1d(S :: f()) -> ok
6284
6285 texCoord1dv(X1 :: {S :: f()}) -> ok
6286
6287 texCoord1f(S :: f()) -> ok
6288
6289 texCoord1fv(X1 :: {S :: f()}) -> ok
6290
6291 texCoord1i(S :: i()) -> ok
6292
6293 texCoord1iv(X1 :: {S :: i()}) -> ok
6294
6295 texCoord1s(S :: i()) -> ok
6296
6297 texCoord1sv(X1 :: {S :: i()}) -> ok
6298
6299 texCoord2d(S :: f(), T :: f()) -> ok
6300
6301 texCoord2dv(X1 :: {S :: f(), T :: f()}) -> ok
6302
6303 texCoord2f(S :: f(), T :: f()) -> ok
6304
6305 texCoord2fv(X1 :: {S :: f(), T :: f()}) -> ok
6306
6307 texCoord2i(S :: i(), T :: i()) -> ok
6308
6309 texCoord2iv(X1 :: {S :: i(), T :: i()}) -> ok
6310
6311 texCoord2s(S :: i(), T :: i()) -> ok
6312
6313 texCoord2sv(X1 :: {S :: i(), T :: i()}) -> ok
6314
6315 texCoord3d(S :: f(), T :: f(), R :: f()) -> ok
6316
6317 texCoord3dv(X1 :: {S :: f(), T :: f(), R :: f()}) -> ok
6318
6319 texCoord3f(S :: f(), T :: f(), R :: f()) -> ok
6320
6321 texCoord3fv(X1 :: {S :: f(), T :: f(), R :: f()}) -> ok
6322
6323 texCoord3i(S :: i(), T :: i(), R :: i()) -> ok
6324
6325 texCoord3iv(X1 :: {S :: i(), T :: i(), R :: i()}) -> ok
6326
6327 texCoord3s(S :: i(), T :: i(), R :: i()) -> ok
6328
6329 texCoord3sv(X1 :: {S :: i(), T :: i(), R :: i()}) -> ok
6330
6331 texCoord4d(S :: f(), T :: f(), R :: f(), Q :: f()) -> ok
6332
6333 texCoord4dv(X1 :: {S :: f(), T :: f(), R :: f(), Q :: f()}) -> ok
6334
6335 texCoord4f(S :: f(), T :: f(), R :: f(), Q :: f()) -> ok
6336
6337 texCoord4fv(X1 :: {S :: f(), T :: f(), R :: f(), Q :: f()}) -> ok
6338
6339 texCoord4i(S :: i(), T :: i(), R :: i(), Q :: i()) -> ok
6340
6341 texCoord4iv(X1 :: {S :: i(), T :: i(), R :: i(), Q :: i()}) -> ok
6342
6343 texCoord4s(S :: i(), T :: i(), R :: i(), Q :: i()) -> ok
6344
6345 texCoord4sv(X1 :: {S :: i(), T :: i(), R :: i(), Q :: i()}) -> ok
6346
6347 gl:texCoord() specifies texture coordinates in one, two, three,
6348 or four dimensions. gl:texCoord1() sets the current texture co‐
6349 ordinates to (s 0 0 1); a call to gl:texCoord2() sets them to (s
6350 t 0 1). Similarly, gl:texCoord3() specifies the texture coordi‐
6351 nates as (s t r 1), and gl:texCoord4() defines all four compo‐
6352 nents explicitly as (s t r q).
6353
6354 External documentation.
6355
6356 texCoordPointer(Size :: i(),
6357 Type :: enum(),
6358 Stride :: i(),
6359 Ptr :: offset() | mem()) ->
6360 ok
6361
6362 gl:texCoordPointer/4 specifies the location and data format of
6363 an array of texture coordinates to use when rendering. Size
6364 specifies the number of coordinates per texture coordinate set,
6365 and must be 1, 2, 3, or 4. Type specifies the data type of each
6366 texture coordinate, and Stride specifies the byte stride from
6367 one texture coordinate set to the next, allowing vertices and
6368 attributes to be packed into a single array or stored in sepa‐
6369 rate arrays. (Single-array storage may be more efficient on some
6370 implementations; see gl:interleavedArrays/3.)
6371
6372 External documentation.
6373
6374 texEnvfv(Target :: enum(), Pname :: enum(), Params :: tuple()) ->
6375 ok
6376
6377 texEnviv(Target :: enum(), Pname :: enum(), Params :: tuple()) ->
6378 ok
6379
6380 A texture environment specifies how texture values are inter‐
6381 preted when a fragment is textured. When Target is ?GL_TEX‐
6382 TURE_FILTER_CONTROL, Pname must be ?GL_TEXTURE_LOD_BIAS. When
6383 Target is ?GL_TEXTURE_ENV, Pname can be ?GL_TEXTURE_ENV_MODE,
6384 ?GL_TEXTURE_ENV_COLOR, ?GL_COMBINE_RGB, ?GL_COMBINE_ALPHA,
6385 ?GL_RGB_SCALE, ?GL_ALPHA_SCALE, ?GL_SRC0_RGB, ?GL_SRC1_RGB,
6386 ?GL_SRC2_RGB, ?GL_SRC0_ALPHA, ?GL_SRC1_ALPHA, or ?GL_SRC2_ALPHA.
6387
6388 External documentation.
6389
6390 texEnvf(Target :: enum(), Pname :: enum(), Param :: f()) -> ok
6391
6392 No documentation available.
6393
6394 texEnvi(Target :: enum(), Pname :: enum(), Param :: i()) -> ok
6395
6396 No documentation available.
6397
6398 texGend(Coord :: enum(), Pname :: enum(), Param :: f()) -> ok
6399
6400 texGendv(Coord :: enum(), Pname :: enum(), Params :: tuple()) ->
6401 ok
6402
6403 texGenf(Coord :: enum(), Pname :: enum(), Param :: f()) -> ok
6404
6405 texGenfv(Coord :: enum(), Pname :: enum(), Params :: tuple()) ->
6406 ok
6407
6408 texGeni(Coord :: enum(), Pname :: enum(), Param :: i()) -> ok
6409
6410 texGeniv(Coord :: enum(), Pname :: enum(), Params :: tuple()) ->
6411 ok
6412
6413 gl:texGen() selects a texture-coordinate generation function or
6414 supplies coefficients for one of the functions. Coord names one
6415 of the (s, t, r, q) texture coordinates; it must be one of the
6416 symbols ?GL_S, ?GL_T, ?GL_R, or ?GL_Q. Pname must be one of
6417 three symbolic constants: ?GL_TEXTURE_GEN_MODE, ?GL_OB‐
6418 JECT_PLANE, or ?GL_EYE_PLANE. If Pname is ?GL_TEXTURE_GEN_MODE,
6419 then Params chooses a mode, one of ?GL_OBJECT_LINEAR,
6420 ?GL_EYE_LINEAR, ?GL_SPHERE_MAP, ?GL_NORMAL_MAP, or ?GL_REFLEC‐
6421 TION_MAP. If Pname is either ?GL_OBJECT_PLANE or ?GL_EYE_PLANE,
6422 Params contains coefficients for the corresponding texture gen‐
6423 eration function.
6424
6425 External documentation.
6426
6427 texImage1D(Target, Level, InternalFormat, Width, Border, Format,
6428 Type, Pixels) ->
6429 ok
6430
6431 Types:
6432
6433 Target = enum()
6434 Level = InternalFormat = Width = Border = i()
6435 Format = Type = enum()
6436 Pixels = offset() | mem()
6437
6438 Texturing maps a portion of a specified texture image onto each
6439 graphical primitive for which texturing is enabled. To enable
6440 and disable one-dimensional texturing, call gl:enable/1 and
6441 gl:disable/1 with argument ?GL_TEXTURE_1D.
6442
6443 External documentation.
6444
6445 texImage2D(Target, Level, InternalFormat, Width, Height, Border,
6446 Format, Type, Pixels) ->
6447 ok
6448
6449 Types:
6450
6451 Target = enum()
6452 Level = InternalFormat = Width = Height = Border = i()
6453 Format = Type = enum()
6454 Pixels = offset() | mem()
6455
6456 Texturing allows elements of an image array to be read by
6457 shaders.
6458
6459 External documentation.
6460
6461 texImage2DMultisample(Target, Samples, Internalformat, Width,
6462 Height, Fixedsamplelocations) ->
6463 ok
6464
6465 Types:
6466
6467 Target = enum()
6468 Samples = i()
6469 Internalformat = enum()
6470 Width = Height = i()
6471 Fixedsamplelocations = 0 | 1
6472
6473 gl:texImage2DMultisample/6 establishes the data storage, format,
6474 dimensions and number of samples of a multisample texture's im‐
6475 age.
6476
6477 External documentation.
6478
6479 texImage3D(Target, Level, InternalFormat, Width, Height, Depth,
6480 Border, Format, Type, Pixels) ->
6481 ok
6482
6483 Types:
6484
6485 Target = enum()
6486 Level = InternalFormat = Width = Height = Depth = Border =
6487 i()
6488 Format = Type = enum()
6489 Pixels = offset() | mem()
6490
6491 Texturing maps a portion of a specified texture image onto each
6492 graphical primitive for which texturing is enabled. To enable
6493 and disable three-dimensional texturing, call gl:enable/1 and
6494 gl:disable/1 with argument ?GL_TEXTURE_3D.
6495
6496 External documentation.
6497
6498 texImage3DMultisample(Target, Samples, Internalformat, Width,
6499 Height, Depth, Fixedsamplelocations) ->
6500 ok
6501
6502 Types:
6503
6504 Target = enum()
6505 Samples = i()
6506 Internalformat = enum()
6507 Width = Height = Depth = i()
6508 Fixedsamplelocations = 0 | 1
6509
6510 gl:texImage3DMultisample/7 establishes the data storage, format,
6511 dimensions and number of samples of a multisample texture's im‐
6512 age.
6513
6514 External documentation.
6515
6516 texPageCommitmentARB(Target, Level, Xoffset, Yoffset, Zoffset,
6517 Width, Height, Depth, Commit) ->
6518 ok
6519
6520 Types:
6521
6522 Target = enum()
6523 Level = Xoffset = Yoffset = Zoffset = Width = Height = Depth
6524 = i()
6525 Commit = 0 | 1
6526
6527 No documentation available.
6528
6529 texParameterIiv(Target :: enum(),
6530 Pname :: enum(),
6531 Params :: tuple()) ->
6532 ok
6533
6534 texParameterf(Target :: enum(), Pname :: enum(), Param :: f()) ->
6535 ok
6536
6537 texParameterfv(Target :: enum(),
6538 Pname :: enum(),
6539 Params :: tuple()) ->
6540 ok
6541
6542 texParameteri(Target :: enum(), Pname :: enum(), Param :: i()) ->
6543 ok
6544
6545 texParameteriv(Target :: enum(),
6546 Pname :: enum(),
6547 Params :: tuple()) ->
6548 ok
6549
6550 gl:texParameter() and glTextureParameter assign the value or
6551 values in Params to the texture parameter specified as Pname.
6552 For gl:texParameter(), Target defines the target texture, either
6553 ?GL_TEXTURE_1D, ?GL_TEXTURE_1D_ARRAY, ?GL_TEXTURE_2D, ?GL_TEX‐
6554 TURE_2D_ARRAY, ?GL_TEXTURE_2D_MULTISAMPLE, ?GL_TEXTURE_2D_MULTI‐
6555 SAMPLE_ARRAY, ?GL_TEXTURE_3D, ?GL_TEXTURE_CUBE_MAP, ?GL_TEX‐
6556 TURE_CUBE_MAP_ARRAY, or ?GL_TEXTURE_RECTANGLE. The following
6557 symbols are accepted in Pname:
6558
6559 External documentation.
6560
6561 texParameterIuiv(Target :: enum(),
6562 Pname :: enum(),
6563 Params :: tuple()) ->
6564 ok
6565
6566 No documentation available.
6567
6568 texStorage1D(Target :: enum(),
6569 Levels :: i(),
6570 Internalformat :: enum(),
6571 Width :: i()) ->
6572 ok
6573
6574 gl:texStorage1D/4 and glTextureStorage1D specify the storage re‐
6575 quirements for all levels of a one-dimensional texture simulta‐
6576 neously. Once a texture is specified with this command, the for‐
6577 mat and dimensions of all levels become immutable unless it is a
6578 proxy texture. The contents of the image may still be modified,
6579 however, its storage requirements may not change. Such a texture
6580 is referred to as an immutable-format texture.
6581
6582 External documentation.
6583
6584 texStorage2D(Target :: enum(),
6585 Levels :: i(),
6586 Internalformat :: enum(),
6587 Width :: i(),
6588 Height :: i()) ->
6589 ok
6590
6591 gl:texStorage2D/5 and glTextureStorage2D specify the storage re‐
6592 quirements for all levels of a two-dimensional texture or one-
6593 dimensional texture array simultaneously. Once a texture is
6594 specified with this command, the format and dimensions of all
6595 levels become immutable unless it is a proxy texture. The con‐
6596 tents of the image may still be modified, however, its storage
6597 requirements may not change. Such a texture is referred to as an
6598 immutable-format texture.
6599
6600 External documentation.
6601
6602 texStorage2DMultisample(Target, Samples, Internalformat, Width,
6603 Height, Fixedsamplelocations) ->
6604 ok
6605
6606 Types:
6607
6608 Target = enum()
6609 Samples = i()
6610 Internalformat = enum()
6611 Width = Height = i()
6612 Fixedsamplelocations = 0 | 1
6613
6614 gl:texStorage2DMultisample/6 and glTextureStorage2DMultisample
6615 specify the storage requirements for a two-dimensional multisam‐
6616 ple texture. Once a texture is specified with this command, its
6617 format and dimensions become immutable unless it is a proxy tex‐
6618 ture. The contents of the image may still be modified, however,
6619 its storage requirements may not change. Such a texture is re‐
6620 ferred to as an immutable-format texture.
6621
6622 External documentation.
6623
6624 texStorage3D(Target, Levels, Internalformat, Width, Height, Depth) ->
6625 ok
6626
6627 Types:
6628
6629 Target = enum()
6630 Levels = i()
6631 Internalformat = enum()
6632 Width = Height = Depth = i()
6633
6634 gl:texStorage3D/6 and glTextureStorage3D specify the storage re‐
6635 quirements for all levels of a three-dimensional, two-dimen‐
6636 sional array or cube-map array texture simultaneously. Once a
6637 texture is specified with this command, the format and dimen‐
6638 sions of all levels become immutable unless it is a proxy tex‐
6639 ture. The contents of the image may still be modified, however,
6640 its storage requirements may not change. Such a texture is re‐
6641 ferred to as an immutable-format texture.
6642
6643 External documentation.
6644
6645 texStorage3DMultisample(Target, Samples, Internalformat, Width,
6646 Height, Depth, Fixedsamplelocations) ->
6647 ok
6648
6649 Types:
6650
6651 Target = enum()
6652 Samples = i()
6653 Internalformat = enum()
6654 Width = Height = Depth = i()
6655 Fixedsamplelocations = 0 | 1
6656
6657 gl:texStorage3DMultisample/7 and glTextureStorage3DMultisample
6658 specify the storage requirements for a two-dimensional multisam‐
6659 ple array texture. Once a texture is specified with this com‐
6660 mand, its format and dimensions become immutable unless it is a
6661 proxy texture. The contents of the image may still be modified,
6662 however, its storage requirements may not change. Such a texture
6663 is referred to as an immutable-format texture.
6664
6665 External documentation.
6666
6667 texSubImage1D(Target, Level, Xoffset, Width, Format, Type, Pixels) ->
6668 ok
6669
6670 texSubImage2D(Target, Level, Xoffset, Yoffset, Width, Height,
6671 Format, Type, Pixels) ->
6672 ok
6673
6674 texSubImage3D(Target, Level, Xoffset, Yoffset, Zoffset, Width,
6675 Height, Depth, Format, Type, Pixels) ->
6676 ok
6677
6678 Types:
6679
6680 Target = enum()
6681 Level = Xoffset = Yoffset = Zoffset = Width = Height = Depth
6682 = i()
6683 Format = Type = enum()
6684 Pixels = offset() | mem()
6685
6686 No documentation available.
6687
6688 textureBarrier() -> ok
6689
6690 The values of rendered fragments are undefined when a shader
6691 stage fetches texels and the same texels are written via frag‐
6692 ment shader outputs, even if the reads and writes are not in the
6693 same drawing command. To safely read the result of a written
6694 texel via a texel fetch in a subsequent drawing command, call
6695 gl:textureBarrier/0 between the two drawing commands to guaran‐
6696 tee that writes have completed and caches have been invalidated
6697 before subsequent drawing commands are executed.
6698
6699 External documentation.
6700
6701 textureBuffer(Texture :: i(),
6702 Internalformat :: enum(),
6703 Buffer :: i()) ->
6704 ok
6705
6706 No documentation available.
6707
6708 textureBufferRange(Texture :: i(),
6709 Internalformat :: enum(),
6710 Buffer :: i(),
6711 Offset :: i(),
6712 Size :: i()) ->
6713 ok
6714
6715 No documentation available.
6716
6717 textureView(Texture, Target, Origtexture, Internalformat,
6718 Minlevel, Numlevels, Minlayer, Numlayers) ->
6719 ok
6720
6721 Types:
6722
6723 Texture = i()
6724 Target = enum()
6725 Origtexture = i()
6726 Internalformat = enum()
6727 Minlevel = Numlevels = Minlayer = Numlayers = i()
6728
6729 gl:textureView/8 initializes a texture object as an alias, or
6730 view of another texture object, sharing some or all of the par‐
6731 ent texture's data store with the initialized texture. Texture
6732 specifies a name previously reserved by a successful call to
6733 gl:genTextures/1 but that has not yet been bound or given a tar‐
6734 get. Target specifies the target for the newly initialized tex‐
6735 ture and must be compatible with the target of the parent tex‐
6736 ture, given in Origtexture as specified in the following table:
6737
6738 External documentation.
6739
6740 transformFeedbackBufferBase(Xfb :: i(),
6741 Index :: i(),
6742 Buffer :: i()) ->
6743 ok
6744
6745 gl:transformFeedbackBufferBase/3 binds the buffer object Buffer
6746 to the binding point at index Index of the transform feedback
6747 object Xfb.
6748
6749 External documentation.
6750
6751 transformFeedbackBufferRange(Xfb :: i(),
6752 Index :: i(),
6753 Buffer :: i(),
6754 Offset :: i(),
6755 Size :: i()) ->
6756 ok
6757
6758 gl:transformFeedbackBufferRange/5 binds a range of the buffer
6759 object Buffer represented by Offset and Size to the binding
6760 point at index Index of the transform feedback object Xfb.
6761
6762 External documentation.
6763
6764 transformFeedbackVaryings(Program :: i(),
6765 Varyings :: [unicode:chardata()],
6766 BufferMode :: enum()) ->
6767 ok
6768
6769 The names of the vertex or geometry shader outputs to be
6770 recorded in transform feedback mode are specified using
6771 gl:transformFeedbackVaryings/3. When a geometry shader is ac‐
6772 tive, transform feedback records the values of selected geometry
6773 shader output variables from the emitted vertices. Otherwise,
6774 the values of the selected vertex shader outputs are recorded.
6775
6776 External documentation.
6777
6778 translated(X :: f(), Y :: f(), Z :: f()) -> ok
6779
6780 translatef(X :: f(), Y :: f(), Z :: f()) -> ok
6781
6782 gl:translate() produces a translation by (x y z). The current
6783 matrix (see gl:matrixMode/1) is multiplied by this translation
6784 matrix, with the product replacing the current matrix, as if
6785 gl:multMatrix() were called with the following matrix for its
6786 argument:
6787
6788 External documentation.
6789
6790 uniform1d(Location :: i(), X :: f()) -> ok
6791
6792 uniform1dv(Location :: i(), Value :: [f()]) -> ok
6793
6794 uniform1f(Location :: i(), V0 :: f()) -> ok
6795
6796 uniform1fv(Location :: i(), Value :: [f()]) -> ok
6797
6798 uniform1i(Location :: i(), V0 :: i()) -> ok
6799
6800 uniform1iv(Location :: i(), Value :: [i()]) -> ok
6801
6802 uniform1ui(Location :: i(), V0 :: i()) -> ok
6803
6804 uniform1uiv(Location :: i(), Value :: [i()]) -> ok
6805
6806 uniform2d(Location :: i(), X :: f(), Y :: f()) -> ok
6807
6808 uniform2dv(Location :: i(), Value :: [{f(), f()}]) -> ok
6809
6810 uniform2f(Location :: i(), V0 :: f(), V1 :: f()) -> ok
6811
6812 uniform2fv(Location :: i(), Value :: [{f(), f()}]) -> ok
6813
6814 uniform2i(Location :: i(), V0 :: i(), V1 :: i()) -> ok
6815
6816 uniform2iv(Location :: i(), Value :: [{i(), i()}]) -> ok
6817
6818 uniform2ui(Location :: i(), V0 :: i(), V1 :: i()) -> ok
6819
6820 uniform2uiv(Location :: i(), Value :: [{i(), i()}]) -> ok
6821
6822 uniform3d(Location :: i(), X :: f(), Y :: f(), Z :: f()) -> ok
6823
6824 uniform3dv(Location :: i(), Value :: [{f(), f(), f()}]) -> ok
6825
6826 uniform3f(Location :: i(), V0 :: f(), V1 :: f(), V2 :: f()) -> ok
6827
6828 uniform3fv(Location :: i(), Value :: [{f(), f(), f()}]) -> ok
6829
6830 uniform3i(Location :: i(), V0 :: i(), V1 :: i(), V2 :: i()) -> ok
6831
6832 uniform3iv(Location :: i(), Value :: [{i(), i(), i()}]) -> ok
6833
6834 uniform3ui(Location :: i(), V0 :: i(), V1 :: i(), V2 :: i()) -> ok
6835
6836 uniform3uiv(Location :: i(), Value :: [{i(), i(), i()}]) -> ok
6837
6838 uniform4d(Location :: i(), X :: f(), Y :: f(), Z :: f(), W :: f()) ->
6839 ok
6840
6841 uniform4dv(Location :: i(), Value :: [{f(), f(), f(), f()}]) -> ok
6842
6843 uniform4f(Location :: i(),
6844 V0 :: f(),
6845 V1 :: f(),
6846 V2 :: f(),
6847 V3 :: f()) ->
6848 ok
6849
6850 uniform4fv(Location :: i(), Value :: [{f(), f(), f(), f()}]) -> ok
6851
6852 uniform4i(Location :: i(),
6853 V0 :: i(),
6854 V1 :: i(),
6855 V2 :: i(),
6856 V3 :: i()) ->
6857 ok
6858
6859 uniform4iv(Location :: i(), Value :: [{i(), i(), i(), i()}]) -> ok
6860
6861 uniform4ui(Location :: i(),
6862 V0 :: i(),
6863 V1 :: i(),
6864 V2 :: i(),
6865 V3 :: i()) ->
6866 ok
6867
6868 uniform4uiv(Location :: i(), Value :: [{i(), i(), i(), i()}]) ->
6869 ok
6870
6871 uniformMatrix2dv(Location :: i(),
6872 Transpose :: 0 | 1,
6873 Value :: [{f(), f(), f(), f()}]) ->
6874 ok
6875
6876 uniformMatrix2fv(Location :: i(),
6877 Transpose :: 0 | 1,
6878 Value :: [{f(), f(), f(), f()}]) ->
6879 ok
6880
6881 uniformMatrix2x3dv(Location :: i(),
6882 Transpose :: 0 | 1,
6883 Value :: [{f(), f(), f(), f(), f(), f()}]) ->
6884 ok
6885
6886 uniformMatrix2x3fv(Location :: i(),
6887 Transpose :: 0 | 1,
6888 Value :: [{f(), f(), f(), f(), f(), f()}]) ->
6889 ok
6890
6891 uniformMatrix2x4dv(Location :: i(),
6892 Transpose :: 0 | 1,
6893 Value ::
6894 [{f(), f(), f(), f(), f(), f(), f(), f()}]) ->
6895 ok
6896
6897 uniformMatrix2x4fv(Location :: i(),
6898 Transpose :: 0 | 1,
6899 Value ::
6900 [{f(), f(), f(), f(), f(), f(), f(), f()}]) ->
6901 ok
6902
6903 uniformMatrix3dv(Location :: i(),
6904 Transpose :: 0 | 1,
6905 Value ::
6906 [{f(),
6907 f(),
6908 f(),
6909 f(),
6910 f(),
6911 f(),
6912 f(),
6913 f(),
6914 f()}]) ->
6915 ok
6916
6917 uniformMatrix3fv(Location :: i(),
6918 Transpose :: 0 | 1,
6919 Value ::
6920 [{f(),
6921 f(),
6922 f(),
6923 f(),
6924 f(),
6925 f(),
6926 f(),
6927 f(),
6928 f()}]) ->
6929 ok
6930
6931 uniformMatrix3x2dv(Location :: i(),
6932 Transpose :: 0 | 1,
6933 Value :: [{f(), f(), f(), f(), f(), f()}]) ->
6934 ok
6935
6936 uniformMatrix3x2fv(Location :: i(),
6937 Transpose :: 0 | 1,
6938 Value :: [{f(), f(), f(), f(), f(), f()}]) ->
6939 ok
6940
6941 uniformMatrix3x4dv(Location, Transpose, Value) -> ok
6942
6943 uniformMatrix3x4fv(Location, Transpose, Value) -> ok
6944
6945 uniformMatrix4dv(Location, Transpose, Value) -> ok
6946
6947 uniformMatrix4fv(Location, Transpose, Value) -> ok
6948
6949 uniformMatrix4x2dv(Location :: i(),
6950 Transpose :: 0 | 1,
6951 Value ::
6952 [{f(), f(), f(), f(), f(), f(), f(), f()}]) ->
6953 ok
6954
6955 uniformMatrix4x2fv(Location :: i(),
6956 Transpose :: 0 | 1,
6957 Value ::
6958 [{f(), f(), f(), f(), f(), f(), f(), f()}]) ->
6959 ok
6960
6961 uniformMatrix4x3dv(Location, Transpose, Value) -> ok
6962
6963 uniformMatrix4x3fv(Location, Transpose, Value) -> ok
6964
6965 Types:
6966
6967 Location = i()
6968 Transpose = 0 | 1
6969 Value =
6970 [{f(), f(), f(), f(), f(), f(), f(), f(), f(), f(), f(),
6971 f()}]
6972
6973 gl:uniform() modifies the value of a uniform variable or a uni‐
6974 form variable array. The location of the uniform variable to be
6975 modified is specified by Location, which should be a value re‐
6976 turned by gl:getUniformLocation/2. gl:uniform() operates on the
6977 program object that was made part of current state by calling
6978 gl:useProgram/1.
6979
6980 External documentation.
6981
6982 uniform1i64vARB(Location :: i(), Value :: [i()]) -> ok
6983
6984 No documentation available.
6985
6986 uniform1i64ARB(Location :: i(), X :: i()) -> ok
6987
6988 No documentation available.
6989
6990 uniform1ui64vARB(Location :: i(), Value :: [i()]) -> ok
6991
6992 No documentation available.
6993
6994 uniform1ui64ARB(Location :: i(), X :: i()) -> ok
6995
6996 No documentation available.
6997
6998 uniform2i64vARB(Location :: i(), Value :: [{i(), i()}]) -> ok
6999
7000 No documentation available.
7001
7002 uniform2i64ARB(Location :: i(), X :: i(), Y :: i()) -> ok
7003
7004 No documentation available.
7005
7006 uniform2ui64vARB(Location :: i(), Value :: [{i(), i()}]) -> ok
7007
7008 No documentation available.
7009
7010 uniform2ui64ARB(Location :: i(), X :: i(), Y :: i()) -> ok
7011
7012 No documentation available.
7013
7014 uniform3i64vARB(Location :: i(), Value :: [{i(), i(), i()}]) -> ok
7015
7016 No documentation available.
7017
7018 uniform3i64ARB(Location :: i(), X :: i(), Y :: i(), Z :: i()) ->
7019 ok
7020
7021 No documentation available.
7022
7023 uniform3ui64vARB(Location :: i(), Value :: [{i(), i(), i()}]) ->
7024 ok
7025
7026 No documentation available.
7027
7028 uniform3ui64ARB(Location :: i(), X :: i(), Y :: i(), Z :: i()) ->
7029 ok
7030
7031 No documentation available.
7032
7033 uniform4i64vARB(Location :: i(), Value :: [{i(), i(), i(), i()}]) ->
7034 ok
7035
7036 No documentation available.
7037
7038 uniform4i64ARB(Location :: i(),
7039 X :: i(),
7040 Y :: i(),
7041 Z :: i(),
7042 W :: i()) ->
7043 ok
7044
7045 No documentation available.
7046
7047 uniform4ui64vARB(Location :: i(), Value :: [{i(), i(), i(), i()}]) ->
7048 ok
7049
7050 No documentation available.
7051
7052 uniform4ui64ARB(Location :: i(),
7053 X :: i(),
7054 Y :: i(),
7055 Z :: i(),
7056 W :: i()) ->
7057 ok
7058
7059 No documentation available.
7060
7061 uniformBlockBinding(Program :: i(),
7062 UniformBlockIndex :: i(),
7063 UniformBlockBinding :: i()) ->
7064 ok
7065
7066 Binding points for active uniform blocks are assigned using
7067 gl:uniformBlockBinding/3. Each of a program's active uniform
7068 blocks has a corresponding uniform buffer binding point. Program
7069 is the name of a program object for which the command
7070 gl:linkProgram/1 has been issued in the past.
7071
7072 External documentation.
7073
7074 uniformHandleui64ARB(Location :: i(), Value :: i()) -> ok
7075
7076 No documentation available.
7077
7078 uniformSubroutinesuiv(Shadertype :: enum(), Indices :: [i()]) ->
7079 ok
7080
7081 gl:uniformSubroutines() loads all active subroutine uniforms for
7082 shader stage Shadertype of the current program with subroutine
7083 indices from Indices, storing Indices[i] into the uniform at lo‐
7084 cation I. Count must be equal to the value of ?GL_ACTIVE_SUBROU‐
7085 TINE_UNIFORM_LOCATIONS for the program currently in use at
7086 shader stage Shadertype. Furthermore, all values in Indices must
7087 be less than the value of ?GL_ACTIVE_SUBROUTINES for the shader
7088 stage.
7089
7090 External documentation.
7091
7092 useProgram(Program :: i()) -> ok
7093
7094 gl:useProgram/1 installs the program object specified by Program
7095 as part of current rendering state. One or more executables are
7096 created in a program object by successfully attaching shader ob‐
7097 jects to it with gl:attachShader/2, successfully compiling the
7098 shader objects with gl:compileShader/1, and successfully linking
7099 the program object with gl:linkProgram/1.
7100
7101 External documentation.
7102
7103 useProgramObjectARB(ProgramObj :: i()) -> ok
7104
7105 No documentation available.
7106
7107 useProgramStages(Pipeline :: i(), Stages :: i(), Program :: i()) ->
7108 ok
7109
7110 gl:useProgramStages/3 binds executables from a program object
7111 associated with a specified set of shader stages to the program
7112 pipeline object given by Pipeline. Pipeline specifies the pro‐
7113 gram pipeline object to which to bind the executables. Stages
7114 contains a logical combination of bits indicating the shader
7115 stages to use within Program with the program pipeline object
7116 Pipeline. Stages must be a logical combination of ?GL_VER‐
7117 TEX_SHADER_BIT, ?GL_TESS_CONTROL_SHADER_BIT, ?GL_TESS_EVALUA‐
7118 TION_SHADER_BIT, ?GL_GEOMETRY_SHADER_BIT, ?GL_FRAG‐
7119 MENT_SHADER_BIT and ?GL_COMPUTE_SHADER_BIT. Additionally, the
7120 special value ?GL_ALL_SHADER_BITS may be specified to indicate
7121 that all executables contained in Program should be installed in
7122 Pipeline.
7123
7124 External documentation.
7125
7126 validateProgram(Program :: i()) -> ok
7127
7128 gl:validateProgram/1 checks to see whether the executables con‐
7129 tained in Program can execute given the current OpenGL state.
7130 The information generated by the validation process will be
7131 stored in Program's information log. The validation information
7132 may consist of an empty string, or it may be a string containing
7133 information about how the current program object interacts with
7134 the rest of current OpenGL state. This provides a way for OpenGL
7135 implementers to convey more information about why the current
7136 program is inefficient, suboptimal, failing to execute, and so
7137 on.
7138
7139 External documentation.
7140
7141 validateProgramARB(ProgramObj :: i()) -> ok
7142
7143 No documentation available.
7144
7145 validateProgramPipeline(Pipeline :: i()) -> ok
7146
7147 gl:validateProgramPipeline/1 instructs the implementation to
7148 validate the shader executables contained in Pipeline against
7149 the current GL state. The implementation may use this as an op‐
7150 portunity to perform any internal shader modifications that may
7151 be required to ensure correct operation of the installed shaders
7152 given the current GL state.
7153
7154 External documentation.
7155
7156 vertex2d(X :: f(), Y :: f()) -> ok
7157
7158 vertex2dv(X1 :: {X :: f(), Y :: f()}) -> ok
7159
7160 vertex2f(X :: f(), Y :: f()) -> ok
7161
7162 vertex2fv(X1 :: {X :: f(), Y :: f()}) -> ok
7163
7164 vertex2i(X :: i(), Y :: i()) -> ok
7165
7166 vertex2iv(X1 :: {X :: i(), Y :: i()}) -> ok
7167
7168 vertex2s(X :: i(), Y :: i()) -> ok
7169
7170 vertex2sv(X1 :: {X :: i(), Y :: i()}) -> ok
7171
7172 vertex3d(X :: f(), Y :: f(), Z :: f()) -> ok
7173
7174 vertex3dv(X1 :: {X :: f(), Y :: f(), Z :: f()}) -> ok
7175
7176 vertex3f(X :: f(), Y :: f(), Z :: f()) -> ok
7177
7178 vertex3fv(X1 :: {X :: f(), Y :: f(), Z :: f()}) -> ok
7179
7180 vertex3i(X :: i(), Y :: i(), Z :: i()) -> ok
7181
7182 vertex3iv(X1 :: {X :: i(), Y :: i(), Z :: i()}) -> ok
7183
7184 vertex3s(X :: i(), Y :: i(), Z :: i()) -> ok
7185
7186 vertex3sv(X1 :: {X :: i(), Y :: i(), Z :: i()}) -> ok
7187
7188 vertex4d(X :: f(), Y :: f(), Z :: f(), W :: f()) -> ok
7189
7190 vertex4dv(X1 :: {X :: f(), Y :: f(), Z :: f(), W :: f()}) -> ok
7191
7192 vertex4f(X :: f(), Y :: f(), Z :: f(), W :: f()) -> ok
7193
7194 vertex4fv(X1 :: {X :: f(), Y :: f(), Z :: f(), W :: f()}) -> ok
7195
7196 vertex4i(X :: i(), Y :: i(), Z :: i(), W :: i()) -> ok
7197
7198 vertex4iv(X1 :: {X :: i(), Y :: i(), Z :: i(), W :: i()}) -> ok
7199
7200 vertex4s(X :: i(), Y :: i(), Z :: i(), W :: i()) -> ok
7201
7202 vertex4sv(X1 :: {X :: i(), Y :: i(), Z :: i(), W :: i()}) -> ok
7203
7204 gl:vertex() commands are used within gl:'begin'/1/gl:'end'/0
7205 pairs to specify point, line, and polygon vertices. The current
7206 color, normal, texture coordinates, and fog coordinate are asso‐
7207 ciated with the vertex when gl:vertex() is called.
7208
7209 External documentation.
7210
7211 vertexArrayAttribBinding(Vaobj :: i(),
7212 Attribindex :: i(),
7213 Bindingindex :: i()) ->
7214 ok
7215
7216 No documentation available.
7217
7218 vertexArrayAttribFormat(Vaobj, Attribindex, Size, Type,
7219 Normalized, Relativeoffset) ->
7220 ok
7221
7222 Types:
7223
7224 Vaobj = Attribindex = Size = i()
7225 Type = enum()
7226 Normalized = 0 | 1
7227 Relativeoffset = i()
7228
7229 No documentation available.
7230
7231 vertexArrayAttribIFormat(Vaobj :: i(),
7232 Attribindex :: i(),
7233 Size :: i(),
7234 Type :: enum(),
7235 Relativeoffset :: i()) ->
7236 ok
7237
7238 No documentation available.
7239
7240 vertexArrayAttribLFormat(Vaobj :: i(),
7241 Attribindex :: i(),
7242 Size :: i(),
7243 Type :: enum(),
7244 Relativeoffset :: i()) ->
7245 ok
7246
7247 No documentation available.
7248
7249 vertexArrayBindingDivisor(Vaobj :: i(),
7250 Bindingindex :: i(),
7251 Divisor :: i()) ->
7252 ok
7253
7254 No documentation available.
7255
7256 vertexArrayElementBuffer(Vaobj :: i(), Buffer :: i()) -> ok
7257
7258 gl:vertexArrayElementBuffer/2 binds a buffer object with id Buf‐
7259 fer to the element array buffer bind point of a vertex array ob‐
7260 ject with id Vaobj. If Buffer is zero, any existing element ar‐
7261 ray buffer binding to Vaobj is removed.
7262
7263 External documentation.
7264
7265 vertexArrayVertexBuffer(Vaobj :: i(),
7266 Bindingindex :: i(),
7267 Buffer :: i(),
7268 Offset :: i(),
7269 Stride :: i()) ->
7270 ok
7271
7272 No documentation available.
7273
7274 vertexArrayVertexBuffers(Vaobj :: i(),
7275 First :: i(),
7276 Buffers :: [i()],
7277 Offsets :: [i()],
7278 Strides :: [i()]) ->
7279 ok
7280
7281 No documentation available.
7282
7283 vertexAttrib1d(Index :: i(), X :: f()) -> ok
7284
7285 vertexAttrib1dv(Index :: i(), X2 :: {X :: f()}) -> ok
7286
7287 vertexAttrib1f(Index :: i(), X :: f()) -> ok
7288
7289 vertexAttrib1fv(Index :: i(), X2 :: {X :: f()}) -> ok
7290
7291 vertexAttrib1s(Index :: i(), X :: i()) -> ok
7292
7293 vertexAttrib1sv(Index :: i(), X2 :: {X :: i()}) -> ok
7294
7295 vertexAttrib2d(Index :: i(), X :: f(), Y :: f()) -> ok
7296
7297 vertexAttrib2dv(Index :: i(), X2 :: {X :: f(), Y :: f()}) -> ok
7298
7299 vertexAttrib2f(Index :: i(), X :: f(), Y :: f()) -> ok
7300
7301 vertexAttrib2fv(Index :: i(), X2 :: {X :: f(), Y :: f()}) -> ok
7302
7303 vertexAttrib2s(Index :: i(), X :: i(), Y :: i()) -> ok
7304
7305 vertexAttrib2sv(Index :: i(), X2 :: {X :: i(), Y :: i()}) -> ok
7306
7307 vertexAttrib3d(Index :: i(), X :: f(), Y :: f(), Z :: f()) -> ok
7308
7309 vertexAttrib3dv(Index :: i(),
7310 X2 :: {X :: f(), Y :: f(), Z :: f()}) ->
7311 ok
7312
7313 vertexAttrib3f(Index :: i(), X :: f(), Y :: f(), Z :: f()) -> ok
7314
7315 vertexAttrib3fv(Index :: i(),
7316 X2 :: {X :: f(), Y :: f(), Z :: f()}) ->
7317 ok
7318
7319 vertexAttrib3s(Index :: i(), X :: i(), Y :: i(), Z :: i()) -> ok
7320
7321 vertexAttrib3sv(Index :: i(),
7322 X2 :: {X :: i(), Y :: i(), Z :: i()}) ->
7323 ok
7324
7325 vertexAttrib4Nbv(Index :: i(), V :: {i(), i(), i(), i()}) -> ok
7326
7327 vertexAttrib4Niv(Index :: i(), V :: {i(), i(), i(), i()}) -> ok
7328
7329 vertexAttrib4Nsv(Index :: i(), V :: {i(), i(), i(), i()}) -> ok
7330
7331 vertexAttrib4Nub(Index :: i(),
7332 X :: i(),
7333 Y :: i(),
7334 Z :: i(),
7335 W :: i()) ->
7336 ok
7337
7338 vertexAttrib4Nubv(Index :: i(),
7339 X2 :: {X :: i(), Y :: i(), Z :: i(), W :: i()}) ->
7340 ok
7341
7342 vertexAttrib4Nuiv(Index :: i(), V :: {i(), i(), i(), i()}) -> ok
7343
7344 vertexAttrib4Nusv(Index :: i(), V :: {i(), i(), i(), i()}) -> ok
7345
7346 vertexAttrib4bv(Index :: i(), V :: {i(), i(), i(), i()}) -> ok
7347
7348 vertexAttrib4d(Index :: i(),
7349 X :: f(),
7350 Y :: f(),
7351 Z :: f(),
7352 W :: f()) ->
7353 ok
7354
7355 vertexAttrib4dv(Index :: i(),
7356 X2 :: {X :: f(), Y :: f(), Z :: f(), W :: f()}) ->
7357 ok
7358
7359 vertexAttrib4f(Index :: i(),
7360 X :: f(),
7361 Y :: f(),
7362 Z :: f(),
7363 W :: f()) ->
7364 ok
7365
7366 vertexAttrib4fv(Index :: i(),
7367 X2 :: {X :: f(), Y :: f(), Z :: f(), W :: f()}) ->
7368 ok
7369
7370 vertexAttrib4iv(Index :: i(), V :: {i(), i(), i(), i()}) -> ok
7371
7372 vertexAttrib4s(Index :: i(),
7373 X :: i(),
7374 Y :: i(),
7375 Z :: i(),
7376 W :: i()) ->
7377 ok
7378
7379 vertexAttrib4sv(Index :: i(),
7380 X2 :: {X :: i(), Y :: i(), Z :: i(), W :: i()}) ->
7381 ok
7382
7383 vertexAttrib4ubv(Index :: i(), V :: {i(), i(), i(), i()}) -> ok
7384
7385 vertexAttrib4uiv(Index :: i(), V :: {i(), i(), i(), i()}) -> ok
7386
7387 vertexAttrib4usv(Index :: i(), V :: {i(), i(), i(), i()}) -> ok
7388
7389 vertexAttribI1i(Index :: i(), X :: i()) -> ok
7390
7391 vertexAttribI1iv(Index :: i(), X2 :: {X :: i()}) -> ok
7392
7393 vertexAttribI1ui(Index :: i(), X :: i()) -> ok
7394
7395 vertexAttribI1uiv(Index :: i(), X2 :: {X :: i()}) -> ok
7396
7397 vertexAttribI2i(Index :: i(), X :: i(), Y :: i()) -> ok
7398
7399 vertexAttribI2iv(Index :: i(), X2 :: {X :: i(), Y :: i()}) -> ok
7400
7401 vertexAttribI2ui(Index :: i(), X :: i(), Y :: i()) -> ok
7402
7403 vertexAttribI2uiv(Index :: i(), X2 :: {X :: i(), Y :: i()}) -> ok
7404
7405 vertexAttribI3i(Index :: i(), X :: i(), Y :: i(), Z :: i()) -> ok
7406
7407 vertexAttribI3iv(Index :: i(),
7408 X2 :: {X :: i(), Y :: i(), Z :: i()}) ->
7409 ok
7410
7411 vertexAttribI3ui(Index :: i(), X :: i(), Y :: i(), Z :: i()) -> ok
7412
7413 vertexAttribI3uiv(Index :: i(),
7414 X2 :: {X :: i(), Y :: i(), Z :: i()}) ->
7415 ok
7416
7417 vertexAttribI4bv(Index :: i(), V :: {i(), i(), i(), i()}) -> ok
7418
7419 vertexAttribI4i(Index :: i(),
7420 X :: i(),
7421 Y :: i(),
7422 Z :: i(),
7423 W :: i()) ->
7424 ok
7425
7426 vertexAttribI4iv(Index :: i(),
7427 X2 :: {X :: i(), Y :: i(), Z :: i(), W :: i()}) ->
7428 ok
7429
7430 vertexAttribI4sv(Index :: i(), V :: {i(), i(), i(), i()}) -> ok
7431
7432 vertexAttribI4ubv(Index :: i(), V :: {i(), i(), i(), i()}) -> ok
7433
7434 vertexAttribI4ui(Index :: i(),
7435 X :: i(),
7436 Y :: i(),
7437 Z :: i(),
7438 W :: i()) ->
7439 ok
7440
7441 vertexAttribI4uiv(Index :: i(),
7442 X2 :: {X :: i(), Y :: i(), Z :: i(), W :: i()}) ->
7443 ok
7444
7445 vertexAttribI4usv(Index :: i(), V :: {i(), i(), i(), i()}) -> ok
7446
7447 The gl:vertexAttrib() family of entry points allows an applica‐
7448 tion to pass generic vertex attributes in numbered locations.
7449
7450 External documentation.
7451
7452 vertexAttribBinding(Attribindex :: i(), Bindingindex :: i()) -> ok
7453
7454 gl:vertexAttribBinding/2 and gl:vertexArrayAttribBinding/3 es‐
7455 tablishes an association between the generic vertex attribute of
7456 a vertex array object whose index is given by Attribindex, and a
7457 vertex buffer binding whose index is given by Bindingindex. For
7458 gl:vertexAttribBinding/2, the vertex array object affected is
7459 that currently bound. For gl:vertexArrayAttribBinding/3, Vaobj
7460 is the name of the vertex array object.
7461
7462 External documentation.
7463
7464 vertexAttribDivisor(Index :: i(), Divisor :: i()) -> ok
7465
7466 gl:vertexAttribDivisor/2 modifies the rate at which generic ver‐
7467 tex attributes advance when rendering multiple instances of
7468 primitives in a single draw call. If Divisor is zero, the attri‐
7469 bute at slot Index advances once per vertex. If Divisor is non-
7470 zero, the attribute advances once per Divisor instances of the
7471 set(s) of vertices being rendered. An attribute is referred to
7472 as instanced if its ?GL_VERTEX_ATTRIB_ARRAY_DIVISOR value is
7473 non-zero.
7474
7475 External documentation.
7476
7477 vertexAttribFormat(Attribindex :: i(),
7478 Size :: i(),
7479 Type :: enum(),
7480 Normalized :: 0 | 1,
7481 Relativeoffset :: i()) ->
7482 ok
7483
7484 gl:vertexAttribFormat/5, gl:vertexAttribIFormat/4 and gl:vertex‐
7485 AttribLFormat/4, as well as gl:vertexArrayAttribFormat/6,
7486 gl:vertexArrayAttribIFormat/5 and gl:vertexArrayAttribLFormat/5
7487 specify the organization of data in vertex arrays. The first
7488 three calls operate on the bound vertex array object, whereas
7489 the last three ones modify the state of a vertex array object
7490 with ID Vaobj. Attribindex specifies the index of the generic
7491 vertex attribute array whose data layout is being described, and
7492 must be less than the value of ?GL_MAX_VERTEX_ATTRIBS.
7493
7494 External documentation.
7495
7496 vertexAttribIFormat(Attribindex :: i(),
7497 Size :: i(),
7498 Type :: enum(),
7499 Relativeoffset :: i()) ->
7500 ok
7501
7502 No documentation available.
7503
7504 vertexAttribIPointer(Index :: i(),
7505 Size :: i(),
7506 Type :: enum(),
7507 Stride :: i(),
7508 Pointer :: offset() | mem()) ->
7509 ok
7510
7511 No documentation available.
7512
7513 vertexAttribL1d(Index :: i(), X :: f()) -> ok
7514
7515 vertexAttribL1dv(Index :: i(), X2 :: {X :: f()}) -> ok
7516
7517 vertexAttribL2d(Index :: i(), X :: f(), Y :: f()) -> ok
7518
7519 vertexAttribL2dv(Index :: i(), X2 :: {X :: f(), Y :: f()}) -> ok
7520
7521 vertexAttribL3d(Index :: i(), X :: f(), Y :: f(), Z :: f()) -> ok
7522
7523 vertexAttribL3dv(Index :: i(),
7524 X2 :: {X :: f(), Y :: f(), Z :: f()}) ->
7525 ok
7526
7527 vertexAttribL4d(Index :: i(),
7528 X :: f(),
7529 Y :: f(),
7530 Z :: f(),
7531 W :: f()) ->
7532 ok
7533
7534 vertexAttribL4dv(Index :: i(),
7535 X2 :: {X :: f(), Y :: f(), Z :: f(), W :: f()}) ->
7536 ok
7537
7538 No documentation available.
7539
7540 vertexAttribLFormat(Attribindex :: i(),
7541 Size :: i(),
7542 Type :: enum(),
7543 Relativeoffset :: i()) ->
7544 ok
7545
7546 No documentation available.
7547
7548 vertexAttribLPointer(Index :: i(),
7549 Size :: i(),
7550 Type :: enum(),
7551 Stride :: i(),
7552 Pointer :: offset() | mem()) ->
7553 ok
7554
7555 No documentation available.
7556
7557 vertexAttribPointer(Index, Size, Type, Normalized, Stride,
7558 Pointer) ->
7559 ok
7560
7561 Types:
7562
7563 Index = Size = i()
7564 Type = enum()
7565 Normalized = 0 | 1
7566 Stride = i()
7567 Pointer = offset() | mem()
7568
7569 gl:vertexAttribPointer/6, gl:vertexAttribIPointer/5 and gl:ver‐
7570 texAttribLPointer/5 specify the location and data format of the
7571 array of generic vertex attributes at index Index to use when
7572 rendering. Size specifies the number of components per attribute
7573 and must be 1, 2, 3, 4, or ?GL_BGRA. Type specifies the data
7574 type of each component, and Stride specifies the byte stride
7575 from one attribute to the next, allowing vertices and attributes
7576 to be packed into a single array or stored in separate arrays.
7577
7578 External documentation.
7579
7580 vertexBindingDivisor(Bindingindex :: i(), Divisor :: i()) -> ok
7581
7582 gl:vertexBindingDivisor/2 and gl:vertexArrayBindingDivisor/3
7583 modify the rate at which generic vertex attributes advance when
7584 rendering multiple instances of primitives in a single draw com‐
7585 mand. If Divisor is zero, the attributes using the buffer bound
7586 to Bindingindex advance once per vertex. If Divisor is non-zero,
7587 the attributes advance once per Divisor instances of the set(s)
7588 of vertices being rendered. An attribute is referred to as in‐
7589 stanced if the corresponding Divisor value is non-zero.
7590
7591 External documentation.
7592
7593 vertexBlendARB(Count :: i()) -> ok
7594
7595 No documentation available.
7596
7597 vertexPointer(Size :: i(),
7598 Type :: enum(),
7599 Stride :: i(),
7600 Ptr :: offset() | mem()) ->
7601 ok
7602
7603 gl:vertexPointer/4 specifies the location and data format of an
7604 array of vertex coordinates to use when rendering. Size speci‐
7605 fies the number of coordinates per vertex, and must be 2, 3, or
7606 4. Type specifies the data type of each coordinate, and Stride
7607 specifies the byte stride from one vertex to the next, allowing
7608 vertices and attributes to be packed into a single array or
7609 stored in separate arrays. (Single-array storage may be more ef‐
7610 ficient on some implementations; see gl:interleavedArrays/3.)
7611
7612 External documentation.
7613
7614 viewport(X :: i(), Y :: i(), Width :: i(), Height :: i()) -> ok
7615
7616 gl:viewport/4 specifies the affine transformation of x and y
7617 from normalized device coordinates to window coordinates. Let (x
7618 nd y nd) be normalized device coordinates. Then the window coor‐
7619 dinates (x w y w) are computed as follows:
7620
7621 External documentation.
7622
7623 viewportArrayv(First :: i(), V :: [{f(), f(), f(), f()}]) -> ok
7624
7625 No documentation available.
7626
7627 viewportIndexedf(Index :: i(),
7628 X :: f(),
7629 Y :: f(),
7630 W :: f(),
7631 H :: f()) ->
7632 ok
7633
7634 viewportIndexedfv(Index :: i(), V :: {f(), f(), f(), f()}) -> ok
7635
7636 gl:viewportIndexedf/5 and gl:viewportIndexedfv/2 specify the pa‐
7637 rameters for a single viewport. Index specifies the index of the
7638 viewport to modify. Index must be less than the value of
7639 ?GL_MAX_VIEWPORTS. For gl:viewportIndexedf/5, X, Y, W, and H
7640 specify the left, bottom, width and height of the viewport in
7641 pixels, respectively. For gl:viewportIndexedfv/2, V contains the
7642 address of an array of floating point values specifying the left
7643 ( x), bottom ( y), width ( w), and height ( h) of each viewport,
7644 in that order. x and y give the location of the viewport's lower
7645 left corner, and w and h give the width and height of the view‐
7646 port, respectively. The viewport specifies the affine transfor‐
7647 mation of x and y from normalized device coordinates to window
7648 coordinates. Let (x nd y nd) be normalized device coordinates.
7649 Then the window coordinates (x w y w) are computed as follows:
7650
7651 External documentation.
7652
7653 waitSync(Sync :: i(), Flags :: i(), Timeout :: i()) -> ok
7654
7655 gl:waitSync/3 causes the GL server to block and wait until Sync
7656 becomes signaled. Sync is the name of an existing sync object
7657 upon which to wait. Flags and Timeout are currently not used and
7658 must be set to zero and the special value ?GL_TIMEOUT_IGNORED,
7659 respectively
7660
7661 Flags and Timeout are placeholders for anticipated future exten‐
7662 sions of sync object capabilities. They must have these reserved
7663 values in order that existing code calling gl:waitSync/3 operate
7664 properly in the presence of such extensions.
7665
7666 External documentation.
7667
7668 weightbvARB(Weights :: [i()]) -> ok
7669
7670 weightdvARB(Weights :: [f()]) -> ok
7671
7672 weightfvARB(Weights :: [f()]) -> ok
7673
7674 weightivARB(Weights :: [i()]) -> ok
7675
7676 weightsvARB(Weights :: [i()]) -> ok
7677
7678 weightubvARB(Weights :: [i()]) -> ok
7679
7680 weightuivARB(Weights :: [i()]) -> ok
7681
7682 weightusvARB(Weights :: [i()]) -> ok
7683
7684 No documentation available.
7685
7686 windowPos2d(X :: f(), Y :: f()) -> ok
7687
7688 windowPos2dv(X1 :: {X :: f(), Y :: f()}) -> ok
7689
7690 windowPos2f(X :: f(), Y :: f()) -> ok
7691
7692 windowPos2fv(X1 :: {X :: f(), Y :: f()}) -> ok
7693
7694 windowPos2i(X :: i(), Y :: i()) -> ok
7695
7696 windowPos2iv(X1 :: {X :: i(), Y :: i()}) -> ok
7697
7698 windowPos2s(X :: i(), Y :: i()) -> ok
7699
7700 windowPos2sv(X1 :: {X :: i(), Y :: i()}) -> ok
7701
7702 windowPos3d(X :: f(), Y :: f(), Z :: f()) -> ok
7703
7704 windowPos3dv(X1 :: {X :: f(), Y :: f(), Z :: f()}) -> ok
7705
7706 windowPos3f(X :: f(), Y :: f(), Z :: f()) -> ok
7707
7708 windowPos3fv(X1 :: {X :: f(), Y :: f(), Z :: f()}) -> ok
7709
7710 windowPos3i(X :: i(), Y :: i(), Z :: i()) -> ok
7711
7712 windowPos3iv(X1 :: {X :: i(), Y :: i(), Z :: i()}) -> ok
7713
7714 windowPos3s(X :: i(), Y :: i(), Z :: i()) -> ok
7715
7716 windowPos3sv(X1 :: {X :: i(), Y :: i(), Z :: i()}) -> ok
7717
7718 The GL maintains a 3D position in window coordinates. This posi‐
7719 tion, called the raster position, is used to position pixel and
7720 bitmap write operations. It is maintained with subpixel accu‐
7721 racy. See gl:bitmap/7, gl:drawPixels/5, and gl:copyPixels/5.
7722
7723 External documentation.
7724
7725
7726
7727Ericsson AB wx 2.1 gl(3)