Java Code Examples for sun.awt.image.SunWritableRaster#markDirty()

The following examples show how to use sun.awt.image.SunWritableRaster#markDirty() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: GTKEngine.java    From TencentKona-8 with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Called to indicate that painting is finished. We create a new
 * BufferedImage from the offscreen buffer, (optionally) cache it,
 * and paint it.
 */
public BufferedImage finishPainting(boolean useCache) {
    DataBufferInt dataBuffer = new DataBufferInt(w0 * h0);
    // Note that stealData() requires a markDirty() afterwards
    // since we modify the data in it.
    int transparency =
        nativeFinishPainting(SunWritableRaster.stealData(dataBuffer, 0),
                             w0, h0);
    SunWritableRaster.markDirty(dataBuffer);

    int[] bands = BAND_OFFSETS[transparency - 1];
    WritableRaster raster = Raster.createPackedRaster(
            dataBuffer, w0, h0, w0, bands, null);

    ColorModel cm = COLOR_MODELS[transparency - 1];
    BufferedImage img = new BufferedImage(cm, raster, false, null);
    if (useCache) {
        cache.setImage(getClass(), null, w0, h0, cacheArgs, img);
    }
    graphics.drawImage(img, x0, y0, null);
    return img;
}
 
Example 2
Source File: GTKEngine.java    From JDKSourceCode1.8 with MIT License 6 votes vote down vote up
/**
 * Called to indicate that painting is finished. We create a new
 * BufferedImage from the offscreen buffer, (optionally) cache it,
 * and paint it.
 */
public void finishPainting(boolean useCache) {
    DataBufferInt dataBuffer = new DataBufferInt(w0 * h0);
    // Note that stealData() requires a markDirty() afterwards
    // since we modify the data in it.
    int transparency =
        nativeFinishPainting(SunWritableRaster.stealData(dataBuffer, 0),
                             w0, h0);
    SunWritableRaster.markDirty(dataBuffer);

    int[] bands = BAND_OFFSETS[transparency - 1];
    WritableRaster raster = Raster.createPackedRaster(
            dataBuffer, w0, h0, w0, bands, null);

    ColorModel cm = COLOR_MODELS[transparency - 1];
    Image img = new BufferedImage(cm, raster, false, null);
    if (useCache) {
        cache.setImage(getClass(), null, w0, h0, cacheArgs, img);
    }
    graphics.drawImage(img, x0, y0, null);
}
 
Example 3
Source File: XPStyle.java    From jdk8u-jdk with GNU General Public License v2.0 6 votes vote down vote up
protected void paintToImage(Component c, Image image, Graphics g,
                            int w, int h, Object[] args) {
    boolean accEnabled = false;
    Skin skin = (Skin)args[0];
    Part part = skin.part;
    State state = (State)args[1];
    if (state == null) {
        state = skin.state;
    }
    if (c == null) {
        c = skin.component;
    }
    BufferedImage bi = (BufferedImage)image;

    WritableRaster raster = bi.getRaster();
    DataBufferInt dbi = (DataBufferInt)raster.getDataBuffer();
    // Note that stealData() requires a markDirty() afterwards
    // since we modify the data in it.
    ThemeReader.paintBackground(SunWritableRaster.stealData(dbi, 0),
                                part.getControlName(c), part.getValue(),
                                State.getValue(part, state),
                                0, 0, w, h, w);
    SunWritableRaster.markDirty(dbi);
}
 
Example 4
Source File: XPStyle.java    From jdk8u-jdk with GNU General Public License v2.0 6 votes vote down vote up
protected void paintToImage(Component c, Image image, Graphics g,
                            int w, int h, Object[] args) {
    boolean accEnabled = false;
    Skin skin = (Skin)args[0];
    Part part = skin.part;
    State state = (State)args[1];
    if (state == null) {
        state = skin.state;
    }
    if (c == null) {
        c = skin.component;
    }
    BufferedImage bi = (BufferedImage)image;

    WritableRaster raster = bi.getRaster();
    DataBufferInt dbi = (DataBufferInt)raster.getDataBuffer();
    // Note that stealData() requires a markDirty() afterwards
    // since we modify the data in it.
    ThemeReader.paintBackground(SunWritableRaster.stealData(dbi, 0),
                                part.getControlName(c), part.getValue(),
                                State.getValue(part, state),
                                0, 0, w, h, w);
    SunWritableRaster.markDirty(dbi);
}
 
