aboutsummaryrefslogtreecommitdiffstats
path: root/src/jogl/classes/jogamp/opengl/util/pngj/PngIDatChunkOutputStream.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/jogl/classes/jogamp/opengl/util/pngj/PngIDatChunkOutputStream.java')
-rw-r--r--src/jogl/classes/jogamp/opengl/util/pngj/PngIDatChunkOutputStream.java31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/jogl/classes/jogamp/opengl/util/pngj/PngIDatChunkOutputStream.java b/src/jogl/classes/jogamp/opengl/util/pngj/PngIDatChunkOutputStream.java
new file mode 100644
index 000000000..8b9fa5dae
--- /dev/null
+++ b/src/jogl/classes/jogamp/opengl/util/pngj/PngIDatChunkOutputStream.java
@@ -0,0 +1,31 @@
+package jogamp.opengl.util.pngj;
+
+import java.io.OutputStream;
+
+import jogamp.opengl.util.pngj.chunks.ChunkHelper;
+import jogamp.opengl.util.pngj.chunks.ChunkRaw;
+
+
+/**
+ * outputs the stream for IDAT chunk , fragmented at fixed size (16384 default).
+ */
+class PngIDatChunkOutputStream extends ProgressiveOutputStream {
+ private static final int SIZE_DEFAULT = 16384;
+ private final OutputStream outputStream;
+
+ PngIDatChunkOutputStream(OutputStream outputStream) {
+ this(outputStream, SIZE_DEFAULT);
+ }
+
+ PngIDatChunkOutputStream(OutputStream outputStream, int size) {
+ super(size);
+ this.outputStream = outputStream;
+ }
+
+ @Override
+ public final void flushBuffer(byte[] b, int len) {
+ ChunkRaw c = new ChunkRaw(len, ChunkHelper.b_IDAT, false);
+ c.data = b;
+ c.writeChunk(outputStream);
+ }
+}