summaryrefslogtreecommitdiff
path: root/gs/src/gdevmr8n.c
diff options
context:
space:
mode:
Diffstat (limited to 'gs/src/gdevmr8n.c')
-rw-r--r--gs/src/gdevmr8n.c45
1 files changed, 22 insertions, 23 deletions
diff --git a/gs/src/gdevmr8n.c b/gs/src/gdevmr8n.c
index f07f3840f..342ae7ecf 100644
--- a/gs/src/gdevmr8n.c
+++ b/gs/src/gdevmr8n.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995, 1996, 1997, 1998 Aladdin Enterprises. All rights reserved.
+/* Copyright (C) 1995, 1996, 1997, 1998, 1999 Aladdin Enterprises. All rights reserved.
This file is part of Aladdin Ghostscript.
@@ -68,31 +68,34 @@ mem_gray8_rgb24_strip_copy_rop(gx_device * dev,
(lop & lop_S_transparent ? all_ones : gx_no_color_index);
gx_color_index ttrans =
(lop & lop_T_transparent ? all_ones : gx_no_color_index);
- gx_color_index black = gx_device_black(dev);
- gx_color_index white = gx_device_white(dev);
/* Check for constant source. */
- if (scolors != 0 && scolors[0] == scolors[1]) { /* Constant source */
+ if (!rop3_uses_S(rop))
+ const_source = 0; /* arbitrary */
+ else if (scolors != 0 && scolors[0] == scolors[1]) {
+ /* Constant source */
const_source = scolors[0];
- if (const_source == black)
+ if (const_source == gx_device_black(dev))
rop = rop3_know_S_0(rop);
- else if (const_source == white)
+ else if (const_source == gx_device_white(dev))
rop = rop3_know_S_1(rop);
- } else if (!rop3_uses_S(rop))
- const_source = 0; /* arbitrary */
+ }
/* Check for constant texture. */
- if (tcolors != 0 && tcolors[0] == tcolors[1]) { /* Constant texture */
+ if (!rop3_uses_T(rop))
+ const_texture = 0; /* arbitrary */
+ else if (tcolors != 0 && tcolors[0] == tcolors[1]) {
+ /* Constant texture */
const_texture = tcolors[0];
- if (const_texture == black)
+ if (const_texture == gx_device_black(dev))
rop = rop3_know_T_0(rop);
- else if (const_texture == white)
+ else if (const_texture == gx_device_white(dev))
rop = rop3_know_T_1(rop);
- } else if (!rop3_uses_T(rop))
- const_texture = 0; /* arbitrary */
+ }
if (bpp == 1 &&
- (black != 0 || white != all_ones || gx_device_has_color(dev))
+ (gx_device_has_color(dev) ||
+ (gx_device_black(dev) != 0 || gx_device_white(dev) != all_ones))
) {
/*
* This is an 8-bit device but not gray-scale. Except in a few
@@ -103,20 +106,16 @@ mem_gray8_rgb24_strip_copy_rop(gx_device * dev,
switch (rop) {
case rop3_0:
- bw_pixel = black;
+ bw_pixel = gx_device_black(dev);
goto bw;
case rop3_1:
- bw_pixel = white;
-bw: switch (bw_pixel) {
- case 0x00:
+ bw_pixel = gx_device_white(dev);
+bw: if (bw_pixel == 0x00)
rop = rop3_0;
- break;
- case 0xff:
+ else if (bw_pixel == 0xff)
rop = rop3_1;
- break;
- default:
+ else
goto df;
- }
break;
case rop3_D:
break;