gl

package
v0.0.0-...-af2ff9b Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 21, 2023 License: BSD-3-Clause, BSD-3-Clause Imports: 4 Imported by: 0

Documentation

Overview

Package gl is a Go cross-platform binding for OpenGL, with an OpenGL ES 2-like API.

It supports:

- macOS, Linux and Windows via OpenGL 2.1 backend,

- iOS and Android via OpenGL ES 2.0 backend,

- Modern Browsers (desktop and mobile) via WebGL 1.0 backend.

This is a fork of golang.org/x/mobile/gl package with [CL 8793](https://go-review.googlesource.com/8793) merged in and Windows support added. This package is fully functional, but may eventually become superceded by the new x/mobile/gl plan. It will exist and be fully supported until it can be safely replaced by a better package.

Usage

This OpenGL binding has a ContextWatcher, which implements [glfw.ContextWatcher](https://godoc.org/github.com/goxjs/glfw#ContextWatcher) interface. Recommended usage is with github.com/goxjs/glfw package, which accepts a ContextWatcher in its Init, and takes on the responsibility of notifying it when context is made current or detached.

if err := glfw.Init(gl.ContextWatcher); err != nil {
	// Handle error.
}
defer glfw.Terminate()

If you're not using a ContextWatcher-aware glfw library, you must call methods of gl.ContextWatcher yourself whenever you make a context current or detached.

window.MakeContextCurrent()
gl.ContextWatcher.OnMakeCurrent(nil)

glfw.DetachCurrentContext()
gl.ContextWatcher.OnDetach()

Index

Constants

View Source
const (
	POINTS                                       = 0x0000
	LINES                                        = 0x0001
	LINE_LOOP                                    = 0x0002
	LINE_STRIP                                   = 0x0003
	TRIANGLES                                    = 0x0004
	TRIANGLE_STRIP                               = 0x0005
	TRIANGLE_FAN                                 = 0x0006
	SRC_COLOR                                    = 0x0300
	ONE_MINUS_SRC_COLOR                          = 0x0301
	SRC_ALPHA                                    = 0x0302
	ONE_MINUS_SRC_ALPHA                          = 0x0303
	DST_ALPHA                                    = 0x0304
	ONE_MINUS_DST_ALPHA                          = 0x0305
	DST_COLOR                                    = 0x0306
	ONE_MINUS_DST_COLOR                          = 0x0307
	SRC_ALPHA_SATURATE                           = 0x0308
	FUNC_ADD                                     = 0x8006
	BLEND_EQUATION                               = 0x8009
	BLEND_EQUATION_RGB                           = 0x8009
	BLEND_EQUATION_ALPHA                         = 0x883D
	FUNC_SUBTRACT                                = 0x800A
	FUNC_REVERSE_SUBTRACT                        = 0x800B
	BLEND_DST_RGB                                = 0x80C8
	BLEND_SRC_RGB                                = 0x80C9
	BLEND_DST_ALPHA                              = 0x80CA
	BLEND_SRC_ALPHA                              = 0x80CB
	CONSTANT_COLOR                               = 0x8001
	ONE_MINUS_CONSTANT_COLOR                     = 0x8002
	CONSTANT_ALPHA                               = 0x8003
	ONE_MINUS_CONSTANT_ALPHA                     = 0x8004
	BLEND_COLOR                                  = 0x8005
	ARRAY_BUFFER                                 = 0x8892
	ELEMENT_ARRAY_BUFFER                         = 0x8893
	ARRAY_BUFFER_BINDING                         = 0x8894
	ELEMENT_ARRAY_BUFFER_BINDING                 = 0x8895
	STREAM_DRAW                                  = 0x88E0
	STATIC_DRAW                                  = 0x88E4
	DYNAMIC_DRAW                                 = 0x88E8
	BUFFER_SIZE                                  = 0x8764
	BUFFER_USAGE                                 = 0x8765
	CURRENT_VERTEX_ATTRIB                        = 0x8626
	FRONT                                        = 0x0404
	BACK                                         = 0x0405
	FRONT_AND_BACK                               = 0x0408
	TEXTURE_2D                                   = 0x0DE1
	TEXTURE_2D_MULTISAMPLE                       = 0x9100
	CULL_FACE                                    = 0x0B44
	BLEND                                        = 0x0BE2
	DITHER                                       = 0x0BD0
	STENCIL_TEST                                 = 0x0B90
	DEPTH_TEST                                   = 0x0B71
	SCISSOR_TEST                                 = 0x0C11
	POLYGON_OFFSET_FILL                          = 0x8037
	MULTISAMPLE                                  = 0x809D
	SAMPLE_ALPHA_TO_COVERAGE                     = 0x809E
	SAMPLE_COVERAGE                              = 0x80A0
	INVALID_ENUM                                 = 0x0500
	INVALID_VALUE                                = 0x0501
	INVALID_OPERATION                            = 0x0502
	OUT_OF_MEMORY                                = 0x0505
	CW                                           = 0x0900
	CCW                                          = 0x0901
	LINE_WIDTH                                   = 0x0B21
	ALIASED_POINT_SIZE_RANGE                     = 0x846D
	ALIASED_LINE_WIDTH_RANGE                     = 0x846E
	CULL_FACE_MODE                               = 0x0B45
	FRONT_FACE                                   = 0x0B46
	DEPTH_RANGE                                  = 0x0B70
	DEPTH_WRITEMASK                              = 0x0B72
	DEPTH_CLEAR_VALUE                            = 0x0B73
	DEPTH_FUNC                                   = 0x0B74
	STENCIL_CLEAR_VALUE                          = 0x0B91
	STENCIL_FUNC                                 = 0x0B92
	STENCIL_FAIL                                 = 0x0B94
	STENCIL_PASS_DEPTH_FAIL                      = 0x0B95
	STENCIL_PASS_DEPTH_PASS                      = 0x0B96
	STENCIL_REF                                  = 0x0B97
	STENCIL_VALUE_MASK                           = 0x0B93
	STENCIL_WRITEMASK                            = 0x0B98
	STENCIL_BACK_FUNC                            = 0x8800
	STENCIL_BACK_FAIL                            = 0x8801
	STENCIL_BACK_PASS_DEPTH_FAIL                 = 0x8802
	STENCIL_BACK_PASS_DEPTH_PASS                 = 0x8803
	STENCIL_BACK_REF                             = 0x8CA3
	STENCIL_BACK_VALUE_MASK                      = 0x8CA4
	STENCIL_BACK_WRITEMASK                       = 0x8CA5
	VIEWPORT                                     = 0x0BA2
	SCISSOR_BOX                                  = 0x0C10
	COLOR_CLEAR_VALUE                            = 0x0C22
	COLOR_WRITEMASK                              = 0x0C23
	UNPACK_ALIGNMENT                             = 0x0CF5
	PACK_ALIGNMENT                               = 0x0D05
	MAX_TEXTURE_SIZE                             = 0x0D33
	MAX_VIEWPORT_DIMS                            = 0x0D3A
	SUBPIXEL_BITS                                = 0x0D50
	RED_BITS                                     = 0x0D52
	GREEN_BITS                                   = 0x0D53
	BLUE_BITS                                    = 0x0D54
	ALPHA_BITS                                   = 0x0D55
	DEPTH_BITS                                   = 0x0D56
	STENCIL_BITS                                 = 0x0D57
	POLYGON_OFFSET_UNITS                         = 0x2A00
	POLYGON_OFFSET_FACTOR                        = 0x8038
	TEXTURE_BINDING_2D                           = 0x8069
	SAMPLE_BUFFERS                               = 0x80A8
	SAMPLES                                      = 0x80A9
	SAMPLE_COVERAGE_VALUE                        = 0x80AA
	SAMPLE_COVERAGE_INVERT                       = 0x80AB
	NUM_COMPRESSED_TEXTURE_FORMATS               = 0x86A2
	COMPRESSED_TEXTURE_FORMATS                   = 0x86A3
	DONT_CARE                                    = 0x1100
	FASTEST                                      = 0x1101
	NICEST                                       = 0x1102
	GENERATE_MIPMAP_HINT                         = 0x8192
	BYTE                                         = 0x1400
	UNSIGNED_BYTE                                = 0x1401
	SHORT                                        = 0x1402
	UNSIGNED_SHORT                               = 0x1403
	INT                                          = 0x1404
	UNSIGNED_INT                                 = 0x1405
	FLOAT                                        = 0x1406
	FIXED                                        = 0x140C
	DEPTH_COMPONENT                              = 0x1902
	ALPHA                                        = 0x1906
	RGB                                          = 0x1907
	RGBA                                         = 0x1908
	LUMINANCE                                    = 0x1909
	LUMINANCE_ALPHA                              = 0x190A
	UNSIGNED_SHORT_4_4_4_4                       = 0x8033
	UNSIGNED_SHORT_5_5_5_1                       = 0x8034
	UNSIGNED_SHORT_5_6_5                         = 0x8363
	MAX_VERTEX_ATTRIBS                           = 0x8869
	MAX_VERTEX_UNIFORM_VECTORS                   = 0x8DFB
	MAX_VARYING_VECTORS                          = 0x8DFC
	MAX_COMBINED_TEXTURE_IMAGE_UNITS             = 0x8B4D
	MAX_VERTEX_TEXTURE_IMAGE_UNITS               = 0x8B4C
	MAX_TEXTURE_IMAGE_UNITS                      = 0x8872
	MAX_FRAGMENT_UNIFORM_VECTORS                 = 0x8DFD
	SHADER_TYPE                                  = 0x8B4F
	DELETE_STATUS                                = 0x8B80
	LINK_STATUS                                  = 0x8B82
	VALIDATE_STATUS                              = 0x8B83
	ATTACHED_SHADERS                             = 0x8B85
	ACTIVE_UNIFORMS                              = 0x8B86
	ACTIVE_UNIFORM_MAX_LENGTH                    = 0x8B87
	ACTIVE_ATTRIBUTES                            = 0x8B89
	ACTIVE_ATTRIBUTE_MAX_LENGTH                  = 0x8B8A
	SHADING_LANGUAGE_VERSION                     = 0x8B8C
	CURRENT_PROGRAM                              = 0x8B8D
	NEVER                                        = 0x0200
	LESS                                         = 0x0201
	EQUAL                                        = 0x0202
	LEQUAL                                       = 0x0203
	GREATER                                      = 0x0204
	NOTEQUAL                                     = 0x0205
	GEQUAL                                       = 0x0206
	ALWAYS                                       = 0x0207
	KEEP                                         = 0x1E00
	REPLACE                                      = 0x1E01
	INCR                                         = 0x1E02
	DECR                                         = 0x1E03
	INVERT                                       = 0x150A
	INCR_WRAP                                    = 0x8507
	DECR_WRAP                                    = 0x8508
	VENDOR                                       = 0x1F00
	RENDERER                                     = 0x1F01
	VERSION                                      = 0x1F02
	EXTENSIONS                                   = 0x1F03
	NEAREST                                      = 0x2600
	LINEAR                                       = 0x2601
	NEAREST_MIPMAP_NEAREST                       = 0x2700
	LINEAR_MIPMAP_NEAREST                        = 0x2701
	NEAREST_MIPMAP_LINEAR                        = 0x2702
	LINEAR_MIPMAP_LINEAR                         = 0x2703
	TEXTURE_MAG_FILTER                           = 0x2800
	TEXTURE_MIN_FILTER                           = 0x2801
	TEXTURE_WRAP_S                               = 0x2802
	TEXTURE_WRAP_T                               = 0x2803
	TEXTURE                                      = 0x1702
	TEXTURE_CUBE_MAP                             = 0x8513
	TEXTURE_BINDING_CUBE_MAP                     = 0x8514
	TEXTURE_CUBE_MAP_POSITIVE_X                  = 0x8515
	TEXTURE_CUBE_MAP_NEGATIVE_X                  = 0x8516
	TEXTURE_CUBE_MAP_POSITIVE_Y                  = 0x8517
	TEXTURE_CUBE_MAP_NEGATIVE_Y                  = 0x8518
	TEXTURE_CUBE_MAP_POSITIVE_Z                  = 0x8519
	TEXTURE_CUBE_MAP_NEGATIVE_Z                  = 0x851A
	MAX_CUBE_MAP_TEXTURE_SIZE                    = 0x851C
	TEXTURE0                                     = 0x84C0
	TEXTURE1                                     = 0x84C1
	TEXTURE2                                     = 0x84C2
	TEXTURE3                                     = 0x84C3
	TEXTURE4                                     = 0x84C4
	TEXTURE5                                     = 0x84C5
	TEXTURE6                                     = 0x84C6
	TEXTURE7                                     = 0x84C7
	TEXTURE8                                     = 0x84C8
	TEXTURE9                                     = 0x84C9
	TEXTURE10                                    = 0x84CA
	TEXTURE11                                    = 0x84CB
	TEXTURE12                                    = 0x84CC
	TEXTURE13                                    = 0x84CD
	TEXTURE14                                    = 0x84CE
	TEXTURE15                                    = 0x84CF
	TEXTURE16                                    = 0x84D0
	TEXTURE17                                    = 0x84D1
	TEXTURE18                                    = 0x84D2
	TEXTURE19                                    = 0x84D3
	TEXTURE20                                    = 0x84D4
	TEXTURE21                                    = 0x84D5
	TEXTURE22                                    = 0x84D6
	TEXTURE23                                    = 0x84D7
	TEXTURE24                                    = 0x84D8
	TEXTURE25                                    = 0x84D9
	TEXTURE26                                    = 0x84DA
	TEXTURE27                                    = 0x84DB
	TEXTURE28                                    = 0x84DC
	TEXTURE29                                    = 0x84DD
	TEXTURE30                                    = 0x84DE
	TEXTURE31                                    = 0x84DF
	ACTIVE_TEXTURE                               = 0x84E0
	REPEAT                                       = 0x2901
	CLAMP_TO_EDGE                                = 0x812F
	MIRRORED_REPEAT                              = 0x8370
	VERTEX_ATTRIB_ARRAY_ENABLED                  = 0x8622
	VERTEX_ATTRIB_ARRAY_SIZE                     = 0x8623
	VERTEX_ATTRIB_ARRAY_STRIDE                   = 0x8624
	VERTEX_ATTRIB_ARRAY_TYPE                     = 0x8625
	VERTEX_ATTRIB_ARRAY_NORMALIZED               = 0x886A
	VERTEX_ATTRIB_ARRAY_POINTER                  = 0x8645
	VERTEX_ATTRIB_ARRAY_BUFFER_BINDING           = 0x889F
	IMPLEMENTATION_COLOR_READ_TYPE               = 0x8B9A
	IMPLEMENTATION_COLOR_READ_FORMAT             = 0x8B9B
	COMPILE_STATUS                               = 0x8B81
	INFO_LOG_LENGTH                              = 0x8B84
	SHADER_SOURCE_LENGTH                         = 0x8B88
	SHADER_COMPILER                              = 0x8DFA
	SHADER_BINARY_FORMATS                        = 0x8DF8
	NUM_SHADER_BINARY_FORMATS                    = 0x8DF9
	LOW_FLOAT                                    = 0x8DF0
	MEDIUM_FLOAT                                 = 0x8DF1
	HIGH_FLOAT                                   = 0x8DF2
	LOW_INT                                      = 0x8DF3
	MEDIUM_INT                                   = 0x8DF4
	HIGH_INT                                     = 0x8DF5
	BUFFER                                       = 0x82E0
	SHADER                                       = 0x82E1
	PROGRAM                                      = 0x82E2
	FRAMEBUFFER                                  = 0x8D40
	RENDERBUFFER                                 = 0x8D41
	RGBA4                                        = 0x8056
	RGB5_A1                                      = 0x8057
	RGB565                                       = 0x8D62
	DEPTH_COMPONENT16                            = 0x81A5
	STENCIL_INDEX8                               = 0x8D48
	RENDERBUFFER_WIDTH                           = 0x8D42
	RENDERBUFFER_HEIGHT                          = 0x8D43
	RENDERBUFFER_INTERNAL_FORMAT                 = 0x8D44
	RENDERBUFFER_RED_SIZE                        = 0x8D50
	RENDERBUFFER_GREEN_SIZE                      = 0x8D51
	RENDERBUFFER_BLUE_SIZE                       = 0x8D52
	RENDERBUFFER_ALPHA_SIZE                      = 0x8D53
	RENDERBUFFER_DEPTH_SIZE                      = 0x8D54
	RENDERBUFFER_STENCIL_SIZE                    = 0x8D55
	FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE           = 0x8CD0
	FRAMEBUFFER_ATTACHMENT_OBJECT_NAME           = 0x8CD1
	FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL         = 0x8CD2
	FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3
	COLOR_ATTACHMENT0                            = 0x8CE0
	DEPTH_ATTACHMENT                             = 0x8D00
	STENCIL_ATTACHMENT                           = 0x8D20
	FRAMEBUFFER_COMPLETE                         = 0x8CD5
	FRAMEBUFFER_INCOMPLETE_ATTACHMENT            = 0x8CD6
	FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT    = 0x8CD7
	FRAMEBUFFER_INCOMPLETE_DIMENSIONS            = 0x8CD9
	FRAMEBUFFER_UNSUPPORTED                      = 0x8CDD
	FRAMEBUFFER_BINDING                          = 0x8CA6
	RENDERBUFFER_BINDING                         = 0x8CA7
	READ_FRAMEBUFFER                             = 0x8CA8
	DRAW_FRAMEBUFFER                             = 0x8CA9
	MAX_RENDERBUFFER_SIZE                        = 0x84E8
	INVALID_FRAMEBUFFER_OPERATION                = 0x0506
)
View Source
const (
	DEPTH_BUFFER_BIT   = 0x00000100
	STENCIL_BUFFER_BIT = 0x00000400
	COLOR_BUFFER_BIT   = 0x00004000
)
View Source
const (
	FLOAT_VEC2   = 0x8B50
	FLOAT_VEC3   = 0x8B51
	FLOAT_VEC4   = 0x8B52
	INT_VEC2     = 0x8B53
	INT_VEC3     = 0x8B54
	INT_VEC4     = 0x8B55
	BOOL         = 0x8B56
	BOOL_VEC2    = 0x8B57
	BOOL_VEC3    = 0x8B58
	BOOL_VEC4    = 0x8B59
	FLOAT_MAT2   = 0x8B5A
	FLOAT_MAT3   = 0x8B5B
	FLOAT_MAT4   = 0x8B5C
	SAMPLER_2D   = 0x8B5E
	SAMPLER_CUBE = 0x8B60
)
View Source
const (
	FRAGMENT_SHADER = 0x8B30
	VERTEX_SHADER   = 0x8B31
)
View Source
const (
	FALSE    = 0
	TRUE     = 1
	ZERO     = 0
	ONE      = 1
	NO_ERROR = 0
	NONE     = 0
)

Variables

View Source
var ContextWatcher = new(contextWatcher)

ContextWatcher is this library's context watcher, satisfying glfw.ContextWatcher interface. It must be notified when context is made current or detached.

Functions

func ActiveTexture

func ActiveTexture(texture Enum)

ActiveTexture sets the active texture unit.

http://www.khronos.org/opengles/sdk/docs/man3/html/glActiveTexture.xhtml

func AttachShader

func AttachShader(p Program, s Shader)

AttachShader attaches a shader to a program.

http://www.khronos.org/opengles/sdk/docs/man3/html/glAttachShader.xhtml

func BindAttribLocation

func BindAttribLocation(p Program, a Attrib, name string)

BindAttribLocation binds a vertex attribute index with a named variable.

http://www.khronos.org/opengles/sdk/docs/man3/html/glBindAttribLocation.xhtml

func BindBuffer

func BindBuffer(target Enum, b Buffer)

BindBuffer binds a buffer.

http://www.khronos.org/opengles/sdk/docs/man3/html/glBindBuffer.xhtml

func BindFramebuffer

func BindFramebuffer(target Enum, fb Framebuffer)

BindFramebuffer binds a framebuffer.

http://www.khronos.org/opengles/sdk/docs/man3/html/glBindFramebuffer.xhtml

func BindRenderbuffer

func BindRenderbuffer(target Enum, rb Renderbuffer)

BindRenderbuffer binds a render buffer.

http://www.khronos.org/opengles/sdk/docs/man3/html/glBindRenderbuffer.xhtml

func BindTexture

func BindTexture(target Enum, t Texture)

BindTexture binds a texture.

http://www.khronos.org/opengles/sdk/docs/man3/html/glBindTexture.xhtml

func BlendColor

func BlendColor(red, green, blue, alpha float32)

BlendColor sets the blend color.

http://www.khronos.org/opengles/sdk/docs/man3/html/glBlendColor.xhtml

func BlendEquation

func BlendEquation(mode Enum)

BlendEquation sets both RGB and alpha blend equations.

http://www.khronos.org/opengles/sdk/docs/man3/html/glBlendEquation.xhtml

func BlendEquationSeparate

func BlendEquationSeparate(modeRGB, modeAlpha Enum)

BlendEquationSeparate sets RGB and alpha blend equations separately.

http://www.khronos.org/opengles/sdk/docs/man3/html/glBlendEquationSeparate.xhtml

func BlendFunc

func BlendFunc(sfactor, dfactor Enum)

BlendFunc sets the pixel blending factors.

http://www.khronos.org/opengles/sdk/docs/man3/html/glBlendFunc.xhtml

func BlendFuncSeparate

func BlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha Enum)

BlendFunc sets the pixel RGB and alpha blending factors separately.

http://www.khronos.org/opengles/sdk/docs/man3/html/glBlendFuncSeparate.xhtml

func BlitFramebuffer

func BlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1 int, mask, filter Enum)

