in gl/work_windows.go [109:410]
func fixFloat(x0, x1, x2, x3 uintptr)
func (ctx *context) doWork(c call) (ret uintptr) {
if runtime.GOARCH == "amd64" {
fixFloat(c.args.a0, c.args.a1, c.args.a2, c.args.a3)
}
switch c.args.fn {
case glfnActiveTexture:
syscall.Syscall(glActiveTexture.Addr(), 1, c.args.a0, 0, 0)
case glfnAttachShader:
syscall.Syscall(glAttachShader.Addr(), 2, c.args.a0, c.args.a1, 0)
case glfnBindAttribLocation:
syscall.Syscall(glBindAttribLocation.Addr(), 3, c.args.a0, c.args.a1, c.args.a2)
case glfnBindBuffer:
syscall.Syscall(glBindBuffer.Addr(), 2, c.args.a0, c.args.a1, 0)
case glfnBindFramebuffer:
syscall.Syscall(glBindFramebuffer.Addr(), 2, c.args.a0, c.args.a1, 0)
case glfnBindRenderbuffer:
syscall.Syscall(glBindRenderbuffer.Addr(), 2, c.args.a0, c.args.a1, 0)
case glfnBindTexture:
syscall.Syscall(glBindTexture.Addr(), 2, c.args.a0, c.args.a1, 0)
case glfnBindVertexArray:
syscall.Syscall(glBindVertexArray.Addr(), 1, c.args.a0, 0, 0)
case glfnBlendColor:
syscall.Syscall6(glBlendColor.Addr(), 4, c.args.a0, c.args.a1, c.args.a2, c.args.a3, 0, 0)
case glfnBlendEquation:
syscall.Syscall(glBlendEquation.Addr(), 1, c.args.a0, 0, 0)
case glfnBlendEquationSeparate:
syscall.Syscall(glBlendEquationSeparate.Addr(), 2, c.args.a0, c.args.a1, 0)
case glfnBlendFunc:
syscall.Syscall(glBlendFunc.Addr(), 2, c.args.a0, c.args.a1, 0)
case glfnBlendFuncSeparate:
syscall.Syscall6(glBlendFuncSeparate.Addr(), 4, c.args.a0, c.args.a1, c.args.a2, c.args.a3, 0, 0)
case glfnBufferData:
syscall.Syscall6(glBufferData.Addr(), 4, c.args.a0, c.args.a1, uintptr(c.parg), c.args.a2, 0, 0)
case glfnBufferSubData:
syscall.Syscall6(glBufferSubData.Addr(), 4, c.args.a0, c.args.a1, c.args.a2, uintptr(c.parg), 0, 0)
case glfnCheckFramebufferStatus:
ret, _, _ = syscall.Syscall(glCheckFramebufferStatus.Addr(), 1, c.args.a0, 0, 0)
case glfnClear:
syscall.Syscall(glClear.Addr(), 1, c.args.a0, 0, 0)
case glfnClearColor:
syscall.Syscall6(glClearColor.Addr(), 4, c.args.a0, c.args.a1, c.args.a2, c.args.a3, 0, 0)
case glfnClearDepthf:
syscall.Syscall6(glClearDepthf.Addr(), 1, c.args.a0, 0, 0, 0, 0, 0)
case glfnClearStencil:
syscall.Syscall(glClearStencil.Addr(), 1, c.args.a0, 0, 0)
case glfnColorMask:
syscall.Syscall6(glColorMask.Addr(), 4, c.args.a0, c.args.a1, c.args.a2, c.args.a3, 0, 0)
case glfnCompileShader:
syscall.Syscall(glCompileShader.Addr(), 1, c.args.a0, 0, 0)
case glfnCompressedTexImage2D:
syscall.Syscall9(glCompressedTexImage2D.Addr(), 8, c.args.a0, c.args.a1, c.args.a2, c.args.a3, c.args.a4, c.args.a5, c.args.a6, uintptr(c.parg), 0)
case glfnCompressedTexSubImage2D:
syscall.Syscall9(glCompressedTexSubImage2D.Addr(), 9, c.args.a0, c.args.a1, c.args.a2, c.args.a3, c.args.a4, c.args.a5, c.args.a6, c.args.a7, uintptr(c.parg))
case glfnCopyTexImage2D:
syscall.Syscall9(glCopyTexImage2D.Addr(), 8, c.args.a0, c.args.a1, c.args.a2, c.args.a3, c.args.a4, c.args.a5, c.args.a6, c.args.a7, 0)
case glfnCopyTexSubImage2D:
syscall.Syscall9(glCopyTexSubImage2D.Addr(), 8, c.args.a0, c.args.a1, c.args.a2, c.args.a3, c.args.a4, c.args.a5, c.args.a6, c.args.a7, 0)
case glfnCreateProgram:
ret, _, _ = syscall.Syscall(glCreateProgram.Addr(), 0, 0, 0, 0)
case glfnCreateShader:
ret, _, _ = syscall.Syscall(glCreateShader.Addr(), 1, c.args.a0, 0, 0)
case glfnCullFace:
syscall.Syscall(glCullFace.Addr(), 1, c.args.a0, 0, 0)
case glfnDeleteBuffer:
syscall.Syscall(glDeleteBuffers.Addr(), 2, 1, uintptr(unsafe.Pointer(&c.args.a0)), 0)
case glfnDeleteFramebuffer:
syscall.Syscall(glDeleteFramebuffers.Addr(), 2, 1, uintptr(unsafe.Pointer(&c.args.a0)), 0)
case glfnDeleteProgram:
syscall.Syscall(glDeleteProgram.Addr(), 1, c.args.a0, 0, 0)
case glfnDeleteRenderbuffer:
syscall.Syscall(glDeleteRenderbuffers.Addr(), 2, 1, uintptr(unsafe.Pointer(&c.args.a0)), 0)
case glfnDeleteShader:
syscall.Syscall(glDeleteShader.Addr(), 1, c.args.a0, 0, 0)
case glfnDeleteVertexArray:
syscall.Syscall(glDeleteVertexArrays.Addr(), 2, 1, uintptr(unsafe.Pointer(&c.args.a0)), 0)
case glfnDeleteTexture:
syscall.Syscall(glDeleteTextures.Addr(), 2, 1, uintptr(unsafe.Pointer(&c.args.a0)), 0)
case glfnDepthFunc:
syscall.Syscall(glDepthFunc.Addr(), 1, c.args.a0, 0, 0)
case glfnDepthRangef:
syscall.Syscall6(glDepthRangef.Addr(), 2, c.args.a0, c.args.a1, 0, 0, 0, 0)
case glfnDepthMask:
syscall.Syscall(glDepthMask.Addr(), 1, c.args.a0, 0, 0)
case glfnDetachShader:
syscall.Syscall(glDetachShader.Addr(), 2, c.args.a0, c.args.a1, 0)
case glfnDisable:
syscall.Syscall(glDisable.Addr(), 1, c.args.a0, 0, 0)
case glfnDisableVertexAttribArray:
syscall.Syscall(glDisableVertexAttribArray.Addr(), 1, c.args.a0, 0, 0)
case glfnDrawArrays:
syscall.Syscall(glDrawArrays.Addr(), 3, c.args.a0, c.args.a1, c.args.a2)
case glfnDrawElements:
syscall.Syscall6(glDrawElements.Addr(), 4, c.args.a0, c.args.a1, c.args.a2, c.args.a3, 0, 0)
case glfnEnable:
syscall.Syscall(glEnable.Addr(), 1, c.args.a0, 0, 0)
case glfnEnableVertexAttribArray:
syscall.Syscall(glEnableVertexAttribArray.Addr(), 1, c.args.a0, 0, 0)
case glfnFinish:
syscall.Syscall(glFinish.Addr(), 0, 0, 0, 0)
case glfnFlush:
syscall.Syscall(glFlush.Addr(), 0, 0, 0, 0)
case glfnFramebufferRenderbuffer:
syscall.Syscall6(glFramebufferRenderbuffer.Addr(), 4, c.args.a0, c.args.a1, c.args.a2, c.args.a3, 0, 0)
case glfnFramebufferTexture2D:
syscall.Syscall6(glFramebufferTexture2D.Addr(), 5, c.args.a0, c.args.a1, c.args.a2, c.args.a3, c.args.a4, 0)
case glfnFrontFace:
syscall.Syscall(glFrontFace.Addr(), 1, c.args.a0, 0, 0)
case glfnGenBuffer:
syscall.Syscall(glGenBuffers.Addr(), 2, 1, uintptr(unsafe.Pointer(&ret)), 0)
case glfnGenFramebuffer:
syscall.Syscall(glGenFramebuffers.Addr(), 2, 1, uintptr(unsafe.Pointer(&ret)), 0)
case glfnGenRenderbuffer:
syscall.Syscall(glGenRenderbuffers.Addr(), 2, 1, uintptr(unsafe.Pointer(&ret)), 0)
case glfnGenVertexArray:
syscall.Syscall(glGenVertexArrays.Addr(), 2, 1, uintptr(unsafe.Pointer(&ret)), 0)
case glfnGenTexture:
syscall.Syscall(glGenTextures.Addr(), 2, 1, uintptr(unsafe.Pointer(&ret)), 0)
case glfnGenerateMipmap:
syscall.Syscall(glGenerateMipmap.Addr(), 1, c.args.a0, 0, 0)
case glfnGetActiveAttrib:
syscall.Syscall9(glGetActiveAttrib.Addr(), 7, c.args.a0, c.args.a1, c.args.a2, 0, uintptr(unsafe.Pointer(&ret)), c.args.a3, uintptr(c.parg), 0, 0)
case glfnGetActiveUniform:
syscall.Syscall9(glGetActiveUniform.Addr(), 7, c.args.a0, c.args.a1, c.args.a2, 0, uintptr(unsafe.Pointer(&ret)), c.args.a3, uintptr(c.parg), 0, 0)
case glfnGetAttachedShaders:
syscall.Syscall6(glGetAttachedShaders.Addr(), 4, c.args.a0, c.args.a1, uintptr(unsafe.Pointer(&ret)), uintptr(c.parg), 0, 0)
case glfnGetAttribLocation:
ret, _, _ = syscall.Syscall(glGetAttribLocation.Addr(), 2, c.args.a0, c.args.a1, 0)
case glfnGetBooleanv:
syscall.Syscall(glGetBooleanv.Addr(), 2, c.args.a0, uintptr(c.parg), 0)
case glfnGetBufferParameteri:
syscall.Syscall(glGetBufferParameteri.Addr(), 3, c.args.a0, c.args.a1, uintptr(unsafe.Pointer(&ret)))
case glfnGetError:
ret, _, _ = syscall.Syscall(glGetError.Addr(), 0, 0, 0, 0)
case glfnGetFloatv:
syscall.Syscall(glGetFloatv.Addr(), 2, c.args.a0, uintptr(c.parg), 0)
case glfnGetFramebufferAttachmentParameteriv:
syscall.Syscall6(glGetFramebufferAttachmentParameteriv.Addr(), 4, c.args.a0, c.args.a1, c.args.a2, uintptr(unsafe.Pointer(&ret)), 0, 0)
case glfnGetIntegerv:
syscall.Syscall(glGetIntegerv.Addr(), 2, c.args.a0, uintptr(c.parg), 0)
case glfnGetProgramInfoLog:
syscall.Syscall6(glGetProgramInfoLog.Addr(), 4, c.args.a0, c.args.a1, 0, uintptr(c.parg), 0, 0)
case glfnGetProgramiv:
syscall.Syscall(glGetProgramiv.Addr(), 3, c.args.a0, c.args.a1, uintptr(unsafe.Pointer(&ret)))
case glfnGetRenderbufferParameteriv:
syscall.Syscall(glGetRenderbufferParameteriv.Addr(), 3, c.args.a0, c.args.a1, uintptr(unsafe.Pointer(&ret)))
case glfnGetShaderInfoLog:
syscall.Syscall6(glGetShaderInfoLog.Addr(), 4, c.args.a0, c.args.a1, 0, uintptr(c.parg), 0, 0)
case glfnGetShaderPrecisionFormat:
// c.parg is a [3]int32. The first [2]int32 of the array is one
// parameter, the final *int32 is another parameter.
syscall.Syscall6(glGetShaderPrecisionFormat.Addr(), 4, c.args.a0, c.args.a1, uintptr(c.parg), uintptr(c.parg)+2*unsafe.Sizeof(uintptr(0)), 0, 0)
case glfnGetShaderSource:
syscall.Syscall6(glGetShaderSource.Addr(), 4, c.args.a0, c.args.a1, 0, uintptr(c.parg), 0, 0)
case glfnGetShaderiv:
syscall.Syscall(glGetShaderiv.Addr(), 3, c.args.a0, c.args.a1, uintptr(unsafe.Pointer(&ret)))
case glfnGetString:
ret, _, _ = syscall.Syscall(glGetString.Addr(), 1, c.args.a0, 0, 0)
case glfnGetTexParameterfv:
syscall.Syscall(glGetTexParameterfv.Addr(), 3, c.args.a0, c.args.a1, uintptr(c.parg))
case glfnGetTexParameteriv:
syscall.Syscall(glGetTexParameteriv.Addr(), 3, c.args.a0, c.args.a1, uintptr(c.parg))
case glfnGetUniformLocation:
ret, _, _ = syscall.Syscall(glGetUniformLocation.Addr(), 2, c.args.a0, c.args.a1, 0)
case glfnGetUniformfv:
syscall.Syscall(glGetUniformfv.Addr(), 3, c.args.a0, c.args.a1, uintptr(c.parg))
case glfnGetUniformiv:
syscall.Syscall(glGetUniformiv.Addr(), 3, c.args.a0, c.args.a1, uintptr(c.parg))
case glfnGetVertexAttribfv:
syscall.Syscall(glGetVertexAttribfv.Addr(), 3, c.args.a0, c.args.a1, uintptr(c.parg))
case glfnGetVertexAttribiv:
syscall.Syscall(glGetVertexAttribiv.Addr(), 3, c.args.a0, c.args.a1, uintptr(c.parg))
case glfnHint:
syscall.Syscall(glHint.Addr(), 2, c.args.a0, c.args.a1, 0)
case glfnIsBuffer:
syscall.Syscall(glIsBuffer.Addr(), 1, c.args.a0, 0, 0)
case glfnIsEnabled:
syscall.Syscall(glIsEnabled.Addr(), 1, c.args.a0, 0, 0)
case glfnIsFramebuffer:
syscall.Syscall(glIsFramebuffer.Addr(), 1, c.args.a0, 0, 0)
case glfnIsProgram:
ret, _, _ = syscall.Syscall(glIsProgram.Addr(), 1, c.args.a0, 0, 0)
case glfnIsRenderbuffer:
syscall.Syscall(glIsRenderbuffer.Addr(), 1, c.args.a0, 0, 0)
case glfnIsShader:
syscall.Syscall(glIsShader.Addr(), 1, c.args.a0, 0, 0)
case glfnIsTexture:
syscall.Syscall(glIsTexture.Addr(), 1, c.args.a0, 0, 0)
case glfnLineWidth:
syscall.Syscall(glLineWidth.Addr(), 1, c.args.a0, 0, 0)
case glfnLinkProgram:
syscall.Syscall(glLinkProgram.Addr(), 1, c.args.a0, 0, 0)
case glfnPixelStorei:
syscall.Syscall(glPixelStorei.Addr(), 2, c.args.a0, c.args.a1, 0)
case glfnPolygonOffset:
syscall.Syscall6(glPolygonOffset.Addr(), 2, c.args.a0, c.args.a1, 0, 0, 0, 0)
case glfnReadPixels:
syscall.Syscall9(glReadPixels.Addr(), 7, c.args.a0, c.args.a1, c.args.a2, c.args.a3, c.args.a4, c.args.a5, uintptr(c.parg), 0, 0)
case glfnReleaseShaderCompiler:
syscall.Syscall(glReleaseShaderCompiler.Addr(), 0, 0, 0, 0)
case glfnRenderbufferStorage:
syscall.Syscall6(glRenderbufferStorage.Addr(), 4, c.args.a0, c.args.a1, c.args.a2, c.args.a3, 0, 0)
case glfnSampleCoverage:
syscall.Syscall6(glSampleCoverage.Addr(), 1, c.args.a0, 0, 0, 0, 0, 0)
case glfnScissor:
syscall.Syscall6(glScissor.Addr(), 4, c.args.a0, c.args.a1, c.args.a2, c.args.a3, 0, 0)
case glfnShaderSource:
syscall.Syscall6(glShaderSource.Addr(), 4, c.args.a0, c.args.a1, c.args.a2, 0, 0, 0)
case glfnStencilFunc:
syscall.Syscall(glStencilFunc.Addr(), 3, c.args.a0, c.args.a1, c.args.a2)
case glfnStencilFuncSeparate:
syscall.Syscall6(glStencilFuncSeparate.Addr(), 4, c.args.a0, c.args.a1, c.args.a2, c.args.a3, 0, 0)
case glfnStencilMask:
syscall.Syscall(glStencilMask.Addr(), 1, c.args.a0, 0, 0)
case glfnStencilMaskSeparate:
syscall.Syscall(glStencilMaskSeparate.Addr(), 2, c.args.a0, c.args.a1, 0)
case glfnStencilOp:
syscall.Syscall(glStencilOp.Addr(), 3, c.args.a0, c.args.a1, c.args.a2)
case glfnStencilOpSeparate:
syscall.Syscall6(glStencilOpSeparate.Addr(), 4, c.args.a0, c.args.a1, c.args.a2, c.args.a3, 0, 0)
case glfnTexImage2D:
syscall.Syscall9(glTexImage2D.Addr(), 9, c.args.a0, c.args.a1, c.args.a2, c.args.a3, c.args.a4, 0, c.args.a5, c.args.a6, uintptr(c.parg))
case glfnTexParameterf:
syscall.Syscall6(glTexParameterf.Addr(), 3, c.args.a0, c.args.a1, c.args.a2, c.args.a3, c.args.a4, c.args.a5)
case glfnTexParameterfv:
syscall.Syscall(glTexParameterfv.Addr(), 3, c.args.a0, c.args.a1, uintptr(c.parg))
case glfnTexParameteri:
syscall.Syscall(glTexParameteri.Addr(), 3, c.args.a0, c.args.a1, c.args.a2)
case glfnTexParameteriv:
syscall.Syscall(glTexParameteriv.Addr(), 3, c.args.a0, c.args.a1, uintptr(c.parg))
case glfnTexSubImage2D:
syscall.Syscall9(glTexSubImage2D.Addr(), 9, c.args.a0, c.args.a1, c.args.a2, c.args.a3, c.args.a4, c.args.a5, c.args.a6, c.args.a7, uintptr(c.parg))
case glfnUniform1f:
syscall.Syscall6(glUniform1f.Addr(), 2, c.args.a0, c.args.a1, c.args.a2, c.args.a3, c.args.a4, c.args.a5)
case glfnUniform1fv:
syscall.Syscall(glUniform1fv.Addr(), 3, c.args.a0, c.args.a1, uintptr(c.parg))
case glfnUniform1i:
syscall.Syscall(glUniform1i.Addr(), 2, c.args.a0, c.args.a1, 0)
case glfnUniform1iv:
syscall.Syscall(glUniform1iv.Addr(), 3, c.args.a0, c.args.a1, uintptr(c.parg))
case glfnUniform2f:
syscall.Syscall6(glUniform2f.Addr(), 3, c.args.a0, c.args.a1, c.args.a2, c.args.a3, c.args.a4, c.args.a5)
case glfnUniform2fv:
syscall.Syscall(glUniform2fv.Addr(), 3, c.args.a0, c.args.a1, uintptr(c.parg))
case glfnUniform2i:
syscall.Syscall(glUniform2i.Addr(), 3, c.args.a0, c.args.a1, c.args.a2)
case glfnUniform2iv:
syscall.Syscall(glUniform2iv.Addr(), 3, c.args.a0, c.args.a1, uintptr(c.parg))
case glfnUniform3f:
syscall.Syscall6(glUniform3f.Addr(), 4, c.args.a0, c.args.a1, c.args.a2, c.args.a3, c.args.a4, c.args.a5)
case glfnUniform3fv:
syscall.Syscall(glUniform3fv.Addr(), 3, c.args.a0, c.args.a1, uintptr(c.parg))
case glfnUniform3i:
syscall.Syscall6(glUniform3i.Addr(), 4, c.args.a0, c.args.a1, c.args.a2, c.args.a3, 0, 0)
case glfnUniform3iv:
syscall.Syscall(glUniform3iv.Addr(), 3, c.args.a0, c.args.a1, uintptr(c.parg))
case glfnUniform4f:
syscall.Syscall6(glUniform4f.Addr(), 5, c.args.a0, c.args.a1, c.args.a2, c.args.a3, c.args.a4, c.args.a5)
case glfnUniform4fv:
syscall.Syscall(glUniform4fv.Addr(), 3, c.args.a0, c.args.a1, uintptr(c.parg))
case glfnUniform4i:
syscall.Syscall6(glUniform4i.Addr(), 5, c.args.a0, c.args.a1, c.args.a2, c.args.a3, c.args.a4, 0)
case glfnUniform4iv:
syscall.Syscall(glUniform4iv.Addr(), 3, c.args.a0, c.args.a1, uintptr(c.parg))
case glfnUniformMatrix2fv:
syscall.Syscall6(glUniformMatrix2fv.Addr(), 4, c.args.a0, c.args.a1, 0, uintptr(c.parg), 0, 0)
case glfnUniformMatrix3fv:
syscall.Syscall6(glUniformMatrix3fv.Addr(), 4, c.args.a0, c.args.a1, 0, uintptr(c.parg), 0, 0)
case glfnUniformMatrix4fv:
syscall.Syscall6(glUniformMatrix4fv.Addr(), 4, c.args.a0, c.args.a1, 0, uintptr(c.parg), 0, 0)
case glfnUseProgram:
syscall.Syscall(glUseProgram.Addr(), 1, c.args.a0, 0, 0)
case glfnValidateProgram:
syscall.Syscall(glValidateProgram.Addr(), 1, c.args.a0, 0, 0)
case glfnVertexAttrib1f:
syscall.Syscall6(glVertexAttrib1f.Addr(), 2, c.args.a0, c.args.a1, c.args.a2, c.args.a3, c.args.a4, c.args.a5)
case glfnVertexAttrib1fv:
syscall.Syscall(glVertexAttrib1fv.Addr(), 2, c.args.a0, uintptr(c.parg), 0)
case glfnVertexAttrib2f:
syscall.Syscall6(glVertexAttrib2f.Addr(), 3, c.args.a0, c.args.a1, c.args.a2, c.args.a3, c.args.a4, c.args.a5)
case glfnVertexAttrib2fv:
syscall.Syscall(glVertexAttrib2fv.Addr(), 2, c.args.a0, uintptr(c.parg), 0)
case glfnVertexAttrib3f:
syscall.Syscall6(glVertexAttrib3f.Addr(), 4, c.args.a0, c.args.a1, c.args.a2, c.args.a3, c.args.a4, c.args.a5)
case glfnVertexAttrib3fv:
syscall.Syscall(glVertexAttrib3fv.Addr(), 2, c.args.a0, uintptr(c.parg), 0)
case glfnVertexAttrib4f:
syscall.Syscall6(glVertexAttrib4f.Addr(), 5, c.args.a0, c.args.a1, c.args.a2, c.args.a3, c.args.a4, c.args.a5)
case glfnVertexAttrib4fv:
syscall.Syscall(glVertexAttrib4fv.Addr(), 2, c.args.a0, uintptr(c.parg), 0)
case glfnVertexAttribPointer:
syscall.Syscall6(glVertexAttribPointer.Addr(), 6, c.args.a0, c.args.a1, c.args.a2, c.args.a3, c.args.a4, c.args.a5)
case glfnViewport:
syscall.Syscall6(glViewport.Addr(), 4, c.args.a0, c.args.a1, c.args.a2, c.args.a3, 0, 0)
default:
panic("unknown GL function")
}
return ret
}