Revision: 20923 http://sourceforge.net/p/jmol/code/20923 Author: hansonr Date: 2016-01-06 12:26:15 +0000 (Wed, 06 Jan 2016) Log Message: ----------- Jmol.___JmolVersion="14.4.1_2016.01.06"
bug fix: labels, echos, and measurements disappear when z-shaded Modified Paths: -------------- branches/v14_4/Jmol/src/org/jmol/api/JmolRendererInterface.java branches/v14_4/Jmol/src/org/jmol/export/Export3D.java branches/v14_4/Jmol/src/org/jmol/g3d/Graphics3D.java branches/v14_4/Jmol/src/org/jmol/g3d/Pixelator.java branches/v14_4/Jmol/src/org/jmol/g3d/PixelatorT.java branches/v14_4/Jmol/src/org/jmol/g3d/TextRenderer.java branches/v14_4/Jmol/src/org/jmol/render/EchoRenderer.java branches/v14_4/Jmol/src/org/jmol/render/LabelsRenderer.java branches/v14_4/Jmol/src/org/jmol/render/MeasuresRenderer.java branches/v14_4/Jmol/src/org/jmol/shapesurface/IsosurfaceMesh.java branches/v14_4/Jmol/src/org/jmol/viewer/Jmol.properties trunk/Jmol/src/org/jmol/api/JmolRendererInterface.java trunk/Jmol/src/org/jmol/export/Export3D.java trunk/Jmol/src/org/jmol/g3d/Graphics3D.java trunk/Jmol/src/org/jmol/g3d/Pixelator.java trunk/Jmol/src/org/jmol/g3d/PixelatorT.java trunk/Jmol/src/org/jmol/g3d/TextRenderer.java trunk/Jmol/src/org/jmol/render/EchoRenderer.java trunk/Jmol/src/org/jmol/render/LabelsRenderer.java trunk/Jmol/src/org/jmol/render/MeasuresRenderer.java trunk/Jmol/src/org/jmol/shapesurface/IsosurfaceMesh.java trunk/Jmol/src/org/jmol/viewer/Jmol.properties Modified: branches/v14_4/Jmol/src/org/jmol/api/JmolRendererInterface.java =================================================================== --- branches/v14_4/Jmol/src/org/jmol/api/JmolRendererInterface.java 2016-01-05 03:07:48 UTC (rev 20922) +++ branches/v14_4/Jmol/src/org/jmol/api/JmolRendererInterface.java 2016-01-06 12:26:15 UTC (rev 20923) @@ -260,7 +260,7 @@ double privateKey, Map<String, Object> params); - public abstract void plotImagePixel(int argb, int x, int y, int z, int shade, int bgargb, int width, int height, int[] zbuf, Object pixel, int transpLog); + public abstract void plotImagePixel(int argb, int x, int y, int z, byte shade, int bgargb, int width, int height, int[] zbuf, Object pixel, int transpLog); public abstract void plotPixelClippedP3i(P3i a); Modified: branches/v14_4/Jmol/src/org/jmol/export/Export3D.java =================================================================== --- branches/v14_4/Jmol/src/org/jmol/export/Export3D.java 2016-01-05 03:07:48 UTC (rev 20922) +++ branches/v14_4/Jmol/src/org/jmol/export/Export3D.java 2016-01-06 12:26:15 UTC (rev 20923) @@ -789,7 +789,7 @@ } @Override - public void plotImagePixel(int argb, int x, int y, int z, int shade, + public void plotImagePixel(int argb, int x, int y, int z, byte shade, int bgargb, int width, int height, int[] pbuf, Object p, int transpLog) { // from Text3D if (isWebGL) Modified: branches/v14_4/Jmol/src/org/jmol/g3d/Graphics3D.java =================================================================== --- branches/v14_4/Jmol/src/org/jmol/g3d/Graphics3D.java 2016-01-05 03:07:48 UTC (rev 20922) +++ branches/v14_4/Jmol/src/org/jmol/g3d/Graphics3D.java 2016-01-06 12:26:15 UTC (rev 20923) @@ -432,7 +432,7 @@ if (pbuf != null) { if (isPass2 && pbufT != null) for (int offset = pbufT.length; --offset >= 0;) - mergeBufferPixel(pbuf, offset, pbufT[offset], bgcolor); + pbuf[offset] = mergeBufferPixel(pbuf[offset], pbufT[offset], bgcolor); if (pixel == pixelShaded && pixelShaded.zShadePower == 0) pixelShaded.showZBuffer(); @@ -455,13 +455,10 @@ currentlyRendering = isPass2 = false; } - public static void mergeBufferPixel(int[] pbuf, int offset, int argbB, + public static int mergeBufferPixel(int argbA, int argbB, int bgcolor) { - if (argbB == 0) - return; - int argbA = pbuf[offset]; - if (argbA == argbB) - return; + if (argbB == 0 || argbA == argbB) + return argbA; if (argbA == 0) argbA = bgcolor; int rbA = (argbA & 0x00FF00FF); @@ -510,7 +507,7 @@ gA = (((gA << 2) + (gA << 1) + gA + gB) >> 3) & 0x0000FF00; break; } - pbuf[offset] = 0xFF000000 | rbA | gA; + return 0xFF000000 | rbA | gA; } @Override @@ -1193,7 +1190,7 @@ for (int j = 0; j < imageWidth; j++) { int b = buffer[offset++]; if ((b & 0xFF000000) == (0xFF000000 & 0xFF000000)) - jmolRenderer.plotImagePixel(b, x + j, y + i, z, 8, bg, w, + jmolRenderer.plotImagePixel(b, x + j, y + i, z, (byte) 8, bg, w, h, zb, p, t); } } @@ -1608,24 +1605,13 @@ } @Override - public void plotImagePixel(int argb, int x, int y, int z, int shade, + public void plotImagePixel(int argb, int x, int y, int z, byte shade, int bgargb, int width, int height, int[] zbuf, Object p, int transpLog) { // drawString via text3d.plotClipped; overridden in Export if (x < 0 || x >= width || y < 0 || y >= height) return; - int offset = y * width + x; - if (z < zbuf[offset]) { - if (shade == 8) - ((Pixelator) p).addPixel(offset, z, argb); - else { - // shade is a log of translucency, so adding two is equivalent to - // multiplying them. Works like a charm! - BH - shade += transpLog; - if (shade <= 7) - shadeTextPixel(offset, z, argb, bgargb, shade, zbuf); - } - } + ((Pixelator)p).addImagePixel(shade, transpLog, y * width + x, z, argb, bgargb); } void plotPixelsClippedRaster(int count, int x, int y, int zAtLeft, @@ -2046,12 +2032,4 @@ return false; } - void shadeTextPixel(int offset, int z, int argb, int bgargb, int shade, - int[] zbuf) { - if (bgargb != 0) - mergeBufferPixel(pbuf, offset, bgargb, bgcolor); - mergeBufferPixel(pbuf, offset, (argb & 0xFFFFFF) | shade << 24, bgcolor); - zbuf[offset] = z; - } - } Modified: branches/v14_4/Jmol/src/org/jmol/g3d/Pixelator.java =================================================================== --- branches/v14_4/Jmol/src/org/jmol/g3d/Pixelator.java 2016-01-05 03:07:48 UTC (rev 20922) +++ branches/v14_4/Jmol/src/org/jmol/g3d/Pixelator.java 2016-01-06 12:26:15 UTC (rev 20923) @@ -60,4 +60,29 @@ pb[offset] = p; } + public void addImagePixel(byte shade, int tLog, int offset, int z, int argb, + int bgargb) { + if (z < zb[offset]) { + switch (shade) { + case 0: + return; + case 8: + addPixel(offset, z, argb); + return; + default: + // shade is a log of translucency, so adding two is equivalent to + // multiplying them. Works like a charm! - BH + shade += tLog; + if (shade <= 7) { + int p = pb[offset]; + if (bgargb != 0) + p = Graphics3D.mergeBufferPixel(p, bgargb, bgargb); + p = Graphics3D.mergeBufferPixel(p, (argb & 0xFFFFFF) + | (shade << 24), bgargb); + addPixel(offset, z, p); + } + } + } + } + } \ No newline at end of file Modified: branches/v14_4/Jmol/src/org/jmol/g3d/PixelatorT.java =================================================================== --- branches/v14_4/Jmol/src/org/jmol/g3d/PixelatorT.java 2016-01-05 03:07:48 UTC (rev 20922) +++ branches/v14_4/Jmol/src/org/jmol/g3d/PixelatorT.java 2016-01-06 12:26:15 UTC (rev 20923) @@ -54,13 +54,13 @@ // if (zT != Integer.MAX_VALUE) int argb = g.pbufT[offset]; if (!g.translucentCoverOnly && argb != 0 && zT - z > g.zMargin) - Graphics3D.mergeBufferPixel(g.pbuf, offset, argb, g.bgcolor); + pb[offset] = Graphics3D.mergeBufferPixel(pb[offset], argb, g.bgcolor); g.zbufT[offset] = z; g.pbufT[offset] = p & g.translucencyMask; } else if (z == zT) { } else if (!g.translucentCoverOnly && z - zT > g.zMargin) { // oops-out of order - Graphics3D.mergeBufferPixel(g.pbuf, offset, p & g.translucencyMask, g.bgcolor); + pb[offset] = Graphics3D.mergeBufferPixel(pb[offset], p & g.translucencyMask, g.bgcolor); } } } \ No newline at end of file Modified: branches/v14_4/Jmol/src/org/jmol/g3d/TextRenderer.java =================================================================== --- branches/v14_4/Jmol/src/org/jmol/g3d/TextRenderer.java 2016-01-05 03:07:48 UTC (rev 20922) +++ branches/v14_4/Jmol/src/org/jmol/g3d/TextRenderer.java 2016-01-06 12:26:15 UTC (rev 20923) @@ -125,26 +125,11 @@ if (shade != 0) jr.plotImagePixel(argb, x + j, y + i, z, shade, bgargb, width, height, zbuf, p, tLog); } - } - + } } else { - int pbufOffset = y * width + x; - for (int i = 0, off = 0; i < textHeight; i++) { - for (int j = 0; j < textWidth; j++) { - byte shade = tmap[off++]; - if (shade != 0 && z < zbuf[pbufOffset]) { - if (shade == 8) { - p.addPixel(pbufOffset, z, argb); - } else { - shade += tLog; - if (shade <= 7) - g3d.shadeTextPixel(pbufOffset, z, argb, bgargb, shade, zbuf); - } - } - pbufOffset++; - } - pbufOffset += (width - textWidth); - } + for (int i = 0, off = 0, pbufOffset = y * width + x; i < textHeight; i++, pbufOffset += (width - textWidth)) + for (int j = 0; j < textWidth; j++) + p.addImagePixel(tmap[off++], tLog, pbufOffset++, z, argb, bgargb); } return text3d.width; } Modified: branches/v14_4/Jmol/src/org/jmol/render/EchoRenderer.java =================================================================== --- branches/v14_4/Jmol/src/org/jmol/render/EchoRenderer.java 2016-01-05 03:07:48 UTC (rev 20922) +++ branches/v14_4/Jmol/src/org/jmol/render/EchoRenderer.java 2016-01-06 12:26:15 UTC (rev 20923) @@ -42,7 +42,6 @@ .getScalePixelsPerAngstrom(true) * 10000 : 0); imageFontScaling = vwr.imageFontScaling; boolean haveTranslucent = false; - setZcutoff(); for (Text t : echo.objects.values()) { if (!t.visible || t.hidden) { continue; @@ -61,8 +60,6 @@ z = pt0i.z - vwr.tm.zValueFromPercent(0) + z; t.setZs(z, z); } - if (t.zSlab >= zCutoff) - continue; if (t.pointerPt == null) { t.pointer = JC.LABEL_POINTER_NONE; } else { Modified: branches/v14_4/Jmol/src/org/jmol/render/LabelsRenderer.java =================================================================== --- branches/v14_4/Jmol/src/org/jmol/render/LabelsRenderer.java 2016-01-05 03:07:48 UTC (rev 20922) +++ branches/v14_4/Jmol/src/org/jmol/render/LabelsRenderer.java 2016-01-06 12:26:15 UTC (rev 20923) @@ -69,8 +69,6 @@ protected int zSlab = Integer.MIN_VALUE; - protected int zCutoff; - private int zBox; private float[] boxXY; @@ -87,7 +85,6 @@ int[] offsets = labels.offsets; if (labelStrings == null) return false; - setZcutoff(); Atom[] atoms = ms.at; short backgroundColixContrast = vwr.cm.colixBackgroundContrast; int backgroundColor = vwr.getBackgroundArgb(); @@ -119,8 +116,6 @@ isAbsolute = JC.isOffsetAbsolute(offset); pointer = JC.getPointer(offset); zSlab = atom.sZ - atom.sD / 2 - 3; - if (zSlab > zCutoff) - continue; if (zSlab < 1) zSlab = 1; zBox = zSlab; @@ -155,10 +150,6 @@ return false; } - protected void setZcutoff() { - zCutoff = (tm.zShadeEnabled ? tm.zSlabValue : Integer.MAX_VALUE); - } - protected Text renderLabelOrMeasure(Text text, String label) { boolean newText = false; if (text != null) { Modified: branches/v14_4/Jmol/src/org/jmol/render/MeasuresRenderer.java =================================================================== --- branches/v14_4/Jmol/src/org/jmol/render/MeasuresRenderer.java 2016-01-05 03:07:48 UTC (rev 20922) +++ branches/v14_4/Jmol/src/org/jmol/render/MeasuresRenderer.java 2016-01-06 12:26:15 UTC (rev 20923) @@ -96,7 +96,6 @@ return false; boolean showMeasurementLabels = vwr.getBoolean(T.measurementlabels); measures.setVisibilityInfo(); - setZcutoff(); for (int i = measures.measurementCount; --i >= 0;) { m = measures.measurements.get(i); if (!m.isVisible || !m.isValid || (count = m.count) == 1 && m.traceX == Integer.MIN_VALUE) @@ -214,7 +213,7 @@ int zB = b.sZ - b.sD - 10; int radius = drawLine(a.sX, a.sY, zA, b.sX, b.sY, zB, mad); - if (s == null || zB >= zCutoff) + if (s == null) return; if (mad > 0) radius <<= 1; @@ -245,7 +244,7 @@ b.sY, zB, mad); radius += drawLine(b.sX, b.sY, zB, c.sX, c.sY, zC, mad); - if (s == null || zB >= zCutoff) + if (s == null) return; radius = (radius + 1) / 2; if (m.value > 175) { @@ -321,7 +320,7 @@ radius += drawLine(c.sX, c.sY, zC, d.sX, d.sY, zD, mad); int zLabel = (zA + zB + zC + zD) / 4; - if (s == null || zLabel >= zCutoff) + if (s == null) return; radius /= 3; if (m.text == null) { Modified: branches/v14_4/Jmol/src/org/jmol/shapesurface/IsosurfaceMesh.java =================================================================== --- branches/v14_4/Jmol/src/org/jmol/shapesurface/IsosurfaceMesh.java 2016-01-05 03:07:48 UTC (rev 20922) +++ branches/v14_4/Jmol/src/org/jmol/shapesurface/IsosurfaceMesh.java 2016-01-06 12:26:15 UTC (rev 20923) @@ -640,20 +640,13 @@ * just sets the color command for this isosurface. */ void setColorCommand() { - if (colorEncoder == null) + if (colorEncoder == null || (colorCommand = colorEncoder.getColorScheme()) == null) return; - colorCommand = colorEncoder.getColorScheme(); if (colorCommand.equals("inherit")) { colorCommand = "#inherit;"; return; } - if (colorCommand == null) - return; - colorCommand = "color $" - + (PT.isLetter(thisID.charAt(0)) && thisID.indexOf(" ") < 0 ? thisID : "\"" + thisID + "\"") - + " \"" - + colorCommand - + "\" range " + colorCommand = "color $" + PT.esc(thisID) + PT.esc(colorCommand) + " range " + (jvxlData.isColorReversed ? jvxlData.valueMappedToBlue + " " + jvxlData.valueMappedToRed : jvxlData.valueMappedToRed + " " + jvxlData.valueMappedToBlue); Modified: branches/v14_4/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- branches/v14_4/Jmol/src/org/jmol/viewer/Jmol.properties 2016-01-05 03:07:48 UTC (rev 20922) +++ branches/v14_4/Jmol/src/org/jmol/viewer/Jmol.properties 2016-01-06 12:26:15 UTC (rev 20923) @@ -7,8 +7,13 @@ # see also http://chemapps.stolaf.edu/jmol/zip for daily updates -Jmol.___JmolVersion="14.4.1_2016.01.04" +Jmol.___JmolVersion="14.4.1_2016.01.06" +bug fix: labels, echos, and measurements disappear when z-shaded + +JmolVersion="14.4.1_2016.01.04" +released + bug fix: (JvxlReader) Jmol 12 mapped isosurface jvxl files do not show mapped color bug fix: setting cartoons on for phosphorus-only polymers fails bug fix: setting default label properties using select none;.... fails Modified: trunk/Jmol/src/org/jmol/api/JmolRendererInterface.java =================================================================== --- trunk/Jmol/src/org/jmol/api/JmolRendererInterface.java 2016-01-05 03:07:48 UTC (rev 20922) +++ trunk/Jmol/src/org/jmol/api/JmolRendererInterface.java 2016-01-06 12:26:15 UTC (rev 20923) @@ -260,7 +260,7 @@ double privateKey, Map<String, Object> params); - public abstract void plotImagePixel(int argb, int x, int y, int z, int shade, int bgargb, int width, int height, int[] zbuf, Object pixel, int transpLog); + public abstract void plotImagePixel(int argb, int x, int y, int z, byte shade, int bgargb, int width, int height, int[] zbuf, Object pixel, int transpLog); public abstract void plotPixelClippedP3i(P3i a); Modified: trunk/Jmol/src/org/jmol/export/Export3D.java =================================================================== --- trunk/Jmol/src/org/jmol/export/Export3D.java 2016-01-05 03:07:48 UTC (rev 20922) +++ trunk/Jmol/src/org/jmol/export/Export3D.java 2016-01-06 12:26:15 UTC (rev 20923) @@ -789,7 +789,7 @@ } @Override - public void plotImagePixel(int argb, int x, int y, int z, int shade, + public void plotImagePixel(int argb, int x, int y, int z, byte shade, int bgargb, int width, int height, int[] pbuf, Object p, int transpLog) { // from Text3D if (isWebGL) Modified: trunk/Jmol/src/org/jmol/g3d/Graphics3D.java =================================================================== --- trunk/Jmol/src/org/jmol/g3d/Graphics3D.java 2016-01-05 03:07:48 UTC (rev 20922) +++ trunk/Jmol/src/org/jmol/g3d/Graphics3D.java 2016-01-06 12:26:15 UTC (rev 20923) @@ -432,7 +432,7 @@ if (pbuf != null) { if (isPass2 && pbufT != null) for (int offset = pbufT.length; --offset >= 0;) - mergeBufferPixel(pbuf, offset, pbufT[offset], bgcolor); + pbuf[offset] = mergeBufferPixel(pbuf[offset], pbufT[offset], bgcolor); if (pixel == pixelShaded && pixelShaded.zShadePower == 0) pixelShaded.showZBuffer(); @@ -455,13 +455,10 @@ currentlyRendering = isPass2 = false; } - public static void mergeBufferPixel(int[] pbuf, int offset, int argbB, + public static int mergeBufferPixel(int argbA, int argbB, int bgcolor) { - if (argbB == 0) - return; - int argbA = pbuf[offset]; - if (argbA == argbB) - return; + if (argbB == 0 || argbA == argbB) + return argbA; if (argbA == 0) argbA = bgcolor; int rbA = (argbA & 0x00FF00FF); @@ -510,7 +507,7 @@ gA = (((gA << 2) + (gA << 1) + gA + gB) >> 3) & 0x0000FF00; break; } - pbuf[offset] = 0xFF000000 | rbA | gA; + return 0xFF000000 | rbA | gA; } @Override @@ -1193,7 +1190,7 @@ for (int j = 0; j < imageWidth; j++) { int b = buffer[offset++]; if ((b & 0xFF000000) == (0xFF000000 & 0xFF000000)) - jmolRenderer.plotImagePixel(b, x + j, y + i, z, 8, bg, w, + jmolRenderer.plotImagePixel(b, x + j, y + i, z, (byte) 8, bg, w, h, zb, p, t); } } @@ -1608,24 +1605,13 @@ } @Override - public void plotImagePixel(int argb, int x, int y, int z, int shade, + public void plotImagePixel(int argb, int x, int y, int z, byte shade, int bgargb, int width, int height, int[] zbuf, Object p, int transpLog) { // drawString via text3d.plotClipped; overridden in Export if (x < 0 || x >= width || y < 0 || y >= height) return; - int offset = y * width + x; - if (z < zbuf[offset]) { - if (shade == 8) - ((Pixelator) p).addPixel(offset, z, argb); - else { - // shade is a log of translucency, so adding two is equivalent to - // multiplying them. Works like a charm! - BH - shade += transpLog; - if (shade <= 7) - shadeTextPixel(offset, z, argb, bgargb, shade, zbuf); - } - } + ((Pixelator)p).addImagePixel(shade, transpLog, y * width + x, z, argb, bgargb); } void plotPixelsClippedRaster(int count, int x, int y, int zAtLeft, @@ -2046,12 +2032,4 @@ return false; } - void shadeTextPixel(int offset, int z, int argb, int bgargb, int shade, - int[] zbuf) { - if (bgargb != 0) - mergeBufferPixel(pbuf, offset, bgargb, bgcolor); - mergeBufferPixel(pbuf, offset, (argb & 0xFFFFFF) | shade << 24, bgcolor); - zbuf[offset] = z; - } - } Modified: trunk/Jmol/src/org/jmol/g3d/Pixelator.java =================================================================== --- trunk/Jmol/src/org/jmol/g3d/Pixelator.java 2016-01-05 03:07:48 UTC (rev 20922) +++ trunk/Jmol/src/org/jmol/g3d/Pixelator.java 2016-01-06 12:26:15 UTC (rev 20923) @@ -60,4 +60,29 @@ pb[offset] = p; } + public void addImagePixel(byte shade, int tLog, int offset, int z, int argb, + int bgargb) { + if (z < zb[offset]) { + switch (shade) { + case 0: + return; + case 8: + addPixel(offset, z, argb); + return; + default: + // shade is a log of translucency, so adding two is equivalent to + // multiplying them. Works like a charm! - BH + shade += tLog; + if (shade <= 7) { + int p = pb[offset]; + if (bgargb != 0) + p = Graphics3D.mergeBufferPixel(p, bgargb, bgargb); + p = Graphics3D.mergeBufferPixel(p, (argb & 0xFFFFFF) + | (shade << 24), bgargb); + addPixel(offset, z, p); + } + } + } + } + } \ No newline at end of file Modified: trunk/Jmol/src/org/jmol/g3d/PixelatorT.java =================================================================== --- trunk/Jmol/src/org/jmol/g3d/PixelatorT.java 2016-01-05 03:07:48 UTC (rev 20922) +++ trunk/Jmol/src/org/jmol/g3d/PixelatorT.java 2016-01-06 12:26:15 UTC (rev 20923) @@ -54,13 +54,13 @@ // if (zT != Integer.MAX_VALUE) int argb = g.pbufT[offset]; if (!g.translucentCoverOnly && argb != 0 && zT - z > g.zMargin) - Graphics3D.mergeBufferPixel(g.pbuf, offset, argb, g.bgcolor); + pb[offset] = Graphics3D.mergeBufferPixel(pb[offset], argb, g.bgcolor); g.zbufT[offset] = z; g.pbufT[offset] = p & g.translucencyMask; } else if (z == zT) { } else if (!g.translucentCoverOnly && z - zT > g.zMargin) { // oops-out of order - Graphics3D.mergeBufferPixel(g.pbuf, offset, p & g.translucencyMask, g.bgcolor); + pb[offset] = Graphics3D.mergeBufferPixel(pb[offset], p & g.translucencyMask, g.bgcolor); } } } \ No newline at end of file Modified: trunk/Jmol/src/org/jmol/g3d/TextRenderer.java =================================================================== --- trunk/Jmol/src/org/jmol/g3d/TextRenderer.java 2016-01-05 03:07:48 UTC (rev 20922) +++ trunk/Jmol/src/org/jmol/g3d/TextRenderer.java 2016-01-06 12:26:15 UTC (rev 20923) @@ -125,26 +125,11 @@ if (shade != 0) jr.plotImagePixel(argb, x + j, y + i, z, shade, bgargb, width, height, zbuf, p, tLog); } - } - + } } else { - int pbufOffset = y * width + x; - for (int i = 0, off = 0; i < textHeight; i++) { - for (int j = 0; j < textWidth; j++) { - byte shade = tmap[off++]; - if (shade != 0 && z < zbuf[pbufOffset]) { - if (shade == 8) { - p.addPixel(pbufOffset, z, argb); - } else { - shade += tLog; - if (shade <= 7) - g3d.shadeTextPixel(pbufOffset, z, argb, bgargb, shade, zbuf); - } - } - pbufOffset++; - } - pbufOffset += (width - textWidth); - } + for (int i = 0, off = 0, pbufOffset = y * width + x; i < textHeight; i++, pbufOffset += (width - textWidth)) + for (int j = 0; j < textWidth; j++) + p.addImagePixel(tmap[off++], tLog, pbufOffset++, z, argb, bgargb); } return text3d.width; } Modified: trunk/Jmol/src/org/jmol/render/EchoRenderer.java =================================================================== --- trunk/Jmol/src/org/jmol/render/EchoRenderer.java 2016-01-05 03:07:48 UTC (rev 20922) +++ trunk/Jmol/src/org/jmol/render/EchoRenderer.java 2016-01-06 12:26:15 UTC (rev 20923) @@ -42,7 +42,6 @@ .getScalePixelsPerAngstrom(true) * 10000 : 0); imageFontScaling = vwr.imageFontScaling; boolean haveTranslucent = false; - setZcutoff(); for (Text t : echo.objects.values()) { if (!t.visible || t.hidden) { continue; @@ -61,8 +60,6 @@ z = pt0i.z - vwr.tm.zValueFromPercent(0) + z; t.setZs(z, z); } - if (t.zSlab >= zCutoff) - continue; if (t.pointerPt == null) { t.pointer = JC.LABEL_POINTER_NONE; } else { Modified: trunk/Jmol/src/org/jmol/render/LabelsRenderer.java =================================================================== --- trunk/Jmol/src/org/jmol/render/LabelsRenderer.java 2016-01-05 03:07:48 UTC (rev 20922) +++ trunk/Jmol/src/org/jmol/render/LabelsRenderer.java 2016-01-06 12:26:15 UTC (rev 20923) @@ -69,8 +69,6 @@ protected int zSlab = Integer.MIN_VALUE; - protected int zCutoff; - private int zBox; private float[] boxXY; @@ -87,7 +85,6 @@ int[] offsets = labels.offsets; if (labelStrings == null) return false; - setZcutoff(); Atom[] atoms = ms.at; short backgroundColixContrast = vwr.cm.colixBackgroundContrast; int backgroundColor = vwr.getBackgroundArgb(); @@ -119,8 +116,6 @@ isAbsolute = JC.isOffsetAbsolute(offset); pointer = JC.getPointer(offset); zSlab = atom.sZ - atom.sD / 2 - 3; - if (zSlab > zCutoff) - continue; if (zSlab < 1) zSlab = 1; zBox = zSlab; @@ -155,10 +150,6 @@ return false; } - protected void setZcutoff() { - zCutoff = (tm.zShadeEnabled ? tm.zSlabValue : Integer.MAX_VALUE); - } - protected Text renderLabelOrMeasure(Text text, String label) { boolean newText = false; if (text != null) { Modified: trunk/Jmol/src/org/jmol/render/MeasuresRenderer.java =================================================================== --- trunk/Jmol/src/org/jmol/render/MeasuresRenderer.java 2016-01-05 03:07:48 UTC (rev 20922) +++ trunk/Jmol/src/org/jmol/render/MeasuresRenderer.java 2016-01-06 12:26:15 UTC (rev 20923) @@ -96,7 +96,6 @@ return false; boolean showMeasurementLabels = vwr.getBoolean(T.measurementlabels); measures.setVisibilityInfo(); - setZcutoff(); for (int i = measures.measurementCount; --i >= 0;) { m = measures.measurements.get(i); if (!m.isVisible || !m.isValid || (count = m.count) == 1 && m.traceX == Integer.MIN_VALUE) @@ -214,7 +213,7 @@ int zB = b.sZ - b.sD - 10; int radius = drawLine(a.sX, a.sY, zA, b.sX, b.sY, zB, mad); - if (s == null || zB >= zCutoff) + if (s == null) return; if (mad > 0) radius <<= 1; @@ -245,7 +244,7 @@ b.sY, zB, mad); radius += drawLine(b.sX, b.sY, zB, c.sX, c.sY, zC, mad); - if (s == null || zB >= zCutoff) + if (s == null) return; radius = (radius + 1) / 2; if (m.value > 175) { @@ -320,9 +319,9 @@ c.sY, zC, mad); radius += drawLine(c.sX, c.sY, zC, d.sX, d.sY, zD, mad); + if (s == null) + return; int zLabel = (zA + zB + zC + zD) / 4; - if (s == null || zLabel >= zCutoff) - return; radius /= 3; if (m.text == null) { g3d.setC(labelColix); Modified: trunk/Jmol/src/org/jmol/shapesurface/IsosurfaceMesh.java =================================================================== --- trunk/Jmol/src/org/jmol/shapesurface/IsosurfaceMesh.java 2016-01-05 03:07:48 UTC (rev 20922) +++ trunk/Jmol/src/org/jmol/shapesurface/IsosurfaceMesh.java 2016-01-06 12:26:15 UTC (rev 20923) @@ -640,25 +640,19 @@ * just sets the color command for this isosurface. */ void setColorCommand() { - if (colorEncoder == null) + if (colorEncoder == null || (colorCommand = colorEncoder.getColorScheme()) == null) return; - colorCommand = colorEncoder.getColorScheme(); if (colorCommand.equals("inherit")) { colorCommand = "#inherit;"; return; } - if (colorCommand == null) - return; - colorCommand = "color $" - + (PT.isLetter(thisID.charAt(0)) && thisID.indexOf(" ") < 0 ? thisID : "\"" + thisID + "\"") - + " \"" - + colorCommand - + "\" range " + colorCommand = "color $" + PT.esc(thisID) + PT.esc(colorCommand) + " range " + (jvxlData.isColorReversed ? jvxlData.valueMappedToBlue + " " + jvxlData.valueMappedToRed : jvxlData.valueMappedToRed + " " + jvxlData.valueMappedToBlue); } + /** * from Isosurface.notifySurfaceGenerationCompleted() * Modified: trunk/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2016-01-05 03:07:48 UTC (rev 20922) +++ trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2016-01-06 12:26:15 UTC (rev 20923) @@ -63,8 +63,12 @@ TODO: consider if models with no atoms will cause issues in relation to model.firstAtomIndex -Jmol.___JmolVersion="14.5.1_2016.01.04" +Jmol.___JmolVersion="14.5.1_2016.01.06" +bug fix: labels, echos, and measurements disappear when z-shaded + +JmolVersion="14.5.1_2016.01.04" + bug fix: (JvxlReader) Jmol 12 mapped isosurface jvxl files do not show mapped color bug fix: setting default label properties using select none;.... fails bug fix: setting cartoons on for phosphorus-only polymers fails This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ _______________________________________________ Jmol-commits mailing list Jmol-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jmol-commits