コード例 #1
0
        private void DrawPositionNormalColorIndexedTriangleBuffer(Device device, VertexAndIndexDeviceBuffer deviceBuffers, Matrix worldViewProj)
        {
            int layoutNumber = 4;

            device.InputAssembler.InputLayout       = _renderLayouts[layoutNumber].VertexLayout;
            device.InputAssembler.PrimitiveTopology = SharpDX.Direct3D.PrimitiveTopology.TriangleList;

            if (null != deviceBuffers.ClipPlanes)
            {
                for (int i = 0; i < Math.Min(6, deviceBuffers.ClipPlanes.Length); ++i)
                {
                    _evClipPlanes[i].Set(deviceBuffers.ClipPlanes[i]);
                }
            }

            SetShaderMaterialVariables(deviceBuffers.Material);

            device.InputAssembler.SetVertexBuffers(0, new VertexBufferBinding(deviceBuffers.VertexBuffer, 48, 0));
            device.InputAssembler.SetIndexBuffer(deviceBuffers.IndexBuffer, Format.R32_UInt, 0);

            _renderLayouts[layoutNumber].Pass.Apply();
            device.DrawIndexed(deviceBuffers.IndexCount, 0, 0);

            if (null != deviceBuffers.ClipPlanes)
            {
                var emptyPlane = new Plane();
                for (int i = 0; i < Math.Min(6, deviceBuffers.ClipPlanes.Length); ++i)
                {
                    _evClipPlanes[i].Set(emptyPlane);
                }
            }
        }
コード例 #2
0
        private void DrawPositionNormalIndexedTriangleBuffer(Device device, VertexAndIndexDeviceBuffer deviceBuffers, Matrix worldViewProj)
        {
            int layoutNumber = 3;

            device.InputAssembler.InputLayout       = _renderLayouts[layoutNumber].VertexLayout;
            device.InputAssembler.PrimitiveTopology = SharpDX.Direct3D.PrimitiveTopology.TriangleList;

            SetShaderMaterialVariables(deviceBuffers.Material);

            device.InputAssembler.SetVertexBuffers(0, new VertexBufferBinding(deviceBuffers.VertexBuffer, 32, 0));
            device.InputAssembler.SetIndexBuffer(deviceBuffers.IndexBuffer, Format.R32_UInt, 0);

            _renderLayouts[layoutNumber].Pass.Apply();
            device.DrawIndexed(deviceBuffers.IndexCount, 0, 0);
        }
コード例 #3
0
        private void DrawPositionNormalUIndexedTriangleBuffer(Device device, VertexAndIndexDeviceBuffer deviceBuffers, Matrix worldViewProj)
        {
            int layoutNumber = 6;

            device.InputAssembler.InputLayout       = _renderLayouts[layoutNumber].VertexLayout;
            device.InputAssembler.PrimitiveTopology = SharpDX.Direct3D.PrimitiveTopology.TriangleList;

            // set clip planes
            if (null != deviceBuffers.ClipPlanes)
            {
                for (int i = 0; i < Math.Min(6, deviceBuffers.ClipPlanes.Length); ++i)
                {
                    _evClipPlanes[i].Set(deviceBuffers.ClipPlanes[i]);
                }
            }

            // set UColor texture

            var stream = _textureFor1DColorProvider.Map(0, MapMode.WriteDiscard, SharpDX.Direct3D10.MapFlags.None);

            //stream.Seek(0, System.IO.SeekOrigin.Begin);
            stream.Write(deviceBuffers.UColors, 0, deviceBuffers.UColors.Length);
            //stream.Close();
            _textureFor1DColorProvider.Unmap(0);

            SetShaderMaterialVariables(deviceBuffers.Material); // note: the material's color must be set to the ColorProviders InvalidColor!

            // draw now

            device.InputAssembler.SetVertexBuffers(0, new VertexBufferBinding(deviceBuffers.VertexBuffer, 32, 0));
            device.InputAssembler.SetIndexBuffer(deviceBuffers.IndexBuffer, Format.R32_UInt, 0);

            _renderLayouts[layoutNumber].Pass.Apply();
            device.DrawIndexed(deviceBuffers.IndexCount, 0, 0);

            // clear clip planes afterwards
            if (null != deviceBuffers.ClipPlanes)
            {
                var emptyPlane = new Plane();
                for (int i = 0; i < Math.Min(6, deviceBuffers.ClipPlanes.Length); ++i)
                {
                    _evClipPlanes[i].Set(emptyPlane);
                }
            }
        }
