01: /*
02: *
03: * Copyright (c) 2000-2001 Silvere Martin-Michiellot All Rights Reserved.
04: *
05: * Silvere Martin-Michiellot grants you ("Licensee") a non-exclusive,
06: * royalty free, license to use, modify but not to redistribute this
07: * software in source and binary code form,
08: * provided that i) this copyright notice and license appear on all copies of
09: * the software; and ii) Licensee does not utilize the software in a manner
10: * which is disparaging to Silvere Martin-Michiellot.
11: *
12: * This software is provided "AS IS," without a warranty of any kind. ALL
13: * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY
14: * IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
15: * NON-INFRINGEMENT, ARE HEREBY EXCLUDED. Silvere Martin-Michiellot
16: * AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES
17: * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING
18: * OR DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL
19: * Silvere Martin-Michiellot OR ITS LICENSORS BE LIABLE
20: * FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT,
21: * INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER
22: * CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF
23: * OR INABILITY TO USE SOFTWARE, EVEN IF Silvere Martin-Michiellot HAS BEEN
24: * ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
25: *
26: * This software is not designed or intended for use in on-line control of
27: * aircraft, air traffic, aircraft navigation or aircraft communications; or in
28: * the design, construction, operation or maintenance of any nuclear
29: * facility. Licensee represents and warrants that it will not use or
30: * redistribute the Software for such purposes.
31: *
32: * @Author: Silvere Martin-Michiellot
33: *
34: */
35:
36: package com.db.version;
37:
38: import java.util.Map;
39: import javax.media.j3d.*;
40: import java.awt.GraphicsEnvironment;
41: import java.awt.GraphicsConfiguration;
42: import com.sun.j3d.utils.universe.*;
43:
44: //before using this class, please use QueryJava3D to be sure that Java3D is installed on the system
45: //This class is useful to query runtime Java3D properties. If you want to query properties that change the behavior of Java3D itself, please use Java3DProperties.
46: public class QueryJava3DProperties {
47:
48: public QueryJava3DProperties() {
49: }
50:
51: public Map getJava3DPackageProperties() {
52:
53: VirtualUniverse vu = new VirtualUniverse();
54: return vu.getProperties();
55:
56: }
57:
58: public Map getCanvas3DProperties() {
59:
60: GraphicsConfigTemplate3D template = new GraphicsConfigTemplate3D();
61:
62: /* We need to set this to force choosing a pixel format
63: that support the canvas.
64: */
65: template.setStereo(template.PREFERRED);
66: template.setSceneAntialiasing(template.PREFERRED);
67:
68: GraphicsConfiguration config = GraphicsEnvironment
69: .getLocalGraphicsEnvironment().getDefaultScreenDevice()
70: .getBestConfiguration(template);
71:
72: return new Canvas3D(config).queryProperties();
73:
74: }
75:
76: //may be we could include a method to access ConfigContainer in case the Universe used is com.sun.j3d.utils.universe.ConfiguredUniverse
77:
78: //returns true if the renderer is DirectX and otherwise false (OpenGL renderer)
79: public boolean isDirectXRendered() {
80:
81: VirtualUniverse vu = new VirtualUniverse();
82: Map vuMap = vu.getProperties();
83: return new String((String) vuMap.get("j3d.renderer"))
84: .equals("DirectX");
85:
86: }
87:
88: }
|