same changes related to #2259

This commit is contained in:
codeanticode
2014-01-05 13:38:24 -05:00
parent 8981790c21
commit 4331296e1d
3 changed files with 24 additions and 26 deletions

View File

@@ -119,8 +119,11 @@ public class PGraphics2D extends PGraphicsOpenGL {
@Override
protected void defaultPerspective() {
// super.ortho(width/2f, (3f/2f) * width, -height/2f, height/2f, -1, +1);
super.ortho(0, width, 0, height, -1, +1);
// The camera part of the modelview is simply the identity matrix, so in
// order to the ortho projection to be consistent with this, it needs to be
// set as follows, because ortho() will shift the viewing rectangle at
// (width/2, height/2) and will also apply the axis inversion along Y:
super.ortho(width/2f, (3f/2f) * width, -height/2f, height/2f, -1, +1);
}
@@ -157,8 +160,7 @@ public class PGraphics2D extends PGraphicsOpenGL {
@Override
protected void defaultCamera() {
super.camera(width/2f, height/2f);
// resetMatrix();
resetMatrix();
}
@@ -182,11 +184,6 @@ public class PGraphics2D extends PGraphicsOpenGL {
popProjection();
}
@Override
public void resetMatrix() {
super.resetMatrix();
defaultCamera();
}
//////////////////////////////////////////////////////////////

View File

@@ -87,7 +87,20 @@ public class PGraphics3D extends PGraphicsOpenGL {
pushProjection();
ortho(0, width, 0, height, -1, +1);
pushMatrix();
camera(width/2, height/2);
// Set camera for 2D rendering, it simply centers at (width/2, height/2)
float centerX = width/2;
float centerY = height/2;
modelview.reset();
modelview.translate(-centerX, -centerY);
modelviewInv.set(modelview);
modelviewInv.invert();
camera.set(modelview);
cameraInv.set(modelviewInv);
updateProjmodelview();
}

View File

@@ -2508,7 +2508,7 @@ public class PGraphicsOpenGL extends PGraphics {
// an 'in-place' implementation of quick I whipped together late at night
// based off of the algorithm found on wikipedia: http://en.wikipedia.org/wiki/Quicksort
private void quickSortTris(int leftI, int rightI) {
if(leftI < rightI) {
if (leftI < rightI) {
int pivotIndex = (leftI + rightI)/2;
int newPivotIndex = partition(leftI,rightI,pivotIndex);
quickSortTris(leftI, newPivotIndex-1);
@@ -4390,21 +4390,6 @@ public class PGraphicsOpenGL extends PGraphics {
}
// Sets a camera for 2D rendering, which only involves centering
public void camera(float centerX, float centerY) {
modelview.reset();
modelview.translate(-centerX, -centerY);
modelviewInv.set(modelview);
modelviewInv.invert();
camera.set(modelview);
cameraInv.set(modelviewInv);
updateProjmodelview();
}
/**
* Print the current camera matrix.
*/
@@ -4453,6 +4438,9 @@ public class PGraphicsOpenGL extends PGraphics {
public void ortho(float left, float right,
float bottom, float top,
float near, float far) {
// Translating the origin to (widht/2, height/2) since the matrix math
// below assumes the center of the screen to be (0, 0), but in Processing
// it is (w/2, h/2).
left -= width/2f;
right -= width/2f;
bottom -= height/2f;