private static void applyFunc(final int glfunc, final int stencilRef, final int funcMask, final StencilStateRecord record, final int face) { final GL gl = GLContext.getCurrentGL(); // if (!record.isValid() || glfunc != record.func[face] || stencilRef != record.ref[face] // || funcMask != record.funcMask[face]) { gl.glStencilFunc(glfunc, stencilRef, funcMask); // record.func[face] = glfunc; // record.ref[face] = stencilRef; // record.funcMask[face] = funcMask; // } }
private static void updateShaderUniform(final ShaderVariableInt4 shaderUniform) { final GL gl = GLContext.getCurrentGL(); gl.getGL2ES2().glUniform4i(shaderUniform.variableID, shaderUniform.value1, shaderUniform.value2, shaderUniform.value3, shaderUniform.value4); }
@Override public void setMatrixMode(final int matrixMode) { final GL2ES1 gl = GLContext.getCurrentGL().getGL2ES1(); gl.glMatrixMode(matrixMode); }
@Override public void pushMatrix() { final GL2ES1 gl = GLContext.getCurrentGL().getGL2ES1(); gl.glPushMatrix(); }
@Override public void multMatrix(final FloatBuffer fb) { final GL2ES1 gl = GLContext.getCurrentGL().getGL2ES1(); gl.glMultMatrixf(fb); }
public void copyToTexture(final Texture tex, final int x, final int y, final int width, final int height, final int xoffset, final int yoffset) { final GL gl = GLContext.getCurrentGL(); JoglTextureStateUtil.doTextureBind(tex, 0, true); gl.glCopyTexSubImage2D(GL.GL_TEXTURE_2D, 0, xoffset, yoffset, x, y, width, height); }
@Override protected void clearBuffers(final int clear) { final GL gl = GLContext.getCurrentGL(); gl.glDisable(GL.GL_SCISSOR_TEST); _parentRenderer.clearBuffers(clear); }
public void deleteDisplayLists(final Collection<Integer> ids) { final GL gl = GLContext.getCurrentGL(); for (final Integer i : ids) { if (i != null && i != 0) { gl.getGL2().glDeleteLists(i, 1); } } }
public JoglRendererRecord() { final GL gl = GLContext.getCurrentGL(); if (gl.isGL2ES1()) { _matrixBackend = new JoglRealMatrixBackend(); } else { _matrixBackend = new JoglSimulatedMatrixBackend(); } }
/** * Start a new display list. All further renderer commands that can be stored in a display list are part of this new * list until {@link #endDisplayList()} is called. * * @return id of new display list */ public int startDisplayList() { final GL gl = GLContext.getCurrentGL(); final int id = gl.getGL2().glGenLists(1); gl.getGL2().glNewList(id, GL2.GL_COMPILE); return id; }
private static void setQuadratic(final int index, final float quad, final LightRecord lr, final boolean force) { final GL gl = GLContext.getCurrentGL(); if (force || quad != lr.getQuadratic()) { gl.getGL2().glLightf(GLLightingFunc.GL_LIGHT0 + index, GLLightingFunc.GL_QUADRATIC_ATTENUATION, quad); lr.setQuadratic(quad); } }
public static void setBoundVBO(final RendererRecord rendRecord, final int id) { final GL gl = GLContext.getCurrentGL(); if (!rendRecord.isVboValid() || rendRecord.getCurrentVboId() != id) { gl.glBindBuffer(GL.GL_ARRAY_BUFFER, id); rendRecord.setCurrentVboId(id); rendRecord.setVboValid(true); } }
private static void setSpotCutoff(final int index, final LightStateRecord record, final float cutoff, final LightRecord lr) { final GL gl = GLContext.getCurrentGL(); if (!record.isValid() || lr.getSpotCutoff() != cutoff) { gl.getGL2().glLightf(GLLightingFunc.GL_LIGHT0 + index, GLLightingFunc.GL_SPOT_CUTOFF, cutoff); lr.setSpotCutoff(cutoff); } } }
private void setDrawBuffers(final int maxEntry) { final GL gl = GLContext.getCurrentGL(); if (maxEntry <= 1) { setDrawBuffer(maxEntry != 0 ? GL.GL_COLOR_ATTACHMENT0 : GL.GL_NONE); } else { // We should only get to this point if we support ARBDrawBuffers. _attachBuffer.clear(); _attachBuffer.limit(maxEntry); gl.getGL2GL3().glDrawBuffers(_attachBuffer.limit(), _attachBuffer); // TODO Check <size> } }
@Override protected void takedownForSingleTexDraw(final Texture tex) { final GL gl = GLContext.getCurrentGL(); // automatically generate mipmaps for our texture. if (tex.getMinificationFilter().usesMipMapLevels()) { JoglTextureStateUtil.doTextureBind(tex, 0, true); gl.glGenerateMipmap(JoglTextureStateUtil.getGLType(tex.getType())); } }
private static void setTwoSided(final boolean twoSided, final LightStateRecord record) { final GL gl = GLContext.getCurrentGL(); if (!record.isValid() || record.isTwoSidedOn() != twoSided) { if (twoSided) { gl.getGL2().glLightModeli(GL2ES1.GL_LIGHT_MODEL_TWO_SIDE, GL.GL_TRUE); } else { gl.getGL2().glLightModeli(GL2ES1.GL_LIGHT_MODEL_TWO_SIDE, GL.GL_FALSE); } record.setTwoSidedOn(twoSided); } }
@Override protected void blitMSFBO() { final GL gl = GLContext.getCurrentGL(); gl.glBindFramebuffer(GL2GL3.GL_READ_FRAMEBUFFER, _msfboID); gl.glBindFramebuffer(GL2GL3.GL_DRAW_FRAMEBUFFER, _fboID); gl.getGL2GL3().glBlitFramebuffer(0, 0, _width, _height, 0, 0, _width, _height, GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT, GL.GL_NEAREST); gl.glBindFramebuffer(GL2GL3.GL_READ_FRAMEBUFFER, 0); gl.glBindFramebuffer(GL2GL3.GL_DRAW_FRAMEBUFFER, 0); gl.glBindFramebuffer(GL.GL_FRAMEBUFFER, 0); }
private static void setSpecularControl(final boolean separateSpecularOn, final LightStateRecord record) { final GL gl = GLContext.getCurrentGL(); if (!record.isValid() || record.isSeparateSpecular() != separateSpecularOn) { if (separateSpecularOn) { gl.getGL2().glLightModeli(GL2.GL_LIGHT_MODEL_COLOR_CONTROL, GL2.GL_SEPARATE_SPECULAR_COLOR); } else { gl.getGL2().glLightModeli(GL2.GL_LIGHT_MODEL_COLOR_CONTROL, GL2.GL_SINGLE_COLOR); } record.setSeparateSpecular(separateSpecularOn); } }
public void applyDefaultColor(final ReadOnlyColorRGBA defaultColor) { final GL gl = GLContext.getCurrentGL(); if (defaultColor != null) { gl.getGL2ES1().glColor4f(defaultColor.getRed(), defaultColor.getGreen(), defaultColor.getBlue(), defaultColor.getAlpha()); } else { gl.getGL2ES1().glColor4f(1, 1, 1, 1); } }
public static void setClippingEnabled(final RendererRecord rendRecord, final boolean enabled) { final GL gl = GLContext.getCurrentGL(); if (enabled && (!rendRecord.isClippingTestValid() || !rendRecord.isClippingTestEnabled())) { gl.glEnable(GL.GL_SCISSOR_TEST); rendRecord.setClippingTestEnabled(true); } else if (!enabled && (!rendRecord.isClippingTestValid() || rendRecord.isClippingTestEnabled())) { gl.glDisable(GL.GL_SCISSOR_TEST); rendRecord.setClippingTestEnabled(false); } rendRecord.setClippingTestValid(true); } }