android sync

This commit is contained in:
codeanticode
2012-05-03 22:24:45 +00:00
parent 5f935f7ed2
commit 0c150ba131
21 changed files with 6466 additions and 4228 deletions

View File

@@ -57,7 +57,8 @@ public class PShader {
public PShader() {
parent = null;
pg = null;
pgl = null;
pgl = null;
context = null;
this.vertexURL = null;
this.fragmentURL = null;
@@ -73,7 +74,8 @@ public class PShader {
this();
this.parent = parent;
pg = (PGraphicsOpenGL) parent.g;
pgl = pg.pgl;
pgl = pg.pgl;
context = pgl.createEmptyContext();
}
/**
@@ -117,13 +119,13 @@ public class PShader {
protected void finalize() throws Throwable {
try {
if (vertexShader != 0) {
pg.finalizeGLSLVertShaderObject(vertexShader);
pg.finalizeGLSLVertShaderObject(vertexShader, context.code());
}
if (fragmentShader != 0) {
pg.finalizeGLSLFragShaderObject(fragmentShader);
pg.finalizeGLSLFragShaderObject(fragmentShader, context.code());
}
if (programObject != 0) {
pg.finalizeGLSLProgramObject(programObject);
pg.finalizeGLSLProgramObject(programObject, context.code());
}
} finally {
super.finalize();
@@ -299,9 +301,9 @@ public class PShader {
}
protected void init() {
if (programObject == 0 || contextIsOutdated()) {
context = pgl.getContext();
programObject = pg.createGLSLProgramObject();
if (programObject == 0 || contextIsOutdated()) {
context = pgl.getCurrentContext();
programObject = pg.createGLSLProgramObject(context.code());
boolean hasVert = false;
if (vertexFilename != null) {
@@ -361,6 +363,10 @@ public class PShader {
protected boolean contextIsOutdated() {
boolean outdated = !pgl.contextIsCurrent(context);
if (outdated) {
pg.removeGLSLProgramObject(programObject, context.code());
pg.removeGLSLVertShaderObject(vertexShader, context.code());
pg.removeGLSLFragShaderObject(fragmentShader, context.code());
programObject = 0;
vertexShader = 0;
fragmentShader = 0;
@@ -423,7 +429,7 @@ public class PShader {
* @param shaderSource a string containing the shader's code
*/
protected boolean compileVertexShader() {
vertexShader = pg.createGLSLVertShaderObject();
vertexShader = pg.createGLSLVertShaderObject(context.code());
pgl.glShaderSource(vertexShader, vertexShaderSource);
pgl.glCompileShader(vertexShader);
@@ -443,7 +449,7 @@ public class PShader {
* @param shaderSource a string containing the shader's code
*/
protected boolean compileFragmentShader() {
fragmentShader = pg.createGLSLFragShaderObject();
fragmentShader = pg.createGLSLFragShaderObject(context.code());
pgl.glShaderSource(fragmentShader, fragmentShaderSource);
pgl.glCompileShader(fragmentShader);
@@ -461,16 +467,16 @@ public class PShader {
protected void release() {
if (vertexShader != 0) {
pg.deleteGLSLVertShaderObject(vertexShader);
pg.deleteGLSLVertShaderObject(vertexShader, context.code());
vertexShader = 0;
}
if (fragmentShader != 0) {
pg.deleteGLSLFragShaderObject(fragmentShader);
pg.deleteGLSLFragShaderObject(fragmentShader, context.code());
fragmentShader = 0;
}
if (programObject != 0) {
pg.deleteGLSLProgramObject(programObject);
pg.deleteGLSLProgramObject(programObject, context.code());
programObject = 0;
}
}
}
}