Search in sources :

Example 1 with Composite

use of java.awt.Composite in project android_frameworks_base by ResurrectionRemix.

the class GcSnapshot method setComposite.

private void setComposite(Graphics2D g, Paint_Delegate paint, boolean usePaintAlpha, int forceMode) {
    // the alpha for the composite. Always opaque if the normal paint color is used since
    // it contains the alpha
    int alpha = usePaintAlpha ? paint.getAlpha() : 0xFF;
    if (forceMode != 0) {
        g.setComposite(AlphaComposite.getInstance(forceMode, (float) alpha / 255.f));
        return;
    }
    Xfermode_Delegate xfermodeDelegate = paint.getXfermode();
    if (xfermodeDelegate != null) {
        if (xfermodeDelegate.isSupported()) {
            Composite composite = xfermodeDelegate.getComposite(alpha);
            assert composite != null;
            if (composite != null) {
                g.setComposite(composite);
                return;
            }
        } else {
            Bridge.getLog().fidelityWarning(LayoutLog.TAG_XFERMODE, xfermodeDelegate.getSupportMessage(), null, /*throwable*/
            null);
        }
    }
    // that will handle the alpha.
    if (alpha != 0xFF) {
        g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, (float) alpha / 255.f));
    }
}
Also used : AlphaComposite(java.awt.AlphaComposite) Composite(java.awt.Composite) Xfermode_Delegate(android.graphics.Xfermode_Delegate) Paint(android.graphics.Paint)

Example 2 with Composite

use of java.awt.Composite in project EnrichmentMapApp by BaderLab.

the class AbstractChartLayer method draw.

@Override
public void draw(final Graphics2D g, final Shape shape, final CyNetworkView networkView, final View<? extends CyIdentifiable> view) {
    // Give JFreeChart a larger area to draw into, so the proportions of the chart elements looks better
    final double scale = 2.0;
    Rectangle2D newBounds = new Rectangle2D.Double(bounds.getX() * scale, bounds.getY() * scale, bounds.getWidth() * scale, bounds.getHeight() * scale);
    // Of course, we also have to ask Graphics2D to apply the inverse transformation
    final double invScale = 1.0 / scale;
    final AffineTransform at = new AffineTransform();
    at.scale(invScale, invScale);
    g.transform(at);
    // Check to see if we have a current alpha composite
    Composite comp = g.getComposite();
    if (comp instanceof AlphaComposite) {
        float alpha = ((AlphaComposite) comp).getAlpha();
        JFreeChart fc = getChart();
        Plot plot = fc.getPlot();
        plot.setForegroundAlpha(alpha);
        fc.draw(g, newBounds);
    } else {
        getChart().draw(g, newBounds);
    }
    // Make sure Graphics2D is "back to normal" before returning
    try {
        at.invert();
    } catch (NoninvertibleTransformException e) {
        e.printStackTrace();
    }
    g.transform(at);
}
Also used : NoninvertibleTransformException(java.awt.geom.NoninvertibleTransformException) AlphaComposite(java.awt.AlphaComposite) Composite(java.awt.Composite) AlphaComposite(java.awt.AlphaComposite) Plot(org.jfree.chart.plot.Plot) Rectangle2D(java.awt.geom.Rectangle2D) AffineTransform(java.awt.geom.AffineTransform) JFreeChart(org.jfree.chart.JFreeChart)

Example 3 with Composite

use of java.awt.Composite in project android_frameworks_base by DirtyUnicorns.

the class GcSnapshot method setComposite.

private void setComposite(Graphics2D g, Paint_Delegate paint, boolean usePaintAlpha, int forceMode) {
    // the alpha for the composite. Always opaque if the normal paint color is used since
    // it contains the alpha
    int alpha = usePaintAlpha ? paint.getAlpha() : 0xFF;
    if (forceMode != 0) {
        g.setComposite(AlphaComposite.getInstance(forceMode, (float) alpha / 255.f));
        return;
    }
    Xfermode_Delegate xfermodeDelegate = paint.getXfermode();
    if (xfermodeDelegate != null) {
        if (xfermodeDelegate.isSupported()) {
            Composite composite = xfermodeDelegate.getComposite(alpha);
            assert composite != null;
            if (composite != null) {
                g.setComposite(composite);
                return;
            }
        } else {
            Bridge.getLog().fidelityWarning(LayoutLog.TAG_XFERMODE, xfermodeDelegate.getSupportMessage(), null, /*throwable*/
            null);
        }
    }
    // that will handle the alpha.
    if (alpha != 0xFF) {
        g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, (float) alpha / 255.f));
    }
}
Also used : AlphaComposite(java.awt.AlphaComposite) Composite(java.awt.Composite) Xfermode_Delegate(android.graphics.Xfermode_Delegate) Paint(android.graphics.Paint)

Example 4 with Composite

use of java.awt.Composite in project jdk8u_jdk by JetBrains.

the class TestLayoutVsICU method show.

private void show(String arg) throws ParserConfigurationException, SAXException, IOException {
    id = "<none>";
    File xmlFile = new File(arg);
    if (!xmlFile.exists()) {
        throw new FileNotFoundException("Can't open input XML file " + arg);
    }
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    DocumentBuilder db = dbf.newDocumentBuilder();
    if (OPT_VERBOSE) {
        System.out.println("# Parsing " + xmlFile.getAbsolutePath());
    }
    Document doc = db.parse(xmlFile);
    Element e = doc.getDocumentElement();
    if (!XML_LAYOUT_TESTS.equals(e.getNodeName())) {
        throw new IllegalArgumentException("Document " + xmlFile.getAbsolutePath() + " does not have <layout-tests> as its base");
    }
    NodeList testCases = e.getElementsByTagName(XML_TEST_CASE);
    for (int caseNo = 0; caseNo < testCases.getLength(); caseNo++) {
        final Node testCase = testCases.item(caseNo);
        final Map<String, String> testCaseAttrs = attrs(testCase);
        id = testCaseAttrs.get(XML_ID);
        final String script = testCaseAttrs.get(XML_SCRIPT);
        String testText = null;
        Integer[] expectGlyphs = null;
        Integer[] expectIndices = null;
        Map<String, String> fontAttrs = null;
        if (OPT_VERBOSE) {
            System.out.println("#" + caseNo + " id=" + id + ", script=" + script);
        }
        NodeList children = testCase.getChildNodes();
        for (int sub = 0; sub < children.getLength(); sub++) {
            Node n = children.item(sub);
            if (n.getNodeType() != Node.ELEMENT_NODE)
                continue;
            String nn = n.getNodeName();
            if (nn.equals(XML_TEST_FONT)) {
                fontAttrs = attrs(n);
            } else if (nn.equals(XML_TEST_TEXT)) {
                testText = n.getTextContent();
            } else if (nn.equals(XML_RESULT_GLYPHS)) {
                String hex = n.getTextContent();
                expectGlyphs = parseHexArray(hex);
            } else if (nn.equals(XML_RESULT_INDICES)) {
                String hex = n.getTextContent();
                expectIndices = parseHexArray(hex);
            } else if (OPT_VERBOSE) {
                System.out.println("Ignoring node " + nn);
            }
        }
        if (fontAttrs == null) {
            throw new IllegalArgumentException(id + " Missing node " + XML_TEST_FONT);
        }
        if (testText == null) {
            throw new IllegalArgumentException(id + " Missing node " + XML_TEST_TEXT);
        }
        String fontName = fontAttrs.get(XML_NAME);
        Font f = getFont(fontName, fontAttrs);
        if (f == null) {
            if (OPT_FAILMISSING) {
                throw new MissingResourceException("Missing font,  abort test", Font.class.getName(), fontName);
            }
            System.out.println("Skipping " + id + " because font is missing: " + fontName);
            skipped++;
            continue;
        }
        FontRenderContext frc = new FontRenderContext(null, true, true);
        TextLayout tl = new TextLayout(testText, f, frc);
        final List<GlyphVector> glyphs = new ArrayList<GlyphVector>();
        Graphics2D myg2 = new Graphics2D() {

            @Override
            public void draw(Shape s) {
            // TODO Auto-generated method stub
            }

            @Override
            public boolean drawImage(Image img, AffineTransform xform, ImageObserver obs) {
                // TODO Auto-generated method stub
                return false;
            }

            @Override
            public void drawImage(BufferedImage img, BufferedImageOp op, int x, int y) {
            // TODO Auto-generated method stub
            }

            @Override
            public void drawRenderedImage(RenderedImage img, AffineTransform xform) {
            // TODO Auto-generated method stub
            }

            @Override
            public void drawRenderableImage(RenderableImage img, AffineTransform xform) {
            // TODO Auto-generated method stub
            }

            @Override
            public void drawString(String str, int x, int y) {
            // TODO Auto-generated method stub
            }

            @Override
            public void drawString(String str, float x, float y) {
            // TODO Auto-generated method stub
            }

            @Override
            public void drawString(AttributedCharacterIterator iterator, int x, int y) {
            // TODO Auto-generated method stub
            }

            @Override
            public void drawString(AttributedCharacterIterator iterator, float x, float y) {
            // TODO Auto-generated method stub
            }

            @Override
            public void drawGlyphVector(GlyphVector g, float x, float y) {
                if (x != 0.0 || y != 0.0) {
                    throw new InternalError("x,y should be 0 but got " + x + "," + y);
                }
                //System.err.println("dGV : " + g.toString() + " @ "+x+","+y);
                glyphs.add(g);
            }

            @Override
            public void fill(Shape s) {
            // TODO Auto-generated method stub
            }

            @Override
            public boolean hit(Rectangle rect, Shape s, boolean onStroke) {
                // TODO Auto-generated method stub
                return false;
            }

            @Override
            public GraphicsConfiguration getDeviceConfiguration() {
                // TODO Auto-generated method stub
                return null;
            }

            @Override
            public void setComposite(Composite comp) {
            // TODO Auto-generated method stub
            }

            @Override
            public void setPaint(Paint paint) {
            // TODO Auto-generated method stub
            }

            @Override
            public void setStroke(Stroke s) {
            // TODO Auto-generated method stub
            }

            @Override
            public void setRenderingHint(Key hintKey, Object hintValue) {
            // TODO Auto-generated method stub
            }

            @Override
            public Object getRenderingHint(Key hintKey) {
                // TODO Auto-generated method stub
                return null;
            }

            @Override
            public void setRenderingHints(Map<?, ?> hints) {
            // TODO Auto-generated method stub
            }

            @Override
            public void addRenderingHints(Map<?, ?> hints) {
            // TODO Auto-generated method stub
            }

            @Override
            public RenderingHints getRenderingHints() {
                // TODO Auto-generated method stub
                return null;
            }

            @Override
            public void translate(int x, int y) {
            // TODO Auto-generated method stub
            }

            @Override
            public void translate(double tx, double ty) {
            // TODO Auto-generated method stub
            }

            @Override
            public void rotate(double theta) {
            // TODO Auto-generated method stub
            }

            @Override
            public void rotate(double theta, double x, double y) {
            // TODO Auto-generated method stub
            }

            @Override
            public void scale(double sx, double sy) {
            // TODO Auto-generated method stub
            }

            @Override
            public void shear(double shx, double shy) {
            // TODO Auto-generated method stub
            }

            @Override
            public void transform(AffineTransform Tx) {
            // TODO Auto-generated method stub
            }

            @Override
            public void setTransform(AffineTransform Tx) {
            // TODO Auto-generated method stub
            }

            @Override
            public AffineTransform getTransform() {
                // TODO Auto-generated method stub
                return null;
            }

            @Override
            public Paint getPaint() {
                // TODO Auto-generated method stub
                return null;
            }

            @Override
            public Composite getComposite() {
                // TODO Auto-generated method stub
                return null;
            }

            @Override
            public void setBackground(Color color) {
            // TODO Auto-generated method stub
            }

            @Override
            public Color getBackground() {
                // TODO Auto-generated method stub
                return null;
            }

            @Override
            public Stroke getStroke() {
                // TODO Auto-generated method stub
                return null;
            }

            @Override
            public void clip(Shape s) {
            // TODO Auto-generated method stub
            }

            @Override
            public FontRenderContext getFontRenderContext() {
                // TODO Auto-generated method stub
                return null;
            }

            @Override
            public Graphics create() {
                // TODO Auto-generated method stub
                return null;
            }

            @Override
            public Color getColor() {
                // TODO Auto-generated method stub
                return null;
            }

            @Override
            public void setColor(Color c) {
            // TODO Auto-generated method stub
            }

            @Override
            public void setPaintMode() {
            // TODO Auto-generated method stub
            }

            @Override
            public void setXORMode(Color c1) {
            // TODO Auto-generated method stub
            }

            @Override
            public Font getFont() {
                // TODO Auto-generated method stub
                return null;
            }

            @Override
            public void setFont(Font font) {
            // TODO Auto-generated method stub
            }

            @Override
            public FontMetrics getFontMetrics(Font f) {
                // TODO Auto-generated method stub
                return null;
            }

            @Override
            public Rectangle getClipBounds() {
                // TODO Auto-generated method stub
                return null;
            }

            @Override
            public void clipRect(int x, int y, int width, int height) {
            // TODO Auto-generated method stub
            }

            @Override
            public void setClip(int x, int y, int width, int height) {
            // TODO Auto-generated method stub
            }

            @Override
            public Shape getClip() {
                // TODO Auto-generated method stub
                return null;
            }

            @Override
            public void setClip(Shape clip) {
            // TODO Auto-generated method stub
            }

            @Override
            public void copyArea(int x, int y, int width, int height, int dx, int dy) {
            // TODO Auto-generated method stub
            }

            @Override
            public void drawLine(int x1, int y1, int x2, int y2) {
            // TODO Auto-generated method stub
            }

            @Override
            public void fillRect(int x, int y, int width, int height) {
            // TODO Auto-generated method stub
            }

            @Override
            public void clearRect(int x, int y, int width, int height) {
            // TODO Auto-generated method stub
            }

            @Override
            public void drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight) {
            // TODO Auto-generated method stub
            }

            @Override
            public void fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight) {
            // TODO Auto-generated method stub
            }

            @Override
            public void drawOval(int x, int y, int width, int height) {
            // TODO Auto-generated method stub
            }

            @Override
            public void fillOval(int x, int y, int width, int height) {
            // TODO Auto-generated method stub
            }

            @Override
            public void drawArc(int x, int y, int width, int height, int startAngle, int arcAngle) {
            // TODO Auto-generated method stub
            }

            @Override
            public void fillArc(int x, int y, int width, int height, int startAngle, int arcAngle) {
            // TODO Auto-generated method stub
            }

            @Override
            public void drawPolyline(int[] xPoints, int[] yPoints, int nPoints) {
            // TODO Auto-generated method stub
            }

            @Override
            public void drawPolygon(int[] xPoints, int[] yPoints, int nPoints) {
            // TODO Auto-generated method stub
            }

            @Override
            public void fillPolygon(int[] xPoints, int[] yPoints, int nPoints) {
            // TODO Auto-generated method stub
            }

            @Override
            public boolean drawImage(Image img, int x, int y, ImageObserver observer) {
                // TODO Auto-generated method stub
                return false;
            }

            @Override
            public boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver observer) {
                // TODO Auto-generated method stub
                return false;
            }

            @Override
            public boolean drawImage(Image img, int x, int y, Color bgcolor, ImageObserver observer) {
                // TODO Auto-generated method stub
                return false;
            }

            @Override
            public boolean drawImage(Image img, int x, int y, int width, int height, Color bgcolor, ImageObserver observer) {
                // TODO Auto-generated method stub
                return false;
            }

            @Override
            public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer) {
                // TODO Auto-generated method stub
                return false;
            }

            @Override
            public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, Color bgcolor, ImageObserver observer) {
                // TODO Auto-generated method stub
                return false;
            }

            @Override
            public void dispose() {
            // TODO Auto-generated method stub
            }
        };
        tl.draw(myg2, 0, 0);
        if (glyphs.size() != 1) {
            err("drew " + glyphs.size() + " times - expected 1");
            total++;
            bad++;
            continue;
        }
        boolean isBad = false;
        GlyphVector gv = glyphs.get(0);
        // GLYPHS
        int[] gotGlyphs = gv.getGlyphCodes(0, gv.getNumGlyphs(), new int[gv.getNumGlyphs()]);
        // go up to this count
        int count = Math.min(gotGlyphs.length, expectGlyphs.length);
        for (int i = 0; i < count; i++) {
            if (gotGlyphs[i] != expectGlyphs[i]) {
                err("@" + i + " - got \tglyph 0x" + Integer.toHexString(gotGlyphs[i]) + " wanted 0x" + Integer.toHexString(expectGlyphs[i]));
                isBad = true;
                break;
            }
        }
        // INDICES
        int[] gotIndices = gv.getGlyphCharIndices(0, gv.getNumGlyphs(), new int[gv.getNumGlyphs()]);
        for (int i = 0; i < count; i++) {
            if (gotIndices[i] != expectIndices[i]) {
                err("@" + i + " - got \tindex 0x" + Integer.toHexString(gotGlyphs[i]) + " wanted 0x" + Integer.toHexString(expectGlyphs[i]));
                isBad = true;
                break;
            }
        }
        // COUNT
        if (gotGlyphs.length != expectGlyphs.length) {
            System.out.println("Got " + gotGlyphs.length + " wanted " + expectGlyphs.length + " glyphs");
            isBad = true;
        } else {
            if (OPT_VERBOSE) {
                System.out.println(">> OK: " + gotGlyphs.length + " glyphs");
            }
        }
        if (isBad) {
            bad++;
            System.out.println("* FAIL: " + id + "  /\t" + fontName);
        } else {
            System.out.println("* OK  : " + id + "  /\t" + fontName);
        }
        total++;
    }
}
Also used : DocumentBuilderFactory(javax.xml.parsers.DocumentBuilderFactory) Shape(java.awt.Shape) Element(org.w3c.dom.Element) Node(org.w3c.dom.Node) MissingResourceException(java.util.MissingResourceException) FileNotFoundException(java.io.FileNotFoundException) ArrayList(java.util.ArrayList) Rectangle(java.awt.Rectangle) Document(org.w3c.dom.Document) RenderableImage(java.awt.image.renderable.RenderableImage) Image(java.awt.Image) BufferedImage(java.awt.image.BufferedImage) RenderedImage(java.awt.image.RenderedImage) Font(java.awt.Font) BufferedImage(java.awt.image.BufferedImage) RenderableImage(java.awt.image.renderable.RenderableImage) BufferedImageOp(java.awt.image.BufferedImageOp) Stroke(java.awt.Stroke) GlyphVector(java.awt.font.GlyphVector) Composite(java.awt.Composite) NodeList(org.w3c.dom.NodeList) ImageObserver(java.awt.image.ImageObserver) Color(java.awt.Color) Paint(java.awt.Paint) Paint(java.awt.Paint) TextLayout(java.awt.font.TextLayout) Graphics2D(java.awt.Graphics2D) AttributedCharacterIterator(java.text.AttributedCharacterIterator) DocumentBuilder(javax.xml.parsers.DocumentBuilder) AffineTransform(java.awt.geom.AffineTransform) FontRenderContext(java.awt.font.FontRenderContext) RenderedImage(java.awt.image.RenderedImage) File(java.io.File) Map(java.util.Map) NamedNodeMap(org.w3c.dom.NamedNodeMap) TreeMap(java.util.TreeMap) Key(java.awt.RenderingHints.Key)

