Revision e8b2f311
Added by Leszek Koltunski almost 9 years ago
| src/main/java/org/distorted/library/DistortedEffects.java | ||
|---|---|---|
| 86 | 86 |
|
| 87 | 87 |
private boolean matrixCloned, vertexCloned, fragmentCloned, postprocessCloned; |
| 88 | 88 |
|
| 89 |
private int mL, mR, mT, mB; |
|
| 90 |
|
|
| 91 | 89 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 92 | 90 |
|
| 93 | 91 |
static void createProgram(Resources resources) |
| ... | ... | |
| 184 | 182 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 185 | 183 |
// DEBUG ONLY |
| 186 | 184 |
|
| 185 |
@SuppressWarnings("unused")
|
|
| 187 | 186 |
private void displayBoundingRect(float halfX, float halfY, float halfZ, DistortedFramebuffer df, float[] mvp, float[] vertices) |
| 188 | 187 |
{
|
| 189 | 188 |
int len = vertices.length/3; |
| ... | ... | |
| 193 | 192 |
int maxy = Integer.MIN_VALUE; |
| 194 | 193 |
int wx,wy; |
| 195 | 194 |
|
| 196 |
int l=-1,r=-1,t=-1,b=-1; |
|
| 197 |
|
|
| 198 | 195 |
float x,y,z, X,Y,W, ndcX,ndcY; |
| 199 | 196 |
|
| 200 | 197 |
for(int i=0; i<len; i++) |
| ... | ... | |
| 213 | 210 |
wx = (int)(df.mWidth *(ndcX+1)/2); |
| 214 | 211 |
wy = (int)(df.mHeight*(ndcY+1)/2); |
| 215 | 212 |
|
| 216 |
if( wx<minx ) { minx = wx; l = i; }
|
|
| 217 |
if( wx>maxx ) { maxx = wx; r = i; }
|
|
| 218 |
if( wy<miny ) { miny = wy; t = i; }
|
|
| 219 |
if( wy>maxy ) { maxy = wy; b = i; }
|
|
| 213 |
if( wx<minx ) minx = wx;
|
|
| 214 |
if( wx>maxx ) maxx = wx;
|
|
| 215 |
if( wy<miny ) miny = wy;
|
|
| 216 |
if( wy>maxy ) maxy = wy;
|
|
| 220 | 217 |
} |
| 221 | 218 |
|
| 222 | 219 |
mDebugProgram.useProgram(); |
| ... | ... | |
| 236 | 233 |
|
| 237 | 234 |
GLES20.glVertexAttribPointer(mDebugProgram.mAttribute[0], 2, GLES20.GL_FLOAT, false, 0, mQuadPositions); |
| 238 | 235 |
GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4); |
| 239 |
|
|
| 240 |
if( l!=mL ) |
|
| 241 |
{
|
|
| 242 |
mL = l; |
|
| 243 |
android.util.Log.e("effects", "l="+l+" ("+vertices[3*l]+","+vertices[3*l+1]+","+vertices[3*l+2]+")");
|
|
| 244 |
} |
|
| 245 | 236 |
} |
| 246 | 237 |
|
| 247 | 238 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| ... | ... | |
| 300 | 291 |
} |
| 301 | 292 |
|
| 302 | 293 |
/// DEBUG ONLY ////// |
| 303 |
displayBoundingRect(halfInputH, halfInputW, halfZ, df, mM.getMVP(), mesh.getBoundingVertices() ); |
|
| 294 |
// displayBoundingRect(halfInputH, halfInputW, halfZ, df, mM.getMVP(), mesh.getBoundingVertices() );
|
|
| 304 | 295 |
/// END DEBUG /////// |
| 305 | 296 |
} |
| 306 | 297 |
|
| src/main/java/org/distorted/library/MeshCubes.java | ||
|---|---|---|
| 292 | 292 |
private int addLeftmost(float[] temp, int row, int index) |
| 293 | 293 |
{
|
| 294 | 294 |
float x2 = retLeftmost(row)/mCols - 0.5f; |
| 295 |
float y2 = (float)row /mRows - 0.5f;
|
|
| 295 |
float y2 = 0.5f - (float)row/mRows;
|
|
| 296 | 296 |
|
| 297 | 297 |
if( index>1 ) |
| 298 | 298 |
{
|
| ... | ... | |
| 301 | 301 |
float x1 = temp[2*index-2]; |
| 302 | 302 |
float y1 = temp[2*index-1]; |
| 303 | 303 |
|
| 304 |
while( (x0-x2)*(y0-y1) <= (x0-x1)*(y0-y2) )
|
|
| 304 |
while( (x0-x2)*(y0-y1) >= (x0-x1)*(y0-y2) )
|
|
| 305 | 305 |
{
|
| 306 | 306 |
if( --index>1 ) |
| 307 | 307 |
{
|
| ... | ... | |
| 324 | 324 |
private int addRightmost(float[] temp, int row, int index) |
| 325 | 325 |
{
|
| 326 | 326 |
float x2 = retRightmost(row)/mCols - 0.5f; |
| 327 |
float y2 = (float)row /mRows - 0.5f;
|
|
| 327 |
float y2 = 0.5f - (float)row/mRows;
|
|
| 328 | 328 |
|
| 329 | 329 |
if( index>1 ) |
| 330 | 330 |
{
|
| ... | ... | |
| 333 | 333 |
float x1 = temp[2*index-2]; |
| 334 | 334 |
float y1 = temp[2*index-1]; |
| 335 | 335 |
|
| 336 |
while( (x0-x2)*(y0-y1) >= (x0-x1)*(y0-y2) )
|
|
| 336 |
while( (x0-x2)*(y0-y1) <= (x0-x1)*(y0-y2) )
|
|
| 337 | 337 |
{
|
| 338 | 338 |
if( --index>1 ) |
| 339 | 339 |
{
|
Also available in: Unified diff
boundingVertices fully work now!