diff options
Diffstat (limited to 'renderutil/util.c')
-rw-r--r-- | renderutil/util.c | 251 |
1 files changed, 0 insertions, 251 deletions
diff --git a/renderutil/util.c b/renderutil/util.c deleted file mode 100644 index 2d8840d..0000000 --- a/renderutil/util.c +++ /dev/null @@ -1,251 +0,0 @@ -/* Copyright © 2000 Keith Packard - * - * 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 Keith Packard not be used in - * advertising or publicity pertaining to distribution of the software without - * specific, written prior permission. Keith Packard makes no - * representations about the suitability of this software for any purpose. It - * is provided "as is" without express or implied warranty. - * - * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO - * EVENT SHALL KEITH PACKARD 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. - */ - -#include "xcb_renderutil.h" - -xcb_render_pictvisual_t * -xcb_render_util_find_visual_format (const xcb_render_query_pict_formats_reply_t *formats, - const xcb_visualid_t visual) -{ - xcb_render_pictscreen_iterator_t screens; - xcb_render_pictdepth_iterator_t depths; - xcb_render_pictvisual_iterator_t visuals; - if (!formats) - return 0; - for (screens = xcb_render_query_pict_formats_screens_iterator(formats); screens.rem; xcb_render_pictscreen_next(&screens)) - for (depths = xcb_render_pictscreen_depths_iterator(screens.data); depths.rem; xcb_render_pictdepth_next(&depths)) - for (visuals = xcb_render_pictdepth_visuals_iterator(depths.data); visuals.rem; xcb_render_pictvisual_next(&visuals)) - if (visuals.data->visual == visual) - return visuals.data; - return 0; -} - -xcb_render_pictforminfo_t * -xcb_render_util_find_format (const xcb_render_query_pict_formats_reply_t *formats, - unsigned long mask, - const xcb_render_pictforminfo_t *template, - int count) -{ - xcb_render_pictforminfo_iterator_t i; - if (!formats) - return 0; - for (i = xcb_render_query_pict_formats_formats_iterator(formats); i.rem; xcb_render_pictforminfo_next(&i)) - { - if (mask & XCB_PICT_FORMAT_ID) - if (template->id != i.data->id) - continue; - if (mask & XCB_PICT_FORMAT_TYPE) - if (template->type != i.data->type) - continue; - if (mask & XCB_PICT_FORMAT_DEPTH) - if (template->depth != i.data->depth) - continue; - if (mask & XCB_PICT_FORMAT_RED) - if (template->direct.red_shift != i.data->direct.red_shift) - continue; - if (mask & XCB_PICT_FORMAT_RED_MASK) - if (template->direct.red_mask != i.data->direct.red_mask) - continue; - if (mask & XCB_PICT_FORMAT_GREEN) - if (template->direct.green_shift != i.data->direct.green_shift) - continue; - if (mask & XCB_PICT_FORMAT_GREEN_MASK) - if (template->direct.green_mask != i.data->direct.green_mask) - continue; - if (mask & XCB_PICT_FORMAT_BLUE) - if (template->direct.blue_shift != i.data->direct.blue_shift) - continue; - if (mask & XCB_PICT_FORMAT_BLUE_MASK) - if (template->direct.blue_mask != i.data->direct.blue_mask) - continue; - if (mask & XCB_PICT_FORMAT_ALPHA) - if (template->direct.alpha_shift != i.data->direct.alpha_shift) - continue; - if (mask & XCB_PICT_FORMAT_ALPHA_MASK) - if (template->direct.alpha_mask != i.data->direct.alpha_mask) - continue; - if (mask & XCB_PICT_FORMAT_COLORMAP) - if (template->colormap != i.data->colormap) - continue; - if (count-- == 0) - return i.data; - } - return 0; -} - -xcb_render_pictforminfo_t * -xcb_render_util_find_standard_format (const xcb_render_query_pict_formats_reply_t *formats, - xcb_pict_standard_t format) -{ - static const struct { - xcb_render_pictforminfo_t templ; - unsigned long mask; - } standardFormats[] = { - /* XCB_PICT_STANDARD_ARGB_32 */ - { - { - 0, /* id */ - XCB_RENDER_PICT_TYPE_DIRECT, /* type */ - 32, /* depth */ - { 0 }, /* pad */ - { /* direct */ - 16, /* direct.red */ - 0xff, /* direct.red_mask */ - 8, /* direct.green */ - 0xff, /* direct.green_mask */ - 0, /* direct.blue */ - 0xff, /* direct.blue_mask */ - 24, /* direct.alpha */ - 0xff, /* direct.alpha_mask */ - }, - 0, /* colormap */ - }, - XCB_PICT_FORMAT_TYPE | - XCB_PICT_FORMAT_DEPTH | - XCB_PICT_FORMAT_RED | - XCB_PICT_FORMAT_RED_MASK | - XCB_PICT_FORMAT_GREEN | - XCB_PICT_FORMAT_GREEN_MASK | - XCB_PICT_FORMAT_BLUE | - XCB_PICT_FORMAT_BLUE_MASK | - XCB_PICT_FORMAT_ALPHA | - XCB_PICT_FORMAT_ALPHA_MASK, - }, - /* XCB_PICT_STANDARD_RGB_24 */ - { - { - 0, /* id */ - XCB_RENDER_PICT_TYPE_DIRECT, /* type */ - 24, /* depth */ - { 0 }, /* pad */ - { /* direct */ - 16, /* direct.red */ - 0xff, /* direct.red_MASK */ - 8, /* direct.green */ - 0xff, /* direct.green_MASK */ - 0, /* direct.blue */ - 0xff, /* direct.blue_MASK */ - 0, /* direct.alpha */ - 0x00, /* direct.alpha_MASK */ - }, - 0, /* colormap */ - }, - XCB_PICT_FORMAT_TYPE | - XCB_PICT_FORMAT_DEPTH | - XCB_PICT_FORMAT_RED | - XCB_PICT_FORMAT_RED_MASK | - XCB_PICT_FORMAT_GREEN | - XCB_PICT_FORMAT_GREEN_MASK | - XCB_PICT_FORMAT_BLUE | - XCB_PICT_FORMAT_BLUE_MASK | - XCB_PICT_FORMAT_ALPHA_MASK, - }, - /* XCB_PICT_STANDARD_A_8 */ - { - { - 0, /* id */ - XCB_RENDER_PICT_TYPE_DIRECT, /* type */ - 8, /* depth */ - { 0 }, /* pad */ - { /* direct */ - 0, /* direct.red */ - 0x00, /* direct.red_MASK */ - 0, /* direct.green */ - 0x00, /* direct.green_MASK */ - 0, /* direct.blue */ - 0x00, /* direct.blue_MASK */ - 0, /* direct.alpha */ - 0xff, /* direct.alpha_MASK */ - }, - 0, /* colormap */ - }, - XCB_PICT_FORMAT_TYPE | - XCB_PICT_FORMAT_DEPTH | - XCB_PICT_FORMAT_RED_MASK | - XCB_PICT_FORMAT_GREEN_MASK | - XCB_PICT_FORMAT_BLUE_MASK | - XCB_PICT_FORMAT_ALPHA | - XCB_PICT_FORMAT_ALPHA_MASK, - }, - /* XCB_PICT_STANDARD_A_4 */ - { - { - 0, /* id */ - XCB_RENDER_PICT_TYPE_DIRECT, /* type */ - 4, /* depth */ - { 0 }, /* pad */ - { /* direct */ - 0, /* direct.red */ - 0x00, /* direct.red_MASK */ - 0, /* direct.green */ - 0x00, /* direct.green_MASK */ - 0, /* direct.blue */ - 0x00, /* direct.blue_MASK */ - 0, /* direct.alpha */ - 0x0f, /* direct.alpha_MASK */ - }, - 0, /* colormap */ - }, - XCB_PICT_FORMAT_TYPE | - XCB_PICT_FORMAT_DEPTH | - XCB_PICT_FORMAT_RED_MASK | - XCB_PICT_FORMAT_GREEN_MASK | - XCB_PICT_FORMAT_BLUE_MASK | - XCB_PICT_FORMAT_ALPHA | - XCB_PICT_FORMAT_ALPHA_MASK, - }, - /* XCB_PICT_STANDARD_A_1 */ - { - { - 0, /* id */ - XCB_RENDER_PICT_TYPE_DIRECT, /* type */ - 1, /* depth */ - { 0 }, /* pad */ - { /* direct */ - 0, /* direct.red */ - 0x00, /* direct.red_MASK */ - 0, /* direct.green */ - 0x00, /* direct.green_MASK */ - 0, /* direct.blue */ - 0x00, /* direct.blue_MASK */ - 0, /* direct.alpha */ - 0x01, /* direct.alpha_MASK */ - }, - 0, /* colormap */ - }, - XCB_PICT_FORMAT_TYPE | - XCB_PICT_FORMAT_DEPTH | - XCB_PICT_FORMAT_RED_MASK | - XCB_PICT_FORMAT_GREEN_MASK | - XCB_PICT_FORMAT_BLUE_MASK | - XCB_PICT_FORMAT_ALPHA | - XCB_PICT_FORMAT_ALPHA_MASK, - }, - }; - - if (format < 0 || format >= sizeof(standardFormats) / sizeof(*standardFormats)) - return 0; - - return xcb_render_util_find_format (formats, - standardFormats[format].mask, - &standardFormats[format].templ, - 0); -} |