diff options
Diffstat (limited to 'tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/performance/Test_org_eclipse_swt_graphics_GC.java')
-rw-r--r-- | tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/performance/Test_org_eclipse_swt_graphics_GC.java | 1586 |
1 files changed, 0 insertions, 1586 deletions
diff --git a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/performance/Test_org_eclipse_swt_graphics_GC.java b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/performance/Test_org_eclipse_swt_graphics_GC.java deleted file mode 100644 index a648b8fd39..0000000000 --- a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/performance/Test_org_eclipse_swt_graphics_GC.java +++ /dev/null @@ -1,1586 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2004 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.swt.tests.junit.performance; - -import junit.framework.*; -import junit.textui.*; - -import org.eclipse.swt.*; -import org.eclipse.swt.graphics.*; -import org.eclipse.swt.printing.*; -import org.eclipse.swt.widgets.*; -import org.eclipse.test.performance.*; - -/** - * Automated Performance Test Suite for class org.eclipse.swt.graphics.GC - * - * @see org.eclipse.swt.graphics.GC - */ -public class Test_org_eclipse_swt_graphics_GC extends SwtPerformanceTestCase { - -public Test_org_eclipse_swt_graphics_GC(String name) { - super(name); -} - -public static void main(String[] args) { - TestRunner.run(suite()); -} - -protected void setUp() throws Exception { - super.setUp(); - display = Display.getDefault(); - shell = new Shell(display); - shell.setBounds(0,30,240,290); - image = new Image(display, 200, 200); - gc = new GC(image); -} - -protected void tearDown() throws Exception { - super.tearDown(); - gc.dispose(); - image.dispose(); - shell.dispose(); -} -public void test_ConstructorLorg_eclipse_swt_graphics_Drawable() { - int count = 4000; // 5000 causes No More Handles - - Image[] images = new Image [count]; - for (int i = 0; i < count; i++) { - images[i] = new Image(display, 10, 10); - } - GC[] gcs = new GC[count]; - - PerformanceMeter meter = createMeter("GC constr.(Drawable) - image"); - meter.start(); - for (int i = 0; i < count; i++) { - gcs[i] = new GC(images[i]); - } - meter.stop(); - - for (int i = 0; i < count; i++) { - gcs[i].dispose(); - images[i].dispose(); - } - - disposeMeter(meter); - - if (isGTK) return; - - count /= 10; - - Class printerClass = null; - try { - printerClass = Class.forName("org.eclipse.swt.printing.Printer"); - } catch (ClassNotFoundException e) { - // Printer class not present (eSWT). Skip test. - return; - } - Object[] printers = new Object[count]; - try { - for (int i = 0; i < count; i++) { - printers[i] = printerClass.newInstance(); - } - } catch (InstantiationException e1) { - return; - } catch (IllegalAccessException e1) { - return; - } - - meter = createMeter("GC constr.(Drawable) - printer"); - meter.start(); - for (int i = 0; i < count; i++) { - gcs[i] = new GC((Printer) printers[i]); - } - meter.stop(); - - for (int i = 0; i < count; i++) { - gcs[i].dispose(); - ((Printer)printers[i]).dispose(); - } - - disposeMeter(meter); -} - -public void test_ConstructorLorg_eclipse_swt_graphics_DrawableI() { - int count = 4000; // 5000 causes No More Handles - - Image[] images = new Image[count]; - for (int i = 0; i < count; i++) { - images[i] = new Image(display, 10, 10); - } - GC[] gcs = new GC[count]; - - PerformanceMeter meter = createMeter("GC constr.(Drawable,I) - image"); - meter.start(); - for (int i = 0; i < count; i++) { - gcs[i] = new GC(images[i], SWT.RIGHT_TO_LEFT); - } - meter.stop(); - - for (int i = 0; i < count; i++) { - gcs[i].dispose(); - images[i].dispose(); - } - - disposeMeter(meter); - - if (isGTK) return; - - count /= 10; - - Class printerClass = null; - try { - printerClass = Class.forName("org.eclipse.swt.printing.Printer"); - } catch (ClassNotFoundException e) { - // Printer class not present (eSWT). Skip test. - return; - } - Object[] printers = new Object[count]; - try { - for (int i = 0; i < count; i++) { - printers[i] = printerClass.newInstance(); - } - } catch (InstantiationException e1) { - return; - } catch (IllegalAccessException e1) { - return; - } - - meter = createMeter("GC constr.(Drawable,I) - printer"); - meter.start(); - for (int i = 0; i < count; i++) { - gcs[i] = new GC((Printer) printers[i], SWT.RIGHT_TO_LEFT); - } - meter.stop(); - - for (int i = 0; i < count; i++) { - gcs[i].dispose(); - ((Printer)printers[i]).dispose(); - } - - disposeMeter(meter); -} - -public void test_copyAreaIIIIII() { - final int COUNT = 1500000; - - // precompute points - Rectangle bounds = gc.getClipping(); - final int[][] coords = new int[COUNT][]; - int y = 0; - for (int i = 0; i < COUNT; i++) { - int x = i % bounds.width; - coords[i] = new int[] {x,y}; - if (x == 0) y += 3; - } - - gc.setBackground(display.getSystemColor(SWT.COLOR_WHITE)); - gc.setForeground(display.getSystemColor(SWT.COLOR_WHITE)); - gc.fillRectangle(image.getBounds()); - gc.setForeground(display.getSystemColor(SWT.COLOR_BLUE)); - gc.drawLine(5, 5, 10, 10); - gc.drawLine(5, 10, 10, 5); - - PerformanceMeter meter = createMeter("GC copyArea(IIIIII)"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.copyArea(5, 5, 10, 10, coords[i][0], coords[i][1]); - } - meter.stop(); - - disposeMeter(meter); -} - -public void test_copyAreaLorg_eclipse_swt_graphics_ImageII() { - final int COUNT = 4000; // 5000 causes No More Handles - - // precompute points - Rectangle bounds = gc.getClipping(); - final int[][] coords = new int[COUNT][]; - int y = 0; - for (int i = 0; i < COUNT; i++) { - int x = i % bounds.width; - coords[i] = new int[] {x,y}; - if (x == 0) y += 3; - } - - gc.setBackground(display.getSystemColor(SWT.COLOR_WHITE)); - gc.setForeground(display.getSystemColor(SWT.COLOR_WHITE)); - gc.fillRectangle(image.getBounds()); - gc.setForeground(display.getSystemColor(SWT.COLOR_BLUE)); - gc.drawLine(5, 5, 10, 10); - gc.drawLine(5, 10, 10, 5); - - Image[] images = new Image[COUNT]; - for (int i = 0; i < COUNT; i++) { - images[i] = new Image(display, 15, 15); - } - - PerformanceMeter meter = createMeter("GC copyArea(Image,II)"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.copyArea(images[i], coords[i][0], coords[i][1]); - } - meter.stop(); - - for (int i = 0; i < COUNT; i++) { - images[i].dispose(); - } - - disposeMeter(meter); -} - -public void test_dispose() { - final int COUNT = 3000; // 4000 causes No More Handles - - Image[] images = new Image [COUNT]; - GC[] gcs = new GC [COUNT]; - for (int i = 0; i < COUNT; i++) { - images[i] = new Image(display, 10, 10); - gcs[i] = new GC(images[i]); - } - - PerformanceMeter meter = createMeter("GC dispose - typical"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gcs[i].dispose(); // dispose - } - meter.stop(); - - for (int i = 0; i < COUNT; i++) { - images[i].dispose(); - } - - disposeMeter(meter); - - meter = createMeter("GC dispose - disposed"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gcs[i].dispose(); // dispose disposed - } - meter.stop(); - - disposeMeter(meter); -} - -public void test_drawArcIIIIII() { - final int COUNT = 200000; - - // precompute points - Rectangle bounds = gc.getClipping(); - final int[][] coords = new int[COUNT][]; - int y = 0; - for (int i = 0; i < COUNT; i++) { - int x = i % bounds.width; - coords[i] = new int[] {x,y}; - if (x == 0) y += 3; - } - - PerformanceMeter meter = createMeter("GC drawArc"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.drawArc(coords[i][0], coords[i][1], 50, 25, 90, 90); - } - meter.stop(); - - disposeMeter(meter); -} - -public void test_drawFocusIIII() { - final int COUNT = 750000; - - // precompute points - Rectangle bounds = gc.getClipping(); - final int[][] coords = new int[COUNT][]; - int y = 0; - for (int i = 0; i < COUNT; i++) { - int x = i % bounds.width; - coords[i] = new int[] {x,y}; - if (x == 0) y += 3; - } - - PerformanceMeter meter = createMeter("GC drawFocus"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.drawFocus(coords[i][0], coords[i][1], 30, 20); - } - meter.stop(); - - disposeMeter(meter); -} - -public void test_drawImageLorg_eclipse_swt_graphics_ImageII() { - int count = 120000; - - // precompute points - Rectangle bounds = gc.getClipping(); - final int[][] coords = new int[count][]; - int y = 0; - for (int i = 0; i < count; i++) { - int x = i % bounds.width; - coords[i] = new int[] {x,y}; - if (x == 0) y += 3; - } - - Color red = display.getSystemColor(SWT.COLOR_RED); - Color black = display.getSystemColor(SWT.COLOR_BLACK); - Color green = display.getSystemColor(SWT.COLOR_GREEN); - PaletteData paletteData = new PaletteData(new RGB[] {red.getRGB(), black.getRGB(), green.getRGB()}); - ImageData data = new ImageData(30,30, 8, paletteData); - for (y = 0; y < data.height; y++) { - for (int x = 0; x < data.width; x++) { - if (x > y) data.setPixel(x, y, paletteData.getPixel(red.getRGB())); - else if (x < y) data.setPixel(x, y, paletteData.getPixel(black.getRGB())); - else data.setPixel(x, y, paletteData.getPixel(green.getRGB())); - } - } - Image imageNormal = new Image(display, data); - data = imageNormal.getImageData(); - data.transparentPixel = paletteData.getPixel(red.getRGB()); - Image imageTransparent = new Image(display, data); - data.transparentPixel = -1; - for (y = 0; y < data.height; y++) { - for (int x = 0; x < data.width; x++) { - data.setAlpha(x, y, 127); - } - } - Image imageAlpha = new Image(display, data); - gc.drawImage(imageNormal, 100, 100); - gc.drawImage(imageTransparent, 130, 100); - gc.drawImage(imageAlpha, 160, 100); - - try { - PerformanceMeter meter = createMeter("GC drawImage - normal"); - meter.start(); - for (int i = 0; i < count; i++) { - gc.drawImage(imageNormal, coords[i][0], coords[i][1]); // normal image - } - meter.stop(); - - disposeMeter(meter); - - count /= 100; - - meter = createMeter("GC drawImage - transparent"); - Performance performance = Performance.getDefault(); - performance.tagAsGlobalSummary(meter, "GC.drawImage() transparent * " + count, Dimension.CPU_TIME); - meter.start(); - for (int i = 0; i < count; i++) { - gc.drawImage(imageTransparent, coords[i][0], coords[i][1]); // transparent image - } - meter.stop(); - - disposeMeter(meter); - - count *= 10; - - meter = createMeter("GC drawImage - alpha"); - meter.start(); - for (int i = 0; i < count; i++) { - gc.drawImage(imageAlpha, coords[i][0], coords[i][1]); // alpha image - } - meter.stop(); - - disposeMeter(meter); - } finally { - imageNormal.dispose(); - imageTransparent.dispose(); - imageAlpha.dispose(); - } -} - -public void test_drawImageLorg_eclipse_swt_graphics_ImageIIIIIIII() { - // TODO -// Color c1 = new Color(display, 255, 0, 0); -// Color c2 = new Color(display, 0, 0, 0); -// Color c3 = new Color(display, 255, 255, 0); -// -// PaletteData paletteData = new PaletteData(new RGB[] {c1.getRGB(), c2.getRGB(), c3.getRGB()}); -// ImageData data = new ImageData(30,30, 8, paletteData); -// for (int y = 0; y < data.height; y++) { -// for (int x = 0; x < data.width; x++) { -// if (x > y) data.setPixel(x, y, paletteData.getPixel(c1.getRGB())); -// else if (x < y) data.setPixel(x, y, paletteData.getPixel(c2.getRGB())); -// else data.setPixel(x, y, paletteData.getPixel(c3.getRGB())); -// } -// } -// Image image = new Image(display, data); -// data = image.getImageData(); -// data.transparentPixel = paletteData.getPixel(c1.getRGB()); -// Image imageTransparent = new Image(display, data); -// data.transparentPixel = -1; -// for (int y = 0; y < data.height; y++) { -// for (int x = 0; x < data.width; x++) { -// data.setAlpha(x, y, 127); -// } -// } -// Image imageAlpha = new Image(display, data); -// -// gc.drawImage(image, 10, 5, 20, 15, 100, 120, 50, 60); -// gc.drawImage(imageTransparent, 10, 5, 20, 15, 100, 120, 10, 10); -// gc.drawImage(imageAlpha, 10, 5, 20, 15, 100, 120, 20, 15); -// try { -// gc.drawImage(null, 10, 5, 20, 15, 100, 120, 50, 60); -// fail("No exception thrown"); //should never get here -// } -// catch (IllegalArgumentException e) { -// } -// image.dispose(); -// imageAlpha.dispose(); -// imageTransparent.dispose(); -} - -public void test_drawLineIIII() { - final int COUNT = 750000; - - // precompute points - Rectangle bounds = gc.getClipping(); - final int[][] coords = new int[COUNT][]; - int y = 0; - for (int i = 0; i < COUNT; i++) { - int x = i % bounds.width; - coords[i] = new int[] {x,y, x+5,y+5}; - if (x == 0) y += 3; - } - - PerformanceMeter meter = createMeter("GC drawLine"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.drawLine(coords[i][0],coords[i][1], coords[i][2],coords[i][3]); - } - meter.stop(); - - disposeMeter(meter); -} - -public void test_drawOvalIIII() { - final int COUNT = 700000; - - // precompute points - Rectangle bounds = gc.getClipping(); - final int[][] coords = new int[COUNT][]; - int y = 0; - for (int i = 0; i < COUNT; i++) { - int x = i % bounds.width; - coords[i] = new int[] {x,y}; - if (x == 0) y += 3; - } - - PerformanceMeter meter = createMeter("GC drawOval"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.drawOval(coords[i][0], coords[i][1], 20, 30); - } - meter.stop(); - - disposeMeter(meter); -} - -public void test_drawPointII() { - final int COUNT = 1500000; - - // precompute points - Rectangle bounds = gc.getClipping(); - final int[][] coords = new int[COUNT][]; - int y = 0; - for (int i = 0; i < COUNT; i++) { - int x = i % bounds.width; - coords[i] = new int[] {x,y}; - if (x == 0) y += 3; - } - - PerformanceMeter meter = createMeter("GC drawPoint"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.drawPoint(coords[i][0], coords[i][1]); - } - meter.stop(); - - disposeMeter(meter); -} - -public void test_drawPolygon$I() { - final int COUNT = 750000; - - // precompute points - Rectangle bounds = gc.getClipping(); - final int[][] coords = new int[COUNT][]; - int y = 0; - for (int i = 0; i < COUNT; i++) { - int x = i % bounds.width; - coords[i] = new int[] {x,y, x+5,y+10, x,y+20}; - if (x == 0) y += 3; - } - - PerformanceMeter meter = createMeter("GC drawPolygon"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.drawPolygon(coords[i]); - } - meter.stop(); - - disposeMeter(meter); -} - -public void test_drawPolyline$I() { - final int COUNT = 550000; - - // precompute points - Rectangle bounds = gc.getClipping(); - final int[][] coords = new int[COUNT][]; - int y = 0; - for (int i = 0; i < COUNT; i++) { - int x = i % bounds.width; - coords[i] = new int[] {x,y, x+5,y+10, x,y+20}; - if (x == 0) y += 3; - } - - PerformanceMeter meter = createMeter("GC drawPolyline"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.drawPolyline(coords[i]); - } - meter.stop(); - - disposeMeter(meter); -} - -public void test_drawRectangleIIII() { - final int COUNT = 1200000; - - // precompute points - Rectangle bounds = gc.getClipping(); - final int[][] coords = new int[COUNT][]; - int y = 0; - for (int i = 0; i < COUNT; i++) { - int x = i % bounds.width; - coords[i] = new int[] {x,y}; - if (x == 0) y += 3; - } - - PerformanceMeter meter = createMeter("GC drawRectangle(IIII)"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.drawRectangle(coords[i][0], coords[i][1], 20, 30); - } - meter.stop(); - - disposeMeter(meter); -} - -public void test_drawRectangleLorg_eclipse_swt_graphics_Rectangle() { - final int COUNT = 1200000; - - // precompute points - Rectangle bounds = gc.getClipping(); - final Rectangle[] coords = new Rectangle[COUNT]; - int y = 0; - for (int i = 0; i < COUNT; i++) { - int x = i % bounds.width; - coords[i] = new Rectangle (x, y, 20, 30); - if (x == 0) y += 3; - } - - PerformanceMeter meter = createMeter("GC drawRectangle(Rectangle)"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.drawRectangle(coords[i]); - } - meter.stop(); - - disposeMeter(meter); -} - -public void test_drawRoundRectangleIIIIII() { - final int COUNT = 400000; - - // precompute points - Rectangle bounds = gc.getClipping(); - final int[][] coords = new int[COUNT][]; - int y = 0; - for (int i = 0; i < COUNT; i++) { - int x = i % bounds.width; - coords[i] = new int[] {x,y}; - if (x == 0) y += 3; - } - - PerformanceMeter meter = createMeter("GC drawRoundRectangle"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.drawRoundRectangle(coords[i][0], coords[i][1], 20, 30, 3, 3); - } - meter.stop(); - - disposeMeter(meter); -} - -public void test_drawStringLjava_lang_StringII() { - final int COUNT = 600000; - final String STRING = "test string"; - - // precompute points - Rectangle bounds = gc.getClipping(); - final int[][] coords = new int[COUNT][]; - int y = 0; - for (int i = 0; i < COUNT; i++) { - int x = i % bounds.width; - coords[i] = new int[] {x,y}; - if (x == 0) y += 3; - } - - PerformanceMeter meter = createMeter("GC drawString(String,II)"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.drawString(STRING, coords[i][0], coords[i][1]); - } - meter.stop(); - - disposeMeter(meter); -} - -public void test_drawStringLjava_lang_StringIIZ() { - final int COUNT = 750000; - final String STRING = "test string"; - - // precompute points - Rectangle bounds = gc.getClipping(); - final int[][] coords = new int[COUNT][]; - int y = 0; - for (int i = 0; i < COUNT; i++) { - int x = i % bounds.width; - coords[i] = new int[] {x,y}; - if (x == 0) y += 3; - } - - PerformanceMeter meter = createMeter("GC drawString(String,IIZ) - transparent"); - Performance performance = Performance.getDefault(); - performance.tagAsGlobalSummary(meter, "GC.drawString () transparent * " + COUNT, Dimension.CPU_TIME); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.drawString(STRING, coords[i][0], coords[i][1], true); - } - meter.stop(); - - disposeMeter(meter); - - meter = createMeter("GC drawString(String,IIZ) - opaque"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.drawString(STRING, coords[i][0], coords[i][1], false); - } - meter.stop(); - - disposeMeter(meter); -} - -public void test_drawTextLjava_lang_StringII() { - final int COUNT = 100000; - final String STRING = "test string"; - - // precompute points - Rectangle bounds = gc.getClipping(); - final int[][] coords = new int[COUNT][]; - int y = 0; - for (int i = 0; i < COUNT; i++) { - int x = i % bounds.width; - coords[i] = new int[] {x,y}; - if (x == 0) y += 3; - } - - PerformanceMeter meter = createMeter("GC drawText(String,II)"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.drawText(STRING, coords[i][0], coords[i][1], true); - } - meter.stop(); - - disposeMeter(meter); -} - -public void test_drawTextLjava_lang_StringIII() { - final int COUNT = 130000; - final String STRING = "\t\r\na&bc&"; - - // precompute points - Rectangle bounds = gc.getClipping(); - final int[][] coords = new int[COUNT][]; - int y = 0; - for (int i = 0; i < COUNT; i++) { - int x = i % bounds.width; - coords[i] = new int[] {x,y}; - if (x == 0) y += 3; - } - - PerformanceMeter meter = createMeter("GC drawText(String,III) - transparent"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.drawText(STRING, coords[i][0], coords[i][1], SWT.DRAW_TRANSPARENT); - } - meter.stop(); - - disposeMeter(meter); - - meter = createMeter("GC drawText(String,III) - delimiter"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.drawText(STRING, coords[i][0], coords[i][1], SWT.DRAW_DELIMITER); - } - meter.stop(); - - disposeMeter(meter); - - meter = createMeter("GC drawText(String,III) - mnemonic"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.drawText(STRING, coords[i][0], coords[i][1], SWT.DRAW_MNEMONIC); - } - meter.stop(); - - disposeMeter(meter); - - meter = createMeter("GC drawText(String,III) - tab"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.drawText(STRING, coords[i][0], coords[i][1], SWT.DRAW_TAB); - } - meter.stop(); - - disposeMeter(meter); - - meter = createMeter("GC drawText(String,III) - no flags"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.drawText(STRING, coords[i][0], coords[i][1], SWT.NONE); - } - meter.stop(); - - disposeMeter(meter); -} - -public void test_drawTextLjava_lang_StringIIZ() { - final int COUNT = 120000; - - // precompute points - Rectangle bounds = gc.getClipping(); - final int[][] coords = new int[COUNT][]; - int y = 0; - for (int i = 0; i < COUNT; i++) { - int x = i % bounds.width; - coords[i] = new int[] {x,y}; - if (x == 0) y += 3; - } - - PerformanceMeter meter = createMeter("GC drawText(String,IIZ) - transparent"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.drawText("test string", coords[i][0], coords[i][1], true); - } - meter.stop(); - - disposeMeter(meter); - - meter = createMeter("GC drawText(String,IIZ) - opaque"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.drawText("test string", coords[i][0], coords[i][1], false); - } - meter.stop(); - - disposeMeter(meter); -} - -public void test_equalsLjava_lang_Object() { - final int COUNT = 500000000; - - GC gc1 = new GC(display); - - PerformanceMeter meter = createMeter("GC equals - yes"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc1.equals(gc1); // equal - } - meter.stop(); - - gc1.dispose(); - - disposeMeter(meter); - - gc1 = new GC(display); - Color gc2 = new Color(display, 128, 255, 0); - - meter = createMeter("GC equals - no"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc1.equals(gc2); // not equal - } - meter.stop(); - - gc1.dispose(); - gc2.dispose(); - - disposeMeter(meter); -} - -public void test_fillArcIIIIII() { - final int COUNT = 200000; - - // precompute points - Rectangle bounds = gc.getClipping(); - final int[][] coords = new int[COUNT][]; - int y = 0; - for (int i = 0; i < COUNT; i++) { - int x = i % bounds.width; - coords[i] = new int[] {x,y}; - if (x == 0) y += 10; - } - - PerformanceMeter meter = createMeter("GC fillArc"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.fillArc(coords[i][0], coords[i][1], 20, 10, 90, 90); - } - meter.stop(); - - disposeMeter(meter); -} - -public void test_fillGradientRectangleIIIIZ() { - final int COUNT = 250000; - - // precompute points - Rectangle bounds = gc.getClipping(); - final int[][] coords = new int[COUNT][]; - int y = 0; - for (int i = 0; i < COUNT; i++) { - int x = i % bounds.width; - coords[i] = new int[] {x,y}; - if (x == 0) y += 10; - } - - PerformanceMeter meter = createMeter("GC fillGradientRectangle(IIIIZ) - vert"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.fillGradientRectangle(coords[i][0], coords[i][1], 20, 10, true); - } - meter.stop(); - - disposeMeter(meter); - - meter = createMeter("GC fillGradientRectangle(IIIIZ) - horiz"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.fillGradientRectangle(coords[i][0], coords[i][1], 20, 10, false); - } - meter.stop(); - - disposeMeter(meter); -} - -public void test_fillOvalIIII() { - final int COUNT = 750000; - - // precompute points - Rectangle bounds = gc.getClipping(); - final int[][] coords = new int[COUNT][]; - int y = 0; - for (int i = 0; i < COUNT; i++) { - int x = i % bounds.width; - coords[i] = new int[] {x,y}; - if (x == 0) y += 10; - } - - PerformanceMeter meter = createMeter("GC fillOval"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.fillOval(coords[i][0], coords[i][1], 20, 10); - } - meter.stop(); - - disposeMeter(meter); -} - -public void test_fillPolygon$I() { - final int COUNT = 700000; - - // precompute points - Rectangle bounds = gc.getClipping(); - final int[][] coords = new int[COUNT][]; - int y = 0; - for (int i = 0; i < COUNT; i++) { - int x = i % bounds.width; - coords[i] = new int[] {x,y, x+5,y+5, x,y+10}; - if (x == 0) y += 10; - } - - PerformanceMeter meter = createMeter("GC fillPolygon"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.fillPolygon(coords[i]); - } - meter.stop(); - - disposeMeter(meter); -} - -public void test_fillRectangleIIII() { - final int COUNT = 2000000; // 3000000 caises OOM - - // precompute points - Rectangle bounds = gc.getClipping(); - final int[][] coords = new int[COUNT][]; - int y = 0; - for (int i = 0; i < COUNT; i++) { - int x = i % bounds.width; - coords[i] = new int[] {x,y}; - if (x == 0) y += 10; - } - - PerformanceMeter meter = createMeter("GC fillRectangle(IIII)"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.fillRectangle(coords[i][0], coords[i][1], 20, 10); - } - meter.stop(); - - disposeMeter(meter); -} - -public void test_fillRectangleLorg_eclipse_swt_graphics_Rectangle() { - final int COUNT = 2000000; // 3000000 causes OOM - - // precompute points - Rectangle bounds = gc.getClipping(); - final Rectangle[] coords = new Rectangle[COUNT]; - int y = 0; - for (int i = 0; i < COUNT; i++) { - int x = i % bounds.width; - coords[i] = new Rectangle (x, y, 20, 10); - if (x == 0) y += 10; - } - - PerformanceMeter meter = createMeter("GC fillRectangle(Rectangle)"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.fillRectangle(coords[i]); - } - meter.stop(); - - disposeMeter(meter); -} - -public void test_fillRoundRectangleIIIIII() { - final int COUNT = 400000; - - // precompute points - Rectangle bounds = gc.getClipping(); - final int[][] coords = new int[COUNT][]; - int y = 0; - for (int i = 0; i < COUNT; i++) { - int x = i % bounds.width; - coords[i] = new int[] {x,y}; - if (x == 0) y += 3; - } - - PerformanceMeter meter = createMeter("GC fillRoundRectangle"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.fillRoundRectangle(coords[i][0], coords[i][1], 20, 30, 3, 3); - } - meter.stop(); - - disposeMeter(meter); -} - -public void test_getAdvanceWidthC() { - final int COUNT = 2000000; - - PerformanceMeter meter = createMeter("GC getAdvanceWidthC"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.getAdvanceWidth('a'); - } - meter.stop(); - - disposeMeter(meter); -} - -public void test_getBackground() { - final int COUNT = 15000000; - - PerformanceMeter meter = createMeter("GC getBackground"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.getBackground(); - } - meter.stop(); - - disposeMeter(meter); -} - -public void test_getCharWidthC() { - final int COUNT = 700000; - final char CHAR = 'a'; - - PerformanceMeter meter = createMeter("GC getCharWidthC"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.getCharWidth(CHAR); - } - meter.stop(); - - disposeMeter(meter); -} - -public void test_getClipping() { - final int COUNT = 1200000; - - PerformanceMeter meter = createMeter("GC getClipping()"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.getClipping(); - } - meter.stop(); - - disposeMeter(meter); -} - -public void test_getClippingLorg_eclipse_swt_graphics_Region() { - final int COUNT = 1200000; - - Region region = new Region(display); - - PerformanceMeter meter = createMeter("GC getClipping(Region)"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.getClipping(region); - } - meter.stop(); - - region.dispose(); - - disposeMeter(meter); -} - -public void test_getFont() { - final int COUNT = 2000000; - - PerformanceMeter meter = createMeter("GC getFont"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.getFont(); - } - meter.stop(); - - disposeMeter(meter); -} - -public void test_getFontMetrics() { - final int COUNT = 1500000; - - PerformanceMeter meter = createMeter("GC getFontMetrics"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.getFontMetrics(); - } - meter.stop(); - - disposeMeter(meter); -} - -public void test_getForeground() { - final int COUNT = 15000000; - - PerformanceMeter meter = createMeter("GC getForeground"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.getForeground(); - } - meter.stop(); - - disposeMeter(meter); -} - -public void test_getLineStyle() { - final int COUNT = 1200000; - - PerformanceMeter meter = createMeter("GC getLineStyle"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.getLineStyle(); - } - meter.stop(); - - disposeMeter(meter); -} - -public void test_getLineWidth() { - final int COUNT = 1200000; - - PerformanceMeter meter = createMeter("GC getLineWidth"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.getLineWidth(); - } - meter.stop(); - - disposeMeter(meter); -} - -public void test_getStyle() { - final int COUNT = 250000000; - - PerformanceMeter meter = createMeter("GC getStyle"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.getStyle(); - } - meter.stop(); - - disposeMeter(meter); -} - -public void test_getXORMode() { - final int COUNT = 25000000; - - PerformanceMeter meter = createMeter("GC getXORMode"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.getXORMode(); - } - meter.stop(); - - disposeMeter(meter); -} - -public void test_hashCode() { - final int COUNT = 500000000; - - PerformanceMeter meter = createMeter("GC hashCode"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.hashCode(); - } - meter.stop(); - - disposeMeter(meter); -} - -public void test_isClipped() { - final int COUNT = 1000000; - - PerformanceMeter meter = createMeter("GC isClipped"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.isClipped(); - } - meter.stop(); - - disposeMeter(meter); -} - -public void test_isDisposed() { - final int COUNT = 500000000; - - GC gc = new GC(display); - - PerformanceMeter meter = createMeter("GC isDisposed - no"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.isDisposed(); // not disposed - } - meter.stop(); - - gc.dispose(); - - disposeMeter(meter); - - meter = createMeter("GC isDisposed - yes"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.isDisposed(); // disposed - } - meter.stop(); - - disposeMeter(meter); -} - -public void test_setBackgroundLorg_eclipse_swt_graphics_Color() { - final int COUNT = 22000000; - - final Color color = display.getSystemColor(SWT.COLOR_RED); - PerformanceMeter meter = createMeter("GC setBackground"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.setBackground(color); - } - meter.stop(); - - disposeMeter(meter); -} - -public void test_setClippingIIII() { - // TODO - // intermittently fails on XP for reasons unknown, comment out the test case - // until the problem is figured out -// Canvas canvas = new Canvas(shell, SWT.BORDER); -// shell.setSize(110,110); -// canvas.setSize(100,100); -// shell.open(); -// GC testGc = new GC(canvas); -// testGc.setClipping(0,5,10,20); -// Rectangle rect = testGc.getClipping(); -// assertTrue(rect.x == 0); -// assertTrue(rect.y == 5); -// assertTrue(rect.width == 10); -// assertTrue(rect.height == 20); -// testGc.dispose(); -// canvas.dispose(); -} - -public void test_setClippingLorg_eclipse_swt_graphics_Rectangle() { - // TODO - // intermittently fails on XP for reasons unknown, comment out the test case - // until the problem is figured out -// Canvas canvas = new Canvas(shell, SWT.BORDER); -// shell.setSize(110,110); -// canvas.setSize(100,100); -// shell.open(); -// GC testGc = new GC(canvas); -// testGc.setClipping(new Rectangle(0,5,10,20)); -// Rectangle rect = testGc.getClipping(); -// assertTrue(rect.x == 0); -// assertTrue(rect.y == 5); -// assertTrue(rect.width == 10); -// assertTrue(rect.height == 20); -// testGc.dispose(); -// canvas.dispose(); -} - -public void test_setClippingLorg_eclipse_swt_graphics_Region() { - // TODO -} - -public void test_setFontLorg_eclipse_swt_graphics_Font() { - // TODO -} - -public void test_setForegroundLorg_eclipse_swt_graphics_Color() { - final int COUNT = 25000000; - - final Color color = display.getSystemColor(SWT.COLOR_RED); - PerformanceMeter meter = createMeter("GC setForeground"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.setForeground(color); - } - meter.stop(); - - disposeMeter(meter); -} - -public void test_setLineStyleI() { - final int COUNT = 450000; - - // precompute the styles - final int[] styles = new int[COUNT]; - for (int i = 0; i < COUNT; i++) { - switch (i % 5) { - case 0: styles[i] = SWT.LINE_DASH; break; - case 1: styles[i] = SWT.LINE_DASHDOT; break; - case 2: styles[i] = SWT.LINE_DASHDOTDOT; break; - case 3: styles[i] = SWT.LINE_DOT; break; - case 4: styles[i] = SWT.LINE_SOLID; break; - } - } - - PerformanceMeter meter = createMeter("GC setLineStyle"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.setLineStyle(styles[i]); - } - meter.stop(); - - disposeMeter(meter); -} - -public void test_setLineWidthI() { - final int COUNT = 400000; - - // precompute the widths - final int[] widths = new int[COUNT]; - for (int i = 0; i < COUNT; i++) { - widths[i] = i % 10 + 1; - } - - PerformanceMeter meter = createMeter("GC setLineWidth"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.setLineWidth(widths[i]); - } - meter.stop(); - - disposeMeter(meter); -} - -public void test_setXORModeZ() { - final int COUNT = 25000000; - - // precompute the values - final boolean[] values = new boolean[COUNT]; - for (int i = 0; i < COUNT; i++) { - values[i] = (i % 2 == 0); - } - - PerformanceMeter meter = createMeter("GC setXORMode"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.setXORMode(values[i]); - } - meter.stop(); - - disposeMeter(meter); -} - -public void test_stringExtentLjava_lang_String() { - final int COUNT = 1500000; - final String STRING = "test \t\nstring"; - - PerformanceMeter meter = createMeter("GC stringExtent"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.stringExtent(STRING); - } - meter.stop(); - disposeMeter(meter); -} - -public void test_textExtentLjava_lang_String() { - final int COUNT = 200000; - final String STRING = "test \t\nstring"; - - PerformanceMeter meter = createMeter("GC textExtent(String)"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.textExtent(STRING); - } - meter.stop(); - disposeMeter(meter); -} - -public void test_textExtentLjava_lang_StringI() { - final int COUNT = 300000; - final String STRING = "\t\r\na&bc&"; - - PerformanceMeter meter = createMeter("GC textExtent(String,I) - transparent"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.textExtent(STRING, SWT.DRAW_TRANSPARENT); - } - meter.stop(); - - disposeMeter(meter); - - meter = createMeter("GC textExtent(String,I) - delimiter"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.textExtent(STRING, SWT.DRAW_DELIMITER); - } - meter.stop(); - - disposeMeter(meter); - - meter = createMeter("GC textExtent(String,I) - mnemonic"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.textExtent("\t\r\na&bc&", SWT.DRAW_MNEMONIC); - } - meter.stop(); - - disposeMeter(meter); - - meter = createMeter("GC textExtent(String,I) - tab"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.textExtent("\t\r\na&bc&", SWT.DRAW_TAB); - } - meter.stop(); - - disposeMeter(meter); - - meter = createMeter("GC textExtent(String,I) - no flags"); - meter.start(); - for (int i = 0; i < COUNT; i++) { - gc.textExtent("\t\r\na&bc&", SWT.NONE); - } - meter.stop(); - - disposeMeter(meter); -} - -public static Test suite() { - TestSuite suite = new TestSuite(); - java.util.Vector methodNames = methodNames(); - java.util.Enumeration e = methodNames.elements(); - while (e.hasMoreElements()) { - suite.addTest(new Test_org_eclipse_swt_graphics_GC((String)e.nextElement())); - } - return suite; -} -public static java.util.Vector methodNames() { - java.util.Vector methodNames = new java.util.Vector(); - methodNames.addElement("test_ConstructorLorg_eclipse_swt_graphics_Drawable"); - methodNames.addElement("test_ConstructorLorg_eclipse_swt_graphics_DrawableI"); - methodNames.addElement("test_copyAreaIIIIII"); - methodNames.addElement("test_copyAreaLorg_eclipse_swt_graphics_ImageII"); - methodNames.addElement("test_dispose"); - methodNames.addElement("test_drawArcIIIIII"); - methodNames.addElement("test_drawFocusIIII"); - methodNames.addElement("test_drawImageLorg_eclipse_swt_graphics_ImageII"); - methodNames.addElement("test_drawImageLorg_eclipse_swt_graphics_ImageIIIIIIII"); - methodNames.addElement("test_drawLineIIII"); - methodNames.addElement("test_drawOvalIIII"); - methodNames.addElement("test_drawPointII"); - methodNames.addElement("test_drawPolygon$I"); - methodNames.addElement("test_drawPolyline$I"); - methodNames.addElement("test_drawRectangleIIII"); - methodNames.addElement("test_drawRectangleLorg_eclipse_swt_graphics_Rectangle"); - methodNames.addElement("test_drawRoundRectangleIIIIII"); - methodNames.addElement("test_drawStringLjava_lang_StringII"); - methodNames.addElement("test_drawStringLjava_lang_StringIIZ"); - methodNames.addElement("test_drawTextLjava_lang_StringII"); - methodNames.addElement("test_drawTextLjava_lang_StringIII"); - methodNames.addElement("test_drawTextLjava_lang_StringIIZ"); - methodNames.addElement("test_equalsLjava_lang_Object"); - methodNames.addElement("test_fillArcIIIIII"); - methodNames.addElement("test_fillGradientRectangleIIIIZ"); - methodNames.addElement("test_fillOvalIIII"); - methodNames.addElement("test_fillPolygon$I"); - methodNames.addElement("test_fillRectangleIIII"); - methodNames.addElement("test_fillRectangleLorg_eclipse_swt_graphics_Rectangle"); - methodNames.addElement("test_fillRoundRectangleIIIIII"); - methodNames.addElement("test_getAdvanceWidthC"); - methodNames.addElement("test_getBackground"); - methodNames.addElement("test_getCharWidthC"); - methodNames.addElement("test_getClipping"); - methodNames.addElement("test_getClippingLorg_eclipse_swt_graphics_Region"); - methodNames.addElement("test_getFont"); - methodNames.addElement("test_getFontMetrics"); - methodNames.addElement("test_getForeground"); - methodNames.addElement("test_getLineStyle"); - methodNames.addElement("test_getLineWidth"); - methodNames.addElement("test_getStyle"); - methodNames.addElement("test_getXORMode"); - methodNames.addElement("test_hashCode"); - methodNames.addElement("test_isClipped"); - methodNames.addElement("test_isDisposed"); - methodNames.addElement("test_setBackgroundLorg_eclipse_swt_graphics_Color"); - methodNames.addElement("test_setClippingIIII"); - methodNames.addElement("test_setClippingLorg_eclipse_swt_graphics_Rectangle"); - methodNames.addElement("test_setClippingLorg_eclipse_swt_graphics_Region"); - methodNames.addElement("test_setFontLorg_eclipse_swt_graphics_Font"); - methodNames.addElement("test_setForegroundLorg_eclipse_swt_graphics_Color"); - methodNames.addElement("test_setLineStyleI"); - methodNames.addElement("test_setLineWidthI"); - methodNames.addElement("test_setXORModeZ"); - methodNames.addElement("test_stringExtentLjava_lang_String"); - methodNames.addElement("test_textExtentLjava_lang_String"); - methodNames.addElement("test_textExtentLjava_lang_StringI"); - return methodNames; -} -protected void runTest() throws Throwable { - if (getName().equals("test_ConstructorLorg_eclipse_swt_graphics_Drawable")) test_ConstructorLorg_eclipse_swt_graphics_Drawable(); - else if (getName().equals("test_ConstructorLorg_eclipse_swt_graphics_DrawableI")) test_ConstructorLorg_eclipse_swt_graphics_DrawableI(); - else if (getName().equals("test_copyAreaIIIIII")) test_copyAreaIIIIII(); - else if (getName().equals("test_copyAreaLorg_eclipse_swt_graphics_ImageII")) test_copyAreaLorg_eclipse_swt_graphics_ImageII(); - else if (getName().equals("test_dispose")) test_dispose(); - else if (getName().equals("test_drawArcIIIIII")) test_drawArcIIIIII(); - else if (getName().equals("test_drawFocusIIII")) test_drawFocusIIII(); - else if (getName().equals("test_drawImageLorg_eclipse_swt_graphics_ImageII")) test_drawImageLorg_eclipse_swt_graphics_ImageII(); - else if (getName().equals("test_drawImageLorg_eclipse_swt_graphics_ImageIIIIIIII")) test_drawImageLorg_eclipse_swt_graphics_ImageIIIIIIII(); - else if (getName().equals("test_drawLineIIII")) test_drawLineIIII(); - else if (getName().equals("test_drawOvalIIII")) test_drawOvalIIII(); - else if (getName().equals("test_drawPointII")) test_drawPointII(); - else if (getName().equals("test_drawPolygon$I")) test_drawPolygon$I(); - else if (getName().equals("test_drawPolyline$I")) test_drawPolyline$I(); - else if (getName().equals("test_drawRectangleIIII")) test_drawRectangleIIII(); - else if (getName().equals("test_drawRectangleLorg_eclipse_swt_graphics_Rectangle")) test_drawRectangleLorg_eclipse_swt_graphics_Rectangle(); - else if (getName().equals("test_drawRoundRectangleIIIIII")) test_drawRoundRectangleIIIIII(); - else if (getName().equals("test_drawStringLjava_lang_StringII")) test_drawStringLjava_lang_StringII(); - else if (getName().equals("test_drawStringLjava_lang_StringIIZ")) test_drawStringLjava_lang_StringIIZ(); - else if (getName().equals("test_drawTextLjava_lang_StringII")) test_drawTextLjava_lang_StringII(); - else if (getName().equals("test_drawTextLjava_lang_StringIII")) test_drawTextLjava_lang_StringIII(); - else if (getName().equals("test_drawTextLjava_lang_StringIIZ")) test_drawTextLjava_lang_StringIIZ(); - else if (getName().equals("test_equalsLjava_lang_Object")) test_equalsLjava_lang_Object(); - else if (getName().equals("test_fillArcIIIIII")) test_fillArcIIIIII(); - else if (getName().equals("test_fillGradientRectangleIIIIZ")) test_fillGradientRectangleIIIIZ(); - else if (getName().equals("test_fillOvalIIII")) test_fillOvalIIII(); - else if (getName().equals("test_fillPolygon$I")) test_fillPolygon$I(); - else if (getName().equals("test_fillRectangleIIII")) test_fillRectangleIIII(); - else if (getName().equals("test_fillRectangleLorg_eclipse_swt_graphics_Rectangle")) test_fillRectangleLorg_eclipse_swt_graphics_Rectangle(); - else if (getName().equals("test_fillRoundRectangleIIIIII")) test_fillRoundRectangleIIIIII(); - else if (getName().equals("test_getAdvanceWidthC")) test_getAdvanceWidthC(); - else if (getName().equals("test_getBackground")) test_getBackground(); - else if (getName().equals("test_getCharWidthC")) test_getCharWidthC(); - else if (getName().equals("test_getClipping")) test_getClipping(); - else if (getName().equals("test_getClippingLorg_eclipse_swt_graphics_Region")) test_getClippingLorg_eclipse_swt_graphics_Region(); - else if (getName().equals("test_getFont")) test_getFont(); - else if (getName().equals("test_getFontMetrics")) test_getFontMetrics(); - else if (getName().equals("test_getForeground")) test_getForeground(); - else if (getName().equals("test_getLineStyle")) test_getLineStyle(); - else if (getName().equals("test_getLineWidth")) test_getLineWidth(); - else if (getName().equals("test_getStyle")) test_getStyle(); - else if (getName().equals("test_getXORMode")) test_getXORMode(); - else if (getName().equals("test_hashCode")) test_hashCode(); - else if (getName().equals("test_isClipped")) test_isClipped(); - else if (getName().equals("test_isDisposed")) test_isDisposed(); - else if (getName().equals("test_setBackgroundLorg_eclipse_swt_graphics_Color")) test_setBackgroundLorg_eclipse_swt_graphics_Color(); - else if (getName().equals("test_setClippingIIII")) test_setClippingIIII(); - else if (getName().equals("test_setClippingLorg_eclipse_swt_graphics_Rectangle")) test_setClippingLorg_eclipse_swt_graphics_Rectangle(); - else if (getName().equals("test_setClippingLorg_eclipse_swt_graphics_Region")) test_setClippingLorg_eclipse_swt_graphics_Region(); - else if (getName().equals("test_setFontLorg_eclipse_swt_graphics_Font")) test_setFontLorg_eclipse_swt_graphics_Font(); - else if (getName().equals("test_setForegroundLorg_eclipse_swt_graphics_Color")) test_setForegroundLorg_eclipse_swt_graphics_Color(); - else if (getName().equals("test_setLineStyleI")) test_setLineStyleI(); - else if (getName().equals("test_setLineWidthI")) test_setLineWidthI(); - else if (getName().equals("test_setXORModeZ")) test_setXORModeZ(); - else if (getName().equals("test_stringExtentLjava_lang_String")) test_stringExtentLjava_lang_String(); - else if (getName().equals("test_textExtentLjava_lang_String")) test_textExtentLjava_lang_String(); - else if (getName().equals("test_textExtentLjava_lang_StringI")) test_textExtentLjava_lang_StringI(); -} - -/* custom */ -Display display; -Shell shell; -Image image; -GC gc; - -/** - * Return the actual RGB value used for rendering for the given Color. - * This may be different from the Color's RGB value on lower-color displays - * (16bpp or less). - */ -RGB getRealRGB(Color color) { - Image colorImage = new Image(display, 10, 10); - GC imageGc = new GC(colorImage); - ImageData imageData; - PaletteData palette; - int pixel; - - imageGc.setBackground(color); - imageGc.setForeground(color); - imageGc.fillRectangle(0, 0, 10, 10); - imageData = colorImage.getImageData(); - palette = imageData.palette; - imageGc.dispose(); - colorImage.dispose(); - pixel = imageData.getPixel(0, 0); - return palette.getRGB(pixel); -} -} |