aboutsummaryrefslogtreecommitdiffstats
path: root/src/javax/media/j3d/J3DBuffer.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/javax/media/j3d/J3DBuffer.java')
-rw-r--r--src/javax/media/j3d/J3DBuffer.java220
1 files changed, 0 insertions, 220 deletions
diff --git a/src/javax/media/j3d/J3DBuffer.java b/src/javax/media/j3d/J3DBuffer.java
deleted file mode 100644
index 2cacf8a..0000000
--- a/src/javax/media/j3d/J3DBuffer.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*
- * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- *
- */
-
-package javax.media.j3d;
-
-import java.nio.Buffer;
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
-import java.nio.CharBuffer;
-import java.nio.DoubleBuffer;
-import java.nio.FloatBuffer;
-import java.nio.IntBuffer;
-import java.nio.LongBuffer;
-import java.nio.ShortBuffer;
-
-/**
- * Java 3D wrapper class for java.nio.Buffer objects.
- * When used to wrap a non-null NIO buffer object, this class will
- * create a read-only view of the wrapped NIO buffer, and will call
- * <code>rewind</code> on the read-only view, so that elements 0
- * through <code>buffer.limit()-1</code> will be available internally.
- *
- * @see GeometryArray#setCoordRefBuffer(J3DBuffer)
- * @see GeometryArray#setColorRefBuffer(J3DBuffer)
- * @see GeometryArray#setNormalRefBuffer(J3DBuffer)
- * @see GeometryArray#setTexCoordRefBuffer(int,J3DBuffer)
- * @see GeometryArray#setVertexAttrRefBuffer(int,J3DBuffer)
- * @see GeometryArray#setInterleavedVertexBuffer(J3DBuffer)
- * @see CompressedGeometry#CompressedGeometry(CompressedGeometryHeader,J3DBuffer)
- *
- * @since Java 3D 1.3
- */
-
-public class J3DBuffer {
-
-enum Type {
- NULL,
- UNKNOWN,
- BYTE,
- CHAR,
- SHORT,
- INT,
- LONG,
- FLOAT,
- DOUBLE,
-}
-
- private Buffer originalBuffer = null;
- private Buffer readonlyBuffer = null;
- Type bufferType = Type.NULL;
-
- /**
- * Constructs a J3DBuffer object and initializes it with
- * a null NIO buffer object. The NIO buffer object
- * must be set to a non-null value before using this J3DBuffer
- * object in a Java 3D node component.
- *
- * @exception UnsupportedOperationException if the JVM does not
- * support native access to direct NIO buffers
- */
- public J3DBuffer() {
- this(null);
- }
-
-
- /**
- * Constructs a J3DBuffer object and initializes it with
- * the specified NIO buffer object.
- *
- * @param buffer the NIO buffer wrapped by this J3DBuffer
- *
- * @exception UnsupportedOperationException if the JVM does not
- * support native access to direct NIO buffers
- *
- * @exception IllegalArgumentException if the specified buffer is
- * not a direct buffer, or if the byte order of the specified
- * buffer does not match the native byte order of the underlying
- * platform.
- */
- public J3DBuffer(Buffer buffer) {
- setBuffer(buffer);
- }
-
-
- /**
- * Sets the NIO buffer object in this J3DBuffer to
- * the specified object.
- *
- * @param buffer the NIO buffer wrapped by this J3DBuffer
- *
- * @exception IllegalArgumentException if the specified buffer is
- * not a direct buffer, or if the byte order of the specified
- * buffer does not match the native byte order of the underlying
- * platform.
- */
- public void setBuffer(Buffer buffer) {
- Type bType = Type.NULL;
- boolean direct = false;
- ByteOrder order = ByteOrder.BIG_ENDIAN;
-
- if (buffer == null) {
- bType = Type.NULL;
- }
- else if (buffer instanceof ByteBuffer) {
- bType = Type.BYTE;
- direct = ((ByteBuffer)buffer).isDirect();
- order = ((ByteBuffer)buffer).order();
- }
- else if (buffer instanceof CharBuffer) {
- bType = Type.CHAR;
- direct = ((CharBuffer)buffer).isDirect();
- order = ((CharBuffer)buffer).order();
- }
- else if (buffer instanceof ShortBuffer) {
- bType = Type.SHORT;
- direct = ((ShortBuffer)buffer).isDirect();
- order = ((ShortBuffer)buffer).order();
- }
- else if (buffer instanceof IntBuffer) {
- bType = Type.INT;
- direct = ((IntBuffer)buffer).isDirect();
- order = ((IntBuffer)buffer).order();
- }
- else if (buffer instanceof LongBuffer) {
- bType = Type.LONG;
- direct = ((LongBuffer)buffer).isDirect();
- order = ((LongBuffer)buffer).order();
- }
- else if (buffer instanceof FloatBuffer) {
- bType = Type.FLOAT;
- direct = ((FloatBuffer)buffer).isDirect();
- order = ((FloatBuffer)buffer).order();
- }
- else if (buffer instanceof DoubleBuffer) {
- bType = Type.DOUBLE;
- direct = ((DoubleBuffer)buffer).isDirect();
- order = ((DoubleBuffer)buffer).order();
- }
- else {
- bType = Type.UNKNOWN;
- }
-
- // Verify that the buffer is direct and has the correct byte order
- if (buffer != null) {
- if (!direct) {
- throw new IllegalArgumentException(J3dI18N.getString("J3DBuffer1"));
- }
-
- if (order != ByteOrder.nativeOrder()) {
- throw new IllegalArgumentException(J3dI18N.getString("J3DBuffer2"));
- }
- }
-
- bufferType = bType;
- originalBuffer = buffer;
-
- // Make a read-only view of the buffer if the type is one
- // of the internally supported types: byte, float, or double
- switch (bufferType) {
- case BYTE:
- ByteBuffer byteBuffer = ((ByteBuffer)buffer).asReadOnlyBuffer();
- byteBuffer.rewind();
- readonlyBuffer = byteBuffer;
- break;
- case FLOAT:
- FloatBuffer floatBuffer = ((FloatBuffer)buffer).asReadOnlyBuffer();
- floatBuffer.rewind();
- readonlyBuffer = floatBuffer;
- break;
- case DOUBLE:
- DoubleBuffer doubleBuffer = ((DoubleBuffer)buffer).asReadOnlyBuffer();
- doubleBuffer.rewind();
- readonlyBuffer = doubleBuffer;
- break;
- default:
- readonlyBuffer = null;
- }
- }
-
-
- /**
- * Retrieves the NIO buffer object from this J3DBuffer.
- *
- * @return the current NIO buffer wrapped by this J3DBuffer
- */
- public Buffer getBuffer() {
- return originalBuffer;
- }
-
-/**
- * Gets the readonly view of the nio buffer we wrapped with J3DBuffer
- * @return
- */
-Buffer getROBuffer() {
- return readonlyBuffer;
-}
-}