diff options
author | Julien Gouesse <[email protected]> | 2015-11-19 20:45:53 +0100 |
---|---|---|
committer | Julien Gouesse <[email protected]> | 2015-11-19 20:45:53 +0100 |
commit | a18c3b0789bfc24b49dbaf41c2390159bc683afc (patch) | |
tree | b5236ff2570178de356eab569225108948eb4d30 /src/javax/media/j3d/StructureUpdateThread.java | |
parent | 264608060948a634b53a13ee96ed07527eb07340 (diff) | |
parent | 7a2e20caac9db6f789a7b3fab344b9758af45335 (diff) |
Gets Harvey's changes
Diffstat (limited to 'src/javax/media/j3d/StructureUpdateThread.java')
-rw-r--r-- | src/javax/media/j3d/StructureUpdateThread.java | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/src/javax/media/j3d/StructureUpdateThread.java b/src/javax/media/j3d/StructureUpdateThread.java new file mode 100644 index 0000000..8dbf431 --- /dev/null +++ b/src/javax/media/j3d/StructureUpdateThread.java @@ -0,0 +1,100 @@ +/* + * Copyright 1998-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; + +/** + * The StructureUpdateThread is thread that passes messages to its structure + */ + +class StructureUpdateThread extends J3dThread { + /** + * The structure that this thread works for + */ + J3dStructure structure; + + /** + * Some variables used to name threads correctly + */ + private static int numInstances[] = new int[7]; + private int instanceNum[] = new int[7]; + + private synchronized int newInstanceNum(int idx) { + return (++numInstances[idx]); + } + + int getInstanceNum(int idx) { + if (instanceNum[idx] == 0) + instanceNum[idx] = newInstanceNum(idx); + return instanceNum[idx]; + } + + /** + * Just saves the structure + */ + StructureUpdateThread(ThreadGroup t, J3dStructure s, int threadType) { + super(t); + structure = s; + type = threadType; + classification = J3dThread.UPDATE_THREAD; + + switch (type) { + case J3dThread.UPDATE_GEOMETRY: + setName("J3D-GeometryStructureUpdateThread-" + getInstanceNum(0)); + break; + case J3dThread.UPDATE_RENDER: + setName("J3D-RenderStructureUpdateThread-" + getInstanceNum(1)); + break; + case J3dThread.UPDATE_BEHAVIOR: + setName("J3D-BehaviorStructureUpdateThread-" + getInstanceNum(2)); + break; + case J3dThread.UPDATE_SOUND: + setName("J3D-SoundStructureUpdateThread-" + getInstanceNum(3)); + break; + case J3dThread.UPDATE_RENDERING_ATTRIBUTES: + // Only one exists in Java3D system + setName("J3D-RenderingAttributesStructureUpdateThread"); + break; + case J3dThread.UPDATE_RENDERING_ENVIRONMENT: + setName("J3D-RenderingEnvironmentStructureUpdateThread-"+ + getInstanceNum(4)); + break; + case J3dThread.UPDATE_TRANSFORM: + setName("J3D-TransformStructureUpdateThread-"+ getInstanceNum(5)); + break; + case J3dThread.SOUND_SCHEDULER: + setName("J3D-SoundSchedulerUpdateThread-"+ getInstanceNum(6)); + break; + + } + + } + + @Override + void doWork(long referenceTime) { + structure.processMessages(referenceTime); + } +} |