@Override public void validate() { super.validate(); final Collection<TextureRecord> texs = textures.values(); for (final TextureRecord tr : texs) { tr.validate(); } for (int i = 0; i < units.length; i++) { units[i].validate(); } } }
public TextureRecord getTextureRecord(final Integer textureId, final Texture.Type type) { TextureRecord tr = textures.get(textureId); if (tr == null) { tr = new TextureRecord(); textures.put(textureId, tr); } return tr; }
@Override public void invalidate() { super.invalidate(); currentUnit = -1; final Collection<TextureRecord> texs = textures.values(); for (final TextureRecord tr : texs) { tr.invalidate(); } for (int i = 0; i < units.length; i++) { units[i].invalidate(); } }
public static void applyBorderColor(final Texture texture, final TextureRecord texRecord, final int unit, final TextureStateRecord record) { final ReadOnlyColorRGBA texBorder = texture.getBorderColor(); if (!texRecord.isValid() || !texRecord.borderColor.equals(texBorder)) { TextureRecord.colorBuffer.clear(); TextureRecord.colorBuffer.put(texBorder.getRed()).put(texBorder.getGreen()).put(texBorder.getBlue()) .put(texBorder.getAlpha()); TextureRecord.colorBuffer.rewind(); GL11.glTexParameter(getGLType(texture.getType()), GL11.GL_TEXTURE_BORDER_COLOR, TextureRecord.colorBuffer); texRecord.borderColor.set(texBorder); } }
public static void applyBorderColor(final Texture texture, final TextureRecord texRecord, final int unit, final TextureStateRecord record) { final ReadOnlyColorRGBA texBorder = texture.getBorderColor(); if (!texRecord.isValid() || !texRecord.borderColor.equals(texBorder)) { TextureRecord.colorBuffer.clear(); TextureRecord.colorBuffer.put(texBorder.getRed()).put(texBorder.getGreen()).put(texBorder.getBlue()) .put(texBorder.getAlpha()); TextureRecord.colorBuffer.rewind(); GL11C.glTexParameterfv(getGLType(texture.getType()), GL11C.GL_TEXTURE_BORDER_COLOR, TextureRecord.colorBuffer); texRecord.borderColor.set(texBorder); } }
/** * Check if the wrap mode of this particular texture has been changed and apply as needed. * * @param texture * our texture object * @param texRecord * our record of the last state of the unit in gl * @param record */ public static void applyWrap(final Texture1D texture, final TextureRecord texRecord, final int unit, final TextureStateRecord record, final ContextCapabilities caps) { final int wrapS = getGLWrap(texture.getWrap(WrapAxis.S), caps); if (!texRecord.isValid() || texRecord.wrapS != wrapS) { checkAndSetUnit(unit, record, caps); GL11C.glTexParameteri(GL11C.GL_TEXTURE_1D, GL11C.GL_TEXTURE_WRAP_S, wrapS); texRecord.wrapS = wrapS; } }
@Override public void validate() { super.validate(); final Collection<TextureRecord> texs = textures.values(); for (final TextureRecord tr : texs) { tr.validate(); } for (int i = 0; i < units.length; i++) { units[i].validate(); } }
public TextureRecord getTextureRecord(final Integer textureId, final Texture.Type type) { TextureRecord tr = textures.get(textureId); if (tr == null) { tr = new TextureRecord(); textures.put(textureId, tr); } return tr; }
@Override public void invalidate() { super.invalidate(); currentUnit = -1; hint = -1; final Collection<TextureRecord> texs = textures.values(); for (final TextureRecord tr : texs) { tr.invalidate(); } for (int i = 0; i < units.length; i++) { units[i].invalidate(); } }
/** * Check if the wrap mode of this particular texture has been changed and apply as needed. * * @param texture * our texture object * @param texRecord * our record of the last state of the unit in gl * @param record */ public static void applyWrap(final Texture1D texture, final TextureRecord texRecord, final int unit, final TextureStateRecord record, final ContextCapabilities caps) { final int wrapS = getGLWrap(texture.getWrap(WrapAxis.S), caps); if (!texRecord.isValid() || texRecord.wrapS != wrapS) { checkAndSetUnit(unit, record, caps); GL11.glTexParameteri(GL11.GL_TEXTURE_1D, GL11.GL_TEXTURE_WRAP_S, wrapS); texRecord.wrapS = wrapS; } }
public static void applyBorderColor(final Texture texture, final TextureRecord texRecord, final int unit, final TextureStateRecord record, final ContextCapabilities caps) { final GL gl = GLContext.getCurrentGL(); final ReadOnlyColorRGBA texBorder = texture.getBorderColor(); if (!texRecord.isValid() || !texRecord.borderColor.equals(texBorder)) { TextureRecord.colorBuffer.clear(); TextureRecord.colorBuffer.put(texBorder.getRed()).put(texBorder.getGreen()).put(texBorder.getBlue()) .put(texBorder.getAlpha()); TextureRecord.colorBuffer.rewind(); gl.glTexParameterfv(getGLType(texture.getType()), GL2GL3.GL_TEXTURE_BORDER_COLOR, TextureRecord.colorBuffer); texRecord.borderColor.set(texBorder); } }
/** * Check if the wrap mode of this particular texture has been changed and apply as needed. * * @param texture * our texture object * @param texRecord * our record of the last state of the unit in gl * @param record */ public static void applyWrap(final Texture2D texture, final TextureRecord texRecord, final int unit, final TextureStateRecord record, final ContextCapabilities caps) { final int wrapS = getGLWrap(texture.getWrap(WrapAxis.S), caps); final int wrapT = getGLWrap(texture.getWrap(WrapAxis.T), caps); if (!texRecord.isValid() || texRecord.wrapS != wrapS) { checkAndSetUnit(unit, record, caps); GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_S, wrapS); texRecord.wrapS = wrapS; } if (!texRecord.isValid() || texRecord.wrapT != wrapT) { checkAndSetUnit(unit, record, caps); GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_T, wrapT); texRecord.wrapT = wrapT; } }
/** * Check if the wrap mode of this particular texture has been changed and apply as needed. * * @param texture * our texture object * @param texRecord * our record of the last state of the unit in gl * @param record */ public static void applyWrap(final Texture2D texture, final TextureRecord texRecord, final int unit, final TextureStateRecord record, final ContextCapabilities caps) { final int wrapS = getGLWrap(texture.getWrap(WrapAxis.S), caps); final int wrapT = getGLWrap(texture.getWrap(WrapAxis.T), caps); if (!texRecord.isValid() || texRecord.wrapS != wrapS) { checkAndSetUnit(unit, record, caps); GL11C.glTexParameteri(GL11C.GL_TEXTURE_2D, GL11C.GL_TEXTURE_WRAP_S, wrapS); texRecord.wrapS = wrapS; } if (!texRecord.isValid() || texRecord.wrapT != wrapT) { checkAndSetUnit(unit, record, caps); GL11C.glTexParameteri(GL11C.GL_TEXTURE_2D, GL11C.GL_TEXTURE_WRAP_T, wrapT); texRecord.wrapT = wrapT; } }
/** * Check if the wrap mode of this particular texture has been changed and apply as needed. * * @param texture * our texture object * @param texRecord * our record of the last state of the unit in gl * @param record */ public static void applyWrap(final Texture3D texture, final TextureRecord texRecord, final int unit, final TextureStateRecord record, final ContextCapabilities caps) { final int wrapS = getGLWrap(texture.getWrap(WrapAxis.S), caps); final int wrapT = getGLWrap(texture.getWrap(WrapAxis.T), caps); final int wrapR = getGLWrap(texture.getWrap(WrapAxis.R), caps); if (!texRecord.isValid() || texRecord.wrapS != wrapS) { checkAndSetUnit(unit, record, caps); GL11C.glTexParameteri(GL12C.GL_TEXTURE_3D, GL11C.GL_TEXTURE_WRAP_S, wrapS); texRecord.wrapS = wrapS; } if (!texRecord.isValid() || texRecord.wrapT != wrapT) { checkAndSetUnit(unit, record, caps); GL11C.glTexParameteri(GL12C.GL_TEXTURE_3D, GL11C.GL_TEXTURE_WRAP_T, wrapT); texRecord.wrapT = wrapT; } if (!texRecord.isValid() || texRecord.wrapR != wrapR) { checkAndSetUnit(unit, record, caps); GL11C.glTexParameteri(GL12C.GL_TEXTURE_3D, GL12C.GL_TEXTURE_WRAP_R, wrapR); texRecord.wrapR = wrapR; } }
/** * Check if the wrap mode of this particular texture has been changed and apply as needed. * * @param cubeMap * our texture object * @param texRecord * our record of the last state of the unit in gl * @param record */ public static void applyWrap(final TextureCubeMap cubeMap, final TextureRecord texRecord, final int unit, final TextureStateRecord record, final ContextCapabilities caps) { final int wrapS = getGLWrap(cubeMap.getWrap(WrapAxis.S), caps); final int wrapT = getGLWrap(cubeMap.getWrap(WrapAxis.T), caps); final int wrapR = getGLWrap(cubeMap.getWrap(WrapAxis.R), caps); if (!texRecord.isValid() || texRecord.wrapS != wrapS) { checkAndSetUnit(unit, record, caps); GL11C.glTexParameteri(GL13C.GL_TEXTURE_CUBE_MAP, GL11C.GL_TEXTURE_WRAP_S, wrapS); texRecord.wrapS = wrapS; } if (!texRecord.isValid() || texRecord.wrapT != wrapT) { checkAndSetUnit(unit, record, caps); GL11C.glTexParameteri(GL13C.GL_TEXTURE_CUBE_MAP, GL11C.GL_TEXTURE_WRAP_T, wrapT); texRecord.wrapT = wrapT; } if (!texRecord.isValid() || texRecord.wrapR != wrapR) { checkAndSetUnit(unit, record, caps); GL11C.glTexParameteri(GL13C.GL_TEXTURE_CUBE_MAP, GL12C.GL_TEXTURE_WRAP_R, wrapR); texRecord.wrapR = wrapR; } }
/** * Check if the wrap mode of this particular texture has been changed and apply as needed. * * @param texture * our texture object * @param texRecord * our record of the last state of the unit in gl * @param record */ public static void applyWrap(final Texture1D texture, final TextureRecord texRecord, final int unit, final TextureStateRecord record, final ContextCapabilities caps) { final GL gl = GLContext.getCurrentGL(); final int wrapS = getGLWrap(texture.getWrap(WrapAxis.S), caps); if (!texRecord.isValid() || texRecord.wrapS != wrapS) { checkAndSetUnit(unit, record, caps); gl.glTexParameteri(GL2GL3.GL_TEXTURE_1D, GL.GL_TEXTURE_WRAP_S, wrapS); texRecord.wrapS = wrapS; } }
/** * Check if the wrap mode of this particular texture has been changed and apply as needed. * * @param texture * our texture object * @param texRecord * our record of the last state of the unit in gl * @param record */ public static void applyWrap(final Texture2D texture, final TextureRecord texRecord, final int unit, final TextureStateRecord record, final ContextCapabilities caps) { final GL gl = GLContext.getCurrentGL(); final int wrapS = getGLWrap(texture.getWrap(WrapAxis.S), caps); final int wrapT = getGLWrap(texture.getWrap(WrapAxis.T), caps); if (!texRecord.isValid() || texRecord.wrapS != wrapS) { checkAndSetUnit(unit, record, caps); gl.glTexParameteri(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_WRAP_S, wrapS); texRecord.wrapS = wrapS; } if (!texRecord.isValid() || texRecord.wrapT != wrapT) { checkAndSetUnit(unit, record, caps); gl.glTexParameteri(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_WRAP_T, wrapT); texRecord.wrapT = wrapT; } }