Thread: [Patchanim-commit] SF.net SVN: patchanim: [15] trunk/patchanim/src/com/mebigfatguy/patchanim/ gui/J
Brought to you by:
dbrosius
From: <dbr...@us...> - 2008-01-26 05:15:35
|
Revision: 15 http://patchanim.svn.sourceforge.net/patchanim/?rev=15&view=rev Author: dbrosius Date: 2008-01-25 21:15:39 -0800 (Fri, 25 Jan 2008) Log Message: ----------- no need for the color borders, anymore Modified Paths: -------------- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchSamplePanel.java Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchSamplePanel.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchSamplePanel.java 2008-01-26 05:12:25 UTC (rev 14) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchSamplePanel.java 2008-01-26 05:15:39 UTC (rev 15) @@ -187,13 +187,6 @@ public void paintComponent(Graphics g) { Rectangle bounds = getBounds(); g.drawImage(image, 0, 0, (int)bounds.getWidth(), (int)bounds.getHeight(), 0, 0, SAMPLE_SIZE, SAMPLE_SIZE, null); - Insets insets = getInsets(); - bounds.x += insets.left; - bounds.y += insets.top; - bounds.width -= (insets.left + insets.right) + 1; - bounds.height -= (insets.top + insets.bottom) + 1; - g.setColor(rgb); - g.drawRect(bounds.x, bounds.y, bounds.width, bounds.height); if (decorator != null) decorator.drawDecoration(((Graphics2D) g), g.getClipBounds()); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2008-01-26 05:37:29
|
Revision: 16 http://patchanim.svn.sourceforge.net/patchanim/?rev=16&view=rev Author: dbrosius Date: 2008-01-25 21:37:34 -0800 (Fri, 25 Jan 2008) Log Message: ----------- get the combined sample patch drawing Modified Paths: -------------- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchSamplePanel.java Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchSamplePanel.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchSamplePanel.java 2008-01-26 05:15:39 UTC (rev 15) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchSamplePanel.java 2008-01-26 05:37:34 UTC (rev 16) @@ -84,68 +84,25 @@ } } }); + + PatchPanelMediator mediator = PatchPanelMediator.getMediator(); + mediator.addActivePatchChangedListener(new ActivePatchChangedListener() { + public void activePatchChanged(ActivePatchChangedEvent apce) { + if (color == PatchColor.Combined) { + CombinedPatch currentPatch = apce.getActivePatch(); + recalcImage(color, currentPatch); + } + } + }); } public void recalcImage(final PatchColor color, final CombinedPatch patch) { Thread t = new Thread(new Runnable() { public void run() { if (color == PatchColor.Combined) { - + recalcCombinedImage(patch); } else { - PatchCoords coords = patch.getPatch(color); - - double u, u2, u3, oneMinusU, oneMinusU2, oneMinusU3; - double v, v2, v3, oneMinusV, oneMinusV2, oneMinusV3; - double[] uCoeffs = new double[ORDER]; - double[] vCoeffs = new double[ORDER]; - - for (int iu = 0; iu < SAMPLE_SIZE; iu++) { - u = (double)iu / (double)SAMPLE_SIZE; - u2 = u * u; - u3 = u2 * u; - oneMinusU = 1.0 - u; - oneMinusU2 = oneMinusU * oneMinusU; - oneMinusU3 = oneMinusU2 * oneMinusU; - - uCoeffs[0] = oneMinusU3; - uCoeffs[1] = 3.0 * u * oneMinusU2; - uCoeffs[2] = 3.0 * u2 * oneMinusU; - uCoeffs[3] = u3; - - for (int iv = 0; iv < SAMPLE_SIZE; iv++) { - v = (double)iv / (double)SAMPLE_SIZE; - v2 = v * v; - v3 = v2 * v; - oneMinusV = 1.0 - v; - oneMinusV2 = oneMinusV * oneMinusV; - oneMinusV3 = oneMinusV2 * oneMinusV; - - vCoeffs[0] = oneMinusV3; - vCoeffs[1] = 3.0 * v * oneMinusV2; - vCoeffs[2] = 3.0 * v2 * oneMinusV; - vCoeffs[3] = v3; - - double value = 0.0; - for (int i = 0; i < ORDER; i++) { - for (int j = 0; j < ORDER; j++) { - value += coords.getCoordinate(i, j).getColor() * uCoeffs[i] * vCoeffs[j]; - } - } - - int iValue = (int)value; - if (iValue > 255) - iValue = 255; - else if (iValue < 0) - iValue = 0; - if (color == PatchColor.Red) - iValue <<= 16; - else if (color == PatchColor.Green) - iValue <<= 8; - iValue |= 0xFF000000; - - image.setRGB(iu, iv, iValue); - } - } + recalcIndexedImage(color, patch); } SwingUtilities.invokeLater(new Runnable() { @@ -159,7 +116,128 @@ }); t.start(); } + + private void recalcCombinedImage(CombinedPatch patch) { + PatchCoords[] coords = new PatchCoords[3]; + + coords[0] = patch.getPatch(PatchColor.Red); + coords[1] = patch.getPatch(PatchColor.Green); + coords[2] = patch.getPatch(PatchColor.Blue); + + double u, u2, u3, oneMinusU, oneMinusU2, oneMinusU3; + double v, v2, v3, oneMinusV, oneMinusV2, oneMinusV3; + double[] uCoeffs = new double[ORDER]; + double[] vCoeffs = new double[ORDER]; + double[] value = new double[3]; + int[] iValue = new int[3]; + + for (int iu = 0; iu < SAMPLE_SIZE; iu++) { + u = (double)iu / (double)SAMPLE_SIZE; + u2 = u * u; + u3 = u2 * u; + oneMinusU = 1.0 - u; + oneMinusU2 = oneMinusU * oneMinusU; + oneMinusU3 = oneMinusU2 * oneMinusU; + + uCoeffs[0] = oneMinusU3; + uCoeffs[1] = 3.0 * u * oneMinusU2; + uCoeffs[2] = 3.0 * u2 * oneMinusU; + uCoeffs[3] = u3; + + for (int iv = 0; iv < SAMPLE_SIZE; iv++) { + v = (double)iv / (double)SAMPLE_SIZE; + v2 = v * v; + v3 = v2 * v; + oneMinusV = 1.0 - v; + oneMinusV2 = oneMinusV * oneMinusV; + oneMinusV3 = oneMinusV2 * oneMinusV; + + vCoeffs[0] = oneMinusV3; + vCoeffs[1] = 3.0 * v * oneMinusV2; + vCoeffs[2] = 3.0 * v2 * oneMinusV; + vCoeffs[3] = v3; + value[0] = value[1] = value[2] = 0.0; + + for (int i = 0; i < ORDER; i++) { + for (int j = 0; j < ORDER; j++) { + double coeff = uCoeffs[i] * vCoeffs[j]; + for (int k = 0; k < 3; k++) { + value[k] += coords[k].getCoordinate(i, j).getColor() * coeff; + } + } + } + + for (int k = 0; k < 3; k++) { + iValue[k] = (int)value[k]; + if (iValue[k] > 255) + iValue[k] = 255; + else if (iValue[k] < 0) + iValue[k] = 0; + } + int compValue = 0xFF000000 | (iValue[0] << 16) | (iValue[1] << 8) | iValue[2]; + image.setRGB(iu, iv, compValue); + } + } + } + + private void recalcIndexedImage(PatchColor color, CombinedPatch patch) { + PatchCoords coords = patch.getPatch(color); + + double u, u2, u3, oneMinusU, oneMinusU2, oneMinusU3; + double v, v2, v3, oneMinusV, oneMinusV2, oneMinusV3; + double[] uCoeffs = new double[ORDER]; + double[] vCoeffs = new double[ORDER]; + + for (int iu = 0; iu < SAMPLE_SIZE; iu++) { + u = (double)iu / (double)SAMPLE_SIZE; + u2 = u * u; + u3 = u2 * u; + oneMinusU = 1.0 - u; + oneMinusU2 = oneMinusU * oneMinusU; + oneMinusU3 = oneMinusU2 * oneMinusU; + + uCoeffs[0] = oneMinusU3; + uCoeffs[1] = 3.0 * u * oneMinusU2; + uCoeffs[2] = 3.0 * u2 * oneMinusU; + uCoeffs[3] = u3; + + for (int iv = 0; iv < SAMPLE_SIZE; iv++) { + v = (double)iv / (double)SAMPLE_SIZE; + v2 = v * v; + v3 = v2 * v; + oneMinusV = 1.0 - v; + oneMinusV2 = oneMinusV * oneMinusV; + oneMinusV3 = oneMinusV2 * oneMinusV; + + vCoeffs[0] = oneMinusV3; + vCoeffs[1] = 3.0 * v * oneMinusV2; + vCoeffs[2] = 3.0 * v2 * oneMinusV; + vCoeffs[3] = v3; + + double value = 0.0; + for (int i = 0; i < ORDER; i++) { + for (int j = 0; j < ORDER; j++) { + value += coords.getCoordinate(i, j).getColor() * uCoeffs[i] * vCoeffs[j]; + } + } + + int iValue = (int)value; + if (iValue > 255) + iValue = 255; + else if (iValue < 0) + iValue = 0; + if (color == PatchColor.Red) + iValue <<= 16; + else if (color == PatchColor.Green) + iValue <<= 8; + iValue |= 0xFF000000; + + image.setRGB(iu, iv, iValue); + } + } + } + private void buildImage() { if (rgb == null) { image = new BufferedImage(SAMPLE_SIZE, SAMPLE_SIZE, BufferedImage.TYPE_3BYTE_BGR); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2008-01-31 05:56:22
|
Revision: 76 http://patchanim.svn.sourceforge.net/patchanim/?rev=76&view=rev Author: dbrosius Date: 2008-01-30 21:56:26 -0800 (Wed, 30 Jan 2008) Log Message: ----------- synchronize the creation of the redraw thread so that there is only one redraw per patch at a time. Modified Paths: -------------- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchSamplePanel.java Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchSamplePanel.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchSamplePanel.java 2008-01-31 05:46:28 UTC (rev 75) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchSamplePanel.java 2008-01-31 05:56:26 UTC (rev 76) @@ -62,6 +62,7 @@ private OutOfBoundsColor oob; private BufferedImage image; private PatchDecorator decorator; + private Thread redrawThread = null; public JPatchSamplePanel(PatchColor c) { color = c; @@ -141,7 +142,19 @@ } public void recalcImage(final PatchColor color, final CombinedPatch patch) { - Thread t = new Thread(new Runnable() { + synchronized(this) { + if (redrawThread != null) { + try { + redrawThread.interrupt(); + redrawThread.join(); + } catch (InterruptedException ie) { + } finally { + redrawThread = null; + } + } + } + + redrawThread = new Thread(new Runnable() { public void run() { if (color == PatchColor.Combined) { PatchGenerator.recalcCombinedImage(patch, image, oob); @@ -150,9 +163,12 @@ } redraw(); + synchronized(this) { + redrawThread = null; + } } }); - t.start(); + redrawThread.start(); } private void redraw() { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2008-01-31 22:45:21
|
Revision: 80 http://patchanim.svn.sourceforge.net/patchanim/?rev=80&view=rev Author: dbrosius Date: 2008-01-31 14:45:25 -0800 (Thu, 31 Jan 2008) Log Message: ----------- fix the sync Modified Paths: -------------- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchSamplePanel.java Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchSamplePanel.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchSamplePanel.java 2008-01-31 06:07:22 UTC (rev 79) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchSamplePanel.java 2008-01-31 22:45:25 UTC (rev 80) @@ -63,6 +63,8 @@ private BufferedImage image; private PatchDecorator decorator; private Thread redrawThread = null; + private Object redrawLock = new Object(); + private boolean redrawing = false; public JPatchSamplePanel(PatchColor c) { color = c; @@ -142,8 +144,8 @@ } public void recalcImage(final PatchColor color, final CombinedPatch patch) { - synchronized(this) { - if (redrawThread != null) { + synchronized(redrawLock) { + if (redrawing) { try { redrawThread.interrupt(); redrawThread.join(); @@ -163,8 +165,8 @@ } redraw(); - synchronized(this) { - redrawThread = null; + synchronized(redrawLock) { + redrawing = false; } } }); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dbr...@us...> - 2008-06-07 23:02:51
|
Revision: 243 http://patchanim.svn.sourceforge.net/patchanim/?rev=243&view=rev Author: dbrosius Date: 2008-06-07 15:46:22 -0700 (Sat, 07 Jun 2008) Log Message: ----------- fb fix (NP) Modified Paths: -------------- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchSamplePanel.java Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchSamplePanel.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchSamplePanel.java 2008-06-07 22:38:55 UTC (rev 242) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchSamplePanel.java 2008-06-07 22:46:22 UTC (rev 243) @@ -543,6 +543,9 @@ case Up: srcC = srcCoords.getCoordinate(i, (j + 1) % order); break; + + default: + return; } c.setColor(srcC.getColor()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |