summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'base/gxdevmem.h')
-rw-r--r--base/gxdevmem.h56
1 files changed, 52 insertions, 4 deletions
diff --git a/base/gxdevmem.h b/base/gxdevmem.h
index bb890a27..8141331c 100644
--- a/base/gxdevmem.h
+++ b/base/gxdevmem.h
@@ -202,6 +202,56 @@ int gdev_mem_max_height(const gx_device_memory * dev, int width, ulong size,
#define gdev_mem_raster(mdev)\
gx_device_raster((const gx_device *)(mdev), true)
+typedef struct
+{
+ dev_proc_map_rgb_color((*map_rgb_color));
+ dev_proc_map_color_rgb((*map_color_rgb));
+ dev_proc_fill_rectangle((*fill_rectangle));
+ dev_proc_copy_mono((*copy_mono));
+ dev_proc_copy_color((*copy_color));
+ dev_proc_copy_alpha((*copy_alpha));
+ dev_proc_strip_tile_rectangle((*strip_tile_rectangle));
+ dev_proc_strip_copy_rop2((*strip_copy_rop2));
+ dev_proc_get_bits_rectangle((*get_bits_rectangle));
+} gdev_mem_functions;
+
+extern const gdev_mem_functions gdev_mem_fns_1;
+extern const gdev_mem_functions gdev_mem_fns_2;
+extern const gdev_mem_functions gdev_mem_fns_4;
+extern const gdev_mem_functions gdev_mem_fns_8;
+extern const gdev_mem_functions gdev_mem_fns_16;
+extern const gdev_mem_functions gdev_mem_fns_24;
+extern const gdev_mem_functions gdev_mem_fns_32;
+extern const gdev_mem_functions gdev_mem_fns_40;
+extern const gdev_mem_functions gdev_mem_fns_48;
+extern const gdev_mem_functions gdev_mem_fns_56;
+extern const gdev_mem_functions gdev_mem_fns_64;
+#if ARCH_IS_BIG_ENDIAN
+#define gdev_mem_fns_1w gdev_mem_fns_1
+#define gdev_mem_fns_2w gdev_mem_fns_2
+#define gdev_mem_fns_4w gdev_mem_fns_4
+#define gdev_mem_fns_8w gdev_mem_fns_8
+#define gdev_mem_fns_24w gdev_mem_fns_24
+#define gdev_mem_fns_32w gdev_mem_fns_32
+#define gdev_mem_fns_40w gdev_mem_fns_40
+#define gdev_mem_fns_48w gdev_mem_fns_48
+#define gdev_mem_fns_56w gdev_mem_fns_56
+#define gdev_mem_fns_64w gdev_mem_fns_64
+#else
+extern const gdev_mem_functions gdev_mem_fns_1w;
+extern const gdev_mem_functions gdev_mem_fns_2w;
+extern const gdev_mem_functions gdev_mem_fns_4w;
+extern const gdev_mem_functions gdev_mem_fns_8w;
+extern const gdev_mem_functions gdev_mem_fns_24w;
+extern const gdev_mem_functions gdev_mem_fns_32w;
+extern const gdev_mem_functions gdev_mem_fns_40w;
+extern const gdev_mem_functions gdev_mem_fns_48w;
+extern const gdev_mem_functions gdev_mem_fns_56w;
+extern const gdev_mem_functions gdev_mem_fns_64w;
+#endif
+const gdev_mem_functions *gdev_mem_functions_for_bits(int bits);
+const gdev_mem_functions *gdev_mem_word_functions_for_bits(int bits);
+
/* Determine the appropriate memory device for a given */
/* number of bits per pixel (0 if none suitable). */
const gx_device_memory *gdev_mem_device_for_bits(int);
@@ -230,8 +280,6 @@ void gs_make_mem_abuf_device(gx_device_memory * adev, gs_memory_t * mem,
gx_device * target,
const gs_log2_scale_point * pscale,
int alpha_bits, int mapped_x, bool devn);
-void gs_make_mem_alpha_device(gx_device_memory * adev, gs_memory_t * mem,
- gx_device * target, int alpha_bits);
/*
* Create memory devices with copydevice. For now the destructor is
@@ -249,8 +297,8 @@ int gs_make_mem_device_with_copydevice(gx_device_memory ** mdev,
gx_device * target);
/*
- * TODO replace gs_make_mem_abuf_device, gs_make_mem_alpha_device with
- * procedures that use copydevice.
+ * TODO replace gs_make_mem_abuf_device with
+ * procedure that uses copydevice.
*/
/*