fbdev: Remove support for color-index rendering

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
Ian Romanick
2010-02-24 16:51:40 -08:00
parent 718ff7e87b
commit 6f317253bf
+35 -85
View File
@@ -70,7 +70,6 @@
#define PF_B8G8R8A8 2
#define PF_B5G6R5 3
#define PF_B5G5R5 4
#define PF_CI8 5
/**
@@ -264,25 +263,6 @@ viewport(GLcontext *ctx, GLint x, GLint y, GLsizei w, GLsizei h)
#include "swrast/s_spantemp.h"
/* 8-bit color index */
#define NAME(PREFIX) PREFIX##_CI8
#define CI_MODE
#define RB_TYPE GLubyte
#define SPAN_VARS \
struct GLFBDevRenderbufferRec *frb = (struct GLFBDevRenderbufferRec *) rb;
#define INIT_PIXEL_PTR(P, X, Y) \
GLubyte *P = frb->bottom - (Y) * frb->rowStride + (X)
#define INC_PIXEL_PTR(P) P += 1
#define STORE_PIXEL(DST, X, Y, VALUE) \
*DST = VALUE[0]
#define FETCH_PIXEL(DST, SRC) \
DST = SRC[0]
#include "swrast/s_spantemp.h"
/**********************************************************************/
/* Public API functions */
/**********************************************************************/
@@ -345,7 +325,7 @@ glFBDevCreateVisual( const struct fb_fix_screeninfo *fixInfo,
{
GLFBDevVisualPtr vis;
const int *attrib;
GLboolean rgbFlag = GL_TRUE, dbFlag = GL_FALSE, stereoFlag = GL_FALSE;
GLboolean dbFlag = GL_FALSE, stereoFlag = GL_FALSE;
GLint redBits = 0, greenBits = 0, blueBits = 0, alphaBits = 0;
GLint indexBits = 0, depthBits = 0, stencilBits = 0;
GLint accumRedBits = 0, accumGreenBits = 0;
@@ -367,9 +347,6 @@ glFBDevCreateVisual( const struct fb_fix_screeninfo *fixInfo,
case GLFBDEV_DOUBLE_BUFFER:
dbFlag = GL_TRUE;
break;
case GLFBDEV_COLOR_INDEX:
rgbFlag = GL_FALSE;
break;
case GLFBDEV_DEPTH_SIZE:
depthBits = attrib[1];
attrib++;
@@ -390,6 +367,8 @@ glFBDevCreateVisual( const struct fb_fix_screeninfo *fixInfo,
numSamples = attrib[1];
attrib++;
break;
case GLFBDEV_COLOR_INDEX:
/* Mesa no longer supports color-index rendering. */
default:
/* unexpected token */
free(vis);
@@ -397,60 +376,45 @@ glFBDevCreateVisual( const struct fb_fix_screeninfo *fixInfo,
}
}
if (rgbFlag) {
redBits = varInfo->red.length;
greenBits = varInfo->green.length;
blueBits = varInfo->blue.length;
alphaBits = varInfo->transp.length;
redBits = varInfo->red.length;
greenBits = varInfo->green.length;
blueBits = varInfo->blue.length;
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");
free(vis);
return NULL;
}
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 {
indexBits = varInfo->bits_per_pixel;
if ((fixInfo->visual == FB_VISUAL_PSEUDOCOLOR ||
fixInfo->visual == FB_VISUAL_STATIC_PSEUDOCOLOR)
&& varInfo->bits_per_pixel == 8) {
vis->pixelFormat = PF_CI8;
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 CI visual/bitdepth!\n");
_mesa_problem(NULL, "Unsupported fbdev RGB visual/bitdepth!\n");
free(vis);
return NULL;
}
}
if (!_mesa_initialize_visual(&vis->glvisual, rgbFlag, dbFlag, stereoFlag,
if (!_mesa_initialize_visual(&vis->glvisual, GL_TRUE, dbFlag, stereoFlag,
redBits, greenBits, blueBits, alphaBits,
indexBits, depthBits, stencilBits,
accumRedBits, accumGreenBits,
@@ -554,23 +518,9 @@ new_glfbdev_renderbuffer(void *bufferStart, const GLFBDevVisualPtr visual)
rb->Base.PutValues = put_values_B5G5R5;
rb->Base.PutMonoValues = put_mono_values_B5G5R5;
}
else if (pixelFormat == PF_CI8) {
rb->Base.GetRow = get_row_CI8;
rb->Base.GetValues = get_values_CI8;
rb->Base.PutRow = put_row_CI8;
rb->Base.PutMonoRow = put_mono_row_CI8;
rb->Base.PutValues = put_values_CI8;
rb->Base.PutMonoValues = put_mono_values_CI8;
}
if (pixelFormat == PF_CI8) {
rb->Base.InternalFormat = GL_COLOR_INDEX8_EXT;
rb->Base._BaseFormat = GL_COLOR_INDEX;
}
else {
rb->Base.InternalFormat = GL_RGBA;
rb->Base._BaseFormat = GL_RGBA;
}
rb->Base.InternalFormat = GL_RGBA;
rb->Base._BaseFormat = GL_RGBA;
rb->Base.DataType = GL_UNSIGNED_BYTE;
rb->Base.Data = bufferStart;