< prev index next >

modules/graphics/src/main/java/com/sun/javafx/sg/prism/NGCanvas.java

Print this page




  28 import javafx.geometry.VPos;
  29 import javafx.scene.text.Font;
  30 import java.nio.IntBuffer;
  31 import java.util.concurrent.ExecutionException;
  32 import java.util.concurrent.FutureTask;
  33 import java.util.LinkedList;
  34 import com.sun.javafx.font.PGFont;
  35 import com.sun.javafx.geom.Arc2D;
  36 import com.sun.javafx.geom.BaseBounds;
  37 import com.sun.javafx.geom.DirtyRegionContainer;
  38 import com.sun.javafx.geom.DirtyRegionPool;
  39 import com.sun.javafx.geom.Path2D;
  40 import com.sun.javafx.geom.PathIterator;
  41 import com.sun.javafx.geom.RectBounds;
  42 import com.sun.javafx.geom.Rectangle;
  43 import com.sun.javafx.geom.RoundRectangle2D;
  44 import com.sun.javafx.geom.Shape;
  45 import com.sun.javafx.geom.transform.Affine2D;
  46 import com.sun.javafx.geom.transform.BaseTransform;
  47 import com.sun.javafx.geom.transform.NoninvertibleTransformException;

  48 import com.sun.javafx.text.PrismTextLayout;
  49 import com.sun.javafx.tk.RenderJob;
  50 import com.sun.javafx.tk.ScreenConfigurationAccessor;
  51 import com.sun.javafx.tk.Toolkit;
  52 import com.sun.prism.BasicStroke;
  53 import com.sun.prism.CompositeMode;
  54 import com.sun.prism.Graphics;
  55 import com.sun.prism.GraphicsPipeline;
  56 import com.sun.prism.Image;
  57 import com.sun.prism.MaskTextureGraphics;
  58 import com.sun.prism.PrinterGraphics;
  59 import com.sun.prism.RTTexture;
  60 import com.sun.prism.ResourceFactory;
  61 import com.sun.prism.Texture;
  62 import com.sun.prism.Texture.WrapMode;
  63 import com.sun.prism.paint.Color;
  64 import com.sun.prism.paint.Paint;
  65 import com.sun.scenario.effect.Blend;
  66 import com.sun.scenario.effect.Blend.Mode;
  67 import com.sun.scenario.effect.Effect;


 369         transform = new Affine2D();
 370         clipStack = new LinkedList<Path2D>();
 371         initAttributes();
 372     }
 373 
 374     private void initAttributes() {
 375         globalAlpha = 1.0f;
 376         blendmode = Mode.SRC_OVER;
 377         fillPaint = Color.BLACK;
 378         strokePaint = Color.BLACK;
 379         linewidth = 1.0f;
 380         linecap = BasicStroke.CAP_SQUARE;
 381         linejoin = BasicStroke.JOIN_MITER;
 382         miterlimit = 10f;
 383         dashes = null;
 384         dashOffset = 0.0f;
 385         stroke = null;
 386         path.setWindingRule(Path2D.WIND_NON_ZERO);
 387         // ngtext stores no state between render operations
 388         // textLayout stores no state between render operations
 389         pgfont = (PGFont) Font.getDefault().impl_getNativeFont();
 390         smoothing = SMOOTH_GRAY;
 391         align = ALIGN_LEFT;
 392         baseline = VPos.BASELINE.ordinal();
 393         transform.setToScale(highestPixelScale, highestPixelScale);
 394         clipStack.clear();
 395         resetClip(false);
 396     }
 397 
 398     static final Affine2D TEMP_PATH_TX = new Affine2D();
 399     static final int numCoords[] = { 2, 2, 4, 6, 0 };
 400     Shape untransformedPath = new Shape() {
 401 
 402         @Override
 403         public RectBounds getBounds() {
 404             if (transform.isTranslateOrIdentity()) {
 405                 RectBounds rb = path.getBounds();
 406                 if (transform.isIdentity()) {
 407                     return rb;
 408                 } else {
 409                     float tx = (float) transform.getMxt();




  28 import javafx.geometry.VPos;
  29 import javafx.scene.text.Font;
  30 import java.nio.IntBuffer;
  31 import java.util.concurrent.ExecutionException;
  32 import java.util.concurrent.FutureTask;
  33 import java.util.LinkedList;
  34 import com.sun.javafx.font.PGFont;
  35 import com.sun.javafx.geom.Arc2D;
  36 import com.sun.javafx.geom.BaseBounds;
  37 import com.sun.javafx.geom.DirtyRegionContainer;
  38 import com.sun.javafx.geom.DirtyRegionPool;
  39 import com.sun.javafx.geom.Path2D;
  40 import com.sun.javafx.geom.PathIterator;
  41 import com.sun.javafx.geom.RectBounds;
  42 import com.sun.javafx.geom.Rectangle;
  43 import com.sun.javafx.geom.RoundRectangle2D;
  44 import com.sun.javafx.geom.Shape;
  45 import com.sun.javafx.geom.transform.Affine2D;
  46 import com.sun.javafx.geom.transform.BaseTransform;
  47 import com.sun.javafx.geom.transform.NoninvertibleTransformException;
  48 import com.sun.javafx.text.FontHelper;
  49 import com.sun.javafx.text.PrismTextLayout;
  50 import com.sun.javafx.tk.RenderJob;
  51 import com.sun.javafx.tk.ScreenConfigurationAccessor;
  52 import com.sun.javafx.tk.Toolkit;
  53 import com.sun.prism.BasicStroke;
  54 import com.sun.prism.CompositeMode;
  55 import com.sun.prism.Graphics;
  56 import com.sun.prism.GraphicsPipeline;
  57 import com.sun.prism.Image;
  58 import com.sun.prism.MaskTextureGraphics;
  59 import com.sun.prism.PrinterGraphics;
  60 import com.sun.prism.RTTexture;
  61 import com.sun.prism.ResourceFactory;
  62 import com.sun.prism.Texture;
  63 import com.sun.prism.Texture.WrapMode;
  64 import com.sun.prism.paint.Color;
  65 import com.sun.prism.paint.Paint;
  66 import com.sun.scenario.effect.Blend;
  67 import com.sun.scenario.effect.Blend.Mode;
  68 import com.sun.scenario.effect.Effect;


 370         transform = new Affine2D();
 371         clipStack = new LinkedList<Path2D>();
 372         initAttributes();
 373     }
 374 
 375     private void initAttributes() {
 376         globalAlpha = 1.0f;
 377         blendmode = Mode.SRC_OVER;
 378         fillPaint = Color.BLACK;
 379         strokePaint = Color.BLACK;
 380         linewidth = 1.0f;
 381         linecap = BasicStroke.CAP_SQUARE;
 382         linejoin = BasicStroke.JOIN_MITER;
 383         miterlimit = 10f;
 384         dashes = null;
 385         dashOffset = 0.0f;
 386         stroke = null;
 387         path.setWindingRule(Path2D.WIND_NON_ZERO);
 388         // ngtext stores no state between render operations
 389         // textLayout stores no state between render operations
 390         pgfont = (PGFont) FontHelper.getNativeFont(Font.getDefault());
 391         smoothing = SMOOTH_GRAY;
 392         align = ALIGN_LEFT;
 393         baseline = VPos.BASELINE.ordinal();
 394         transform.setToScale(highestPixelScale, highestPixelScale);
 395         clipStack.clear();
 396         resetClip(false);
 397     }
 398 
 399     static final Affine2D TEMP_PATH_TX = new Affine2D();
 400     static final int numCoords[] = { 2, 2, 4, 6, 0 };
 401     Shape untransformedPath = new Shape() {
 402 
 403         @Override
 404         public RectBounds getBounds() {
 405             if (transform.isTranslateOrIdentity()) {
 406                 RectBounds rb = path.getBounds();
 407                 if (transform.isIdentity()) {
 408                     return rb;
 409                 } else {
 410                     float tx = (float) transform.getMxt();


< prev index next >