1/* GTK - The GIMP Toolkit
2 * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17 * Boston, MA 02111-1307, USA.
18 */
19
20/*
21 * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
22 * file for a list of people on the GTK+ Team. See the ChangeLog
23 * files for a list of changes. These files are distributed with
24 * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
25 */
26
27#ifndef __GDK_RGB_H__
28#define __GDK_RGB_H__
29
30#if defined(GTK_DISABLE_SINGLE_INCLUDES) && !defined (__GDK_H_INSIDE__) && !defined (GDK_COMPILATION)
31#error "Only <gdk/gdk.h> can be included directly."
32#endif
33
34#include <gdk/gdktypes.h>
35
36G_BEGIN_DECLS
37
38typedef struct _GdkRgbCmap GdkRgbCmap;
39
40typedef enum
41{
42 GDK_RGB_DITHER_NONE,
43 GDK_RGB_DITHER_NORMAL,
44 GDK_RGB_DITHER_MAX
45} GdkRgbDither;
46
47#ifndef GDK_DISABLE_DEPRECATED
48
49struct _GdkRgbCmap {
50 guint32 colors[256];
51 gint n_colors;
52
53 /*< private >*/
54 GSList *info_list;
55};
56
57void gdk_rgb_init (void);
58
59gulong gdk_rgb_xpixel_from_rgb (guint32 rgb) G_GNUC_CONST;
60void gdk_rgb_gc_set_foreground (GdkGC *gc,
61 guint32 rgb);
62void gdk_rgb_gc_set_background (GdkGC *gc,
63 guint32 rgb);
64#define gdk_rgb_get_cmap gdk_rgb_get_colormap
65
66void gdk_rgb_find_color (GdkColormap *colormap,
67 GdkColor *color);
68
69void gdk_draw_rgb_image (GdkDrawable *drawable,
70 GdkGC *gc,
71 gint x,
72 gint y,
73 gint width,
74 gint height,
75 GdkRgbDither dith,
76 const guchar *rgb_buf,
77 gint rowstride);
78void gdk_draw_rgb_image_dithalign (GdkDrawable *drawable,
79 GdkGC *gc,
80 gint x,
81 gint y,
82 gint width,
83 gint height,
84 GdkRgbDither dith,
85 const guchar *rgb_buf,
86 gint rowstride,
87 gint xdith,
88 gint ydith);
89void gdk_draw_rgb_32_image (GdkDrawable *drawable,
90 GdkGC *gc,
91 gint x,
92 gint y,
93 gint width,
94 gint height,
95 GdkRgbDither dith,
96 const guchar *buf,
97 gint rowstride);
98void gdk_draw_rgb_32_image_dithalign (GdkDrawable *drawable,
99 GdkGC *gc,
100 gint x,
101 gint y,
102 gint width,
103 gint height,
104 GdkRgbDither dith,
105 const guchar *buf,
106 gint rowstride,
107 gint xdith,
108 gint ydith);
109void gdk_draw_gray_image (GdkDrawable *drawable,
110 GdkGC *gc,
111 gint x,
112 gint y,
113 gint width,
114 gint height,
115 GdkRgbDither dith,
116 const guchar *buf,
117 gint rowstride);
118void gdk_draw_indexed_image (GdkDrawable *drawable,
119 GdkGC *gc,
120 gint x,
121 gint y,
122 gint width,
123 gint height,
124 GdkRgbDither dith,
125 const guchar *buf,
126 gint rowstride,
127 GdkRgbCmap *cmap);
128GdkRgbCmap *gdk_rgb_cmap_new (guint32 *colors,
129 gint n_colors);
130void gdk_rgb_cmap_free (GdkRgbCmap *cmap);
131
132void gdk_rgb_set_verbose (gboolean verbose);
133
134/* experimental colormap stuff */
135void gdk_rgb_set_install (gboolean install);
136void gdk_rgb_set_min_colors (gint min_colors);
137
138#ifndef GDK_MULTIHEAD_SAFE
139GdkColormap *gdk_rgb_get_colormap (void);
140GdkVisual * gdk_rgb_get_visual (void);
141gboolean gdk_rgb_ditherable (void);
142gboolean gdk_rgb_colormap_ditherable (GdkColormap *cmap);
143#endif
144#endif /* GDK_DISABLE_DEPRECATED */
145
146G_END_DECLS
147
148
149#endif /* __GDK_RGB_H__ */
150