Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:14:42

0001 /* Copyright © 2006 Jamey Sharp.
0002  *
0003  * Permission is hereby granted, free of charge, to any person obtaining a
0004  * copy of this software and associated documentation files (the "Software"),
0005  * to deal in the Software without restriction, including without limitation
0006  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
0007  * and/or sell copies of the Software, and to permit persons to whom the
0008  * Software is furnished to do so, subject to the following conditions:
0009  * 
0010  * The above copyright notice and this permission notice shall be included in
0011  * all copies or substantial portions of the Software.
0012  * 
0013  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
0014  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
0015  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
0016  * AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
0017  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
0018  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
0019  * 
0020  * Except as contained in this notice, the names of the authors or their
0021  * institutions shall not be used in advertising or otherwise to promote the
0022  * sale, use or other dealings in this Software without prior written
0023  * authorization from the authors.
0024  */
0025 
0026 #ifndef XCB_RENDERUTIL
0027 #define XCB_RENDERUTIL
0028 #include <xcb/render.h>
0029 
0030 #ifdef __cplusplus
0031 extern "C" {
0032 #endif
0033 
0034 typedef enum xcb_pict_format_t {
0035     XCB_PICT_FORMAT_ID         = (1 << 0),
0036     XCB_PICT_FORMAT_TYPE       = (1 << 1),
0037     XCB_PICT_FORMAT_DEPTH      = (1 << 2),
0038     XCB_PICT_FORMAT_RED        = (1 << 3),
0039     XCB_PICT_FORMAT_RED_MASK   = (1 << 4),
0040     XCB_PICT_FORMAT_GREEN      = (1 << 5),
0041     XCB_PICT_FORMAT_GREEN_MASK = (1 << 6),
0042     XCB_PICT_FORMAT_BLUE       = (1 << 7),
0043     XCB_PICT_FORMAT_BLUE_MASK  = (1 << 8),
0044     XCB_PICT_FORMAT_ALPHA      = (1 << 9),
0045     XCB_PICT_FORMAT_ALPHA_MASK = (1 << 10),
0046     XCB_PICT_FORMAT_COLORMAP   = (1 << 11)
0047 } xcb_pict_format_t;
0048 
0049 typedef enum xcb_pict_standard_t {
0050     XCB_PICT_STANDARD_ARGB_32,
0051     XCB_PICT_STANDARD_RGB_24,
0052     XCB_PICT_STANDARD_A_8,
0053     XCB_PICT_STANDARD_A_4,
0054     XCB_PICT_STANDARD_A_1
0055 } xcb_pict_standard_t;
0056 
0057 
0058 xcb_render_pictvisual_t *
0059 xcb_render_util_find_visual_format (const xcb_render_query_pict_formats_reply_t *formats,
0060                    const xcb_visualid_t visual);
0061 
0062 xcb_render_pictforminfo_t *
0063 xcb_render_util_find_format (const xcb_render_query_pict_formats_reply_t    *formats,
0064              unsigned long              mask,
0065              const xcb_render_pictforminfo_t        *ptemplate,
0066              int                    count);
0067 
0068 xcb_render_pictforminfo_t *
0069 xcb_render_util_find_standard_format (const xcb_render_query_pict_formats_reply_t   *formats,
0070                  xcb_pict_standard_t                    format);
0071 
0072 const xcb_render_query_version_reply_t *
0073 xcb_render_util_query_version (xcb_connection_t *c);
0074 
0075 const xcb_render_query_pict_formats_reply_t *
0076 xcb_render_util_query_formats (xcb_connection_t *c);
0077 
0078 int
0079 xcb_render_util_disconnect (xcb_connection_t *c);
0080 
0081 /* wrappers for xcb_render_composite_glyphs_8/16/32 */
0082 
0083 typedef struct xcb_render_util_composite_text_stream_t xcb_render_util_composite_text_stream_t;
0084 
0085 xcb_render_util_composite_text_stream_t *
0086 xcb_render_util_composite_text_stream (
0087     xcb_render_glyphset_t initial_glyphset,
0088     uint32_t              total_glyphs,
0089     uint32_t              total_glyphset_changes );
0090 
0091 void
0092 xcb_render_util_glyphs_8 (
0093     xcb_render_util_composite_text_stream_t *stream,
0094     int16_t  dx,
0095     int16_t  dy,
0096     uint32_t count,
0097     const uint8_t *glyphs );
0098 
0099 void
0100 xcb_render_util_glyphs_16 (
0101     xcb_render_util_composite_text_stream_t *stream,
0102     int16_t  dx,
0103     int16_t  dy,
0104     uint32_t count,
0105     const uint16_t *glyphs );
0106 
0107 void
0108 xcb_render_util_glyphs_32 (
0109     xcb_render_util_composite_text_stream_t *stream,
0110     int16_t  dx,
0111     int16_t  dy,
0112     uint32_t count,
0113     const uint32_t *glyphs );
0114 
0115 void
0116 xcb_render_util_change_glyphset (
0117     xcb_render_util_composite_text_stream_t *stream,
0118     xcb_render_glyphset_t glyphset );
0119 
0120 xcb_void_cookie_t
0121 xcb_render_util_composite_text (
0122     xcb_connection_t        *xc,
0123     uint8_t                  op,
0124     xcb_render_picture_t     src,
0125     xcb_render_picture_t     dst,
0126     xcb_render_pictformat_t  mask_format,
0127     int16_t                  src_x,
0128     int16_t                  src_y,
0129     xcb_render_util_composite_text_stream_t *stream );
0130 
0131 xcb_void_cookie_t
0132 xcb_render_util_composite_text_checked (
0133     xcb_connection_t        *xc,
0134     uint8_t                  op,
0135     xcb_render_picture_t     src,
0136     xcb_render_picture_t     dst,
0137     xcb_render_pictformat_t  mask_format,
0138     int16_t                  src_x,
0139     int16_t                  src_y,
0140     xcb_render_util_composite_text_stream_t *stream );
0141 
0142 void
0143 xcb_render_util_composite_text_free (
0144     xcb_render_util_composite_text_stream_t *stream );
0145 
0146 #ifdef __cplusplus
0147 }
0148 #endif
0149 
0150 #endif /* XCB_RENDERUTIL */