/* Class487_Sub4_Sub2 - Decompiled by JODE
 * Visit http://jode.sourceforge.net/
 */
import jaggl.OpenGL;

public class Class487_Sub4_Sub2 extends Class487_Sub4
{
    static final String aString11269
	= "void main() {\n\tvec3 outCol = clamp(texture2DRect(sceneTex, gl_TexCoord[0].xy).xyz,0.0,1.0);\n\tvec2 Offset = vec2(0.5 / 256.0, 0.5 / 16.0);\n\tvec3 UVFrac = remap_uv(outCol);\n\tvec2 coordA = Offset + vec2(UVFrac.x , UVFrac.y);\n\tvec2 coordB = coordA + vec2(1.0 / 16.0, 0.0);\n\toutCol *= paramsWeightings.x;\n\n\toutCol += mix( texture2D(remap_1, coordA), texture2D(remap_1, coordB), UVFrac.z ).rgb * paramsWeightings.y;\n\n\tgl_FragColor = vec4(outCol, 1.0);\n}\n";
    static final String aString11270
	= "void main() {\n\tvec3 col = texture2DRect(sceneTex, gl_TexCoord[0].xy).xyz;\n\tcol = clamp(col,0.0,1.0);\n\tvec3 outCol = col * paramsWeightings.x;\n\t//Clamp the colour coords so we sample correctly\n\tfloat minC = 0.03125; // 0.5/16.0\n\tfloat maxC = 0.96875; // 1.0-(0.5/16.0)\n\tcol = mix(vec3(minC,minC,minC), vec3(maxC,maxC,maxC), col);\n\n\toutCol += texture3D(remap_1, col).rgb * paramsWeightings.y;\n\toutCol += texture3D(remap_2, col).rgb * paramsWeightings.z;\n\n\tgl_FragColor = vec4(outCol, 1.0);\n}\n";
    static int anInt11271;
    static float aFloat11272;
    static final String aString11273
	= "#extension GL_ARB_texture_rectangle : enable\nuniform vec4 paramsWeightings;\nuniform sampler2DRect sceneTex;\nuniform sampler2D remap_1, remap_2, remap_3, remap_4;\n\nvec3 remap_uv(vec3 in_coord) {\n\tfloat Scale = 15.0 / 16.0;\n\tfloat IntB = floor(in_coord.b * 14.9999) / 16.0;\n\tfloat FracB = in_coord.b * 15.0 - IntB * 16.0;\n\tfloat U = IntB + in_coord.r * Scale / 16.0;\n\tfloat V = in_coord.g * Scale;\n\treturn vec3(U,V,FracB);\n}\n\n";
    static Class149_Sub1[] aClass149_Sub1Array11274;
    static final String aString11275
	= "void main() {\n\tvec3 outCol = clamp(texture2DRect(sceneTex, gl_TexCoord[0].xy).xyz,0.0,1.0);\n\tvec2 Offset = vec2(0.5 / 256.0, 0.5 / 16.0);\n\tvec3 UVFrac = remap_uv(outCol);\n\tvec2 coordA = Offset + vec2(UVFrac.x , UVFrac.y);\n\tvec2 coordB = coordA + vec2(1.0 / 16.0, 0.0);\n\toutCol *= paramsWeightings.x;\n\n\toutCol += mix( texture2D(remap_1, coordA), texture2D(remap_1, coordB), UVFrac.z ).rgb * paramsWeightings.y;\n\toutCol += mix( texture2D(remap_2, coordA), texture2D(remap_2, coordB), UVFrac.z ).rgb * paramsWeightings.z;\n\n\tgl_FragColor = vec4(outCol, 1.0);\n}\n";
    static final String aString11276
	= "void main() {\n\tvec3 outCol = clamp(texture2DRect(sceneTex, gl_TexCoord[0].xy).xyz,0.0,1.0);\n\tvec2 Offset = vec2(0.5 / 256.0, 0.5 / 16.0);\n\tvec3 UVFrac = remap_uv(outCol);\n\tvec2 coordA = Offset + vec2(UVFrac.x , UVFrac.y);\n\tvec2 coordB = coordA + vec2(1.0 / 16.0, 0.0);\n\toutCol *= paramsWeightings.x;\n\n\toutCol += mix( texture2D(remap_1, coordA), texture2D(remap_1, coordB), UVFrac.z ).rgb * paramsWeightings.y;\n\toutCol += mix( texture2D(remap_2, coordA), texture2D(remap_2, coordB), UVFrac.z ).rgb * paramsWeightings.z;\n\toutCol += mix( texture2D(remap_3, coordA), texture2D(remap_3, coordB), UVFrac.z ).rgb * paramsWeightings.w;\n\n\tgl_FragColor = vec4(outCol, 1.0);\n}\n";
    static float[] aFloatArray11277 = { 0.0F, 0.0F, 0.0F };
    static final String aString11278
	= "void main() {\n\tvec3 col = texture2DRect(sceneTex, gl_TexCoord[0].xy).xyz;\n\tcol = clamp(col,0.0,1.0);\n\tvec3 outCol = col * paramsWeightings.x;\n\t//Clamp the colour coords so we sample correctly\n\tfloat minC = 0.03125; // 0.5/16.0\n\tfloat maxC = 0.96875; // 1.0-(0.5/16.0)\n\tcol = mix(vec3(minC,minC,minC), vec3(maxC,maxC,maxC), col);\n\n\toutCol += texture3D(remap_1, col).rgb * paramsWeightings.y;\n\n\tgl_FragColor = vec4(outCol, 1.0);\n}\n";
    static final String aString11279
	= "#extension GL_ARB_texture_rectangle : enable\nuniform vec4 paramsWeightings;\nuniform sampler2DRect sceneTex;\nuniform sampler3D remap_1, remap_2, remap_3, remap_4;\n\n";
    static final String aString11280
	= "void main() {\n\tvec3 col = texture2DRect(sceneTex, gl_TexCoord[0].xy).xyz;\n\tcol = clamp(col,0.0,1.0);\n\tvec3 outCol = col * paramsWeightings.x;\n\t//Clamp the colour coords so we sample correctly\n\tfloat minC = 0.03125; // 0.5/16.0\n\tfloat maxC = 0.96875; // 1.0-(0.5/16.0)\n\tcol = mix(vec3(minC,minC,minC), vec3(maxC,maxC,maxC), col);\n\n\toutCol += texture3D(remap_1, col).rgb * paramsWeightings.y;\n\toutCol += texture3D(remap_2, col).rgb * paramsWeightings.z;\n\toutCol += texture3D(remap_3, col).rgb * paramsWeightings.w;\n\n\tgl_FragColor = vec4(outCol, 1.0);\n}\n";
    Class90[] aClass90Array11281 = null;
    
    boolean method9063() {
	return ((Class487_Sub4_Sub2) this).aClass90Array11281 != null;
    }
    
    boolean method10247() {
	return (((Class151_Sub3)
		 ((Class487_Sub4_Sub2) this).aClass151_Sub3_10071)
		.aBool9381);
    }
    
    boolean method9064() {
	return ((Class487_Sub4_Sub2) this).aClass90Array11281 != null;
    }
    