BlitFramebuffer copies a block of pixels from the read framebuffer to the draw framebuffer.

http://www.khronos.org/opengles/sdk/docs/man3/html/glBlitFramebuffer.xhtml

func BufferData

func BufferData(target Enum, src []byte, usage Enum)

BufferData creates a new data store for the bound buffer object.

http://www.khronos.org/opengles/sdk/docs/man3/html/glBufferData.xhtml

func BufferInit

func BufferInit(target Enum, size int, usage Enum)

BufferInit creates a new unitialized data store for the bound buffer object.

http://www.khronos.org/opengles/sdk/docs/man3/html/glBufferData.xhtml

func BufferSubData

func BufferSubData(target Enum, offset int, data []byte)

BufferSubData sets some of data in the bound buffer object.

http://www.khronos.org/opengles/sdk/docs/man3/html/glBufferSubData.xhtml

func Clear

func Clear(mask Enum)

Clear clears the window.

The behavior of Clear is influenced by the pixel ownership test, the scissor test, dithering, and the buffer writemasks.

http://www.khronos.org/opengles/sdk/docs/man3/html/glClear.xhtml

func ClearColor

func ClearColor(red, green, blue, alpha float32)

ClearColor specifies the RGBA values used to clear color buffers.

http://www.khronos.org/opengles/sdk/docs/man3/html/glClearColor.xhtml

