Subversion Repositories AndroidProjects

Rev

Rev 1080 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1080 chris 1
package com.gebauz.bauzoid.graphics;
2
 
3
import com.badlogic.gdx.Gdx;
4
import com.gebauz.bauzoid.graphics.shader.ShaderProgram;
1081 chris 5
import com.gebauz.bauzoid.graphics.shader.ShaderUniform;
1080 chris 6
import com.gebauz.bauzoid.graphics.shader.ShaderUtil;
1081 chris 7
import com.gebauz.bauzoid.math.Vector4;
1080 chris 8
 
9
/** Simple Shader for primitive rendering (lines, etc.) such as for debugging. */
10
public class PrimitiveShader extends GraphicsObject
11
{
12
        // Constants========================================================================================
13
 
14
        // Embedded Types===================================================================================
15
 
16
        // Fields===========================================================================================
17
 
18
        private ShaderProgram mShader = null;
1081 chris 19
 
20
        private ShaderUniform mColorHandle = null;
1080 chris 21
 
22
        // Methods==========================================================================================
23
 
24
        public PrimitiveShader(Graphics graphics)
25
        {
26
                super(graphics);
27
 
28
                mShader = ShaderUtil.createShaderFromFile(graphics,
1081 chris 29
                                Gdx.files.internal("data/bauzoid/shaders/primitive.vert"),
30
                                Gdx.files.internal("data/bauzoid/shaders/primitive.frag"));
31
 
32
                if (mShader != null)
33
                {
34
                        mColorHandle = mShader.getUniform("uColor");
35
                }
36
 
37
                // TODO: fail condition -> terminate program
1080 chris 38
        }
39
 
40
        /** Destroy Primitive Shader. */
41
        public void dispose()
42
        {
43
                if (mShader != null)
44
                {
45
                        mShader.dispose();
46
                        mShader = null;
47
                }
48
        }
49
 
50
        /** Get reference to shader. */
51
        public final ShaderProgram getShader()
52
        {
53
                return mShader;
54
        }
55
 
56
        /** Activate shader with specified variables. */
1081 chris 57
        public void activate(Vector4 color)
1080 chris 58
        {
59
                mShader.activate();
1081 chris 60
                mColorHandle.set(color);
1080 chris 61
        }
62
 
63
        /** Deactivate shader. */
64
        public void deactivate()
65
        {
66
                mShader.deactivate();
67
        }
68
 
69
        // Getters/Setters==================================================================================
70
 
71
}