    boolean method9065() {
	if (((Class151_Sub3) ((Class487_Sub4_Sub2) this).aClass151_Sub3_10071)
	    .aBool9381) {
	    ((Class487_Sub4_Sub2) this).aClass90Array11281 = new Class90[3];
	    if (((Class151_Sub3)
		 ((Class487_Sub4_Sub2) this).aClass151_Sub3_10071)
		.aBool9372) {
		((Class487_Sub4_Sub2) this).aClass90Array11281[0]
		    = (Class90.method1246
		       (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			(new Class102[]
			 { Class102.method1407
			   (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			    35632,
			    ("#extension GL_ARB_texture_rectangle : enable\nuniform vec4 paramsWeightings;\nuniform sampler2DRect sceneTex;\nuniform sampler3D remap_1, remap_2, remap_3, remap_4;\n\n"
				 .concat
			     ("void main() {\n\tvec3 col = texture2DRect(sceneTex, gl_TexCoord[0].xy).xyz;\n\tcol = clamp(col,0.0,1.0);\n\tvec3 outCol = col * paramsWeightings.x;\n\t//Clamp the colour coords so we sample correctly\n\tfloat minC = 0.03125; // 0.5/16.0\n\tfloat maxC = 0.96875; // 1.0-(0.5/16.0)\n\tcol = mix(vec3(minC,minC,minC), vec3(maxC,maxC,maxC), col);\n\n\toutCol += texture3D(remap_1, col).rgb * paramsWeightings.y;\n\n\tgl_FragColor = vec4(outCol, 1.0);\n}\n"))) })));
		((Class487_Sub4_Sub2) this).aClass90Array11281[1]
		    = (Class90.method1246
		       (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			(new Class102[]
			 { Class102.method1407
			   (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			    35632,
			    ("#extension GL_ARB_texture_rectangle : enable\nuniform vec4 paramsWeightings;\nuniform sampler2DRect sceneTex;\nuniform sampler3D remap_1, remap_2, remap_3, remap_4;\n\n"
				 .concat
			     ("void main() {\n\tvec3 col = texture2DRect(sceneTex, gl_TexCoord[0].xy).xyz;\n\tcol = clamp(col,0.0,1.0);\n\tvec3 outCol = col * paramsWeightings.x;\n\t//Clamp the colour coords so we sample correctly\n\tfloat minC = 0.03125; // 0.5/16.0\n\tfloat maxC = 0.96875; // 1.0-(0.5/16.0)\n\tcol = mix(vec3(minC,minC,minC), vec3(maxC,maxC,maxC), col);\n\n\toutCol += texture3D(remap_1, col).rgb * paramsWeightings.y;\n\toutCol += texture3D(remap_2, col).rgb * paramsWeightings.z;\n\n\tgl_FragColor = vec4(outCol, 1.0);\n}\n"))) })));
		((Class487_Sub4_Sub2) this).aClass90Array11281[2]
		    = (Class90.method1246
		       (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			(new Class102[]
			 { Class102.method1407
			   (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			    35632,
			    ("#extension GL_ARB_texture_rectangle : enable\nuniform vec4 paramsWeightings;\nuniform sampler2DRect sceneTex;\nuniform sampler3D remap_1, remap_2, remap_3, remap_4;\n\n"
				 .concat
			     ("void main() {\n\tvec3 col = texture2DRect(sceneTex, gl_TexCoord[0].xy).xyz;\n\tcol = clamp(col,0.0,1.0);\n\tvec3 outCol = col * paramsWeightings.x;\n\t//Clamp the colour coords so we sample correctly\n\tfloat minC = 0.03125; // 0.5/16.0\n\tfloat maxC = 0.96875; // 1.0-(0.5/16.0)\n\tcol = mix(vec3(minC,minC,minC), vec3(maxC,maxC,maxC), col);\n\n\toutCol += texture3D(remap_1, col).rgb * paramsWeightings.y;\n\toutCol += texture3D(remap_2, col).rgb * paramsWeightings.z;\n\toutCol += texture3D(remap_3, col).rgb * paramsWeightings.w;\n\n\tgl_FragColor = vec4(outCol, 1.0);\n}\n"))) })));
		for (int i = 0; i < 3; i++) {
		    if (((Class487_Sub4_Sub2) this).aClass90Array11281[i]
			== null)
			return false;
		}
	    } else {
		((Class487_Sub4_Sub2) this).aClass90Array11281[0]
		    = (Class90.method1246
		       (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			(new Class102[]
			 { Class102.method1407
			   (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			    35632,
			    ("#extension GL_ARB_texture_rectangle : enable\nuniform vec4 paramsWeightings;\nuniform sampler2DRect sceneTex;\nuniform sampler2D remap_1, remap_2, remap_3, remap_4;\n\nvec3 remap_uv(vec3 in_coord) {\n\tfloat Scale = 15.0 / 16.0;\n\tfloat IntB = floor(in_coord.b * 14.9999) / 16.0;\n\tfloat FracB = in_coord.b * 15.0 - IntB * 16.0;\n\tfloat U = IntB + in_coord.r * Scale / 16.0;\n\tfloat V = in_coord.g * Scale;\n\treturn vec3(U,V,FracB);\n}\n\n"
				 .concat
			     ("void main() {\n\tvec3 outCol = clamp(texture2DRect(sceneTex, gl_TexCoord[0].xy).xyz,0.0,1.0);\n\tvec2 Offset = vec2(0.5 / 256.0, 0.5 / 16.0);\n\tvec3 UVFrac = remap_uv(outCol);\n\tvec2 coordA = Offset + vec2(UVFrac.x , UVFrac.y);\n\tvec2 coordB = coordA + vec2(1.0 / 16.0, 0.0);\n\toutCol *= paramsWeightings.x;\n\n\toutCol += mix( texture2D(remap_1, coordA), texture2D(remap_1, coordB), UVFrac.z ).rgb * paramsWeightings.y;\n\n\tgl_FragColor = vec4(outCol, 1.0);\n}\n"))) })));
		((Class487_Sub4_Sub2) this).aClass90Array11281[1]
		    = (Class90.method1246
		       (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			(new Class102[]
			 { Class102.method1407
			   (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			    35632,
			    ("#extension GL_ARB_texture_rectangle : enable\nuniform vec4 paramsWeightings;\nuniform sampler2DRect sceneTex;\nuniform sampler2D remap_1, remap_2, remap_3, remap_4;\n\nvec3 remap_uv(vec3 in_coord) {\n\tfloat Scale = 15.0 / 16.0;\n\tfloat IntB = floor(in_coord.b * 14.9999) / 16.0;\n\tfloat FracB = in_coord.b * 15.0 - IntB * 16.0;\n\tfloat U = IntB + in_coord.r * Scale / 16.0;\n\tfloat V = in_coord.g * Scale;\n\treturn vec3(U,V,FracB);\n}\n\n"
				 .concat
			     ("void main() {\n\tvec3 outCol = clamp(texture2DRect(sceneTex, gl_TexCoord[0].xy).xyz,0.0,1.0);\n\tvec2 Offset = vec2(0.5 / 256.0, 0.5 / 16.0);\n\tvec3 UVFrac = remap_uv(outCol);\n\tvec2 coordA = Offset + vec2(UVFrac.x , UVFrac.y);\n\tvec2 coordB = coordA + vec2(1.0 / 16.0, 0.0);\n\toutCol *= paramsWeightings.x;\n\n\toutCol += mix( texture2D(remap_1, coordA), texture2D(remap_1, coordB), UVFrac.z ).rgb * paramsWeightings.y;\n\toutCol += mix( texture2D(remap_2, coordA), texture2D(remap_2, coordB), UVFrac.z ).rgb * paramsWeightings.z;\n\n\tgl_FragColor = vec4(outCol, 1.0);\n}\n"))) })));
		((Class487_Sub4_Sub2) this).aClass90Array11281[2]
		    = (Class90.method1246
		       (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			(new Class102[]
			 { Class102.method1407
			   (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			    35632,
			    ("#extension GL_ARB_texture_rectangle : enable\nuniform vec4 paramsWeightings;\nuniform sampler2DRect sceneTex;\nuniform sampler2D remap_1, remap_2, remap_3, remap_4;\n\nvec3 remap_uv(vec3 in_coord) {\n\tfloat Scale = 15.0 / 16.0;\n\tfloat IntB = floor(in_coord.b * 14.9999) / 16.0;\n\tfloat FracB = in_coord.b * 15.0 - IntB * 16.0;\n\tfloat U = IntB + in_coord.r * Scale / 16.0;\n\tfloat V = in_coord.g * Scale;\n\treturn vec3(U,V,FracB);\n}\n\n"
				 .concat
			     ("void main() {\n\tvec3 outCol = clamp(texture2DRect(sceneTex, gl_TexCoord[0].xy).xyz,0.0,1.0);\n\tvec2 Offset = vec2(0.5 / 256.0, 0.5 / 16.0);\n\tvec3 UVFrac = remap_uv(outCol);\n\tvec2 coordA = Offset + vec2(UVFrac.x , UVFrac.y);\n\tvec2 coordB = coordA + vec2(1.0 / 16.0, 0.0);\n\toutCol *= paramsWeightings.x;\n\n\toutCol += mix( texture2D(remap_1, coordA), texture2D(remap_1, coordB), UVFrac.z ).rgb * paramsWeightings.y;\n\toutCol += mix( texture2D(remap_2, coordA), texture2D(remap_2, coordB), UVFrac.z ).rgb * paramsWeightings.z;\n\toutCol += mix( texture2D(remap_3, coordA), texture2D(remap_3, coordB), UVFrac.z ).rgb * paramsWeightings.w;\n\n\tgl_FragColor = vec4(outCol, 1.0);\n}\n"))) })));
		for (int i = 0; i < 3; i++) {
		    if (((Class487_Sub4_Sub2) this).aClass90Array11281[i]
			== null)
			return false;
		}
	    }
	    return ((Class487_Sub4_Sub2) this).aClass90Array11281 != null;
	}
	return false;
    }
    