コード例 #4
0
ファイル: D3D10Scene.cs プロジェクト: Altaxo/Altaxo
		private void DrawPositionNormalIndexedTriangleBuffer(Device device, VertexAndIndexDeviceBuffer deviceBuffers, Matrix worldViewProj)
		{
			int layoutNumber = 3;
			device.InputAssembler.InputLayout = _renderLayouts[layoutNumber].VertexLayout;
			device.InputAssembler.PrimitiveTopology = SharpDX.Direct3D.PrimitiveTopology.TriangleList;

			SetShaderMaterialVariables(deviceBuffers.Material);

			device.InputAssembler.SetVertexBuffers(0, new VertexBufferBinding(deviceBuffers.VertexBuffer, 32, 0));
			device.InputAssembler.SetIndexBuffer(deviceBuffers.IndexBuffer, Format.R32_UInt, 0);

			_renderLayouts[layoutNumber].pass.Apply();
			device.DrawIndexed(deviceBuffers.IndexCount, 0, 0);
		}
コード例 #5
0
ファイル: D3D10Scene.cs プロジェクト: Altaxo/Altaxo
		private void DrawPositionNormalUIndexedTriangleBuffer(Device device, VertexAndIndexDeviceBuffer deviceBuffers, Matrix worldViewProj)
		{
			int layoutNumber = 6;
			device.InputAssembler.InputLayout = _renderLayouts[layoutNumber].VertexLayout;
			device.InputAssembler.PrimitiveTopology = SharpDX.Direct3D.PrimitiveTopology.TriangleList;

			// set clip planes
			if (null != deviceBuffers.ClipPlanes)
			{
				for (int i = 0; i < Math.Min(6, deviceBuffers.ClipPlanes.Length); ++i)
				{
					_evClipPlanes[i].Set(deviceBuffers.ClipPlanes[i]);
				}
			}

			// set UColor texture

			var stream = _textureFor1DColorProvider.Map(0, MapMode.WriteDiscard, SharpDX.Direct3D10.MapFlags.None);
			//stream.Seek(0, System.IO.SeekOrigin.Begin);
			stream.Write(deviceBuffers.UColors, 0, deviceBuffers.UColors.Length);
			//stream.Close();
			_textureFor1DColorProvider.Unmap(0);

			SetShaderMaterialVariables(deviceBuffers.Material); // note: the material's color must be set to the ColorProviders InvalidColor!

			// draw now

			device.InputAssembler.SetVertexBuffers(0, new VertexBufferBinding(deviceBuffers.VertexBuffer, 32, 0));
			device.InputAssembler.SetIndexBuffer(deviceBuffers.IndexBuffer, Format.R32_UInt, 0);

			_renderLayouts[layoutNumber].pass.Apply();
			device.DrawIndexed(deviceBuffers.IndexCount, 0, 0);

			// clear clip planes afterwards
			if (null != deviceBuffers.ClipPlanes)
			{
				var emptyPlane = new Plane();
				for (int i = 0; i < Math.Min(6, deviceBuffers.ClipPlanes.Length); ++i)
				{
					_evClipPlanes[i].Set(emptyPlane);
				}
			}
		}
コード例 #6
0
ファイル: D3D10Scene.cs プロジェクト: Altaxo/Altaxo
		private void DrawPositionNormalColorIndexedTriangleBuffer(Device device, VertexAndIndexDeviceBuffer deviceBuffers, Matrix worldViewProj)
		{
			int layoutNumber = 4;
			device.InputAssembler.InputLayout = _renderLayouts[layoutNumber].VertexLayout;
			device.InputAssembler.PrimitiveTopology = SharpDX.Direct3D.PrimitiveTopology.TriangleList;

			if (null != deviceBuffers.ClipPlanes)
			{
				for (int i = 0; i < Math.Min(6, deviceBuffers.ClipPlanes.Length); ++i)
				{
					_evClipPlanes[i].Set(deviceBuffers.ClipPlanes[i]);
				}
			}

			SetShaderMaterialVariables(deviceBuffers.Material);

			device.InputAssembler.SetVertexBuffers(0, new VertexBufferBinding(deviceBuffers.VertexBuffer, 48, 0));
			device.InputAssembler.SetIndexBuffer(deviceBuffers.IndexBuffer, Format.R32_UInt, 0);

			_renderLayouts[layoutNumber].pass.Apply();
			device.DrawIndexed(deviceBuffers.IndexCount, 0, 0);

			if (null != deviceBuffers.ClipPlanes)
			{
				var emptyPlane = new Plane();
				for (int i = 0; i < Math.Min(6, deviceBuffers.ClipPlanes.Length); ++i)
				{
					_evClipPlanes[i].Set(emptyPlane);
				}
			}
		}