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

D3DCAPS9

構造体
サイズx64: 304 バイト / x86: 304 バイト

サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。

フィールド

フィールドサイズx64x86説明
DeviceTypeD3DDEVTYPE4+0+0デバイスの種別を示すD3DDEVTYPE。
AdapterOrdinalDWORD4+4+4アダプタの序数。
CapsDWORD4+8+8ドライバの一般的なケイパビリティフラグ群。
Caps2DWORD4+12+12追加のドライバケイパビリティフラグ群。
Caps3DWORD4+16+16さらに追加のドライバケイパビリティフラグ群。
PresentationIntervalsDWORD4+20+20サポートするプレゼンテーション間隔のフラグ群。
CursorCapsDWORD4+24+24ハードウェアカーソルのケイパビリティフラグ群。
DevCapsDWORD4+28+28デバイスのケイパビリティフラグ群。
PrimitiveMiscCapsDWORD4+32+32プリミティブ描画に関する各種ケイパビリティフラグ群。
RasterCapsDWORD4+36+36ラスタライズに関するケイパビリティフラグ群。
ZCmpCapsDWORD4+40+40Z(深度)比較関数のケイパビリティフラグ群。
SrcBlendCapsDWORD4+44+44ソースブレンド係数のケイパビリティフラグ群。
DestBlendCapsDWORD4+48+48デスティネーションブレンド係数のケイパビリティフラグ群。
AlphaCmpCapsDWORD4+52+52アルファ比較関数のケイパビリティフラグ群。
ShadeCapsDWORD4+56+56シェーディングのケイパビリティフラグ群。
TextureCapsDWORD4+60+60テクスチャ機能のケイパビリティフラグ群。
TextureFilterCapsDWORD4+64+64テクスチャフィルタのケイパビリティフラグ群。
CubeTextureFilterCapsDWORD4+68+68キューブテクスチャフィルタのケイパビリティフラグ群。
VolumeTextureFilterCapsDWORD4+72+72ボリュームテクスチャフィルタのケイパビリティフラグ群。
TextureAddressCapsDWORD4+76+76テクスチャアドレッシングのケイパビリティフラグ群。
VolumeTextureAddressCapsDWORD4+80+80ボリュームテクスチャアドレッシングのケイパビリティフラグ群。
LineCapsDWORD4+84+84ライン描画のケイパビリティフラグ群。
MaxTextureWidthDWORD4+88+88テクスチャの最大幅(テクセル単位)。
MaxTextureHeightDWORD4+92+92テクスチャの最大高さ(テクセル単位)。
MaxVolumeExtentDWORD4+96+96ボリュームテクスチャの最大の辺の長さ。
MaxTextureRepeatDWORD4+100+100テクスチャの最大繰り返し回数。
MaxTextureAspectRatioDWORD4+104+104テクスチャの最大アスペクト比。
MaxAnisotropyDWORD4+108+108サポートする最大異方性フィルタリングの度合い。
MaxVertexWFLOAT4+112+112頂点のW成分の最大値。
GuardBandLeftFLOAT4+116+116ガードバンドの左端座標。
GuardBandTopFLOAT4+120+120ガードバンドの上端座標。
GuardBandRightFLOAT4+124+124ガードバンドの右端座標。
GuardBandBottomFLOAT4+128+128ガードバンドの下端座標。
ExtentsAdjustFLOAT4+132+132アンチエイリアス時の範囲調整量。
StencilCapsDWORD4+136+136ステンシルバッファ操作のケイパビリティフラグ群。
FVFCapsDWORD4+140+140FVF(柔軟頂点フォーマット)のケイパビリティフラグ群。
TextureOpCapsDWORD4+144+144テクスチャブレンド操作のケイパビリティフラグ群。
MaxTextureBlendStagesDWORD4+148+148サポートする最大テクスチャブレンドステージ数。
MaxSimultaneousTexturesDWORD4+152+152同時に使用可能な最大テクスチャ数。
VertexProcessingCapsDWORD4+156+156頂点処理のケイパビリティフラグ群。
MaxActiveLightsDWORD4+160+160同時に有効化できる最大ライト数。
MaxUserClipPlanesDWORD4+164+164ユーザ定義クリップ平面の最大数。
MaxVertexBlendMatricesDWORD4+168+168頂点ブレンドに使用できる最大行列数。
MaxVertexBlendMatrixIndexDWORD4+172+172頂点ブレンド行列インデックスの最大値。
MaxPointSizeFLOAT4+176+176ポイントスプライトの最大サイズ。
MaxPrimitiveCountDWORD4+180+1801回の描画で扱える最大プリミティブ数。
MaxVertexIndexDWORD4+184+184頂点インデックスの最大値。
MaxStreamsDWORD4+188+188サポートする最大頂点ストリーム数。
MaxStreamStrideDWORD4+192+192頂点ストリームの最大ストライド。
VertexShaderVersionDWORD4+196+196サポートする頂点シェーダのバージョン。
MaxVertexShaderConstDWORD4+200+200頂点シェーダの定数レジスタ数。
PixelShaderVersionDWORD4+204+204サポートするピクセルシェーダのバージョン。
PixelShader1xMaxValueFLOAT4+208+208ピクセルシェーダ1.xで扱える最大値。
DevCaps2DWORD4+212+212追加のデバイスケイパビリティフラグ群。
MaxNpatchTessellationLevelFLOAT4+216+216Nパッチテッセレーションの最大レベル。
Reserved5DWORD4+220+220予約フィールド。
MasterAdapterOrdinalDWORD4+224+224マスタアダプタの序数。
AdapterOrdinalInGroupDWORD4+228+228グループ内でのアダプタの序数。
NumberOfAdaptersInGroupDWORD4+232+232アダプタグループに含まれるアダプタ数。
DeclTypesDWORD4+236+236サポートする頂点宣言型のフラグ群。
NumSimultaneousRTsDWORD4+240+240同時に設定可能なレンダーターゲット数。
StretchRectFilterCapsDWORD4+244+244StretchRectで使用可能なフィルタのケイパビリティフラグ群。
VS20CapsD3DVSHADERCAPS2_016+248+248頂点シェーダ2.0の詳細ケイパビリティ(D3DVSHADERCAPS2_0)。
PS20CapsD3DPSHADERCAPS2_020+264+264ピクセルシェーダ2.0の詳細ケイパビリティ(D3DPSHADERCAPS2_0)。
VertexTextureFilterCapsDWORD4+284+284頂点テクスチャフィルタのケイパビリティフラグ群。
MaxVShaderInstructionsExecutedDWORD4+288+288頂点シェーダで実行可能な最大命令数。
MaxPShaderInstructionsExecutedDWORD4+292+292ピクセルシェーダで実行可能な最大命令数。
MaxVertexShader30InstructionSlotsDWORD4+296+296頂点シェーダ3.0の最大命令スロット数。
MaxPixelShader30InstructionSlotsDWORD4+300+300ピクセルシェーダ3.0の最大命令スロット数。