    boolean method9098() {
	return (aFloat11272 == 1.0F
		|| (aFloatArray11277[0] + aFloatArray11277[1]
		    + aFloatArray11277[2]) == 0.0F
		|| (aClass149_Sub1Array11274[0] == null
		    && aClass149_Sub1Array11274[1] == null
		    && aClass149_Sub1Array11274[2] == null));
    }
    
    void method9084() {
	if (((Class487_Sub4_Sub2) this).aClass90Array11281 != null) {
	    for (int i = 0;
		 i < ((Class487_Sub4_Sub2) this).aClass90Array11281.length;
		 i++)
		((Class487_Sub4_Sub2) this).aClass90Array11281[i] = null;
	    ((Class487_Sub4_Sub2) this).aClass90Array11281 = null;
	}
    }
    
    void method9068(int i, Class100_Sub3 class100_sub3,
		    Class100_Sub3 class100_sub3_0_, int i_1_, int i_2_) {
	if (anInt11271 >= 1 && anInt11271 <= 3) {
	    int i_3_ = (((Class90) (((Class487_Sub4_Sub2) this)
				    .aClass90Array11281[anInt11271 - 1]))
			.anInt1234);
	    OpenGL.glUseProgram(i_3_);
	    OpenGL.glUniform1i(OpenGL.glGetUniformLocation(i_3_, "sceneTex"),
			       0);
	    OpenGL.glUniform4f(OpenGL.glGetUniformLocation(i_3_,
							   "paramsWeightings"),
			       aFloat11272, aFloatArray11277[0],
			       aFloatArray11277[1], aFloatArray11277[2]);
	    ((Class487_Sub4_Sub2) this).aClass151_Sub3_10071.method8590(0);
	    ((Class487_Sub4_Sub2) this).aClass151_Sub3_10071
		.method8591(class100_sub3);
	    for (int i_4_ = anInt11271 - 1; i_4_ >= 0; i_4_--) {
		if (aClass149_Sub1Array11274[i_4_] != null) {
		    if (i_4_ == 0)
			OpenGL.glUniform1i
			    (OpenGL.glGetUniformLocation(i_3_, "remap_1"), 1);
		    if (i_4_ == 1)
			OpenGL.glUniform1i
			    (OpenGL.glGetUniformLocation(i_3_, "remap_2"), 2);
		    if (i_4_ == 2)
			OpenGL.glUniform1i
			    (OpenGL.glGetUniformLocation(i_3_, "remap_3"), 3);
		    ((Class487_Sub4_Sub2) this).aClass151_Sub3_10071
			.method8590(i_4_ + 1);
		    Class100 class100
			= aClass149_Sub1Array11274[i_4_].method8505();
		    if (class100 != null)
			((Class487_Sub4_Sub2) this).aClass151_Sub3_10071
			    .method8591(class100);
		}
	    }
	}
    }
    
    void method9097(int i) {
	OpenGL.glUseProgram(0);
	for (int i_5_ = anInt11271; i_5_ >= 0; i_5_--) {
	    ((Class487_Sub4_Sub2) this).aClass151_Sub3_10071.method8590(i_5_);
	    ((Class487_Sub4_Sub2) this).aClass151_Sub3_10071.method8591(null);
	}
    }
    
