for (int i = 0; i < offsets.length; i++) { final int offset = offsets[i]; Arrays.fill(data.getData(i), offset, offset + size, n);
break; case DataBuffer.TYPE_FLOAT: rowDataFloat = ((DataBufferFloat) rowRaster.getDataBuffer()).getData(); break; default:
float[] rowDataFloat = ((DataBufferFloat) tileRowRaster.getDataBuffer()).getData(band);
/** * Create an appropriate iterator to read and write in a raster sub area. * * @param raster raster which is followed by read-only iterator. * @param writableRaster raster which is followed by this write-only iterator and wherein value is writing. * @param subArea Rectangle which represent raster sub area, wherein move read and write iterator. * @throws IllegalArgumentException if raster and writable raster dimensions are not conform. */ public DefaultWritableDirectFloatIterator(final Raster raster, final WritableRaster writableRaster, final Rectangle subArea) { super(raster, subArea); checkRasters(raster, writableRaster, subArea); this.currentWritableRaster = writableRaster; this.currentWritableDataArray = ((DataBufferFloat) writableRaster.getDataBuffer()).getData(); }
/** * {@inheritDoc }. */ @Override protected void updateCurrentRaster(int tileX, int tileY) { super.updateCurrentRaster(tileX, tileY); this.currentDataArray = ((DataBufferFloat)currentRaster.getDataBuffer()).getData(); }
/** * {@inheritDoc }. */ @Override protected void updateCurrentRaster(final int tileX, final int tileY){ super.updateCurrentRaster(tileX, tileY); this.currentDataArray = ((DataBufferFloat)currentRaster.getDataBuffer()).getData(); }
/** * Create Byte type raster iterator to follow from minX, minY raster and rectangle intersection coordinate. * * @param raster will be followed by this iterator. * @param subArea {@code Rectangle} which define read iterator area. * @throws IllegalArgumentException if subArea don't intersect raster boundary. */ DefaultDirectFloatIterator(final Raster raster, final Rectangle subArea) { super(raster, subArea); final DataBuffer databuf = raster.getDataBuffer(); assert (databuf.getDataType() == DataBuffer.TYPE_FLOAT) : "raster data or not Byte type: " + databuf; this.currentDataArray = ((DataBufferFloat) databuf).getData(); }
/** * Update current writable raster from tiles array coordinates. */ @Override protected void updateCurrentRaster(int tileX, int tileY) { super.updateCurrentRaster(tileX, tileY); if (currentWritableDataArray != null) writableRenderedImage.releaseWritableTile(prectX, prectY); currentWritableDataArray = ((DataBufferFloat) writableRenderedImage.getWritableTile(tileX, tileY).getDataBuffer()).getData(); this.prectX = tileX; this.prectY = tileY; }
/** * Sets all values in the specified bank to the specified value. * * @param buffer The databuffer in which to set all sample values. * @param bank Index of the bank to set. * @param value The value. */ private static void fill(final DataBuffer buffer, final int bank, final int value) { switch (buffer.getDataType()) { case DataBuffer.TYPE_BYTE : Arrays.fill(((DataBufferByte) buffer).getData(bank), (byte)value); break; case DataBuffer.TYPE_SHORT: Arrays.fill(((DataBufferShort) buffer).getData(bank), (short)value); break; case DataBuffer.TYPE_USHORT: Arrays.fill(((DataBufferUShort)buffer).getData(bank), (short)value); break; case DataBuffer.TYPE_INT: Arrays.fill(((DataBufferInt) buffer).getData(bank), (int)value); break; case DataBuffer.TYPE_FLOAT: Arrays.fill(((DataBufferFloat) buffer).getData(bank), (float)value); break; case DataBuffer.TYPE_DOUBLE: Arrays.fill(((DataBufferDouble)buffer).getData(bank),(double)value); break; default: throw new RasterFormatException(String.valueOf(buffer)); } }
/** * Sets all values in the specified bank to the specified value. * * @param buffer The databuffer in which to set all sample values. * @param bank Index of the bank to set. * @param value The value. */ private static void fill(final DataBuffer buffer, final int bank, final int value) { switch (buffer.getDataType()) { case TYPE_BYTE : Arrays.fill(((DataBufferByte) buffer).getData(bank), (byte) value); break; case TYPE_SHORT: Arrays.fill(((DataBufferShort) buffer).getData(bank), (short) value); break; case TYPE_USHORT: Arrays.fill(((DataBufferUShort) buffer).getData(bank), (short) value); break; case TYPE_INT: Arrays.fill(((DataBufferInt) buffer).getData(bank), value); break; case TYPE_FLOAT: Arrays.fill(((DataBufferFloat) buffer).getData(bank), (float) value); break; case TYPE_DOUBLE: Arrays.fill(((DataBufferDouble) buffer).getData(bank), (double) value); break; default: throw new RasterFormatException(String.valueOf(buffer)); } }
/** * {@inheritDoc }. */ @Override protected void updateCurrentRaster(int tileX, int tileY) { super.updateCurrentRaster(tileX, tileY); if (currentWritableRaster != null) writableRenderedImage.releaseWritableTile(prectX, prectY); this.currentWritableRaster = writableRenderedImage.getWritableTile(tileX, tileY); this.currentWritableRaster = writableRenderedImage.getWritableTile(tileX, tileY); this.currentWritableDataArray = ((DataBufferFloat) currentWritableRaster.getDataBuffer()).getData(); this.prectX = tileX; this.prectY = tileY; }
public static Object getPrimitiveArray(DataBuffer dataBuffer) { switch (dataBuffer.getDataType()) { case DataBuffer.TYPE_BYTE: return ((DataBufferByte) dataBuffer).getData(); case DataBuffer.TYPE_SHORT: return ((DataBufferShort) dataBuffer).getData(); case DataBuffer.TYPE_USHORT: return ((DataBufferUShort) dataBuffer).getData(); case DataBuffer.TYPE_INT: return ((DataBufferInt) dataBuffer).getData(); case DataBuffer.TYPE_FLOAT: return ((DataBufferFloat) dataBuffer).getData(); case DataBuffer.TYPE_DOUBLE: return ((DataBufferDouble) dataBuffer).getData(); default: throw new IllegalArgumentException("dataBuffer"); } }
private Buffer wrapImageDataBuffer(final BufferedImage image) { // // Note: Grabbing the DataBuffer will defeat Java2D's image // management mechanism (as of JDK 5/6, at least). This shouldn't // be a problem for most JOGL apps, but those that try to upload // the image into an OpenGL texture and then use the same image in // Java2D rendering might find the 2D rendering is not as fast as // it could be. // final DataBuffer data = image.getRaster().getDataBuffer(); if (data instanceof DataBufferByte) { return ByteBuffer.wrap(((DataBufferByte) data).getData()); } else if (data instanceof DataBufferDouble) { throw new RuntimeException("DataBufferDouble rasters not supported by OpenGL"); } else if (data instanceof DataBufferFloat) { return FloatBuffer.wrap(((DataBufferFloat) data).getData()); } else if (data instanceof DataBufferInt) { return IntBuffer.wrap(((DataBufferInt) data).getData()); } else if (data instanceof DataBufferShort) { return ShortBuffer.wrap(((DataBufferShort) data).getData()); } else if (data instanceof DataBufferUShort) { return ShortBuffer.wrap(((DataBufferUShort) data).getData()); } else { throw new RuntimeException("Unexpected DataBuffer type?"); } } }
/** * @inheritDoc */ @Override public void setSamples(int x, int y, int w, int h, int b, float array[], DataBuffer data) { checkBounds(x, y, w, h); if (dataType == DataBuffer.TYPE_FLOAT) { setSamplesFast(x, y, w, h, array, ((DataBufferFloat) data).getData(), data.getOffset()); } else { super.setSamples(x, y, w, h, b, array, data); } }
arrayObject = ((DataBufferInt) dataBuffer).getData(); } else if (dataBuffer instanceof DataBufferFloat) { arrayObject = ((DataBufferFloat) dataBuffer).getData(); } else if (dataBuffer instanceof DataBufferDouble) { arrayObject = ((DataBufferDouble) dataBuffer).getData();
/** * @inheritDoc */ @Override public float[] getSamples(int x, int y, int w, int h, int b, float array[], DataBuffer data) { checkBounds(x, y, w, h); if (array == null) { array = new float[w * h]; } if (dataType == DataBuffer.TYPE_FLOAT) { getSamplesFast(x, y, w, h, array, ((DataBufferFloat) data).getData(), data.getOffset()); } else { super.getSamples(x, y, w, h, b, array, data); } return array; }
float[] values = dataBufferFloat.getData();
this.type = GL2.GL_DOUBLE; } else if (buffer instanceof DataBufferFloat) { this.buffer = FloatBuffer.wrap(((DataBufferFloat)buffer).getData()); this.type = GL2.GL_FLOAT; } else if (buffer instanceof DataBufferInt) {
flipCopyWithGamma((DoubleBuffer)in, frame.imageStride, DoubleBuffer.wrap(a, start, a.length - start), step, gamma, false, flipChannels ? channels : 0); } else if (out instanceof DataBufferFloat) { float[] a = ((DataBufferFloat)out).getData(); flipCopyWithGamma((FloatBuffer)in, frame.imageStride, FloatBuffer.wrap(a, start, a.length - start), step, gamma, false, flipChannels ? channels : 0); } else if (out instanceof DataBufferInt) {
static void writeTile(ImageOutputStream stream, Raster tile) throws IOException { if (tile.getSampleModel().getNumDataElements() != tile.getDataBuffer().getSize()) { // todo - log error throw new IllegalStateException(); } DataBuffer dataBuffer = tile.getDataBuffer(); if (dataBuffer instanceof DataBufferByte) { byte[] data = ((DataBufferByte) dataBuffer).getData(); stream.write(data, dataBuffer.getOffset(), dataBuffer.getSize()); } else if (dataBuffer instanceof DataBufferShort) { short[] data = ((DataBufferShort) dataBuffer).getData(); stream.writeShorts(data, dataBuffer.getOffset(), dataBuffer.getSize()); } else if (dataBuffer instanceof DataBufferInt) { int[] data = ((DataBufferInt) dataBuffer).getData(); stream.writeInts(data, dataBuffer.getOffset(), dataBuffer.getSize()); } else if (dataBuffer instanceof DataBufferFloat) { float[] data = ((DataBufferFloat) dataBuffer).getData(); stream.writeFloats(data, dataBuffer.getOffset(), dataBuffer.getSize()); } else if (dataBuffer instanceof DataBufferDouble) { double[] data = ((DataBufferDouble) dataBuffer).getData(); stream.writeDoubles(data, dataBuffer.getOffset(), dataBuffer.getSize()); } else { throw new IllegalStateException(); } }