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();
}
}
}