    boolean method9077() {
	if (((Class151_Sub3) ((Class487_Sub4_Sub2) this).aClass151_Sub3_10071)
	    .aBool9381) {
	    ((Class487_Sub4_Sub2) this).aClass90Array11281 = new Class90[3];
	    if (((Class151_Sub3)
		 ((Class487_Sub4_Sub2) this).aClass151_Sub3_10071)
		.aBool9372) {
		((Class487_Sub4_Sub2) this).aClass90Array11281[0]
		    = (Class90.method1246
		       (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			(new Class102[]
			 { Class102.method1407
			   (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			    35632,
			    ("#extension GL_ARB_texture_rectangle : enable\nuniform vec4 paramsWeightings;\nuniform sampler2DRect sceneTex;\nuniform sampler3D remap_1, remap_2, remap_3, remap_4;\n\n"
				 .concat
			     ("void main() {\n\tvec3 col = texture2DRect(sceneTex, gl_TexCoord[0].xy).xyz;\n\tcol = clamp(col,0.0,1.0);\n\tvec3 outCol = col * paramsWeightings.x;\n\t//Clamp the colour coords so we sample correctly\n\tfloat minC = 0.03125; // 0.5/16.0\n\tfloat maxC = 0.96875; // 1.0-(0.5/16.0)\n\tcol = mix(vec3(minC,minC,minC), vec3(maxC,maxC,maxC), col);\n\n\toutCol += texture3D(remap_1, col).rgb * paramsWeightings.y;\n\n\tgl_FragColor = vec4(outCol, 1.0);\n}\n"))) })));
		((Class487_Sub4_Sub2) this).aClass90Array11281[1]
		    = (Class90.method1246
		       (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			(new Class102[]
			 { Class102.method1407
			   (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			    35632,
			    ("#extension GL_ARB_texture_rectangle : enable\nuniform vec4 paramsWeightings;\nuniform sampler2DRect sceneTex;\nuniform sampler3D remap_1, remap_2, remap_3, remap_4;\n\n"
				 .concat
			     ("void main() {\n\tvec3 col = texture2DRect(sceneTex, gl_TexCoord[0].xy).xyz;\n\tcol = clamp(col,0.0,1.0);\n\tvec3 outCol = col * paramsWeightings.x;\n\t//Clamp the colour coords so we sample correctly\n\tfloat minC = 0.03125; // 0.5/16.0\n\tfloat maxC = 0.96875; // 1.0-(0.5/16.0)\n\tcol = mix(vec3(minC,minC,minC), vec3(maxC,maxC,maxC), col);\n\n\toutCol += texture3D(remap_1, col).rgb * paramsWeightings.y;\n\toutCol += texture3D(remap_2, col).rgb * paramsWeightings.z;\n\n\tgl_FragColor = vec4(outCol, 1.0);\n}\n"))) })));
		((Class487_Sub4_Sub2) this).aClass90Array11281[2]
		    = (Class90.method1246
		       (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			(new Class102[]
			 { Class102.method1407
			   (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			    35632,
			    ("#extension GL_ARB_texture_rectangle : enable\nuniform vec4 paramsWeightings;\nuniform sampler2DRect sceneTex;\nuniform sampler3D remap_1, remap_2, remap_3, remap_4;\n\n"
				 .concat
			     ("void main() {\n\tvec3 col = texture2DRect(sceneTex, gl_TexCoord[0].xy).xyz;\n\tcol = clamp(col,0.0,1.0);\n\tvec3 outCol = col * paramsWeightings.x;\n\t//Clamp the colour coords so we sample correctly\n\tfloat minC = 0.03125; // 0.5/16.0\n\tfloat maxC = 0.96875; // 1.0-(0.5/16.0)\n\tcol = mix(vec3(minC,minC,minC), vec3(maxC,maxC,maxC), col);\n\n\toutCol += texture3D(remap_1, col).rgb * paramsWeightings.y;\n\toutCol += texture3D(remap_2, col).rgb * paramsWeightings.z;\n\toutCol += texture3D(remap_3, col).rgb * paramsWeightings.w;\n\n\tgl_FragColor = vec4(outCol, 1.0);\n}\n"))) })));
		for (int i = 0; i < 3; i++) {
		    if (((Class487_Sub4_Sub2) this).aClass90Array11281[i]
			== null)
			return false;
		}
	    } else {
		((Class487_Sub4_Sub2) this).aClass90Array11281[0]
		    = (Class90.method1246
		       (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			(new Class102[]
			 { Class102.method1407
			   (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			    35632,
			    ("#extension GL_ARB_texture_rectangle : enable\nuniform vec4 paramsWeightings;\nuniform sampler2DRect sceneTex;\nuniform sampler2D remap_1, remap_2, remap_3, remap_4;\n\nvec3 remap_uv(vec3 in_coord) {\n\tfloat Scale = 15.0 / 16.0;\n\tfloat IntB = floor(in_coord.b * 14.9999) / 16.0;\n\tfloat FracB = in_coord.b * 15.0 - IntB * 16.0;\n\tfloat U = IntB + in_coord.r * Scale / 16.0;\n\tfloat V = in_coord.g * Scale;\n\treturn vec3(U,V,FracB);\n}\n\n"
				 .concat
			     ("void main() {\n\tvec3 outCol = clamp(texture2DRect(sceneTex, gl_TexCoord[0].xy).xyz,0.0,1.0);\n\tvec2 Offset = vec2(0.5 / 256.0, 0.5 / 16.0);\n\tvec3 UVFrac = remap_uv(outCol);\n\tvec2 coordA = Offset + vec2(UVFrac.x , UVFrac.y);\n\tvec2 coordB = coordA + vec2(1.0 / 16.0, 0.0);\n\toutCol *= paramsWeightings.x;\n\n\toutCol += mix( texture2D(remap_1, coordA), texture2D(remap_1, coordB), UVFrac.z ).rgb * paramsWeightings.y;\n\n\tgl_FragColor = vec4(outCol, 1.0);\n}\n"))) })));
		((Class487_Sub4_Sub2) this).aClass90Array11281[1]
		    = (Class90.method1246
		       (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			(new Class102[]
			 { Class102.method1407
			   (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			    35632,
			    ("#extension GL_ARB_texture_rectangle : enable\nuniform vec4 paramsWeightings;\nuniform sampler2DRect sceneTex;\nuniform sampler2D remap_1, remap_2, remap_3, remap_4;\n\nvec3 remap_uv(vec3 in_coord) {\n\tfloat Scale = 15.0 / 16.0;\n\tfloat IntB = floor(in_coord.b * 14.9999) / 16.0;\n\tfloat FracB = in_coord.b * 15.0 - IntB * 16.0;\n\tfloat U = IntB + in_coord.r * Scale / 16.0;\n\tfloat V = in_coord.g * Scale;\n\treturn vec3(U,V,FracB);\n}\n\n"
				 .concat
			     ("void main() {\n\tvec3 outCol = clamp(texture2DRect(sceneTex, gl_TexCoord[0].xy).xyz,0.0,1.0);\n\tvec2 Offset = vec2(0.5 / 256.0, 0.5 / 16.0);\n\tvec3 UVFrac = remap_uv(outCol);\n\tvec2 coordA = Offset + vec2(UVFrac.x , UVFrac.y);\n\tvec2 coordB = coordA + vec2(1.0 / 16.0, 0.0);\n\toutCol *= paramsWeightings.x;\n\n\toutCol += mix( texture2D(remap_1, coordA), texture2D(remap_1, coordB), UVFrac.z ).rgb * paramsWeightings.y;\n\toutCol += mix( texture2D(remap_2, coordA), texture2D(remap_2, coordB), UVFrac.z ).rgb * paramsWeightings.z;\n\n\tgl_FragColor = vec4(outCol, 1.0);\n}\n"))) })));
		((Class487_Sub4_Sub2) this).aClass90Array11281[2]
		    = (Class90.method1246
		       (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			(new Class102[]
			 { Class102.method1407
			   (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			    35632,
			    ("#extension GL_ARB_texture_rectangle : enable\nuniform vec4 paramsWeightings;\nuniform sampler2DRect sceneTex;\nuniform sampler2D remap_1, remap_2, remap_3, remap_4;\n\nvec3 remap_uv(vec3 in_coord) {\n\tfloat Scale = 15.0 / 16.0;\n\tfloat IntB = floor(in_coord.b * 14.9999) / 16.0;\n\tfloat FracB = in_coord.b * 15.0 - IntB * 16.0;\n\tfloat U = IntB + in_coord.r * Scale / 16.0;\n\tfloat V = in_coord.g * Scale;\n\treturn vec3(U,V,FracB);\n}\n\n"
				 .concat
			     ("void main() {\n\tvec3 outCol = clamp(texture2DRect(sceneTex, gl_TexCoord[0].xy).xyz,0.0,1.0);\n\tvec2 Offset = vec2(0.5 / 256.0, 0.5 / 16.0);\n\tvec3 UVFrac = remap_uv(outCol);\n\tvec2 coordA = Offset + vec2(UVFrac.x , UVFrac.y);\n\tvec2 coordB = coordA + vec2(1.0 / 16.0, 0.0);\n\toutCol *= paramsWeightings.x;\n\n\toutCol += mix( texture2D(remap_1, coordA), texture2D(remap_1, coordB), UVFrac.z ).rgb * paramsWeightings.y;\n\toutCol += mix( texture2D(remap_2, coordA), texture2D(remap_2, coordB), UVFrac.z ).rgb * paramsWeightings.z;\n\toutCol += mix( texture2D(remap_3, coordA), texture2D(remap_3, coordB), UVFrac.z ).rgb * paramsWeightings.w;\n\n\tgl_FragColor = vec4(outCol, 1.0);\n}\n"))) })));
		for (int i = 0; i < 3; i++) {
		    if (((Class487_Sub4_Sub2) this).aClass90Array11281[i]
			== null)
			return false;
		}
	    }
	    return ((Class487_Sub4_Sub2) this).aClass90Array11281 != null;
	}
	return false;
    }
    
