diff options
Diffstat (limited to 'src/gallium/state_trackers')
-rw-r--r-- | src/gallium/state_trackers/dri/common/dri_drawable.c | 1 | ||||
-rw-r--r-- | src/gallium/state_trackers/dri/common/dri_st_api.c | 1 | ||||
-rw-r--r-- | src/gallium/state_trackers/dri/drm/dri1.c | 2 | ||||
-rw-r--r-- | src/gallium/state_trackers/dri/sw/drisw.c | 1 | ||||
-rw-r--r-- | src/gallium/state_trackers/glx/xlib/glx_api.c | 4 | ||||
-rw-r--r-- | src/gallium/state_trackers/glx/xlib/xm_api.c | 9 | ||||
-rw-r--r-- | src/gallium/state_trackers/python/gallium.i | 3 | ||||
-rw-r--r-- | src/gallium/state_trackers/python/u_format.i | 88 |
8 files changed, 103 insertions, 6 deletions
diff --git a/src/gallium/state_trackers/dri/common/dri_drawable.c b/src/gallium/state_trackers/dri/common/dri_drawable.c index 75b4cc56289..88c17e81bfb 100644 --- a/src/gallium/state_trackers/dri/common/dri_drawable.c +++ b/src/gallium/state_trackers/dri/common/dri_drawable.c @@ -38,7 +38,6 @@ #include "pipe/p_screen.h" #include "util/u_format.h" #include "util/u_memory.h" -#include "util/u_inlines.h" /** * This is called when we need to set up GL rendering to a new X window. diff --git a/src/gallium/state_trackers/dri/common/dri_st_api.c b/src/gallium/state_trackers/dri/common/dri_st_api.c index 7ba7ec383d8..1a5259c68ba 100644 --- a/src/gallium/state_trackers/dri/common/dri_st_api.c +++ b/src/gallium/state_trackers/dri/common/dri_st_api.c @@ -35,7 +35,6 @@ #include "dri_context.h" #include "dri_drawable.h" #include "dri_st_api.h" -#include "dri1_helper.h" #ifndef __NOT_HAVE_DRM_H #include "dri1.h" #include "dri2.h" diff --git a/src/gallium/state_trackers/dri/drm/dri1.c b/src/gallium/state_trackers/dri/drm/dri1.c index 9b5842ba2bf..cca7cd8f0c3 100644 --- a/src/gallium/state_trackers/dri/drm/dri1.c +++ b/src/gallium/state_trackers/dri/drm/dri1.c @@ -514,6 +514,8 @@ dri1_init_screen(__DRIscreen * sPriv) return configs; fail: + if (configs) + FREE(configs); dri_destroy_screen_helper(screen); FREE(screen); return NULL; diff --git a/src/gallium/state_trackers/dri/sw/drisw.c b/src/gallium/state_trackers/dri/sw/drisw.c index b8256710972..42fa789aaf7 100644 --- a/src/gallium/state_trackers/dri/sw/drisw.c +++ b/src/gallium/state_trackers/dri/sw/drisw.c @@ -43,7 +43,6 @@ #include "dri_screen.h" #include "dri_context.h" #include "dri_drawable.h" -#include "dri_st_api.h" #include "dri1_helper.h" #include "drisw.h" diff --git a/src/gallium/state_trackers/glx/xlib/glx_api.c b/src/gallium/state_trackers/glx/xlib/glx_api.c index 4930cd6cd50..eb8d6a19333 100644 --- a/src/gallium/state_trackers/glx/xlib/glx_api.c +++ b/src/gallium/state_trackers/glx/xlib/glx_api.c @@ -1758,6 +1758,10 @@ glXGetFBConfigs( Display *dpy, int screen, int *nelements ) } for (i = 0; i < *nelements; i++) { results[i] = create_glx_visual(dpy, visuals + i); + if (!results[i]) { + *nelements = i; + break; + } } return (GLXFBConfig *) results; } diff --git a/src/gallium/state_trackers/glx/xlib/xm_api.c b/src/gallium/state_trackers/glx/xlib/xm_api.c index 919497be5f5..c394430b94f 100644 --- a/src/gallium/state_trackers/glx/xlib/xm_api.c +++ b/src/gallium/state_trackers/glx/xlib/xm_api.c @@ -327,8 +327,7 @@ choose_pixel_format(XMesaVisual v) return PIPE_FORMAT_B5G6R5_UNORM; } - assert(0); - return 0; + return PIPE_FORMAT_NONE; } @@ -737,6 +736,12 @@ XMesaVisual XMesaCreateVisual( Display *display, } v->stvis.color_format = choose_pixel_format(v); + if (v->stvis.color_format == PIPE_FORMAT_NONE) { + FREE(v->visinfo); + FREE(v); + return NULL; + } + v->stvis.depth_stencil_format = choose_depth_stencil_format(xmdpy, depth_size, stencil_size); diff --git a/src/gallium/state_trackers/python/gallium.i b/src/gallium/state_trackers/python/gallium.i index 632d71ccbee..aeed1cd118c 100644 --- a/src/gallium/state_trackers/python/gallium.i +++ b/src/gallium/state_trackers/python/gallium.i @@ -95,7 +95,7 @@ %include "p_compiler.i" -%include "p_defines.h"; +%include "p_defines.h" %include "p_format.h" %include "p_device.i" @@ -103,3 +103,4 @@ %include "p_texture.i" %include "p_state.i" +%include "u_format.i" diff --git a/src/gallium/state_trackers/python/u_format.i b/src/gallium/state_trackers/python/u_format.i new file mode 100644 index 00000000000..2184b420843 --- /dev/null +++ b/src/gallium/state_trackers/python/u_format.i @@ -0,0 +1,88 @@ +/************************************************************************** + * + * Copyright 2010 VMware, Inc. + * 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"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sub license, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL + * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + * USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial portions + * of the Software. + * + **************************************************************************/ + + +static INLINE const char * +util_format_name(enum pipe_format format); + +static INLINE boolean +util_format_is_s3tc(enum pipe_format format); + +static INLINE boolean +util_format_is_depth_or_stencil(enum pipe_format format); + +static INLINE boolean +util_format_is_depth_and_stencil(enum pipe_format format); + + +uint +util_format_get_blocksizebits(enum pipe_format format); + +uint +util_format_get_blocksize(enum pipe_format format); + +uint +util_format_get_blockwidth(enum pipe_format format); + +uint +util_format_get_blockheight(enum pipe_format format); + +unsigned +util_format_get_nblocksx(enum pipe_format format, + unsigned x); + +unsigned +util_format_get_nblocksy(enum pipe_format format, + unsigned y); + +unsigned +util_format_get_nblocks(enum pipe_format format, + unsigned width, + unsigned height); + +size_t +util_format_get_stride(enum pipe_format format, + unsigned width); + +size_t +util_format_get_2d_size(enum pipe_format format, + size_t stride, + unsigned height); + +uint +util_format_get_component_bits(enum pipe_format format, + enum util_format_colorspace colorspace, + uint component); + +boolean +util_format_has_alpha(enum pipe_format format); + + +unsigned +util_format_get_nr_components(enum pipe_format format); + + |