Example 5
Source File: GTKEngine.java    From jdk8u60 with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Called to indicate that painting is finished. We create a new
 * BufferedImage from the offscreen buffer, (optionally) cache it,
 * and paint it.
 */
public void finishPainting(boolean useCache) {
    DataBufferInt dataBuffer = new DataBufferInt(w0 * h0);
    // Note that stealData() requires a markDirty() afterwards
    // since we modify the data in it.
    int transparency =
        nativeFinishPainting(SunWritableRaster.stealData(dataBuffer, 0),
                             w0, h0);
    SunWritableRaster.markDirty(dataBuffer);

    int[] bands = BAND_OFFSETS[transparency - 1];
    WritableRaster raster = Raster.createPackedRaster(
            dataBuffer, w0, h0, w0, bands, null);

    ColorModel cm = COLOR_MODELS[transparency - 1];
    Image img = new BufferedImage(cm, raster, false, null);
    if (useCache) {
        cache.setImage(getClass(), null, w0, h0, cacheArgs, img);
    }
    graphics.drawImage(img, x0, y0, null);
}
 
Example 6
Source File: TexturePaintContext.java    From jdk8u60 with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Return a Raster containing the colors generated for the graphics
 * operation.
 * @param x,y,w,h The area in device space for which colors are
 * generated.
 */
public Raster getRaster(int x, int y, int w, int h) {
    if (outRas == null ||
        outRas.getWidth() < w ||
        outRas.getHeight() < h)
    {
        // If h==1, we will probably get lots of "scanline" rects
        outRas = makeRaster((h == 1 ? Math.max(w, maxWidth) : w), h);
    }
    double X = mod(xOrg + x * incXAcross + y * incXDown, bWidth);
    double Y = mod(yOrg + x * incYAcross + y * incYDown, bHeight);

    setRaster((int) X, (int) Y, fractAsInt(X), fractAsInt(Y),
              w, h, bWidth, bHeight,
              colincx, colincxerr,
              colincy, colincyerr,
              rowincx, rowincxerr,
              rowincy, rowincyerr);

    SunWritableRaster.markDirty(outRas);

    return outRas;
}
 
Example 7
Source File: IncorrectManagedImageSourceOffset.java    From TencentKona-8 with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Returns the custom buffered image, which mostly identical to
 * BufferedImage.(w,h,TYPE_3BYTE_BGR), but uses the bigger scanlineStride.
 * This means that the raster will have gaps, between the rows.
 */
private static BufferedImage makeCustomManagedBI() {
    int w = 511, h = 255;
    ColorSpace cs = ColorSpace.getInstance(ColorSpace.CS_sRGB);
    int[] nBits = {8, 8, 8};
    int[] bOffs = {2, 1, 0};
    ColorModel colorModel = new ComponentColorModel(cs, nBits, false, false,
                                                    Transparency.OPAQUE,
                                                    DataBuffer.TYPE_BYTE);
    WritableRaster raster =
            Raster.createInterleavedRaster(DataBuffer.TYPE_BYTE, w, h,
                                           w * 3 + 2, 3, bOffs, null);
    BufferedImage bi = new BufferedImage(colorModel, raster, true, null);
    SunWritableRaster.makeTrackable(raster.getDataBuffer());
    SunWritableRaster.markDirty(bi);
    return bi;
}
 
Example 8
Source File: GTKEngine.java    From jdk8u-jdk with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Called to indicate that painting is finished. We create a new
 * BufferedImage from the offscreen buffer, (optionally) cache it,
 * and paint it.
 */
