152
152
get_buffer_size( GLframebuffer *buffer, GLuint *width, GLuint *height )
154
154
const GLFBDevBufferPtr fbdevbuffer = GLFBDEV_BUFFER(buffer);
155
*width = fbdevbuffer->var.xres_virtual;
156
*height = fbdevbuffer->var.yres_virtual;
155
*width = fbdevbuffer->var.xres;
156
*height = fbdevbuffer->var.yres;
161
* We only implement this function as a mechanism to check if the
162
* framebuffer size has changed (and update corresponding state).
161
165
viewport(GLcontext *ctx, GLint x, GLint y, GLsizei w, GLsizei h)
163
/* poll for window size change and realloc software Z/stencil/etc if needed */
164
_mesa_ResizeBuffersMESA();
167
GLuint newWidth, newHeight;
168
GLframebuffer *buffer;
170
buffer = ctx->WinSysDrawBuffer;
171
get_buffer_size( buffer, &newWidth, &newHeight );
172
if (buffer->Width != newWidth || buffer->Height != newHeight) {
173
_mesa_resize_framebuffer(ctx, buffer, newWidth, newHeight );
176
buffer = ctx->WinSysReadBuffer;
177
get_buffer_size( buffer, &newWidth, &newHeight );
178
if (buffer->Width != newWidth || buffer->Height != newHeight) {
179
_mesa_resize_framebuffer(ctx, buffer, newWidth, newHeight );
389
405
blueBits = varInfo->blue.length;
390
406
alphaBits = varInfo->transp.length;
392
if ((fixInfo->visual == FB_VISUAL_TRUECOLOR ||
393
fixInfo->visual == FB_VISUAL_DIRECTCOLOR)
394
&& varInfo->bits_per_pixel == 24
395
&& varInfo->red.offset == 16
396
&& varInfo->green.offset == 8
397
&& varInfo->blue.offset == 0) {
398
vis->pixelFormat = PF_B8G8R8;
400
else if ((fixInfo->visual == FB_VISUAL_TRUECOLOR ||
401
fixInfo->visual == FB_VISUAL_DIRECTCOLOR)
402
&& varInfo->bits_per_pixel == 32
403
&& varInfo->red.offset == 16
404
&& varInfo->green.offset == 8
405
&& varInfo->blue.offset == 0
406
&& varInfo->transp.offset == 24) {
407
vis->pixelFormat = PF_B8G8R8A8;
409
else if ((fixInfo->visual == FB_VISUAL_TRUECOLOR ||
410
fixInfo->visual == FB_VISUAL_DIRECTCOLOR)
411
&& varInfo->bits_per_pixel == 16
412
&& varInfo->red.offset == 11
413
&& varInfo->green.offset == 5
414
&& varInfo->blue.offset == 0) {
415
vis->pixelFormat = PF_B5G6R5;
417
else if ((fixInfo->visual == FB_VISUAL_TRUECOLOR ||
418
fixInfo->visual == FB_VISUAL_DIRECTCOLOR)
419
&& varInfo->bits_per_pixel == 16
420
&& varInfo->red.offset == 10
421
&& varInfo->green.offset == 5
422
&& varInfo->blue.offset == 0) {
423
vis->pixelFormat = PF_B5G5R5;
426
_mesa_problem(NULL, "Unsupported fbdev RGB visual/bitdepth!\n");
408
if (fixInfo->visual == FB_VISUAL_TRUECOLOR ||
409
fixInfo->visual == FB_VISUAL_DIRECTCOLOR) {
410
if(varInfo->bits_per_pixel == 24
411
&& varInfo->red.offset == 16
412
&& varInfo->green.offset == 8
413
&& varInfo->blue.offset == 0)
414
vis->pixelFormat = PF_B8G8R8;
416
else if(varInfo->bits_per_pixel == 32
417
&& varInfo->red.offset == 16
418
&& varInfo->green.offset == 8
419
&& varInfo->blue.offset == 0)
420
vis->pixelFormat = PF_B8G8R8A8;
422
else if(varInfo->bits_per_pixel == 16
423
&& varInfo->red.offset == 11
424
&& varInfo->green.offset == 5
425
&& varInfo->blue.offset == 0)
426
vis->pixelFormat = PF_B5G6R5;
428
else if(varInfo->bits_per_pixel == 16
429
&& varInfo->red.offset == 10
430
&& varInfo->green.offset == 5
431
&& varInfo->blue.offset == 0)
432
vis->pixelFormat = PF_B5G5R5;
435
_mesa_problem(NULL, "Unsupported fbdev RGB visual/bitdepth!\n");