ホーム › Graphics.DirectDraw › DD_MORECAPS
DD_MORECAPS
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| dwSize | DWORD | 4 | +0 | +0 | この構造体のサイズをバイト単位で示す。 |
| dwAlphaCaps | DWORD | 4 | +4 | +4 | アルファブレンドの能力を示すフラグ。 |
| dwSVBAlphaCaps | DWORD | 4 | +8 | +8 | システムメモリからビデオメモリへのBltにおけるアルファ能力を示すフラグ。 |
| dwVSBAlphaCaps | DWORD | 4 | +12 | +12 | ビデオメモリからシステムメモリへのBltにおけるアルファ能力を示すフラグ。 |
| dwSSBAlphaCaps | DWORD | 4 | +16 | +16 | システムメモリ間Bltにおけるアルファ能力を示すフラグ。 |
| dwFilterCaps | DWORD | 4 | +20 | +20 | ストレッチ時のフィルタ能力を示すフラグ。 |
| dwSVBFilterCaps | DWORD | 4 | +24 | +24 | システムからビデオへのBltにおけるフィルタ能力を示すフラグ。 |
| dwVSBFilterCaps | DWORD | 4 | +28 | +28 | ビデオからシステムへのBltにおけるフィルタ能力を示すフラグ。 |
| dwSSBFilterCaps | DWORD | 4 | +32 | +32 | システムメモリ間Bltにおけるフィルタ能力を示すフラグ。 |
各言語での定義
#include <windows.h>
// DD_MORECAPS (x64 36 / x86 36 バイト)
typedef struct DD_MORECAPS {
DWORD dwSize;
DWORD dwAlphaCaps;
DWORD dwSVBAlphaCaps;
DWORD dwVSBAlphaCaps;
DWORD dwSSBAlphaCaps;
DWORD dwFilterCaps;
DWORD dwSVBFilterCaps;
DWORD dwVSBFilterCaps;
DWORD dwSSBFilterCaps;
} DD_MORECAPS;using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct DD_MORECAPS
{
public uint dwSize;
public uint dwAlphaCaps;
public uint dwSVBAlphaCaps;
public uint dwVSBAlphaCaps;
public uint dwSSBAlphaCaps;
public uint dwFilterCaps;
public uint dwSVBFilterCaps;
public uint dwVSBFilterCaps;
public uint dwSSBFilterCaps;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure DD_MORECAPS
Public dwSize As UInteger
Public dwAlphaCaps As UInteger
Public dwSVBAlphaCaps As UInteger
Public dwVSBAlphaCaps As UInteger
Public dwSSBAlphaCaps As UInteger
Public dwFilterCaps As UInteger
Public dwSVBFilterCaps As UInteger
Public dwVSBFilterCaps As UInteger
Public dwSSBFilterCaps As UInteger
End Structureimport ctypes
from ctypes import wintypes
class DD_MORECAPS(ctypes.Structure):
_fields_ = [
("dwSize", wintypes.DWORD),
("dwAlphaCaps", wintypes.DWORD),
("dwSVBAlphaCaps", wintypes.DWORD),
("dwVSBAlphaCaps", wintypes.DWORD),
("dwSSBAlphaCaps", wintypes.DWORD),
("dwFilterCaps", wintypes.DWORD),
("dwSVBFilterCaps", wintypes.DWORD),
("dwVSBFilterCaps", wintypes.DWORD),
("dwSSBFilterCaps", wintypes.DWORD),
]#[repr(C)]
pub struct DD_MORECAPS {
pub dwSize: u32,
pub dwAlphaCaps: u32,
pub dwSVBAlphaCaps: u32,
pub dwVSBAlphaCaps: u32,
pub dwSSBAlphaCaps: u32,
pub dwFilterCaps: u32,
pub dwSVBFilterCaps: u32,
pub dwVSBFilterCaps: u32,
pub dwSSBFilterCaps: u32,
}import "golang.org/x/sys/windows"
type DD_MORECAPS struct {
dwSize uint32
dwAlphaCaps uint32
dwSVBAlphaCaps uint32
dwVSBAlphaCaps uint32
dwSSBAlphaCaps uint32
dwFilterCaps uint32
dwSVBFilterCaps uint32
dwVSBFilterCaps uint32
dwSSBFilterCaps uint32
}type
DD_MORECAPS = record
dwSize: DWORD;
dwAlphaCaps: DWORD;
dwSVBAlphaCaps: DWORD;
dwVSBAlphaCaps: DWORD;
dwSSBAlphaCaps: DWORD;
dwFilterCaps: DWORD;
dwSVBFilterCaps: DWORD;
dwVSBFilterCaps: DWORD;
dwSSBFilterCaps: DWORD;
end;const DD_MORECAPS = extern struct {
dwSize: u32,
dwAlphaCaps: u32,
dwSVBAlphaCaps: u32,
dwVSBAlphaCaps: u32,
dwSSBAlphaCaps: u32,
dwFilterCaps: u32,
dwSVBFilterCaps: u32,
dwVSBFilterCaps: u32,
dwSSBFilterCaps: u32,
};type
DD_MORECAPS {.bycopy.} = object
dwSize: uint32
dwAlphaCaps: uint32
dwSVBAlphaCaps: uint32
dwVSBAlphaCaps: uint32
dwSSBAlphaCaps: uint32
dwFilterCaps: uint32
dwSVBFilterCaps: uint32
dwVSBFilterCaps: uint32
dwSSBFilterCaps: uint32struct DD_MORECAPS
{
uint dwSize;
uint dwAlphaCaps;
uint dwSVBAlphaCaps;
uint dwVSBAlphaCaps;
uint dwSSBAlphaCaps;
uint dwFilterCaps;
uint dwSVBFilterCaps;
uint dwVSBFilterCaps;
uint dwSSBFilterCaps;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; DD_MORECAPS サイズ: 36 バイト(x64)
dim st, 9 ; 4byte整数×9(構造体サイズ 36 / 4 切り上げ)
; dwSize : DWORD (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; dwAlphaCaps : DWORD (+4, 4byte) st.1 = 値 / 値 = st.1 (lpoke/lpeek も可)
; dwSVBAlphaCaps : DWORD (+8, 4byte) st.2 = 値 / 値 = st.2 (lpoke/lpeek も可)
; dwVSBAlphaCaps : DWORD (+12, 4byte) st.3 = 値 / 値 = st.3 (lpoke/lpeek も可)
; dwSSBAlphaCaps : DWORD (+16, 4byte) st.4 = 値 / 値 = st.4 (lpoke/lpeek も可)
; dwFilterCaps : DWORD (+20, 4byte) st.5 = 値 / 値 = st.5 (lpoke/lpeek も可)
; dwSVBFilterCaps : DWORD (+24, 4byte) st.6 = 値 / 値 = st.6 (lpoke/lpeek も可)
; dwVSBFilterCaps : DWORD (+28, 4byte) st.7 = 値 / 値 = st.7 (lpoke/lpeek も可)
; dwSSBFilterCaps : DWORD (+32, 4byte) st.8 = 値 / 値 = st.8 (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global DD_MORECAPS
#field int dwSize
#field int dwAlphaCaps
#field int dwSVBAlphaCaps
#field int dwVSBAlphaCaps
#field int dwSSBAlphaCaps
#field int dwFilterCaps
#field int dwSVBFilterCaps
#field int dwVSBFilterCaps
#field int dwSSBFilterCaps
#endstruct
stdim st, DD_MORECAPS ; NSTRUCT 変数を確保
st->dwSize = 100
mes "dwSize=" + st->dwSize