From: Miguel <mig...@us...> - 2005-09-16 18:10:20
|
Update of /cvsroot/jmol/Jmol/src/org/jmol/g3d In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10364/src/org/jmol/g3d Modified Files: Graphics3D.java Log Message: initial stereo redgreen support Index: Graphics3D.java =================================================================== RCS file: /cvsroot/jmol/Jmol/src/org/jmol/g3d/Graphics3D.java,v retrieving revision 1.89 retrieving revision 1.90 diff -u -r1.89 -r1.90 --- Graphics3D.java 12 Sep 2005 01:51:42 -0000 1.89 +++ Graphics3D.java 16 Sep 2005 18:10:12 -0000 1.90 @@ -66,7 +66,7 @@ boolean antialiasThisFrame; boolean inGreyscaleMode; - byte[] blueChannelBytes; + byte[] anaglyphChannelBytes; boolean tPaintingInProgress; @@ -724,24 +724,27 @@ } } - public void snapshotBlueChannelBytes() { + public void snapshotAnaglyphChannelBytes() { if (currentlyRendering) throw new NullPointerException(); - if (blueChannelBytes == null || blueChannelBytes.length != pbuf.length) - blueChannelBytes = new byte[pbuf.length]; + if (anaglyphChannelBytes == null || + anaglyphChannelBytes.length != pbuf.length) + anaglyphChannelBytes = new byte[pbuf.length]; for (int i = pbuf.length; --i >= 0; ) - blueChannelBytes[i] = (byte)pbuf[i]; + anaglyphChannelBytes[i] = (byte)pbuf[i]; } - public void applyBlueAnaglyph() { + public void applyBlueOrGreenAnaglyph(boolean blueChannel) { + int shiftCount = blueChannel ? 0 : 8; for (int i = pbuf.length; --i >= 0; ) - pbuf[i] = pbuf[i] & 0xFFFF0000 | (blueChannelBytes[i] & 0x000000FF); + pbuf[i] = ((pbuf[i] & 0xFFFF0000) | + ((anaglyphChannelBytes[i] & 0x000000FF) << shiftCount)); } public void applyCyanAnaglyph() { for (int i = pbuf.length; --i >= 0; ) { - int blue = blueChannelBytes[i] & 0x000000FF; - int cyan = (blue << 8) | blue; + int blueAndGreen = anaglyphChannelBytes[i] & 0x000000FF; + int cyan = (blueAndGreen << 8) | blueAndGreen; pbuf[i] = pbuf[i] & 0xFFFF0000 | cyan; } } |