mirror of
http://git.eaglercraft.rip/eaglercraft/eaglercraft-1.8.git
synced 2025-04-30 02:01:59 -05:00
123 lines
3.2 KiB
Java
123 lines
3.2 KiB
Java
package net.optifine.render;
|
|
|
|
import net.lax1dude.eaglercraft.v1_8.opengl.GlStateManager;
|
|
import net.optifine.Config;
|
|
|
|
public class Blender {
|
|
public static final int BLEND_ALPHA = 0;
|
|
public static final int BLEND_ADD = 1;
|
|
public static final int BLEND_SUBSTRACT = 2;
|
|
public static final int BLEND_MULTIPLY = 3;
|
|
public static final int BLEND_DODGE = 4;
|
|
public static final int BLEND_BURN = 5;
|
|
public static final int BLEND_SCREEN = 6;
|
|
public static final int BLEND_OVERLAY = 7;
|
|
public static final int BLEND_REPLACE = 8;
|
|
public static final int BLEND_DEFAULT = 1;
|
|
|
|
public static int parseBlend(String str) {
|
|
if (str == null) {
|
|
return 1;
|
|
} else {
|
|
str = str.toLowerCase().trim();
|
|
|
|
if (str.equals("alpha")) {
|
|
return 0;
|
|
} else if (str.equals("add")) {
|
|
return 1;
|
|
} else if (str.equals("subtract")) {
|
|
return 2;
|
|
} else if (str.equals("multiply")) {
|
|
return 3;
|
|
} else if (str.equals("dodge")) {
|
|
return 4;
|
|
} else if (str.equals("burn")) {
|
|
return 5;
|
|
} else if (str.equals("screen")) {
|
|
return 6;
|
|
} else if (str.equals("overlay")) {
|
|
return 7;
|
|
} else if (str.equals("replace")) {
|
|
return 8;
|
|
} else {
|
|
Config.warn("Unknown blend: " + str);
|
|
return 1;
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void setupBlend(int blend, float brightness) {
|
|
switch (blend) {
|
|
case 0:
|
|
GlStateManager.disableAlpha();
|
|
GlStateManager.enableBlend();
|
|
GlStateManager.blendFunc(770, 771);
|
|
GlStateManager.color(1.0F, 1.0F, 1.0F, brightness);
|
|
break;
|
|
|
|
case 1:
|
|
GlStateManager.disableAlpha();
|
|
GlStateManager.enableBlend();
|
|
GlStateManager.blendFunc(770, 1);
|
|
GlStateManager.color(1.0F, 1.0F, 1.0F, brightness);
|
|
break;
|
|
|
|
case 2:
|
|
GlStateManager.disableAlpha();
|
|
GlStateManager.enableBlend();
|
|
GlStateManager.blendFunc(775, 0);
|
|
GlStateManager.color(brightness, brightness, brightness, 1.0F);
|
|
break;
|
|
|
|
case 3:
|
|
GlStateManager.disableAlpha();
|
|
GlStateManager.enableBlend();
|
|
GlStateManager.blendFunc(774, 771);
|
|
GlStateManager.color(brightness, brightness, brightness, brightness);
|
|
break;
|
|
|
|
case 4:
|
|
GlStateManager.disableAlpha();
|
|
GlStateManager.enableBlend();
|
|
GlStateManager.blendFunc(1, 1);
|
|
GlStateManager.color(brightness, brightness, brightness, 1.0F);
|
|
break;
|
|
|
|
case 5:
|
|
GlStateManager.disableAlpha();
|
|
GlStateManager.enableBlend();
|
|
GlStateManager.blendFunc(0, 769);
|
|
GlStateManager.color(brightness, brightness, brightness, 1.0F);
|
|
break;
|
|
|
|
case 6:
|
|
GlStateManager.disableAlpha();
|
|
GlStateManager.enableBlend();
|
|
GlStateManager.blendFunc(1, 769);
|
|
GlStateManager.color(brightness, brightness, brightness, 1.0F);
|
|
break;
|
|
|
|
case 7:
|
|
GlStateManager.disableAlpha();
|
|
GlStateManager.enableBlend();
|
|
GlStateManager.blendFunc(774, 768);
|
|
GlStateManager.color(brightness, brightness, brightness, 1.0F);
|
|
break;
|
|
|
|
case 8:
|
|
GlStateManager.enableAlpha();
|
|
GlStateManager.disableBlend();
|
|
GlStateManager.color(1.0F, 1.0F, 1.0F, brightness);
|
|
}
|
|
|
|
GlStateManager.enableTexture2D();
|
|
}
|
|
|
|
public static void clearBlend(float rainBrightness) {
|
|
GlStateManager.disableAlpha();
|
|
GlStateManager.enableBlend();
|
|
GlStateManager.blendFunc(770, 1);
|
|
GlStateManager.color(1.0F, 1.0F, 1.0F, rainBrightness);
|
|
}
|
|
}
|