Axiom.RenderSystems.DirectX9.D3DTextureManager.GetNativeFormat C# (CSharp) Метод

GetNativeFormat() публичный Метод

public GetNativeFormat ( TextureType ttype, PixelFormat format, TextureUsage usage ) : Axiom.Media.PixelFormat
ttype TextureType
format PixelFormat
usage TextureUsage
Результат Axiom.Media.PixelFormat
		public override Axiom.Media.PixelFormat GetNativeFormat( TextureType ttype, PixelFormat format, TextureUsage usage )
		{
			// Basic filtering
			D3D.Format d3dPF = D3DHelper.ConvertEnum( D3DHelper.GetClosestSupported( format ) );

			// Calculate usage
			D3D.Usage d3dusage = 0;
			D3D.Pool pool = D3D.Pool.Managed;
			if ( ( usage & TextureUsage.RenderTarget ) != 0 )
			{
				d3dusage |= D3D.Usage.RenderTarget;
				pool = D3D.Pool.Default;
			}
			if ( ( usage & TextureUsage.Dynamic ) != 0 )
			{
				d3dusage |= D3D.Usage.Dynamic;
				pool = D3D.Pool.Default;
			}

			// Use D3DX to adjust pixel format
			switch ( ttype )
			{
				case TextureType.OneD:
				case TextureType.TwoD:
					D3D.TextureRequirements tReqs = D3D.Texture.CheckRequirements( device, 0, 0, 0, d3dusage, D3DHelper.ConvertEnum( format ), pool );
					d3dPF = tReqs.Format;
					break;
				case TextureType.ThreeD:
					D3D.VolumeTextureRequirements volReqs = D3D.VolumeTexture.CheckRequirements( device, 0, 0, 0, 0, d3dusage, D3DHelper.ConvertEnum( format ), pool );
					d3dPF = volReqs.Format;
					break;
				case TextureType.CubeMap:
					D3D.CubeTextureRequirements cubeReqs = D3D.CubeTexture.CheckRequirements( device, 0, 0, d3dusage, D3DHelper.ConvertEnum( format ), pool );
					d3dPF = cubeReqs.Format;
					break;
			}
			return D3DHelper.ConvertEnum( d3dPF );
		}