Subversion Repositories AndroidProjects

Rev

Rev 1309 | Blame | Compare with Previous | Last modification | View Log | RSS feed

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using BauzoidNET.graphics.shader;
using BauzoidNET.math;

namespace BauzoidNET.graphics
{
    public class PrimitiveShader : GraphicsObject
    {
        // Fields===========================================================================================

            private ShaderProgram mShader = null;
       
            private ShaderUniform mColorHandle = null;

            // Methods==========================================================================================
                       
            public PrimitiveShader(Graphics graphics) : base(graphics)
            {
                    //mShader = ShaderUtil.createShaderFromFile(graphics, "data/bauzoid/shaders/primitive.vert",
                        //          "data/bauzoid/shaders/primitive.frag");
            mShader = ShaderUtil.createShaderFromString(graphics, BauzoidNET.Properties.Resources.primitive_vert,
                BauzoidNET.Properties.Resources.primitive_frag);
               
                    if (mShader != null)
                    {
                            mColorHandle = mShader.getUniform("uColor");
                    }
               
                    // TODO: fail condition -> terminate program
            }
       
            /** Destroy Primitive Shader. */
            public void dispose()
            {
                    if (mShader != null)
                    {
                            mShader.dispose();
                            mShader = null;
                    }
            }
       
            /** Get reference to shader. */
            public ShaderProgram getShader()
            {
                    return mShader;
            }
       
            /** Activate shader with specified variables. */
            public void activate(Vector4 color)
            {
                    mShader.activate();
                    mColorHandle.set(color);
            }
       
            /** Deactivate shader. */
            public void deactivate()
            {
                    mShader.deactivate();
            }
    }
}