FileDocCategorySizeDatePackage
GraphicsSurfaceDestination.javaAPI DocphoneME MR2 API (J2ME)3104Wed May 02 18:00:36 BST 2007com.sun.pisces

GraphicsSurfaceDestination

public final class GraphicsSurfaceDestination extends Object implements SurfaceDestination

Fields Summary
private final javax.microedition.lcdui.Graphics
g
Constructors Summary
public GraphicsSurfaceDestination(javax.microedition.lcdui.Graphics g)

        this.g = g;
        initialize();
    
Methods Summary
public voiddrawRGB(int[] argb, int offset, int scanLength, int x, int y, int width, int height, float opacity)

        drawRGBImpl(g, argb, offset, scanLength, x, y, width, height, opacity);
    
private static native voiddrawRGBImpl(javax.microedition.lcdui.Graphics g, int[] argb, int offset, int scanLength, int x, int y, int width, int height, float opacity)

public voiddrawSurface(Surface ps, int srcX, int srcY, int dstX, int dstY, int width, int height, float opacity)

        if (ps instanceof AbstractSurface) {
            drawSurfaceImpl(g, (AbstractSurface)ps, srcX, srcY, 
                    dstX, dstY, width, height, opacity);
            return;
        }
        
        int srcW = ps.getWidth();
        int srcH = ps.getHeight();

        if (srcX < 0) {
            dstX -= srcX;
            width += srcX;
            srcX = 0;
        }

        if (srcY < 0) {
            dstY -= srcY;
            height += srcY;
            srcY = 0;
        }

        if ((srcX + width) > srcW) {
            width = srcW - srcX;
        }

        if ((srcY + height) > srcH) {
            height = srcH - srcY;
        }

        if ((width > 0) && (height > 0) && (opacity > 0)) {
            int size = width * height;
            int[] srcRGB = new int[size];

            ps.getRGB(srcRGB, 0, width, srcX, srcY, width, height);
            drawRGBImpl(g, srcRGB, 0, width, dstX, dstY, width, height, 
                    opacity);
        }
    
private static native voiddrawSurfaceImpl(javax.microedition.lcdui.Graphics g, AbstractSurface ps, int srcX, int srcY, int dstX, int dstY, int width, int height, float opacity)

private native voidinitialize()