diff options
Diffstat (limited to 'progs')
-rw-r--r-- | progs/demos/engine.c | 1 | ||||
-rw-r--r-- | progs/egl/eglut/eglut.c | 4 | ||||
-rw-r--r-- | progs/egl/opengl/Makefile | 4 | ||||
-rw-r--r-- | progs/egl/opengl/eglgears.c | 4 | ||||
-rw-r--r-- | progs/egl/opengles1/Makefile | 8 | ||||
-rw-r--r-- | progs/egl/opengles1/pbuffer.c | 3 | ||||
-rw-r--r-- | progs/egl/opengles1/render_tex.c | 4 | ||||
-rw-r--r-- | progs/egl/opengles1/torus.c | 4 | ||||
-rw-r--r-- | progs/egl/opengles2/Makefile | 8 | ||||
-rw-r--r-- | progs/egl/opengles2/es2gears.c | 4 | ||||
-rw-r--r-- | progs/egl/opengles2/tri.c | 4 | ||||
-rw-r--r-- | progs/egl/openvg/Makefile | 2 | ||||
-rw-r--r-- | progs/rbug/README | 7 | ||||
-rw-r--r-- | progs/tests/Makefile | 5 | ||||
-rw-r--r-- | progs/tests/copypixrate.c | 3 | ||||
-rw-r--r-- | progs/tests/getprocaddress.c | 15 | ||||
-rw-r--r-- | progs/tests/getprocaddress.py | 6 | ||||
-rw-r--r-- | progs/vpglsl/func.glsl | 33 | ||||
-rw-r--r-- | progs/vpglsl/func2.glsl | 54 | ||||
-rw-r--r-- | progs/xdemos/glxinfo.c | 116 |
20 files changed, 234 insertions, 55 deletions
diff --git a/progs/demos/engine.c b/progs/demos/engine.c index a4148357d4..ee7d5c154a 100644 --- a/progs/demos/engine.c +++ b/progs/demos/engine.c @@ -832,6 +832,7 @@ DrawBox(void) glDisable(GL_LIGHTING); glDisable(GL_TEXTURE_2D); + glLineWidth(1.0); glColor3f(1, 1, 1); diff --git a/progs/egl/eglut/eglut.c b/progs/egl/eglut/eglut.c index b9b5e6e5a8..ff7d8df718 100644 --- a/progs/egl/eglut/eglut.c +++ b/progs/egl/eglut/eglut.c @@ -84,8 +84,10 @@ _eglutChooseConfig(void) renderable_type = 0x0; if (_eglut->api_mask & EGLUT_OPENGL_BIT) renderable_type |= EGL_OPENGL_BIT; - if (_eglut->api_mask & (EGLUT_OPENGL_ES1_BIT | EGLUT_OPENGL_ES2_BIT)) + if (_eglut->api_mask & EGLUT_OPENGL_ES1_BIT) renderable_type |= EGL_OPENGL_ES_BIT; + if (_eglut->api_mask & EGLUT_OPENGL_ES2_BIT) + renderable_type |= EGL_OPENGL_ES2_BIT; if (_eglut->api_mask & EGLUT_OPENVG_BIT) renderable_type |= EGL_OPENVG_BIT; config_attribs[i++] = renderable_type; diff --git a/progs/egl/opengl/Makefile b/progs/egl/opengl/Makefile index 79cd5fc653..a49255bbb2 100644 --- a/progs/egl/opengl/Makefile +++ b/progs/egl/opengl/Makefile @@ -7,9 +7,9 @@ include $(TOP)/configs/current INCLUDE_DIRS = -I$(TOP)/include $(X11_CFLAGS) HEADERS = $(TOP)/include/GLES/egl.h -LIB_DEP = $(TOP)/$(LIB_DIR)/libEGL.so +LIB_DEP = $(TOP)/$(LIB_DIR)/$(EGL_LIB_NAME) -LIBS = -L$(TOP)/$(LIB_DIR) -lEGL -lGL -lm +LIBS = -L$(TOP)/$(LIB_DIR) -l$(EGL_LIB) -l$(GL_LIB) -lm EGLUT_DIR = $(TOP)/progs/egl/eglut diff --git a/progs/egl/opengl/eglgears.c b/progs/egl/opengl/eglgears.c index 28da9c0ac7..430deb26e5 100644 --- a/progs/egl/opengl/eglgears.c +++ b/progs/egl/opengl/eglgears.c @@ -33,6 +33,10 @@ #include "eglut.h" +#ifndef M_PI +#define M_PI 3.14159265 +#endif + static GLfloat view_rotx = 20.0, view_roty = 30.0, view_rotz = 0.0; static GLint gear1, gear2, gear3; static GLfloat angle = 0.0; diff --git a/progs/egl/opengles1/Makefile b/progs/egl/opengles1/Makefile index 593145d4bf..e7802f8003 100644 --- a/progs/egl/opengles1/Makefile +++ b/progs/egl/opengles1/Makefile @@ -12,13 +12,13 @@ HEADERS = $(TOP)/include/GLES/egl.h ES1_LIB_DEPS = \ - $(TOP)/$(LIB_DIR)/libEGL.so \ - $(TOP)/$(LIB_DIR)/libGLESv1_CM.so + $(TOP)/$(LIB_DIR)/$(EGL_LIB_NAME) \ + $(TOP)/$(LIB_DIR)/$(GLESv1_CM_LIB_NAME) ES1_LIBS = \ - -L$(TOP)/$(LIB_DIR) -lEGL \ - -L$(TOP)/$(LIB_DIR) -lGLESv1_CM $(LIBDRM_LIB) $(X11_LIBS) + -L$(TOP)/$(LIB_DIR) -l$(EGL_LIB) -l$(GLESv1_CM_LIB) \ + $(LIBDRM_LIB) $(X11_LIBS) EGLUT_DIR = $(TOP)/progs/egl/eglut diff --git a/progs/egl/opengles1/pbuffer.c b/progs/egl/opengles1/pbuffer.c index 60f864445a..1b4dbb666f 100644 --- a/progs/egl/opengles1/pbuffer.c +++ b/progs/egl/opengles1/pbuffer.c @@ -22,6 +22,9 @@ #include <EGL/egl.h> +#ifndef M_PI +#define M_PI 3.14159265 +#endif static int WinWidth = 300, WinHeight = 300; diff --git a/progs/egl/opengles1/render_tex.c b/progs/egl/opengles1/render_tex.c index 0200fa4cb0..cd2abbd51b 100644 --- a/progs/egl/opengles1/render_tex.c +++ b/progs/egl/opengles1/render_tex.c @@ -22,6 +22,10 @@ #include <EGL/egl.h> +#ifndef M_PI +#define M_PI 3.14159265 +#endif + static int TexWidth = 256, TexHeight = 256; static int WinWidth = 300, WinHeight = 300; diff --git a/progs/egl/opengles1/torus.c b/progs/egl/opengles1/torus.c index 8f262b53d6..18ddff3fe4 100644 --- a/progs/egl/opengles1/torus.c +++ b/progs/egl/opengles1/torus.c @@ -17,6 +17,10 @@ #include "eglut.h" +#ifndef M_PI +#define M_PI 3.14159265 +#endif + static const struct { GLenum internalFormat; const char *name; diff --git a/progs/egl/opengles2/Makefile b/progs/egl/opengles2/Makefile index 89feb34acc..bf14513d7f 100644 --- a/progs/egl/opengles2/Makefile +++ b/progs/egl/opengles2/Makefile @@ -14,13 +14,13 @@ HEADERS = $(TOP)/include/GLES/egl.h ES2_LIB_DEPS = \ - $(TOP)/$(LIB_DIR)/libEGL.so \ - $(TOP)/$(LIB_DIR)/libGLESv2.so + $(TOP)/$(LIB_DIR)/$(EGL_LIB_NAME) \ + $(TOP)/$(LIB_DIR)/$(GLESv2_LIB_NAME) ES2_LIBS = \ - -L$(TOP)/$(LIB_DIR) -lEGL \ - -L$(TOP)/$(LIB_DIR) -lGLESv2 $(LIBDRM_LIB) $(X11_LIBS) \ + -L$(TOP)/$(LIB_DIR) -l$(EGL_LIB) -l$(GLESv2_LIB) \ + $(LIBDRM_LIB) $(X11_LIBS) PROGRAMS = \ es2_info \ diff --git a/progs/egl/opengles2/es2gears.c b/progs/egl/opengles2/es2gears.c index 8e7a3e5249..6bd6594320 100644 --- a/progs/egl/opengles2/es2gears.c +++ b/progs/egl/opengles2/es2gears.c @@ -46,6 +46,10 @@ #include <EGL/eglext.h> #include "eglut.h" +#ifndef M_PI +#define M_PI 3.14159265 +#endif + struct gear { GLfloat *vertices; GLuint vbo; diff --git a/progs/egl/opengles2/tri.c b/progs/egl/opengles2/tri.c index 8981d8a7e2..812dbf031e 100644 --- a/progs/egl/opengles2/tri.c +++ b/progs/egl/opengles2/tri.c @@ -29,6 +29,10 @@ #include <EGL/egl.h> +#ifndef M_PI +#define M_PI 3.14159265 +#endif + #define FLOAT_TO_FIXED(X) ((X) * 65535.0) diff --git a/progs/egl/openvg/Makefile b/progs/egl/openvg/Makefile index 3b11933db2..9a96ccc45f 100644 --- a/progs/egl/openvg/Makefile +++ b/progs/egl/openvg/Makefile @@ -3,7 +3,7 @@ TOP = ../../.. include $(TOP)/configs/current -VG_LIBS=-lm -lEGL -lOpenVG -L$(TOP)/lib -L$(TOP)/lib/gallium +VG_LIBS=-lm -L$(TOP)/$(LIB_DIR) -l$(EGL_LIB) -l$(VG_LIB) INCLUDE_DIRS = -I$(TOP)/include $(X11_CFLAGS) EGLUT_DIR = $(TOP)/progs/egl/eglut diff --git a/progs/rbug/README b/progs/rbug/README index 0eb0a5de9a..ee6ae4247f 100644 --- a/progs/rbug/README +++ b/progs/rbug/README @@ -15,7 +15,7 @@ To build, build a normal gallium build and from this directory do the following. = Usage = Make sure that you driver has trace integration, see -src/gallium/driver/trace/README for more information about that. Then from on +src/gallium/driver/rbug/README for more information about that. Then from on the computer that you want to debug do: export GALLIUM_RBUG=true @@ -24,7 +24,10 @@ the computer that you want to debug do: From the debugging computer launch apps form this directory. Currently ip addresses are hardcoded and you need to edit the application, but that will -change in the future. +change in the future. For a more advanced gui application see: + + http://cgit.freedesktop.org/mesa/rbug-gui + = Testing = diff --git a/progs/tests/Makefile b/progs/tests/Makefile index 0f938f9b0c..f8473e64e2 100644 --- a/progs/tests/Makefile +++ b/progs/tests/Makefile @@ -134,6 +134,9 @@ INCLUDES = -I. -I$(TOP)/include UTIL_FILES = readtex.h readtex.c +GL_API_XML = $(TOP)/src/mapi/glapi/gen/gl_API.xml + + ##### TARGETS ##### default: $(UTIL_FILES) $(PROGS) @@ -160,7 +163,7 @@ clean: # auto code generation getprocaddress: getprocaddress.c getproclist.h -getproclist.h: $(TOP)/src/mesa/glapi/gen/gl_API.xml getprocaddress.c getprocaddress.py +getproclist.h: $(GL_API_XML) getprocaddress.c getprocaddress.py python getprocaddress.py > getproclist.h arraytexture: arraytexture.o readtex.o diff --git a/progs/tests/copypixrate.c b/progs/tests/copypixrate.c index f63d59f3ce..e7d8343721 100644 --- a/progs/tests/copypixrate.c +++ b/progs/tests/copypixrate.c @@ -270,6 +270,9 @@ main(int argc, char *argv[]) printf("Draw Buffer: %s\n", (Buffer == GL_BACK) ? "Back" : "Front"); Init(); + printf("Mode: %s\n", (UseBlit ? "glBlitFramebuffer" : "glCopyPixels")); + printf("Alpha Test: %s\n", (AlphaTest ? "yes" : "no")); + glutMainLoop(); return 0; } diff --git a/progs/tests/getprocaddress.c b/progs/tests/getprocaddress.c index 38ca7000df..f7903d2bf8 100644 --- a/progs/tests/getprocaddress.c +++ b/progs/tests/getprocaddress.c @@ -1189,6 +1189,7 @@ exercise_buffer_objects(enum Map_Buffer_Usage usage) GLint bufferMapped; static GLubyte data[BUFFER_DATA_SIZE] = {0}; float *dataPtr = NULL; + const char *extensions = (const char *) glGetString(GL_EXTENSIONS); /* Get the function pointers we need. These are from * GL_ARB_vertex_buffer_object and are required in all @@ -1216,6 +1217,9 @@ exercise_buffer_objects(enum Map_Buffer_Usage usage) * we're given Use_Map_Buffer_Range. Test it before using it. */ DECLARE_GLFUNC_PTR(BufferParameteriAPPLE, PFNGLBUFFERPARAMETERIAPPLEPROC); + if (!strstr("GL_APPLE_flush_buffer_range", extensions)) { + BufferParameteriAPPLE = NULL; + } /* Make sure we have all the function pointers we need. */ if (GenBuffersARB == NULL || @@ -1286,7 +1290,7 @@ exercise_buffer_objects(enum Map_Buffer_Usage usage) * using MapBufferRange, we first have to flush the range we modified. */ if (usage == Use_Map_Buffer_Range) { - (*FlushMappedBufferRange)(GL_ARRAY_BUFFER_ARB, 4, 16); + (*FlushMappedBufferRange)(GL_ARRAY_BUFFER_ARB, 0, 16); } if (!(*UnmapBufferARB)(GL_ARRAY_BUFFER_ARB)) { fprintf(stderr, "%s: UnmapBuffer failed\n", __FUNCTION__); @@ -1720,19 +1724,22 @@ static GLboolean test_CompressedTexImage3DARB(generic_func func) { (void) func; - return exercise_CompressedTextures(GL_TEXTURE_3D); + /*return exercise_CompressedTextures(GL_TEXTURE_3D);*/ + return GL_TRUE; } static GLboolean test_CompressedTexSubImage3DARB(generic_func func) { (void) func; - return exercise_CompressedTextures(GL_TEXTURE_3D); + /*return exercise_CompressedTextures(GL_TEXTURE_3D);*/ + return GL_TRUE; } static GLboolean test_GetCompressedTexImageARB(generic_func func) { (void) func; - return exercise_CompressedTextures(GL_TEXTURE_3D); + /*return exercise_CompressedTextures(GL_TEXTURE_3D);*/ + return GL_TRUE; } /* Wrappers on exercise_fences(). */ diff --git a/progs/tests/getprocaddress.py b/progs/tests/getprocaddress.py index 60111cb801..c421f90cb6 100644 --- a/progs/tests/getprocaddress.py +++ b/progs/tests/getprocaddress.py @@ -3,8 +3,10 @@ # Helper for the getprocaddress.c test. +glapi_xml_path = "../../src/mapi/glapi/gen/" + import sys, getopt, re -sys.path.append("../../src/mesa/glapi/gen" ) +sys.path.append(glapi_xml_path) import gl_XML import license @@ -74,7 +76,7 @@ static struct name_test_pair functions[] = {""" if __name__ == '__main__': - file_name = "../../src/mesa/glapi/gen/gl_API.xml" + file_name = glapi_xml_path + "gl_API.xml" try: (args, trail) = getopt.getopt(sys.argv[1:], "f:") diff --git a/progs/vpglsl/func.glsl b/progs/vpglsl/func.glsl new file mode 100644 index 0000000000..05539880fd --- /dev/null +++ b/progs/vpglsl/func.glsl @@ -0,0 +1,33 @@ +#version 120 +const int KernelSize = 16; +uniform float KernelValue1f[KernelSize]; + + +float add_two(float a, float b) +{ + if (a > b) + return a - b; + else + return a + b; +} + +vec4 func(vec4 x) +{ + int i; + vec4 tmp = gl_Color; + vec4 sum = x; + + for (i = 0; i < KernelSize; ++i) { + sum = vec4( add_two(sum.x, KernelValue1f[i]) ); + } + return sum; +} + +void main(void) +{ + vec4 sum = vec4(0.0); + + sum = func(sum); + gl_Position = gl_Vertex; + gl_FrontColor = sum; +} diff --git a/progs/vpglsl/func2.glsl b/progs/vpglsl/func2.glsl new file mode 100644 index 0000000000..df964ed6f0 --- /dev/null +++ b/progs/vpglsl/func2.glsl @@ -0,0 +1,54 @@ +#version 120 +const int KernelSize = 16; +uniform float KernelValue1f[KernelSize]; + + +float add_two(float a, float b) +{ + if (a > b) + return a - b; + else + return a + b; +} + +vec4 myfunc(vec4 x, vec4 mult, vec4 c) +{ + if (x.x >= 0.5) { + return mult * c; + } else { + return mult + c; + } +} + +vec4 func2(vec4 x) +{ + int i; + vec4 color = vec4(0); + for (i = 0; i < KernelSize; ++i) { + vec4 tmp = vec4(1./KernelSize); + color += myfunc(x, tmp, gl_Color); + } + return x * color; +} + +vec4 func(vec4 x) +{ + int i; + vec4 tmp = gl_Color; + vec4 sum = x; + + for (i = 0; i < KernelSize; ++i) { + sum = vec4( add_two(sum.x, KernelValue1f[i]) ); + } + sum = func2(sum); + return sum; +} + +void main(void) +{ + vec4 sum = vec4(0.0); + + sum = func(sum); + gl_Position = gl_Vertex; + gl_FrontColor = sum; +} diff --git a/progs/xdemos/glxinfo.c b/progs/xdemos/glxinfo.c index b656e58924..b774f504ae 100644 --- a/progs/xdemos/glxinfo.c +++ b/progs/xdemos/glxinfo.c @@ -35,6 +35,7 @@ #define GLX_GLXEXT_PROTOTYPES +#include <assert.h> #include <X11/Xlib.h> #include <X11/Xutil.h> #include <GL/gl.h> @@ -99,6 +100,8 @@ struct visual_attribs int accumRedSize, accumGreenSize, accumBlueSize, accumAlphaSize; int numSamples, numMultisample; int visualCaveat; + int floatComponents; + int srgb; }; @@ -642,9 +645,29 @@ visual_render_type_name(int type) return "rgba|ci"; default: return ""; - } + } } +static const char * +caveat_string(int caveat) +{ + switch (caveat) { +#ifdef GLX_EXT_visual_rating + case GLX_SLOW_VISUAL_EXT: + return "Slow"; + case GLX_NON_CONFORMANT_VISUAL_EXT: + return "Ncon"; + case GLX_NONE_EXT: + /* fall-through */ +#endif + case 0: + /* fall-through */ + default: + return "None"; + } +} + + static GLboolean get_visual_attribs(Display *dpy, XVisualInfo *vInfo, struct visual_attribs *attribs) @@ -728,6 +751,12 @@ get_visual_attribs(Display *dpy, XVisualInfo *vInfo, attribs->visualCaveat = 0; #endif +#if defined(GLX_EXT_framebuffer_sRGB) + if (ext && strstr(ext, "GLX_EXT_framebuffer_sRGB")) { + glXGetConfig(dpy, vInfo, GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT, &attribs->srgb); + } +#endif + return GL_TRUE; } @@ -759,20 +788,24 @@ static GLboolean get_fbconfig_attribs(Display *dpy, GLXFBConfig fbconfig, struct visual_attribs *attribs) { + const char *ext = glXQueryExtensionsString(dpy, 0); int visual_type; + XVisualInfo *vInfo; memset(attribs, 0, sizeof(struct visual_attribs)); glXGetFBConfigAttrib(dpy, fbconfig, GLX_FBCONFIG_ID, &attribs->id); -#if 0 - attribs->depth = vInfo->depth; - attribs->redMask = vInfo->red_mask; - attribs->greenMask = vInfo->green_mask; - attribs->blueMask = vInfo->blue_mask; - attribs->colormapSize = vInfo->colormap_size; - attribs->bitsPerRGB = vInfo->bits_per_rgb; -#endif + vInfo = glXGetVisualFromFBConfig(dpy, fbconfig); + + if (vInfo != NULL) { + attribs->depth = vInfo->depth; + attribs->redMask = vInfo->red_mask; + attribs->greenMask = vInfo->green_mask; + attribs->blueMask = vInfo->blue_mask; + attribs->colormapSize = vInfo->colormap_size; + attribs->bitsPerRGB = vInfo->bits_per_rgb; + } glXGetFBConfigAttrib(dpy, fbconfig, GLX_X_VISUAL_TYPE, &visual_type); attribs->klass = glx_token_to_visual_class(visual_type); @@ -813,6 +846,24 @@ get_fbconfig_attribs(Display *dpy, GLXFBConfig fbconfig, glXGetFBConfigAttrib(dpy, fbconfig, GLX_SAMPLES, &attribs->numSamples); glXGetFBConfigAttrib(dpy, fbconfig, GLX_CONFIG_CAVEAT, &attribs->visualCaveat); +#if defined(GLX_NV_float_buffer) + if (ext && strstr(ext, "GLX_NV_float_buffer")) { + glXGetFBConfigAttrib(dpy, fbconfig, GLX_FLOAT_COMPONENTS_NV, &attribs->floatComponents); + } +#endif +#if defined(GLX_ARB_fbconfig_float) + if (ext && strstr(ext, "GLX_ARB_fbconfig_float")) { + if (attribs->render_type & GLX_RGBA_FLOAT_BIT_ARB) { + attribs->floatComponents = True; + } + } +#endif + +#if defined(GLX_EXT_framebuffer_sRGB) + if (ext && strstr(ext, "GLX_EXT_framebuffer_sRGB")) { + glXGetFBConfigAttrib(dpy, fbconfig, GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT, &attribs->srgb); + } +#endif return GL_TRUE; } @@ -830,9 +881,11 @@ print_visual_attribs_verbose(const struct visual_attribs *attribs) attribs->bufferSize, attribs->level, visual_render_type_name(attribs->render_type), attribs->doubleBuffer, attribs->stereo); - printf(" rgba: redSize=%d greenSize=%d blueSize=%d alphaSize=%d\n", + printf(" rgba: redSize=%d greenSize=%d blueSize=%d alphaSize=%d float=%c sRGB=%c\n", attribs->redSize, attribs->greenSize, - attribs->blueSize, attribs->alphaSize); + attribs->blueSize, attribs->alphaSize, + attribs->floatComponents ? 'Y' : 'N', + attribs->srgb ? 'Y' : 'N'); printf(" auxBuffers=%d depthSize=%d stencilSize=%d\n", attribs->auxBuffers, attribs->depthSize, attribs->stencilSize); printf(" accum: redSize=%d greenSize=%d blueSize=%d alphaSize=%d\n", @@ -863,30 +916,18 @@ print_visual_attribs_verbose(const struct visual_attribs *attribs) static void print_visual_attribs_short_header(void) { - printf(" visual x bf lv rg d st colorbuffer ax dp st accumbuffer ms cav\n"); - printf(" id dep cl sp sz l ci b ro r g b a bf th cl r g b a ns b eat\n"); - printf("----------------------------------------------------------------------\n"); + printf(" visual x bf lv rg d st colorbuffer sr ax dp st accumbuffer ms cav\n"); + printf(" id dep cl sp sz l ci b ro r g b a F gb bf th cl r g b a ns b eat\n"); + printf("----------------------------------------------------------------------------\n"); } static void print_visual_attribs_short(const struct visual_attribs *attribs) { - char *caveat = NULL; -#ifdef GLX_EXT_visual_rating - if (attribs->visualCaveat == GLX_NONE_EXT || attribs->visualCaveat == 0) - caveat = "None"; - else if (attribs->visualCaveat == GLX_SLOW_VISUAL_EXT) - caveat = "Slow"; - else if (attribs->visualCaveat == GLX_NON_CONFORMANT_VISUAL_EXT) - caveat = "Ncon"; - else - caveat = "None"; -#else - caveat = "None"; -#endif + const char *caveat = caveat_string(attribs->visualCaveat); - printf("0x%02x %2d %2s %2d %2d %2d %c%c %c %c %2d %2d %2d %2d %2d %2d %2d", + printf("0x%03x %2d %2s %2d %3d %2d %c%c %c %c %2d %2d %2d %2d %c %c %2d %2d %2d", attribs->id, attribs->depth, visual_class_abbrev(attribs->klass), @@ -899,6 +940,8 @@ print_visual_attribs_short(const struct visual_attribs *attribs) attribs->stereo ? 'y' : '.', attribs->redSize, attribs->greenSize, attribs->blueSize, attribs->alphaSize, + attribs->floatComponents ? 'f' : '.', + attribs->srgb ? 's' : '.', attribs->auxBuffers, attribs->depthSize, attribs->stencilSize @@ -916,16 +959,18 @@ print_visual_attribs_short(const struct visual_attribs *attribs) static void print_visual_attribs_long_header(void) { - printf("Vis Vis Visual Trans buff lev render DB ste r g b a aux dep ste accum buffers MS MS\n"); - printf(" ID Depth Type parent size el type reo sz sz sz sz buf th ncl r g b a num bufs\n"); - printf("----------------------------------------------------------------------------------------------------\n"); + printf("Vis Vis Visual Trans buff lev render DB ste r g b a s aux dep ste accum buffer MS MS \n"); + printf(" ID Depth Type parent size el type reo sz sz sz sz flt rgb buf th ncl r g b a num bufs caveats\n"); + printf("--------------------------------------------------------------------------------------------------------------------\n"); } static void print_visual_attribs_long(const struct visual_attribs *attribs) { - printf("0x%2x %2d %-11s %2d %2d %2d %4s %3d %3d %3d %3d %3d %3d", + const char *caveat = caveat_string(attribs->visualCaveat); + + printf("0x%3x %2d %-11s %2d %3d %2d %4s %3d %3d %3d %3d %3d %3d", attribs->id, attribs->depth, visual_class_name(attribs->klass), @@ -939,13 +984,16 @@ print_visual_attribs_long(const struct visual_attribs *attribs) attribs->blueSize, attribs->alphaSize ); - printf(" %3d %4d %2d %3d %3d %3d %3d %2d %2d\n", + printf(" %c %c %3d %4d %2d %3d %3d %3d %3d %2d %2d %6s\n", + attribs->floatComponents ? 'f' : '.', + attribs->srgb ? 's' : '.', attribs->auxBuffers, attribs->depthSize, attribs->stencilSize, attribs->accumRedSize, attribs->accumGreenSize, attribs->accumBlueSize, attribs->accumAlphaSize, - attribs->numSamples, attribs->numMultisample + attribs->numSamples, attribs->numMultisample, + caveat ); } |