using RecrownedGTK.Types; using OpenTK.Graphics; namespace RecrownedGTK.Graphics.Render { public class RectTexture : Rectangle, IDrawable { private uint[] indices; private VertexInformation[] vertices; private TextureData textureData; public Color4 Color { get { return vertices[0].color; } set { for (int vert = 0; vert < vertices.Length; vert++) { vertices[vert].color = value; } } } public override float Width { get { return vertices[1].coords.X - vertices[0].coords.X; } set { vertices[1].coords.X = vertices[0].coords.X + value; vertices[2].coords.X = vertices[3].coords.X + value; } } public override float Height { set { vertices[3].coords.Y = vertices[0].coords.Y + value; vertices[2].coords.Y = vertices[1].coords.Y + value; } get { return vertices[3].coords.Y - vertices[0].coords.Y; } } public override float X { set { float width = Width; vertices[0].coords.X = value; Width = width; } get { return vertices[0].coords.X; } } public override float Y { set { float height = Height; vertices[0].coords.Y = value; Height = height; } get { return vertices[0].coords.Y; } } public RectTexture(TextureData textureData) { this.textureData = textureData; vertices = new VertexInformation[4]; indices = new uint[] {0, 1, 3, 1, 2, 3}; } public void Draw(out VertexInformation[] vertices, out uint[] indices, out TextureData textureData) { indices = this.indices; vertices = this.vertices; textureData = this.textureData; } } }