    int method9070() {
	return 2;
    }
    
    boolean method9074() {
	return (aFloat11272 == 1.0F
		|| (aFloatArray11277[0] + aFloatArray11277[1]
		    + aFloatArray11277[2]) == 0.0F
		|| (aClass149_Sub1Array11274[0] == null
		    && aClass149_Sub1Array11274[1] == null
		    && aClass149_Sub1Array11274[2] == null));
    }
    
    void method9081(int i, int i_6_) {
	/* empty */
    }
    
    static {
	aFloat11272 = 1.0F;
	anInt11271 = 1;
	aClass149_Sub1Array11274 = new Class149_Sub1[] { null, null, null };
    }
    
    boolean method9076() {
	if (((Class151_Sub3) ((Class487_Sub4_Sub2) this).aClass151_Sub3_10071)
	    .aBool9381) {
	    ((Class487_Sub4_Sub2) this).aClass90Array11281 = new Class90[3];
	    if (((Class151_Sub3)
		 ((Class487_Sub4_Sub2) this).aClass151_Sub3_10071)
		.aBool9372) {
		((Class487_Sub4_Sub2) this).aClass90Array11281[0]
		    = (Class90.method1246
		       (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			(new Class102[]
			 { Class102.method1407
			   (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			    35632,
			    ("#extension GL_ARB_texture_rectangle : enable\nuniform vec4 paramsWeightings;\nuniform sampler2DRect sceneTex;\nuniform sampler3D remap_1, remap_2, remap_3, remap_4;\n\n"
				 .concat
			     ("void main() {\n\tvec3 col = texture2DRect(sceneTex, gl_TexCoord[0].xy).xyz;\n\tcol = clamp(col,0.0,1.0);\n\tvec3 outCol = col * paramsWeightings.x;\n\t//Clamp the colour coords so we sample correctly\n\tfloat minC = 0.03125; // 0.5/16.0\n\tfloat maxC = 0.96875; // 1.0-(0.5/16.0)\n\tcol = mix(vec3(minC,minC,minC), vec3(maxC,maxC,maxC), col);\n\n\toutCol += texture3D(remap_1, col).rgb * paramsWeightings.y;\n\n\tgl_FragColor = vec4(outCol, 1.0);\n}\n"))) })));
		((Class487_Sub4_Sub2) this).aClass90Array11281[1]
		    = (Class90.method1246
		       (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			(new Class102[]
			 { Class102.method1407
			   (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			    35632,
			    ("#extension GL_ARB_texture_rectangle : enable\nuniform vec4 paramsWeightings;\nuniform sampler2DRect sceneTex;\nuniform sampler3D remap_1, remap_2, remap_3, remap_4;\n\n"
				 .concat
			     ("void main() {\n\tvec3 col = texture2DRect(sceneTex, gl_TexCoord[0].xy).xyz;\n\tcol = clamp(col,0.0,1.0);\n\tvec3 outCol = col * paramsWeightings.x;\n\t//Clamp the colour coords so we sample correctly\n\tfloat minC = 0.03125; // 0.5/16.0\n\tfloat maxC = 0.96875; // 1.0-(0.5/16.0)\n\tcol = mix(vec3(minC,minC,minC), vec3(maxC,maxC,maxC), col);\n\n\toutCol += texture3D(remap_1, col).rgb * paramsWeightings.y;\n\toutCol += texture3D(remap_2, col).rgb * paramsWeightings.z;\n\n\tgl_FragColor = vec4(outCol, 1.0);\n}\n"))) })));
		((Class487_Sub4_Sub2) this).aClass90Array11281[2]
		    = (Class90.method1246
		       (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			(new Class102[]
			 { Class102.method1407
			   (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			    35632,
			    ("#extension GL_ARB_texture_rectangle : enable\nuniform vec4 paramsWeightings;\nuniform sampler2DRect sceneTex;\nuniform sampler3D remap_1, remap_2, remap_3, remap_4;\n\n"
				 .concat
			     ("void main() {\n\tvec3 col = texture2DRect(sceneTex, gl_TexCoord[0].xy).xyz;\n\tcol = clamp(col,0.0,1.0);\n\tvec3 outCol = col * paramsWeightings.x;\n\t//Clamp the colour coords so we sample correctly\n\tfloat minC = 0.03125; // 0.5/16.0\n\tfloat maxC = 0.96875; // 1.0-(0.5/16.0)\n\tcol = mix(vec3(minC,minC,minC), vec3(maxC,maxC,maxC), col);\n\n\toutCol += texture3D(remap_1, col).rgb * paramsWeightings.y;\n\toutCol += texture3D(remap_2, col).rgb * paramsWeightings.z;\n\toutCol += texture3D(remap_3, col).rgb * paramsWeightings.w;\n\n\tgl_FragColor = vec4(outCol, 1.0);\n}\n"))) })));
		for (int i = 0; i < 3; i++) {
		    if (((Class487_Sub4_Sub2) this).aClass90Array11281[i]
			== null)
			return false;
		}
	    } else {
		((Class487_Sub4_Sub2) this).aClass90Array11281[0]
		    = (Class90.method1246
		       (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			(new Class102[]
			 { Class102.method1407
			   (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			    35632,
			    ("#extension GL_ARB_texture_rectangle : enable\nuniform vec4 paramsWeightings;\nuniform sampler2DRect sceneTex;\nuniform sampler2D remap_1, remap_2, remap_3, remap_4;\n\nvec3 remap_uv(vec3 in_coord) {\n\tfloat Scale = 15.0 / 16.0;\n\tfloat IntB = floor(in_coord.b * 14.9999) / 16.0;\n\tfloat FracB = in_coord.b * 15.0 - IntB * 16.0;\n\tfloat U = IntB + in_coord.r * Scale / 16.0;\n\tfloat V = in_coord.g * Scale;\n\treturn vec3(U,V,FracB);\n}\n\n"
				 .concat
			     ("void main() {\n\tvec3 outCol = clamp(texture2DRect(sceneTex, gl_TexCoord[0].xy).xyz,0.0,1.0);\n\tvec2 Offset = vec2(0.5 / 256.0, 0.5 / 16.0);\n\tvec3 UVFrac = remap_uv(outCol);\n\tvec2 coordA = Offset + vec2(UVFrac.x , UVFrac.y);\n\tvec2 coordB = coordA + vec2(1.0 / 16.0, 0.0);\n\toutCol *= paramsWeightings.x;\n\n\toutCol += mix( texture2D(remap_1, coordA), texture2D(remap_1, coordB), UVFrac.z ).rgb * paramsWeightings.y;\n\n\tgl_FragColor = vec4(outCol, 1.0);\n}\n"))) })));
		((Class487_Sub4_Sub2) this).aClass90Array11281[1]
		    = (Class90.method1246
		       (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			(new Class102[]
			 { Class102.method1407
			   (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			    35632,
			    ("#extension GL_ARB_texture_rectangle : enable\nuniform vec4 paramsWeightings;\nuniform sampler2DRect sceneTex;\nuniform sampler2D remap_1, remap_2, remap_3, remap_4;\n\nvec3 remap_uv(vec3 in_coord) {\n\tfloat Scale = 15.0 / 16.0;\n\tfloat IntB = floor(in_coord.b * 14.9999) / 16.0;\n\tfloat FracB = in_coord.b * 15.0 - IntB * 16.0;\n\tfloat U = IntB + in_coord.r * Scale / 16.0;\n\tfloat V = in_coord.g * Scale;\n\treturn vec3(U,V,FracB);\n}\n\n"
				 .concat
			     ("void main() {\n\tvec3 outCol = clamp(texture2DRect(sceneTex, gl_TexCoord[0].xy).xyz,0.0,1.0);\n\tvec2 Offset = vec2(0.5 / 256.0, 0.5 / 16.0);\n\tvec3 UVFrac = remap_uv(outCol);\n\tvec2 coordA = Offset + vec2(UVFrac.x , UVFrac.y);\n\tvec2 coordB = coordA + vec2(1.0 / 16.0, 0.0);\n\toutCol *= paramsWeightings.x;\n\n\toutCol += mix( texture2D(remap_1, coordA), texture2D(remap_1, coordB), UVFrac.z ).rgb * paramsWeightings.y;\n\toutCol += mix( texture2D(remap_2, coordA), texture2D(remap_2, coordB), UVFrac.z ).rgb * paramsWeightings.z;\n\n\tgl_FragColor = vec4(outCol, 1.0);\n}\n"))) })));
		((Class487_Sub4_Sub2) this).aClass90Array11281[2]
		    = (Class90.method1246
		       (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			(new Class102[]
			 { Class102.method1407
			   (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			    35632,
			    ("#extension GL_ARB_texture_rectangle : enable\nuniform vec4 paramsWeightings;\nuniform sampler2DRect sceneTex;\nuniform sampler2D remap_1, remap_2, remap_3, remap_4;\n\nvec3 remap_uv(vec3 in_coord) {\n\tfloat Scale = 15.0 / 16.0;\n\tfloat IntB = floor(in_coord.b * 14.9999) / 16.0;\n\tfloat FracB = in_coord.b * 15.0 - IntB * 16.0;\n\tfloat U = IntB + in_coord.r * Scale / 16.0;\n\tfloat V = in_coord.g * Scale;\n\treturn vec3(U,V,FracB);\n}\n\n"
				 .concat
			     ("void main() {\n\tvec3 outCol = clamp(texture2DRect(sceneTex, gl_TexCoord[0].xy).xyz,0.0,1.0);\n\tvec2 Offset = vec2(0.5 / 256.0, 0.5 / 16.0);\n\tvec3 UVFrac = remap_uv(outCol);\n\tvec2 coordA = Offset + vec2(UVFrac.x , UVFrac.y);\n\tvec2 coordB = coordA + vec2(1.0 / 16.0, 0.0);\n\toutCol *= paramsWeightings.x;\n\n\toutCol += mix( texture2D(remap_1, coordA), texture2D(remap_1, coordB), UVFrac.z ).rgb * paramsWeightings.y;\n\toutCol += mix( texture2D(remap_2, coordA), texture2D(remap_2, coordB), UVFrac.z ).rgb * paramsWeightings.z;\n\toutCol += mix( texture2D(remap_3, coordA), texture2D(remap_3, coordB), UVFrac.z ).rgb * paramsWeightings.w;\n\n\tgl_FragColor = vec4(outCol, 1.0);\n}\n"))) })));
		for (int i = 0; i < 3; i++) {
		    if (((Class487_Sub4_Sub2) this).aClass90Array11281[i]
			== null)
			return false;
		}
	    }
	    return ((Class487_Sub4_Sub2) this).aClass90Array11281 != null;
	}
	return false;
    }
    
