Exemple #1
0
        public void Render(float deltaT)
        {
            if (_device == null || Shader == null || _Mesh == null)
            {
                return;
            }

            if (!_Mesh.IsLoaded)
            {
                return;
            }
            ;

            _device.InputAssembler.InputLayout       = Shader.InputLayout;
            _device.InputAssembler.PrimitiveTopology = _Mesh.PrimitiveTopology;
            _device.InputAssembler.SetIndexBuffer(_Mesh.IndexBuffer, Format.R32_UInt, 0);
            _device.InputAssembler.SetVertexBuffers(0,
                                                    new VertexBufferBinding(_Mesh.VertexBuffer, _Mesh.VertexStride, 0));

            for (var i = 0; i < Shader.Technique.Description.PassCount; ++i)
            {
                Shader.Technique.GetPassByIndex(i).Apply();
                _device.DrawIndexed(_Mesh.MeshData.IndexCount, 0, 0);
            }
        }
Exemple #2
0
        public void Render(float deltaT)
        {
            if (_device == null)
            {
                return;
            }

            if (Model != null && Shader != null)
            {
                _device.InputAssembler.InputLayout       = Shader.InputLayout;
                _device.InputAssembler.PrimitiveTopology = Model.PrimitiveTopology;
                _device.InputAssembler.SetIndexBuffer(Model.IndexBuffer, Format.R32_UInt, 0);
                _device.InputAssembler.SetVertexBuffers(0, new VertexBufferBinding(Model.VertexBuffer, Model.VertexStride, 0));

                for (int i = 0; i < Shader.Technique.Description.PassCount; ++i)
                {
                    Shader.Technique.GetPassByIndex(i).Apply();
                    _device.DrawIndexed(Model.IndexCount, 0, 0);
                }
            }
        }
        public void Render(Device1 device)
        {
            if (!_isInitialized)
                Initialize(device);

            if (Shader != null)
            {
                if (!Shader.IsInitialized)
                    Shader.Initialize(device);

                device.InputAssembler.InputLayout = Shader.InputLayout;
                device.InputAssembler.PrimitiveTopology = PrimitiveTopology;
                device.InputAssembler.SetIndexBuffer(IndexBuffer, Format.R32_UInt, 0);
                device.InputAssembler.SetVertexBuffers(0, new VertexBufferBinding(VertexBuffer, VertexStride, 0));

                for (int i = 0; i < Shader.Technique.Description.PassCount; ++i)
                {
                    Shader.Technique.GetPassByIndex(i).Apply();
                    device.DrawIndexed(IndexCount, 0, 0);
                }
            }
        }
        private void RenderSelectedGameObject(GameObject selectedObject,Camera camera,Device1 device) 
        {
            //Render the selected object
            if (selectedObject != null && SelectedShader != null)
            {
                if (!SelectedShader.IsInitialized)
                    SelectedShader.Initialize(device);

                SelectedShader.SetWorld(SelectedObject.Transform.World);
                SelectedShader.SetWorldViewProjection(selectedObject.Transform.World * camera.ViewMatrix * camera.ProjectionMatrix);

                ModelComponent modelComponent = selectedObject.GetComponent<ModelComponent>();
                if (modelComponent != null)
                {
                    device.InputAssembler.InputLayout = SelectedShader.InputLayout;
                    device.InputAssembler.PrimitiveTopology = modelComponent.PrimitiveTopology;
                    device.InputAssembler.SetIndexBuffer(modelComponent.IndexBuffer, Format.R32_UInt, 0);
                    device.InputAssembler.SetVertexBuffers(0,
                    new VertexBufferBinding(modelComponent.VertexBuffer, modelComponent.VertexStride, 0));

                    for (int i = 0; i < SelectedShader.Technique.Description.PassCount; ++i)
                    {
                        SelectedShader.Technique.GetPassByIndex(i).Apply();
                        device.DrawIndexed(modelComponent.IndexCount, 0, 0);
                    }
                }

                foreach (var child in selectedObject.Children)
                {
                    RenderSelectedGameObject(child, camera, device);
                }

            }
        }