コード例 #1
0
        /// <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);
        }
コード例 #2
0
 /// <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);
 }