// Path: smartgl/src/main/java/fr/arnaudguyon/smartgl/tools/Assert.java
// public class Assert {
// 
//     public static void assertTrue(boolean condition) {
//         assertTrue("", condition);
//     }
//     public static void assertTrue(String text, boolean condition) {
//         if (!condition) {
//             doAssert(text);
//         }
//     }
//     public static void assertNotNull(Object object) {
//         assertNotNull("", object);
//     }
//     public static void assertNotNull(String text, Object object) {
//         if (object == null) {
//             doAssert(text);
//         }
//     }
// 
//     public static void assertEquals(Object object1, Object object2) {
//         if (object1 == null) {
//             if (object2 != null) {
//                 doAssert("");
//             }
//         } else {
//             if (object2 == null) {
//                 doAssert("");
//             } else {
//                 if (!object1.equals(object2)) {
//                     doAssert("");
//                 }
//             }
//         }
//     }
// 
//     private static void doAssert(String text) {
//         throw new RuntimeException(text);
//     }
// }


import android.opengl.GLES20;
import fr.arnaudguyon.smartgl.tools.Assert;
                    "  vTextureCoord = m_UV;" +
                    "}";
    private final static String PIXEL_SHADER_TEXTURE_SCRIPT =
            "precision mediump float;" +
                    "uniform vec4 mAmbiantColor;" +
                    "varying vec2 vTextureCoord;" +
                    "uniform sampler2D sTexture;" +
                    "void main() {" +
                    "  gl_FragColor = texture2D(sTexture, vTextureCoord) * mAmbiantColor;" +
                    "}";

    private int mLightAmbiantId;

    public ShaderTextureAmbiant() {
        super(VERTEX_SHADER_TEXTURE_SCRIPT, PIXEL_SHADER_TEXTURE_SCRIPT);
    }

    @Override public boolean useTexture()	{ return true; }
    @Override public boolean useColor()		{ return false; }

    @Override protected String getVertexAttribName()		{ return "m_Position"; }
    @Override protected String getUVAttribName()			{ return "m_UV"; }
    @Override protected String getColorAttribName()			{ return null; }
    @Override protected String getProjMatrixAttribName()	{ return "m_ProjectionMatrix"; }

    @Override
    protected void init(int programId) {
        super.init(programId);

        mLightAmbiantId = GLES20.glGetUniformLocation(programId, "mAmbiantColor");
// Path: smartgl/src/main/java/fr/arnaudguyon/smartgl/tools/Assert.java
// public class Assert {
// 
//     public static void assertTrue(boolean condition) {
//         assertTrue("", condition);
//     }
//     public static void assertTrue(String text, boolean condition) {
//         if (!condition) {
//             doAssert(text);
//         }
//     }
//     public static void assertNotNull(Object object) {
//         assertNotNull("", object);
//     }
//     public static void assertNotNull(String text, Object object) {
//         if (object == null) {
//             doAssert(text);
//         }
//     }
// 
//     public static void assertEquals(Object object1, Object object2) {
//         if (object1 == null) {
//             if (object2 != null) {
//                 doAssert("");
//             }
//         } else {
//             if (object2 == null) {
//                 doAssert("");
//             } else {
//                 if (!object1.equals(object2)) {
//                     doAssert("");
//                 }
//             }
//         }
//     }
// 
//     private static void doAssert(String text) {
//         throw new RuntimeException(text);
//     }
// }


// Path: smartgl/src/main/java/fr/arnaudguyon/smartgl/opengl/ShaderTextureAmbiant.java
import android.opengl.GLES20;
import fr.arnaudguyon.smartgl.tools.Assert;

                    "  vTextureCoord = m_UV;" +
                    "}";
    private final static String PIXEL_SHADER_TEXTURE_SCRIPT =
            "precision mediump float;" +
                    "uniform vec4 mAmbiantColor;" +
                    "varying vec2 vTextureCoord;" +
                    "uniform sampler2D sTexture;" +
                    "void main() {" +
                    "  gl_FragColor = texture2D(sTexture, vTextureCoord) * mAmbiantColor;" +
                    "}";

    private int mLightAmbiantId;

    public ShaderTextureAmbiant() {
        super(VERTEX_SHADER_TEXTURE_SCRIPT, PIXEL_SHADER_TEXTURE_SCRIPT);
    }

    @Override public boolean useTexture()	{ return true; }
    @Override public boolean useColor()		{ return false; }

    @Override protected String getVertexAttribName()		{ return "m_Position"; }
    @Override protected String getUVAttribName()			{ return "m_UV"; }
    @Override protected String getColorAttribName()			{ return null; }
    @Override protected String getProjMatrixAttribName()	{ return "m_ProjectionMatrix"; }

    @Override
    protected void init(int programId) {
        super.init(programId);

        mLightAmbiantId = GLES20.glGetUniformLocation(programId, "mAmbiantColor");
        Assert.assertTrue(mLightAmbiantId >= 0);