    void method9067(int i, int i_7_) {
	/* empty */
    }
    
    boolean method9089() {
	if (((Class151_Sub3) ((Class487_Sub4_Sub2) this).aClass151_Sub3_10071)
	    .aBool9381) {
	    ((Class487_Sub4_Sub2) this).aClass90Array11281 = new Class90[3];
	    if (((Class151_Sub3)
		 ((Class487_Sub4_Sub2) this).aClass151_Sub3_10071)
		.aBool9372) {
		((Class487_Sub4_Sub2) this).aClass90Array11281[0]
		    = (Class90.method1246
		       (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			(new Class102[]
			 { Class102.method1407
			   (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			    35632,
			    ("#extension GL_ARB_texture_rectangle : enable\nuniform vec4 paramsWeightings;\nuniform sampler2DRect sceneTex;\nuniform sampler3D remap_1, remap_2, remap_3, remap_4;\n\n"
				 .concat
			     ("void main() {\n\tvec3 col = texture2DRect(sceneTex, gl_TexCoord[0].xy).xyz;\n\tcol = clamp(col,0.0,1.0);\n\tvec3 outCol = col * paramsWeightings.x;\n\t//Clamp the colour coords so we sample correctly\n\tfloat minC = 0.03125; // 0.5/16.0\n\tfloat maxC = 0.96875; // 1.0-(0.5/16.0)\n\tcol = mix(vec3(minC,minC,minC), vec3(maxC,maxC,maxC), col);\n\n\toutCol += texture3D(remap_1, col).rgb * paramsWeightings.y;\n\n\tgl_FragColor = vec4(outCol, 1.0);\n}\n"))) })));
		((Class487_Sub4_Sub2) this).aClass90Array11281[1]
		    = (Class90.method1246
		       (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			(new Class102[]
			 { Class102.method1407
			   (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			    35632,
			    ("#extension GL_ARB_texture_rectangle : enable\nuniform vec4 paramsWeightings;\nuniform sampler2DRect sceneTex;\nuniform sampler3D remap_1, remap_2, remap_3, remap_4;\n\n"
				 .concat
			     ("void main() {\n\tvec3 col = texture2DRect(sceneTex, gl_TexCoord[0].xy).xyz;\n\tcol = clamp(col,0.0,1.0);\n\tvec3 outCol = col * paramsWeightings.x;\n\t//Clamp the colour coords so we sample correctly\n\tfloat minC = 0.03125; // 0.5/16.0\n\tfloat maxC = 0.96875; // 1.0-(0.5/16.0)\n\tcol = mix(vec3(minC,minC,minC), vec3(maxC,maxC,maxC), col);\n\n\toutCol += texture3D(remap_1, col).rgb * paramsWeightings.y;\n\toutCol += texture3D(remap_2, col).rgb * paramsWeightings.z;\n\n\tgl_FragColor = vec4(outCol, 1.0);\n}\n"))) })));
		((Class487_Sub4_Sub2) this).aClass90Array11281[2]
		    = (Class90.method1246
		       (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			(new Class102[]
			 { Class102.method1407
			   (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			    35632,
			    ("#extension GL_ARB_texture_rectangle : enable\nuniform vec4 paramsWeightings;\nuniform sampler2DRect sceneTex;\nuniform sampler3D remap_1, remap_2, remap_3, remap_4;\n\n"
				 .concat
			     ("void main() {\n\tvec3 col = texture2DRect(sceneTex, gl_TexCoord[0].xy).xyz;\n\tcol = clamp(col,0.0,1.0);\n\tvec3 outCol = col * paramsWeightings.x;\n\t//Clamp the colour coords so we sample correctly\n\tfloat minC = 0.03125; // 0.5/16.0\n\tfloat maxC = 0.96875; // 1.0-(0.5/16.0)\n\tcol = mix(vec3(minC,minC,minC), vec3(maxC,maxC,maxC), col);\n\n\toutCol += texture3D(remap_1, col).rgb * paramsWeightings.y;\n\toutCol += texture3D(remap_2, col).rgb * paramsWeightings.z;\n\toutCol += texture3D(remap_3, col).rgb * paramsWeightings.w;\n\n\tgl_FragColor = vec4(outCol, 1.0);\n}\n"))) })));
		for (int i = 0; i < 3; i++) {
		    if (((Class487_Sub4_Sub2) this).aClass90Array11281[i]
			== null)
			return false;
		}
	    } else {
		((Class487_Sub4_Sub2) this).aClass90Array11281[0]
		    = (Class90.method1246
		       (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			(new Class102[]
			 { Class102.method1407
			   (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			    35632,
			    ("#extension GL_ARB_texture_rectangle : enable\nuniform vec4 paramsWeightings;\nuniform sampler2DRect sceneTex;\nuniform sampler2D remap_1, remap_2, remap_3, remap_4;\n\nvec3 remap_uv(vec3 in_coord) {\n\tfloat Scale = 15.0 / 16.0;\n\tfloat IntB = floor(in_coord.b * 14.9999) / 16.0;\n\tfloat FracB = in_coord.b * 15.0 - IntB * 16.0;\n\tfloat U = IntB + in_coord.r * Scale / 16.0;\n\tfloat V = in_coord.g * Scale;\n\treturn vec3(U,V,FracB);\n}\n\n"
				 .concat
			     ("void main() {\n\tvec3 outCol = clamp(texture2DRect(sceneTex, gl_TexCoord[0].xy).xyz,0.0,1.0);\n\tvec2 Offset = vec2(0.5 / 256.0, 0.5 / 16.0);\n\tvec3 UVFrac = remap_uv(outCol);\n\tvec2 coordA = Offset + vec2(UVFrac.x , UVFrac.y);\n\tvec2 coordB = coordA + vec2(1.0 / 16.0, 0.0);\n\toutCol *= paramsWeightings.x;\n\n\toutCol += mix( texture2D(remap_1, coordA), texture2D(remap_1, coordB), UVFrac.z ).rgb * paramsWeightings.y;\n\n\tgl_FragColor = vec4(outCol, 1.0);\n}\n"))) })));
		((Class487_Sub4_Sub2) this).aClass90Array11281[1]
		    = (Class90.method1246
		       (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			(new Class102[]
			 { Class102.method1407
			   (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			    35632,
			    ("#extension GL_ARB_texture_rectangle : enable\nuniform vec4 paramsWeightings;\nuniform sampler2DRect sceneTex;\nuniform sampler2D remap_1, remap_2, remap_3, remap_4;\n\nvec3 remap_uv(vec3 in_coord) {\n\tfloat Scale = 15.0 / 16.0;\n\tfloat IntB = floor(in_coord.b * 14.9999) / 16.0;\n\tfloat FracB = in_coord.b * 15.0 - IntB * 16.0;\n\tfloat U = IntB + in_coord.r * Scale / 16.0;\n\tfloat V = in_coord.g * Scale;\n\treturn vec3(U,V,FracB);\n}\n\n"
				 .concat
			     ("void main() {\n\tvec3 outCol = clamp(texture2DRect(sceneTex, gl_TexCoord[0].xy).xyz,0.0,1.0);\n\tvec2 Offset = vec2(0.5 / 256.0, 0.5 / 16.0);\n\tvec3 UVFrac = remap_uv(outCol);\n\tvec2 coordA = Offset + vec2(UVFrac.x , UVFrac.y);\n\tvec2 coordB = coordA + vec2(1.0 / 16.0, 0.0);\n\toutCol *= paramsWeightings.x;\n\n\toutCol += mix( texture2D(remap_1, coordA), texture2D(remap_1, coordB), UVFrac.z ).rgb * paramsWeightings.y;\n\toutCol += mix( texture2D(remap_2, coordA), texture2D(remap_2, coordB), UVFrac.z ).rgb * paramsWeightings.z;\n\n\tgl_FragColor = vec4(outCol, 1.0);\n}\n"))) })));
		((Class487_Sub4_Sub2) this).aClass90Array11281[2]
		    = (Class90.method1246
		       (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			(new Class102[]
			 { Class102.method1407
			   (((Class487_Sub4_Sub2) this).aClass151_Sub3_10071,
			    35632,
			    ("#extension GL_ARB_texture_rectangle : enable\nuniform vec4 paramsWeightings;\nuniform sampler2DRect sceneTex;\nuniform sampler2D remap_1, remap_2, remap_3, remap_4;\n\nvec3 remap_uv(vec3 in_coord) {\n\tfloat Scale = 15.0 / 16.0;\n\tfloat IntB = floor(in_coord.b * 14.9999) / 16.0;\n\tfloat FracB = in_coord.b * 15.0 - IntB * 16.0;\n\tfloat U = IntB + in_coord.r * Scale / 16.0;\n\tfloat V = in_coord.g * Scale;\n\treturn vec3(U,V,FracB);\n}\n\n"
				 .concat
			     ("void main() {\n\tvec3 outCol = clamp(texture2DRect(sceneTex, gl_TexCoord[0].xy).xyz,0.0,1.0);\n\tvec2 Offset = vec2(0.5 / 256.0, 0.5 / 16.0);\n\tvec3 UVFrac = remap_uv(outCol);\n\tvec2 coordA = Offset + vec2(UVFrac.x , UVFrac.y);\n\tvec2 coordB = coordA + vec2(1.0 / 16.0, 0.0);\n\toutCol *= paramsWeightings.x;\n\n\toutCol += mix( texture2D(remap_1, coordA), texture2D(remap_1, coordB), UVFrac.z ).rgb * paramsWeightings.y;\n\toutCol += mix( texture2D(remap_2, coordA), texture2D(remap_2, coordB), UVFrac.z ).rgb * paramsWeightings.z;\n\toutCol += mix( texture2D(remap_3, coordA), texture2D(remap_3, coordB), UVFrac.z ).rgb * paramsWeightings.w;\n\n\tgl_FragColor = vec4(outCol, 1.0);\n}\n"))) })));
		for (int i = 0; i < 3; i++) {
		    if (((Class487_Sub4_Sub2) this).aClass90Array11281[i]
			== null)
			return false;
		}
	    }
	    return ((Class487_Sub4_Sub2) this).aClass90Array11281 != null;
	}
	return false;
    }
    