各言語での定義

#include <windows.h>

// D3DVSHADERCAPS2_0  (x64 16 / x86 16 バイト)
typedef struct D3DVSHADERCAPS2_0 {
    DWORD Caps;
    INT DynamicFlowControlDepth;
    INT NumTemps;
    INT StaticFlowControlDepth;
} D3DVSHADERCAPS2_0;

// D3DPSHADERCAPS2_0  (x64 20 / x86 20 バイト)
typedef struct D3DPSHADERCAPS2_0 {
    DWORD Caps;
    INT DynamicFlowControlDepth;
    INT NumTemps;
    INT StaticFlowControlDepth;
    INT NumInstructionSlots;
} D3DPSHADERCAPS2_0;

// D3DCAPS9  (x64 304 / x86 304 バイト)
typedef struct D3DCAPS9 {
    D3DDEVTYPE DeviceType;
    DWORD AdapterOrdinal;
    DWORD Caps;
    DWORD Caps2;
    DWORD Caps3;
    DWORD PresentationIntervals;
    DWORD CursorCaps;
    DWORD DevCaps;
    DWORD PrimitiveMiscCaps;
    DWORD RasterCaps;
    DWORD ZCmpCaps;
    DWORD SrcBlendCaps;
    DWORD DestBlendCaps;
    DWORD AlphaCmpCaps;
    DWORD ShadeCaps;
    DWORD TextureCaps;
    DWORD TextureFilterCaps;
    DWORD CubeTextureFilterCaps;
    DWORD VolumeTextureFilterCaps;
    DWORD TextureAddressCaps;
    DWORD VolumeTextureAddressCaps;
    DWORD LineCaps;
    DWORD MaxTextureWidth;
    DWORD MaxTextureHeight;
    DWORD MaxVolumeExtent;
    DWORD MaxTextureRepeat;
    DWORD MaxTextureAspectRatio;
    DWORD MaxAnisotropy;
    FLOAT MaxVertexW;
    FLOAT GuardBandLeft;
    FLOAT GuardBandTop;
    FLOAT GuardBandRight;
    FLOAT GuardBandBottom;
    FLOAT ExtentsAdjust;
    DWORD StencilCaps;
    DWORD FVFCaps;
    DWORD TextureOpCaps;
    DWORD MaxTextureBlendStages;
    DWORD MaxSimultaneousTextures;
    DWORD VertexProcessingCaps;
    DWORD MaxActiveLights;
    DWORD MaxUserClipPlanes;
    DWORD MaxVertexBlendMatrices;
    DWORD MaxVertexBlendMatrixIndex;
    FLOAT MaxPointSize;
    DWORD MaxPrimitiveCount;
    DWORD MaxVertexIndex;
    DWORD MaxStreams;
    DWORD MaxStreamStride;
    DWORD VertexShaderVersion;
    DWORD MaxVertexShaderConst;
    DWORD PixelShaderVersion;
    FLOAT PixelShader1xMaxValue;
    DWORD DevCaps2;
    FLOAT MaxNpatchTessellationLevel;
    DWORD Reserved5;
    DWORD MasterAdapterOrdinal;
    DWORD AdapterOrdinalInGroup;
    DWORD NumberOfAdaptersInGroup;
    DWORD DeclTypes;
    DWORD NumSimultaneousRTs;
    DWORD StretchRectFilterCaps;
    D3DVSHADERCAPS2_0 VS20Caps;
    D3DPSHADERCAPS2_0 PS20Caps;
    DWORD VertexTextureFilterCaps;
    DWORD MaxVShaderInstructionsExecuted;
    DWORD MaxPShaderInstructionsExecuted;
    DWORD MaxVertexShader30InstructionSlots;
    DWORD MaxPixelShader30InstructionSlots;
} D3DCAPS9;
using System;
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct D3DVSHADERCAPS2_0
{
    public uint Caps;
    public int DynamicFlowControlDepth;
    public int NumTemps;
    public int StaticFlowControlDepth;
}

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct D3DPSHADERCAPS2_0
{
    public uint Caps;
    public int DynamicFlowControlDepth;
    public int NumTemps;
    public int StaticFlowControlDepth;
    public int NumInstructionSlots;
}

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct D3DCAPS9
{
    public int DeviceType;
    public uint AdapterOrdinal;
    public uint Caps;
    public uint Caps2;
    public uint Caps3;
    public uint PresentationIntervals;
    public uint CursorCaps;
    public uint DevCaps;
    public uint PrimitiveMiscCaps;
    public uint RasterCaps;
    public uint ZCmpCaps;
    public uint SrcBlendCaps;
    public uint DestBlendCaps;
    public uint AlphaCmpCaps;
    public uint ShadeCaps;
    public uint TextureCaps;
    public uint TextureFilterCaps;
    public uint CubeTextureFilterCaps;
    public uint VolumeTextureFilterCaps;
    public uint TextureAddressCaps;
    public uint VolumeTextureAddressCaps;
    public uint LineCaps;
    public uint MaxTextureWidth;
    public uint MaxTextureHeight;
    public uint MaxVolumeExtent;
    public uint MaxTextureRepeat;
    public uint MaxTextureAspectRatio;
    public uint MaxAnisotropy;
    public float MaxVertexW;
    public float GuardBandLeft;
    public float GuardBandTop;
    public float GuardBandRight;
    public float GuardBandBottom;
    public float ExtentsAdjust;
    public uint StencilCaps;
    public uint FVFCaps;
    public uint TextureOpCaps;
    public uint MaxTextureBlendStages;
    public uint MaxSimultaneousTextures;
    public uint VertexProcessingCaps;
    public uint MaxActiveLights;
    public uint MaxUserClipPlanes;
    public uint MaxVertexBlendMatrices;
    public uint MaxVertexBlendMatrixIndex;
    public float MaxPointSize;
    public uint MaxPrimitiveCount;
    public uint MaxVertexIndex;
    public uint MaxStreams;
    public uint MaxStreamStride;
    public uint VertexShaderVersion;
    public uint MaxVertexShaderConst;
    public uint PixelShaderVersion;
    public float PixelShader1xMaxValue;
    public uint DevCaps2;
    public float MaxNpatchTessellationLevel;
    public uint Reserved5;
    public uint MasterAdapterOrdinal;
    public uint AdapterOrdinalInGroup;
    public uint NumberOfAdaptersInGroup;
    public uint DeclTypes;
    public uint NumSimultaneousRTs;
    public uint StretchRectFilterCaps;
    public D3DVSHADERCAPS2_0 VS20Caps;
    public D3DPSHADERCAPS2_0 PS20Caps;
    public uint VertexTextureFilterCaps;
    public uint MaxVShaderInstructionsExecuted;
    public uint MaxPShaderInstructionsExecuted;
    public uint MaxVertexShader30InstructionSlots;
    public uint MaxPixelShader30InstructionSlots;
}
Imports System.Runtime.InteropServices

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure D3DVSHADERCAPS2_0
    Public Caps As UInteger
    Public DynamicFlowControlDepth As Integer
    Public NumTemps As Integer
    Public StaticFlowControlDepth As Integer
End Structure

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure D3DPSHADERCAPS2_0
    Public Caps As UInteger
    Public DynamicFlowControlDepth As Integer
    Public NumTemps As Integer
    Public StaticFlowControlDepth As Integer
    Public NumInstructionSlots As Integer
End Structure

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure D3DCAPS9
    Public DeviceType As Integer
    Public AdapterOrdinal As UInteger
    Public Caps As UInteger
    Public Caps2 As UInteger
    Public Caps3 As UInteger
    Public PresentationIntervals As UInteger
    Public CursorCaps As UInteger
    Public DevCaps As UInteger
    Public PrimitiveMiscCaps As UInteger
    Public RasterCaps As UInteger
    Public ZCmpCaps As UInteger
    Public SrcBlendCaps As UInteger
    Public DestBlendCaps As UInteger
    Public AlphaCmpCaps As UInteger
    Public ShadeCaps As UInteger
    Public TextureCaps As UInteger
    Public TextureFilterCaps As UInteger
    Public CubeTextureFilterCaps As UInteger
    Public VolumeTextureFilterCaps As UInteger
    Public TextureAddressCaps As UInteger
    Public VolumeTextureAddressCaps As UInteger
    Public LineCaps As UInteger
    Public MaxTextureWidth As UInteger
    Public MaxTextureHeight As UInteger
    Public MaxVolumeExtent As UInteger
    Public MaxTextureRepeat As UInteger
    Public MaxTextureAspectRatio As UInteger
    Public MaxAnisotropy As UInteger
    Public MaxVertexW As Single
    Public GuardBandLeft As Single
    Public GuardBandTop As Single
    Public GuardBandRight As Single
    Public GuardBandBottom As Single
    Public ExtentsAdjust As Single
    Public StencilCaps As UInteger
    Public FVFCaps As UInteger
    Public TextureOpCaps As UInteger
    Public MaxTextureBlendStages As UInteger
    Public MaxSimultaneousTextures As UInteger
    Public VertexProcessingCaps As UInteger
    Public MaxActiveLights As UInteger
    Public MaxUserClipPlanes As UInteger
    Public MaxVertexBlendMatrices As UInteger
    Public MaxVertexBlendMatrixIndex As UInteger
    Public MaxPointSize As Single
    Public MaxPrimitiveCount As UInteger
    Public MaxVertexIndex As UInteger
    Public MaxStreams As UInteger
    Public MaxStreamStride As UInteger
    Public VertexShaderVersion As UInteger
    Public MaxVertexShaderConst As UInteger
    Public PixelShaderVersion As UInteger
    Public PixelShader1xMaxValue As Single
    Public DevCaps2 As UInteger
    Public MaxNpatchTessellationLevel As Single
    Public Reserved5 As UInteger
    Public MasterAdapterOrdinal As UInteger
    Public AdapterOrdinalInGroup As UInteger
    Public NumberOfAdaptersInGroup As UInteger
    Public DeclTypes As UInteger
    Public NumSimultaneousRTs As UInteger
    Public StretchRectFilterCaps As UInteger
    Public VS20Caps As D3DVSHADERCAPS2_0
    Public PS20Caps As D3DPSHADERCAPS2_0
    Public VertexTextureFilterCaps As UInteger
    Public MaxVShaderInstructionsExecuted As UInteger
    Public MaxPShaderInstructionsExecuted As UInteger
    Public MaxVertexShader30InstructionSlots As UInteger
    Public MaxPixelShader30InstructionSlots As UInteger
End Structure
import ctypes
from ctypes import wintypes

class D3DVSHADERCAPS2_0(ctypes.Structure):
    _fields_ = [
        ("Caps", wintypes.DWORD),
        ("DynamicFlowControlDepth", ctypes.c_int),
        ("NumTemps", ctypes.c_int),
        ("StaticFlowControlDepth", ctypes.c_int),
    ]

class D3DPSHADERCAPS2_0(ctypes.Structure):
    _fields_ = [
        ("Caps", wintypes.DWORD),
        ("DynamicFlowControlDepth", ctypes.c_int),
        ("NumTemps", ctypes.c_int),
        ("StaticFlowControlDepth", ctypes.c_int),
        ("NumInstructionSlots", ctypes.c_int),
    ]

class D3DCAPS9(ctypes.Structure):
    _fields_ = [
        ("DeviceType", ctypes.c_int),
        ("AdapterOrdinal", wintypes.DWORD),
        ("Caps", wintypes.DWORD),
        ("Caps2", wintypes.DWORD),
        ("Caps3", wintypes.DWORD),
        ("PresentationIntervals", wintypes.DWORD),
        ("CursorCaps", wintypes.DWORD),
        ("DevCaps", wintypes.DWORD),
        ("PrimitiveMiscCaps", wintypes.DWORD),
        ("RasterCaps", wintypes.DWORD),
        ("ZCmpCaps", wintypes.DWORD),
        ("SrcBlendCaps", wintypes.DWORD),
        ("DestBlendCaps", wintypes.DWORD),
        ("AlphaCmpCaps", wintypes.DWORD),
        ("ShadeCaps", wintypes.DWORD),
        ("TextureCaps", wintypes.DWORD),
        ("TextureFilterCaps", wintypes.DWORD),
        ("CubeTextureFilterCaps", wintypes.DWORD),
        ("VolumeTextureFilterCaps", wintypes.DWORD),
        ("TextureAddressCaps", wintypes.DWORD),
        ("VolumeTextureAddressCaps", wintypes.DWORD),
        ("LineCaps", wintypes.DWORD),
        ("MaxTextureWidth", wintypes.DWORD),
        ("MaxTextureHeight", wintypes.DWORD),
        ("MaxVolumeExtent", wintypes.DWORD),
        ("MaxTextureRepeat", wintypes.DWORD),
        ("MaxTextureAspectRatio", wintypes.DWORD),
        ("MaxAnisotropy", wintypes.DWORD),
        ("MaxVertexW", ctypes.c_float),
        ("GuardBandLeft", ctypes.c_float),
        ("GuardBandTop", ctypes.c_float),
        ("GuardBandRight", ctypes.c_float),
        ("GuardBandBottom", ctypes.c_float),
        ("ExtentsAdjust", ctypes.c_float),
        ("StencilCaps", wintypes.DWORD),
        ("FVFCaps", wintypes.DWORD),
        ("TextureOpCaps", wintypes.DWORD),
        ("MaxTextureBlendStages", wintypes.DWORD),
        ("MaxSimultaneousTextures", wintypes.DWORD),
        ("VertexProcessingCaps", wintypes.DWORD),
        ("MaxActiveLights", wintypes.DWORD),
        ("MaxUserClipPlanes", wintypes.DWORD),
        ("MaxVertexBlendMatrices", wintypes.DWORD),
        ("MaxVertexBlendMatrixIndex", wintypes.DWORD),
        ("MaxPointSize", ctypes.c_float),
        ("MaxPrimitiveCount", wintypes.DWORD),
        ("MaxVertexIndex", wintypes.DWORD),
        ("MaxStreams", wintypes.DWORD),
        ("MaxStreamStride", wintypes.DWORD),
        ("VertexShaderVersion", wintypes.DWORD),
        ("MaxVertexShaderConst", wintypes.DWORD),
        ("PixelShaderVersion", wintypes.DWORD),
        ("PixelShader1xMaxValue", ctypes.c_float),
        ("DevCaps2", wintypes.DWORD),
        ("MaxNpatchTessellationLevel", ctypes.c_float),
        ("Reserved5", wintypes.DWORD),
        ("MasterAdapterOrdinal", wintypes.DWORD),
        ("AdapterOrdinalInGroup", wintypes.DWORD),
        ("NumberOfAdaptersInGroup", wintypes.DWORD),
        ("DeclTypes", wintypes.DWORD),
        ("NumSimultaneousRTs", wintypes.DWORD),
        ("StretchRectFilterCaps", wintypes.DWORD),
        ("VS20Caps", D3DVSHADERCAPS2_0),
        ("PS20Caps", D3DPSHADERCAPS2_0),
        ("VertexTextureFilterCaps", wintypes.DWORD),
        ("MaxVShaderInstructionsExecuted", wintypes.DWORD),
        ("MaxPShaderInstructionsExecuted", wintypes.DWORD),
        ("MaxVertexShader30InstructionSlots", wintypes.DWORD),
        ("MaxPixelShader30InstructionSlots", wintypes.DWORD),
    ]
#[repr(C)]
pub struct D3DVSHADERCAPS2_0 {
    pub Caps: u32,
    pub DynamicFlowControlDepth: i32,
    pub NumTemps: i32,
    pub StaticFlowControlDepth: i32,
}

#[repr(C)]
pub struct D3DPSHADERCAPS2_0 {
    pub Caps: u32,
    pub DynamicFlowControlDepth: i32,
    pub NumTemps: i32,
    pub StaticFlowControlDepth: i32,
    pub NumInstructionSlots: i32,
}

#[repr(C)]
pub struct D3DCAPS9 {
    pub DeviceType: i32,
    pub AdapterOrdinal: u32,
    pub Caps: u32,
    pub Caps2: u32,
    pub Caps3: u32,
    pub PresentationIntervals: u32,
    pub CursorCaps: u32,
    pub DevCaps: u32,
    pub PrimitiveMiscCaps: u32,
    pub RasterCaps: u32,
    pub ZCmpCaps: u32,
    pub SrcBlendCaps: u32,
    pub DestBlendCaps: u32,
    pub AlphaCmpCaps: u32,
    pub ShadeCaps: u32,
    pub TextureCaps: u32,
    pub TextureFilterCaps: u32,
    pub CubeTextureFilterCaps: u32,
    pub VolumeTextureFilterCaps: u32,
    pub TextureAddressCaps: u32,
    pub VolumeTextureAddressCaps: u32,
    pub LineCaps: u32,
    pub MaxTextureWidth: u32,
    pub MaxTextureHeight: u32,
    pub MaxVolumeExtent: u32,
    pub MaxTextureRepeat: u32,
    pub MaxTextureAspectRatio: u32,
    pub MaxAnisotropy: u32,
    pub MaxVertexW: f32,
    pub GuardBandLeft: f32,
    pub GuardBandTop: f32,
    pub GuardBandRight: f32,
    pub GuardBandBottom: f32,
    pub ExtentsAdjust: f32,
    pub StencilCaps: u32,
    pub FVFCaps: u32,
    pub TextureOpCaps: u32,
    pub MaxTextureBlendStages: u32,
    pub MaxSimultaneousTextures: u32,
    pub VertexProcessingCaps: u32,
    pub MaxActiveLights: u32,
    pub MaxUserClipPlanes: u32,
    pub MaxVertexBlendMatrices: u32,
    pub MaxVertexBlendMatrixIndex: u32,
    pub MaxPointSize: f32,
    pub MaxPrimitiveCount: u32,
    pub MaxVertexIndex: u32,
    pub MaxStreams: u32,
    pub MaxStreamStride: u32,
    pub VertexShaderVersion: u32,
    pub MaxVertexShaderConst: u32,
    pub PixelShaderVersion: u32,
    pub PixelShader1xMaxValue: f32,
    pub DevCaps2: u32,
    pub MaxNpatchTessellationLevel: f32,
    pub Reserved5: u32,
    pub MasterAdapterOrdinal: u32,
    pub AdapterOrdinalInGroup: u32,
    pub NumberOfAdaptersInGroup: u32,
    pub DeclTypes: u32,
    pub NumSimultaneousRTs: u32,
    pub StretchRectFilterCaps: u32,
    pub VS20Caps: D3DVSHADERCAPS2_0,
    pub PS20Caps: D3DPSHADERCAPS2_0,
    pub VertexTextureFilterCaps: u32,
    pub MaxVShaderInstructionsExecuted: u32,
    pub MaxPShaderInstructionsExecuted: u32,
    pub MaxVertexShader30InstructionSlots: u32,
    pub MaxPixelShader30InstructionSlots: u32,
}
import "golang.org/x/sys/windows"

type D3DVSHADERCAPS2_0 struct {
	Caps uint32
	DynamicFlowControlDepth int32
	NumTemps int32
	StaticFlowControlDepth int32
}

type D3DPSHADERCAPS2_0 struct {
	Caps uint32
	DynamicFlowControlDepth int32
	NumTemps int32
	StaticFlowControlDepth int32
	NumInstructionSlots int32
}

type D3DCAPS9 struct {
	DeviceType int32
	AdapterOrdinal uint32
	Caps uint32
	Caps2 uint32
	Caps3 uint32
	PresentationIntervals uint32
	CursorCaps uint32
	DevCaps uint32
	PrimitiveMiscCaps uint32
	RasterCaps uint32
	ZCmpCaps uint32
	SrcBlendCaps uint32
	DestBlendCaps uint32
	AlphaCmpCaps uint32
	ShadeCaps uint32
	TextureCaps uint32
	TextureFilterCaps uint32
	CubeTextureFilterCaps uint32
	VolumeTextureFilterCaps uint32
	TextureAddressCaps uint32
	VolumeTextureAddressCaps uint32
	LineCaps uint32
	MaxTextureWidth uint32
	MaxTextureHeight uint32
	MaxVolumeExtent uint32
	MaxTextureRepeat uint32
	MaxTextureAspectRatio uint32
	MaxAnisotropy uint32
	MaxVertexW float32
	GuardBandLeft float32
	GuardBandTop float32
	GuardBandRight float32
	GuardBandBottom float32
	ExtentsAdjust float32
	StencilCaps uint32
	FVFCaps uint32
	TextureOpCaps uint32
	MaxTextureBlendStages uint32
	MaxSimultaneousTextures uint32
	VertexProcessingCaps uint32
	MaxActiveLights uint32
	MaxUserClipPlanes uint32
	MaxVertexBlendMatrices uint32
	MaxVertexBlendMatrixIndex uint32
	MaxPointSize float32
	MaxPrimitiveCount uint32
	MaxVertexIndex uint32
	MaxStreams uint32
	MaxStreamStride uint32
	VertexShaderVersion uint32
	MaxVertexShaderConst uint32
	PixelShaderVersion uint32
	PixelShader1xMaxValue float32
	DevCaps2 uint32
	MaxNpatchTessellationLevel float32
	Reserved5 uint32
	MasterAdapterOrdinal uint32
	AdapterOrdinalInGroup uint32
	NumberOfAdaptersInGroup uint32
	DeclTypes uint32
	NumSimultaneousRTs uint32
	StretchRectFilterCaps uint32
	VS20Caps D3DVSHADERCAPS2_0
	PS20Caps D3DPSHADERCAPS2_0
	VertexTextureFilterCaps uint32
	MaxVShaderInstructionsExecuted uint32
	MaxPShaderInstructionsExecuted uint32
	MaxVertexShader30InstructionSlots uint32
	MaxPixelShader30InstructionSlots uint32
}
type
  D3DVSHADERCAPS2_0 = record
    Caps: DWORD;
    DynamicFlowControlDepth: Integer;
    NumTemps: Integer;
    StaticFlowControlDepth: Integer;
  end;

  D3DPSHADERCAPS2_0 = record
    Caps: DWORD;
    DynamicFlowControlDepth: Integer;
    NumTemps: Integer;
    StaticFlowControlDepth: Integer;
    NumInstructionSlots: Integer;
  end;

  D3DCAPS9 = record
    DeviceType: Integer;
    AdapterOrdinal: DWORD;
    Caps: DWORD;
    Caps2: DWORD;
    Caps3: DWORD;
    PresentationIntervals: DWORD;
    CursorCaps: DWORD;
    DevCaps: DWORD;
    PrimitiveMiscCaps: DWORD;
    RasterCaps: DWORD;
    ZCmpCaps: DWORD;
    SrcBlendCaps: DWORD;
    DestBlendCaps: DWORD;
    AlphaCmpCaps: DWORD;
    ShadeCaps: DWORD;
    TextureCaps: DWORD;
    TextureFilterCaps: DWORD;
    CubeTextureFilterCaps: DWORD;
    VolumeTextureFilterCaps: DWORD;
    TextureAddressCaps: DWORD;
    VolumeTextureAddressCaps: DWORD;
    LineCaps: DWORD;
    MaxTextureWidth: DWORD;
    MaxTextureHeight: DWORD;
    MaxVolumeExtent: DWORD;
    MaxTextureRepeat: DWORD;
    MaxTextureAspectRatio: DWORD;
    MaxAnisotropy: DWORD;
    MaxVertexW: Single;
    GuardBandLeft: Single;
    GuardBandTop: Single;
    GuardBandRight: Single;
    GuardBandBottom: Single;
    ExtentsAdjust: Single;
    StencilCaps: DWORD;
    FVFCaps: DWORD;
    TextureOpCaps: DWORD;
    MaxTextureBlendStages: DWORD;
    MaxSimultaneousTextures: DWORD;
    VertexProcessingCaps: DWORD;
    MaxActiveLights: DWORD;
    MaxUserClipPlanes: DWORD;
    MaxVertexBlendMatrices: DWORD;
    MaxVertexBlendMatrixIndex: DWORD;
    MaxPointSize: Single;
    MaxPrimitiveCount: DWORD;
    MaxVertexIndex: DWORD;
    MaxStreams: DWORD;
    MaxStreamStride: DWORD;
    VertexShaderVersion: DWORD;
    MaxVertexShaderConst: DWORD;
    PixelShaderVersion: DWORD;
    PixelShader1xMaxValue: Single;
    DevCaps2: DWORD;
    MaxNpatchTessellationLevel: Single;
    Reserved5: DWORD;
    MasterAdapterOrdinal: DWORD;
    AdapterOrdinalInGroup: DWORD;
    NumberOfAdaptersInGroup: DWORD;
    DeclTypes: DWORD;
    NumSimultaneousRTs: DWORD;
    StretchRectFilterCaps: DWORD;
    VS20Caps: D3DVSHADERCAPS2_0;
    PS20Caps: D3DPSHADERCAPS2_0;
    VertexTextureFilterCaps: DWORD;
    MaxVShaderInstructionsExecuted: DWORD;
    MaxPShaderInstructionsExecuted: DWORD;
    MaxVertexShader30InstructionSlots: DWORD;
    MaxPixelShader30InstructionSlots: DWORD;
  end;
const D3DVSHADERCAPS2_0 = extern struct {
    Caps: u32,
    DynamicFlowControlDepth: i32,
    NumTemps: i32,
    StaticFlowControlDepth: i32,
};

const D3DPSHADERCAPS2_0 = extern struct {
    Caps: u32,
    DynamicFlowControlDepth: i32,
    NumTemps: i32,
    StaticFlowControlDepth: i32,
    NumInstructionSlots: i32,
};

