head 1.14; access; symbols start:1.1.1.1 cairo:1.1.1; locks; strict; comment @ * @; 1.14 date 2005.12.02.01.46.55; author davidr; state Exp; branches; next 1.13; commitid 2c55438fa78d4567; 1.13 date 2005.12.01.23.24.46; author krh; state Exp; branches; next 1.12; commitid 45df438f863e4567; 1.12 date 2005.09.14.15.58.35; author davidr; state Exp; branches; next 1.11; commitid 1a91432848ab4567; 1.11 date 2005.05.19.17.47.32; author jonsmirl; state Exp; branches; next 1.10; commitid 19b2428cd11e4567; 1.10 date 2005.01.25.19.54.11; author davidr; state Exp; branches; next 1.9; 1.9 date 2004.11.22.15.02.25; author davidr; state Exp; branches; next 1.8; 1.8 date 2004.10.04.11.42.01; author davidr; state Exp; branches; next 1.7; 1.7 date 2004.09.13.17.51.28; author davidr; state Exp; branches; next 1.6; 1.6 date 2004.09.06.23.07.04; author davidr; state Exp; branches; next 1.5; 1.5 date 2004.09.06.12.52.24; author davidr; state Exp; branches; next 1.4; 1.4 date 2004.08.18.12.34.05; author davidr; state Exp; branches; next 1.3; 1.3 date 2004.08.09.23.00.36; author davidr; state Exp; branches; next 1.2; 1.2 date 2004.07.20.07.54.28; author davidr; state Exp; branches; next 1.1; 1.1 date 2004.05.30.22.54.43; author davidr; state Exp; branches 1.1.1.1; next ; 1.1.1.1 date 2004.05.30.22.54.43; author davidr; state Exp; branches; next ; desc @@ 1.14 log @List YUV surface formats @ text @/* * Copyright © 2004 David Reveman * * Permission to use, copy, modify, distribute, and sell this software * and its documentation for any purpose is hereby granted without * fee, provided that the above copyright notice appear in all copies * and that both that copyright notice and this permission notice * appear in supporting documentation, and that the name of * David Reveman not be used in advertising or publicity pertaining to * distribution of the software without specific, written prior permission. * David Reveman makes no representations about the suitability of this * software for any purpose. It is provided "as is" without express or * implied warranty. * * DAVID REVEMAN DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN * NO EVENT SHALL DAVID REVEMAN BE LIABLE FOR ANY SPECIAL, INDIRECT OR * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * * Author: David Reveman */ #include #ifdef GLITZ_GLX_BACKEND #include #include #endif #ifdef GLITZ_EGL_BACKEND #include #include #include #endif #ifdef GLITZ_AGL_BACKEND #include #endif static void print_features (unsigned long features) { printf ("texture rectangle: %s\n", (features & GLITZ_FEATURE_TEXTURE_RECTANGLE_MASK)? "Yes": "No"); printf ("texture non power of two: %s\n", (features & GLITZ_FEATURE_TEXTURE_NON_POWER_OF_TWO_MASK)? "Yes": "No"); printf ("texture mirrored repeat: %s\n", (features & GLITZ_FEATURE_TEXTURE_MIRRORED_REPEAT_MASK)? "Yes": "No"); printf ("texture border clamp: %s\n", (features & GLITZ_FEATURE_TEXTURE_BORDER_CLAMP_MASK)? "Yes": "No"); printf ("multitexture: %s\n", (features & GLITZ_FEATURE_MULTITEXTURE_MASK)? "Yes": "No"); printf ("multi draw arrays: %s\n", (features & GLITZ_FEATURE_MULTI_DRAW_ARRAYS_MASK)? "Yes": "No"); printf ("texture environment combine: %s\n", (features & GLITZ_FEATURE_TEXTURE_ENV_COMBINE_MASK)? "Yes": "No"); printf ("texture environment dot3: %s\n", (features & GLITZ_FEATURE_TEXTURE_ENV_DOT3_MASK)? "Yes": "No"); printf ("blend color: %s\n", (features & GLITZ_FEATURE_BLEND_COLOR_MASK)? "Yes": "No"); printf ("packed pixels: %s\n", (features & GLITZ_FEATURE_PACKED_PIXELS_MASK)? "Yes": "No"); printf ("fragment program: %s\n", (features & GLITZ_FEATURE_FRAGMENT_PROGRAM_MASK)? "Yes": "No"); printf ("vertex buffer object: %s\n", (features & GLITZ_FEATURE_VERTEX_BUFFER_OBJECT_MASK)? "Yes": "No"); printf ("pixel buffer object: %s\n", (features & GLITZ_FEATURE_PIXEL_BUFFER_OBJECT_MASK)? "Yes": "No"); printf ("per component rendering: %s\n", (features & GLITZ_FEATURE_PER_COMPONENT_RENDERING_MASK)? "Yes": "No"); printf ("full-scene anti-aliasing: %s\n", (features & GLITZ_FEATURE_MULTISAMPLE_MASK)? "Yes": "No"); printf ("full-scene anti-aliasing filter hint: %s\n", (features & GLITZ_FEATURE_MULTISAMPLE_FILTER_HINT_MASK)? "Yes": "No"); printf ("framebuffer object: %s\n", (features & GLITZ_FEATURE_FRAMEBUFFER_OBJECT_MASK)? "Yes": "No"); } static int print_format (glitz_drawable_format_t *format) { if (format) { printf ("0x%x\t%d/%d/%d/%d \t%d\t%d\t%c\t%d\n", (int) format->id, format->color.red_size, format->color.green_size, format->color.blue_size, format->color.alpha_size, format->depth_size, format->stencil_size, (format->doublebuffer) ? 'y' : '.', format->samples); return 1; } return 0; } int main (int argc, char **argv) { glitz_drawable_format_t *dformat; glitz_drawable_t *drawable; glitz_format_t *formats; int i; #ifdef GLITZ_GLX_BACKEND Display *display; int screen; XSetWindowAttributes xswa; Window win; XVisualInfo *vinfo; if ((display = XOpenDisplay (NULL)) == NULL) { fprintf (stderr, "Error: can't open %s\n", XDisplayName (NULL)); return 1; } screen = DefaultScreen (display); glitz_glx_init (NULL); dformat = glitz_glx_find_window_format (display, screen, 0, 0, 0); if (!dformat) { fprintf (stderr, "Error: couldn't find window format\n"); return 1; } vinfo = glitz_glx_get_visual_info_from_format (display, screen, dformat); if (!vinfo) { fprintf (stderr, "Error: no visual info from format\n"); return 1; } xswa.colormap = XCreateColormap (display, RootWindow (display, screen), vinfo->visual, AllocNone); win = XCreateWindow (display, RootWindow (display, screen), 0, 0, 1, 1, 0, vinfo->depth, InputOutput, vinfo->visual, CWColormap, &xswa); XFree (vinfo); drawable = glitz_glx_create_drawable_for_window (display, screen, dformat, win, 1, 1); if (!drawable) { fprintf (stderr, "Error: couldn't create glitz drawable for window\n"); return 1; } printf ("name of display: %s\n\n", DisplayString (display)); #endif #ifdef GLITZ_EGL_BACKEND EGLDisplay display; EGLScreenMESA screen; EGLModeMESA mode; EGLSurface screen_surf; int maj, min, count; const EGLint screenAttribs[] = { EGL_WIDTH, 1024, EGL_HEIGHT, 768, EGL_NONE }; display = eglGetDisplay (":0"); assert(display); if (!eglInitialize (display, &maj, &min)) { fprintf (stderr, "Error: eglInitialize failed\n"); return 1; } eglGetScreensMESA (display, &screen, 1, &count); eglGetModesMESA (display, screen, &mode, 1, &count); glitz_egl_init (NULL); dformat = glitz_egl_find_window_config (display, screen, 0, 0, 0); if (!dformat) { fprintf (stderr, "Error: couldn't find drawable format\n"); return 1; } screen_surf = eglCreateScreenSurfaceMESA (display, dformat->id, screenAttribs); if (screen_surf == EGL_NO_SURFACE) { fprintf (stderr, "Error: failed to create screen surface\n"); return 0; } eglShowSurfaceMESA (display, screen, screen_surf, mode); drawable = glitz_egl_create_surface (display, screen, dformat, screen_surf, 1, 1); if (!drawable) { fprintf (stderr, "Error: couldn't create glitz drawable for window\n"); return 1; } #endif #ifdef GLITZ_AGL_BACKEND WindowRef window; Rect bounds; glitz_agl_init (); dformat = glitz_agl_find_drawable_format (0, 0, 0); if (!dformat) { fprintf (stderr, "Error: couldn't find drawable format\n"); return 1; } SetRect (&bounds, 0, 0, 1, 1); CreateNewWindow (kDocumentWindowClass, kWindowStandardDocumentAttributes, &bounds, &window); drawable = glitz_agl_create_drawable_for_window (dformat, window, 1, 1); if (!drawable) { fprintf (stderr, "Error: couldn't create glitz drawable for window\n"); return 1; } #endif print_features (glitz_drawable_get_features (drawable)); printf ("\nWindow formats:\n"); printf ("id\tr/g/b/a \tdepth\tstencil\tdb\tsamples\n"); printf ("-------------------------------------" "-------------------\n"); i = 0; #ifdef GLITZ_GLX_BACKEND while (print_format (glitz_glx_find_window_format (display, screen, 0, 0, i))) i++; #endif #ifdef GLITZ_EGL_BACKEND while (print_format (glitz_egl_find_window_config (display, screen, 0, 0, i))) i++; #endif #ifdef GLITZ_AGL_BACKEND while (print_format (glitz_agl_find_window_format (0, 0, i))) i++; #endif printf ("\nPbuffer formats:\n"); printf ("id\tr/g/b/a \tdepth\tstencil\tdb\tsamples\n"); printf ("-------------------------------------" "-------------------\n"); i = 0; while (print_format (glitz_find_pbuffer_format (drawable, 0, 0, i))) i++; printf ("\nOffscreen formats:\n"); printf ("id\tr/g/b/a \tdepth\tstencil\tdb\tsamples\n"); printf ("-------------------------------------" "-------------------\n"); i = 0; while (print_format (glitz_find_drawable_format (drawable, 0, 0, i))) i++; printf ("\nSurface formats:\n"); printf ("id\ttype\tfourcc\tr/g/b/a\n"); printf ("--------------------------------\n"); i = 0; do { formats = glitz_find_format (drawable, 0, NULL, i++); if (formats) { printf ("0x%x\t", (int) formats->id); switch (formats->color.fourcc) { case GLITZ_FOURCC_RGB: printf ("color\tRGB\t%d/%d/%d/%d", formats->color.red_size, formats->color.green_size, formats->color.blue_size, formats->color.alpha_size); break; case GLITZ_FOURCC_YV12: printf ("color\tYV12"); break; case GLITZ_FOURCC_YUY2: printf ("color\tYUY2"); break; } printf ("\n"); } } while (formats); glitz_drawable_destroy (drawable); #ifdef GLITZ_GLX_BACKEND glitz_glx_fini (); XDestroyWindow (display, win); XFreeColormap (display, xswa.colormap); XCloseDisplay (display); #endif #ifdef GLITZ_EGL_BACKEND glitz_egl_fini (); eglShowSurfaceMESA (display, screen, EGL_NO_SURFACE, EGL_NO_MODE_MESA); eglDestroySurface (display, screen_surf); eglTerminate (display); #endif #ifdef GLITZ_AGL_BACKEND glitz_agl_fini (); #endif return 0; } @ 1.13 log @Track changes to glitz. @ text @d288 2 a289 2 printf ("id\ttype\tr/g/b/a\n"); printf ("------------------------\n"); d300 1 a300 1 printf ("color\t%d/%d/%d/%d", d305 7 @ 1.12 log @Track changes to glitz @ text @d298 2 a299 2 switch (formats->type) { case GLITZ_FORMAT_TYPE_COLOR: @ 1.11 log @egl implementation of glitzinfo @ text @d15 1 a15 1 * DAVID REVEMAN DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, d19 1 a19 1 * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, d43 1 a43 1 void d46 60 a105 37 printf ("texture rectangle: %s\n", (features & GLITZ_FEATURE_TEXTURE_RECTANGLE_MASK)? "Yes": "No"); printf ("texture non power of two: %s\n", (features & GLITZ_FEATURE_TEXTURE_NON_POWER_OF_TWO_MASK)? "Yes": "No"); printf ("texture mirrored repeat: %s\n", (features & GLITZ_FEATURE_TEXTURE_MIRRORED_REPEAT_MASK)? "Yes": "No"); printf ("texture border clamp: %s\n", (features & GLITZ_FEATURE_TEXTURE_BORDER_CLAMP_MASK)? "Yes": "No"); printf ("multitexture: %s\n", (features & GLITZ_FEATURE_MULTITEXTURE_MASK)? "Yes": "No"); printf ("multi draw arrays: %s\n", (features & GLITZ_FEATURE_MULTI_DRAW_ARRAYS_MASK)? "Yes": "No"); printf ("texture environment combine: %s\n", (features & GLITZ_FEATURE_TEXTURE_ENV_COMBINE_MASK)? "Yes": "No"); printf ("texture environment dot3: %s\n", (features & GLITZ_FEATURE_TEXTURE_ENV_DOT3_MASK)? "Yes": "No"); printf ("blend color: %s\n", (features & GLITZ_FEATURE_BLEND_COLOR_MASK)? "Yes": "No"); printf ("packed pixels: %s\n", (features & GLITZ_FEATURE_PACKED_PIXELS_MASK)? "Yes": "No"); printf ("fragment program: %s\n", (features & GLITZ_FEATURE_FRAGMENT_PROGRAM_MASK)? "Yes": "No"); printf ("vertex buffer object: %s\n", (features & GLITZ_FEATURE_VERTEX_BUFFER_OBJECT_MASK)? "Yes": "No"); printf ("pixel buffer object: %s\n", (features & GLITZ_FEATURE_PIXEL_BUFFER_OBJECT_MASK)? "Yes": "No"); printf ("per component rendering: %s\n", (features & GLITZ_FEATURE_PER_COMPONENT_RENDERING_MASK)? "Yes": "No"); printf ("full-scene anti-aliasing: %s\n", (features & GLITZ_FEATURE_MULTISAMPLE_MASK)? "Yes": "No"); printf ("full-scene anti-aliasing filter hint: %s\n", (features & GLITZ_FEATURE_MULTISAMPLE_FILTER_HINT_MASK)? "Yes": "No"); d109 6 a114 7 main (int argc, char **argv) { glitz_drawable_format_t templ; unsigned long mask; glitz_drawable_format_t *dformats; glitz_format_t *formats; glitz_drawable_t *drawable; int i; d117 47 a163 48 Display *display; int screen; XSetWindowAttributes xswa; Window win; XVisualInfo *vinfo; if ((display = XOpenDisplay (NULL)) == NULL) { fprintf (stderr, "Error: can't open %s\n", XDisplayName (NULL)); return 1; } screen = DefaultScreen (display); glitz_glx_init (NULL); templ.types.window = 1; mask = GLITZ_FORMAT_WINDOW_MASK; dformats = glitz_glx_find_drawable_format (display, screen, mask, &templ, 0); if (!dformats) { fprintf (stderr, "Error: couldn't find drawable format\n"); return 1; } vinfo = glitz_glx_get_visual_info_from_format (display, screen, dformats); if (!vinfo) { fprintf (stderr, "Error: no visual info from format\n"); return 1; } xswa.colormap = XCreateColormap (display, RootWindow (display, screen), vinfo->visual, AllocNone); win = XCreateWindow (display, RootWindow (display, screen), 0, 0, 1, 1, 0, vinfo->depth, InputOutput, vinfo->visual, CWColormap, &xswa); XFree (vinfo); drawable = glitz_glx_create_drawable_for_window (display, screen, dformats, win, 1, 1); if (!drawable) { fprintf (stderr, "Error: couldn't create glitz drawable for window\n"); return 1; } printf ("name of display: %s\n\n", DisplayString (display)); d165 1 a165 1 d167 24 d192 24 a215 48 EGLDisplay display; EGLScreenMESA screen; EGLModeMESA mode; EGLSurface screen_surf; int maj, min, count; const EGLint screenAttribs[] = { EGL_WIDTH, 1024, EGL_HEIGHT, 768, EGL_NONE }; display = eglGetDisplay("!fb_dri"); assert(display); if (!eglInitialize(display, &maj, &min)) { printf("demo: eglInitialize failed\n"); exit(1); } eglGetScreensMESA(display, &screen, 1, &count); eglGetModesMESA(display, screen, &mode, 1, &count); glitz_egl_init (NULL); templ.types.window = 1; mask = GLITZ_FORMAT_WINDOW_MASK; dformats = glitz_egl_find_config (display, screen, mask, &templ, 0); if (!dformats) { fprintf (stderr, "Error: couldn't find drawable format\n"); return 1; } screen_surf = eglCreateScreenSurfaceMESA(display, dformats->id, screenAttribs); if (screen_surf == EGL_NO_SURFACE) { printf("failed to create screen surface\n"); return 0; } eglShowSurfaceMESA(display, screen, screen_surf, mode); drawable = glitz_egl_create_surface (display, screen, dformats, screen_surf, 1, 1); if (!drawable) { fprintf (stderr, "Error: couldn't create glitz drawable for window\n"); return 1; } d217 1 a217 1 d219 2 a220 2 WindowRef window; Rect bounds; d222 1 a222 2 templ.types.window = 1; mask = GLITZ_FORMAT_WINDOW_MASK; d224 6 a229 65 glitz_agl_init (); dformats = glitz_agl_find_drawable_format (mask, &templ, 0); if (!dformats) { fprintf (stderr, "Error: couldn't find drawable format\n"); return 1; } SetRect (&bounds, 0, 0, 1, 1); CreateNewWindow (kDocumentWindowClass, kWindowStandardDocumentAttributes, &bounds, &window); drawable = glitz_agl_create_drawable_for_window (dformats, window, 1, 1); if (!drawable) { fprintf (stderr, "Error: couldn't create glitz drawable for window\n"); return 1; } #endif print_features (glitz_drawable_get_features (drawable)); printf ("\nDrawable formats:\n"); printf ("id\tr/g/b/a \tdepth\tstencil\twindow\tpbuffer\tdb\tsamples\n"); printf ("-------------------------------------" "-----------------------------------\n"); i = 0; do { dformats = glitz_find_similar_drawable_format (drawable, 0, NULL, i++); if (dformats) { printf ("0x%x\t%d/%d/%d/%d \t%d\t%d\t%c\t%c\t%c\t%d\n", (int) dformats->id, dformats->color.red_size, dformats->color.green_size, dformats->color.blue_size, dformats->color.alpha_size, dformats->depth_size, dformats->stencil_size, (dformats->types.window) ? 'y': '.', (dformats->types.pbuffer) ? 'y': '.', (dformats->doublebuffer) ? 'y': '.', dformats->samples); } } while (dformats); printf ("\nSurface formats:\n"); printf ("id\ttype\tr/g/b/a\n"); printf ("------------------------\n"); i = 0; do { formats = glitz_find_format (drawable, 0, NULL, i++); if (formats) { printf ("0x%x\t", (int) formats->id); switch (formats->type) { case GLITZ_FORMAT_TYPE_COLOR: printf ("color\t%d/%d/%d/%d", formats->color.red_size, formats->color.green_size, formats->color.blue_size, formats->color.alpha_size); } d231 9 a239 1 printf ("\n"); d241 8 a248 1 } while (formats); d250 1 a250 1 glitz_drawable_destroy (drawable); d253 3 a255 5 glitz_glx_fini (); XDestroyWindow (display, win); XFreeColormap (display, xswa.colormap); XCloseDisplay (display); d259 68 a326 1 glitz_egl_fini (); a327 4 eglShowSurfaceMESA(display, screen, EGL_NO_SURFACE, EGL_NO_MODE_MESA); eglDestroySurface(display, screen_surf); eglTerminate(display); d331 1 a331 1 glitz_agl_fini (); d334 1 a334 1 return 0; @ 1.10 log @Check for multi draw arrays @ text @d33 6 d145 52 d284 9 @ 1.9 log @Track changes to glitz @ text @d2 1 a2 1 * Copyright © 2004 David Reveman d8 1 a8 1 * appear in supporting documentation, and that the names of d23 1 a23 1 * Author: David Reveman d52 2 @ 1.8 log @Check GLITZ_FEATURE_BLEND_COLOR_MASK @ text @d59 2 a71 2 printf ("offscreen full-scene anti-aliasing: %s\n", (features & GLITZ_FEATURE_OFFSCREEN_MULTISAMPLE_MASK)? "Yes": "No"); d79 1 a79 1 glitz_format_t templ; d81 1 d83 1 a83 1 glitz_surface_t *surface; d102 2 a103 2 templ.draw.onscreen = 1; mask = GLITZ_FORMAT_DRAW_ONSCREEN_MASK; d105 3 a107 3 formats = glitz_glx_find_format (display, screen, mask, &templ, 0); if (!formats) { fprintf (stderr, "Error: couldn't find onscreen format\n"); d111 1 a111 1 vinfo = glitz_glx_get_visual_info_from_format (display, screen, formats); d127 4 a130 4 surface = glitz_glx_surface_create_for_window (display, screen, formats, win, 1, 1); if (!surface) { fprintf (stderr, "Error: couldn't create glitz surface for window\n"); d141 2 a142 2 templ.draw.onscreen = 1; mask = GLITZ_FORMAT_DRAW_ONSCREEN_MASK; d146 3 a148 3 formats = glitz_agl_find_format (mask, &templ, 0); if (!formats) { fprintf (stderr, "Error: couldn't find onscreen format\n"); d156 3 a158 3 surface = glitz_agl_surface_create_for_window (formats, window, 1, 1); if (!surface) { fprintf (stderr, "Error: couldn't create glitz surface for window\n"); d163 4 a166 4 print_features (glitz_surface_get_features (surface)); printf ("\nid\tr/g/b/a \tdepth\tstencil" "\tonscreen offscreen db ms/samples\n"); d172 17 d190 3 a192 3 #ifdef GLITZ_GLX_BACKEND formats = glitz_glx_find_format (display, screen, 0, NULL, i++); #endif d194 3 a196 3 #ifdef GLITZ_AGL_BACKEND formats = glitz_agl_find_format (0, NULL, i++); #endif d199 12 a210 14 printf ("0x%x\t%d/%d/%d/%d \t%d\t%d\t%s %s %c ", (int) formats->id, formats->red_size, formats->green_size, formats->blue_size, formats->alpha_size, formats->depth_size, formats->stencil_size, (formats->draw.onscreen) ? "rw": ". ", (formats->draw.offscreen) ? "rw": (formats->read.offscreen) ? "r ": ". ", (formats->doublebuffer) ? 'y': '.'); if (formats->multisample.supported) printf ("y/%d\n", formats->multisample.samples); else printf (".\n"); a211 1 d214 1 a214 1 glitz_surface_destroy (surface); @ 1.7 log @GLITZ_FEATURE_COMPONENT_ALPHA_MASK -> GLITZ_FEATURE_PER_COMPONENT_RENDERING_MASK @ text @d57 2 @ 1.6 log @Tracking changes to glitz @ text @d63 3 a65 2 printf ("component alpha: %s\n", (features & GLITZ_FEATURE_COMPONENT_ALPHA_MASK)? "Yes": "No"); @ 1.5 log @vertex program gone andinstead check for vertex buffer object support @ text @d124 1 a124 1 formats, win); d152 1 a152 1 surface = glitz_agl_surface_create_for_window (formats, window); @ 1.4 log @Tracking changes to glitz @ text @a56 2 printf ("vertex program: %s\n", (features & GLITZ_FEATURE_VERTEX_PROGRAM_MASK)? "Yes": "No"); d59 2 @ 1.3 log @Find onscreen format correctly and print new glitz features @ text @a62 4 printf ("convolution filters: %s\n", (features & GLITZ_FEATURE_CONVOLUTION_FILTER_MASK)? "Yes": "No"); printf ("offscreen drawing: %s\n", (features & GLITZ_FEATURE_OFFSCREEN_DRAWING_MASK)? "Yes": "No"); d142 2 a143 2 format = glitz_agl_find_format (&templ, mask, 0); if (!format) { @ 1.2 log @Check for component-alpha and new texture environment features @ text @d42 3 a44 2 printf ("texture npot: %s\n", (features & GLITZ_FEATURE_TEXTURE_NPOT_MASK)? "Yes": "No"); d48 2 d51 1 a51 1 (features & GLITZ_FEATURE_ARB_MULTITEXTURE_MASK)? "Yes": "No"); d53 1 a53 1 (features & GLITZ_FEATURE_ARB_TEXTURE_ENV_COMBINE_MASK)? "Yes": d56 1 a56 1 (features & GLITZ_FEATURE_ARB_TEXTURE_ENV_DOT3_MASK)? "Yes": "No"); d58 1 a58 1 (features & GLITZ_FEATURE_ARB_VERTEX_PROGRAM_MASK)? "Yes": "No"); d60 1 a60 1 (features & GLITZ_FEATURE_ARB_FRAGMENT_PROGRAM_MASK)? "Yes": "No"); d73 3 a75 1 d80 2 d101 3 d105 1 a105 10 formats = glitz_glx_find_standard_format (display, screen, GLITZ_FORMAT_OPTION_ONSCREEN_MASK, GLITZ_STANDARD_ARGB32); if (!formats) formats = glitz_glx_find_standard_format (display, screen, GLITZ_FORMAT_OPTION_ONSCREEN_MASK, GLITZ_STANDARD_RGB24); d107 1 a107 1 fprintf (stderr, "Error: couldn't find RGB format\n"); d110 2 a111 3 vinfo = glitz_glx_get_visual_info_from_format (display, screen, formats); d113 1 a113 1 fprintf (stderr, "Error: no visual info\n"); d141 3 d146 3 a148 10 formats = glitz_agl_find_standard_format (GLITZ_FORMAT_OPTION_ONSCREEN_MASK, GLITZ_STANDARD_ARGB32); if (!formats) formats = glitz_agl_find_standard_format (GLITZ_FORMAT_OPTION_ONSCREEN_MASK, GLITZ_STANDARD_RGB24); if (!formats) { fprintf (stderr, "Error: couldn't find RGB format\n"); d206 1 @ 1.1 log @Initial revision @ text @a39 8 printf ("offscreen drawing: %s\n", (features & GLITZ_FEATURE_OFFSCREEN_DRAWING_MASK)? "Yes": "No"); printf ("convolution filters: %s\n", (features & GLITZ_FEATURE_CONVOLUTION_FILTER_MASK)? "Yes": "No"); printf ("multisample: %s\n", (features & GLITZ_FEATURE_MULTISAMPLE_MASK)? "Yes": "No"); printf ("offscreen multisample: %s\n", (features & GLITZ_FEATURE_OFFSCREEN_MULTISAMPLE_MASK)? "Yes": "No"); d49 5 d58 13 @ 1.1.1.1 log @Initial import of glitzinfo @ text @@