    void method9094() {
	if (((Class487_Sub4_Sub2) this).aClass90Array11281 != null) {
	    for (int i = 0;
		 i < ((Class487_Sub4_Sub2) this).aClass90Array11281.length;
		 i++)
		((Class487_Sub4_Sub2) this).aClass90Array11281[i] = null;
	    ((Class487_Sub4_Sub2) this).aClass90Array11281 = null;
	}
    }
    
    void method9080() {
	if (((Class487_Sub4_Sub2) this).aClass90Array11281 != null) {
	    for (int i = 0;
		 i < ((Class487_Sub4_Sub2) this).aClass90Array11281.length;
		 i++)
		((Class487_Sub4_Sub2) this).aClass90Array11281[i] = null;
	    ((Class487_Sub4_Sub2) this).aClass90Array11281 = null;
	}
    }
    
    Class487_Sub4_Sub2(Class151_Sub3 class151_sub3) {
	super(class151_sub3);
    }
    
    void method9082(int i, int i_8_) {
	/* empty */
    }
    
    Class155 method9090() {
	return Class155.aClass155_1894;
    }
    
    void method9088(int i) {
	OpenGL.glUseProgram(0);
	for (int i_9_ = anInt11271; i_9_ >= 0; i_9_--) {
	    ((Class487_Sub4_Sub2) this).aClass151_Sub3_10071.method8590(i_9_);
	    ((Class487_Sub4_Sub2) this).aClass151_Sub3_10071.method8591(null);
	}
    }
    