public void finishPainting(boolean useCache) {
    DataBufferInt dataBuffer = new DataBufferInt(w0 * h0);
    // Note that stealData() requires a markDirty() afterwards
    // since we modify the data in it.
    int transparency =
        nativeFinishPainting(SunWritableRaster.stealData(dataBuffer, 0),
                             w0, h0);
    SunWritableRaster.markDirty(dataBuffer);

    int[] bands = BAND_OFFSETS[transparency - 1];
    WritableRaster raster = Raster.createPackedRaster(
            dataBuffer, w0, h0, w0, bands, null);

    ColorModel cm = COLOR_MODELS[transparency - 1];
    Image img = new BufferedImage(cm, raster, false, null);
    if (useCache) {
        cache.setImage(getClass(), null, w0, h0, cacheArgs, img);
    }
    graphics.drawImage(img, x0, y0, null);
}
 
Example 9
Source File: TexturePaintContext.java    From jdk1.8-source-analysis with Apache License 2.0 6 votes vote down vote up
/**
 * Return a Raster containing the colors generated for the graphics
 * operation.
 * @param x,y,w,h The area in device space for which colors are
 * generated.
 */
public Raster getRaster(int x, int y, int w, int h) {
    if (outRas == null ||
        outRas.getWidth() < w ||
        outRas.getHeight() < h)
    {
        // If h==1, we will probably get lots of "scanline" rects
        outRas = makeRaster((h == 1 ? Math.max(w, maxWidth) : w), h);
    }
    double X = mod(xOrg + x * incXAcross + y * incXDown, bWidth);
    double Y = mod(yOrg + x * incYAcross + y * incYDown, bHeight);

    setRaster((int) X, (int) Y, fractAsInt(X), fractAsInt(Y),
              w, h, bWidth, bHeight,
              colincx, colincxerr,
              colincy, colincyerr,
              rowincx, rowincxerr,
              rowincy, rowincyerr);

    SunWritableRaster.markDirty(outRas);

    return outRas;
}
 
Example 10
Source File: TexturePaintContext.java    From TencentKona-8 with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Return a Raster containing the colors generated for the graphics
 * operation.
 * @param x,y,w,h The area in device space for which colors are
 * generated.
 */
public Raster getRaster(int x, int y, int w, int h) {
    if (outRas == null ||
        outRas.getWidth() < w ||
        outRas.getHeight() < h)
    {
        // If h==1, we will probably get lots of "scanline" rects
        outRas = makeRaster((h == 1 ? Math.max(w, maxWidth) : w), h);
    }
    double X = mod(xOrg + x * incXAcross + y * incXDown, bWidth);
    double Y = mod(yOrg + x * incYAcross + y * incYDown, bHeight);

    setRaster((int) X, (int) Y, fractAsInt(X), fractAsInt(Y),
              w, h, bWidth, bHeight,
              colincx, colincxerr,
              colincy, colincyerr,
              rowincx, rowincxerr,
              rowincy, rowincyerr);

    SunWritableRaster.markDirty(outRas);

    return outRas;
}
 
Example 11
Source File: GTKEngine.java    From openjdk-jdk8u-backup with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Called to indicate that painting is finished. We create a new
 * BufferedImage from the offscreen buffer, (optionally) cache it,
 * and paint it.
 */
public void finishPainting(boolean useCache) {
    DataBufferInt dataBuffer = new DataBufferInt(w0 * h0);
    // Note that stealData() requires a markDirty() afterwards
    // since we modify the data in it.
    int transparency =
        nativeFinishPainting(SunWritableRaster.stealData(dataBuffer, 0),
                             w0, h0);
    SunWritableRaster.markDirty(dataBuffer);

    int[] bands = BAND_OFFSETS[transparency - 1];
    WritableRaster raster = Raster.createPackedRaster(
            dataBuffer, w0, h0, w0, bands, null);

    ColorModel cm = COLOR_MODELS[transparency - 1];
    Image img = new BufferedImage(cm, raster, false, null);
    if (useCache) {
        cache.setImage(getClass(), null, w0, h0, cacheArgs, img);
    }
    graphics.drawImage(img, x0, y0, null);
}
 
Example 12
Source File: GTKEngine.java    From openjdk-jdk8u with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Called to indicate that painting is finished. We create a new
 * BufferedImage from the offscreen buffer, (optionally) cache it,
 * and paint it.
 */
