/// <summary> /// default generates geometry to draw window as a single quad. /// </summary> protected virtual void RealiseGeometryImpl() { var tex = d_textarget.GetTexture(); var tu = d_size.Width * tex.GetTexelScaling().X; var tv = d_size.Height * tex.GetTexelScaling().Y; var texRect = d_textarget.IsRenderingInverted() ? new Rectf(0, 1, tu, 1 - tv) : new Rectf(0, 0, tu, tv); var area = new Rectf(0, 0, d_size.Width, d_size.Height); var c = new Lunatics.Mathematics.Vector4(1f, 1f, 1f, 1f); var vbuffer = new TexturedColouredVertex[6]; // vertex 0 vbuffer[0].Position = new Lunatics.Mathematics.Vector3(area.d_min.X, area.d_min.Y, 0.0f); vbuffer[0].Colour = c; vbuffer[0].TextureCoordinates = new Lunatics.Mathematics.Vector2(texRect.d_min.X, texRect.d_min.Y); // vertex 1 vbuffer[1].Position = new Lunatics.Mathematics.Vector3(area.d_min.X, area.d_max.Y, 0.0f); vbuffer[1].Colour = c; vbuffer[1].TextureCoordinates = new Lunatics.Mathematics.Vector2(texRect.d_min.X, texRect.d_max.Y); // vertex 2 vbuffer[2].Position = new Lunatics.Mathematics.Vector3(area.d_max.X, area.d_max.Y, 0.0f); vbuffer[2].Colour = c; vbuffer[2].TextureCoordinates = new Lunatics.Mathematics.Vector2(texRect.d_max.X, texRect.d_max.Y); // vertex 3 vbuffer[3].Position = new Lunatics.Mathematics.Vector3(area.d_max.X, area.d_min.Y, 0.0f); vbuffer[3].Colour = c; vbuffer[3].TextureCoordinates = new Lunatics.Mathematics.Vector2(texRect.d_max.X, texRect.d_min.Y); // vertex 4 vbuffer[4].Position = new Lunatics.Mathematics.Vector3(area.d_min.X, area.d_min.Y, 0.0f); vbuffer[4].Colour = c; vbuffer[4].TextureCoordinates = new Lunatics.Mathematics.Vector2(texRect.d_min.X, texRect.d_min.Y); // vertex 5 vbuffer[5].Position = new Lunatics.Mathematics.Vector3(area.d_max.X, area.d_max.Y, 0.0f); vbuffer[5].Colour = c; vbuffer[5].TextureCoordinates = new Lunatics.Mathematics.Vector2(texRect.d_max.X, texRect.d_max.Y); d_geometry.SetTexture("texture0", tex); d_geometry.AppendGeometry(vbuffer); }
/// <summary> /// Sets the colour of the struct /// </summary> /// <param name="colour"></param> public void SetColour(Colour colour) { Colour = new Lunatics.Mathematics.Vector4(colour.Red, colour.Green, colour.Blue, colour.Alpha); }