    void method9085(int i, Class100_Sub3 class100_sub3,
		    Class100_Sub3 class100_sub3_10_, int i_11_, int i_12_) {
	if (anInt11271 >= 1 && anInt11271 <= 3) {
	    int i_13_ = (((Class90) (((Class487_Sub4_Sub2) this)
				     .aClass90Array11281[anInt11271 - 1]))
			 .anInt1234);
	    OpenGL.glUseProgram(i_13_);
	    OpenGL.glUniform1i(OpenGL.glGetUniformLocation(i_13_, "sceneTex"),
			       0);
	    OpenGL.glUniform4f(OpenGL.glGetUniformLocation(i_13_,
							   "paramsWeightings"),
			       aFloat11272, aFloatArray11277[0],
			       aFloatArray11277[1], aFloatArray11277[2]);
	    ((Class487_Sub4_Sub2) this).aClass151_Sub3_10071.method8590(0);
	    ((Class487_Sub4_Sub2) this).aClass151_Sub3_10071
		.method8591(class100_sub3);
	    for (int i_14_ = anInt11271 - 1; i_14_ >= 0; i_14_--) {
		if (aClass149_Sub1Array11274[i_14_] != null) {
		    if (i_14_ == 0)
			OpenGL.glUniform1i
			    (OpenGL.glGetUniformLocation(i_13_, "remap_1"), 1);
		    if (i_14_ == 1)
			OpenGL.glUniform1i
			    (OpenGL.glGetUniformLocation(i_13_, "remap_2"), 2);
		    if (i_14_ == 2)
			OpenGL.glUniform1i
			    (OpenGL.glGetUniformLocation(i_13_, "remap_3"), 3);
		    ((Class487_Sub4_Sub2) this).aClass151_Sub3_10071
			.method8590(i_14_ + 1);
		    Class100 class100
			= aClass149_Sub1Array11274[i_14_].method8505();
		    if (class100 != null)
			((Class487_Sub4_Sub2) this).aClass151_Sub3_10071
			    .method8591(class100);
		}
	    }
	}
    }
    
    void method9086(int i, Class100_Sub3 class100_sub3,
		    Class100_Sub3 class100_sub3_15_, int i_16_, int i_17_) {
	if (anInt11271 >= 1 && anInt11271 <= 3) {
	    int i_18_ = (((Class90) (((Class487_Sub4_Sub2) this)
				     .aClass90Array11281[anInt11271 - 1]))
			 .anInt1234);
	    OpenGL.glUseProgram(i_18_);
	    OpenGL.glUniform1i(OpenGL.glGetUniformLocation(i_18_, "sceneTex"),
			       0);
	    OpenGL.glUniform4f(OpenGL.glGetUniformLocation(i_18_,
							   "paramsWeightings"),
			       aFloat11272, aFloatArray11277[0],
			       aFloatArray11277[1], aFloatArray11277[2]);
	    ((Class487_Sub4_Sub2) this).aClass151_Sub3_10071.method8590(0);
	    ((Class487_Sub4_Sub2) this).aClass151_Sub3_10071
		.method8591(class100_sub3);
	    for (int i_19_ = anInt11271 - 1; i_19_ >= 0; i_19_--) {
		if (aClass149_Sub1Array11274[i_19_] != null) {
		    if (i_19_ == 0)
			OpenGL.glUniform1i
			    (OpenGL.glGetUniformLocation(i_18_, "remap_1"), 1);
		    if (i_19_ == 1)
			OpenGL.glUniform1i
			    (OpenGL.glGetUniformLocation(i_18_, "remap_2"), 2);
		    if (i_19_ == 2)
			OpenGL.glUniform1i
			    (OpenGL.glGetUniformLocation(i_18_, "remap_3"), 3);
		    ((Class487_Sub4_Sub2) this).aClass151_Sub3_10071
			.method8590(i_19_ + 1);
		    Class100 class100
			= aClass149_Sub1Array11274[i_19_].method8505();
		    if (class100 != null)
			((Class487_Sub4_Sub2) this).aClass151_Sub3_10071
			    .method8591(class100);
		}
	    }
	}
    }
    
    void method9093(int i, int i_20_) {
	/* empty */
    }
    
    void method9087(int i) {
	OpenGL.glUseProgram(0);
	for (int i_21_ = anInt11271; i_21_ >= 0; i_21_--) {
	    ((Class487_Sub4_Sub2) this).aClass151_Sub3_10071.method8590(i_21_);
	    ((Class487_Sub4_Sub2) this).aClass151_Sub3_10071.method8591(null);
	}
    }
    
    int method9071() {
	return 2;
    }
    
    int method9075() {
	return 2;
    }
    
    Class155 method9078() {
	return Class155.aClass155_1894;
    }
    
    Class155 method9079() {
	return Class155.aClass155_1894;
    }
    
    boolean method9083() {
	return (aFloat11272 == 1.0F
		|| (aFloatArray11277[0] + aFloatArray11277[1]
		    + aFloatArray11277[2]) == 0.0F
		|| (aClass149_Sub1Array11274[0] == null
		    && aClass149_Sub1Array11274[1] == null
		    && aClass149_Sub1Array11274[2] == null));
    }
    
    void method9091(int i, int i_22_) {
	/* empty */
    }
    
    boolean method10248() {
	return (((Class151_Sub3)
		 ((Class487_Sub4_Sub2) this).aClass151_Sub3_10071)
		.aBool9381);
    }
}
