harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Igor V. Stolyarov (JIRA)" <j...@apache.org>
Subject [jira] Updated: (HARMONY-4741) [classlib][awt] Graphics XORMode drawing doesn't implemented
Date Sun, 09 Sep 2007 09:08:29 GMT

     [ https://issues.apache.org/jira/browse/HARMONY-4741?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Igor V. Stolyarov updated HARMONY-4741:
---------------------------------------

    Attachment: H-4741.patch

Attached patch contains implementation XORMode drawing for Component's and BufferedImage's
Graphics.

Implementation notes: 
According to Specification, the setXORMode(Color xorcolor) method is implemented as a convenience
method to set a special Composite object that ignores the Alpha components of source colors
and sets the destination color to the value: 
 dstpixel = (PixelOf(srccolor) ^ PixelOf(xorcolor) ^ dstpixel);

But black box testing shows - Alpha components of source colors don't ignore. If SRC Alpha
component < 128,
pixel considers as fully transparent and it doesn't draw and pixel considers opaque in other
cases and drawing XOR composite of SRC, DST and XOR Color.

Our implementation works the same way as RI implementation.

> [classlib][awt] Graphics XORMode drawing doesn't implemented
> ------------------------------------------------------------
>
>                 Key: HARMONY-4741
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4741
>             Project: Harmony
>          Issue Type: Bug
>            Reporter: Igor V. Stolyarov
>         Attachments: H-4741.patch, Harmony.JPG, RI.JPG
>
>
> Graphics XORMode drawing doesn't implemented
> Simple reproducer:
> import java.awt.*; 
> import java.awt.image.BufferedImage; 
> import java.awt.event.*; 
> import javax.swing.JFrame; 
> public class XORModeTest { 
>     public static void main(String[] args) { 
>         final Font font = new Font("Dialog",Font.PLAIN, 12); 
>         JFrame f = new JFrame("XORModeTest"){ 
>             public void paint(Graphics g){ 
>                 Graphics2D g2d = (Graphics2D)g; 
>                 BufferedImage bi = new BufferedImage(200,200,BufferedImage.TYPE_INT_ARGB);

>                 Graphics2D g2 = bi.createGraphics(); 
>                 g2.setFont(font); 
>                 g2.setColor(Color.green); 
>                 g2.fillRect(30, 30, 100, 100);
>                 g2.setColor(Color.red); 
>                 g2.drawString("Test", 50, 80); 
>                 g2d.setXORMode(Color.blue); 
>                 g2d.drawImage(bi,0,0,null); 
>             } 
>         }; 
>              
>         f.setBounds(0, 0, 300, 300); 
>         f.setVisible(true); 
>         f.addWindowListener(new WindowAdapter() { 
>             public void windowClosing(WindowEvent ev) { 
>                 System.exit(0); 
>             } 
>         }); 
>     } 
> } 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message