aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarvey Harrison <[email protected]>2012-05-03 15:27:34 -0700
committerHarvey Harrison <[email protected]>2012-05-03 15:41:25 -0700
commit0ac3ead097fa4dc1e7de354ae4042c6d851a4f47 (patch)
tree4f22fccf2f93486d15d725e30ec028f4a257d063
parentd1ad9b0279a450d52287e2c34c012aacbbc2566b (diff)
j3dcore: remove all CG-shader support code (well, most of it anyways)
Signed-off-by: Harvey Harrison <[email protected]>
-rw-r--r--src/classes/jogl/javax/media/j3d/JoglPipeline.java847
-rw-r--r--src/classes/share/javax/media/j3d/Canvas3D.java37
-rw-r--r--src/classes/share/javax/media/j3d/CgShaderProgram.java192
-rw-r--r--src/classes/share/javax/media/j3d/CgShaderProgramRetained.java404
-rw-r--r--src/classes/share/javax/media/j3d/NoopPipeline.java200
-rw-r--r--src/classes/share/javax/media/j3d/Pipeline.java143
6 files changed, 22 insertions, 1801 deletions
diff --git a/src/classes/jogl/javax/media/j3d/JoglPipeline.java b/src/classes/jogl/javax/media/j3d/JoglPipeline.java
index 2c4fb3d..acf1fc9 100644
--- a/src/classes/jogl/javax/media/j3d/JoglPipeline.java
+++ b/src/classes/jogl/javax/media/j3d/JoglPipeline.java
@@ -69,10 +69,6 @@ import javax.media.opengl.GLPbuffer;
import javax.media.opengl.Threading;
import javax.media.opengl.glu.GLU;
-import com.sun.opengl.cg.CGcontext;
-import com.sun.opengl.cg.CGparameter;
-import com.sun.opengl.cg.CGprogram;
-import com.sun.opengl.cg.CgGL;
import com.sun.opengl.util.BufferUtil;
/**
@@ -2823,760 +2819,6 @@ class JoglPipeline extends Pipeline {
// ---------------------------------------------------------------------
//
- // CgShaderProgramRetained methods
- //
-
- // ShaderAttributeValue methods
-
- ShaderError setCgUniform1i(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int value) {
- if (VERBOSE) System.err.println("JoglPipeline.setCgUniform1i()");
-
- JoglCgShaderParameter param = (JoglCgShaderParameter) uniformLocation;
- if (param.vParam() != null) {
- CgGL.cgSetParameter1i(param.vParam(), value);
- }
-
- if (param.fParam() != null) {
- CgGL.cgSetParameter1i(param.fParam(), value);
- }
-
- return null;
- }
-
- ShaderError setCgUniform1f(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- float value) {
- if (VERBOSE) System.err.println("JoglPipeline.setCgUniform1f()");
-
- JoglCgShaderParameter param = (JoglCgShaderParameter) uniformLocation;
- if (param.vParam() != null) {
- CgGL.cgSetParameter1f(param.vParam(), value);
- }
-
- if (param.fParam() != null) {
- CgGL.cgSetParameter1f(param.fParam(), value);
- }
-
- return null;
- }
-
- ShaderError setCgUniform2i(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int[] value) {
- if (VERBOSE) System.err.println("JoglPipeline.setCgUniform2i()");
-
- JoglCgShaderParameter param = (JoglCgShaderParameter) uniformLocation;
- if (param.vParam() != null) {
- CgGL.cgSetParameter2i(param.vParam(), value[0], value[1]);
- }
-
- if (param.fParam() != null) {
- CgGL.cgSetParameter2i(param.fParam(), value[0], value[1]);
- }
-
- return null;
- }
-
- ShaderError setCgUniform2f(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- float[] value) {
- if (VERBOSE) System.err.println("JoglPipeline.setCgUniform2f()");
-
- JoglCgShaderParameter param = (JoglCgShaderParameter) uniformLocation;
- if (param.vParam() != null) {
- CgGL.cgSetParameter2f(param.vParam(), value[0], value[1]);
- }
-
- if (param.fParam() != null) {
- CgGL.cgSetParameter2f(param.fParam(), value[0], value[1]);
- }
-
- return null;
- }
-
- ShaderError setCgUniform3i(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int[] value) {
- if (VERBOSE) System.err.println("JoglPipeline.setCgUniform3i()");
-
- JoglCgShaderParameter param = (JoglCgShaderParameter) uniformLocation;
- if (param.vParam() != null) {
- CgGL.cgSetParameter3i(param.vParam(), value[0], value[1], value[2]);
- }
-
- if (param.fParam() != null) {
- CgGL.cgSetParameter3i(param.fParam(), value[0], value[1], value[2]);
- }
-
- return null;
- }
-
- ShaderError setCgUniform3f(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- float[] value) {
- if (VERBOSE) System.err.println("JoglPipeline.setCgUniform3f()");
-
- JoglCgShaderParameter param = (JoglCgShaderParameter) uniformLocation;
- if (param.vParam() != null) {
- CgGL.cgSetParameter3f(param.vParam(), value[0], value[1], value[2]);
- }
-
- if (param.fParam() != null) {
- CgGL.cgSetParameter3f(param.fParam(), value[0], value[1], value[2]);
- }
-
- return null;
- }
-
- ShaderError setCgUniform4i(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int[] value) {
- if (VERBOSE) System.err.println("JoglPipeline.setCgUniform4i()");
-
- JoglCgShaderParameter param = (JoglCgShaderParameter) uniformLocation;
- if (param.vParam() != null) {
- CgGL.cgSetParameter4i(param.vParam(), value[0], value[1], value[2], value[3]);
- }
-
- if (param.fParam() != null) {
- CgGL.cgSetParameter4i(param.fParam(), value[0], value[1], value[2], value[3]);
- }
-
- return null;
- }
-
- ShaderError setCgUniform4f(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- float[] value) {
- if (VERBOSE) System.err.println("JoglPipeline.setCgUniform4f()");
-
- JoglCgShaderParameter param = (JoglCgShaderParameter) uniformLocation;
- if (param.vParam() != null) {
- CgGL.cgSetParameter4f(param.vParam(), value[0], value[1], value[2], value[3]);
- }
-
- if (param.fParam() != null) {
- CgGL.cgSetParameter4f(param.fParam(), value[0], value[1], value[2], value[3]);
- }
-
- return null;
- }
-
- ShaderError setCgUniformMatrix3f(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- float[] value) {
- if (VERBOSE) System.err.println("JoglPipeline.setCgUniformMatrix3f()");
-
- JoglCgShaderParameter param = (JoglCgShaderParameter) uniformLocation;
- if (param.vParam() != null) {
- CgGL.cgGLSetMatrixParameterfr(param.vParam(), value, 0);
- }
-
- if (param.fParam() != null) {
- CgGL.cgGLSetMatrixParameterfr(param.fParam(), value, 0);
- }
-
- return null;
- }
-
- ShaderError setCgUniformMatrix4f(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- float[] value) {
- if (VERBOSE) System.err.println("JoglPipeline.setCgUniformMatrix4f()");
-
- JoglCgShaderParameter param = (JoglCgShaderParameter) uniformLocation;
- if (param.vParam() != null) {
- CgGL.cgGLSetMatrixParameterfr(param.vParam(), value, 0);
- }
-
- if (param.fParam() != null) {
- CgGL.cgGLSetMatrixParameterfr(param.fParam(), value, 0);
- }
-
- return null;
- }
-
- // ShaderAttributeArray methods
-
- ShaderError setCgUniform1iArray(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int numElements,
- int[] value) {
- if (VERBOSE) System.err.println("JoglPipeline.setCgUniform1iArray()");
-
- float[] fval = new float[value.length];
- for (int i = 0; i < value.length; i++) {
- fval[i] = value[i];
- }
-
- JoglCgShaderParameter param = (JoglCgShaderParameter) uniformLocation;
- if (param.vParam() != null) {
- CgGL.cgGLSetParameterArray1f(param.vParam(), 0, numElements, fval, 0);
- }
-
- if (param.fParam() != null) {
- CgGL.cgGLSetParameterArray1f(param.fParam(), 0, numElements, fval, 0);
- }
-
- return null;
- }
-
- ShaderError setCgUniform1fArray(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int numElements,
- float[] value) {
- if (VERBOSE) System.err.println("JoglPipeline.setCgUniform1fArray()");
-
- JoglCgShaderParameter param = (JoglCgShaderParameter) uniformLocation;
- if (param.vParam() != null) {
- CgGL.cgGLSetParameterArray1f(param.vParam(), 0, numElements, value, 0);
- }
-
- if (param.fParam() != null) {
- CgGL.cgGLSetParameterArray1f(param.fParam(), 0, numElements, value, 0);
- }
-
- return null;
- }
-
- ShaderError setCgUniform2iArray(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int numElements,
- int[] value) {
- if (VERBOSE) System.err.println("JoglPipeline.setCgUniform2iArray()");
-
- float[] fval = new float[value.length];
- for (int i = 0; i < value.length; i++) {
- fval[i] = value[i];
- }
-
- JoglCgShaderParameter param = (JoglCgShaderParameter) uniformLocation;
- if (param.vParam() != null) {
- CgGL.cgGLSetParameterArray2f(param.vParam(), 0, numElements, fval, 0);
- }
-
- if (param.fParam() != null) {
- CgGL.cgGLSetParameterArray2f(param.fParam(), 0, numElements, fval, 0);
- }
-
- return null;
- }
-
- ShaderError setCgUniform2fArray(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int numElements,
- float[] value) {
- if (VERBOSE) System.err.println("JoglPipeline.setCgUniform2fArray()");
-
- JoglCgShaderParameter param = (JoglCgShaderParameter) uniformLocation;
- if (param.vParam() != null) {
- CgGL.cgGLSetParameterArray2f(param.vParam(), 0, numElements, value, 0);
- }
-
- if (param.fParam() != null) {
- CgGL.cgGLSetParameterArray2f(param.fParam(), 0, numElements, value, 0);
- }
-
- return null;
- }
-
- ShaderError setCgUniform3iArray(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int numElements,
- int[] value) {
- if (VERBOSE) System.err.println("JoglPipeline.setCgUniform3iArray()");
-
- float[] fval = new float[value.length];
- for (int i = 0; i < value.length; i++) {
- fval[i] = value[i];
- }
-
- JoglCgShaderParameter param = (JoglCgShaderParameter) uniformLocation;
- if (param.vParam() != null) {
- CgGL.cgGLSetParameterArray3f(param.vParam(), 0, numElements, fval, 0);
- }
-
- if (param.fParam() != null) {
- CgGL.cgGLSetParameterArray3f(param.fParam(), 0, numElements, fval, 0);
- }
-
- return null;
- }
-
- ShaderError setCgUniform3fArray(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int numElements,
- float[] value) {
- if (VERBOSE) System.err.println("JoglPipeline.setCgUniform3fArray()");
-
- JoglCgShaderParameter param = (JoglCgShaderParameter) uniformLocation;
- if (param.vParam() != null) {
- CgGL.cgGLSetParameterArray2f(param.vParam(), 0, numElements, value, 0);
- }
-
- if (param.fParam() != null) {
- CgGL.cgGLSetParameterArray2f(param.fParam(), 0, numElements, value, 0);
- }
-
- return null;
- }
-
- ShaderError setCgUniform4iArray(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int numElements,
- int[] value) {
- if (VERBOSE) System.err.println("JoglPipeline.setCgUniform4iArray()");
-
- float[] fval = new float[value.length];
- for (int i = 0; i < value.length; i++) {
- fval[i] = value[i];
- }
-
- JoglCgShaderParameter param = (JoglCgShaderParameter) uniformLocation;
- if (param.vParam() != null) {
- CgGL.cgGLSetParameterArray4f(param.vParam(), 0, numElements, fval, 0);
- }
-
- if (param.fParam() != null) {
- CgGL.cgGLSetParameterArray4f(param.fParam(), 0, numElements, fval, 0);
- }
-
- return null;
- }
-
- ShaderError setCgUniform4fArray(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int numElements,
- float[] value) {
- if (VERBOSE) System.err.println("JoglPipeline.setCgUniform4fArray()");
-
- JoglCgShaderParameter param = (JoglCgShaderParameter) uniformLocation;
- if (param.vParam() != null) {
- CgGL.cgGLSetParameterArray2f(param.vParam(), 0, numElements, value, 0);
- }
-
- if (param.fParam() != null) {
- CgGL.cgGLSetParameterArray2f(param.fParam(), 0, numElements, value, 0);
- }
-
- return null;
- }
-
- ShaderError setCgUniformMatrix3fArray(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int numElements,
- float[] value) {
- if (VERBOSE) System.err.println("JoglPipeline.setCgUniformMatrix3fArray()");
-
- JoglCgShaderParameter param = (JoglCgShaderParameter) uniformLocation;
- if (param.vParam() != null) {
- CgGL.cgGLSetMatrixParameterArrayfr(param.vParam(), 0, numElements, value, 0);
- }
-
- if (param.fParam() != null) {
- CgGL.cgGLSetMatrixParameterArrayfr(param.fParam(), 0, numElements, value, 0);
- }
-
- return null;
- }
-
- ShaderError setCgUniformMatrix4fArray(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int numElements,
- float[] value) {
- if (VERBOSE) System.err.println("JoglPipeline.setCgUniformMatrix4fArray()");
-
- JoglCgShaderParameter param = (JoglCgShaderParameter) uniformLocation;
- if (param.vParam() != null) {
- CgGL.cgGLSetMatrixParameterArrayfr(param.vParam(), 0, numElements, value, 0);
- }
-
- if (param.fParam() != null) {
- CgGL.cgGLSetMatrixParameterArrayfr(param.fParam(), 0, numElements, value, 0);
- }
-
- return null;
- }
-
- // interfaces for shader compilation, etc.
- ShaderError createCgShader(Context ctx, int shaderType, ShaderId[] shaderId) {
- if (VERBOSE) System.err.println("JoglPipeline.createCgShader()");
-
- JoglContext jctx = (JoglContext) ctx;
- JoglCgShaderInfo info = new JoglCgShaderInfo();
- info.setJ3DShaderType(shaderType);
- if (shaderType == Shader.SHADER_TYPE_VERTEX) {
- info.setShaderProfile(jctx.getCgVertexProfile());
- } else if (shaderType == Shader.SHADER_TYPE_FRAGMENT) {
- info.setShaderProfile(jctx.getCgFragmentProfile());
- } else {
- throw new AssertionError("unrecognized shaderType " + shaderType);
- }
- shaderId[0] = info;
- return null;
- }
- ShaderError destroyCgShader(Context ctx, ShaderId shaderId) {
- if (VERBOSE) System.err.println("JoglPipeline.destroyCgShader()");
-
- JoglCgShaderInfo info = (JoglCgShaderInfo) shaderId;
- CGprogram program = info.getCgShader();
- if (program != null) {
- CgGL.cgDestroyProgram(program);
- }
- return null;
- }
- ShaderError compileCgShader(Context ctx, ShaderId shaderId, String programString) {
- if (VERBOSE) System.err.println("JoglPipeline.compileCgShader()");
-
- if (programString == null)
- throw new AssertionError("shader program string is null");
- JoglCgShaderInfo info = (JoglCgShaderInfo) shaderId;
- JoglContext jctx = (JoglContext) ctx;
- CGprogram program = CgGL.cgCreateProgram(jctx.getCgContext(),
- CgGL.CG_SOURCE,
- programString,
- info.getShaderProfile(),
- null,
- null);
- int lastError = 0;
- if ((lastError = CgGL.cgGetError()) != 0) {
- ShaderError err = new ShaderError(ShaderError.COMPILE_ERROR,
- "Cg shader compile error");
- err.setDetailMessage(getCgErrorLog(jctx, lastError));
- return err;
- }
- info.setCgShader(program);
- return null;
- }
-
- ShaderError createCgShaderProgram(Context ctx, ShaderProgramId[] shaderProgramId) {
- if (VERBOSE) System.err.println("JoglPipeline.createCgShaderProgram()");
-
- JoglCgShaderProgramInfo info = new JoglCgShaderProgramInfo();
- shaderProgramId[0] = info;
- return null;
- }
- ShaderError destroyCgShaderProgram(Context ctx, ShaderProgramId shaderProgramId) {
- if (VERBOSE) System.err.println("JoglPipeline.destroyCgShaderProgram()");
- // Nothing to do in pure Java port
- return null;
- }
- ShaderError linkCgShaderProgram(Context ctx, ShaderProgramId shaderProgramId,
- ShaderId[] shaderIds) {
- if (VERBOSE) System.err.println("JoglPipeline.linkCgShaderProgram()");
-
- JoglCgShaderProgramInfo shaderProgramInfo = (JoglCgShaderProgramInfo) shaderProgramId;
- // NOTE: we assume that the caller has already verified that there
- // is at most one vertex program and one fragment program
- shaderProgramInfo.setVertexShader(null);
- shaderProgramInfo.setFragmentShader(null);
- for (int i = 0; i < shaderIds.length; i++) {
- JoglCgShaderInfo shader = (JoglCgShaderInfo) shaderIds[i];
- if (shader.getJ3DShaderType() == Shader.SHADER_TYPE_VERTEX) {
- shaderProgramInfo.setVertexShader(shader);
- } else {
- shaderProgramInfo.setFragmentShader(shader);
- }
-
- CgGL.cgGLLoadProgram(shader.getCgShader());
- int lastError = 0;
- if ((lastError = CgGL.cgGetError()) != 0) {
- ShaderError err = new ShaderError(ShaderError.LINK_ERROR,
- "Cg shader link/load error");
- err.setDetailMessage(getCgErrorLog((JoglContext) ctx,
- lastError));
- return err;
- }
-
- CgGL.cgGLBindProgram(shader.getCgShader());
- if ((lastError = CgGL.cgGetError()) != 0) {
- ShaderError err = new ShaderError(ShaderError.LINK_ERROR,
- "Cg shader link/bind error");
- err.setDetailMessage(getCgErrorLog((JoglContext) ctx,
- lastError));
- return err;
- }
- }
-
- return null;
- }
- void lookupCgVertexAttrNames(Context ctx, ShaderProgramId shaderProgramId,
- int numAttrNames, String[] attrNames, boolean[] errArr) {
- if (VERBOSE) System.err.println("JoglPipeline.lookupCgVertexAttrNames()");
-
- JoglCgShaderProgramInfo shaderProgramInfo = (JoglCgShaderProgramInfo) shaderProgramId;
- if (shaderProgramInfo.getVertexShader() == null) {
- // If there if no vertex shader, no attributes can be looked up, so all fail
- for (int i = 0; i < errArr.length; i++) {
- errArr[i] = false;
- }
- return;
- }
-
- shaderProgramInfo.setVertexAttributes(new CGparameter[numAttrNames]);
- for (int i = 0; i < numAttrNames; i++) {
- String attrName = attrNames[i];
- shaderProgramInfo.getVertexAttributes()[i] =
- CgGL.cgGetNamedParameter(shaderProgramInfo.getVertexShader().getCgShader(),
- attrName);
- if (shaderProgramInfo.getVertexAttributes()[i] == null) {
- errArr[i] = true;
- }
- }
- }
- void lookupCgShaderAttrNames(Context ctx, ShaderProgramId shaderProgramId,
- int numAttrNames, String[] attrNames, ShaderAttrLoc[] locArr,
- int[] typeArr, int[] sizeArr, boolean[] isArrayArr) {
- if (VERBOSE) System.err.println("JoglPipeline.lookupCgShaderAttrNames()");
-
- JoglCgShaderProgramInfo shaderProgramInfo =
- (JoglCgShaderProgramInfo) shaderProgramId;
-
- // Set the loc, type, and size arrays to out-of-bounds values
- for (int i = 0; i < numAttrNames; i++) {
- locArr[i] = null;
- typeArr[i] = -1;
- sizeArr[i] = -1;
- }
-
- int[] vType = new int[1];
- int[] vSize = new int[1];
- boolean[] vIsArray = new boolean[1];
- int[] fType = new int[1];
- int[] fSize = new int[1];
- boolean[] fIsArray = new boolean[1];
-
- boolean err = false;
-
- // Now lookup the location of each name in the attrNames array
- for (int i = 0; i < numAttrNames; i++) {
- String attrName = attrNames[i];
- // Get uniform attribute location -- note that we need to
- // lookup the name in both the vertex and fragment shader
- // (although we will generalize it to look at the list of "N"
- // shaders). If all parameter locations are NULL, then no
- // struct will be allocated and -1 will be stored for this
- // attribute. If there is more than one non-NULL parameter,
- // then all must be of the same type and dimensionality,
- // otherwise an error will be generated and -1 will be stored
- // for this attribute. If all non-NULL parameters are of the
- // same type and dimensionality, then a struct is allocated
- // containing the list of parameters.
- //
- // When any of the setCgUniform methods are called, the
- // attribute will be set for each parameter in the list.
- CGparameter vLoc = null;
- if (shaderProgramInfo.getVertexShader() != null) {
- vLoc = lookupCgParams(shaderProgramInfo.getVertexShader(),
- attrName,
- vType, vSize, vIsArray);
- if (vLoc != null) {
- sizeArr[i] = vSize[0];
- isArrayArr[i] = vIsArray[0];
- typeArr[i] = cgToJ3dType(vType[0]);
- }
- }
-
- CGparameter fLoc = null;
- if (shaderProgramInfo.getVertexShader() != null) {
- fLoc = lookupCgParams(shaderProgramInfo.getFragmentShader(),
- attrName,
- fType, fSize, fIsArray);
- if (fLoc != null) {
- sizeArr[i] = fSize[0];
- isArrayArr[i] = fIsArray[0];
- typeArr[i] = cgToJ3dType(fType[0]);
- }
- }
-
- // If the name lookup found an entry in both vertex and
- // fragment program, verify that the type and size are the
- // same.
- if (vLoc != null && fLoc != null) {
- if (vType != fType || vSize != fSize || vIsArray != fIsArray) {
- // TODO: the following needs to be propagated to ShaderError
- System.err.println("JAVA 3D : error shader attribute type mismatch: " + attrName);
- System.err.println(" 1 : type = " + vType[0] + ", size = " + vSize[0] + ", isArray = " + vIsArray[0]);
- System.err.println(" 0 : type = " + fType[0] + ", size = " + fSize[0] + ", isArray = " + fIsArray[0]);
- err = true;
- }
- }
-
- // Report an error if we got a mismatch or if the attribute
- // was not found in either the vertex or the fragment program
- if (err || (vLoc == null && fLoc == null)) {
- // TODO: distinguish between (err) and (vParam and fParam both NULL)
- // so we can report a more helpful error message
- // locPtr[i] = (jlong)-1;
- } else {
- // TODO: need to store the cgParamInfo pointers in the
- // shader program so we can free them later.
- //
- // NOTE: WE CURRENTLY HAVE A MEMORY LEAK.
- locArr[i] = new JoglCgShaderParameter(vLoc, fLoc);
- }
- }
- }
-
- ShaderError useCgShaderProgram(Context ctx, ShaderProgramId shaderProgramId) {
- if (VERBOSE) System.err.println("JoglPipeline.useCgShaderProgram()");
-
- JoglCgShaderProgramInfo shaderProgramInfo =
- (JoglCgShaderProgramInfo) shaderProgramId;
- JoglContext jctx = (JoglContext) ctx;
-
- // Disable shader profiles
- CgGL.cgGLDisableProfile(jctx.getCgVertexProfile());
- CgGL.cgGLDisableProfile(jctx.getCgFragmentProfile());
- if (shaderProgramInfo != null) {
- if (shaderProgramInfo.getVertexShader() != null) {
- CgGL.cgGLBindProgram(shaderProgramInfo.getVertexShader().getCgShader());
- CgGL.cgGLEnableProfile(shaderProgramInfo.getVertexShader().getShaderProfile());
- } else {
- CgGL.cgGLUnbindProgram(jctx.getCgVertexProfile());
- }
-
- if (shaderProgramInfo.getFragmentShader() != null) {
- CgGL.cgGLBindProgram(shaderProgramInfo.getFragmentShader().getCgShader());
- CgGL.cgGLEnableProfile(shaderProgramInfo.getFragmentShader().getShaderProfile());
- } else {
- CgGL.cgGLUnbindProgram(jctx.getCgFragmentProfile());
- }
- } else {
- CgGL.cgGLUnbindProgram(jctx.getCgVertexProfile());
- CgGL.cgGLUnbindProgram(jctx.getCgFragmentProfile());
- }
-
- jctx.setShaderProgram(shaderProgramInfo);
- return null;
- }
-
- //
- // Helper methods for above
- //
- private String getCgErrorLog(JoglContext ctx, int lastError) {
- if (lastError == 0)
- throw new AssertionError("lastError == 0");
- String errString = CgGL.cgGetErrorString(lastError);
- String listing = CgGL.cgGetLastListing(ctx.getCgContext());
- return (errString + System.getProperty("line.separator") + listing);
- }
-
- private int cgToJ3dType(int type) {
- switch (type) {
- case CgGL.CG_BOOL:
- case CgGL.CG_BOOL1:
- case CgGL.CG_FIXED:
- case CgGL.CG_FIXED1:
- case CgGL.CG_HALF:
- case CgGL.CG_HALF1:
- case CgGL.CG_INT:
- case CgGL.CG_INT1:
- return ShaderAttributeObjectRetained.TYPE_INTEGER;
-
- // XXXX: add ShaderAttribute support for setting samplers. In the
- // mean time, the binding between sampler and texture unit will
- // need to be specified in the shader itself (which it already is
- // in most example shaders).
- //
- // case CgGL.CG_SAMPLER2D:
- // case CgGL.CG_SAMPLER3D:
- // case CgGL.CG_SAMPLERCUBE:
-
- case CgGL.CG_BOOL2:
- case CgGL.CG_FIXED2:
- case CgGL.CG_HALF2:
- case CgGL.CG_INT2:
- return ShaderAttributeObjectRetained.TYPE_TUPLE2I;
-
- case CgGL.CG_BOOL3:
- case CgGL.CG_FIXED3:
- case CgGL.CG_HALF3:
- case CgGL.CG_INT3:
- return ShaderAttributeObjectRetained.TYPE_TUPLE3I;
-
- case CgGL.CG_BOOL4:
- case CgGL.CG_FIXED4:
- case CgGL.CG_HALF4:
- case CgGL.CG_INT4:
- return ShaderAttributeObjectRetained.TYPE_TUPLE4I;
-
- case CgGL.CG_FLOAT:
- case CgGL.CG_FLOAT1:
- return ShaderAttributeObjectRetained.TYPE_FLOAT;
-
- case CgGL.CG_FLOAT2:
- return ShaderAttributeObjectRetained.TYPE_TUPLE2F;
-
- case CgGL.CG_FLOAT3:
- return ShaderAttributeObjectRetained.TYPE_TUPLE3F;
-
- case CgGL.CG_FLOAT4:
- return ShaderAttributeObjectRetained.TYPE_TUPLE4F;
-
- case CgGL.CG_FLOAT3x3:
- return ShaderAttributeObjectRetained.TYPE_MATRIX3F;
-
- case CgGL.CG_FLOAT4x4:
- return ShaderAttributeObjectRetained.TYPE_MATRIX4F;
-
- // Java 3D does not support the following sampler types:
- //
- // case CgGL.CG_SAMPLER1D:
- // case CgGL.CG_SAMPLERRECT:
- }
-
- return -1;
- }
-
- private CGparameter lookupCgParams(JoglCgShaderInfo shader,
- String attrNameString,
- int[] type,
- int[] size,
- boolean[] isArray) {
- CGparameter loc = CgGL.cgGetNamedParameter(shader.getCgShader(), attrNameString);
- if (loc != null) {
- type[0] = CgGL.cgGetParameterType(loc);
- if (type[0] == CgGL.CG_ARRAY) {
- isArray[0] = true;
- size[0] = CgGL.cgGetArraySize(loc, 0);
- CGparameter firstElem = CgGL.cgGetArrayParameter(loc, 0);
- type[0] = CgGL.cgGetParameterType(firstElem);
- } else {
- isArray[0] = false;
- size[0] = 1;
- }
- }
- return loc;
- }
-
-
-
- // ---------------------------------------------------------------------
-
- //
// GLSLShaderProgramRetained methods
//
@@ -6920,8 +6162,7 @@ class JoglPipeline extends Pipeline {
Context createNewContext(Canvas3D cv, long display, Drawable drawable,
long fbConfig, Context shareCtx, boolean isSharedCtx,
boolean offScreen,
- boolean glslLibraryAvailable,
- boolean cgLibraryAvailable) {
+ boolean glslLibraryAvailable) {
if (VERBOSE) System.err.println("JoglPipeline.createNewContext()");
GLDrawable draw = null;
GLCapabilitiesChooser indexChooser = null;
@@ -6978,7 +6219,7 @@ class JoglPipeline extends Pipeline {
if(!isSharedCtx){
// Set up fields in Canvas3D
- setupCanvasProperties(cv, ctx, gl, glslLibraryAvailable, cgLibraryAvailable);
+ setupCanvasProperties(cv, ctx, gl, glslLibraryAvailable);
}
// Enable rescale normal
@@ -7004,8 +6245,7 @@ class JoglPipeline extends Pipeline {
void createQueryContext(Canvas3D cv, long display, Drawable drawable,
long fbConfig, boolean offScreen, int width, int height,
- boolean glslLibraryAvailable,
- boolean cgLibraryAvailable) {
+ boolean glslLibraryAvailable) {
if (VERBOSE) System.err.println("JoglPipeline.createQueryContext()");
// FIXME: for now, ignoring the "offscreen" flag -- unclear how
@@ -7018,9 +6258,7 @@ class JoglPipeline extends Pipeline {
f.setUndecorated(true);
f.setLayout(new BorderLayout());
GLCapabilities caps = new GLCapabilities();
- ContextQuerier querier = new ContextQuerier(cv,
- glslLibraryAvailable,
- cgLibraryAvailable);
+ ContextQuerier querier = new ContextQuerier(cv, glslLibraryAvailable);
// FIXME: should know what GraphicsDevice on which to create
// this Canvas / Frame, and this should probably be known from
// the incoming "display" parameter
@@ -8360,74 +7598,10 @@ class JoglPipeline extends Pipeline {
}
}
- private boolean createCgContext(JoglContext ctx) {
- CGcontext cgContext = CgGL.cgCreateContext();
-
- int err = CgGL.cgGetError();
- if (err != 0) {
- String detail = CgGL.cgGetErrorString(err);
- System.err.println("JAVA 3D ERROR : Fatal error in creating Cg context: \"" +
- detail + "\"");
- return false;
- }
-
- if (cgContext == null) {
- System.err.println("JAVA 3D ERROR : Invalid null Cg context");
- return false;
- }
-
- ctx.setCgContext(cgContext);
-
- // Use GL_ARB_vertex_program extension if supported by video card
- if (CgGL.cgGLIsProfileSupported(CgGL.CG_PROFILE_ARBVP1)) {
- ctx.setCgVertexProfile(CgGL.CG_PROFILE_ARBVP1);
- } else if (CgGL.cgGLIsProfileSupported(CgGL.CG_PROFILE_VP20)) {
- ctx.setCgVertexProfile(CgGL.CG_PROFILE_VP20);
- } else {
- System.err.println("JAVA 3D ERROR : No CG vertex program profile is supported");
- ctx.setCgContext(null);
- return false;
- }
-
- // Use GL_ARB_fragment_program extension if supported by video card
- if (CgGL.cgGLIsProfileSupported(CgGL.CG_PROFILE_ARBFP1)) {
- ctx.setCgFragmentProfile(CgGL.CG_PROFILE_ARBFP1);
- } else if (CgGL.cgGLIsProfileSupported(CgGL.CG_PROFILE_FP20)) {
- ctx.setCgFragmentProfile(CgGL.CG_PROFILE_FP20);
- } else {
- System.err.println("JAVA 3D ERROR : No CG fragment program profile is supported");
- ctx.setCgContext(null);
- return false;
- }
-
- return true;
- }
-
- private void checkCgShaderExtensions(Canvas3D cv,
- JoglContext ctx,
- GL gl,
- boolean cgLibraryAvailable) {
- if (cgLibraryAvailable) {
- if (!createCgContext(ctx)) {
- return;
- }
- cv.shadingLanguageCg = true;
- // TODO: Query Cg texture sampler limits
- cv.maxTextureImageUnits = cv.maxTextureUnits;
- cv.maxVertexTextureImageUnits = 0;
- cv.maxCombinedTextureImageUnits = cv.maxTextureUnits;
- // TODO: Query max vertex attrs
- cv.maxVertexAttrs = 7;
- // Initialize shader vertex attribute function pointers
- ctx.initCgVertexAttributeImpl();
- }
- }
-
private void setupCanvasProperties(Canvas3D cv,
JoglContext ctx,
GL gl,
- boolean glslLibraryAvailable,
- boolean cgLibraryAvailable) {
+ boolean glslLibraryAvailable) {
// Note: this includes relevant portions from both the
// NativePipeline's getPropertiesFromCurrentContext and setupCanvasProperties
@@ -8450,7 +7624,6 @@ class JoglPipeline extends Pipeline {
cv.texture3DHeightMax = 0;
cv.texture3DDepthMax = 0;
cv.shadingLanguageGLSL = false;
- cv.shadingLanguageCg = false;
// Now make queries and set up these fields
String glVersion = gl.glGetString(GL.GL_VERSION);
@@ -8568,11 +7741,9 @@ class JoglPipeline extends Pipeline {
// Check shader extensions
if (gl13) {
checkGLSLShaderExtensions(cv, ctx, gl, glslLibraryAvailable);
- checkCgShaderExtensions(cv, ctx, gl, cgLibraryAvailable);
} else {
// Force shaders to be disabled, since no multitexture support
checkGLSLShaderExtensions(cv, ctx, gl, false);
- checkCgShaderExtensions(cv, ctx, gl, false);
}
// Setup GL_SUN_gloabl_alpha
@@ -9118,15 +8289,12 @@ class JoglPipeline extends Pipeline {
class ContextQuerier extends DefaultGLCapabilitiesChooser implements ExtendedCapabilitiesChooser {
private Canvas3D canvas;
private boolean glslLibraryAvailable;
- private boolean cgLibraryAvailable;
private boolean done;
public ContextQuerier(Canvas3D canvas,
- boolean glslLibraryAvailable,
- boolean cgLibraryAvailable) {
+ boolean glslLibraryAvailable) {
this.canvas = canvas;
this.glslLibraryAvailable = glslLibraryAvailable;
- this.cgLibraryAvailable = cgLibraryAvailable;
}
public boolean done() {
@@ -9139,8 +8307,7 @@ class JoglPipeline extends Pipeline {
// Set up various properties
if (getPropertiesFromCurrentContext(jctx)) {
setupCanvasProperties(canvas, jctx, context.getGL(),
- glslLibraryAvailable,
- cgLibraryAvailable);
+ glslLibraryAvailable);
}
markDone();
}
diff --git a/src/classes/share/javax/media/j3d/Canvas3D.java b/src/classes/share/javax/media/j3d/Canvas3D.java
index d4f1ad6..d9d52a5 100644
--- a/src/classes/share/javax/media/j3d/Canvas3D.java
+++ b/src/classes/share/javax/media/j3d/Canvas3D.java
@@ -479,7 +479,6 @@ public class Canvas3D extends Canvas {
// True if shadingLanguage is supported, otherwise false.
boolean shadingLanguageGLSL = false;
- boolean shadingLanguageCg = false;
// Query properties
J3dQueryProps queryProps;
@@ -2462,8 +2461,7 @@ ArrayList<TextureRetained> textureIDResourceTable = new ArrayList<TextureRetaine
this.fbConfig,
shareCtx, isSharedCtx,
this.offScreen,
- VirtualUniverse.mc.glslLibraryAvailable,
- VirtualUniverse.mc.cgLibraryAvailable);
+ VirtualUniverse.mc.glslLibraryAvailable);
// compute the max available texture units
maxAvailableTextureUnits = Math.max(maxTextureUnits, maxTextureImageUnits);
@@ -3156,16 +3154,11 @@ ArrayList<TextureRetained> textureIDResourceTable = new ArrayList<TextureRetaine
// Call queryProperties to ensure that the shading language flags are valid
queryProperties();
- // Return flag for specified shading language
- switch (shadingLanguage) {
- case Shader.SHADING_LANGUAGE_GLSL:
- return shadingLanguageGLSL;
- case Shader.SHADING_LANGUAGE_CG:
- return shadingLanguageCg;
- }
+ if (shadingLanguage == Shader.SHADING_LANGUAGE_GLSL)
+ return shadingLanguageGLSL;
- return false;
- }
+ return false;
+ }
/**
@@ -3696,9 +3689,8 @@ ArrayList<TextureRetained> textureIDResourceTable = new ArrayList<TextureRetaine
// inside the native code after setting the various
// fields in this object
createQueryContext(screen.display, drawable,
- fbConfig, offScreen, 1, 1,
- VirtualUniverse.mc.glslLibraryAvailable,
- VirtualUniverse.mc.cgLibraryAvailable);
+ fbConfig, offScreen, 1, 1,
+ VirtualUniverse.mc.glslLibraryAvailable);
// compute the max available texture units
maxAvailableTextureUnits = Math.max(maxTextureUnits, maxTextureImageUnits);
}
@@ -3839,9 +3831,6 @@ ArrayList<TextureRetained> textureIDResourceTable = new ArrayList<TextureRetaine
keys.add("shadingLanguageGLSL");
values.add(new Boolean(shadingLanguageGLSL));
- keys.add("shadingLanguageCg");
- values.add(new Boolean(shadingLanguageCg));
-
keys.add("native.version");
values.add(nativeGraphicsVersion);
@@ -4918,23 +4907,19 @@ void addTextureResource(int id, TextureRetained obj) {
private Context createNewContext(long display, Drawable drawable,
long fbConfig, Context shareCtx, boolean isSharedCtx,
boolean offScreen,
- boolean glslLibraryAvailable,
- boolean cgLibraryAvailable) {
+ boolean glslLibraryAvailable) {
return Pipeline.getPipeline().createNewContext(this, display, drawable,
fbConfig, shareCtx, isSharedCtx,
offScreen,
- glslLibraryAvailable,
- cgLibraryAvailable);
+ glslLibraryAvailable);
}
private void createQueryContext(long display, Drawable drawable,
long fbConfig, boolean offScreen, int width, int height,
- boolean glslLibraryAvailable,
- boolean cgLibraryAvailable) {
+ boolean glslLibraryAvailable) {
Pipeline.getPipeline().createQueryContext(this, display, drawable,
fbConfig, offScreen, width, height,
- glslLibraryAvailable,
- cgLibraryAvailable);
+ glslLibraryAvailable);
}
// This is the native for creating offscreen buffer
diff --git a/src/classes/share/javax/media/j3d/CgShaderProgram.java b/src/classes/share/javax/media/j3d/CgShaderProgram.java
deleted file mode 100644
index e5f0e76..0000000
--- a/src/classes/share/javax/media/j3d/CgShaderProgram.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- * $RCSfile$
- *
- * Copyright 2004-2008 Sun Microsystems, Inc. All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- *
- * $Revision$
- * $Date$
- * $State$
- */
-
-package javax.media.j3d;
-
-/**
- * The CgShaderProgram object is a concrete implementation of a
- * ShaderProgram node component for NVIDIA's Cg shader language.
- *
- * @see SourceCodeShader
- *
- * @since Java 3D 1.4
- */
-
-public class CgShaderProgram extends ShaderProgram {
-
- /**
- * Constructs a Cg shader program node component.
- *
- * <br>
- * TODO: ADD MORE DOCUMENTATION HERE.
- */
- public CgShaderProgram() {
- }
-
- // Implement abstract setVertexAttrNames method (inherit javadoc from parent class)
- public void setVertexAttrNames(String[] vertexAttrNames) {
- checkForLiveOrCompiled();
-
- if (vertexAttrNames != null) {
- for (int i = 0; i < vertexAttrNames.length; i++) {
- if (vertexAttrNames[i] == null) {
- throw new NullPointerException();
- }
- }
- }
-
- ((CgShaderProgramRetained)this.retained).setVertexAttrNames(vertexAttrNames);
- }
-
- // Implement abstract getVertexAttrNames method (inherit javadoc from parent class)
- public String[] getVertexAttrNames() {
-
- if (isLiveOrCompiled()) {
- if(!this.getCapability(ALLOW_NAMES_READ)) {
- throw new CapabilityNotSetException(J3dI18N.getString("CgShaderProgram0"));
- }
- }
-
- return ((CgShaderProgramRetained)this.retained).getVertexAttrNames();
- }
-
- // Implement abstract setShaderAttrNames method (inherit javadoc from parent class)
- public void setShaderAttrNames(String[] shaderAttrNames) {
- checkForLiveOrCompiled();
-
- if (shaderAttrNames != null) {
- for (int i = 0; i < shaderAttrNames.length; i++) {
- if (shaderAttrNames[i] == null) {
- throw new NullPointerException();
- }
- }
- }
-
- ((CgShaderProgramRetained)this.retained).setShaderAttrNames(shaderAttrNames);
- }
-
- // Implement abstract getShaderAttrNames method (inherit javadoc from parent class)
- public String[] getShaderAttrNames() {
-
- if (isLiveOrCompiled()) {
- if(!this.getCapability(ALLOW_NAMES_READ)) {
- throw new CapabilityNotSetException(J3dI18N.getString("CgShaderProgram0"));
- }
- }
-
- return ((CgShaderProgramRetained)this.retained).getShaderAttrNames();
- }
-
- /**
- * Copies the specified array of shaders into this shader
- * program. This method makes a shallow copy of the array. The
- * array of shaders may be null or empty (0 length), but the
- * elements of the array must be non-null. The shading language of
- * each shader in the array must be
- * <code>SHADING_LANGUAGE_CG</code>. Each shader in the array must
- * be a SourceCodeShader. There must be no more than one vertex shader
- * and one fragment shader in the array.
- *
- * @param shaders array of Shader objects to be copied into this
- * ShaderProgram
- *
- * @exception CapabilityNotSetException if appropriate capability is
- * not set and this object is part of live or compiled scene graph
- *
- * @exception IllegalArgumentException if the shading language of
- * any shader in the shaders array is <em>not</em>
- * <code>SHADING_LANGUAGE_CG</code>.
- *
- * @exception IllegalArgumentException if there are more than one
- * vertex shader or more than one fragment shader in the shaders
- * array.
- *
- * @exception ClassCastException if any shader in the shaders
- * array is <em>not</em> a SourceCodeShader.
- */
- public void setShaders(Shader[] shaders) {
- checkForLiveOrCompiled();
-
- if (shaders != null) {
- // Check shaders for valid shading language, class type, etc.
- for (int i = 0; i < shaders.length; i++) {
- boolean hasVertexShader = false;
- boolean hasFragmentShader = false;
-
- // Check shading language
- if (shaders[i].getShadingLanguage() != Shader.SHADING_LANGUAGE_CG) {
- throw new IllegalArgumentException(J3dI18N.getString("CgShaderProgram2"));
- }
-
- // Check for more than one vertex shader or fragment shader
- if (shaders[i].getShaderType() == Shader.SHADER_TYPE_VERTEX) {
- if (hasVertexShader) {
- throw new IllegalArgumentException(J3dI18N.getString("CgShaderProgram3"));
- }
- hasVertexShader = true;
- }
- else { // Shader.SHADER_TYPE_FRAGMENT
- if (hasFragmentShader) {
- throw new IllegalArgumentException(J3dI18N.getString("CgShaderProgram4"));
- }
- hasFragmentShader = true;
- }
-
- // Try to cast shader to SourceCodeShader; it will throw
- // ClassCastException if it isn't.
- SourceCodeShader shad = (SourceCodeShader)shaders[i];
- }
- }
-
- ((CgShaderProgramRetained)this.retained).setShaders(shaders);
- }
-
- // Implement abstract getShaders method (inherit javadoc from parent class)
- public Shader[] getShaders() {
- if (isLiveOrCompiled()) {
- if(!this.getCapability(ALLOW_SHADERS_READ)) {
- throw new CapabilityNotSetException(J3dI18N.getString("CgShaderProgram1"));
- }
- }
-
- return ((CgShaderProgramRetained)this.retained).getShaders();
- }
-
- /**
- * Creates a retained mode CgShaderProgramRetained object that this
- * CgShaderProgram component object will point to.
- */
- void createRetained() {
- this.retained = new CgShaderProgramRetained();
- this.retained.setSource(this);
- }
-
-}
diff --git a/src/classes/share/javax/media/j3d/CgShaderProgramRetained.java b/src/classes/share/javax/media/j3d/CgShaderProgramRetained.java
deleted file mode 100644
index 36eca1e..0000000
--- a/src/classes/share/javax/media/j3d/CgShaderProgramRetained.java
+++ /dev/null
@@ -1,404 +0,0 @@
-/*
- * $RCSfile$
- *
- * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- *
- * $Revision$
- * $Date$
- * $State$
- */
-
-package javax.media.j3d;
-
-/**
- * The CgShaderProgram object is a concrete implementation of a
- * ShaderProgram node component for NVIDIA's Cg shader language.
- */
-
-class CgShaderProgramRetained extends ShaderProgramRetained {
-
- /**
- * Constructs a Cg shader program node component.
- */
- CgShaderProgramRetained() {
- }
-
- synchronized void createMirrorObject() {
- // System.err.println("CgShaderProgramRetained : createMirrorObject");
- // This method should only call by setLive().
- if (mirror == null) {
- CgShaderProgramRetained mirrorCgSP = new CgShaderProgramRetained();
- mirror = mirrorCgSP;
- }
- initMirrorObject();
- }
-
- // ShaderAttributeValue methods
-
- ShaderError setUniform1i(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int value) {
-
- return Pipeline.getPipeline().setCgUniform1i(ctx,
- shaderProgramId,
- uniformLocation,
- value);
- }
-
- ShaderError setUniform1f(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- float value) {
-
- return Pipeline.getPipeline().setCgUniform1f(ctx,
- shaderProgramId,
- uniformLocation,
- value);
- }
-
- ShaderError setUniform2i(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int[] value) {
-
- return Pipeline.getPipeline().setCgUniform2i(ctx,
- shaderProgramId,
- uniformLocation,
- value);
- }
-
- ShaderError setUniform2f(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- float[] value) {
-
- return Pipeline.getPipeline().setCgUniform2f(ctx,
- shaderProgramId,
- uniformLocation,
- value);
- }
-
- ShaderError setUniform3i(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int[] value) {
-
- return Pipeline.getPipeline().setCgUniform3i(ctx,
- shaderProgramId,
- uniformLocation,
- value);
- }
-
- ShaderError setUniform3f(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- float[] value) {
-
- return Pipeline.getPipeline().setCgUniform3f(ctx,
- shaderProgramId,
- uniformLocation,
- value);
- }
-
- ShaderError setUniform4i(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int[] value) {
-
- return Pipeline.getPipeline().setCgUniform4i(ctx,
- shaderProgramId,
- uniformLocation,
- value);
- }
-
- ShaderError setUniform4f(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- float[] value) {
-
- return Pipeline.getPipeline().setCgUniform4f(ctx,
- shaderProgramId,
- uniformLocation,
- value);
- }
-
- ShaderError setUniformMatrix3f(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- float[] value) {
-
- return Pipeline.getPipeline().setCgUniformMatrix3f(ctx,
- shaderProgramId,
- uniformLocation,
- value);
- }
-
- ShaderError setUniformMatrix4f(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- float[] value) {
-
- return Pipeline.getPipeline().setCgUniformMatrix4f(ctx,
- shaderProgramId,
- uniformLocation,
- value);
- }
-
- // ShaderAttributeArray methods
-
- ShaderError setUniform1iArray(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int numElements,
- int[] value) {
-
- return Pipeline.getPipeline().setCgUniform1iArray(ctx,
- shaderProgramId,
- uniformLocation,
- numElements,
- value);
- }
-
- ShaderError setUniform1fArray(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int numElements,
- float[] value) {
-
- return Pipeline.getPipeline().setCgUniform1fArray(ctx,
- shaderProgramId,
- uniformLocation,
- numElements,
- value);
- }
-
- ShaderError setUniform2iArray(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int numElements,
- int[] value) {
-
- return Pipeline.getPipeline().setCgUniform2iArray(ctx,
- shaderProgramId,
- uniformLocation,
- numElements,
- value);
- }
-
- ShaderError setUniform2fArray(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int numElements,
- float[] value) {
-
- return Pipeline.getPipeline().setCgUniform2fArray(ctx,
- shaderProgramId,
- uniformLocation,
- numElements,
- value);
- }
-
- ShaderError setUniform3iArray(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int numElements,
- int[] value) {
-
- return Pipeline.getPipeline().setCgUniform3iArray(ctx,
- shaderProgramId,
- uniformLocation,
- numElements,
- value);
- }
-
- ShaderError setUniform3fArray(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int numElements,
- float[] value) {
-
- return Pipeline.getPipeline().setCgUniform3fArray(ctx,
- shaderProgramId,
- uniformLocation,
- numElements,
- value);
- }
-
- ShaderError setUniform4iArray(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int numElements,
- int[] value) {
-
- return Pipeline.getPipeline().setCgUniform4iArray(ctx,
- shaderProgramId,
- uniformLocation,
- numElements,
- value);
- }
-
- ShaderError setUniform4fArray(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int numElements,
- float[] value) {
-
- return Pipeline.getPipeline().setCgUniform4fArray(ctx,
- shaderProgramId,
- uniformLocation,
- numElements,
- value);
- }
-
- ShaderError setUniformMatrix3fArray(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int numElements,
- float[] value) {
-
- return Pipeline.getPipeline().setCgUniformMatrix3fArray(ctx,
- shaderProgramId,
- uniformLocation,
- numElements,
- value);
- }
-
- ShaderError setUniformMatrix4fArray(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int numElements,
- float[] value) {
-
- return Pipeline.getPipeline().setCgUniformMatrix4fArray(ctx,
- shaderProgramId,
- uniformLocation,
- numElements,
- value);
- }
-
-
- /**
- * Method to return a flag indicating whether this
- * ShaderProgram is supported on the specified Canvas.
- */
- boolean isSupported(Canvas3D cv) {
- return cv.shadingLanguageCg;
- }
-
- /**
- * Method to create the native shader.
- */
- ShaderError createShader(Context ctx, ShaderRetained shader, ShaderId[] shaderIdArr) {
- return Pipeline.getPipeline().createCgShader(ctx, shader.shaderType, shaderIdArr);
- }
-
- /**
- * Method to destroy the native shader.
- */
- ShaderError destroyShader(Context ctx, ShaderId shaderId) {
- return Pipeline.getPipeline().destroyCgShader(ctx, shaderId);
- }
-
- /**
- * Method to compile the native shader.
- */
- ShaderError compileShader(Context ctx, ShaderId shaderId, String source) {
- return Pipeline.getPipeline().compileCgShader(ctx, shaderId, source );
- }
-
- /**
- * Method to create the native shader program.
- */
- ShaderError createShaderProgram(Context ctx, ShaderProgramId[] shaderProgramIdArr) {
- return Pipeline.getPipeline().createCgShaderProgram(ctx, shaderProgramIdArr);
- }
-
- /**
- * Method to destroy the native shader program.
- */
- ShaderError destroyShaderProgram(Context ctx, ShaderProgramId shaderProgramId) {
- return Pipeline.getPipeline().destroyCgShaderProgram(ctx, shaderProgramId);
- }
-
- /**
- * Method to link the native shader program.
- */
- ShaderError linkShaderProgram(Context ctx, ShaderProgramId shaderProgramId, ShaderId[] shaderIds) {
- return Pipeline.getPipeline().linkCgShaderProgram(ctx, shaderProgramId, shaderIds);
- }
-
- ShaderError bindVertexAttrName(Context ctx, ShaderProgramId shaderProgramId, String attrName, int attrIndex) {
- // This is a no-op for Cg
- return null;
- }
-
- void lookupVertexAttrNames(Context ctx, ShaderProgramId shaderProgramId, String[] attrNames, boolean[] errArr) {
- Pipeline.getPipeline().lookupCgVertexAttrNames(ctx, shaderProgramId, attrNames.length, attrNames, errArr);
- }
-
- void lookupShaderAttrNames(Context ctx, ShaderProgramId shaderProgramId,
- String[] attrNames, AttrNameInfo[] attrNameInfoArr) {
-
- int numAttrNames = attrNames.length;
-
- ShaderAttrLoc[] locArr = new ShaderAttrLoc[numAttrNames];
- int[] typeArr = new int[numAttrNames];
- int[] sizeArr = new int[numAttrNames]; // currently unused
- boolean[] isArrayArr = new boolean[numAttrNames];
-
- Pipeline.getPipeline().lookupCgShaderAttrNames(ctx, shaderProgramId,
- numAttrNames, attrNames, locArr, typeArr, sizeArr, isArrayArr);
-
- for (int i = 0; i < numAttrNames; i++) {
- attrNameInfoArr[i] = new AttrNameInfo();
- attrNameInfoArr[i].setLocation(locArr[i]);
- attrNameInfoArr[i].setArray(isArrayArr[i]);
- attrNameInfoArr[i].setType(typeArr[i]);
- /*
- System.err.println(attrNames[i] +
- " : loc = " + locArr[i] +
- ", type = " + typeArr[i] +
- ", isArray = " + isArrayArr[i] +
- ", size = " + sizeArr[i]);
- */
- }
- }
-
- /**
- * Method to enable the native shader program.
- */
- ShaderError enableShaderProgram(Context ctx, ShaderProgramId shaderProgramId) {
- return Pipeline.getPipeline().useCgShaderProgram(ctx, shaderProgramId);
- }
-
- /**
- * Method to disable the native shader program.
- */
- ShaderError disableShaderProgram(Context ctx) {
- return Pipeline.getPipeline().useCgShaderProgram(ctx, null);
- }
-
-
-}
diff --git a/src/classes/share/javax/media/j3d/NoopPipeline.java b/src/classes/share/javax/media/j3d/NoopPipeline.java
index 8c68119..d3800af 100644
--- a/src/classes/share/javax/media/j3d/NoopPipeline.java
+++ b/src/classes/share/javax/media/j3d/NoopPipeline.java
@@ -318,200 +318,6 @@ class NoopPipeline extends Pipeline {
// ---------------------------------------------------------------------
//
- // CgShaderProgramRetained methods
- //
-
- // ShaderAttributeValue methods
-
- ShaderError setCgUniform1i(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int value) {
- return null;
- }
-
- ShaderError setCgUniform1f(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- float value) {
- return null;
- }
-
- ShaderError setCgUniform2i(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int[] value) {
- return null;
- }
-
- ShaderError setCgUniform2f(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- float[] value) {
- return null;
- }
-
- ShaderError setCgUniform3i(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int[] value) {
- return null;
- }
-
- ShaderError setCgUniform3f(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- float[] value) {
- return null;
- }
-
- ShaderError setCgUniform4i(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int[] value) {
- return null;
- }
-
- ShaderError setCgUniform4f(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- float[] value) {
- return null;
- }
-
- ShaderError setCgUniformMatrix3f(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- float[] value) {
- return null;
- }
-
- ShaderError setCgUniformMatrix4f(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- float[] value) {
- return null;
- }
-
- // ShaderAttributeArray methods
-
- ShaderError setCgUniform1iArray(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int numElements,
- int[] value) {
- return null;
- }
-
- ShaderError setCgUniform1fArray(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int numElements,
- float[] value) {
- return null;
- }
-
- ShaderError setCgUniform2iArray(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int numElements,
- int[] value) {
- return null;
- }
-
- ShaderError setCgUniform2fArray(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int numElements,
- float[] value) {
- return null;
- }
-
- ShaderError setCgUniform3iArray(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int numElements,
- int[] value) {
- return null;
- }
-
- ShaderError setCgUniform3fArray(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int numElements,
- float[] value) {
- return null;
- }
-
- ShaderError setCgUniform4iArray(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int numElements,
- int[] value) {
- return null;
- }
-
- ShaderError setCgUniform4fArray(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int numElements,
- float[] value) {
- return null;
- }
-
- ShaderError setCgUniformMatrix3fArray(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int numElements,
- float[] value) {
- return null;
- }
-
- ShaderError setCgUniformMatrix4fArray(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int numElements,
- float[] value) {
- return null;
- }
-
- // interfaces for shader compilation, etc.
- ShaderError createCgShader(Context ctx, int shaderType, ShaderId[] shaderId) {
- return null;
- }
- ShaderError destroyCgShader(Context ctx, ShaderId shaderId) {
- return null;
- }
- ShaderError compileCgShader(Context ctx, ShaderId shaderId, String program) {
- return null;
- }
-
- ShaderError createCgShaderProgram(Context ctx, ShaderProgramId[] shaderProgramId) {
- return null;
- }
- ShaderError destroyCgShaderProgram(Context ctx, ShaderProgramId shaderProgramId) {
- return null;
- }
- ShaderError linkCgShaderProgram(Context ctx, ShaderProgramId shaderProgramId,
- ShaderId[] shaderIds) {
- return null;
- }
- void lookupCgVertexAttrNames(Context ctx, ShaderProgramId shaderProgramId,
- int numAttrNames, String[] attrNames, boolean[] errArr) {
- }
- void lookupCgShaderAttrNames(Context ctx, ShaderProgramId shaderProgramId,
- int numAttrNames, String[] attrNames, ShaderAttrLoc[] locArr,
- int[] typeArr, int[] sizeArr, boolean[] isArrayArr) {
- }
-
- ShaderError useCgShaderProgram(Context ctx, ShaderProgramId shaderProgramId) {
- return null;
- }
-
-
- // ---------------------------------------------------------------------
-
- //
// GLSLShaderProgramRetained methods
//
@@ -1176,15 +982,13 @@ class NoopPipeline extends Pipeline {
Context createNewContext(Canvas3D cv, long display, Drawable drawable,
long fbConfig, Context shareCtx, boolean isSharedCtx,
boolean offScreen,
- boolean glslLibraryAvailable,
- boolean cgLibraryAvailable) {
+ boolean glslLibraryAvailable) {
return new NoopContext();
}
void createQueryContext(Canvas3D cv, long display, Drawable drawable,
long fbConfig, boolean offScreen, int width, int height,
- boolean glslLibraryAvailable,
- boolean cgLibraryAvailable) {
+ boolean glslLibraryAvailable) {
}
// This is the native for creating offscreen buffer
diff --git a/src/classes/share/javax/media/j3d/Pipeline.java b/src/classes/share/javax/media/j3d/Pipeline.java
index a6b7ba0..3b7c875 100644
--- a/src/classes/share/javax/media/j3d/Pipeline.java
+++ b/src/classes/share/javax/media/j3d/Pipeline.java
@@ -422,143 +422,6 @@ public Pipeline run() {
int depthFormat,
Object depthBuffer);
- // ---------------------------------------------------------------------
-
- //
- // CgShaderProgramRetained methods
- //
-
- // ShaderAttributeValue methods
-
- abstract ShaderError setCgUniform1i(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int value);
-
- abstract ShaderError setCgUniform1f(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- float value);
-
- abstract ShaderError setCgUniform2i(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int[] value);
-
- abstract ShaderError setCgUniform2f(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- float[] value);
-
- abstract ShaderError setCgUniform3i(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int[] value);
-
- abstract ShaderError setCgUniform3f(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- float[] value);
-
- abstract ShaderError setCgUniform4i(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int[] value);
-
- abstract ShaderError setCgUniform4f(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- float[] value);
-
- abstract ShaderError setCgUniformMatrix3f(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- float[] value);
-
- abstract ShaderError setCgUniformMatrix4f(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- float[] value);
-
- // ShaderAttributeArray methods
-
- abstract ShaderError setCgUniform1iArray(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int numElements,
- int[] value);
-
- abstract ShaderError setCgUniform1fArray(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int numElements,
- float[] value);
-
- abstract ShaderError setCgUniform2iArray(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int numElements,
- int[] value);
-
- abstract ShaderError setCgUniform2fArray(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int numElements,
- float[] value);
-
- abstract ShaderError setCgUniform3iArray(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int numElements,
- int[] value);
-
- abstract ShaderError setCgUniform3fArray(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int numElements,
- float[] value);
-
- abstract ShaderError setCgUniform4iArray(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int numElements,
- int[] value);
-
- abstract ShaderError setCgUniform4fArray(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int numElements,
- float[] value);
-
- abstract ShaderError setCgUniformMatrix3fArray(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int numElements,
- float[] value);
-
- abstract ShaderError setCgUniformMatrix4fArray(Context ctx,
- ShaderProgramId shaderProgramId,
- ShaderAttrLoc uniformLocation,
- int numElements,
- float[] value);
-
- // abstract interfaces for shader compilation, etc.
- abstract ShaderError createCgShader(Context ctx, int shaderType, ShaderId[] shaderId);
- abstract ShaderError destroyCgShader(Context ctx, ShaderId shaderId);
- abstract ShaderError compileCgShader(Context ctx, ShaderId shaderId, String program);
-
- abstract ShaderError createCgShaderProgram(Context ctx, ShaderProgramId[] shaderProgramId);
- abstract ShaderError destroyCgShaderProgram(Context ctx, ShaderProgramId shaderProgramId);
- abstract ShaderError linkCgShaderProgram(Context ctx, ShaderProgramId shaderProgramId,
- ShaderId[] shaderIds);
- abstract void lookupCgVertexAttrNames(Context ctx, ShaderProgramId shaderProgramId,
- int numAttrNames, String[] attrNames, boolean[] errArr);
- abstract void lookupCgShaderAttrNames(Context ctx, ShaderProgramId shaderProgramId,
- int numAttrNames, String[] attrNames, ShaderAttrLoc[] locArr,
- int[] typeArr, int[] sizeArr, boolean[] isArrayArr);
-
- abstract ShaderError useCgShaderProgram(Context ctx, ShaderProgramId shaderProgramId);
-
// ---------------------------------------------------------------------
@@ -1128,13 +991,11 @@ public Pipeline run() {
abstract Context createNewContext(Canvas3D cv, long display, Drawable drawable,
long fbConfig, Context shareCtx, boolean isSharedCtx,
boolean offScreen,
- boolean glslLibraryAvailable,
- boolean cgLibraryAvailable);
+ boolean glslLibraryAvailable);
abstract void createQueryContext(Canvas3D cv, long display, Drawable drawable,
long fbConfig, boolean offScreen, int width, int height,
- boolean glslLibraryAvailable,
- boolean cgLibraryAvailable);
+ boolean glslLibraryAvailable);
// This is the native for creating offscreen buffer
abstract Drawable createOffScreenBuffer(Canvas3D cv, Context ctx, long display, long fbConfig, int width, int height);