--- /dev/null 2015-09-11 11:06:08.592686920 -0400 +++ new/modules/graphics/src/test/java/test/rt_5300/rt_5300Test.java 2015-09-11 21:28:57.841283917 -0400 @@ -0,0 +1,122 @@ +/* + * Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package test.rt_5300; + +import com.sun.javafx.geom.Arc2D; +import com.sun.prism.BasicStroke; +import com.sun.prism.Image; +import com.sun.prism.PixelFormat; +import java.nio.ByteBuffer; +import org.junit.Test; +import org.junit.Assert; + +public class rt_5300Test { + + public rt_5300Test() { + } + + @Test() + public void RT5346() { + int num_bands = 4; + byte[] bytes = new byte[32 * 32 * num_bands]; + for( int k = 0; k < bytes.length; k++) + { + bytes[k] = (byte)0xff; + } + + ByteBuffer buf = ByteBuffer.wrap(bytes); + buf.rewind(); + Image Img = Image.fromByteBgraPreData(buf, 32, 32); + Image image = null; + try + { + image = Img.iconify( (ByteBuffer) Img.getPixelBuffer(), 32, 32); + } catch (Exception e) { + //throw exception System.out.println("Exception Caught: " + e.toString() ); + } + + Assert.assertTrue(assertImageIcon(image)); + } + + @Test(timeout=5000) + public void testArcs() { + test(10f, null); + test(10f, new float[] {2f, 2f}); + } + + public static void test(float lw, float dashes[]) { + test(lw, dashes, BasicStroke.CAP_BUTT); + test(lw, dashes, BasicStroke.CAP_ROUND); + test(lw, dashes, BasicStroke.CAP_SQUARE); + } + + public static void test(float lw, float dashes[], int cap) { + test(lw, dashes, cap, BasicStroke.JOIN_BEVEL); + test(lw, dashes, cap, BasicStroke.JOIN_MITER); + test(lw, dashes, cap, BasicStroke.JOIN_ROUND); + } + + public static void test(float lw, float dashes[], int cap, int join) { + BasicStroke bs; + if (dashes == null) { + bs = new BasicStroke(lw, cap, join, 10f); + } else { + bs = new BasicStroke(lw, cap, join, 10f, dashes, 0f); + } + Arc2D a = new Arc2D(); + a.setFrame(0, 0, 100, 100); + test(bs, a, Arc2D.OPEN); + test(bs, a, Arc2D.CHORD); + test(bs, a, Arc2D.PIE); + } + + public static void test(BasicStroke bs, Arc2D a, int arctype) { + a.setArcType(arctype); + for (int s = 0; s <= 360; s += 30) { + a.start = s; + for (int e = 0; e <= 360; e += 30) { + a.extent = e; + bs.createStrokedShape(a); + } + } + } + + private boolean assertImageIcon(Image ico) { + if (ico == null) return false; + if (ico.getPixelFormat() != PixelFormat.INT_ARGB_PRE) { + return false; + } + + if (ico.getHeight() != 32 && ico.getWidth() != 32) { + return false; + } else { + return true; + } + + } + + +}