func ClearDepthf

func ClearDepthf(d float32)

ClearDepthf sets the depth value used to clear the depth buffer.

http://www.khronos.org/opengles/sdk/docs/man3/html/glClearDepthf.xhtml

func ClearStencil

func ClearStencil(s int)

ClearStencil sets the index used to clear the stencil buffer.

http://www.khronos.org/opengles/sdk/docs/man3/html/glClearStencil.xhtml

func ColorMask

func ColorMask(red, green, blue, alpha bool)

ColorMask specifies whether color components in the framebuffer can be written.

http://www.khronos.org/opengles/sdk/docs/man3/html/glColorMask.xhtml

func CompileShader

func CompileShader(s Shader)

CompileShader compiles the source code of s.

http://www.khronos.org/opengles/sdk/docs/man3/html/glCompileShader.xhtml

func CompressedTexImage2D

func CompressedTexImage2D(target Enum, level int, internalformat Enum, width, height, border int, data []byte)

CompressedTexImage2D writes a compressed 2D texture.

http://www.khronos.org/opengles/sdk/docs/man3/html/glCompressedTexImage2D.xhtml

func CompressedTexSubImage2D

func CompressedTexSubImage2D(target Enum, level, xoffset, yoffset, width, height int, format Enum, data []byte)

CompressedTexSubImage2D writes a subregion of a compressed 2D texture.

