次の方法で共有


Texture クラス

Texture クラス

使用例

  • メッシュを基にしたテクスチャの作成

テクスチャ リソースを操作するには、Texture オブジェクトのメソッドを使う。

定義

Visual Basic Public Class Texture
   Inherits BaseTexture 
C# public class Texture : BaseTexture
Managed C++ public __gc class Texture  : public BaseTexture
JScript public class Texture extends BaseTexture

メンバ テーブル

次のテーブルは、Texture オブジェクトによって公開されているメンバの一覧である。左側のタブをクリックし、表示したいメンバの種類を選ぶこと。

イベント

イベント 説明
Disposing オブジェクトで Disposing イベントを検出するイベント ハンドラを追加する。BaseTexture から継承される。

メソッド

メソッド 説明
AddDirtyRectangle テクスチャ リソースにダーティー領域を追加する。
Dispose オブジェクトが使用したアンマネージのリソースを直ちに解放する。BaseTexture から継承される。
Equals このインスタンスが、指定したオブジェクトに等しいかどうかを示す値を返す。
Finalize Garbage Collector がオブジェクトを破棄する前に、オブジェクトが使用したリソースを強制的に解放する。BaseTexture から継承される。
FreePrivateData このリソースに関連付けられている指定されたプライベート データを解放する。Resource から継承される。
FromBitmap .NET ビットマップ からテクスチャ リソースを作成する。
FromStream .NET ストリーム オブジェクトからテクスチャ リソースを作成する。
GenerateMipSubLevels ミップマップ サブレベルを生成する。BaseTexture から継承される。
GetHashCode このインスタンスのハッシュ コードを返す。
GetLevelDescription テクスチャ リソースのレベル記述を取得する。
GetObjectByValue このメンバは Managed DirectX インフラストラクチャをサポートするが、作成したコードから直接使うことを念頭に置いたものではない。
GetPrivateData リソースに関連付けられたプライベート データを提供されたバッファにコピーする。Resource から継承される。
GetSurfaceLevel 指定されたテクスチャ サーフェイスのレベルを取得する。
LockRectangle テクスチャ リソース上の矩形をロックする。
op_Equality
op_Inequality
PreLoad 管理下のリソースをプリロードする。Resource から継承される。
raise_Disposing BaseTexture から継承される。
SetLevelOfDetail 管理下のテクスチャに最大詳細レベル (LOD) を設定する。BaseTexture から継承される。
SetPriority このリソースにリソース管理の優先順位を割り当てる。Resource から継承される。
SetPrivateData アプリケーションでの使用が意図されているリソースとデータを関連付ける。データは値で渡され、複数のデータ セットを単一のリソースと関連付けることができる。Resource から継承される。
Texture オブジェクトの新しいインスタンスを初期化する。
UnlockRectangle テクスチャ リソース上の矩形をアンロックする。

プロパティ

プロパティ 説明
AutoGenerateFilterType 自動生成するミップマップ サブレベルに使うフィルタ タイプを設定する。BaseTexture から継承される。
Device リソースに関連付けられているデバイスを取得する。Resource から継承される。
Disposed オブジェクトが解放された場合に true となる値を取得する。それ以外の場合、値は false となる。BaseTexture から継承される。
LevelCount マルチレベル テクスチャのテクスチャ レベルの数を返す。BaseTexture から継承される。
LevelOfDetail 管理下のテクスチャに設定されている最大詳細レベル (LOD) に制限された値を返す。BaseTexture から継承される。
Priority Retrieves or sets the priority for this resource. Inherited from Resource.
Type リソースのタイプを取得する。Resource から継承される。

継承の階層構造

Object

MarshalByRefObject

Resource

BaseTexture

Texture

使用例

メッシュを基にしたテクスチャの作成

この例は、メッシュから作成されたテクスチャ オブジェクトに対し、ビットマップ化されたテクスチャ ファイルを適用する方法である。

アプリケーション定義の 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);
    }
}

クラスの情報

名前空間 Microsoft.DirectX.Direct3D
アセンブリ Microsoft.DirectX.Direct3D (microsoft.directx.direct3d.dll)
厳密名 Microsoft.DirectX.Direct3D,  Version=0293,  Culture=neutral,  PublicKeyToken=d3231b57b74a1492

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