Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4365587

Merlin:Drawing a rectangle using XORMode is broken

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: P3 P3
    • None
    • 1.4.0
    • client-libs
    • 2d
    • x86
    • windows_nt


      ingrid.yao@Eng 2000-08-24
      -----------------------------------------------------------
      J2SE Version (please include all output from java -version flag):

      java version "1.4.0beta"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0beta-b28)
      Java HotSpot(TM) Client VM (build B22, mixed mode)

      Does this problem occur on J2SE 1.3? No
      Operating System Configuration Information (be specific): Windows NT 4 SP 4
      Hardware Configuration Information (be specific): PII 400 Mhz - 256 MB -
      Graphics board I740


      Bug Description:

      Drawing a rectangle using XORMode is broken and produces the following
      message:

      Exception occurred during event dispatching:
      java.lang.InternalError: Cannot construct general op for
      MaskBlit(Lsun/java2d/SurfaceData;Lsun/java2d/SurfaceData;Ljava/
      awt/Composite;IIIIII[BII)V XOR mode
              at
      sun.java2d.loops.GraphicsPrimitive.setupGeneralBinaryOp(GraphicsPrimitive.java:230)
              at sun.java2d.loops.MaskBlit.makePrimitive(MaskBlit.java:117)
              at
      sun.java2d.loops.GraphicsPrimitiveMgr.locate(GraphicsPrimitiveMgr.java:170)
              at sun.java2d.loops.MaskBlit.locate(MaskBlit.java:51)
              at sun.java2d.loops.Blit$General.<init>(Blit.java:120)
              at sun.java2d.loops.Blit.makePrimitive(Blit.java:109)
              at
      sun.java2d.loops.GraphicsPrimitiveMgr.locate(GraphicsPrimitiveMgr.java:170)
              at sun.java2d.loops.Blit.locate(Blit.java:46)
              at sun.java2d.loops.Blit.getFromCache(Blit.java:59)
              at
      sun.java2d.pipe.AlphaPaintPipe.renderPathTile(AlphaPaintPipe.java:119)
              at
      sun.java2d.pipe.SpanShapeRenderer$Composite.renderBox(SpanShapeRenderer.java:45)
              at
      sun.java2d.pipe.SpanShapeRenderer.spanClipLoop(SpanShapeRenderer.java:237)
              at
      sun.java2d.pipe.SpanShapeRenderer.renderSpans(SpanShapeRenderer.java:220)
              at
      sun.java2d.pipe.SpanShapeRenderer.drawBasicStroke(SpanShapeRenderer.java:110
      )
              at sun.java2d.pipe.SpanShapeRenderer.draw(SpanShapeRenderer.java:73)
              at
      sun.java2d.pipe.PixelToShapeConverter.drawRect(PixelToShapeConverter.java:42
      )
              at sun.java2d.pipe.ValidatePipe.drawRect(ValidatePipe.java:36)
              at sun.java2d.SunGraphics2D.drawRect(SunGraphics2D.java:1880)

      Test Program:
      =============
      Here is a simple standalone app that reproduces the problem:

      // Import standard packages
      import java.awt.*;
      import java.awt.event.*;
      import javax.swing.*;

      /* ******************************
       * ******************************
       *
       * Simple Application.
       *
       * ******************************
       * ******************************/

      final class Simple
            extends JFrame
      {
        Simple()
        {
      super (); // Call JFrame base constructor.
      setTitle("Simple Application"); // Set application's title.

      final JPanel _view = new JPanel(); // Instanciates view
      _view.setBackground(Color.white);
      _view.setPreferredSize(new Dimension (300,300)); // Set default size

      getContentPane().add (_view, BorderLayout.CENTER); // Add to main window

      // Exit is called when the main window is closed.
      addWindowListener (new WindowAdapter ()
      {
      public void windowClosing (WindowEvent e)
      {
      System.exit (0);
      }
      });
      _view.addMouseListener (new MouseAdapter() {
      public void mousePressed(MouseEvent l) {
      Graphics g = _view.getGraphics();
      g.setXORMode(Color.white);
      g.drawRect(l.getX()-10, l.getY()-10, 20, 20);
      }
      });

      // Display all
      pack();
      show();
        }

        /* ******************************
         *
         * Method: main
         *
         * ******************************/

        public static void main
          (
           String[] args
          )
        {
      new Simple();
        }
      }

            Unassigned Unassigned
            tyao Ting-Yun Ingrid Yao (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: