本文整理汇总了Java中com.jogamp.opengl.GL2GL3类的典型用法代码示例。如果您正苦于以下问题:Java GL2GL3类的具体用法?Java GL2GL3怎么用?Java GL2GL3使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
GL2GL3类属于com.jogamp.opengl包,在下文中一共展示了GL2GL3类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: initialize
import com.jogamp.opengl.GL2GL3; //导入依赖的package包/类
@Override
public boolean initialize(RenderContext context, boolean force) {
if (state == State.DISPOSED) return false;
GL2GL3 gl = context.getDrawable().getGL().getGL2GL3();
if (state == State.INITIALIZED || state == State.LOADED) {
if (!force) return false;
// dispose old
vbo.dispose(gl);
vao.dispose(gl);
}
vbo = BufferStorage.create(gl, GL2GL3.GL_ARRAY_BUFFER);
vao = VertexArrayObject.create(gl);
ptrPosition = VertexAttributePointer.create(attribute, datatype, vbo);
state = State.INITIALIZED;
return true;
}
示例2: load
import com.jogamp.opengl.GL2GL3; //导入依赖的package包/类
@Override
public boolean load(RenderContext context, boolean force) {
if (state == State.DISPOSED || state == State.UNINITIALIZED) return false;
if (state == State.LOADED && !force) return false;
GL2GL3 gl = context.getDrawable().getGL().getGL2GL3();
gl.glBindBuffer(vbo.target, vbo.handle);
gl.glBufferData(vbo.target, vertices.capacity() * 4L, vertices, usage);
gl.glBindBuffer(vbo.target, 0);
nVertices = vertices.capacity() / datatype.size;
state = State.LOADED;
return true;
}
示例3: initialize
import com.jogamp.opengl.GL2GL3; //导入依赖的package包/类
@Override
public boolean initialize(RenderContext context, boolean force) {
if (state == State.DISPOSED) return false;
GL2GL3 gl = context.getDrawable().getGL().getGL2GL3();
if (state == State.INITIALIZED || state == State.LOADED) {
if (!force) return false;
// dispose old
vbo.dispose(gl);
ibo.dispose(gl);
vao.dispose(gl);
}
vbo = BufferStorage.create(gl, GL2GL3.GL_ARRAY_BUFFER);
ibo = BufferStorage.create(gl, GL2GL3.GL_ELEMENT_ARRAY_BUFFER);
vao = VertexArrayObject.create(gl);
ptrAttrib = VertexAttributePointer.create(attribute, datatype, vbo);
state = State.INITIALIZED;
return true;
}
示例4: dispose
import com.jogamp.opengl.GL2GL3; //导入依赖的package包/类
@Override
public boolean dispose(RenderContext context) {
boolean disposable = state != State.DISPOSED && state != State.UNINITIALIZED;
if (disposable) {
GL2GL3 gl = context.getDrawable().getGL().getGL2GL3();
vbo.dispose(gl);
ibo.dispose(gl);
state = State.DISPOSED;
}
for (LifeTimeObserver<Mesh> lto : ltObservers)
lto.disposed(this);
return disposable;
}
示例5: load
import com.jogamp.opengl.GL2GL3; //导入依赖的package包/类
@Override
public boolean load(RenderContext context, boolean force) {
if (state == State.DISPOSED || state == State.UNINITIALIZED) return false;
if (state == State.LOADED && !force) return false;
GL2GL3 gl = context.getDrawable().getGL().getGL2GL3();
// vertices
gl.glBindBuffer(vbo.target, vbo.handle);
gl.glBufferData(vbo.target, vertices.capacity() * 4L, vertices, usage);
gl.glBindBuffer(vbo.target, 0);
// indices
gl.glBindBuffer(ibo.target, ibo.handle);
gl.glBufferData(ibo.target, indices.capacity() * 4L, indices, usage);
gl.glBindBuffer(ibo.target, 0);
state = State.LOADED;
return true;
}
示例6: createVAO
import com.jogamp.opengl.GL2GL3; //导入依赖的package包/类
@Override
public VertexArrayObject createVAO(RenderContext context, ShaderProgram program) {
GL2GL3 gl = context.getDrawable().getGL().getGL2GL3();
VertexArrayObject vao = VertexArrayObject.create(gl);
vao.bind(gl);
vbo.bind(gl);
ibo.bind(gl);
ptrAttrib.set(gl);
ptrAttrib.enable(gl);
vao.unbind(gl);
return vao;
}
示例7: initialize
import com.jogamp.opengl.GL2GL3; //导入依赖的package包/类
@Override
public boolean initialize(RenderContext context, boolean force) {
if (state == State.DISPOSED) return false;
GL2GL3 gl = context.getDrawable().getGL().getGL2GL3();
if (state == State.INITIALIZED || state == State.LOADED) {
if (!force) return false;
// dispose old
vbo.dispose(gl);
ibo.dispose(gl);
vao.dispose(gl);
}
vbo = BufferStorage.create(gl, GL2GL3.GL_ARRAY_BUFFER);
ibo = BufferStorage.create(gl, GL2GL3.GL_ELEMENT_ARRAY_BUFFER);
vao = VertexArrayObject.create(gl);
final int len = (datatype1.size + datatype2.size) * 4;
final int offs1 = datatype1.size * 4;
ptrAttrib1 = VertexAttributePointer.create(attrib1, datatype1, vbo, len, 0);
ptrAttrib2 = VertexAttributePointer.create(attrib2, datatype2, vbo, len, offs1);
state = State.INITIALIZED;
return true;
}
示例8: display
import com.jogamp.opengl.GL2GL3; //导入依赖的package包/类
@Override
public void display(RenderContext context, ShaderProgram shader, int mode) {
GL2GL3 gl = context.getDrawable().getGL().getGL2GL3();
vao.bind(gl);
vbo.bind(gl);
ibo.bind(gl);
ptrAttrib1.set(gl);
ptrAttrib1.enable(gl);
ptrAttrib2.set(gl);
ptrAttrib2.enable(gl);
gl.glDrawElements(mode, indices.capacity(), GL2GL3.GL_UNSIGNED_INT, 0);
vao.unbind(gl);
}
示例9: createVAO
import com.jogamp.opengl.GL2GL3; //导入依赖的package包/类
@Override
public VertexArrayObject createVAO(RenderContext context, ShaderProgram program) {
GL2GL3 gl = context.getDrawable().getGL().getGL2GL3();
VertexArrayObject vao = VertexArrayObject.create(gl);
vao.bind(gl);
vbo.bind(gl);
ibo.bind(gl);
ptrAttrib1.set(gl);
ptrAttrib1.enable(gl);
ptrAttrib2.set(gl);
ptrAttrib2.enable(gl);
vao.unbind(gl);
return vao;
}
示例10: before
import com.jogamp.opengl.GL2GL3; //导入依赖的package包/类
protected void before(GL gl) {
if (gl.isGL2()) {
gl.getGL2().glPushMatrix();
// gl.glHint(GL2.GL_PERSPECTIVE_CORRECTION_HINT,GL2.GL_NICEST);
gl.getGL2().glPolygonMode(GL.GL_FRONT_AND_BACK, GL2GL3.GL_FILL);
// gl.glEnable(GL2.GL_POLYGON_OFFSET_FILL);
// gl.glPolygonOffset(1.0f, 1.0f);
gl.glEnable(GL.GL_TEXTURE_2D);
gl.getGL2().glTexEnvf(GL.GL_TEXTURE_2D, GL2ES1.GL_TEXTURE_ENV_MODE, GL.GL_REPLACE);
} else {
GLES2CompatUtils.glPushMatrix();
GLES2CompatUtils.glPolygonMode(GL.GL_FRONT_AND_BACK, GL2GL3.GL_FILL);
gl.glEnable(GL.GL_TEXTURE_2D);
GLES2CompatUtils.glTexEnvf(GL.GL_TEXTURE_2D, GL2ES1.GL_TEXTURE_ENV_MODE, GL.GL_REPLACE);
}
}
示例11: drawCachedGeometry
import com.jogamp.opengl.GL2GL3; //导入依赖的package包/类
public void drawCachedGeometry(final GamaGeometryFile file, final Color border) {
if (geometryCache == null)
return;
if (file == null)
return;
final Integer index = geometryCache.get(this, file);
if (index != null)
drawList(index);
if (border != null && !isWireframe()) {
final Color old = swapCurrentColor(border);
getGL().glPolygonMode(GL.GL_FRONT_AND_BACK, GL2GL3.GL_LINE);
drawList(index);
setCurrentColor(old);
getGL().glPolygonMode(GL.GL_FRONT_AND_BACK, GL2GL3.GL_FILL);
}
}
示例12: initSurfaceState
import com.jogamp.opengl.GL2GL3; //导入依赖的package包/类
/**
* Common code to setup basic openGL state, including depth test, blending etc.
* @param gl
*/
private void initSurfaceState(GL2GL3 gl) {
// Some of this is probably redundant, but here goes
gl.glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
gl.glEnable(GL.GL_DEPTH_TEST);
gl.glClearDepth(1.0);
gl.glDepthFunc(GL2GL3.GL_LEQUAL);
gl.glEnable(GL2GL3.GL_CULL_FACE);
gl.glCullFace(GL2GL3.GL_BACK);
gl.glBlendEquationSeparate(GL2GL3.GL_FUNC_ADD, GL2GL3.GL_MAX);
gl.glBlendFuncSeparate(GL2GL3.GL_SRC_ALPHA, GL2GL3.GL_ONE_MINUS_SRC_ALPHA, GL2GL3.GL_ONE, GL2GL3.GL_ONE);
}
示例13: init
import com.jogamp.opengl.GL2GL3; //导入依赖的package包/类
@Override
public void init(GLAutoDrawable drawable) {
synchronized (rendererLock) {
// Per window initialization
if (USE_DEBUG_GL) {
drawable.setGL(new DebugGL4bc((GL4bc)drawable.getGL().getGL2GL3()));
}
GL2GL3 gl = drawable.getGL().getGL2GL3();
initSurfaceState(gl);
gl.glEnable(GL.GL_MULTISAMPLE);
}
}
示例14: dispose
import com.jogamp.opengl.GL2GL3; //导入依赖的package包/类
@Override
public void dispose(GLAutoDrawable drawable) {
synchronized (rendererLock) {
GL2GL3 gl = drawable.getGL().getGL2GL3();
ArrayList<Integer> vaoArray = window.getVAOs();
int[] vaos = new int[vaoArray.size()];
int index = 0;
for (int vao : vaoArray) {
vaos[index++] = vao;
}
if (vaos.length > 0) {
gl.glDeleteVertexArrays(vaos.length, vaos, 0);
}
}
}
示例15: freeOffscreenTargetImp
import com.jogamp.opengl.GL2GL3; //导入依赖的package包/类
private void freeOffscreenTargetImp(OffscreenTarget target) {
if (!target.isLoaded()) {
return; // Nothing to free
}
sharedContext.makeCurrent();
GL2GL3 gl = sharedContext.getGL().getGL2GL3(); // Just to clean up the code below
int[] temp = new int[2];
temp[0] = target.getDrawFBO();
temp[1] = target.getBlitFBO();
gl.glDeleteFramebuffers(2, temp, 0);
temp[0] = target.getDrawTex();
temp[1] = target.getBlitTex();
gl.glDeleteTextures(2, temp, 0);
temp[0] = target.getDepthBuffer();
gl.glDeleteRenderbuffers(1, temp, 0);
target.free();
sharedContext.release();
}