< prev index next >

src/java.desktop/share/native/libawt/java2d/loops/ByteIndexed.h

Print this page

        

@@ -166,13 +166,18 @@
 #define StoreByteIndexedFrom1IntArgb(pRas, PREFIX, x, argb) \
     StoreByteIndexedFrom1IntRgb(pRas, PREFIX, x, argb)
 
 #define StoreByteIndexedFrom3ByteRgb(pRas, PREFIX, x, r, g, b) \
     do { \
+        if (!(((r == 0) || (r == 255)) && \
+              ((g == 0) || (g == 255)) && \
+              ((b == 0) || (b == 255)) && \
+              (representsPrimary == 1))) { \
         r += PREFIX ## rerr[PREFIX ## XDither]; \
         g += PREFIX ## gerr[PREFIX ## XDither]; \
         b += PREFIX ## berr[PREFIX ## XDither]; \
+        } \
         ByteClamp3Components(r, g, b); \
         (pRas)[x] = SurfaceData_InvColorMap(PREFIX ## InvLut, r, g, b); \
     } while (0)
 
 #define StoreByteIndexedFrom4ByteArgb(pRas, PREFIX, x, a, r, g, b) \
< prev index next >