Esempio n. 1
0
        public SDX_VertexBuffer(SDX_Display display, VertexLayout layout, int vertexCount)
        {
            mDisplay = display;
            mCount   = vertexCount;

            mDeclaration = CreateVertexDeclaration(mDisplay.D3D_Device.Device, layout);
            Direct3D.VertexFormat mFormats = CreateVertexFormat(layout);

            mLayout = layout;

            mBuffer = new SlimDX.Direct3D9.VertexBuffer(
                mDisplay.D3D_Device.Device,
                vertexCount * layout.VertexSize,
                SlimDX.Direct3D9.Usage.WriteOnly,
                mFormats,
                Direct3D.Pool.Managed);
        }
Esempio n. 2
0
        private Direct3D.VertexFormat CreateVertexFormat(VertexLayout layout)
        {
            Direct3D.VertexFormat retval = SlimDX.Direct3D9.VertexFormat.None;

            foreach (var element in layout)
            {
                switch (element.ElementType)
                {
                case VertexElement.Position:
                    retval |= SlimDX.Direct3D9.VertexFormat.Position;
                    break;

                case VertexElement.Texture:
                    retval |= SlimDX.Direct3D9.VertexFormat.Texture0;
                    break;

                case VertexElement.Texture1:
                    retval |= SlimDX.Direct3D9.VertexFormat.Texture1;
                    break;

                case VertexElement.Texture2:
                    retval |= SlimDX.Direct3D9.VertexFormat.Texture2;
                    break;

                case VertexElement.Texture3:
                    retval |= SlimDX.Direct3D9.VertexFormat.Texture3;
                    break;

                case VertexElement.DiffuseColor:
                    retval |= SlimDX.Direct3D9.VertexFormat.Diffuse;
                    break;
                }
            }

            return(retval);
        }