http://www.khronos.org/opengles/sdk/docs/man3/html/glCompressedTexSubImage2D.xhtml

func CopyTexImage2D

func CopyTexImage2D(target Enum, level int, internalformat Enum, x, y, width, height, border int)

CopyTexImage2D writes a 2D texture from the current framebuffer.

http://www.khronos.org/opengles/sdk/docs/man3/html/glCopyTexImage2D.xhtml

func CopyTexSubImage2D

func CopyTexSubImage2D(target Enum, level, xoffset, yoffset, x, y, width, height int)

CopyTexSubImage2D writes a 2D texture subregion from the current framebuffer.

http://www.khronos.org/opengles/sdk/docs/man3/html/glCopyTexSubImage2D.xhtml

func CullFace

func CullFace(mode Enum)

CullFace specifies which polygons are candidates for culling.

Valid modes: FRONT, BACK, FRONT_AND_BACK.

http://www.khronos.org/opengles/sdk/docs/man3/html/glCullFace.xhtml

func DeleteBuffer

func DeleteBuffer(v Buffer)

DeleteBuffer deletes the given buffer object.

http://www.khronos.org/opengles/sdk/docs/man3/html/glDeleteBuffers.xhtml

func DeleteFramebuffer

func DeleteFramebuffer(v Framebuffer)

DeleteFramebuffer deletes the given framebuffer object.

http://www.khronos.org/opengles/sdk/docs/man3/html/glDeleteFramebuffers.xhtml

func DeleteProgram

func DeleteProgram(p Program)

DeleteProgram deletes the given program object.

http://www.khronos.org/opengles/sdk/docs/man3/html/glDeleteProgram.xhtml

func DeleteRenderbuffer

func DeleteRenderbuffer(v Renderbuffer)

DeleteRenderbuffer deletes the given render buffer object.

http://www.khronos.org/opengles/sdk/docs/man3/html/glDeleteRenderbuffers.xhtml

func DeleteShader

func DeleteShader(s Shader)

DeleteShader deletes shader s.

http://www.khronos.org/opengles/sdk/docs/man3/html/glDeleteShader.xhtml

func DeleteTexture

func DeleteTexture(v Texture)

DeleteTexture deletes the given texture object.

http://www.khronos.org/opengles/sdk/docs/man3/html/glDeleteTextures.xhtml

func DepthFunc

func DepthFunc(fn Enum)

DepthFunc sets the function used for depth buffer comparisons.

Valid fn values:

NEVER
LESS
EQUAL
LEQUAL
GREATER
NOTEQUAL
GEQUAL
ALWAYS

http://www.khronos.org/opengles/sdk/docs/man3/html/glDepthFunc.xhtml

func DepthMask

func DepthMask(flag bool)

DepthMask sets the depth buffer enabled for writing.

http://www.khronos.org/opengles/sdk/docs/man3/html/glDepthMask.xhtml

func DepthRangef

func DepthRangef(n, f float32)

DepthRangef sets the mapping from normalized device coordinates to window coordinates.

http://www.khronos.org/opengles/sdk/docs/man3/html/glDepthRangef.xhtml

func DetachShader

func DetachShader(p Program, s Shader)

DetachShader detaches the shader s from the program p.

http://www.khronos.org/opengles/sdk/docs/man3/html/glDetachShader.xhtml

func Disable

func Disable(cap Enum)

Disable disables various GL capabilities.

http://www.khronos.org/opengles/sdk/docs/man3/html/glDisable.xhtml

func DisableVertexAttribArray

func DisableVertexAttribArray(a Attrib)

