protected GLShader createSepiaShader() { return (graphics().ctx() == null) ? null : new IndexedTrisShader(graphics().ctx()) { @Override protected String textureFragmentShader() { return "#ifdef GL_ES\n" + "precision highp float;\n" + "#endif\n" + "uniform sampler2D u_Texture;\n" + "varying vec2 v_TexCoord;\n" + "varying vec4 v_Color;\n" + "void main(void) {\n" + " vec4 textureColor = texture2D(u_Texture, v_TexCoord);\n" + " textureColor.rgb *= v_Color.rgb;\n" + " float grey = dot(textureColor.rgb, vec3(0.299, 0.587, 0.114));\n" + " gl_FragColor = vec4(grey * vec3(1.2, 1.0, 0.8), textureColor.a) * v_Color.a;\n" + "}"; } }; }
@Override public void init() { // TODO: display some text saying shaders aren't supported if (graphics().ctx() == null) return; Image orange = assets().getImage("images/orange.png"); orange.addCallback(new Callback<Image>() { public void onSuccess(Image orange) { init(orange); } public void onFailure(Throwable err) { log().warn("Failed to load orange image", err); } }); }
IndexedTrisShader rotShader = new IndexedTrisShader(graphics().ctx()) { @Override protected String vertexShader() { return VERT_UNIFS +