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); } }
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); } } }