
org.scijava.java3d.JoglContext Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of j3dcore Show documentation
Show all versions of j3dcore Show documentation
3D Graphics API for the Java Platform
The newest version!
/*
* Copyright 2006-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.
*
*/
package org.scijava.java3d;
import java.nio.Buffer;
import java.nio.FloatBuffer;
import com.jogamp.opengl.GL;
import com.jogamp.opengl.GLContext;
/**
* Graphics context objects for Jogl rendering pipeline.
*/
class JoglContext implements Context {
private GLContext context;
// Properties we need to keep track of for efficiency
private int maxTexCoordSets;
private float alphaClearValue;
private int currentTextureUnit;
private int currentCombinerUnit;
private boolean hasMultisample;
// Needed for vertex attribute implementation
private JoglShaderObject shaderProgram;
// Only used when GLSL shader library is active
private int glslVertexAttrOffset;
JoglContext(GLContext context) {
this.context = context;
}
GLContext getGLContext() {
return context;
}
int getMaxTexCoordSets() { return maxTexCoordSets; }
void setMaxTexCoordSets(int val) { maxTexCoordSets = val; }
float getAlphaClearValue() { return alphaClearValue; }
void setAlphaClearValue(float val) { alphaClearValue = val; }
int getCurrentTextureUnit() { return currentTextureUnit; }
void setCurrentTextureUnit(int val) { currentTextureUnit = val; }
int getCurrentCombinerUnit() { return currentCombinerUnit; }
void setCurrentCombinerUnit(int val) { currentCombinerUnit = val; }
boolean getHasMultisample() { return hasMultisample; }
void setHasMultisample(boolean val){ hasMultisample = val; }
void vertexAttrPointer(GL gl, int index, int size, int type, int stride, Buffer pointer) {
gl.getGL2().glVertexAttribPointerARB(index + glslVertexAttrOffset, size,
type, false, stride, pointer);
}
void enableVertexAttrArray(GL gl, int index) {
gl.getGL2().glEnableVertexAttribArrayARB(index + glslVertexAttrOffset);
}
void disableVertexAttrArray(GL gl, int index) {
gl.getGL2().glDisableVertexAttribArrayARB(index + glslVertexAttrOffset);
}
void vertexAttr1fv(GL gl, int index, FloatBuffer buf) {
gl.getGL2().glVertexAttrib1fvARB(index + glslVertexAttrOffset, buf);
}
void vertexAttr2fv(GL gl, int index, FloatBuffer buf) {
gl.getGL2().glVertexAttrib2fvARB(index + glslVertexAttrOffset, buf);
}
void vertexAttr3fv(GL gl, int index, FloatBuffer buf) {
gl.getGL2().glVertexAttrib3fvARB(index + glslVertexAttrOffset, buf);
}
void vertexAttr4fv(GL gl, int index, FloatBuffer buf) {
gl.getGL2().glVertexAttrib4fvARB(index + glslVertexAttrOffset, buf);
}
// Used in vertex attribute implementation
JoglShaderObject getShaderProgram() { return shaderProgram; }
void setShaderProgram(JoglShaderObject object) { shaderProgram = object; }
// Only used when GLSL shaders are in use
int getGLSLVertexAttrOffset() { return glslVertexAttrOffset; }
void setGLSLVertexAttrOffset(int offset) { glslVertexAttrOffset = offset; }
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy