TextureLoader.FromFile(Device,String,Int32,Int32,Int32,Usage,Format,Pool,Filter,Filter,Int32,PaletteEntry)
FromFile メソッド
使用例
- ファイルを基にしたテクスチャの作成
- メッシュを基にしたテクスチャの作成
ファイルを基にしてテクスチャを作成する。
定義
Visual Basic | Public Shared Function FromFile( _ ByVal device As Device, _ ByVal srcFile As String, _ ByVal width As Integer, _ ByVal height As Integer, _ ByVal mipLevels As Integer, _ ByVal usage As Usage, _ ByVal format As Format, _ ByVal pool As Pool, _ ByVal filter As Filter, _ ByVal mipFilter As Filter, _ ByVal colorKey As Integer, _ ByRef palette As PaletteEntry _ ) As Texture |
C# | public static Texture FromFile( Device device, string srcFile, int width, int height, int mipLevels, Usage usage, Format format, Pool pool, Filter filter, Filter mipFilter, int colorKey, out PaletteEntry palette ); |
Managed C++ | public: static Texture* FromFile( Device* device, String* srcFile, int width, int height, int mipLevels, Usage usage, Format format, Pool pool, Filter filter, Filter mipFilter, int colorKey, PaletteEntry* palette ); |
JScript | public static function FromFile( device : Device, srcFile : String, width : int, height : int, mipLevels : int, usage : Usage, format : Format, pool : Pool, filter : Filter, mipFilter : Filter, colorKey : int, palette : PaletteEntry ) : Texture; |
パラメータ
device | Microsoft.DirectX.Direct3D.Device. |
srcFile | System.String. |
width | System.Int32. |
height | System.Int32. |
mipLevels | System.Int32. |
usage | Microsoft.DirectX.Direct3D.Usage. |
format | Microsoft.DirectX.Direct3D.Format. |
pool | Microsoft.DirectX.Direct3D.Pool. |
filter | Microsoft.DirectX.Direct3D.Filter. |
mipFilter | Microsoft.DirectX.Direct3D.Filter. |
colorKey | System.Int32. |
palette | Microsoft.DirectX.Direct3D.PaletteEntry[]. |
戻り値
Microsoft.DirectX.Direct3D.Texture.
使用例
ファイルを基にしたテクスチャの作成
この例では、ビットマップ化したテクスチャ ファイルをロードする方法を示す。
ファイルを基にして、テクスチャ値を含むテクスチャ オブジェクトを作成するには、TextureLoader.FromFile メソッドを呼び出す。この例では、オーバーロードされた FromFile(Device,String) メソッドが呼び出される。このメソッドは Device 名とファイルの場所を示す文字列を引数にとる。
次は、アプリケーション定義の OnResetDevice メソッドに対し、各呼び出しでロードされるテクスチャ値である。
using Microsoft.DirectX.Direct3D;
.
.
.
// Global variables for this project
Device device = null; // Rendering device
Texture texture = null;
// Initialize the device
.
.
.
// Device reset method
public void OnResetDevice(object sender, EventArgs e)
{
Device dev = (Device)sender;
// Now create the texture
texture = TextureLoader.FromFile(dev, Application.StartupPath +
@"\..\..\banana.bmp");
}
メッシュを基にしたテクスチャの作成
この例は、メッシュから作成されたテクスチャ オブジェクトに対し、ビットマップ化されたテクスチャ ファイルを適用する方法である。
アプリケーション定義の OnResetMeshDevice メソッドは次の内容を実行する。
メッシュ要素は、Mesh.FromFile(String,MeshFlags,Device,ExtendedMaterial[]) を使ってファイルからロードする。
ExtendedMaterial マテリアル バッファにファイルのデータを書き込む。
テクスチャ名およびマテリアル プロパティは、Material3D を使って、マテリアル バッファから抽出する。
ファイルから取得したテクスチャ値は FromFile(Device,String) を使って、各メッシュ要素に適用する。
using Microsoft.DirectX.Direct3D;
public class Meshes : System.Windows.Forms.Form { // Global variables for this project Device device = null; // Rendering device Mesh mesh = null; // Mesh object Direct3D.Material[] meshMaterials; // Materials structure for mesh Texture[] meshTextures; // Textures structure for mesh
public bool InitializeGraphics() // Initialize the Direct3D object { . . . // Call method to reset mesh device device.DeviceReset += new System.EventHandler(this.OnResetMeshDevice); . . . } // Mesh device reset method public void OnResetMeshDevice(object sender, EventArgs e) { ExtendedMaterial[] materials = null; Device dev = (Device)sender; // Set up the directory to load the proper data System.IO.Directory.SetCurrentDirectory( System.Windows.Forms.Application.StartupPath + @"\..\..\"); // Load the mesh from the specified file mesh = Mesh.FromFile("tiger.x", MeshFlags.SystemMem, device, out materials); // Extract texture names and material properties from material buffer meshTextures = new Texture[materials.Length]; meshMaterials = new Direct3D.Material[materials.Length]; for( int i=0; i<materials.Length; i++ ) { meshMaterials[i] = materials[i].Material3D; // Set the ambient color for the material meshMaterials[i].Ambient = meshMaterials[i].Diffuse; // Create the texture meshTextures[i] = TextureLoader.FromFile(dev, materials[i].TextureFilename); } . . . } static void Main() { Meshes frm = new Meshes(); if (!frm.InitializeGraphics()) { // Error handling } System.Windows.Forms.Application.Run(frm); }
}
対象
© 2002 Microsoft Corporation. All rights reserved. Terms of use.