diff options
author | Keith Whitwell <keith@tungstengraphics.com> | 2003-01-17 16:19:15 +0000 |
---|---|---|
committer | Keith Whitwell <keith@tungstengraphics.com> | 2003-01-17 16:19:15 +0000 |
commit | deb4d4de474ef85c78fdc3ed30959d3e3685f1be (patch) | |
tree | 6b27f921413ff6d5464547e5202edc8cad06fedf /src/mesa | |
parent | 1449a2f759cae7e02ce9e80557dfca63da1816cd (diff) |
add support for 16bpp modes, disabled
Diffstat (limited to 'src/mesa')
-rw-r--r-- | src/mesa/drivers/dri/radeon/server/radeon_dri.c | 82 |
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; } |