次の方法で共有


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(
    Devicedevice,
    StringsrcFile,
    int width,
    int height,
    int mipLevels,
    Usage usage,
    Format format,
    Pool pool,
    Filter filter,
    Filter mipFilter,
    int colorKey,
    PaletteEntrypalette
);
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 メソッドは次の内容を実行する。

  1. メッシュ要素は、Mesh.FromFile(String,MeshFlags,Device,ExtendedMaterial[]) を使ってファイルからロードする。

  2. ExtendedMaterial マテリアル バッファにファイルのデータを書き込む。

  3. テクスチャ名およびマテリアル プロパティは、Material3D を使って、マテリアル バッファから抽出する。

  4. ファイルから取得したテクスチャ値は 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);
    }
    

    }

対象

TextureLoader

© 2002 Microsoft Corporation. All rights reserved. Terms of use.