assorted clean-ups

This commit is contained in:
Brian 2007-07-04 09:22:15 -06:00
parent bd9db5eed2
commit 9aa8223605
1 changed files with 49 additions and 54 deletions

View File

@ -1,8 +1,8 @@
/*
* Mesa 3-D graphics library
* Version: 6.5.1
* Version: 7.1
*
* Copyright (C) 1999-2006 Brian Paul All Rights Reserved.
* Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@ -63,6 +63,9 @@
#include "drivers/common/driverfuncs.h"
/**
* Pixel formats we support:
*/
#define PF_B8G8R8 1
#define PF_B8G8R8A8 2
#define PF_B5G6R5 3
@ -70,7 +73,7 @@
#define PF_CI8 5
/*
/**
* Derived from Mesa's GLvisual class.
*/
struct GLFBDevVisualRec {
@ -80,7 +83,7 @@ struct GLFBDevVisualRec {
int pixelFormat;
};
/*
/**
* Derived from Mesa's GLframebuffer class.
*/
struct GLFBDevBufferRec {
@ -92,7 +95,7 @@ struct GLFBDevBufferRec {
GLuint bytesPerPixel;
};
/*
/**
* Derived from Mesa's GLcontext class.
*/
struct GLFBDevContextRec {
@ -103,7 +106,7 @@ struct GLFBDevContextRec {
GLFBDevBufferPtr curBuffer;
};
/*
/**
* Derived from Mesa's gl_renderbuffer class.
*/
struct GLFBDevRenderbufferRec {
@ -114,11 +117,6 @@ struct GLFBDevRenderbufferRec {
};
#define GLFBDEV_CONTEXT(CTX) ((GLFBDevContextPtr) (CTX))
#define GLFBDEV_BUFFER(BUF) ((GLFBDevBufferPtr) (BUF))
/**********************************************************************/
/* Internal device driver functions */
/**********************************************************************/
@ -151,7 +149,7 @@ update_state( GLcontext *ctx, GLuint new_state )
static void
get_buffer_size( GLframebuffer *buffer, GLuint *width, GLuint *height )
{
const GLFBDevBufferPtr fbdevbuffer = GLFBDEV_BUFFER(buffer);
const GLFBDevBufferPtr fbdevbuffer = (GLFBDevBufferPtr) buffer;
*width = fbdevbuffer->var.xres;
*height = fbdevbuffer->var.yres;
}
@ -389,8 +387,8 @@ glFBDevCreateVisual( const struct fb_fix_screeninfo *fixInfo,
/* ignored for now */
break;
case GLFBDEV_MULTISAMPLE:
numSamples = attrib[1];
attrib++;
numSamples = attrib[1];
attrib++;
break;
default:
/* unexpected token */
@ -406,36 +404,36 @@ glFBDevCreateVisual( const struct fb_fix_screeninfo *fixInfo,
alphaBits = varInfo->transp.length;
if (fixInfo->visual == FB_VISUAL_TRUECOLOR ||
fixInfo->visual == FB_VISUAL_DIRECTCOLOR) {
if(varInfo->bits_per_pixel == 24
&& varInfo->red.offset == 16
&& varInfo->green.offset == 8
&& varInfo->blue.offset == 0)
vis->pixelFormat = PF_B8G8R8;
else if(varInfo->bits_per_pixel == 32
&& varInfo->red.offset == 16
&& varInfo->green.offset == 8
&& varInfo->blue.offset == 0)
vis->pixelFormat = PF_B8G8R8A8;
else if(varInfo->bits_per_pixel == 16
&& varInfo->red.offset == 11
&& varInfo->green.offset == 5
&& varInfo->blue.offset == 0)
vis->pixelFormat = PF_B5G6R5;
else if(varInfo->bits_per_pixel == 16
&& varInfo->red.offset == 10
&& varInfo->green.offset == 5
&& varInfo->blue.offset == 0)
vis->pixelFormat = PF_B5G5R5;
else {
_mesa_problem(NULL, "Unsupported fbdev RGB visual/bitdepth!\n");
_mesa_free(vis);
return NULL;
}
fixInfo->visual == FB_VISUAL_DIRECTCOLOR) {
if (varInfo->bits_per_pixel == 24
&& varInfo->red.offset == 16
&& varInfo->green.offset == 8
&& varInfo->blue.offset == 0) {
vis->pixelFormat = PF_B8G8R8;
}
else if (varInfo->bits_per_pixel == 32
&& varInfo->red.offset == 16
&& varInfo->green.offset == 8
&& varInfo->blue.offset == 0) {
vis->pixelFormat = PF_B8G8R8A8;
}
else if (varInfo->bits_per_pixel == 16
&& varInfo->red.offset == 11
&& varInfo->green.offset == 5
&& varInfo->blue.offset == 0) {
vis->pixelFormat = PF_B5G6R5;
}
else if (varInfo->bits_per_pixel == 16
&& varInfo->red.offset == 10
&& varInfo->green.offset == 5
&& varInfo->blue.offset == 0) {
vis->pixelFormat = PF_B5G5R5;
}
else {
_mesa_problem(NULL, "Unsupported fbdev RGB visual/bitdepth!\n");
_mesa_free(vis);
return NULL;
}
}
}
else {
@ -578,7 +576,7 @@ new_glfbdev_renderbuffer(void *bufferStart, const GLFBDevVisualPtr visual)
rb->rowStride = visual->var.xres_virtual * visual->var.bits_per_pixel / 8;
rb->bottom = (GLubyte *) bufferStart
+ (visual->var.yres - 1) * rb->rowStride;
+ (visual->var.yres - 1) * rb->rowStride;
rb->Base.Width = visual->var.xres;
rb->Base.Height = visual->var.yres;
@ -635,7 +633,7 @@ glFBDevCreateBuffer( const struct fb_fix_screeninfo *fixInfo,
&frontrb->Base);
/* add back renderbuffer */
if (visual->glvisual.doubleBufferMode) {
int malloced = !backBuffer;
const int malloced = !backBuffer;
if (malloced) {
/* malloc a back buffer */
backBuffer = _mesa_malloc(size);
@ -647,8 +645,11 @@ glFBDevCreateBuffer( const struct fb_fix_screeninfo *fixInfo,
}
backrb = new_glfbdev_renderbuffer(backBuffer, visual);
if(malloced)
backrb->mallocedBuffer = GL_TRUE;
if (!backrb) {
/* out of mem */
return NULL;
}
backrb->mallocedBuffer = malloced;
_mesa_add_renderbuffer(&buf->glframebuffer, BUFFER_BACK_LEFT,
&backrb->Base);
@ -682,16 +683,10 @@ glFBDevDestroyBuffer( GLFBDevBufferPtr buffer )
if (buffer == curDraw || buffer == curRead) {
glFBDevMakeCurrent( NULL, NULL, NULL);
}
#if 0
/* free the software depth, stencil, accum buffers */
_mesa_free_framebuffer_data(&buffer->glframebuffer);
_mesa_free(buffer);
#else
{
struct gl_framebuffer *fb = &buffer->glframebuffer;
_mesa_unreference_framebuffer(&fb);
}
#endif
}
}