github.com/thommil/tge-mobile@v0.0.0-20190308225214-66a08abd51aa/gl/fn.go (about)

     1  // Copyright 2015 The Go Authors.  All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  package gl
     6  
     7  import "unsafe"
     8  
     9  type call struct {
    10  	args     fnargs
    11  	parg     unsafe.Pointer
    12  	blocking bool
    13  }
    14  
    15  type fnargs struct {
    16  	fn glfn
    17  
    18  	a0 uintptr
    19  	a1 uintptr
    20  	a2 uintptr
    21  	a3 uintptr
    22  	a4 uintptr
    23  	a5 uintptr
    24  	a6 uintptr
    25  	a7 uintptr
    26  	a8 uintptr
    27  	a9 uintptr
    28  }
    29  
    30  type glfn int
    31  
    32  const (
    33  	glfnUNDEFINED glfn = iota
    34  	glfnActiveTexture
    35  	glfnAttachShader
    36  	glfnBindAttribLocation
    37  	glfnBindBuffer
    38  	glfnBindFramebuffer
    39  	glfnBindRenderbuffer
    40  	glfnBindTexture
    41  	glfnBindVertexArray
    42  	glfnBlendColor
    43  	glfnBlendEquation
    44  	glfnBlendEquationSeparate
    45  	glfnBlendFunc
    46  	glfnBlendFuncSeparate
    47  	glfnBufferData
    48  	glfnBufferSubData
    49  	glfnCheckFramebufferStatus
    50  	glfnClear
    51  	glfnClearColor
    52  	glfnClearDepthf
    53  	glfnClearStencil
    54  	glfnColorMask
    55  	glfnCompileShader
    56  	glfnCompressedTexImage2D
    57  	glfnCompressedTexSubImage2D
    58  	glfnCopyTexImage2D
    59  	glfnCopyTexSubImage2D
    60  	glfnCreateProgram
    61  	glfnCreateShader
    62  	glfnCullFace
    63  	glfnDeleteBuffer
    64  	glfnDeleteFramebuffer
    65  	glfnDeleteProgram
    66  	glfnDeleteRenderbuffer
    67  	glfnDeleteShader
    68  	glfnDeleteTexture
    69  	glfnDeleteVertexArray
    70  	glfnDepthFunc
    71  	glfnDepthRangef
    72  	glfnDepthMask
    73  	glfnDetachShader
    74  	glfnDisable
    75  	glfnDisableVertexAttribArray
    76  	glfnDrawArrays
    77  	glfnDrawElements
    78  	glfnEnable
    79  	glfnEnableVertexAttribArray
    80  	glfnFinish
    81  	glfnFlush
    82  	glfnFramebufferRenderbuffer
    83  	glfnFramebufferTexture2D
    84  	glfnFrontFace
    85  	glfnGenBuffer
    86  	glfnGenFramebuffer
    87  	glfnGenRenderbuffer
    88  	glfnGenTexture
    89  	glfnGenVertexArray
    90  	glfnGenerateMipmap
    91  	glfnGetActiveAttrib
    92  	glfnGetActiveUniform
    93  	glfnGetAttachedShaders
    94  	glfnGetAttribLocation
    95  	glfnGetBooleanv
    96  	glfnGetBufferParameteri
    97  	glfnGetError
    98  	glfnGetFloatv
    99  	glfnGetFramebufferAttachmentParameteriv
   100  	glfnGetIntegerv
   101  	glfnGetProgramInfoLog
   102  	glfnGetProgramiv
   103  	glfnGetRenderbufferParameteriv
   104  	glfnGetShaderInfoLog
   105  	glfnGetShaderPrecisionFormat
   106  	glfnGetShaderSource
   107  	glfnGetShaderiv
   108  	glfnGetString
   109  	glfnGetTexParameterfv
   110  	glfnGetTexParameteriv
   111  	glfnGetUniformLocation
   112  	glfnGetUniformfv
   113  	glfnGetUniformiv
   114  	glfnGetVertexAttribfv
   115  	glfnGetVertexAttribiv
   116  	glfnHint
   117  	glfnIsBuffer
   118  	glfnIsEnabled
   119  	glfnIsFramebuffer
   120  	glfnIsProgram
   121  	glfnIsRenderbuffer
   122  	glfnIsShader
   123  	glfnIsTexture
   124  	glfnLineWidth
   125  	glfnLinkProgram
   126  	glfnPixelStorei
   127  	glfnPolygonOffset
   128  	glfnReadPixels
   129  	glfnReleaseShaderCompiler
   130  	glfnRenderbufferStorage
   131  	glfnSampleCoverage
   132  	glfnScissor
   133  	glfnShaderSource
   134  	glfnStencilFunc
   135  	glfnStencilFuncSeparate
   136  	glfnStencilMask
   137  	glfnStencilMaskSeparate
   138  	glfnStencilOp
   139  	glfnStencilOpSeparate
   140  	glfnTexImage2D
   141  	glfnTexParameterf
   142  	glfnTexParameterfv
   143  	glfnTexParameteri
   144  	glfnTexParameteriv
   145  	glfnTexSubImage2D
   146  	glfnUniform1f
   147  	glfnUniform1fv
   148  	glfnUniform1fvP
   149  	glfnUniform1fvUP
   150  	glfnUniform1i
   151  	glfnUniform1iv
   152  	glfnUniform1ivP
   153  	glfnUniform1ivUP
   154  	glfnUniform2f
   155  	glfnUniform2fv
   156  	glfnUniform2fvP
   157  	glfnUniform2fvUP
   158  	glfnUniform2i
   159  	glfnUniform2iv
   160  	glfnUniform2ivP
   161  	glfnUniform2ivUP
   162  	glfnUniform3f
   163  	glfnUniform3fv
   164  	glfnUniform3fvP
   165  	glfnUniform3fvUP
   166  	glfnUniform3i
   167  	glfnUniform3iv
   168  	glfnUniform3ivP
   169  	glfnUniform3ivUP
   170  	glfnUniform4f
   171  	glfnUniform4fv
   172  	glfnUniform4fvP
   173  	glfnUniform4fvUP
   174  	glfnUniform4i
   175  	glfnUniform4iv
   176  	glfnUniform4ivP
   177  	glfnUniform4ivUP
   178  	glfnUniformMatrix2fv
   179  	glfnUniformMatrix2fvP
   180  	glfnUniformMatrix2fvUP
   181  	glfnUniformMatrix3fv
   182  	glfnUniformMatrix3fvP
   183  	glfnUniformMatrix3fvUP
   184  	glfnUniformMatrix4fv
   185  	glfnUniformMatrix4fvP
   186  	glfnUniformMatrix4fvUP
   187  	glfnUseProgram
   188  	glfnValidateProgram
   189  	glfnVertexAttrib1f
   190  	glfnVertexAttrib1fv
   191  	glfnVertexAttrib2f
   192  	glfnVertexAttrib2fv
   193  	glfnVertexAttrib3f
   194  	glfnVertexAttrib3fv
   195  	glfnVertexAttrib4f
   196  	glfnVertexAttrib4fv
   197  	glfnVertexAttribPointer
   198  	glfnViewport
   199  
   200  	// ES 3.0 functions
   201  	glfnUniformMatrix2x3fv
   202  	glfnUniformMatrix3x2fv
   203  	glfnUniformMatrix2x4fv
   204  	glfnUniformMatrix4x2fv
   205  	glfnUniformMatrix3x4fv
   206  	glfnUniformMatrix4x3fv
   207  	glfnBlitFramebuffer
   208  	glfnUniform1ui
   209  	glfnUniform2ui
   210  	glfnUniform3ui
   211  	glfnUniform4ui
   212  	glfnUniform1uiv
   213  	glfnUniform2uiv
   214  	glfnUniform3uiv
   215  	glfnUniform4uiv
   216  )
   217  
   218  func goString(buf []byte) string {
   219  	for i, b := range buf {
   220  		if b == 0 {
   221  			return string(buf[:i])
   222  		}
   223  	}
   224  	panic("buf is not NUL-terminated")
   225  }
   226  
   227  func glBoolean(b bool) uintptr {
   228  	if b {
   229  		return TRUE
   230  	}
   231  	return FALSE
   232  }