DisableVertexAttribArray disables a vertex attribute array.

http://www.khronos.org/opengles/sdk/docs/man3/html/glDisableVertexAttribArray.xhtml

func DrawArrays

func DrawArrays(mode Enum, first, count int)

DrawArrays renders geometric primitives from the bound data.

http://www.khronos.org/opengles/sdk/docs/man3/html/glDrawArrays.xhtml

func DrawElements

func DrawElements(mode Enum, count int, ty Enum, offset int)

DrawElements renders primitives from a bound buffer.

http://www.khronos.org/opengles/sdk/docs/man3/html/glDrawElements.xhtml

func Enable

func Enable(cap Enum)

Enable enables various GL capabilities.

http://www.khronos.org/opengles/sdk/docs/man3/html/glEnable.xhtml

func EnableVertexAttribArray

func EnableVertexAttribArray(a Attrib)

EnableVertexAttribArray enables a vertex attribute array.

http://www.khronos.org/opengles/sdk/docs/man3/html/glEnableVertexAttribArray.xhtml

func Finish

func Finish()

Finish blocks until the effects of all previously called GL commands are complete.

http://www.khronos.org/opengles/sdk/docs/man3/html/glFinish.xhtml

func Flush

func Flush()

Flush empties all buffers. It does not block.

An OpenGL implementation may buffer network communication, the command stream, or data inside the graphics accelerator.

http://www.khronos.org/opengles/sdk/docs/man3/html/glFlush.xhtml

func FramebufferRenderbuffer

func FramebufferRenderbuffer(target, attachment, rbTarget Enum, rb Renderbuffer)

FramebufferRenderbuffer attaches rb to the current frame buffer.

http://www.khronos.org/opengles/sdk/docs/man3/html/glFramebufferRenderbuffer.xhtml

func FramebufferTexture2D

func FramebufferTexture2D(target, attachment, texTarget Enum, t Texture, level int)

FramebufferTexture2D attaches the t to the current frame buffer.

http://www.khronos.org/opengles/sdk/docs/man3/html/glFramebufferTexture2D.xhtml

func FrontFace

func FrontFace(mode Enum)

FrontFace defines which polygons are front-facing.

Valid modes: CW, CCW.

http://www.khronos.org/opengles/sdk/docs/man3/html/glFrontFace.xhtml

func GenerateMipmap

func GenerateMipmap(target Enum)

GenerateMipmap generates mipmaps for the current texture.

http://www.khronos.org/opengles/sdk/docs/man3/html/glGenerateMipmap.xhtml

func GetBooleanv

func GetBooleanv(dst []bool, pname Enum)

GetBooleanv returns the boolean values of parameter pname.

Many boolean parameters can be queried more easily using IsEnabled.

http://www.khronos.org/opengles/sdk/docs/man3/html/glGet.xhtml

func GetBufferParameteri

func GetBufferParameteri(target, pname Enum) int

GetBufferParameteri returns a parameter for the active buffer.

http://www.khronos.org/opengles/sdk/docs/man3/html/glGetBufferParameteriv.xhtml

func GetFloatv

func GetFloatv(dst []float32, pname Enum)

GetFloatv returns the float values of parameter pname.

http://www.khronos.org/opengles/sdk/docs/man3/html/glGet.xhtml

func GetFramebufferAttachmentParameteri

func GetFramebufferAttachmentParameteri(target, attachment, pname Enum) int

GetFramebufferAttachmentParameteri returns attachment parameters for the active framebuffer object.

http://www.khronos.org/opengles/sdk/docs/man3/html/glGetFramebufferAttachmentParameteriv.xhtml

func GetInteger

func GetInteger(pname Enum) int

GetInteger returns the int value of parameter pname.

http://www.khronos.org/opengles/sdk/docs/man3/html/glGet.xhtml

func GetIntegerv

func GetIntegerv(pname Enum, data []int32)

GetIntegerv returns the int values of parameter pname.

Single values may be queried more easily using GetInteger.

http://www.khronos.org/opengles/sdk/docs/man3/html/glGet.xhtml

func GetProgramInfoLog

func GetProgramInfoLog(p Program) string

GetProgramInfoLog returns the information log for a program.

http://www.khronos.org/opengles/sdk/docs/man3/html/glGetProgramInfoLog.xhtml

func GetProgrami

func GetProgrami(p Program, pname Enum) int

GetProgrami returns a parameter value for a program.

http://www.khronos.org/opengles/sdk/docs/man3/html/glGetProgramiv.xhtml

func GetRenderbufferParameteri

func GetRenderbufferParameteri(target, pname Enum) int

GetRenderbufferParameteri returns a parameter value for a render buffer.

http://www.khronos.org/opengles/sdk/docs/man3/html/glGetRenderbufferParameteriv.xhtml

func GetShaderInfoLog

func GetShaderInfoLog(s Shader) string

GetShaderInfoLog returns the information log for a shader.

http://www.khronos.org/opengles/sdk/docs/man3/html/glGetShaderInfoLog.xhtml

func GetShaderPrecisionFormat

func GetShaderPrecisionFormat(shadertype, precisiontype Enum) (rangeLow, rangeHigh, precision int)

GetShaderPrecisionFormat returns range and precision limits for shader types.

http://www.khronos.org/opengles/sdk/docs/man3/html/glGetShaderPrecisionFormat.xhtml

func GetShaderSource

func GetShaderSource(s Shader) string

GetShaderSource returns source code of shader s.

http://www.khronos.org/opengles/sdk/docs/man3/html/glGetShaderSource.xhtml

func GetShaderi

func GetShaderi(s Shader, pname Enum) int

GetRenderbufferParameteri returns a parameter value for a shader.

http://www.khronos.org/opengles/sdk/docs/man3/html/glGetShaderiv.xhtml

func GetString

func GetString(pname Enum) string

GetString reports current GL state.

Valid name values:

EXTENSIONS
RENDERER
SHADING_LANGUAGE_VERSION
VENDOR
VERSION

http://www.khronos.org/opengles/sdk/docs/man3/html/glGetString.xhtml

func GetTexParameterfv

func GetTexParameterfv(dst []float32, target, pname Enum)

GetTexParameterfv returns the float values of a texture parameter.

http://www.khronos.org/opengles/sdk/docs/man3/html/glGetTexParameter.xhtml

func GetTexParameteriv

func GetTexParameteriv(dst []int32, target, pname Enum)

GetTexParameteriv returns the int values of a texture parameter.

http://www.khronos.org/opengles/sdk/docs/man3/html/glGetTexParameter.xhtml

func GetUniformfv

func GetUniformfv(dst []float32, src Uniform, p Program)

GetUniformfv returns the float values of a uniform variable.

http://www.khronos.org/opengles/sdk/docs/man3/html/glGetUniform.xhtml

func GetUniformiv

func GetUniformiv(dst []int32, src Uniform, p Program)

GetUniformiv returns the float values of a uniform variable.

http://www.khronos.org/opengles/sdk/docs/man3/html/glGetUniform.xhtml

func GetVertexAttribf

func GetVertexAttribf(src Attrib, pname Enum) float32

