asm_dip/toolchain/fasmw17332/EXAMPLES/OPENGL/OPENGL.ASM

615 lines
18 KiB
NASM
Raw Normal View History

2024-11-24 20:13:28 -08:00
; OpenGL programming example
format PE GUI 4.0
entry start
include 'win32a.inc'
include 'opengl.inc'
section '.text' code readable executable
start:
invoke GetModuleHandle,0
mov [wc.hInstance],eax
invoke LoadIcon,0,IDI_APPLICATION
mov [wc.hIcon],eax
invoke LoadCursor,0,IDC_ARROW
mov [wc.hCursor],eax
invoke RegisterClass,wc
invoke CreateWindowEx,0,_class,_title,WS_VISIBLE+WS_OVERLAPPEDWINDOW+WS_CLIPCHILDREN+WS_CLIPSIBLINGS,16,16,432,432,NULL,NULL,[wc.hInstance],NULL
mov [hwnd],eax
msg_loop:
invoke GetMessage,msg,NULL,0,0
or eax,eax
jz end_loop
invoke TranslateMessage,msg
invoke DispatchMessage,msg
jmp msg_loop
end_loop:
invoke ExitProcess,[msg.wParam]
proc WindowProc hwnd,wmsg,wparam,lparam
push ebx esi edi
cmp [wmsg],WM_CREATE
je .wmcreate
cmp [wmsg],WM_SIZE
je .wmsize
cmp [wmsg],WM_PAINT
je .wmpaint
cmp [wmsg],WM_KEYDOWN
je .wmkeydown
cmp [wmsg],WM_DESTROY
je .wmdestroy
.defwndproc:
invoke DefWindowProc,[hwnd],[wmsg],[wparam],[lparam]
jmp .finish
.wmcreate:
invoke GetDC,[hwnd]
mov [hdc],eax
mov edi,pfd
mov ecx,sizeof.PIXELFORMATDESCRIPTOR shr 2
xor eax,eax
rep stosd
mov [pfd.nSize],sizeof.PIXELFORMATDESCRIPTOR
mov [pfd.nVersion],1
mov [pfd.dwFlags],PFD_SUPPORT_OPENGL+PFD_DOUBLEBUFFER+PFD_DRAW_TO_WINDOW
mov [pfd.iLayerType],PFD_MAIN_PLANE
mov [pfd.iPixelType],PFD_TYPE_RGBA
mov [pfd.cColorBits],16
mov [pfd.cDepthBits],16
mov [pfd.cAccumBits],0
mov [pfd.cStencilBits],0
invoke ChoosePixelFormat,[hdc],pfd
invoke SetPixelFormat,[hdc],eax,pfd
invoke wglCreateContext,[hdc]
mov [hrc],eax
invoke wglMakeCurrent,[hdc],[hrc]
invoke GetClientRect,[hwnd],rc
invoke glViewport,0,0,[rc.right],[rc.bottom]
invoke GetTickCount
mov [clock],eax
xor eax,eax
jmp .finish
.wmsize:
invoke GetClientRect,[hwnd],rc
invoke glViewport,0,0,[rc.right],[rc.bottom]
xor eax,eax
jmp .finish
.wmpaint:
invoke GetTickCount
sub eax,[clock]
cmp eax,10
jb .animation_ok
add [clock],eax
invoke glRotatef,[theta],0.0,0.0,1.0
.animation_ok:
invoke glClear,GL_COLOR_BUFFER_BIT
invoke glBegin,GL_QUADS
invoke glColor3f,1.0,0.1,0.1
invoke glVertex3f,-0.6,-0.6,0.0
invoke glColor3f,0.1,0.1,0.1
invoke glVertex3f,0.6,-0.6,0.0
invoke glColor3f,0.1,0.1,1.0
invoke glVertex3f,0.6,0.6,0.0
invoke glColor3f,1.0,0.1,1.0
invoke glVertex3f,-0.6,0.6,0.0
invoke glEnd
invoke SwapBuffers,[hdc]
xor eax,eax
jmp .finish
.wmkeydown:
cmp [wparam],VK_ESCAPE
jne .defwndproc
.wmdestroy:
invoke wglMakeCurrent,0,0
invoke wglDeleteContext,[hrc]
invoke ReleaseDC,[hwnd],[hdc]
invoke PostQuitMessage,0
xor eax,eax
.finish:
pop edi esi ebx
ret
endp
section '.data' data readable writeable
_title db 'OpenGL example',0
_class db 'FASMOPENGL32',0
theta GLfloat 0.6
wc WNDCLASS 0,WindowProc,0,0,NULL,NULL,NULL,NULL,NULL,_class
hwnd dd ?
hdc dd ?
hrc dd ?
msg MSG
rc RECT
pfd PIXELFORMATDESCRIPTOR
clock dd ?
section '.idata' import data readable writeable
library kernel,'KERNEL32.DLL',\
user,'USER32.DLL',\
gdi,'GDI32.DLL',\
opengl,'OPENGL32.DLL',\
glu,'GLU32.DLL'
import kernel,\
GetModuleHandle,'GetModuleHandleA',\
GetTickCount,'GetTickCount',\
ExitProcess,'ExitProcess'
import user,\
RegisterClass,'RegisterClassA',\
CreateWindowEx,'CreateWindowExA',\
DefWindowProc,'DefWindowProcA',\
GetMessage,'GetMessageA',\
TranslateMessage,'TranslateMessage',\
DispatchMessage,'DispatchMessageA',\
LoadCursor,'LoadCursorA',\
LoadIcon,'LoadIconA',\
GetClientRect,'GetClientRect',\
GetDC,'GetDC',\
ReleaseDC,'ReleaseDC',\
PostQuitMessage,'PostQuitMessage'
import gdi,\
ChoosePixelFormat,'ChoosePixelFormat',\
SetPixelFormat,'SetPixelFormat',\
SwapBuffers,'SwapBuffers'
import opengl,\
glAccum,'glAccum',\
glAlphaFunc,'glAlphaFunc',\
glAreTexturesResident,'glAreTexturesResident',\
glArrayElement,'glArrayElement',\
glBegin,'glBegin',\
glBindTexture,'glBindTexture',\
glBitmap,'glBitmap',\
glBlendFunc,'glBlendFunc',\
glCallList,'glCallList',\
glCallLists,'glCallLists',\
glClear,'glClear',\
glClearAccum,'glClearAccum',\
glClearColor,'glClearColor',\
glClearDepth,'glClearDepth',\
glClearIndex,'glClearIndex',\
glClearStencil,'glClearStencil',\
glClipPlane,'glClipPlane',\
glColor3b,'glColor3b',\
glColor3bv,'glColor3bv',\
glColor3d,'glColor3d',\
glColor3dv,'glColor3dv',\
glColor3f,'glColor3f',\
glColor3fv,'glColor3fv',\
glColor3i,'glColor3i',\
glColor3iv,'glColor3iv',\
glColor3s,'glColor3s',\
glColor3sv,'glColor3sv',\
glColor3ub,'glColor3ub',\
glColor3ubv,'glColor3ubv',\
glColor3ui,'glColor3ui',\
glColor3uiv,'glColor3uiv',\
glColor3us,'glColor3us',\
glColor3usv,'glColor3usv',\
glColor4b,'glColor4b',\
glColor4bv,'glColor4bv',\
glColor4d,'glColor4d',\
glColor4dv,'glColor4dv',\
glColor4f,'glColor4f',\
glColor4fv,'glColor4fv',\
glColor4i,'glColor4i',\
glColor4iv,'glColor4iv',\
glColor4s,'glColor4s',\
glColor4sv,'glColor4sv',\
glColor4ub,'glColor4ub',\
glColor4ubv,'glColor4ubv',\
glColor4ui,'glColor4ui',\
glColor4uiv,'glColor4uiv',\
glColor4us,'glColor4us',\
glColor4usv,'glColor4usv',\
glColorMask,'glColorMask',\
glColorMaterial,'glColorMaterial',\
glColorPointer,'glColorPointer',\
glCopyPixels,'glCopyPixels',\
glCopyTexImage1D,'glCopyTexImage1D',\
glCopyTexImage2D,'glCopyTexImage2D',\
glCopyTexSubImage1D,'glCopyTexSubImage1D',\
glCopyTexSubImage2D,'glCopyTexSubImage2D',\
glCullFace,'glCullFace',\
glDeleteLists,'glDeleteLists',\
glDeleteTextures,'glDeleteTextures',\
glDepthFunc,'glDepthFunc',\
glDepthMask,'glDepthMask',\
glDepthRange,'glDepthRange',\
glDisable,'glDisable',\
glDisableClientState,'glDisableClientState',\
glDrawArrays,'glDrawArrays',\
glDrawBuffer,'glDrawBuffer',\
glDrawElements,'glDrawElements',\
glDrawPixels,'glDrawPixels',\
glEdgeFlag,'glEdgeFlag',\
glEdgeFlagPointer,'glEdgeFlagPointer',\
glEdgeFlagv,'glEdgeFlagv',\
glEnable,'glEnable',\
glEnableClientState,'glEnableClientState',\
glEnd,'glEnd',\
glEndList,'glEndList',\
glEvalCoord1d,'glEvalCoord1d',\
glEvalCoord1dv,'glEvalCoord1dv',\
glEvalCoord1f,'glEvalCoord1f',\
glEvalCoord1fv,'glEvalCoord1fv',\
glEvalCoord2d,'glEvalCoord2d',\
glEvalCoord2dv,'glEvalCoord2dv',\
glEvalCoord2f,'glEvalCoord2f',\
glEvalCoord2fv,'glEvalCoord2fv',\
glEvalMesh1,'glEvalMesh1',\
glEvalMesh2,'glEvalMesh2',\
glEvalPoint1,'glEvalPoint1',\
glEvalPoint2,'glEvalPoint2',\
glFeedbackBuffer,'glFeedbackBuffer',\
glFinish,'glFinish',\
glFlush,'glFlush',\
glFogf,'glFogf',\
glFogfv,'glFogfv',\
glFogi,'glFogi',\
glFogiv,'glFogiv',\
glFrontFace,'glFrontFace',\
glFrustum,'glFrustum',\
glGenLists,'glGenLists',\
glGenTextures,'glGenTextures',\
glGetBooleanv,'glGetBooleanv',\
glGetClipPlane,'glGetClipPlane',\
glGetDoublev,'glGetDoublev',\
glGetError,'glGetError',\
glGetFloatv,'glGetFloatv',\
glGetIntegerv,'glGetIntegerv',\
glGetLightfv,'glGetLightfv',\
glGetLightiv,'glGetLightiv',\
glGetMapdv,'glGetMapdv',\
glGetMapfv,'glGetMapfv',\
glGetMapiv,'glGetMapiv',\
glGetMaterialfv,'glGetMaterialfv',\
glGetMaterialiv,'glGetMaterialiv',\
glGetPixelMapfv,'glGetPixelMapfv',\
glGetPixelMapuiv,'glGetPixelMapuiv',\
glGetPixelMapusv,'glGetPixelMapusv',\
glGetPointerv,'glGetPointerv',\
glGetPolygonStipple,'glGetPolygonStipple',\
glGetString,'glGetString',\
glGetTexEnvfv,'glGetTexEnvfv',\
glGetTexEnviv,'glGetTexEnviv',\
glGetTexGendv,'glGetTexGendv',\
glGetTexGenfv,'glGetTexGenfv',\
glGetTexGeniv,'glGetTexGeniv',\
glGetTexImage,'glGetTexImage',\
glGetTexLevelParameterfv,'glGetTexLevelParameterfv',\
glGetTexLevelParameteriv,'glGetTexLevelParameteriv',\
glGetTexParameterfv,'glGetTexParameterfv',\
glGetTexParameteriv,'glGetTexParameteriv',\
glHint,'glHint',\
glIndexMask,'glIndexMask',\
glIndexPointer,'glIndexPointer',\
glIndexd,'glIndexd',\
glIndexdv,'glIndexdv',\
glIndexf,'glIndexf',\
glIndexfv,'glIndexfv',\
glIndexi,'glIndexi',\
glIndexiv,'glIndexiv',\
glIndexs,'glIndexs',\
glIndexsv,'glIndexsv',\
glIndexub,'glIndexub',\
glIndexubv,'glIndexubv',\
glInitNames,'glInitNames',\
glInterleavedArrays,'glInterleavedArrays',\
glIsEnabled,'glIsEnabled',\
glIsList,'glIsList',\
glIsTexture,'glIsTexture',\
glLightModelf,'glLightModelf',\
glLightModelfv,'glLightModelfv',\
glLightModeli,'glLightModeli',\
glLightModeliv,'glLightModeliv',\
glLightf,'glLightf',\
glLightfv,'glLightfv',\
glLighti,'glLighti',\
glLightiv,'glLightiv',\
glLineStipple,'glLineStipple',\
glLineWidth,'glLineWidth',\
glListBase,'glListBase',\
glLoadIdentity,'glLoadIdentity',\
glLoadMatrixd,'glLoadMatrixd',\
glLoadMatrixf,'glLoadMatrixf',\
glLoadName,'glLoadName',\
glLogicOp,'glLogicOp',\
glMap1d,'glMap1d',\
glMap1f,'glMap1f',\
glMap2d,'glMap2d',\
glMap2f,'glMap2f',\
glMapGrid1d,'glMapGrid1d',\
glMapGrid1f,'glMapGrid1f',\
glMapGrid2d,'glMapGrid2d',\
glMapGrid2f,'glMapGrid2f',\
glMaterialf,'glMaterialf',\
glMaterialfv,'glMaterialfv',\
glMateriali,'glMateriali',\
glMaterialiv,'glMaterialiv',\
glMatrixMode,'glMatrixMode',\
glMultMatrixd,'glMultMatrixd',\
glMultMatrixf,'glMultMatrixf',\
glNewList,'glNewList',\
glNormal3b,'glNormal3b',\
glNormal3bv,'glNormal3bv',\
glNormal3d,'glNormal3d',\
glNormal3dv,'glNormal3dv',\
glNormal3f,'glNormal3f',\
glNormal3fv,'glNormal3fv',\
glNormal3i,'glNormal3i',\
glNormal3iv,'glNormal3iv',\
glNormal3s,'glNormal3s',\
glNormal3sv,'glNormal3sv',\
glNormalPointer,'glNormalPointer',\
glOrtho,'glOrtho',\
glPassThrough,'glPassThrough',\
glPixelMapfv,'glPixelMapfv',\
glPixelMapuiv,'glPixelMapuiv',\
glPixelMapusv,'glPixelMapusv',\
glPixelStoref,'glPixelStoref',\
glPixelStorei,'glPixelStorei',\
glPixelTransferf,'glPixelTransferf',\
glPixelTransferi,'glPixelTransferi',\
glPixelZoom,'glPixelZoom',\
glPointSize,'glPointSize',\
glPolygonMode,'glPolygonMode',\
glPolygonOffset,'glPolygonOffset',\
glPolygonStipple,'glPolygonStipple',\
glPopAttrib,'glPopAttrib',\
glPopClientAttrib,'glPopClientAttrib',\
glPopMatrix,'glPopMatrix',\
glPopName,'glPopName',\
glPrioritizeTextures,'glPrioritizeTextures',\
glPushAttrib,'glPushAttrib',\
glPushClientAttrib,'glPushClientAttrib',\
glPushMatrix,'glPushMatrix',\
glPushName,'glPushName',\
glRasterPos2d,'glRasterPos2d',\
glRasterPos2dv,'glRasterPos2dv',\
glRasterPos2f,'glRasterPos2f',\
glRasterPos2fv,'glRasterPos2fv',\
glRasterPos2i,'glRasterPos2i',\
glRasterPos2iv,'glRasterPos2iv',\
glRasterPos2s,'glRasterPos2s',\
glRasterPos2sv,'glRasterPos2sv',\
glRasterPos3d,'glRasterPos3d',\
glRasterPos3dv,'glRasterPos3dv',\
glRasterPos3f,'glRasterPos3f',\
glRasterPos3fv,'glRasterPos3fv',\
glRasterPos3i,'glRasterPos3i',\
glRasterPos3iv,'glRasterPos3iv',\
glRasterPos3s,'glRasterPos3s',\
glRasterPos3sv,'glRasterPos3sv',\
glRasterPos4d,'glRasterPos4d',\
glRasterPos4dv,'glRasterPos4dv',\
glRasterPos4f,'glRasterPos4f',\
glRasterPos4fv,'glRasterPos4fv',\
glRasterPos4i,'glRasterPos4i',\
glRasterPos4iv,'glRasterPos4iv',\
glRasterPos4s,'glRasterPos4s',\
glRasterPos4sv,'glRasterPos4sv',\
glReadBuffer,'glReadBuffer',\
glReadPixels,'glReadPixels',\
glRectd,'glRectd',\
glRectdv,'glRectdv',\
glRectf,'glRectf',\
glRectfv,'glRectfv',\
glRecti,'glRecti',\
glRectiv,'glRectiv',\
glRects,'glRects',\
glRectsv,'glRectsv',\
glRenderMode,'glRenderMode',\
glRotated,'glRotated',\
glRotatef,'glRotatef',\
glScaled,'glScaled',\
glScalef,'glScalef',\
glScissor,'glScissor',\
glSelectBuffer,'glSelectBuffer',\
glShadeModel,'glShadeModel',\
glStencilFunc,'glStencilFunc',\
glStencilMask,'glStencilMask',\
glStencilOp,'glStencilOp',\
glTexCoord1d,'glTexCoord1d',\
glTexCoord1dv,'glTexCoord1dv',\
glTexCoord1f,'glTexCoord1f',\
glTexCoord1fv,'glTexCoord1fv',\
glTexCoord1i,'glTexCoord1i',\
glTexCoord1iv,'glTexCoord1iv',\
glTexCoord1s,'glTexCoord1s',\
glTexCoord1sv,'glTexCoord1sv',\
glTexCoord2d,'glTexCoord2d',\
glTexCoord2dv,'glTexCoord2dv',\
glTexCoord2f,'glTexCoord2f',\
glTexCoord2fv,'glTexCoord2fv',\
glTexCoord2i,'glTexCoord2i',\
glTexCoord2iv,'glTexCoord2iv',\
glTexCoord2s,'glTexCoord2s',\
glTexCoord2sv,'glTexCoord2sv',\
glTexCoord3d,'glTexCoord3d',\
glTexCoord3dv,'glTexCoord3dv',\
glTexCoord3f,'glTexCoord3f',\
glTexCoord3fv,'glTexCoord3fv',\
glTexCoord3i,'glTexCoord3i',\
glTexCoord3iv,'glTexCoord3iv',\
glTexCoord3s,'glTexCoord3s',\
glTexCoord3sv,'glTexCoord3sv',\
glTexCoord4d,'glTexCoord4d',\
glTexCoord4dv,'glTexCoord4dv',\
glTexCoord4f,'glTexCoord4f',\
glTexCoord4fv,'glTexCoord4fv',\
glTexCoord4i,'glTexCoord4i',\
glTexCoord4iv,'glTexCoord4iv',\
glTexCoord4s,'glTexCoord4s',\
glTexCoord4sv,'glTexCoord4sv',\
glTexCoordPointer,'glTexCoordPointer',\
glTexEnvf,'glTexEnvf',\
glTexEnvfv,'glTexEnvfv',\
glTexEnvi,'glTexEnvi',\
glTexEnviv,'glTexEnviv',\
glTexGend,'glTexGend',\
glTexGendv,'glTexGendv',\
glTexGenf,'glTexGenf',\
glTexGenfv,'glTexGenfv',\
glTexGeni,'glTexGeni',\
glTexGeniv,'glTexGeniv',\
glTexImage1D,'glTexImage1D',\
glTexImage2D,'glTexImage2D',\
glTexParameterf,'glTexParameterf',\
glTexParameterfv,'glTexParameterfv',\
glTexParameteri,'glTexParameteri',\
glTexParameteriv,'glTexParameteriv',\
glTexSubImage1D,'glTexSubImage1D',\
glTexSubImage2D,'glTexSubImage2D',\
glTranslated,'glTranslated',\
glTranslatef,'glTranslatef',\
glVertex2d,'glVertex2d',\
glVertex2dv,'glVertex2dv',\
glVertex2f,'glVertex2f',\
glVertex2fv,'glVertex2fv',\
glVertex2i,'glVertex2i',\
glVertex2iv,'glVertex2iv',\
glVertex2s,'glVertex2s',\
glVertex2sv,'glVertex2sv',\
glVertex3d,'glVertex3d',\
glVertex3dv,'glVertex3dv',\
glVertex3f,'glVertex3f',\
glVertex3fv,'glVertex3fv',\
glVertex3i,'glVertex3i',\
glVertex3iv,'glVertex3iv',\
glVertex3s,'glVertex3s',\
glVertex3sv,'glVertex3sv',\
glVertex4d,'glVertex4d',\
glVertex4dv,'glVertex4dv',\
glVertex4f,'glVertex4f',\
glVertex4fv,'glVertex4fv',\
glVertex4i,'glVertex4i',\
glVertex4iv,'glVertex4iv',\
glVertex4s,'glVertex4s',\
glVertex4sv,'glVertex4sv',\
glVertexPointer,'glVertexPointer',\
glViewport,'glViewport',\
wglGetProcAddress,'wglGetProcAddress',\
wglCopyContext,'wglCopyContext',\
wglCreateContext,'wglCreateContext',\
wglCreateLayerContext,'wglCreateLayerContext',\
wglDeleteContext,'wglDeleteContext',\
wglDescribeLayerPlane,'wglDescribeLayerPlane',\
wglGetCurrentContext,'wglGetCurrentContext',\
wglGetCurrentDC,'wglGetCurrentDC',\
wglGetLayerPaletteEntries,'wglGetLayerPaletteEntries',\
wglMakeCurrent,'wglMakeCurrent',\
wglRealizeLayerPalette,'wglRealizeLayerPalette',\
wglSetLayerPaletteEntries,'wglSetLayerPaletteEntries',\
wglShareLists,'wglShareLists',\
wglSwapLayerBuffers,'wglSwapLayerBuffers',\
wglSwapMultipleBuffers,'wglSwapMultipleBuffers',\
wglUseFontBitmapsA,'wglUseFontBitmapsA',\
wglUseFontOutlinesA,'wglUseFontOutlinesA',\
wglUseFontBitmapsW,'wglUseFontBitmapsW',\
wglUseFontOutlinesW,'wglUseFontOutlinesW',\
glDrawRangeElements,'glDrawRangeElements',\
glTexImage3D,'glTexImage3D',\
glBlendColor,'glBlendColor',\
glBlendEquation,'glBlendEquation',\
glColorSubTable,'glColorSubTable',\
glCopyColorSubTable,'glCopyColorSubTable',\
glColorTable,'glColorTable',\
glCopyColorTable,'glCopyColorTable',\
glColorTableParameteriv,'glColorTableParameteriv',\
glColorTableParameterfv,'glColorTableParameterfv',\
glGetColorTable,'glGetColorTable',\
glGetColorTableParameteriv,'glGetColorTableParameteriv',\
glGetColorTableParameterfv,'glGetColorTableParameterfv',\
glConvolutionFilter1D,'glConvolutionFilter1D',\
glConvolutionFilter2D,'glConvolutionFilter2D',\
glCopyConvolutionFilter1D,'glCopyConvolutionFilter1D',\
glCopyConvolutionFilter2D,'glCopyConvolutionFilter2D',\
glGetConvolutionFilter,'glGetConvolutionFilter',\
glSeparableFilter2D,'glSeparableFilter2D',\
glGetSeparableFilter,'glGetSeparableFilter',\
glConvolutionParameteri,'glConvolutionParameteri',\
glConvolutionParameteriv,'glConvolutionParameteriv',\
glConvolutionParameterf,'glConvolutionParameterf',\
glConvolutionParameterfv,'glConvolutionParameterfv',\
glGetConvolutionParameteriv,'glGetConvolutionParameteriv',\
glGetConvolutionParameterfv,'glGetConvolutionParameterfv',\
glHistogram,'glHistogram',\
glResetHistogram,'glResetHistogram',\
glGetHistogram,'glGetHistogram',\
glGetHistogramParameteriv,'glGetHistogramParameteriv',\
glGetHistogramParameterfv,'glGetHistogramParameterfv',\
glMinmax,'glMinmax',\
glResetMinmax,'glResetMinmax',\
glGetMinmax,'glGetMinmax',\
glGetMinmaxParameteriv,'glGetMinmaxParameteriv',\
glGetMinmaxParameterfv,'glGetMinmaxParameterfv'
import glu,\
gluBeginCurve,'gluBeginCurve',\
gluBeginPolygon,'gluBeginPolygon',\
gluBeginSurface,'gluBeginSurface',\
gluBeginTrim,'gluBeginTrim',\
gluBuild1DMipmaps,'gluBuild1DMipmaps',\
gluBuild2DMipmaps,'gluBuild2DMipmaps',\
gluCylinder,'gluCylinder',\
gluDeleteNurbsRenderer,'gluDeleteNurbsRenderer',\
gluDeleteQuadric,'gluDeleteQuadric',\
gluDeleteTess,'gluDeleteTess',\
gluDisk,'gluDisk',\
gluEndCurve,'gluEndCurve',\
gluEndPolygon,'gluEndPolygon',\
gluEndSurface,'gluEndSurface',\
gluEndTrim,'gluEndTrim',\
gluErrorString,'gluErrorString',\
gluGetNurbsProperty,'gluGetNurbsProperty',\
gluGetString,'gluGetString',\
gluGetTessProperty,'gluGetTessProperty',\
gluLoadSamplingMatrices,'gluLoadSamplingMatrices',\
gluLookAt,'gluLookAt',\
gluNewNurbsRenderer,'gluNewNurbsRenderer',\
gluNewQuadric,'gluNewQuadric',\
gluNewTess,'gluNewTess',\
gluNextContour,'gluNextContour',\
gluNurbsCallback,'gluNurbsCallback',\
gluNurbsCurve,'gluNurbsCurve',\
gluNurbsProperty,'gluNurbsProperty',\
gluNurbsSurface,'gluNurbsSurface',\
gluOrtho2D,'gluOrtho2D',\
gluPartialDisk,'gluPartialDisk',\
gluPerspective,'gluPerspective',\
gluPickMatrix,'gluPickMatrix',\
gluProject,'gluProject',\
gluPwlCurve,'gluPwlCurve',\
gluQuadricCallback,'gluQuadricCallback',\
gluQuadricDrawStyle,'gluQuadricDrawStyle',\
gluQuadricNormals,'gluQuadricNormals',\
gluQuadricOrientation,'gluQuadricOrientation',\
gluQuadricTexture,'gluQuadricTexture',\
gluScaleImage,'gluScaleImage',\
gluSphere,'gluSphere',\
gluTessBeginContour,'gluTessBeginContour',\
gluTessBeginPolygon,'gluTessBeginPolygon',\
gluTessCallback,'gluTessCallback',\
gluTessEndContour,'gluTessEndContour',\
gluTessEndPolygon,'gluTessEndPolygon',\
gluTessNormal,'gluTessNormal',\
gluTessProperty,'gluTessProperty',\
gluTessVertex,'gluTessVertex',\
gluUnProject,'gluUnProject'