Example 5 with Composite

use of java.awt.Composite in project android_frameworks_base by AOSPA.

the class GcSnapshot method setComposite.

private void setComposite(Graphics2D g, Paint_Delegate paint, boolean usePaintAlpha, int forceMode) {
    // the alpha for the composite. Always opaque if the normal paint color is used since
    // it contains the alpha
    int alpha = usePaintAlpha ? paint.getAlpha() : 0xFF;
    if (forceMode != 0) {
        g.setComposite(AlphaComposite.getInstance(forceMode, (float) alpha / 255.f));
        return;
    }
    Xfermode_Delegate xfermodeDelegate = paint.getXfermode();
    if (xfermodeDelegate != null) {
        if (xfermodeDelegate.isSupported()) {
            Composite composite = xfermodeDelegate.getComposite(alpha);
            assert composite != null;
            if (composite != null) {
                g.setComposite(composite);
                return;
            }
        } else {
            Bridge.getLog().fidelityWarning(LayoutLog.TAG_XFERMODE, xfermodeDelegate.getSupportMessage(), null, /*throwable*/
            null);
        }
    }
    // that will handle the alpha.
    if (alpha != 0xFF) {
        g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, (float) alpha / 255.f));
    }
}
Also used : AlphaComposite(java.awt.AlphaComposite) Composite(java.awt.Composite) Xfermode_Delegate(android.graphics.Xfermode_Delegate) Paint(android.graphics.Paint)

Aggregations

Composite (java.awt.Composite)77 AlphaComposite (java.awt.AlphaComposite)69 Graphics2D (java.awt.Graphics2D)33 Color (java.awt.Color)27 AffineTransform (java.awt.geom.AffineTransform)20 BasicStroke (java.awt.BasicStroke)15 Paint (java.awt.Paint)15 Shape (java.awt.Shape)14 Stroke (java.awt.Stroke)11 BufferedImage (java.awt.image.BufferedImage)9 Point (java.awt.Point)8 Rectangle (java.awt.Rectangle)8 Paint (android.graphics.Paint)6 Xfermode_Delegate (android.graphics.Xfermode_Delegate)6 Font (java.awt.Font)6 Rectangle2D (java.awt.geom.Rectangle2D)6 LinearGradientPaint (java.awt.LinearGradientPaint)5 ArrayList (java.util.ArrayList)5 FontMetrics (java.awt.FontMetrics)4 RenderingHints (java.awt.RenderingHints)4