示例#1
0
 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(D3DMaterial obj)
 {
     return((obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr);
 }
        internal static void DrawRibbon(this RenderContext context, RibbonMesh mesh, D3DSimpleTextureEffect effect, D3DMaterial material, Matrix viewProjection, ShaderResourceView texture)
        {
            // World = I, so use viewProjection as World*viewProjection
            effect.WorldTransform = Matrix.Identity;
            effect.WorldTransformInversedTransposed = MathF.InverseTranspose(Matrix.Identity);
            effect.WorldViewProjectionTransform     = viewProjection;

            effect.Material = material;
            effect.Texture  = texture;

            var tech          = effect.SimpleTextureTechnique;
            var desc          = tech.Description;
            var deviceContext = context.Direct3DDevice.ImmediateContext;

            for (var i = 0; i < desc.PassCount; ++i)
            {
                tech.GetPassByIndex(i).Apply(deviceContext);
                mesh.Draw(deviceContext);
            }
        }