Merge commit 'origin/master' into gallium-0.2
[mesa.git] / src / mesa / drivers / dri / s3v / s3v_inithw.c
1 /*
2 * Author: Max Lingua <sunmax@libero.it>
3 */
4
5 #include <sys/ioctl.h>
6
7 #include "s3v_context.h"
8
9 void s3vInitHW( s3vContextPtr vmesa )
10 {
11 int i;
12 static short _reset = 1;
13
14 DEBUG(("vmesa->driDrawable = %p\n", vmesa->driDrawable));
15 DEBUG(("stride = %i\n",
16 vmesa->driScreen->fbWidth*vmesa->s3vScreen->cpp));
17 DEBUG(("frontOffset = 0x%x\n", vmesa->s3vScreen->frontOffset));
18 DEBUG(("backOffset = 0x%x\n", vmesa->s3vScreen->backOffset));
19 DEBUG(("depthOffset = 0x%x\n", vmesa->s3vScreen->depthOffset));
20 DEBUG(("textureOffset = 0x%x\n", vmesa->s3vScreen->texOffset));
21
22 /* if (_reset) { */
23 /* ioctl(vmesa->driFd, 0x4a); */
24 ioctl(vmesa->driFd, 0x41); /* reset */
25 _reset = 0;
26 /* ioctl(vmesa->driFd, 0x4c); */
27 /* } */
28
29 /* FIXME */
30 switch (vmesa->s3vScreen->cpp) {
31 case 2:
32 break;
33 case 4:
34 break;
35 }
36
37 /* FIXME for stencil, gid, etc */
38 switch (vmesa->DepthSize) {
39 case 15:
40 case 16:
41 break;
42 case 24:
43 break;
44 case 32:
45 break;
46 }
47
48 vmesa->FogMode = 1;
49 vmesa->ClearDepth = 0xffff;
50 vmesa->x = 0;
51 vmesa->y = 0;
52 vmesa->w = 0;
53 vmesa->h = 0;
54 vmesa->FrameCount = 0;
55 vmesa->MatrixMode = GL_MODELVIEW;
56 vmesa->ModelViewCount = 0;
57 vmesa->ProjCount = 0;
58 vmesa->TextureCount = 0;
59
60
61 /* FIXME: do we need the following? */
62
63 for (i = 0; i < 16; i++)
64 if (i % 5 == 0)
65 vmesa->ModelView[i] =
66 vmesa->Proj[i] =
67 vmesa->ModelViewProj[i] =
68 vmesa->Texture[i] = 1.0;
69 else
70 vmesa->ModelView[i] =
71 vmesa->Proj[i] =
72 vmesa->ModelViewProj[i] =
73 vmesa->Texture[i] = 0.0;
74
75 vmesa->LBWindowBase = vmesa->driScreen->fbWidth *
76 (vmesa->driScreen->fbHeight - 1);
77 vmesa->FBWindowBase = vmesa->driScreen->fbWidth *
78 (vmesa->driScreen->fbHeight - 1);
79 }