/******************************************************************************* * Copyright (c) 2016 comtel inc. * * Licensed under the Apache License, version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at: * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the License * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express * or implied. See the License for the specific language governing permissions and limitations under * the License. *******************************************************************************/ package org.jfxvnc.net.rfb.render.rect; import org.jfxvnc.net.rfb.codec.Encoding; import io.netty.buffer.ByteBuf; public class RawImageRect extends ImageRect { protected final ByteBuf pixels; protected final int scanlineStride; public RawImageRect(int x, int y, int width, int height, ByteBuf pixels, int scanlineStride) { super(x, y, width, height); this.pixels = pixels; this.scanlineStride = scanlineStride; } /** * Returns a byte buffer of a pixel data * * @return pixels */ public ByteBuf getPixels() { return pixels; } /** * Returns the distance between the pixel data for the start of one row of data in the buffer to * the start of the next row of data. * * @return scanlineStride */ public int getScanlineStride() { return scanlineStride; } @Override public Encoding getEncoding() { return Encoding.RAW; } @Override public boolean release() { return pixels != null ? pixels.release() : true; } @Override public String toString() { return "RawImageRect [x=" + x + ", y=" + y + ", width=" + width + ", height=" + height + ", pixels.capacity=" + (pixels != null ? pixels.capacity() : "null") + ", scanlineStride=" + scanlineStride + "]"; } }