const D3DCAPS9 = extern struct {
    DeviceType: i32,
    AdapterOrdinal: u32,
    Caps: u32,
    Caps2: u32,
    Caps3: u32,
    PresentationIntervals: u32,
    CursorCaps: u32,
    DevCaps: u32,
    PrimitiveMiscCaps: u32,
    RasterCaps: u32,
    ZCmpCaps: u32,
    SrcBlendCaps: u32,
    DestBlendCaps: u32,
    AlphaCmpCaps: u32,
    ShadeCaps: u32,
    TextureCaps: u32,
    TextureFilterCaps: u32,
    CubeTextureFilterCaps: u32,
    VolumeTextureFilterCaps: u32,
    TextureAddressCaps: u32,
    VolumeTextureAddressCaps: u32,
    LineCaps: u32,
    MaxTextureWidth: u32,
    MaxTextureHeight: u32,
    MaxVolumeExtent: u32,
    MaxTextureRepeat: u32,
    MaxTextureAspectRatio: u32,
    MaxAnisotropy: u32,
    MaxVertexW: f32,
    GuardBandLeft: f32,
    GuardBandTop: f32,
    GuardBandRight: f32,
    GuardBandBottom: f32,
    ExtentsAdjust: f32,
    StencilCaps: u32,
    FVFCaps: u32,
    TextureOpCaps: u32,
    MaxTextureBlendStages: u32,
    MaxSimultaneousTextures: u32,
    VertexProcessingCaps: u32,
    MaxActiveLights: u32,
    MaxUserClipPlanes: u32,
    MaxVertexBlendMatrices: u32,
    MaxVertexBlendMatrixIndex: u32,
    MaxPointSize: f32,
    MaxPrimitiveCount: u32,
    MaxVertexIndex: u32,
    MaxStreams: u32,
    MaxStreamStride: u32,
    VertexShaderVersion: u32,
    MaxVertexShaderConst: u32,
    PixelShaderVersion: u32,
    PixelShader1xMaxValue: f32,
    DevCaps2: u32,
    MaxNpatchTessellationLevel: f32,
    Reserved5: u32,
    MasterAdapterOrdinal: u32,
    AdapterOrdinalInGroup: u32,
    NumberOfAdaptersInGroup: u32,
    DeclTypes: u32,
    NumSimultaneousRTs: u32,
    StretchRectFilterCaps: u32,
    VS20Caps: D3DVSHADERCAPS2_0,
    PS20Caps: D3DPSHADERCAPS2_0,
    VertexTextureFilterCaps: u32,
    MaxVShaderInstructionsExecuted: u32,
    MaxPShaderInstructionsExecuted: u32,
    MaxVertexShader30InstructionSlots: u32,
    MaxPixelShader30InstructionSlots: u32,
};
type
  D3DVSHADERCAPS2_0 {.bycopy.} = object
    Caps: uint32
    DynamicFlowControlDepth: int32
    NumTemps: int32
    StaticFlowControlDepth: int32

  D3DPSHADERCAPS2_0 {.bycopy.} = object
    Caps: uint32
    DynamicFlowControlDepth: int32
    NumTemps: int32
    StaticFlowControlDepth: int32
    NumInstructionSlots: int32

  D3DCAPS9 {.bycopy.} = object
    DeviceType: int32
    AdapterOrdinal: uint32
    Caps: uint32
    Caps2: uint32
    Caps3: uint32
    PresentationIntervals: uint32
    CursorCaps: uint32
    DevCaps: uint32
    PrimitiveMiscCaps: uint32
    RasterCaps: uint32
    ZCmpCaps: uint32
    SrcBlendCaps: uint32
    DestBlendCaps: uint32
    AlphaCmpCaps: uint32
    ShadeCaps: uint32
    TextureCaps: uint32
    TextureFilterCaps: uint32
    CubeTextureFilterCaps: uint32
    VolumeTextureFilterCaps: uint32
    TextureAddressCaps: uint32
    VolumeTextureAddressCaps: uint32
    LineCaps: uint32
    MaxTextureWidth: uint32
    MaxTextureHeight: uint32
    MaxVolumeExtent: uint32
    MaxTextureRepeat: uint32
    MaxTextureAspectRatio: uint32
    MaxAnisotropy: uint32
    MaxVertexW: float32
    GuardBandLeft: float32
    GuardBandTop: float32
    GuardBandRight: float32
    GuardBandBottom: float32
    ExtentsAdjust: float32
    StencilCaps: uint32
    FVFCaps: uint32
    TextureOpCaps: uint32
    MaxTextureBlendStages: uint32
    MaxSimultaneousTextures: uint32
    VertexProcessingCaps: uint32
    MaxActiveLights: uint32
    MaxUserClipPlanes: uint32
    MaxVertexBlendMatrices: uint32
    MaxVertexBlendMatrixIndex: uint32
    MaxPointSize: float32
    MaxPrimitiveCount: uint32
    MaxVertexIndex: uint32
    MaxStreams: uint32
    MaxStreamStride: uint32
    VertexShaderVersion: uint32
    MaxVertexShaderConst: uint32
    PixelShaderVersion: uint32
    PixelShader1xMaxValue: float32
    DevCaps2: uint32
    MaxNpatchTessellationLevel: float32
    Reserved5: uint32
    MasterAdapterOrdinal: uint32
    AdapterOrdinalInGroup: uint32
    NumberOfAdaptersInGroup: uint32
    DeclTypes: uint32
    NumSimultaneousRTs: uint32
    StretchRectFilterCaps: uint32
    VS20Caps: D3DVSHADERCAPS2_0
    PS20Caps: D3DPSHADERCAPS2_0
    VertexTextureFilterCaps: uint32
    MaxVShaderInstructionsExecuted: uint32
    MaxPShaderInstructionsExecuted: uint32
    MaxVertexShader30InstructionSlots: uint32
    MaxPixelShader30InstructionSlots: uint32
struct D3DVSHADERCAPS2_0
{
    uint Caps;
    int DynamicFlowControlDepth;
    int NumTemps;
    int StaticFlowControlDepth;
}

struct D3DPSHADERCAPS2_0
{
    uint Caps;
    int DynamicFlowControlDepth;
    int NumTemps;
    int StaticFlowControlDepth;
    int NumInstructionSlots;
}

struct D3DCAPS9
{
    int DeviceType;
    uint AdapterOrdinal;
    uint Caps;
    uint Caps2;
    uint Caps3;
    uint PresentationIntervals;
    uint CursorCaps;
    uint DevCaps;
    uint PrimitiveMiscCaps;
    uint RasterCaps;
    uint ZCmpCaps;
    uint SrcBlendCaps;
    uint DestBlendCaps;
    uint AlphaCmpCaps;
    uint ShadeCaps;
    uint TextureCaps;
    uint TextureFilterCaps;
    uint CubeTextureFilterCaps;
    uint VolumeTextureFilterCaps;
    uint TextureAddressCaps;
    uint VolumeTextureAddressCaps;
    uint LineCaps;
    uint MaxTextureWidth;
    uint MaxTextureHeight;
    uint MaxVolumeExtent;
    uint MaxTextureRepeat;
    uint MaxTextureAspectRatio;
    uint MaxAnisotropy;
    float MaxVertexW;
    float GuardBandLeft;
    float GuardBandTop;
    float GuardBandRight;
    float GuardBandBottom;
    float ExtentsAdjust;
    uint StencilCaps;
    uint FVFCaps;
    uint TextureOpCaps;
    uint MaxTextureBlendStages;
    uint MaxSimultaneousTextures;
    uint VertexProcessingCaps;
    uint MaxActiveLights;
    uint MaxUserClipPlanes;
    uint MaxVertexBlendMatrices;
    uint MaxVertexBlendMatrixIndex;
    float MaxPointSize;
    uint MaxPrimitiveCount;
    uint MaxVertexIndex;
    uint MaxStreams;
    uint MaxStreamStride;
    uint VertexShaderVersion;
    uint MaxVertexShaderConst;
    uint PixelShaderVersion;
    float PixelShader1xMaxValue;
    uint DevCaps2;
    float MaxNpatchTessellationLevel;
    uint Reserved5;
    uint MasterAdapterOrdinal;
    uint AdapterOrdinalInGroup;
    uint NumberOfAdaptersInGroup;
    uint DeclTypes;
    uint NumSimultaneousRTs;
    uint StretchRectFilterCaps;
    D3DVSHADERCAPS2_0 VS20Caps;
    D3DPSHADERCAPS2_0 PS20Caps;
    uint VertexTextureFilterCaps;
    uint MaxVShaderInstructionsExecuted;
    uint MaxPShaderInstructionsExecuted;
    uint MaxVertexShader30InstructionSlots;
    uint MaxPixelShader30InstructionSlots;
}

