>The problem is that there are so many other things that >need work that 3D has a low priority at the moment. We >just don't have enough developers right now.
Gorky17 if that ever is release need too 3d.
But it is enough for amiblitz if warp3d work ok.
Maybe its only a simple Bug in warp3d, wy OS4 warp3d dont work with storm mesa.
I see on a aone with Radeon9xxx in club meeting that warp3d gears demo do display erors and some other games. warp3d i hear is since over 1 year not updatet, so the situation is not change.
Stormmesa PPC version in software render work, when use warp3d then the warp3d init fail.
The OS4 user who want use 3d for his games send a Bug report as far i remember long time ago.
>What features are missing that AmiBlitz 3D needs?
see in the name{ the functions that are used.i onlyx implement functions that are currently need in the AB2 3d api and demo.
!libheader{#libnum,init,0,finit,0}
!dumtoke{"Stormmesa","",_toke}
!afunction{#long}
!args {#long}
!libs
!subs {LVOAmigaMesaCreateContext,0,0}
!name {"AmigaMesaCreateContext_","amesa_context= (tagListptr)"}
!astatement
!args {#long}
!libs
!subs {LVOAmigaMesaDestroyContext,0,0}
!name {"AmigaMesaDestroyContext_","amesa_context"}
!astatement
!args {#float,#float,#float,#float}
!libs
!subs {_glclearcolor,0,0}
!name {"glClearColor_","red,green,blue,alpha"}
!astatement
!args {#long}
!libs
!subs {_glshademodel,0,0}
!name {"glShadeModel_","GL_FLAT or GL_SMOOTH"}
!astatement
!args {#long}
!libs
!subs {_glenable,0,0}
!name {"glEnable_","tag"}
!astatement
!args {#long}
!libs
!subs {_gldisable,0,0}
!name {"glDisable_","tag"}
!astatement
!args {#float}
!libs
!subs {_glcleardepth,0,0}
!name {"glClearDepth_","depth"}
!astatement
!args {#long}
!libs
!subs {_gldepthfunc,0,0}
!name {"glDepthFunc_","tag ;example:GL_LEQUAL"}
!astatement
!args
!libs
!subs {_glloadidentity,0,0}
!name {"glLoadIdentity_"," ;Reset the Matrix"}
!astatement
!args {#float,#float,#float}
!libs
!subs {_gltranslatef,0,0}
!name {"glTranslatef_"," x,y,z"}
!astatement
!args {#float,#float,#float}
!libs
!subs {_glscalef,0,0}
!name {"glScalef_"," x,y,z"}
!astatement
!args {#float,#float,#float,#float}
!libs
!subs {_glrotate,0,0}
!name {"glRotatef_","angle,x,y,z"}
!astatement
!args {#long}
!libs
!subs {_glclear,0,0}
!name {"glClear_","bitfield ;GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT"}
!astatement
!args {#long,#long}
!libs
!subs {_glbindtexture,0,0}
!name {"glBindTexture_","target,texturenum ;target example GL_TEXTURE_2D"}
!astatement
!args {#long}
!libs
!subs {_glbegin,0,0}
!name {"glBegin_","mode ;GL_TRIANGLE or GL_QUAD"}
!astatement
!args
!libs
!subs {_glend,0,0}
!name {"glEnd_"," ;end a glBegin"}
!astatement
!args {#float,#float}
!libs
!subs {_gltexcoord2f,0,0}
!name {"glTexCoord2f_","s,t"}
!astatement
!args {#float,#float,#float}
!libs
!subs {_glvertex3f,0,0}
!name {"glVertex3f_","x,y,z"}
!astatement
!args {#long,#long,#long,#long}
!libs
!subs {_glviewport,0,0}
!name {"glViewport_","x,y,width,height"}
!astatement
!args {#long}
!libs
!subs {_glmatrixmode,0,0}
!name {"glMatrixMode_","mode ;GL_PROJECTION or GL_MODELVIEW"}
!astatement
!args {#float,#float,#float,#float}
!libs
!subs {_gluperspective,0,0}
!name {"gluPerspective_","fovy,aspect,znear,zfar"}
!astatement
!args {#long,#long,#long}
!libs
!subs {_glcolor3b,0,0}
!name {"glColor3b_","red,green,blue"}
!astatement
!args {#long}
!libs
!subs {_amigamesaswapbuffers,0,0}
!name {"AmigaMesaSwapBuffers_","mesacontext"}
!astatement
!args {#long,#long}
!libs
!subs {_amigamesamakecurrent,0,0}
!name {"AmigaMesaMakeCurrent_","mesacontext,buffer"}
!astatement
!args {#long,#long,#long}
!libs
!subs {_gltexparameteri,0,0}
!name {"glTexParameteri_","target,pname,param"}
!astatement
!args {#long,#long,#long}
!libs
!subs {_gltexgeni,0,0}
!name {"glTexGeni_","coord,pname,param"}
!astatement
!args {#long,#long,#long}
!libs
!subs {_gltexenvi,0,0}
!name {"glTexEnvi_","target,pname,param"}
!astatement
!args {#long,#long}
!libs
!subs {_glhint,0,0}
!name {"glHint_","target,mode"}
!astatement
!args {#long,#long,#varptr}
!libs
!subs {_glmaterialfv,0,0}
!name {"glMaterialfv_","face,pname,ptrparams"}
!astatement
!args {#long,#long,#varptr}
!libs
!subs {_gllightfv,0,0}
!name {"glLightfv_","light,pname,ptrparams"}
!astatement
!args {#long,#long}
!libs
!subs {_glgentextures,0,0}
!name {"glGenTextures_","# of texture to create,addr of texture name array"}
!astatement
!args {#long,#long,#long,#long,#long,#long,#long}
!libs
!subs {_glubuild2dmipmaps,0,0}
!name {"gluBuild2DMipmaps_","# of texture to create,addr of texture name array"}
!astatement
!args {#long,#long}
!libs
!subs {_gldeletetextures,0,0}
!name {"glDeleteTextures_","# of texture to delete,addr of texture name array"}
!astatement
!args {#long,#long,#float}
!libs
!subs {_gltexenvf,0,0}
!name {"glTexEnvf_","target,pname,param; set texture parameters in float"}
!astatement
!args {#float,#float,#float,#float}
!libs
!subs {_glcolor4f,0,0}
!name {"glColor4f_","red,green,blue,alpha; pars in float 0-1"}
!astatement
!args {#long,#long,#long,#long}
!libs
!subs {_glcolor4i,0,0}
!name {"glColor4i_","red,green,blue,alpha; pars in int 0-255"}
!astatement ;untestet
!args
!libs
!subs {_glpushmatrix,0,0}
!name {"glPushMatrix_",""}
!astatement
!args
!libs
!subs {_glpopmatrix,0,0}
!name {"glPopMatrix_",""}
!astatement
!args {#float,#float,#float,#float,#float,#float}
!libs
!subs {_glortho,0,0}
!name {"glOrtho_","left,right,bottom,top,near_val,far_val)"}
!astatement
!args {#long,#long,#long,#long,#long,#long,#long,#long,#long}
!libs
!subs {_glteximage2d,0,0}
!name {"glTexImage2D_","target,level,components,width,height,border,format,type,ptr_pixels)"}
!astatement
!args {#float,#float,#float,#float,#float,#float,#float,#float,#float}
!libs
!subs {_glulookat,0,0}
!name {"gluLookAt_","eyex,eyey,eyez,centerx,centery,centerz,upx,upy,upz)"}
!astatement
!args {#float,#float,#float}
!libs
!subs {_glnormal3f,0,0}
!name {"glNormal3f_","x,y,z"}
!astatement
!args {#float,#float}
!libs
!subs {_glvertex2f,0,0}
!name {"glVertex2f_","x,y"}
!astatement
!args {#long,#long,#long,#long,#long,#long,#long,#long}
!libs
!subs {_glCopyTexImage2D,0,0}
!name {"glCopyTexImage2D_","target,level,internalformat,x,y,size,width,border)"}
!astatement
!args {#long,#long}
!libs
!subs {_glblendfunc,0,0}
!name {"glBlendFunc_",""}
!astatement
!args
!libs
!subs {_glflush,0,0}
!name {"glFlush_",""}
!astatement
!args {#long,#long,#long}
!libs
!subs {_glmateriali,0,0}
!name {"glMateriali_",""}
!astatement
!args {#long,#long}
!libs
!subs {_gllightmodelfv,0,0}
!name {"glLightModelfv_",""} ;48
!astatement
!args {#long,#long,#float}
!libs
!subs {_gllightf,0,0}
!name {"glLightf_",""} ;49
!afunction {#long}
!args
!libs
!subs {_glunewquadric,0,0}
!name {"gluNewQuadric_","Make a handle for a new quadric"} ;50 Befehle
!astatement
!args {#long}
!libs
!subs {_gludeletequadric,0,0}
!name {"gluDeleteQuadric_","*quadric_ptr"} ;51
!astatement
!args {#long,#float,#long,#long}
!libs
!subs {_glusphere,0,0} ;52
!name {"gluSphere_","*quadric_ptr,size,slices,stacks"}
!astatement
!args {#long,#long}
!libs
!subs {_glnewlist,0,0}
!name {"glNewList_","listnum,mode ;mode=#GL_COMPILE"} ;53
!astatement
!args
!libs
!subs {_glendlist,0,0}
!name {"glEndList_",""} ;54
!astatement
!args {#long,#long}
!libs
!subs {_gldeletelists,0,0}
!name {"glDeleteLists_","listnum,range; range >1 for more than 1 list to delete"} ;55 ;54
!astatement
!args {#long}
!libs
!subs {_glcalllist,0,0}
!name {"glCallList_","listnum ; draw the list"} ;56
!astatement
!args {#long,#long}
!libs
!subs {_gluquadrictexture,0,0} ;57
!name {"gluQuadricTexture_","*quadric_ptr,mode;mode 1= on 0= off"}
!astatement
!args {#long,#float,#float,#float,#long,#long}
!libs
!subs {_glucylinder,0,0} ;58
!name {"gluCylinder_","*quadric_ptr,baseradius,topradius,height,slices,stacks"}
!astatement
!args {#long,#float,#float,#long,#long}
!libs
!subs {_gludisk,0,0} ;59
!name {"gluDisk_","*quadric_ptr,innerradius,outerradius,slices,stacks"}
!astatement
!args {#long,#long}
!libs
!subs {_glfogi,0,0}
!name {"glFogi_","pname,param"} ;60
!astatement
!args {#long,#float}
!libs
!subs {_glfogf,0,0}
!name {"glFogf_","pname,float param"} ;61
!astatement
!args {#long,#long}
!libs
!subs {_glfogfv,0,0}
!name {"glFogfv_","pname,pointer to float array"} ;62
!astatement
!args {#long,#long}
!libs
!subs {_gllightmodeli,0,0}
!name {"glLightModeli_","pname,value in int ;#GL_LIGHT_MODEL_TWO_SIDE"} ;63
!astatement
!args {#long}
!libs
!subs {_glfrontface,0,0}
!name {"glFrontFace_","value; #GL_CCW "} ;64