GetVertexAttribf reads the float value of a vertex attribute.

http://www.khronos.org/opengles/sdk/docs/man3/html/glGetVertexAttrib.xhtml

func GetVertexAttribfv

func GetVertexAttribfv(dst []float32, src Attrib, pname Enum)

GetVertexAttribfv reads float values of a vertex attribute.

http://www.khronos.org/opengles/sdk/docs/man3/html/glGetVertexAttrib.xhtml

func GetVertexAttribi

func GetVertexAttribi(src Attrib, pname Enum) int32

GetVertexAttribi reads the int value of a vertex attribute.

http://www.khronos.org/opengles/sdk/docs/man3/html/glGetVertexAttrib.xhtml

func GetVertexAttribiv

func GetVertexAttribiv(dst []int32, src Attrib, pname Enum)

GetVertexAttribiv reads int values of a vertex attribute.

http://www.khronos.org/opengles/sdk/docs/man3/html/glGetVertexAttrib.xhtml

func Hint

func Hint(target, mode Enum)

Hint sets implementation-specific modes.

http://www.khronos.org/opengles/sdk/docs/man3/html/glHint.xhtml

func IsBuffer

func IsBuffer(b Buffer) bool

IsBuffer reports if b is a valid buffer.

http://www.khronos.org/opengles/sdk/docs/man3/html/glIsBuffer.xhtml

func IsEnabled

func IsEnabled(cap Enum) bool

IsEnabled reports if cap is an enabled capability.

http://www.khronos.org/opengles/sdk/docs/man3/html/glIsEnabled.xhtml

func IsFramebuffer

func IsFramebuffer(fb Framebuffer) bool

IsFramebuffer reports if fb is a valid frame buffer.

http://www.khronos.org/opengles/sdk/docs/man3/html/glIsFramebuffer.xhtml

func IsProgram

func IsProgram(p Program) bool

IsProgram reports if p is a valid program object.

http://www.khronos.org/opengles/sdk/docs/man3/html/glIsProgram.xhtml

func IsRenderbuffer

func IsRenderbuffer(rb Renderbuffer) bool

IsRenderbuffer reports if rb is a valid render buffer.

http://www.khronos.org/opengles/sdk/docs/man3/html/glIsRenderbuffer.xhtml

func IsShader

func IsShader(s Shader) bool

IsShader reports if s is valid shader.

http://www.khronos.org/opengles/sdk/docs/man3/html/glIsShader.xhtml

func IsTexture

func IsTexture(t Texture) bool

IsTexture reports if t is a valid texture.

http://www.khronos.org/opengles/sdk/docs/man3/html/glIsTexture.xhtml

func LineWidth

func LineWidth(width float32)

LineWidth specifies the width of lines.

http://www.khronos.org/opengles/sdk/docs/man3/html/glLineWidth.xhtml

func LinkProgram

func LinkProgram(p Program)

LinkProgram links the specified program.

http://www.khronos.org/opengles/sdk/docs/man3/html/glLinkProgram.xhtml

func ObjectLabel

func ObjectLabel(o Object, label string)

ObjectLabel labels a named object identified within a namespace.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glObjectLabel.xhtml

func PixelStorei

func PixelStorei(pname Enum, param int32)

PixelStorei sets pixel storage parameters.

http://www.khronos.org/opengles/sdk/docs/man3/html/glPixelStorei.xhtml

func PolygonOffset

func PolygonOffset(factor, units float32)

PolygonOffset sets the scaling factors for depth offsets.

http://www.khronos.org/opengles/sdk/docs/man3/html/glPolygonOffset.xhtml

func ReadPixels

func ReadPixels(dst []byte, x, y, width, height int, format, ty Enum)

ReadPixels returns pixel data from a buffer.

http://www.khronos.org/opengles/sdk/docs/man3/html/glReadPixels.xhtml

func ReleaseShaderCompiler

func ReleaseShaderCompiler()

ReleaseShaderCompiler frees resources allocated by the shader compiler.

http://www.khronos.org/opengles/sdk/docs/man3/html/glReleaseShaderCompiler.xhtml

func RenderbufferStorage

func RenderbufferStorage(target, internalFormat Enum, width, height int)

RenderbufferStorage establishes the data storage, format, and dimensions of a renderbuffer object's image.

http://www.khronos.org/opengles/sdk/docs/man3/html/glRenderbufferStorage.xhtml

func SampleCoverage

func SampleCoverage(value float32, invert bool)

SampleCoverage sets multisample coverage parameters.

http://www.khronos.org/opengles/sdk/docs/man3/html/glSampleCoverage.xhtml

func Scissor

func Scissor(x, y, width, height int32)

Scissor defines the scissor box rectangle, in window coordinates.

http://www.khronos.org/opengles/sdk/docs/man3/html/glScissor.xhtml

func ShaderSource

func ShaderSource(s Shader, src string)

ShaderSource sets the source code of s to the given source code.

http://www.khronos.org/opengles/sdk/docs/man3/html/glShaderSource.xhtml

func StencilFunc

func StencilFunc(fn Enum, ref int, mask uint32)

StencilFunc sets the front and back stencil test reference value.

http://www.khronos.org/opengles/sdk/docs/man3/html/glStencilFunc.xhtml

func StencilFuncSeparate

func StencilFuncSeparate(face, fn Enum, ref int, mask uint32)

StencilFunc sets the front or back stencil test reference value.

http://www.khronos.org/opengles/sdk/docs/man3/html/glStencilFuncSeparate.xhtml

func StencilMask

func StencilMask(mask uint32)

StencilMask controls the writing of bits in the stencil planes.

http://www.khronos.org/opengles/sdk/docs/man3/html/glStencilMask.xhtml

func StencilMaskSeparate

func StencilMaskSeparate(face Enum, mask uint32)

StencilMaskSeparate controls the writing of bits in the stencil planes.

http://www.khronos.org/opengles/sdk/docs/man3/html/glStencilMaskSeparate.xhtml

func StencilOp

func StencilOp(fail, zfail, zpass Enum)

StencilOp sets front and back stencil test actions.

http://www.khronos.org/opengles/sdk/docs/man3/html/glStencilOp.xhtml

func StencilOpSeparate

func StencilOpSeparate(face, sfail, dpfail, dppass Enum)

StencilOpSeparate sets front or back stencil tests.

http://www.khronos.org/opengles/sdk/docs/man3/html/glStencilOpSeparate.xhtml

func TexImage2D

func TexImage2D(target Enum, level int, width, height int, format Enum, ty Enum, data []byte)

TexImage2D writes a 2D texture image.

http://www.khronos.org/opengles/sdk/docs/man3/html/glTexImage2D.xhtml

func TexImage2DMultisample

func TexImage2DMultisample(target Enum, samples int, internalformat Enum, width, height int, fixedsamplelocations bool)

TexImage2DMultisample configures a multisample texture.

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glTexImage2DMultisample.xhtml

func TexParameterf

func TexParameterf(target, pname Enum, param float32)

TexParameterf sets a float texture parameter.

