/* * Author: Max Lingua */ #include #include "s3v_context.h" void s3vInitHW( s3vContextPtr vmesa ) { int i; static short _reset = 1; DEBUG(("vmesa->driDrawable = %p\n", vmesa->driDrawable)); DEBUG(("stride = %i\n", vmesa->driScreen->fbWidth*vmesa->s3vScreen->cpp)); DEBUG(("frontOffset = 0x%x\n", vmesa->s3vScreen->frontOffset)); DEBUG(("backOffset = 0x%x\n", vmesa->s3vScreen->backOffset)); DEBUG(("depthOffset = 0x%x\n", vmesa->s3vScreen->depthOffset)); DEBUG(("textureOffset = 0x%x\n", vmesa->s3vScreen->texOffset)); /* if (_reset) { */ /* ioctl(vmesa->driFd, 0x4a); */ ioctl(vmesa->driFd, 0x41); /* reset */ _reset = 0; /* ioctl(vmesa->driFd, 0x4c); */ /* } */ /* FIXME */ switch (vmesa->s3vScreen->cpp) { case 2: break; case 4: break; } /* FIXME for stencil, gid, etc */ switch (vmesa->DepthSize) { case 15: case 16: break; case 24: break; case 32: break; } vmesa->FogMode = 1; vmesa->ClearDepth = 0xffff; vmesa->x = 0; vmesa->y = 0; vmesa->w = 0; vmesa->h = 0; vmesa->FrameCount = 0; vmesa->MatrixMode = GL_MODELVIEW; vmesa->ModelViewCount = 0; vmesa->ProjCount = 0; vmesa->TextureCount = 0; /* FIXME: do we need the following? */ for (i = 0; i < 16; i++) if (i % 5 == 0) vmesa->ModelView[i] = vmesa->Proj[i] = vmesa->ModelViewProj[i] = vmesa->Texture[i] = 1.0; else vmesa->ModelView[i] = vmesa->Proj[i] = vmesa->ModelViewProj[i] = vmesa->Texture[i] = 0.0; vmesa->LBWindowBase = vmesa->driScreen->fbWidth * (vmesa->driScreen->fbHeight - 1); vmesa->FBWindowBase = vmesa->driScreen->fbWidth * (vmesa->driScreen->fbHeight - 1); }