diff options
| author | Sascha Brawer <brawer@dandelis.ch> | 2004-04-15 07:44:08 +0000 |
|---|---|---|
| committer | Sascha Brawer <brawer@dandelis.ch> | 2004-04-15 07:44:08 +0000 |
| commit | 5293b523d7ca29ff0ea11776d96cf14d579efbd7 (patch) | |
| tree | 3e4ca28daedef82d71ce0adf6e61991726ee0ca5 /gnu/java/awt/Buffers.java | |
| parent | fda91dd2ebaccb5c4db9d0d7285ad05d743b1715 (diff) | |
| download | classpath-5293b523d7ca29ff0ea11776d96cf14d579efbd7.tar.gz | |
Support for TYPE_SHORT, TYPE_FLOAT and TYPE_DOUBLE image data buffers.
Diffstat (limited to 'gnu/java/awt/Buffers.java')
| -rw-r--r-- | gnu/java/awt/Buffers.java | 41 |
1 files changed, 40 insertions, 1 deletions
diff --git a/gnu/java/awt/Buffers.java b/gnu/java/awt/Buffers.java index 24fe2cef2..3f254749e 100644 --- a/gnu/java/awt/Buffers.java +++ b/gnu/java/awt/Buffers.java @@ -1,4 +1,4 @@ -/* Copyright (C) 2000, 2002 Free Software Foundation +/* Copyright (C) 2000, 2002, 2004 Free Software Foundation This file is part of GNU Classpath. @@ -83,10 +83,16 @@ public final class Buffers { case DataBuffer.TYPE_BYTE: return new DataBufferByte(size, numBanks); + case DataBuffer.TYPE_SHORT: + return new DataBufferShort(size, numBanks); case DataBuffer.TYPE_USHORT: return new DataBufferUShort(size, numBanks); case DataBuffer.TYPE_INT: return new DataBufferInt(size, numBanks); + case DataBuffer.TYPE_FLOAT: + return new DataBufferFloat(size, numBanks); + case DataBuffer.TYPE_DOUBLE: + return new DataBufferDouble(size, numBanks); default: throw new UnsupportedOperationException(); } @@ -106,10 +112,16 @@ public final class Buffers { case DataBuffer.TYPE_BYTE: return new DataBufferByte((byte[]) data, size); + case DataBuffer.TYPE_SHORT: + return new DataBufferShort((short[]) data, size); case DataBuffer.TYPE_USHORT: return new DataBufferUShort((short[]) data, size); case DataBuffer.TYPE_INT: return new DataBufferInt((int[]) data, size); + case DataBuffer.TYPE_FLOAT: + return new DataBufferFloat((float[]) data, size); + case DataBuffer.TYPE_DOUBLE: + return new DataBufferDouble((double[]) data, size); default: throw new UnsupportedOperationException(); } @@ -126,10 +138,22 @@ public final class Buffers { if (buffer instanceof DataBufferByte) return ((DataBufferByte) buffer).getData(); + + if (buffer instanceof DataBufferShort) + return ((DataBufferShort) buffer).getData(); + if (buffer instanceof DataBufferUShort) return ((DataBufferUShort) buffer).getData(); + if (buffer instanceof DataBufferInt) return ((DataBufferInt) buffer).getData(); + + if (buffer instanceof DataBufferFloat) + return ((DataBufferFloat) buffer).getData(); + + if (buffer instanceof DataBufferDouble) + return ((DataBufferDouble) buffer).getData(); + throw new ClassCastException("Unknown data buffer type"); } @@ -149,6 +173,11 @@ public final class Buffers from = ((DataBufferByte) src).getData(); if (dest == null) dest = new byte[length+destOffset]; } + else if (src instanceof DataBufferShort) + { + from = ((DataBufferShort) src).getData(); + if (dest == null) dest = new short[length+destOffset]; + } else if (src instanceof DataBufferUShort) { from = ((DataBufferUShort) src).getData(); @@ -159,6 +188,16 @@ public final class Buffers from = ((DataBufferInt) src).getData(); if (dest == null) dest = new int[length+destOffset]; } + else if (src instanceof DataBufferFloat) + { + from = ((DataBufferFloat) src).getData(); + if (dest == null) dest = new float[length+destOffset]; + } + else if (src instanceof DataBufferDouble) + { + from = ((DataBufferDouble) src).getData(); + if (dest == null) dest = new double[length+destOffset]; + } else { throw new ClassCastException("Unknown data buffer type"); |