http://www.khronos.org/opengles/sdk/docs/man3/html/glTexParameter.xhtml

func TexParameterfv

func TexParameterfv(target, pname Enum, params []float32)

TexParameterfv sets a float texture parameter array.

http://www.khronos.org/opengles/sdk/docs/man3/html/glTexParameter.xhtml

func TexParameteri

func TexParameteri(target, pname Enum, param int)

TexParameteri sets an integer texture parameter.

http://www.khronos.org/opengles/sdk/docs/man3/html/glTexParameter.xhtml

func TexParameteriv

func TexParameteriv(target, pname Enum, params []int32)

TexParameteriv sets an integer texture parameter array.

http://www.khronos.org/opengles/sdk/docs/man3/html/glTexParameter.xhtml

func TexSubImage2D

func TexSubImage2D(target Enum, level int, x, y, width, height int, format, ty Enum, data []byte)

TexSubImage2D writes a subregion of a 2D texture image.

http://www.khronos.org/opengles/sdk/docs/man3/html/glTexSubImage2D.xhtml

func Uniform1f

func Uniform1f(dst Uniform, v float32)

Uniform1f writes a float uniform variable.

http://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml

func Uniform1fv

func Uniform1fv(dst Uniform, src []float32)

Uniform1fv writes a [len(src)]float uniform array.

http://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml

func Uniform1i

func Uniform1i(dst Uniform, v int)

Uniform1i writes an int uniform variable.

Uniform1i and Uniform1iv are the only two functions that may be used to load uniform variables defined as sampler types. Loading samplers with any other function will result in a INVALID_OPERATION error.

http://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml

func Uniform1iv

func Uniform1iv(dst Uniform, src []int32)

Uniform1iv writes a int uniform array of len(src) elements.

Uniform1i and Uniform1iv are the only two functions that may be used to load uniform variables defined as sampler types. Loading samplers with any other function will result in a INVALID_OPERATION error.

http://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml

func Uniform2f

func Uniform2f(dst Uniform, v0, v1 float32)

Uniform2f writes a vec2 uniform variable.

http://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml

func Uniform2fv

func Uniform2fv(dst Uniform, src []float32)

Uniform2fv writes a vec2 uniform array of len(src)/2 elements.

http://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml

func Uniform2i

func Uniform2i(dst Uniform, v0, v1 int)

Uniform2i writes an ivec2 uniform variable.

http://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml

func Uniform2iv

func Uniform2iv(dst Uniform, src []int32)

Uniform2iv writes an ivec2 uniform array of len(src)/2 elements.

http://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml

func Uniform3f

func Uniform3f(dst Uniform, v0, v1, v2 float32)

Uniform3f writes a vec3 uniform variable.

http://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml

func Uniform3fv

func Uniform3fv(dst Uniform, src []float32)

Uniform3fv writes a vec3 uniform array of len(src)/3 elements.

http://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml

func Uniform3i

func Uniform3i(dst Uniform, v0, v1, v2 int32)

Uniform3i writes an ivec3 uniform variable.

http://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml

func Uniform3iv

func Uniform3iv(dst Uniform, src []int32)

Uniform3iv writes an ivec3 uniform array of len(src)/3 elements.

http://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml

func Uniform4f

func Uniform4f(dst Uniform, v0, v1, v2, v3 float32)

Uniform4f writes a vec4 uniform variable.

http://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml

func Uniform4fv

func Uniform4fv(dst Uniform, src []float32)

Uniform4fv writes a vec4 uniform array of len(src)/4 elements.

http://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml

func Uniform4i

func Uniform4i(dst Uniform, v0, v1, v2, v3 int32)

Uniform4i writes an ivec4 uniform variable.

http://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml

func Uniform4iv

func Uniform4iv(dst Uniform, src []int32)

Uniform4i writes an ivec4 uniform array of len(src)/4 elements.

http://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml

func UniformMatrix2fv

func UniformMatrix2fv(dst Uniform, src []float32)

UniformMatrix2fv writes 2x2 matrices. Each matrix uses four float32 values, so the number of matrices written is len(src)/4.

Each matrix must be supplied in column major order.

http://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml

func UniformMatrix3fv

func UniformMatrix3fv(dst Uniform, src []float32)

UniformMatrix3fv writes 3x3 matrices. Each matrix uses nine float32 values, so the number of matrices written is len(src)/9.

Each matrix must be supplied in column major order.

http://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml

func UniformMatrix4fv

func UniformMatrix4fv(dst Uniform, src []float32)

UniformMatrix4fv writes 4x4 matrices. Each matrix uses 16 float32 values, so the number of matrices written is len(src)/16.

Each matrix must be supplied in column major order.

http://www.khronos.org/opengles/sdk/docs/man3/html/glUniform.xhtml

func UseProgram

func UseProgram(p Program)

UseProgram sets the active program.

http://www.khronos.org/opengles/sdk/docs/man3/html/glUseProgram.xhtml

func ValidateProgram

func ValidateProgram(p Program)

ValidateProgram checks to see whether the executables contained in program can execute given the current OpenGL state.

Typically only used for debugging.

http://www.khronos.org/opengles/sdk/docs/man3/html/glValidateProgram.xhtml

func VertexAttrib1f

func VertexAttrib1f(dst Attrib, x float32)

VertexAttrib1f writes a float vertex attribute.

http://www.khronos.org/opengles/sdk/docs/man3/html/glVertexAttrib.xhtml

func VertexAttrib1fv

func VertexAttrib1fv(dst Attrib, src []float32)

VertexAttrib1fv writes a float vertex attribute.

http://www.khronos.org/opengles/sdk/docs/man3/html/glVertexAttrib.xhtml

func VertexAttrib2f

func VertexAttrib2f(dst Attrib, x, y float32)

VertexAttrib2f writes a vec2 vertex attribute.

http://www.khronos.org/opengles/sdk/docs/man3/html/glVertexAttrib.xhtml

func VertexAttrib2fv

func VertexAttrib2fv(dst Attrib, src []float32)

VertexAttrib2fv writes a vec2 vertex attribute.

http://www.khronos.org/opengles/sdk/docs/man3/html/glVertexAttrib.xhtml

func VertexAttrib3f

func VertexAttrib3f(dst Attrib, x, y, z float32)

VertexAttrib3f writes a vec3 vertex attribute.

http://www.khronos.org/opengles/sdk/docs/man3/html/glVertexAttrib.xhtml

func VertexAttrib3fv

func VertexAttrib3fv(dst Attrib, src []float32)

VertexAttrib3fv writes a vec3 vertex attribute.

http://www.khronos.org/opengles/sdk/docs/man3/html/glVertexAttrib.xhtml

func VertexAttrib4f

func VertexAttrib4f(dst Attrib, x, y, z, w float32)

VertexAttrib4f writes a vec4 vertex attribute.

http://www.khronos.org/opengles/sdk/docs/man3/html/glVertexAttrib.xhtml

func VertexAttrib4fv

func VertexAttrib4fv(dst Attrib, src []float32)

VertexAttrib4fv writes a vec4 vertex attribute.

