aboutsummaryrefslogtreecommitdiffstats
path: root/gl4java/jau/awt/macintosh/MacHandleAccess.java
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2000-11-18 06:43:49 +0000
committerSven Gothel <[email protected]>2000-11-18 06:43:49 +0000
commit880653d31a8f1ff8384fdbc75b84934bceecfdb8 (patch)
treebdafb71416f176d2a4b73bf716c9dc3f13685a8b /gl4java/jau/awt/macintosh/MacHandleAccess.java
Initial revision
Diffstat (limited to 'gl4java/jau/awt/macintosh/MacHandleAccess.java')
-rw-r--r--gl4java/jau/awt/macintosh/MacHandleAccess.java89
1 files changed, 89 insertions, 0 deletions
diff --git a/gl4java/jau/awt/macintosh/MacHandleAccess.java b/gl4java/jau/awt/macintosh/MacHandleAccess.java
new file mode 100644
index 0000000..db1c3ef
--- /dev/null
+++ b/gl4java/jau/awt/macintosh/MacHandleAccess.java
@@ -0,0 +1,89 @@
+/*
+ * @(#) MacHandleAccess.java
+ */
+
+package gl4java.jau.awt.macintosh;
+
+import sun.awt.DrawingSurface;
+import sun.awt.DrawingSurfaceInfo;
+import sun.awt.MacDrawingSurface;
+
+import java.awt.*;
+
+/**
+ * This class has no user servicable parts inside. It is
+ * used internally by GLFrame and by our package spoofed
+ * sun.awt classes that give us internal access to window
+ * variables that we need to set up the OpenGL drawing
+ * context
+ *
+ *
+ * @see WinHandleAccess
+ * @version 0.1, 7. JULY 1998
+ * @author Sven Goethel
+ * @author ported to Mac by gerard ziemski
+ *
+ */
+public class MacHandleAccess implements gl4java.jau.awt.WinHandleAccess
+{
+ protected DrawingSurface ds;
+ protected DrawingSurfaceInfo dsi;
+ protected MacDrawingSurface mds;
+ protected int window,
+ depth;
+
+
+ protected void achieveData(java.awt.Component c, java.awt.Graphics g)
+ {
+ /* outta java3d */
+ dsi = null;
+ mds = null;
+ window = 0;
+ depth = 0;
+
+ ds = ((DrawingSurface)c.getPeer());
+ dsi = ds.getDrawingSurfaceInfo();
+
+ if (dsi != null)
+ {
+ dsi.lock();
+ mds = (MacDrawingSurface)dsi.getSurface();
+ dsi.unlock();
+ }
+
+ if (mds != null)
+ {
+ dsi.lock();
+
+ window = mds.getPort();
+ depth = c.getColorModel().getPixelSize();
+
+ dsi.unlock();
+ }
+
+ if (mds == null)
+ {
+ System.out.println("MacHandleAccess:getWinHandle failed");
+ }
+ }
+
+/**
+ *
+ * gets some structure for windows, and drawable on Mac
+ */
+ public int getWinHandle(java.awt.Component c, java.awt.Graphics g)
+ {
+ achieveData(c, g);
+ return window;
+ }
+
+/**
+ *
+ * gets some structure for windows, and drawable on Mac
+ */
+ public int getWinDepth(java.awt.Component c, java.awt.Graphics g)
+ {
+ achieveData(c, g);
+ return depth;
+ }
+}