public BufferedImage finishPainting(boolean useCache) {
    DataBufferInt dataBuffer = new DataBufferInt(w0 * h0);
    // Note that stealData() requires a markDirty() afterwards
    // since we modify the data in it.
    int transparency =
        nativeFinishPainting(SunWritableRaster.stealData(dataBuffer, 0),
                             w0, h0);
    SunWritableRaster.markDirty(dataBuffer);

    int[] bands = BAND_OFFSETS[transparency - 1];
    WritableRaster raster = Raster.createPackedRaster(
            dataBuffer, w0, h0, w0, bands, null);

    ColorModel cm = COLOR_MODELS[transparency - 1];
    BufferedImage img = new BufferedImage(cm, raster, false, null);
    if (useCache) {
        cache.setImage(getClass(), null, w0, h0, cacheArgs, img);
    }
    graphics.drawImage(img, x0, y0, null);
    return img;
}
 
Example 13
Source File: GTKEngine.java    From hottub with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Called to indicate that painting is finished. We create a new
 * BufferedImage from the offscreen buffer, (optionally) cache it,
 * and paint it.
 */
public void finishPainting(boolean useCache) {
    DataBufferInt dataBuffer = new DataBufferInt(w0 * h0);
    // Note that stealData() requires a markDirty() afterwards
    // since we modify the data in it.
    int transparency =
        nativeFinishPainting(SunWritableRaster.stealData(dataBuffer, 0),
                             w0, h0);
    SunWritableRaster.markDirty(dataBuffer);

    int[] bands = BAND_OFFSETS[transparency - 1];
    WritableRaster raster = Raster.createPackedRaster(
            dataBuffer, w0, h0, w0, bands, null);

    ColorModel cm = COLOR_MODELS[transparency - 1];
    Image img = new BufferedImage(cm, raster, false, null);
    if (useCache) {
        cache.setImage(getClass(), null, w0, h0, cacheArgs, img);
    }
    graphics.drawImage(img, x0, y0, null);
}
 
Example 14
Source File: XPStyle.java    From dragonwell8_jdk with GNU General Public License v2.0 6 votes vote down vote up
protected void paintToImage(Component c, Image image, Graphics g,
                            int w, int h, Object[] args) {
    boolean accEnabled = false;
    Skin skin = (Skin)args[0];
    Part part = skin.part;
    State state = (State)args[1];
    if (state == null) {
        state = skin.state;
    }
    if (c == null) {
        c = skin.component;
    }
    BufferedImage bi = (BufferedImage)image;

    WritableRaster raster = bi.getRaster();
    DataBufferInt dbi = (DataBufferInt)raster.getDataBuffer();
    // Note that stealData() requires a markDirty() afterwards
    // since we modify the data in it.
    ThemeReader.paintBackground(SunWritableRaster.stealData(dbi, 0),
                                part.getControlName(c), part.getValue(),
                                State.getValue(part, state),
                                0, 0, w, h, w);
    SunWritableRaster.markDirty(dbi);
}
 
Example 15
Source File: GTKEngine.java    From openjdk-jdk9 with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Called to indicate that painting is finished. We create a new
 * BufferedImage from the offscreen buffer, (optionally) cache it,
 * and paint it.
 */
public BufferedImage finishPainting(boolean useCache) {
    DataBufferInt dataBuffer = new DataBufferInt(w0 * h0);
    // Note that stealData() requires a markDirty() afterwards
    // since we modify the data in it.
    int transparency =
        nativeFinishPainting(SunWritableRaster.stealData(dataBuffer, 0),
                             w0, h0);
    SunWritableRaster.markDirty(dataBuffer);

    int[] bands = BAND_OFFSETS[transparency - 1];
    WritableRaster raster = Raster.createPackedRaster(
            dataBuffer, w0, h0, w0, bands, null);

    ColorModel cm = COLOR_MODELS[transparency - 1];
    BufferedImage img = new BufferedImage(cm, raster, false, null);
    if (useCache) {
        cache.setImage(getClass(), null, w0, h0, cacheArgs, img);
    }
    graphics.drawImage(img, x0, y0, null);
    return img;
}
 
Example 16
Source File: TexturePaintContext.java    From Java8CN with Apache License 2.0 6 votes vote down vote up
/**
 * Return a Raster containing the colors generated for the graphics
 * operation.
 * @param x,y,w,h The area in device space for which colors are
 * generated.
 */
