コード例 #1
0
		public override void LoadResources()
		{
			if (m_Source != null && m_Source.Device.DepthResolution != ImageResolution.Invalid)
			{
				if (Disposed == true)
				{
					m_Buffer = new float[KinectHelper.GetSizeForResolution(m_Source.Device.DepthResolution) * 4]; 

					m_Texture = new Texture2D(GameEnvironment.Device, new Texture2DDescription()
					{
						Format = SlimDX.DXGI.Format.R32_Float,
						Width = KinectHelper.GetWidthForResolution(m_Source.Device.DepthResolution),
						Height = KinectHelper.GetHeightForResolution(m_Source.Device.DepthResolution),
						MipLevels = 1,
						ArraySize = 1,
						BindFlags = BindFlags.ShaderResource,
						CpuAccessFlags = CpuAccessFlags.Write,
						OptionFlags = ResourceOptionFlags.None,
						Usage = ResourceUsage.Dynamic,
						SampleDescription = new SlimDX.DXGI.SampleDescription(1, 0)
					});

					m_TextureSurface = m_Texture.AsSurface();

					DataRectangle data = m_TextureSurface.Map(SlimDX.DXGI.MapFlags.Discard | SlimDX.DXGI.MapFlags.Write);

					int stride = data.Pitch / 4;

					for (int i = 0, ie = m_Texture.Description.Height; i < ie; i++)
					{
						for (int p = 0; p < stride; p++)
						{
							data.Data.Write(0f);
						}
					}

					m_TextureSurface.Unmap();

					m_TextureResourceView = new ShaderResourceView(GameEnvironment.Device, m_Texture, new ShaderResourceViewDescription()
					{
						Dimension = ShaderResourceViewDimension.Texture2D,
						Format = SlimDX.DXGI.Format.R32_Float,
						ArraySize = 1,
						MipLevels = 1,
						MostDetailedMip = 0,
					});

					m_Image.TextureView = m_TextureResourceView;

					m_Image.LoadResources();

					Disposed = false;
				}
			}
		}
コード例 #2
0
ファイル: TextureTests.cs プロジェクト: RugCode/drg-pt
		protected override void OnResourceLoad()
		{
			base.OnResourceLoad();

			m_Imposter.LoadResources(); 

			m_Texture = new Texture2D(GameEnvironment.Device, new Texture2DDescription()
			{
				Format = SlimDX.DXGI.Format.R32_Float,
				Width = 640,
				Height = 480,
				MipLevels = 1,
				ArraySize = 1,
				BindFlags = BindFlags.ShaderResource,
				CpuAccessFlags = CpuAccessFlags.Write,
				OptionFlags = ResourceOptionFlags.None,
				Usage = ResourceUsage.Dynamic,
				SampleDescription = new SlimDX.DXGI.SampleDescription(1, 0)
			});

			m_TextureSurface = m_Texture.AsSurface();

			DataRectangle data = m_TextureSurface.Map(SlimDX.DXGI.MapFlags.Discard | SlimDX.DXGI.MapFlags.Write);

			//int rowSize = (m_Texture.Description.Width * 4);
			int stride = data.Pitch / 4;
			int stripeWidth = 16;
			int stripeValue = 0;
			bool stripeOn = false; 
			for (int i = 0, ie = m_Texture.Description.Height; i < ie; i++)
			{
				stripeValue = 0;
				stripeOn = false; 
				for (int p = 0; p < stride; p++)
				{
					if (stripeValue++ >= stripeWidth)
					{
						stripeOn = !stripeOn;
						stripeValue = 0; 
					}

					if (stripeOn == true)
					{
						data.Data.Write(1f);
					}
					else
					{
						data.Data.Write(0f);
					}
				}
			}

			m_TextureSurface.Unmap();

			m_TextureResourceView = new ShaderResourceView(GameEnvironment.Device, m_Texture, new ShaderResourceViewDescription()
			{
				Dimension = ShaderResourceViewDimension.Texture2D,
				Format = SlimDX.DXGI.Format.R32_Float,
				ArraySize = 1,
				MipLevels = 1,
				MostDetailedMip = 0,
			});

			m_TestImage.TextureView = m_TextureResourceView;

			m_TestImage.LoadResources();
		}
コード例 #3
0
ファイル: ScreenCapture.cs プロジェクト: RugCode/drg-pt
		public void LoadResources()
		{
			if (m_Disposed == true)
			{
				m_ScanBytes = new byte[m_Description.Width * 4];
				m_Bytes = new byte[m_Description.Width * m_Description.Height * m_PixelSizeInBytes];
				m_CaptureTexture = new Texture2D(GameEnvironment.Device, m_Description);
				m_CaptureSurface = m_CaptureTexture.AsSurface(); 
				m_Bitmap = new System.Drawing.Bitmap(m_Description.Width, m_Description.Height, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
				
				m_Disposed = false;
			}
		}