From: <ma...@us...> - 2003-12-30 23:42:04
|
Update of /cvsroot/jrman/drafts/src/org/jrman/render In directory sc8-pr-cvs1:/tmp/cvs-serv23801/src/org/jrman/render Modified Files: Sample.java SamplePoint.java Sampler.java Log Message: Minor optimizations Index: Sample.java =================================================================== RCS file: /cvsroot/jrman/drafts/src/org/jrman/render/Sample.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Sample.java 25 Nov 2003 06:01:02 -0000 1.6 --- Sample.java 30 Dec 2003 23:42:00 -0000 1.7 *************** *** 37,40 **** --- 37,42 ---- private float z; + + boolean opaque; public Sample(float cRed, float cGreen, float cBlue, *************** *** 47,50 **** --- 49,53 ---- opacityBlue = oBlue; this.z = z; + opaque = (opacityRed == 1f && opacityGreen == 1f && opacityBlue == 1f); } *************** *** 58,62 **** public boolean isOpaque() { ! return opacityRed== 1f && opacityGreen == 1f && opacityBlue == 1f; } --- 61,65 ---- public boolean isOpaque() { ! return opaque; } Index: SamplePoint.java =================================================================== RCS file: /cvsroot/jrman/drafts/src/org/jrman/render/SamplePoint.java,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** SamplePoint.java 25 Nov 2003 06:01:03 -0000 1.17 --- SamplePoint.java 30 Dec 2003 23:42:00 -0000 1.18 *************** *** 38,44 **** private Sampler sampler; ! private int row; ! ! private int column; private boolean opaque; --- 38,42 ---- private Sampler sampler; ! private int offset; private boolean opaque; *************** *** 46,53 **** private float z; ! public SamplePoint(Sampler sampler, int column, int row) { this.sampler = sampler; ! this.column = column; ! this.row = row; } --- 44,50 ---- private float z; ! public SamplePoint(Sampler sampler, int offset) { this.sampler = sampler; ! this.offset = offset; } *************** *** 106,110 **** z = nz; opaque = true; ! sampler.updateDepth(column, row, z); } } --- 103,107 ---- z = nz; opaque = true; ! sampler.updateDepth(offset, z); } } Index: Sampler.java =================================================================== RCS file: /cvsroot/jrman/drafts/src/org/jrman/render/Sampler.java,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** Sampler.java 27 Nov 2003 15:50:34 -0000 1.16 --- Sampler.java 30 Dec 2003 23:42:00 -0000 1.17 *************** *** 58,61 **** --- 58,63 ---- private boolean modified; + private boolean hasSamples; + public static int rootCount; *************** *** 95,99 **** for (int column = 0; column < width; column++) samplePoints[row * width + column] = ! new SamplePoint(this, column / pixelWidth, row / pixelHeight); pixelsVisibility = new MaskElement[bucketWidth * bucketHeight]; for (int i = 0; i < pixelsVisibility.length; i++) --- 97,102 ---- for (int column = 0; column < width; column++) samplePoints[row * width + column] = ! new SamplePoint(this, ! column / pixelWidth + (row / pixelHeight) * bucketWidth); pixelsVisibility = new MaskElement[bucketWidth * bucketHeight]; for (int i = 0; i < pixelsVisibility.length; i++) *************** *** 119,122 **** --- 122,126 ---- for (int i = 0; i < pixelsVisibility.length; i++) pixelsVisibility[i].reset(); + hasSamples = false; } *************** *** 128,131 **** --- 132,137 ---- mp.sample(this); } + if (modified) + hasSamples = true; if (modified && hasMorePrimitives) { modifiedSampleBucketsCount++; *************** *** 205,220 **** int bands, int bandOffset) { - int srcOffset = 0; int destOffset = dstOffset + bandOffset; ! for (int row = 0; row < height; row++) { ! for (int col = 0; col < width; col++) { ! samplePoints[srcOffset + col].getColor(tmpColor); ! int offset = destOffset + col * bands; ! dst[offset++] = tmpColor.x; ! dst[offset++] = tmpColor.y; ! dst[offset] = tmpColor.z; } - srcOffset += width; - destOffset += rowLength * bands; } } --- 211,238 ---- int bands, int bandOffset) { int destOffset = dstOffset + bandOffset; ! rowLength *= bands; ! if (hasSamples) { ! int srcOffset = 0; ! for (int row = 0; row < height; row++) { ! for (int col = 0; col < width; col++) { ! samplePoints[srcOffset++].getColor(tmpColor); ! int offset = destOffset + col * bands; ! dst[offset++] = tmpColor.x; ! dst[offset++] = tmpColor.y; ! dst[offset] = tmpColor.z; ! } ! destOffset += rowLength; ! } ! } else { ! for (int row = 0; row < height; row++) { ! for (int col = 0; col < width; col++) { ! int offset = destOffset + col * bands; ! dst[offset++] = 0f; ! dst[offset++] = 0f; ! dst[offset] = 0f; ! } ! destOffset += rowLength; } } } *************** *** 272,277 **** } ! public void updateDepth(int column, int row, float z) { ! MaskElement me = pixelsVisibility[row * bucketWidth + column]; if (z < me.z) { me.modified = true; --- 290,295 ---- } ! public void updateDepth(int offset, float z) { ! MaskElement me = pixelsVisibility[offset]; if (z < me.z) { me.modified = true; |