gl: Index | Files | Directories

package gl

import ""

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 package with [CL 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.


This OpenGL binding has a ContextWatcher, which implements [glfw.ContextWatcher]( interface. Recommended usage is with 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.




Package Files

consts.go doc.go gl_opengl.go types_opengl.go


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
    CULL_FACE                                    = 0x0B44
    BLEND                                        = 0x0BE2
    DITHER                                       = 0x0BD0
    STENCIL_TEST                                 = 0x0B90
    DEPTH_TEST                                   = 0x0B71
    SCISSOR_TEST                                 = 0x0C11
    POLYGON_OFFSET_FILL                          = 0x8037
    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_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
    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
    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
    COLOR_ATTACHMENT0                            = 0x8CE0
    DEPTH_ATTACHMENT                             = 0x8D00
    STENCIL_ATTACHMENT                           = 0x8D20
    FRAMEBUFFER_COMPLETE                         = 0x8CD5
    FRAMEBUFFER_UNSUPPORTED                      = 0x8CDD
    FRAMEBUFFER_BINDING                          = 0x8CA6
    RENDERBUFFER_BINDING                         = 0x8CA7
    MAX_RENDERBUFFER_SIZE                        = 0x84E8
    INVALID_FRAMEBUFFER_OPERATION                = 0x0506
const (
    DEPTH_BUFFER_BIT   = 0x00000100
    STENCIL_BUFFER_BIT = 0x00000400
    COLOR_BUFFER_BIT   = 0x00004000
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
const (
    VERTEX_SHADER   = 0x8B31
const (
    FALSE    = 0
    TRUE     = 1
    ZERO     = 0
    ONE      = 1
    NO_ERROR = 0
    NONE     = 0


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.

func ActiveTexture Uses

func ActiveTexture(texture Enum)

ActiveTexture sets the active texture unit.

func AttachShader Uses

func AttachShader(p Program, s Shader)

AttachShader attaches a shader to a program.

func BindAttribLocation Uses

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

BindAttribLocation binds a vertex attribute index with a named variable.

func BindBuffer Uses

func BindBuffer(target Enum, b Buffer)

BindBuffer binds a buffer.

func BindFramebuffer Uses

func BindFramebuffer(target Enum, fb Framebuffer)

BindFramebuffer binds a framebuffer.

func BindRenderbuffer Uses

func BindRenderbuffer(target Enum, rb Renderbuffer)

BindRenderbuffer binds a render buffer.

func BindTexture Uses

func BindTexture(target Enum, t Texture)

BindTexture binds a texture.

func BlendColor Uses

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

BlendColor sets the blend color.

func BlendEquation Uses

func BlendEquation(mode Enum)

BlendEquation sets both RGB and alpha blend equations.

func BlendEquationSeparate Uses

func BlendEquationSeparate(modeRGB, modeAlpha Enum)

BlendEquationSeparate sets RGB and alpha blend equations separately.

func BlendFunc Uses

func BlendFunc(sfactor, dfactor Enum)

BlendFunc sets the pixel blending factors.

func BlendFuncSeparate Uses

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

BlendFunc sets the pixel RGB and alpha blending factors separately.

func BufferData Uses

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

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

func BufferInit Uses

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

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

func BufferSubData Uses

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

BufferSubData sets some of data in the bound buffer object.

func Clear Uses

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.

func ClearColor Uses

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

ClearColor specifies the RGBA values used to clear color buffers.

func ClearDepthf Uses

func ClearDepthf(d float32)

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

func ClearStencil Uses

func ClearStencil(s int)

ClearStencil sets the index used to clear the stencil buffer.

func ColorMask Uses

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

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

func CompileShader Uses

func CompileShader(s Shader)

CompileShader compiles the source code of s.

func CompressedTexImage2D Uses

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

CompressedTexImage2D writes a compressed 2D texture.

func CompressedTexSubImage2D Uses

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

CompressedTexSubImage2D writes a subregion of a compressed 2D texture.

func CopyTexImage2D Uses

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

CopyTexImage2D writes a 2D texture from the current framebuffer.

func CopyTexSubImage2D Uses

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

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

func CullFace Uses

func CullFace(mode Enum)

CullFace specifies which polygons are candidates for culling.


func DeleteBuffer Uses

func DeleteBuffer(v Buffer)

DeleteBuffer deletes the given buffer object.

func DeleteFramebuffer Uses

func DeleteFramebuffer(v Framebuffer)

DeleteFramebuffer deletes the given framebuffer object.

func DeleteProgram Uses

func DeleteProgram(p Program)

DeleteProgram deletes the given program object.

func DeleteRenderbuffer Uses

func DeleteRenderbuffer(v Renderbuffer)

DeleteRenderbuffer deletes the given render buffer object.

func DeleteShader Uses

func DeleteShader(s Shader)

DeleteShader deletes shader s.

func DeleteTexture Uses

func DeleteTexture(v Texture)

DeleteTexture deletes the given texture object.

func DepthFunc Uses

func DepthFunc(fn Enum)

DepthFunc sets the function used for depth buffer comparisons.

Valid fn values:


func DepthMask Uses

func DepthMask(flag bool)

DepthMask sets the depth buffer enabled for writing.

func DepthRangef Uses

func DepthRangef(n, f float32)

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

func DetachShader Uses

func DetachShader(p Program, s Shader)

DetachShader detaches the shader s from the program p.

func Disable Uses

func Disable(cap Enum)

Disable disables various GL capabilities.

func DisableVertexAttribArray Uses

func DisableVertexAttribArray(a Attrib)

DisableVertexAttribArray disables a vertex attribute array.

func DrawArrays Uses

func DrawArrays(mode Enum, first, count int)

DrawArrays renders geometric primitives from the bound data.

func DrawElements Uses

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

DrawElements renders primitives from a bound buffer.

func Enable Uses

func Enable(cap Enum)

Enable enables various GL capabilities.

func EnableVertexAttribArray Uses

func EnableVertexAttribArray(a Attrib)

EnableVertexAttribArray enables a vertex attribute array.

func Finish Uses

func Finish()

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

func Flush Uses

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.

func FramebufferRenderbuffer Uses

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

FramebufferRenderbuffer attaches rb to the current frame buffer.

func FramebufferTexture2D Uses

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

FramebufferTexture2D attaches the t to the current frame buffer.

func FrontFace Uses

func FrontFace(mode Enum)

FrontFace defines which polygons are front-facing.

Valid modes: CW, CCW.

func GenerateMipmap Uses

func GenerateMipmap(target Enum)

GenerateMipmap generates mipmaps for the current texture.

func GetBooleanv Uses

func GetBooleanv(dst []bool, pname Enum)

GetBooleanv returns the boolean values of parameter pname.

Many boolean parameters can be queried more easily using IsEnabled.

func GetBufferParameteri Uses

func GetBufferParameteri(target, pname Enum) int

GetBufferParameteri returns a parameter for the active buffer.

func GetFloatv Uses

func GetFloatv(dst []float32, pname Enum)

GetFloatv returns the float values of parameter pname.

func GetFramebufferAttachmentParameteri Uses

func GetFramebufferAttachmentParameteri(target, attachment, pname Enum) int

GetFramebufferAttachmentParameteri returns attachment parameters for the active framebuffer object.

func GetInteger Uses

func GetInteger(pname Enum) int

GetInteger returns the int value of parameter pname.

func GetIntegerv Uses

func GetIntegerv(pname Enum, data []int32)

GetIntegerv returns the int values of parameter pname.

Single values may be queried more easily using GetInteger.

func GetProgramInfoLog Uses

func GetProgramInfoLog(p Program) string

GetProgramInfoLog returns the information log for a program.

func GetProgrami Uses

func GetProgrami(p Program, pname Enum) int

GetProgrami returns a parameter value for a program.

func GetRenderbufferParameteri Uses

func GetRenderbufferParameteri(target, pname Enum) int

GetRenderbufferParameteri returns a parameter value for a render buffer.

func GetShaderInfoLog Uses

func GetShaderInfoLog(s Shader) string

GetShaderInfoLog returns the information log for a shader.

func GetShaderPrecisionFormat Uses

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

GetShaderPrecisionFormat returns range and precision limits for shader types.

func GetShaderSource Uses

func GetShaderSource(s Shader) string

GetShaderSource returns source code of shader s.

func GetShaderi Uses

func GetShaderi(s Shader, pname Enum) int

GetRenderbufferParameteri returns a parameter value for a shader.

func GetString Uses

func GetString(pname Enum) string

GetString reports current GL state.

Valid name values:


func GetTexParameterfv Uses

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

GetTexParameterfv returns the float values of a texture parameter.

func GetTexParameteriv Uses

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

GetTexParameteriv returns the int values of a texture parameter.

func GetUniformfv Uses

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

GetUniformfv returns the float values of a uniform variable.

func GetUniformiv Uses

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

GetUniformiv returns the float values of a uniform variable.

func GetVertexAttribf Uses

func GetVertexAttribf(src Attrib, pname Enum) float32

GetVertexAttribf reads the float value of a vertex attribute.

func GetVertexAttribfv Uses

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

GetVertexAttribfv reads float values of a vertex attribute.

func GetVertexAttribi Uses

func GetVertexAttribi(src Attrib, pname Enum) int32

GetVertexAttribi reads the int value of a vertex attribute.

func GetVertexAttribiv Uses

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

GetVertexAttribiv reads int values of a vertex attribute.

func Hint Uses

func Hint(target, mode Enum)

Hint sets implementation-specific modes.

func IsBuffer Uses

func IsBuffer(b Buffer) bool

IsBuffer reports if b is a valid buffer.

func IsEnabled Uses

func IsEnabled(cap Enum) bool

IsEnabled reports if cap is an enabled capability.

func IsFramebuffer Uses

func IsFramebuffer(fb Framebuffer) bool

IsFramebuffer reports if fb is a valid frame buffer.

func IsProgram Uses

func IsProgram(p Program) bool

IsProgram reports if p is a valid program object.

func IsRenderbuffer Uses

func IsRenderbuffer(rb Renderbuffer) bool

IsRenderbuffer reports if rb is a valid render buffer.

func IsShader Uses

func IsShader(s Shader) bool

IsShader reports if s is valid shader.

func IsTexture Uses

func IsTexture(t Texture) bool

IsTexture reports if t is a valid texture.

func LineWidth Uses

func LineWidth(width float32)

LineWidth specifies the width of lines.

func LinkProgram Uses

func LinkProgram(p Program)

LinkProgram links the specified program.

func PixelStorei Uses

func PixelStorei(pname Enum, param int32)

PixelStorei sets pixel storage parameters.

func PolygonOffset Uses

func PolygonOffset(factor, units float32)

PolygonOffset sets the scaling factors for depth offsets.

func ReadPixels Uses

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

ReadPixels returns pixel data from a buffer.

func ReleaseShaderCompiler Uses

func ReleaseShaderCompiler()

ReleaseShaderCompiler frees resources allocated by the shader compiler.

func RenderbufferStorage Uses

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

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

func SampleCoverage Uses

func SampleCoverage(value float32, invert bool)

SampleCoverage sets multisample coverage parameters.

func Scissor Uses

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

Scissor defines the scissor box rectangle, in window coordinates.

func ShaderSource Uses

func ShaderSource(s Shader, src string)

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

func StencilFunc Uses

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

StencilFunc sets the front and back stencil test reference value.

func StencilFuncSeparate Uses

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

StencilFunc sets the front or back stencil test reference value.

func StencilMask Uses

func StencilMask(mask uint32)

StencilMask controls the writing of bits in the stencil planes.

func StencilMaskSeparate Uses

func StencilMaskSeparate(face Enum, mask uint32)

StencilMaskSeparate controls the writing of bits in the stencil planes.

func StencilOp Uses

func StencilOp(fail, zfail, zpass Enum)

StencilOp sets front and back stencil test actions.

func StencilOpSeparate Uses

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

StencilOpSeparate sets front or back stencil tests.

func TexImage2D Uses

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

TexImage2D writes a 2D texture image.

func TexParameterf Uses

func TexParameterf(target, pname Enum, param float32)

TexParameterf sets a float texture parameter.

func TexParameterfv Uses

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

TexParameterfv sets a float texture parameter array.

func TexParameteri Uses

func TexParameteri(target, pname Enum, param int)

TexParameteri sets an integer texture parameter.

func TexParameteriv Uses

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

TexParameteriv sets an integer texture parameter array.

func TexSubImage2D Uses

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.

func Uniform1f Uses

func Uniform1f(dst Uniform, v float32)

Uniform1f writes a float uniform variable.

func Uniform1fv Uses

func Uniform1fv(dst Uniform, src []float32)

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

func Uniform1i Uses

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.

func Uniform1iv Uses

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.

func Uniform2f Uses

func Uniform2f(dst Uniform, v0, v1 float32)

Uniform2f writes a vec2 uniform variable.

func Uniform2fv Uses

func Uniform2fv(dst Uniform, src []float32)

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

func Uniform2i Uses

func Uniform2i(dst Uniform, v0, v1 int)

Uniform2i writes an ivec2 uniform variable.

func Uniform2iv Uses

func Uniform2iv(dst Uniform, src []int32)

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

func Uniform3f Uses

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

Uniform3f writes a vec3 uniform variable.

func Uniform3fv Uses

func Uniform3fv(dst Uniform, src []float32)

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

func Uniform3i Uses

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

Uniform3i writes an ivec3 uniform variable.

func Uniform3iv Uses

func Uniform3iv(dst Uniform, src []int32)

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

func Uniform4f Uses

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

Uniform4f writes a vec4 uniform variable.

func Uniform4fv Uses

func Uniform4fv(dst Uniform, src []float32)

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

func Uniform4i Uses

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

Uniform4i writes an ivec4 uniform variable.

func Uniform4iv Uses

func Uniform4iv(dst Uniform, src []int32)

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

func UniformMatrix2fv Uses

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.

func UniformMatrix3fv Uses

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.

func UniformMatrix4fv Uses

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.

func UseProgram Uses

func UseProgram(p Program)

UseProgram sets the active program.

func ValidateProgram Uses

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.

func VertexAttrib1f Uses

func VertexAttrib1f(dst Attrib, x float32)

VertexAttrib1f writes a float vertex attribute.

func VertexAttrib1fv Uses

func VertexAttrib1fv(dst Attrib, src []float32)

VertexAttrib1fv writes a float vertex attribute.

func VertexAttrib2f Uses

func VertexAttrib2f(dst Attrib, x, y float32)

VertexAttrib2f writes a vec2 vertex attribute.

func VertexAttrib2fv Uses

func VertexAttrib2fv(dst Attrib, src []float32)

VertexAttrib2fv writes a vec2 vertex attribute.

func VertexAttrib3f Uses

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

VertexAttrib3f writes a vec3 vertex attribute.

func VertexAttrib3fv Uses

func VertexAttrib3fv(dst Attrib, src []float32)

VertexAttrib3fv writes a vec3 vertex attribute.

func VertexAttrib4f Uses

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

VertexAttrib4f writes a vec4 vertex attribute.

func VertexAttrib4fv Uses

func VertexAttrib4fv(dst Attrib, src []float32)

VertexAttrib4fv writes a vec4 vertex attribute.

func VertexAttribPointer Uses

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.

func Viewport Uses

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

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

type Attrib Uses

type Attrib struct {
    Value uint

Attrib identifies the location of a specific attribute variable.

func GetAttribLocation Uses

func GetAttribLocation(p Program, name string) Attrib

GetAttribLocation returns the location of an attribute variable.

func (Attrib) Valid Uses

func (v Attrib) Valid() bool

type Buffer Uses

type Buffer struct {
    Value uint32

Buffer identifies a GL buffer object.

func CreateBuffer Uses

func CreateBuffer() Buffer

CreateBuffer creates a buffer object.

func (Buffer) Valid Uses

func (v Buffer) Valid() bool

type Enum Uses

type Enum uint32

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

func CheckFramebufferStatus Uses

func CheckFramebufferStatus(target Enum) Enum

CheckFramebufferStatus reports the completeness status of the active framebuffer.

func GetActiveAttrib Uses

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.

func GetActiveUniform Uses

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.

func GetError Uses

func GetError() Enum

GetError returns the next error.

type Framebuffer Uses

type Framebuffer struct {
    Value uint32

Framebuffer identifies a GL framebuffer.

func CreateFramebuffer Uses

func CreateFramebuffer() Framebuffer

CreateFramebuffer creates a framebuffer object.

func GetBoundFramebuffer Uses

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) Valid Uses

func (v Framebuffer) Valid() bool

type Program Uses

type Program struct {
    Value uint32

Program identifies a compiled shader program.

func CreateProgram Uses

func CreateProgram() Program

CreateProgram creates a new empty program object.

func (Program) Valid Uses

func (v Program) Valid() bool

type Renderbuffer Uses

type Renderbuffer struct {
    Value uint32

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

func CreateRenderbuffer Uses

func CreateRenderbuffer() Renderbuffer

CreateRenderbuffer create a renderbuffer object.

func (Renderbuffer) Valid Uses

func (v Renderbuffer) Valid() bool

type Shader Uses

type Shader struct {
    Value uint32

Shader identifies a GLSL shader.

func CreateShader Uses

func CreateShader(ty Enum) Shader

CreateShader creates a new empty shader object.

func GetAttachedShaders Uses

func GetAttachedShaders(p Program) []Shader

GetAttachedShaders returns the shader objects attached to program p.

func (Shader) Valid Uses

func (v Shader) Valid() bool

type Texture Uses

type Texture struct {
    Value uint32

A Texture identifies a GL texture unit.

func CreateTexture Uses

func CreateTexture() Texture

CreateTexture creates a texture object.

func (Texture) Valid Uses

func (v Texture) Valid() bool

type Uniform Uses

type Uniform struct {
    Value int32

Uniform identifies the location of a specific uniform variable.

func GetUniformLocation Uses

func GetUniformLocation(p Program, name string) Uniform

GetUniformLocation returns the location of a uniform variable.

func (Uniform) Valid Uses

func (v Uniform) Valid() bool


glutilPackage glutil implements OpenGL utility functions.
testPackage test contains tests for goxjs/gl.

Package gl imports 4 packages (graph) and is imported by 59 packages. Updated 2019-01-13. Refresh now. Tools for package owners.