531 xrDrawImage = new XRDrawImage(); 532 533 if (JulesPathBuf.isCairoAvailable()) { 534 aaShapePipe = 535 new JulesShapePipe(XRCompositeManager.getInstance(this)); 536 aaPixelToShapeConv = new PixelToShapeConverter(aaShapePipe); 537 } 538 } finally { 539 SunToolkit.awtUnlock(); 540 } 541 } 542 } 543 544 public static class XRWindowSurfaceData extends XRSurfaceData { 545 public XRWindowSurfaceData(X11ComponentPeer peer, 546 XRGraphicsConfig gc, SurfaceType sType) { 547 super(peer, gc, sType, peer.getColorModel(), 548 peer.getColorModel().getPixelSize(), Transparency.OPAQUE); 549 550 if (isXRDrawableValid()) { 551 initXRender(XRUtils. 552 getPictureFormatForTransparency(Transparency.OPAQUE)); 553 makePipes(); 554 } 555 } 556 557 public SurfaceData getReplacement() { 558 return peer.getSurfaceData(); 559 } 560 561 public Rectangle getBounds() { 562 Rectangle r = peer.getBounds(); 563 r.x = r.y = 0; 564 return r; 565 } 566 567 @Override 568 public boolean canSourceSendExposures(int x, int y, int w, int h) { 569 return true; 570 } 571 572 /** | 531 xrDrawImage = new XRDrawImage(); 532 533 if (JulesPathBuf.isCairoAvailable()) { 534 aaShapePipe = 535 new JulesShapePipe(XRCompositeManager.getInstance(this)); 536 aaPixelToShapeConv = new PixelToShapeConverter(aaShapePipe); 537 } 538 } finally { 539 SunToolkit.awtUnlock(); 540 } 541 } 542 } 543 544 public static class XRWindowSurfaceData extends XRSurfaceData { 545 public XRWindowSurfaceData(X11ComponentPeer peer, 546 XRGraphicsConfig gc, SurfaceType sType) { 547 super(peer, gc, sType, peer.getColorModel(), 548 peer.getColorModel().getPixelSize(), Transparency.OPAQUE); 549 550 if (isXRDrawableValid()) { 551 // If we have a 32 bit color model for the window it needs 552 // alpha to support translucency of the window so we need 553 // to get the ARGB32 XRender picture format else for 554 // 24 bit colormodel we need RGB24 or OPAQUE pictureformat. 555 if (peer.getColorModel().getPixelSize() == 32) { 556 initXRender(XRUtils. 557 getPictureFormatForTransparency(Transparency.TRANSLUCENT)); 558 } 559 else { 560 initXRender(XRUtils. 561 getPictureFormatForTransparency(Transparency.OPAQUE)); 562 } 563 makePipes(); 564 } 565 } 566 567 public SurfaceData getReplacement() { 568 return peer.getSurfaceData(); 569 } 570 571 public Rectangle getBounds() { 572 Rectangle r = peer.getBounds(); 573 r.x = r.y = 0; 574 return r; 575 } 576 577 @Override 578 public boolean canSourceSendExposures(int x, int y, int w, int h) { 579 return true; 580 } 581 582 /** |