glx stuff not used in windows so don't need to be common?

This commit is contained in:
espes 2013-04-18 14:52:37 +10:00
parent ba602e2e5c
commit ab820ea7df
2 changed files with 0 additions and 145 deletions

View File

@ -84,16 +84,6 @@ extern void glo_flags_get_readpixel_type(int formatFlags, int *glFormat, int *gl
/* Score how close the given format flags match. 0=great, >0 not so great */
extern int glo_flags_score(int formatFlagsExpected, int formatFlagsReal);
/* Create a set of format flags from a null-terminated list
* of GLX fbConfig flags. If assumeBooleans is set, items such
* as GLX_RGBA/GLX_DOUBLEBUFFER are treated as booleans, not key-value pairs
* (glXChooseVisual treats them as booleans, glXChooseFBConfig as key-value pairs)
*/
extern int glo_flags_get_from_glx(const int *fbConfig, int assumeBooleans);
/* Use in place of glxGetConfig - returns information from flags based on a GLX enum */
extern int glo_get_glx_from_flags(int formatFlags, int glxEnum);
/* In terms of speed, glReadPixels actually seems the best we can do.
* * On Windows PFB_DRAW_TO_BITMAP is software-only.
* * http://www.opengl.org/registry/specs/ARB/pixel_buffer_object.txt would be

View File

@ -38,28 +38,6 @@
#include <stdlib.h>
#include <string.h>
// ---------------------------------------------------
// Copied from glx.h as we need them in windows too
/*
* Tokens for glXChooseVisual and glXGetConfig:
*/
#define GLX_USE_GL 1
#define GLX_BUFFER_SIZE 2
#define GLX_LEVEL 3
#define GLX_RGBA 4
#define GLX_DOUBLEBUFFER 5
#define GLX_STEREO 6
#define GLX_AUX_BUFFERS 7
#define GLX_RED_SIZE 8
#define GLX_GREEN_SIZE 9
#define GLX_BLUE_SIZE 10
#define GLX_ALPHA_SIZE 11
#define GLX_DEPTH_SIZE 12
#define GLX_STENCIL_SIZE 13
#define GLX_ACCUM_RED_SIZE 14
#define GLX_ACCUM_GREEN_SIZE 15
#define GLX_ACCUM_BLUE_SIZE 16
#define GLX_ACCUM_ALPHA_SIZE 17
// ---------------------------------------------------
extern void glo_surface_getcontents_readpixels(int formatFlags, int stride,
@ -180,116 +158,3 @@ int glo_flags_score(int formatFlagsExpected, int formatFlagsReal) {
return score;
}
int glo_flags_get_from_glx(const int *fbConfig, int assumeBooleans) {
int bufferSize = 0;
int depthSize = 0;
int stencilSize = 0;
int rgbaSize[] = {0,0,0,0};
int flags = 0;
while (*fbConfig) {
int isSingle = 0;
switch (*fbConfig) {
case GLX_USE_GL:
isSingle = 1;
break;
case GLX_BUFFER_SIZE:
bufferSize = fbConfig[1];
break;
case GLX_LEVEL:
break;
case GLX_RGBA:
flags |= GLO_FF_ALPHA;
break;
case GLX_DOUBLEBUFFER:
isSingle = 1;
break;
case GLX_STEREO:
isSingle = 1;
break;
case GLX_AUX_BUFFERS:
break;
case GLX_RED_SIZE:
rgbaSize[0] = fbConfig[1];
break;
case GLX_GREEN_SIZE:
rgbaSize[1] = fbConfig[1];
break;
case GLX_BLUE_SIZE:
rgbaSize[2] = fbConfig[1];
break;
case GLX_ALPHA_SIZE:
rgbaSize[3] = fbConfig[1];
break;
case GLX_DEPTH_SIZE:
depthSize = fbConfig[1];
break;
case GLX_STENCIL_SIZE:
stencilSize = fbConfig[1];
break;
case GLX_ACCUM_RED_SIZE:
case GLX_ACCUM_GREEN_SIZE:
case GLX_ACCUM_BLUE_SIZE:
case GLX_ACCUM_ALPHA_SIZE:
break;
}
// go to next
if (isSingle && assumeBooleans)
fbConfig++;
else
fbConfig+=2;
}
if (rgbaSize[3])
flags |= GLO_FF_ALPHA;
// ensure we have room for *some* alpha
if ((flags & GLO_FF_ALPHA) && (rgbaSize[3]==0))
rgbaSize[3] = 1;
// Buffer size flag
if (bufferSize==0)
bufferSize = rgbaSize[0]+rgbaSize[1]+rgbaSize[2]+rgbaSize[3];
if (bufferSize==0)
bufferSize = (flags & GLO_FF_ALPHA) ? 32 : 24;
if (bufferSize<=16)
flags |= GLO_FF_BITS_16;
else if (bufferSize<=24)
flags |= GLO_FF_BITS_24;
else flags |= GLO_FF_BITS_32;
// Depth
if (depthSize<=16)
flags |= GLO_FF_DEPTH_16;
else if (depthSize<=24)
flags |= GLO_FF_DEPTH_24;
else flags |= GLO_FF_DEPTH_32;
// Stencil
if (stencilSize>0)
flags |= GLO_FF_STENCIL_8;
return flags;
}
int glo_get_glx_from_flags(int formatFlags, int glxEnum) {
int rgba[4];
glo_flags_get_rgba_bits(formatFlags, rgba);
switch (glxEnum) {
case GLX_USE_GL: return 1;
case GLX_BUFFER_SIZE: return glo_flags_get_bytes_per_pixel(formatFlags)*8;
case GLX_LEVEL: return 0;
case GLX_RGBA: return formatFlags & GLO_FF_ALPHA;
case GLX_DOUBLEBUFFER: return 1;
case GLX_STEREO: return 0;
case GLX_AUX_BUFFERS: return 0;
case GLX_RED_SIZE: return rgba[0];
case GLX_GREEN_SIZE: return rgba[1];
case GLX_BLUE_SIZE: return rgba[2];
case GLX_ALPHA_SIZE: return rgba[3];
case GLX_DEPTH_SIZE: return glo_flags_get_depth_bits(formatFlags);
case GLX_STENCIL_SIZE: return glo_flags_get_stencil_bits(formatFlags);
case GLX_ACCUM_RED_SIZE:
case GLX_ACCUM_GREEN_SIZE:
case GLX_ACCUM_BLUE_SIZE:
case GLX_ACCUM_ALPHA_SIZE:
return 0;
}
return 0;
}