Сферы
Вариант функции для создания сплошной сферы, цвет задается в самой функции:
; #########################################################################
SolidSphere PROC ListNumber:DWORD,Radius:DWORD,Parts:DWORD
LOCAL hSphere:DWORD
invoke glNewList,ListNumber,GL_COMPILE_AND_EXECUTE
invoke gluNewQuadric
mov hSphere,eax
invoke gluQuadricDrawStyle,hSphere,GL_FILL
invoke gluQuadricNormals,hSphere,GL_SMOOTH
invoke glColor3ub,0,255,0
mov eax,Radius
invoke gluSphere,hSphere,[eax],[eax+4],Parts,Parts
invoke glEndList
mov eax,hSphere
ret
SolidSphere ENDP
; #########################################################################
То же самое, но для проволочной сферы:
; #########################################################################
WireSphere PROC ListNumber:DWORD,Radius:DWORD,Parts:DWORD
LOCAL hSphere:DWORD
invoke glNewList,ListNumber,GL_COMPILE_AND_EXECUTE
invoke gluNewQuadric
mov hSphere,eax
invoke gluQuadricDrawStyle,hSphere,GLU_LINE
invoke gluQuadricNormals,hSphere,GL_SMOOTH
invoke glColor3ub,255,255,0
mov eax,Radius
invoke gluSphere,hSphere,[eax],[eax+4],Parts,Parts
invoke glEndList
mov eax,hSphere
ret
WireSphere ENDP
; #########################################################################
Прототипы этих функций:
SolidSphere PROTO :DWORD,:DWORD,:DWORD
WireSphere PROTO :DWORD,:DWORD,:DWORD
В код эти функции вставляются аналогично предыдушим примерам. Один из вариантов показан на рисунке: