Axiom.Demos.DeferredShadingSystem.MiniLight.CreateRectangle2D C# (CSharp) Метод

CreateRectangle2D() публичный Метод

public CreateRectangle2D ( ) : void
Результат void
        public void CreateRectangle2D()
        {
            /// TODO: this RenderOp should really be re-used between MLight objects,
            /// not generated every time
            renderOperation.vertexData = new VertexData();
            renderOperation.indexData = null;

            renderOperation.vertexData.vertexCount = 4;
            renderOperation.vertexData.vertexStart = 0;
            renderOperation.operationType = OperationType.TriangleStrip;
            renderOperation.useIndices = false;

            VertexDeclaration decl = renderOperation.vertexData.vertexDeclaration;
            VertexBufferBinding bind = renderOperation.vertexData.vertexBufferBinding;

            decl.AddElement( 0, 0, VertexElementType.Float3, VertexElementSemantic.Position );

            HardwareVertexBuffer vbuf = HardwareBufferManager.Instance.CreateVertexBuffer( decl.GetVertexSize( 0 ),
                                                                                            renderOperation.vertexData.vertexCount,
                                                                                            BufferUsage.StaticWriteOnly );

            // Bind buffer
            bind.SetBinding( 0, vbuf );
            // Upload data
            float[] data = new float[] {
                                		-1, 1,-1,   // corner 1
                                		-1,-1,-1,   // corner 2
                                		 1, 1,-1,   // corner 3
                                		 1,-1,-1 }; // corner 4
            vbuf.WriteData( 0, sizeof( float ) * data.Length, data, true );

            // Set bounding
            this.box = new AxisAlignedBox( new Vector3( -10000, -10000, -10000 ), new Vector3( 10000, 10000, 10000 ) );
            this._radius = 15000;
            this._ignoreWorld = true;
        }