summaryrefslogtreecommitdiff
path: root/src/mesa
diff options
context:
space:
mode:
authorKeith Whitwell <keith@tungstengraphics.com>2003-01-17 16:19:15 +0000
committerKeith Whitwell <keith@tungstengraphics.com>2003-01-17 16:19:15 +0000
commitdeb4d4de474ef85c78fdc3ed30959d3e3685f1be (patch)
tree6b27f921413ff6d5464547e5202edc8cad06fedf /src/mesa
parent1449a2f759cae7e02ce9e80557dfca63da1816cd (diff)
add support for 16bpp modes, disabled
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/drivers/dri/radeon/server/radeon_dri.c82
1 files changed, 59 insertions, 23 deletions
diff --git a/src/mesa/drivers/dri/radeon/server/radeon_dri.c b/src/mesa/drivers/dri/radeon/server/radeon_dri.c
index b45bebfa1f6..0f4326d4c6a 100644
--- a/src/mesa/drivers/dri/radeon/server/radeon_dri.c
+++ b/src/mesa/drivers/dri/radeon/server/radeon_dri.c
@@ -821,35 +821,71 @@ static void get_chipfamily_from_chipset( RADEONInfoPtr info )
* Establish the set of visuals available for the display.
* Requires the ::__GLXvisualConfig data type.
*/
-static int __driInitScreenConfigs(int *numConfigs, __GLXvisualConfig **configs)
+static int __driInitScreenConfigs( struct MiniGLXDisplayRec *dpy,
+ int *numConfigs, __GLXvisualConfig **configs)
{
int i;
*numConfigs = 1;
*configs = (__GLXvisualConfig *) calloc(*numConfigs,
sizeof(__GLXvisualConfig));
- for (i = 0; i < *numConfigs; i++) {
- (*configs)[i].vid = 100 + i;
- (*configs)[i].class = TrueColor;
- (*configs)[i].rgba = True;
- (*configs)[i].redSize = 8;
- (*configs)[i].greenSize = 8;
- (*configs)[i].blueSize = 8;
- (*configs)[i].alphaSize = 8;
- (*configs)[i].redMask = 0xff0000;
- (*configs)[i].greenMask = 0xff00;
- (*configs)[i].blueMask = 0xff;
- (*configs)[i].alphaMask = 0xff000000;
- (*configs)[i].doubleBuffer = True;
- (*configs)[i].stereo = False;
- (*configs)[i].bufferSize = 32;
- (*configs)[i].depthSize = 24;
- (*configs)[i].stencilSize = 8;
- (*configs)[i].auxBuffers = 0;
- (*configs)[i].level = 0;
- /* leave remaining fields zero */
- }
-
+
+ switch (dpy->bpp) {
+ case 32:
+ for (i = 0; i < *numConfigs; i++) {
+ (*configs)[i].vid = 100 + i;
+ (*configs)[i].class = TrueColor;
+ (*configs)[i].rgba = True;
+ (*configs)[i].redSize = 8;
+ (*configs)[i].greenSize = 8;
+ (*configs)[i].blueSize = 8;
+ (*configs)[i].alphaSize = 8;
+ (*configs)[i].redMask = 0xff0000;
+ (*configs)[i].greenMask = 0xff00;
+ (*configs)[i].blueMask = 0xff;
+ (*configs)[i].alphaMask = 0xff000000;
+ (*configs)[i].doubleBuffer = True;
+ (*configs)[i].stereo = False;
+ (*configs)[i].bufferSize = 32;
+ (*configs)[i].depthSize = 24;
+ (*configs)[i].stencilSize = 8;
+ (*configs)[i].auxBuffers = 0;
+ (*configs)[i].level = 0;
+ /* leave remaining fields zero */
+ }
+ break;
+
+ case 16:
+ for (i = 0; i < *numConfigs; i++) {
+ (*configs)[i].vid = 100 + i;
+ (*configs)[i].class = TrueColor;
+ (*configs)[i].rgba = True;
+ (*configs)[i].redSize = 5;
+ (*configs)[i].greenSize = 6;
+ (*configs)[i].blueSize = 5;
+ (*configs)[i].alphaSize = 0;
+ (*configs)[i].redMask = 0xf800;
+ (*configs)[i].greenMask = 0x07e0;
+ (*configs)[i].blueMask = 0x001f;
+ (*configs)[i].alphaMask = 0x0000;
+ (*configs)[i].doubleBuffer = True;
+ (*configs)[i].stereo = False;
+ (*configs)[i].bufferSize = 16;
+ (*configs)[i].depthSize = 16;
+ (*configs)[i].stencilSize = 0;
+ (*configs)[i].auxBuffers = 0;
+ (*configs)[i].level = 0;
+ /* leave remaining fields zero */
+ }
+ break;
+
+ default:
+ fprintf(stderr, "Unknown bpp in %s: %d\n", __FUNCTION__,
+ dpy->bpp);
+ exit(1);
+ break;
+
+ }
return 1;
}