http://www.khronos.org/opengles/sdk/docs/man3/html/glVertexAttrib.xhtml

func VertexAttribPointer

func VertexAttribPointer(dst Attrib, size int, ty Enum, normalized bool, stride, offset int)

VertexAttribPointer uses a bound buffer to define vertex attribute data.

Direct use of VertexAttribPointer to load data into OpenGL is not supported via the Go bindings. Instead, use BindBuffer with an ARRAY_BUFFER and then fill it using BufferData.

The size argument specifies the number of components per attribute, between 1-4. The stride argument specifies the byte offset between consecutive vertex attributes.

http://www.khronos.org/opengles/sdk/docs/man3/html/glVertexAttribPointer.xhtml

func Viewport

func Viewport(x, y, width, height int)

Viewport sets the viewport, an affine transformation that normalizes device coordinates to window coordinates.

http://www.khronos.org/opengles/sdk/docs/man3/html/glViewport.xhtml

Types

type Attrib

type Attrib struct {
	Value uint
}

Attrib identifies the location of a specific attribute variable.

var NoAttrib Attrib

func GetAttribLocation

func GetAttribLocation(p Program, name string) Attrib

GetAttribLocation returns the location of an attribute variable.

http://www.khronos.org/opengles/sdk/docs/man3/html/glGetAttribLocation.xhtml

func (Attrib) IsValid

func (v Attrib) IsValid() bool

type Buffer

type Buffer struct {
	Value uint32
}

Buffer identifies a GL buffer object.

var NoBuffer Buffer

func CreateBuffer

func CreateBuffer() Buffer

CreateBuffer creates a buffer object.

http://www.khronos.org/opengles/sdk/docs/man3/html/glGenBuffers.xhtml

func (Buffer) Identifier

func (b Buffer) Identifier() Enum

func (Buffer) IsValid

func (v Buffer) IsValid() bool

func (Buffer) Name

func (b Buffer) Name() uint32

type Enum

type Enum uint32

Enum is equivalent to GLenum, and is normally used with one of the constants defined in this package.

func CheckFramebufferStatus

func CheckFramebufferStatus(target Enum) Enum

CheckFramebufferStatus reports the completeness status of the active framebuffer.

http://www.khronos.org/opengles/sdk/docs/man3/html/glCheckFramebufferStatus.xhtml

func GetActiveAttrib

func GetActiveAttrib(p Program, index uint32) (name string, size int, ty Enum)

GetActiveAttrib returns details about an active attribute variable. A value of 0 for index selects the first active attribute variable. Permissible values for index range from 0 to the number of active attribute variables minus 1.

http://www.khronos.org/opengles/sdk/docs/man3/html/glGetActiveAttrib.xhtml

func GetActiveUniform

func GetActiveUniform(p Program, index uint32) (name string, size int, ty Enum)

GetActiveUniform returns details about an active uniform variable. A value of 0 for index selects the first active uniform variable. Permissible values for index range from 0 to the number of active uniform variables minus 1.

http://www.khronos.org/opengles/sdk/docs/man3/html/glGetActiveUniform.xhtml

func GetError

func GetError() Enum

GetError returns the next error.

http://www.khronos.org/opengles/sdk/docs/man3/html/glGetError.xhtml

type Framebuffer

type Framebuffer struct {
	Value uint32
}

Framebuffer identifies a GL framebuffer.

var NoFramebuffer Framebuffer

func CreateFramebuffer

func CreateFramebuffer() Framebuffer

CreateFramebuffer creates a framebuffer object.

http://www.khronos.org/opengles/sdk/docs/man3/html/glGenFramebuffers.xhtml

func GetBoundFramebuffer

func GetBoundFramebuffer() Framebuffer

GetBoundFramebuffer returns the currently bound framebuffer. Use this method instead of gl.GetInteger(gl.FRAMEBUFFER_BINDING) to enable support on all platforms

func (Framebuffer) Identifier

func (fb Framebuffer) Identifier() Enum

func (Framebuffer) IsValid

func (v Framebuffer) IsValid() bool

func (Framebuffer) Name

func (fb Framebuffer) Name() uint32

type Object

type Object interface {
	Identifier() Enum
	Name() uint32
}

Object is a generic interface for OpenGL objects

type Program

type Program struct {
	Value uint32
}

Program identifies a compiled shader program.

var NoProgram Program

func CreateProgram

func CreateProgram() Program

CreateProgram creates a new empty program object.

http://www.khronos.org/opengles/sdk/docs/man3/html/glCreateProgram.xhtml

func (Program) Identifier

func (p Program) Identifier() Enum

Implement Identifier() for the Object interface

func (Program) IsValid

func (v Program) IsValid() bool

func (Program) Name

func (p Program) Name() uint32

Implement Name() for the Object interface

type Renderbuffer

type Renderbuffer struct {
	Value uint32
}

A Renderbuffer is a GL object that holds an image in an internal format.

var NoRenderbuffer Renderbuffer

func CreateRenderbuffer

func CreateRenderbuffer() Renderbuffer

CreateRenderbuffer create a renderbuffer object.

http://www.khronos.org/opengles/sdk/docs/man3/html/glGenRenderbuffers.xhtml

func (Renderbuffer) Identifier

func (rb Renderbuffer) Identifier() Enum

func (Renderbuffer) IsValid

func (v Renderbuffer) IsValid() bool

func (Renderbuffer) Name

func (rb Renderbuffer) Name() uint32

type Shader

type Shader struct {
	Value uint32
}

Shader identifies a GLSL shader.

var NoShader Shader

func CreateShader

func CreateShader(ty Enum) Shader

CreateShader creates a new empty shader object.

http://www.khronos.org/opengles/sdk/docs/man3/html/glCreateShader.xhtml

func GetAttachedShaders

func GetAttachedShaders(p Program) []Shader

GetAttachedShaders returns the shader objects attached to program p.

http://www.khronos.org/opengles/sdk/docs/man3/html/glGetAttachedShaders.xhtml

func (Shader) Identifier

func (s Shader) Identifier() Enum

func (Shader) IsValid

func (v Shader) IsValid() bool

func (Shader) Name

func (s Shader) Name() uint32

type Texture

type Texture struct {
	Value uint32
}

A Texture identifies a GL texture unit.

var NoTexture Texture

func CreateTexture

func CreateTexture() Texture

CreateTexture creates a texture object.

http://www.khronos.org/opengles/sdk/docs/man3/html/glGenTextures.xhtml

func (Texture) Identifier

func (t Texture) Identifier() Enum

func (Texture) IsValid

func (v Texture) IsValid() bool

func (Texture) Name

func (t Texture) Name() uint32

type Uniform

type Uniform struct {
	Value int32
}

Uniform identifies the location of a specific uniform variable.

var NoUniform Uniform

func GetUniformLocation

func GetUniformLocation(p Program, name string) Uniform

GetUniformLocation returns the location of a uniform variable.

http://www.khronos.org/opengles/sdk/docs/man3/html/glGetUniformLocation.xhtml

func (Uniform) IsValid

func (v Uniform) IsValid() bool

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL