diff options
author | Harvey Harrison <[email protected]> | 2012-05-03 15:27:34 -0700 |
---|---|---|
committer | Harvey Harrison <[email protected]> | 2012-05-03 15:41:25 -0700 |
commit | 0ac3ead097fa4dc1e7de354ae4042c6d851a4f47 (patch) | |
tree | 4f22fccf2f93486d15d725e30ec028f4a257d063 | |
parent | d1ad9b0279a450d52287e2c34c012aacbbc2566b (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.java | 847 | ||||
-rw-r--r-- | src/classes/share/javax/media/j3d/Canvas3D.java | 37 | ||||
-rw-r--r-- | src/classes/share/javax/media/j3d/CgShaderProgram.java | 192 | ||||
-rw-r--r-- | src/classes/share/javax/media/j3d/CgShaderProgramRetained.java | 404 | ||||
-rw-r--r-- | src/classes/share/javax/media/j3d/NoopPipeline.java | 200 | ||||
-rw-r--r-- | src/classes/share/javax/media/j3d/Pipeline.java | 143 |
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); |