Two changes:
1. GL_DST_ALPHA and GL_ONE_MINUS_DST_ALPHA were moved from GL3 to GL. 2. I reverted to the previous switch/case statements in GLRenderer.convertBlendFunc(BlendFunc).
This commit is contained in:
parent
ca17bd592a
commit
67881b1e01
@ -205,7 +205,6 @@ public class RenderState implements Cloneable, Savable {
|
|||||||
Max
|
Max
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <code>BlendFunc</code> defines the blending functions for use with
|
* <code>BlendFunc</code> defines the blending functions for use with
|
||||||
* <code>BlendMode.Custom</code>.
|
* <code>BlendMode.Custom</code>.
|
||||||
@ -216,67 +215,49 @@ public class RenderState implements Cloneable, Savable {
|
|||||||
/**
|
/**
|
||||||
* RGB Factor (0, 0, 0), Alpha Factor (0)
|
* RGB Factor (0, 0, 0), Alpha Factor (0)
|
||||||
*/
|
*/
|
||||||
Zero(0),
|
Zero,
|
||||||
/**
|
/**
|
||||||
* RGB Factor (1, 1, 1), Alpha Factor (1)
|
* RGB Factor (1, 1, 1), Alpha Factor (1)
|
||||||
*/
|
*/
|
||||||
One(1),
|
One,
|
||||||
/**
|
/**
|
||||||
* RGB Factor (R_s0, G_s0, B_s0), Alpha Factor (A_s0)
|
* RGB Factor (R_s0, G_s0, B_s0), Alpha Factor (A_s0)
|
||||||
*/
|
*/
|
||||||
Src_Color(2),
|
Src_Color,
|
||||||
/**
|
/**
|
||||||
* RGB Factor (1-R_s0, 1-G_s0, 1-B_s0), Alpha Factor (1-A_s0)
|
* RGB Factor (1-R_s0, 1-G_s0, 1-B_s0), Alpha Factor (1-A_s0)
|
||||||
*/
|
*/
|
||||||
One_Minus_Src_Color(3),
|
One_Minus_Src_Color,
|
||||||
/**
|
/**
|
||||||
* RGB Factor (R_d, G_d, B_d), Alpha Factor (A_d)
|
* RGB Factor (R_d, G_d, B_d), Alpha Factor (A_d)
|
||||||
*/
|
*/
|
||||||
Dst_Color(4),
|
Dst_Color,
|
||||||
/**
|
/**
|
||||||
* RGB Factor (1-R_d, 1-G_d, 1-B_d), Alpha Factor (1-A_d)
|
* RGB Factor (1-R_d, 1-G_d, 1-B_d), Alpha Factor (1-A_d)
|
||||||
*/
|
*/
|
||||||
One_Minus_Dst_Color(5),
|
One_Minus_Dst_Color,
|
||||||
/**
|
/**
|
||||||
* RGB Factor (A_s0, A_s0, A_s0), Alpha Factor (A_s0)
|
* RGB Factor (A_s0, A_s0, A_s0), Alpha Factor (A_s0)
|
||||||
*/
|
*/
|
||||||
Src_Alpha(6),
|
Src_Alpha,
|
||||||
/**
|
/**
|
||||||
* RGB Factor (1-A_s0, 1-A_s0, 1-A_s0), Alpha Factor (1-A_s0)
|
* RGB Factor (1-A_s0, 1-A_s0, 1-A_s0), Alpha Factor (1-A_s0)
|
||||||
*/
|
*/
|
||||||
One_Minus_Src_Alpha(7),
|
One_Minus_Src_Alpha,
|
||||||
/**
|
/**
|
||||||
* RGB Factor (A_d, A_d, A_d), Alpha Factor (A_d)
|
* RGB Factor (A_d, A_d, A_d), Alpha Factor (A_d)
|
||||||
*/
|
*/
|
||||||
Dst_Alpha(8),
|
Dst_Alpha,
|
||||||
/**
|
/**
|
||||||
* RGB Factor (1-A_d, 1-A_d, 1-A_d), Alpha Factor (1-A_d)
|
* RGB Factor (1-A_d, 1-A_d, 1-A_d), Alpha Factor (1-A_d)
|
||||||
*/
|
*/
|
||||||
One_Minus_Dst_Alpha(9),
|
One_Minus_Dst_Alpha,
|
||||||
/**
|
/**
|
||||||
* RGB Factor (i, i, i), Alpha Factor (1)
|
* RGB Factor (i, i, i), Alpha Factor (1)
|
||||||
*/
|
*/
|
||||||
Src_Alpha_Saturate(10);
|
Src_Alpha_Saturate;
|
||||||
|
|
||||||
// Convenience value for easy use by the renderer.
|
|
||||||
private final int value;
|
|
||||||
|
|
||||||
// Convenience constructor.
|
|
||||||
private BlendFunc(int value) {
|
|
||||||
this.value=value;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Provides a predefined integer value for easy use by the renderer.
|
|
||||||
*
|
|
||||||
* @return The predefined integer value.
|
|
||||||
*/
|
|
||||||
public int getIntValue() {
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <code>BlendMode</code> specifies the blending operation to use.
|
* <code>BlendMode</code> specifies the blending operation to use.
|
||||||
*
|
*
|
||||||
|
@ -62,6 +62,7 @@ public interface GL {
|
|||||||
public static final int GL_DEPTH_COMPONENT16 = 0x81A5;
|
public static final int GL_DEPTH_COMPONENT16 = 0x81A5;
|
||||||
public static final int GL_DEPTH_TEST = 0xB71;
|
public static final int GL_DEPTH_TEST = 0xB71;
|
||||||
public static final int GL_DOUBLE = 0x140A;
|
public static final int GL_DOUBLE = 0x140A;
|
||||||
|
public static final int GL_DST_ALPHA = 0x0304;
|
||||||
public static final int GL_DST_COLOR = 0x306;
|
public static final int GL_DST_COLOR = 0x306;
|
||||||
public static final int GL_DYNAMIC_DRAW = 0x88E8;
|
public static final int GL_DYNAMIC_DRAW = 0x88E8;
|
||||||
public static final int GL_ELEMENT_ARRAY_BUFFER = 0x8893;
|
public static final int GL_ELEMENT_ARRAY_BUFFER = 0x8893;
|
||||||
@ -118,6 +119,7 @@ public interface GL {
|
|||||||
public static final int GL_NONE = 0x0;
|
public static final int GL_NONE = 0x0;
|
||||||
public static final int GL_NOTEQUAL = 0x205;
|
public static final int GL_NOTEQUAL = 0x205;
|
||||||
public static final int GL_ONE = 0x1;
|
public static final int GL_ONE = 0x1;
|
||||||
|
public static final int GL_ONE_MINUS_DST_ALPHA = 0x0305;
|
||||||
public static final int GL_ONE_MINUS_DST_COLOR = 0x307;
|
public static final int GL_ONE_MINUS_DST_COLOR = 0x307;
|
||||||
public static final int GL_ONE_MINUS_SRC_ALPHA = 0x303;
|
public static final int GL_ONE_MINUS_SRC_ALPHA = 0x303;
|
||||||
public static final int GL_ONE_MINUS_SRC_COLOR = 0x301;
|
public static final int GL_ONE_MINUS_SRC_COLOR = 0x301;
|
||||||
|
@ -41,9 +41,7 @@ import java.nio.IntBuffer;
|
|||||||
public interface GL3 extends GL2 {
|
public interface GL3 extends GL2 {
|
||||||
|
|
||||||
public static final int GL_DEPTH_STENCIL_ATTACHMENT = 0x821A;
|
public static final int GL_DEPTH_STENCIL_ATTACHMENT = 0x821A;
|
||||||
public static final int GL_DST_ALPHA = 0x0304;
|
|
||||||
public static final int GL_GEOMETRY_SHADER = 0x8DD9;
|
public static final int GL_GEOMETRY_SHADER = 0x8DD9;
|
||||||
public static final int GL_ONE_MINUS_DST_ALPHA = 0x0305;
|
|
||||||
public static final int GL_NUM_EXTENSIONS = 0x821D;
|
public static final int GL_NUM_EXTENSIONS = 0x821D;
|
||||||
public static final int GL_R8 = 0x8229;
|
public static final int GL_R8 = 0x8229;
|
||||||
public static final int GL_R16F = 0x822D;
|
public static final int GL_R16F = 0x822D;
|
||||||
|
@ -751,10 +751,10 @@ public final class GLRenderer implements Renderer {
|
|||||||
break;
|
break;
|
||||||
case Custom:
|
case Custom:
|
||||||
gl.glBlendFuncSeparate(
|
gl.glBlendFuncSeparate(
|
||||||
state.getCustomSfactorRGB().getIntValue(),
|
convertBlendFunc(state.getCustomSfactorRGB()),
|
||||||
state.getCustomDfactorRGB().getIntValue(),
|
convertBlendFunc(state.getCustomDfactorRGB()),
|
||||||
state.getCustomSfactorAlpha().getIntValue(),
|
convertBlendFunc(state.getCustomSfactorAlpha()),
|
||||||
state.getCustomDfactorAlpha().getIntValue());
|
convertBlendFunc(state.getCustomDfactorAlpha()));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
throw new UnsupportedOperationException("Unrecognized blend mode: "
|
throw new UnsupportedOperationException("Unrecognized blend mode: "
|
||||||
@ -858,6 +858,35 @@ public final class GLRenderer implements Renderer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private int convertBlendFunc(BlendFunc blendFunc) {
|
||||||
|
switch (blendFunc) {
|
||||||
|
case Zero:
|
||||||
|
return GL.GL_ZERO;
|
||||||
|
case One:
|
||||||
|
return GL.GL_ONE;
|
||||||
|
case Src_Color:
|
||||||
|
return GL.GL_SRC_COLOR;
|
||||||
|
case One_Minus_Src_Color:
|
||||||
|
return GL.GL_ONE_MINUS_SRC_COLOR;
|
||||||
|
case Dst_Color:
|
||||||
|
return GL.GL_DST_COLOR;
|
||||||
|
case One_Minus_Dst_Color:
|
||||||
|
return GL.GL_ONE_MINUS_DST_COLOR;
|
||||||
|
case Src_Alpha:
|
||||||
|
return GL.GL_SRC_ALPHA;
|
||||||
|
case One_Minus_Src_Alpha:
|
||||||
|
return GL.GL_ONE_MINUS_SRC_ALPHA;
|
||||||
|
case Dst_Alpha:
|
||||||
|
return GL.GL_DST_ALPHA;
|
||||||
|
case One_Minus_Dst_Alpha:
|
||||||
|
return GL.GL_ONE_MINUS_DST_ALPHA;
|
||||||
|
case Src_Alpha_Saturate:
|
||||||
|
return GL.GL_SRC_ALPHA_SATURATE;
|
||||||
|
default:
|
||||||
|
throw new UnsupportedOperationException("Unrecognized blend function operation: " + blendFunc);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private int convertStencilOperation(StencilOperation stencilOp) {
|
private int convertStencilOperation(StencilOperation stencilOp) {
|
||||||
switch (stencilOp) {
|
switch (stencilOp) {
|
||||||
case Keep:
|
case Keep:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user