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 | } |