public static void applyEnvMode(final ApplyMode mode, final TextureUnitRecord unitRecord, final int unit, final TextureStateRecord record, final ContextCapabilities caps) { if (!unitRecord.isValid() || unitRecord.envMode != mode) { checkAndSetUnit(unit, record, caps); GL11.glTexEnvi(GL11.GL_TEXTURE_ENV, GL11.GL_TEXTURE_ENV_MODE, LwjglTextureUtil.getGLEnvMode(mode)); unitRecord.envMode = mode; } }
public TextureStateRecord() { textures = Maps.newHashMap(); units = new TextureUnitRecord[TextureState.MAX_TEXTURES]; for (int i = 0; i < units.length; i++) { units[i] = new TextureUnitRecord(); } }
@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(); } }
@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(); } }
@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 static void applyBlendColor(final Texture texture, final TextureUnitRecord unitRecord, final int unit, final TextureStateRecord record, final ContextCapabilities caps) { final ReadOnlyColorRGBA texBlend = texture.getConstantColor(); if (!unitRecord.isValid() || !unitRecord.blendColor.equals(texBlend)) { checkAndSetUnit(unit, record, caps); TextureRecord.colorBuffer.clear(); TextureRecord.colorBuffer.put(texBlend.getRed()).put(texBlend.getGreen()).put(texBlend.getBlue()) .put(texBlend.getAlpha()); TextureRecord.colorBuffer.rewind(); GL11.glTexEnv(GL11.GL_TEXTURE_ENV, GL11.GL_TEXTURE_ENV_COLOR, TextureRecord.colorBuffer); unitRecord.blendColor.set(texBlend); } }
@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 TextureStateRecord() { textures = Maps.newHashMap(); units = new TextureUnitRecord[TextureState.MAX_TEXTURES]; for (int i = 0; i < units.length; i++) { units[i] = new TextureUnitRecord(); } }
public static void applyEnvMode(final ApplyMode mode, final TextureUnitRecord unitRecord, final int unit, final TextureStateRecord record, final ContextCapabilities caps) { final GL gl = GLContext.getCurrentGL(); if (!unitRecord.isValid() || unitRecord.envMode != mode) { checkAndSetUnit(unit, record, caps); gl.getGL2ES1().glTexEnvi(GL2ES1.GL_TEXTURE_ENV, GL2ES1.GL_TEXTURE_ENV_MODE, JoglTextureUtil.getGLEnvMode(mode)); unitRecord.envMode = mode; } }
public static void applyBlendColor(final Texture texture, final TextureUnitRecord unitRecord, final int unit, final TextureStateRecord record, final ContextCapabilities caps) { final GL gl = GLContext.getCurrentGL(); final ReadOnlyColorRGBA texBlend = texture.getConstantColor(); if (!unitRecord.isValid() || !unitRecord.blendColor.equals(texBlend)) { checkAndSetUnit(unit, record, caps); TextureRecord.colorBuffer.clear(); TextureRecord.colorBuffer.put(texBlend.getRed()).put(texBlend.getGreen()).put(texBlend.getBlue()) .put(texBlend.getAlpha()); TextureRecord.colorBuffer.rewind(); gl.getGL2ES1().glTexEnvfv(GL2ES1.GL_TEXTURE_ENV, GL2ES1.GL_TEXTURE_ENV_COLOR, TextureRecord.colorBuffer); unitRecord.blendColor.set(texBlend); } }
final GL gl = GLContext.getCurrentGL(); if (!unitRecord.isValid() || unitRecord.enabled[Type.TwoDimensional.ordinal()]) { if (!unitRecord.isValid() || unitRecord.enabled[Type.OneDimensional.ordinal()]) { if (!unitRecord.isValid() || unitRecord.enabled[Type.ThreeDimensional.ordinal()]) { if (!unitRecord.isValid() || unitRecord.enabled[Type.CubeMap.ordinal()]) {
public static void applyLodBias(final Texture texture, final TextureUnitRecord unitRecord, final int unit, final TextureStateRecord record, final ContextCapabilities caps) { if (caps.isTextureLodBiasSupported()) { final float bias = texture.getLodBias() < caps.getMaxLodBias() ? texture.getLodBias() : caps .getMaxLodBias(); if (!unitRecord.isValid() || unitRecord.lodBias != bias) { checkAndSetUnit(unit, record, caps); GL11.glTexEnvf(EXTTextureLODBias.GL_TEXTURE_FILTER_CONTROL_EXT, EXTTextureLODBias.GL_TEXTURE_LOD_BIAS_EXT, bias); unitRecord.lodBias = bias; } } }
private static void disableTexturing(final TextureUnitRecord unitRecord, final TextureStateRecord record, final int unit, final ContextCapabilities caps) { if (!unitRecord.isValid() || unitRecord.enabled[Type.TwoDimensional.ordinal()]) { if (!unitRecord.isValid() || unitRecord.enabled[Type.OneDimensional.ordinal()]) { if (!unitRecord.isValid() || unitRecord.enabled[Type.ThreeDimensional.ordinal()]) { if (!unitRecord.isValid() || unitRecord.enabled[Type.CubeMap.ordinal()]) {
private static void disableTexturing(final TextureUnitRecord unitRecord, final TextureStateRecord record, final int unit, final Type exceptedType, final ContextCapabilities caps) { if (exceptedType != Type.TwoDimensional) { if (!unitRecord.isValid() || unitRecord.enabled[Type.TwoDimensional.ordinal()]) { if (!unitRecord.isValid() || unitRecord.enabled[Type.OneDimensional.ordinal()]) { if (!unitRecord.isValid() || unitRecord.enabled[Type.ThreeDimensional.ordinal()]) { if (!unitRecord.isValid() || unitRecord.enabled[Type.CubeMap.ordinal()]) {
if (!unitRecord.isValid() || unitRecord.enabled[Type.TwoDimensional.ordinal()]) { if (!unitRecord.isValid() || unitRecord.enabled[Type.OneDimensional.ordinal()]) { if (!unitRecord.isValid() || unitRecord.enabled[Type.ThreeDimensional.ordinal()]) { if (!unitRecord.isValid() || unitRecord.enabled[Type.CubeMap.ordinal()]) {
public static void applyLodBias(final Texture texture, final TextureUnitRecord unitRecord, final int unit, final TextureStateRecord record, final ContextCapabilities caps) { final float bias = texture.getLodBias() < caps.getMaxLodBias() ? texture.getLodBias() : caps.getMaxLodBias(); if (!unitRecord.isValid() || unitRecord.lodBias != bias) { checkAndSetUnit(unit, record, caps); GL11C.glTexParameterf(getGLType(texture.getType()), GL14C.GL_TEXTURE_LOD_BIAS, bias); unitRecord.lodBias = bias; } }
public static void applyLodBias(final Texture texture, final TextureUnitRecord unitRecord, final int unit, final TextureStateRecord record, final ContextCapabilities caps) { final GL gl = GLContext.getCurrentGL(); if (caps.isTextureLodBiasSupported()) { final float bias = texture.getLodBias() < caps.getMaxLodBias() ? texture.getLodBias() : caps .getMaxLodBias(); if (!unitRecord.isValid() || unitRecord.lodBias != bias) { checkAndSetUnit(unit, record, caps); gl.getGL2ES1().glTexEnvf(GL2.GL_TEXTURE_FILTER_CONTROL, GL2GL3.GL_TEXTURE_LOD_BIAS, bias); unitRecord.lodBias = bias; } } }
if (!unitRecord.isValid() || unitRecord.envRGBScale != texture.getCombineScaleRGB()) { if (!checked) { checkAndSetUnit(unit, record, caps); if (!unitRecord.isValid() || unitRecord.envAlphaScale != texture.getCombineScaleAlpha()) { if (!checked) { checkAndSetUnit(unit, record, caps); if (!unitRecord.isValid() || unitRecord.rgbCombineFunc != rgbCombineFunc) { if (!checked) { checkAndSetUnit(unit, record, caps); if (!unitRecord.isValid() || unitRecord.combSrcRGB0 != combSrcRGB) { if (!checked) { checkAndSetUnit(unit, record, caps); if (!unitRecord.isValid() || unitRecord.combOpRGB0 != combOpRGB) { if (!checked) { checkAndSetUnit(unit, record, caps); if (!unitRecord.isValid() || unitRecord.combSrcRGB1 != combSrcRGB) { if (!checked) { checkAndSetUnit(unit, record, caps); if (!unitRecord.isValid() || unitRecord.combOpRGB1 != combOpRGB) { if (!checked) { checkAndSetUnit(unit, record, caps); if (!unitRecord.isValid() || unitRecord.combSrcRGB2 != combSrcRGB) {
if (!unitRecord.isValid() || unitRecord.envRGBScale != texture.getCombineScaleRGB()) { if (!checked) { checkAndSetUnit(unit, record, caps); if (!unitRecord.isValid() || unitRecord.envAlphaScale != texture.getCombineScaleAlpha()) { if (!checked) { checkAndSetUnit(unit, record, caps); if (!unitRecord.isValid() || unitRecord.rgbCombineFunc != rgbCombineFunc) { if (!checked) { checkAndSetUnit(unit, record, caps); if (!unitRecord.isValid() || unitRecord.combSrcRGB0 != combSrcRGB) { if (!checked) { checkAndSetUnit(unit, record, caps); if (!unitRecord.isValid() || unitRecord.combOpRGB0 != combOpRGB) { if (!checked) { checkAndSetUnit(unit, record, caps); if (!unitRecord.isValid() || unitRecord.combSrcRGB1 != combSrcRGB) { if (!checked) { checkAndSetUnit(unit, record, caps); if (!unitRecord.isValid() || unitRecord.combOpRGB1 != combOpRGB) { if (!checked) { checkAndSetUnit(unit, record, caps); if (!unitRecord.isValid() || unitRecord.combSrcRGB2 != combSrcRGB) {
case SphereMap: if (!unitRecord.isValid() || unitRecord.textureGenSMode != GL11.GL_SPHERE_MAP) { checkAndSetUnit(unit, record, caps); case NormalMap: if (!unitRecord.isValid() || unitRecord.textureGenSMode != ARBTextureCubeMap.GL_NORMAL_MAP_ARB) { checkAndSetUnit(unit, record, caps); GL11.glTexGeni(GL11.GL_S, GL11.GL_TEXTURE_GEN_MODE, ARBTextureCubeMap.GL_NORMAL_MAP_ARB); case ReflectionMap: if (!unitRecord.isValid() || unitRecord.textureGenSMode != ARBTextureCubeMap.GL_REFLECTION_MAP_ARB) { checkAndSetUnit(unit, record, caps); if (!unitRecord.isValid() || unitRecord.textureGenSMode != GL11.GL_EYE_LINEAR) { GL11.glTexGeni(GL11.GL_S, GL11.GL_TEXTURE_GEN_MODE, GL11.GL_EYE_LINEAR); unitRecord.textureGenSMode = GL11.GL_EYE_LINEAR; if (!unitRecord.isValid() || unitRecord.textureGenSMode != GL11.GL_OBJECT_LINEAR) { GL11.glTexGeni(GL11.GL_S, GL11.GL_TEXTURE_GEN_MODE, GL11.GL_OBJECT_LINEAR); unitRecord.textureGenSMode = GL11.GL_OBJECT_LINEAR;