HSP用 定義

HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。

; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; D3DCAPS9 サイズ: 304 バイト(x64)
dim st, 76    ; 4byte整数×76(構造体サイズ 304 / 4 切り上げ)
; DeviceType : D3DDEVTYPE (+0, 4byte)  st.0 = 値  /  値 = st.0   (lpoke/lpeek も可)
; AdapterOrdinal : DWORD (+4, 4byte)  st.1 = 値  /  値 = st.1   (lpoke/lpeek も可)
; Caps : DWORD (+8, 4byte)  st.2 = 値  /  値 = st.2   (lpoke/lpeek も可)
; Caps2 : DWORD (+12, 4byte)  st.3 = 値  /  値 = st.3   (lpoke/lpeek も可)
; Caps3 : DWORD (+16, 4byte)  st.4 = 値  /  値 = st.4   (lpoke/lpeek も可)
; PresentationIntervals : DWORD (+20, 4byte)  st.5 = 値  /  値 = st.5   (lpoke/lpeek も可)
; CursorCaps : DWORD (+24, 4byte)  st.6 = 値  /  値 = st.6   (lpoke/lpeek も可)
; DevCaps : DWORD (+28, 4byte)  st.7 = 値  /  値 = st.7   (lpoke/lpeek も可)
; PrimitiveMiscCaps : DWORD (+32, 4byte)  st.8 = 値  /  値 = st.8   (lpoke/lpeek も可)
; RasterCaps : DWORD (+36, 4byte)  st.9 = 値  /  値 = st.9   (lpoke/lpeek も可)
; ZCmpCaps : DWORD (+40, 4byte)  st.10 = 値  /  値 = st.10   (lpoke/lpeek も可)
; SrcBlendCaps : DWORD (+44, 4byte)  st.11 = 値  /  値 = st.11   (lpoke/lpeek も可)
; DestBlendCaps : DWORD (+48, 4byte)  st.12 = 値  /  値 = st.12   (lpoke/lpeek も可)
; AlphaCmpCaps : DWORD (+52, 4byte)  st.13 = 値  /  値 = st.13   (lpoke/lpeek も可)
; ShadeCaps : DWORD (+56, 4byte)  st.14 = 値  /  値 = st.14   (lpoke/lpeek も可)
; TextureCaps : DWORD (+60, 4byte)  st.15 = 値  /  値 = st.15   (lpoke/lpeek も可)
; TextureFilterCaps : DWORD (+64, 4byte)  st.16 = 値  /  値 = st.16   (lpoke/lpeek も可)
; CubeTextureFilterCaps : DWORD (+68, 4byte)  st.17 = 値  /  値 = st.17   (lpoke/lpeek も可)
; VolumeTextureFilterCaps : DWORD (+72, 4byte)  st.18 = 値  /  値 = st.18   (lpoke/lpeek も可)
; TextureAddressCaps : DWORD (+76, 4byte)  st.19 = 値  /  値 = st.19   (lpoke/lpeek も可)
; VolumeTextureAddressCaps : DWORD (+80, 4byte)  st.20 = 値  /  値 = st.20   (lpoke/lpeek も可)
; LineCaps : DWORD (+84, 4byte)  st.21 = 値  /  値 = st.21   (lpoke/lpeek も可)
; MaxTextureWidth : DWORD (+88, 4byte)  st.22 = 値  /  値 = st.22   (lpoke/lpeek も可)
; MaxTextureHeight : DWORD (+92, 4byte)  st.23 = 値  /  値 = st.23   (lpoke/lpeek も可)
; MaxVolumeExtent : DWORD (+96, 4byte)  st.24 = 値  /  値 = st.24   (lpoke/lpeek も可)
; MaxTextureRepeat : DWORD (+100, 4byte)  st.25 = 値  /  値 = st.25   (lpoke/lpeek も可)
; MaxTextureAspectRatio : DWORD (+104, 4byte)  st.26 = 値  /  値 = st.26   (lpoke/lpeek も可)
; MaxAnisotropy : DWORD (+108, 4byte)  st.27 = 値  /  値 = st.27   (lpoke/lpeek も可)
; MaxVertexW : FLOAT (+112, 4byte)  st.28 = 値  /  値 = st.28   (lpoke/lpeek も可)
; GuardBandLeft : FLOAT (+116, 4byte)  st.29 = 値  /  値 = st.29   (lpoke/lpeek も可)
; GuardBandTop : FLOAT (+120, 4byte)  st.30 = 値  /  値 = st.30   (lpoke/lpeek も可)
; GuardBandRight : FLOAT (+124, 4byte)  st.31 = 値  /  値 = st.31   (lpoke/lpeek も可)
; GuardBandBottom : FLOAT (+128, 4byte)  st.32 = 値  /  値 = st.32   (lpoke/lpeek も可)
; ExtentsAdjust : FLOAT (+132, 4byte)  st.33 = 値  /  値 = st.33   (lpoke/lpeek も可)
; StencilCaps : DWORD (+136, 4byte)  st.34 = 値  /  値 = st.34   (lpoke/lpeek も可)
; FVFCaps : DWORD (+140, 4byte)  st.35 = 値  /  値 = st.35   (lpoke/lpeek も可)
; TextureOpCaps : DWORD (+144, 4byte)  st.36 = 値  /  値 = st.36   (lpoke/lpeek も可)
; MaxTextureBlendStages : DWORD (+148, 4byte)  st.37 = 値  /  値 = st.37   (lpoke/lpeek も可)
; MaxSimultaneousTextures : DWORD (+152, 4byte)  st.38 = 値  /  値 = st.38   (lpoke/lpeek も可)
; VertexProcessingCaps : DWORD (+156, 4byte)  st.39 = 値  /  値 = st.39   (lpoke/lpeek も可)
; MaxActiveLights : DWORD (+160, 4byte)  st.40 = 値  /  値 = st.40   (lpoke/lpeek も可)
; MaxUserClipPlanes : DWORD (+164, 4byte)  st.41 = 値  /  値 = st.41   (lpoke/lpeek も可)
; MaxVertexBlendMatrices : DWORD (+168, 4byte)  st.42 = 値  /  値 = st.42   (lpoke/lpeek も可)
; MaxVertexBlendMatrixIndex : DWORD (+172, 4byte)  st.43 = 値  /  値 = st.43   (lpoke/lpeek も可)
; MaxPointSize : FLOAT (+176, 4byte)  st.44 = 値  /  値 = st.44   (lpoke/lpeek も可)
; MaxPrimitiveCount : DWORD (+180, 4byte)  st.45 = 値  /  値 = st.45   (lpoke/lpeek も可)
; MaxVertexIndex : DWORD (+184, 4byte)  st.46 = 値  /  値 = st.46   (lpoke/lpeek も可)
; MaxStreams : DWORD (+188, 4byte)  st.47 = 値  /  値 = st.47   (lpoke/lpeek も可)
; MaxStreamStride : DWORD (+192, 4byte)  st.48 = 値  /  値 = st.48   (lpoke/lpeek も可)
; VertexShaderVersion : DWORD (+196, 4byte)  st.49 = 値  /  値 = st.49   (lpoke/lpeek も可)
; MaxVertexShaderConst : DWORD (+200, 4byte)  st.50 = 値  /  値 = st.50   (lpoke/lpeek も可)
; PixelShaderVersion : DWORD (+204, 4byte)  st.51 = 値  /  値 = st.51   (lpoke/lpeek も可)
; PixelShader1xMaxValue : FLOAT (+208, 4byte)  st.52 = 値  /  値 = st.52   (lpoke/lpeek も可)
; DevCaps2 : DWORD (+212, 4byte)  st.53 = 値  /  値 = st.53   (lpoke/lpeek も可)
; MaxNpatchTessellationLevel : FLOAT (+216, 4byte)  st.54 = 値  /  値 = st.54   (lpoke/lpeek も可)
; Reserved5 : DWORD (+220, 4byte)  st.55 = 値  /  値 = st.55   (lpoke/lpeek も可)
; MasterAdapterOrdinal : DWORD (+224, 4byte)  st.56 = 値  /  値 = st.56   (lpoke/lpeek も可)
; AdapterOrdinalInGroup : DWORD (+228, 4byte)  st.57 = 値  /  値 = st.57   (lpoke/lpeek も可)
; NumberOfAdaptersInGroup : DWORD (+232, 4byte)  st.58 = 値  /  値 = st.58   (lpoke/lpeek も可)
; DeclTypes : DWORD (+236, 4byte)  st.59 = 値  /  値 = st.59   (lpoke/lpeek も可)
; NumSimultaneousRTs : DWORD (+240, 4byte)  st.60 = 値  /  値 = st.60   (lpoke/lpeek も可)
; StretchRectFilterCaps : DWORD (+244, 4byte)  st.61 = 値  /  値 = st.61   (lpoke/lpeek も可)
; VS20Caps : D3DVSHADERCAPS2_0 (+248, 16byte)  varptr(st)+248 を基点に操作(16byte:入れ子/配列)
; PS20Caps : D3DPSHADERCAPS2_0 (+264, 20byte)  varptr(st)+264 を基点に操作(20byte:入れ子/配列)
; VertexTextureFilterCaps : DWORD (+284, 4byte)  st.71 = 値  /  値 = st.71   (lpoke/lpeek も可)
; MaxVShaderInstructionsExecuted : DWORD (+288, 4byte)  st.72 = 値  /  値 = st.72   (lpoke/lpeek も可)
; MaxPShaderInstructionsExecuted : DWORD (+292, 4byte)  st.73 = 値  /  値 = st.73   (lpoke/lpeek も可)
; MaxVertexShader30InstructionSlots : DWORD (+296, 4byte)  st.74 = 値  /  値 = st.74   (lpoke/lpeek も可)
; MaxPixelShader30InstructionSlots : DWORD (+300, 4byte)  st.75 = 値  /  値 = st.75   (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
; ※GUID・入れ子構造体はデフォルト型でないため、依存する #defstruct を先に定義(下記に同梱)。
#defstruct global D3DVSHADERCAPS2_0
    #field int Caps
    #field int DynamicFlowControlDepth
    #field int NumTemps
    #field int StaticFlowControlDepth
#endstruct

#defstruct global D3DPSHADERCAPS2_0
    #field int Caps
    #field int DynamicFlowControlDepth
    #field int NumTemps
    #field int StaticFlowControlDepth
    #field int NumInstructionSlots
#endstruct

#defstruct global D3DCAPS9
    #field int DeviceType
    #field int AdapterOrdinal
    #field int Caps
    #field int Caps2
    #field int Caps3
    #field int PresentationIntervals
    #field int CursorCaps
    #field int DevCaps
    #field int PrimitiveMiscCaps
    #field int RasterCaps
    #field int ZCmpCaps
    #field int SrcBlendCaps
    #field int DestBlendCaps
    #field int AlphaCmpCaps
    #field int ShadeCaps
    #field int TextureCaps
    #field int TextureFilterCaps
    #field int CubeTextureFilterCaps
    #field int VolumeTextureFilterCaps
    #field int TextureAddressCaps
    #field int VolumeTextureAddressCaps
    #field int LineCaps
    #field int MaxTextureWidth
    #field int MaxTextureHeight
    #field int MaxVolumeExtent
    #field int MaxTextureRepeat
    #field int MaxTextureAspectRatio
    #field int MaxAnisotropy
    #field float MaxVertexW
    #field float GuardBandLeft
    #field float GuardBandTop
    #field float GuardBandRight
    #field float GuardBandBottom
    #field float ExtentsAdjust
    #field int StencilCaps
    #field int FVFCaps
    #field int TextureOpCaps
    #field int MaxTextureBlendStages
    #field int MaxSimultaneousTextures
    #field int VertexProcessingCaps
    #field int MaxActiveLights
    #field int MaxUserClipPlanes
    #field int MaxVertexBlendMatrices
    #field int MaxVertexBlendMatrixIndex
    #field float MaxPointSize
    #field int MaxPrimitiveCount
    #field int MaxVertexIndex
    #field int MaxStreams
    #field int MaxStreamStride
    #field int VertexShaderVersion
    #field int MaxVertexShaderConst
    #field int PixelShaderVersion
    #field float PixelShader1xMaxValue
    #field int DevCaps2
    #field float MaxNpatchTessellationLevel
    #field int Reserved5
    #field int MasterAdapterOrdinal
    #field int AdapterOrdinalInGroup
    #field int NumberOfAdaptersInGroup
    #field int DeclTypes
    #field int NumSimultaneousRTs
    #field int StretchRectFilterCaps
    #field D3DVSHADERCAPS2_0 VS20Caps
    #field D3DPSHADERCAPS2_0 PS20Caps
    #field int VertexTextureFilterCaps
    #field int MaxVShaderInstructionsExecuted
    #field int MaxPShaderInstructionsExecuted
    #field int MaxVertexShader30InstructionSlots
    #field int MaxPixelShader30InstructionSlots
#endstruct

stdim st, D3DCAPS9        ; NSTRUCT 変数を確保
st->DeviceType = 100
mes "DeviceType=" + st->DeviceType