Win32 API 日本語リファレンス
ホームGraphics.Direct3D11 › D3D11_TEXTURE_LAYOUT

D3D11_TEXTURE_LAYOUT

列挙型
基底型i4

メンバー 3

名前10進16進説明
D3D11_TEXTURE_LAYOUT_UNDEFINED00x0テクスチャのレイアウトは未定義であり、ドライバーによって選択されます。
D3D11_TEXTURE_LAYOUT_ROW_MAJOR10x1テクスチャのデータは行優先 (row major、ピッチ リニアとも呼ばれます) の順序で格納されます。
D3D11_TEXTURE_LAYOUT_64K_STANDARD_SWIZZLE20x2既定のテクスチャは標準化されたスウィズル パターンを使用します。

公式ドキュメント

テクスチャのレイアウト オプションを指定します。

解説(Remarks)

この列挙型は、既定のテクスチャのスウィズル パターンを制御し、既定のテクスチャに対するマップのサポートを有効にします。呼び出し元は D3D11_FEATURE_DATA_D3D11_OPTIONS2 を照会して、各オプションがサポートされていることを確認しなければなりません。

標準スウィズル形式はページ サイズのチャンク内で適用され、ページどうしは互いに線形な順序で配置されます。16 ビットのインターリーブ パターンによって、スウィズル前のページ内位置からスウィズル後の位置への変換が定義されます。

Standard swizzle patterns 例として、上記の 32bpp スウィズル形式を考えます。これは次のインターリーブ マスクで表されます。左側のビットが最上位です。
UINT xBytesMask = 1010 1010 1000 1111
UINT yMask =      0101 0101 0111 0000

スウィズルされたアドレスを計算するには、次のようなコードを使用できます (_pdep_u32 命令がサポートされている場合)。

UINT swizzledOffset = resourceBaseOffset +
                      _pdep_u32(xOffset, xBytesMask) + 
                      _pdep_u32(yOffset, yBytesMask);
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

各言語での定義

列挙メンバーの定義。HSP タブは #define global(値は16進)。

typedef enum D3D11_TEXTURE_LAYOUT : int {
    D3D11_TEXTURE_LAYOUT_UNDEFINED = 0,
    D3D11_TEXTURE_LAYOUT_ROW_MAJOR = 1,
    D3D11_TEXTURE_LAYOUT_64K_STANDARD_SWIZZLE = 2
} D3D11_TEXTURE_LAYOUT;
public enum D3D11_TEXTURE_LAYOUT : int
{
    D3D11_TEXTURE_LAYOUT_UNDEFINED = 0,
    D3D11_TEXTURE_LAYOUT_ROW_MAJOR = 1,
    D3D11_TEXTURE_LAYOUT_64K_STANDARD_SWIZZLE = 2,
}
Public Enum D3D11_TEXTURE_LAYOUT As Integer
    D3D11_TEXTURE_LAYOUT_UNDEFINED = 0
    D3D11_TEXTURE_LAYOUT_ROW_MAJOR = 1
    D3D11_TEXTURE_LAYOUT_64K_STANDARD_SWIZZLE = 2
End Enum
import enum

class D3D11_TEXTURE_LAYOUT(enum.IntEnum):
    D3D11_TEXTURE_LAYOUT_UNDEFINED = 0
    D3D11_TEXTURE_LAYOUT_ROW_MAJOR = 1
    D3D11_TEXTURE_LAYOUT_64K_STANDARD_SWIZZLE = 2
// D3D11_TEXTURE_LAYOUT
pub const D3D11_TEXTURE_LAYOUT_UNDEFINED: i32 = 0;
pub const D3D11_TEXTURE_LAYOUT_ROW_MAJOR: i32 = 1;
pub const D3D11_TEXTURE_LAYOUT_64K_STANDARD_SWIZZLE: i32 = 2;
// D3D11_TEXTURE_LAYOUT
const (
	D3D11_TEXTURE_LAYOUT_UNDEFINED int32 = 0
	D3D11_TEXTURE_LAYOUT_ROW_MAJOR int32 = 1
	D3D11_TEXTURE_LAYOUT_64K_STANDARD_SWIZZLE int32 = 2
)
const
  D3D11_TEXTURE_LAYOUT_UNDEFINED = 0;
  D3D11_TEXTURE_LAYOUT_ROW_MAJOR = 1;
  D3D11_TEXTURE_LAYOUT_64K_STANDARD_SWIZZLE = 2;
// D3D11_TEXTURE_LAYOUT
pub const D3D11_TEXTURE_LAYOUT_UNDEFINED: i32 = 0;
pub const D3D11_TEXTURE_LAYOUT_ROW_MAJOR: i32 = 1;
pub const D3D11_TEXTURE_LAYOUT_64K_STANDARD_SWIZZLE: i32 = 2;
const
  D3D11_TEXTURE_LAYOUT_UNDEFINED* = 0
  D3D11_TEXTURE_LAYOUT_ROW_MAJOR* = 1
  D3D11_TEXTURE_LAYOUT_64K_STANDARD_SWIZZLE* = 2
enum D3D11_TEXTURE_LAYOUT : int {
    D3D11_TEXTURE_LAYOUT_UNDEFINED = 0,
    D3D11_TEXTURE_LAYOUT_ROW_MAJOR = 1,
    D3D11_TEXTURE_LAYOUT_64K_STANDARD_SWIZZLE = 2,
}
#define global D3D11_TEXTURE_LAYOUT_UNDEFINED            0x0
#define global D3D11_TEXTURE_LAYOUT_ROW_MAJOR            0x1
#define global D3D11_TEXTURE_LAYOUT_64K_STANDARD_SWIZZLE 0x2