public Raster getRaster(int x, int y, int w, int h) {
    if (outRas == null ||
        outRas.getWidth() < w ||
        outRas.getHeight() < h)
    {
        // If h==1, we will probably get lots of "scanline" rects
        outRas = makeRaster((h == 1 ? Math.max(w, maxWidth) : w), h);
    }
    double X = mod(xOrg + x * incXAcross + y * incXDown, bWidth);
    double Y = mod(yOrg + x * incYAcross + y * incYDown, bHeight);

    setRaster((int) X, (int) Y, fractAsInt(X), fractAsInt(Y),
              w, h, bWidth, bHeight,
              colincx, colincxerr,
              colincy, colincyerr,
              rowincx, rowincxerr,
              rowincy, rowincyerr);

    SunWritableRaster.markDirty(outRas);

    return outRas;
}
 
Example 17
Source File: XPStyle.java    From jdk1.8-source-analysis with Apache License 2.0 6 votes vote down vote up
protected void paintToImage(Component c, Image image, Graphics g,
                            int w, int h, Object[] args) {
    boolean accEnabled = false;
    Skin skin = (Skin)args[0];
    Part part = skin.part;
    State state = (State)args[1];
    if (state == null) {
        state = skin.state;
    }
    if (c == null) {
        c = skin.component;
    }
    BufferedImage bi = (BufferedImage)image;

    WritableRaster raster = bi.getRaster();
    DataBufferInt dbi = (DataBufferInt)raster.getDataBuffer();
    // Note that stealData() requires a markDirty() afterwards
    // since we modify the data in it.
    ThemeReader.paintBackground(SunWritableRaster.stealData(dbi, 0),
                                part.getControlName(c), part.getValue(),
                                State.getValue(part, state),
                                0, 0, w, h, w);
    SunWritableRaster.markDirty(dbi);
}
 
Example 18
Source File: CImage.java    From TencentKona-8 with GNU General Public License v2.0 5 votes vote down vote up
private BufferedImage toImage(int srcWidth, int srcHeight, int dstWidth, int dstHeight) {
    final BufferedImage bimg = new BufferedImage(dstWidth, dstHeight, BufferedImage.TYPE_INT_ARGB_PRE);
    final DataBufferInt dbi = (DataBufferInt)bimg.getRaster().getDataBuffer();
    final int[] buffer = SunWritableRaster.stealData(dbi, 0);
    execute(ptr->nativeCopyNSImageIntoArray(ptr, buffer, srcWidth, srcHeight, dstWidth, dstHeight));
    SunWritableRaster.markDirty(dbi);
    return bimg;
}
 
Example 19
Source File: CImage.java    From openjdk-8-source with GNU General Public License v2.0 5 votes vote down vote up
/** @return A BufferedImage created from nsImagePtr, or null. */
public BufferedImage toImage() {
    if (ptr == 0) return null;

    final Dimension2D size = nativeGetNSImageSize(ptr);
    final int w = (int)size.getWidth();
    final int h = (int)size.getHeight();

    final BufferedImage bimg = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB_PRE);
    final DataBufferInt dbi = (DataBufferInt)bimg.getRaster().getDataBuffer();
    final int[] buffer = SunWritableRaster.stealData(dbi, 0);
    nativeCopyNSImageIntoArray(ptr, buffer, w, h);
    SunWritableRaster.markDirty(dbi);
    return bimg;
}
 
Example 20
Source File: CImage.java    From jdk8u_jdk with GNU General Public License v2.0 5 votes vote down vote up
private BufferedImage toImage(int dstWidth, int dstHeight) {
    final BufferedImage bimg = new BufferedImage(dstWidth, dstHeight, BufferedImage.TYPE_INT_ARGB_PRE);
    final DataBufferInt dbi = (DataBufferInt)bimg.getRaster().getDataBuffer();
    final int[] buffer = SunWritableRaster.stealData(dbi, 0);
    nativeCopyNSImageIntoArray(ptr, buffer, dstWidth, dstHeight);
    SunWritableRaster.markDirty(dbi);
    return bimg;
}