ホーム › Media.MediaFoundation › MT_CUSTOM_VIDEO_PRIMARIES
MT_CUSTOM_VIDEO_PRIMARIES
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| fRx | FLOAT | 4 | +0 | +0 | 赤原色のCIE x色度座標。 |
| fRy | FLOAT | 4 | +4 | +4 | 赤原色のCIE y色度座標。 |
| fGx | FLOAT | 4 | +8 | +8 | 緑原色のCIE x色度座標。 |
| fGy | FLOAT | 4 | +12 | +12 | 緑原色のCIE y色度座標。 |
| fBx | FLOAT | 4 | +16 | +16 | 青原色のCIE x色度座標。 |
| fBy | FLOAT | 4 | +20 | +20 | 青原色のCIE y色度座標。 |
| fWx | FLOAT | 4 | +24 | +24 | 白色点のCIE x色度座標。 |
| fWy | FLOAT | 4 | +28 | +28 | 白色点のCIE y色度座標。 |
各言語での定義
#include <windows.h>
// MT_CUSTOM_VIDEO_PRIMARIES (x64 32 / x86 32 バイト)
typedef struct MT_CUSTOM_VIDEO_PRIMARIES {
FLOAT fRx;
FLOAT fRy;
FLOAT fGx;
FLOAT fGy;
FLOAT fBx;
FLOAT fBy;
FLOAT fWx;
FLOAT fWy;
} MT_CUSTOM_VIDEO_PRIMARIES;using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct MT_CUSTOM_VIDEO_PRIMARIES
{
public float fRx;
public float fRy;
public float fGx;
public float fGy;
public float fBx;
public float fBy;
public float fWx;
public float fWy;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure MT_CUSTOM_VIDEO_PRIMARIES
Public fRx As Single
Public fRy As Single
Public fGx As Single
Public fGy As Single
Public fBx As Single
Public fBy As Single
Public fWx As Single
Public fWy As Single
End Structureimport ctypes
from ctypes import wintypes
class MT_CUSTOM_VIDEO_PRIMARIES(ctypes.Structure):
_fields_ = [
("fRx", ctypes.c_float),
("fRy", ctypes.c_float),
("fGx", ctypes.c_float),
("fGy", ctypes.c_float),
("fBx", ctypes.c_float),
("fBy", ctypes.c_float),
("fWx", ctypes.c_float),
("fWy", ctypes.c_float),
]#[repr(C)]
pub struct MT_CUSTOM_VIDEO_PRIMARIES {
pub fRx: f32,
pub fRy: f32,
pub fGx: f32,
pub fGy: f32,
pub fBx: f32,
pub fBy: f32,
pub fWx: f32,
pub fWy: f32,
}import "golang.org/x/sys/windows"
type MT_CUSTOM_VIDEO_PRIMARIES struct {
fRx float32
fRy float32
fGx float32
fGy float32
fBx float32
fBy float32
fWx float32
fWy float32
}type
MT_CUSTOM_VIDEO_PRIMARIES = record
fRx: Single;
fRy: Single;
fGx: Single;
fGy: Single;
fBx: Single;
fBy: Single;
fWx: Single;
fWy: Single;
end;const MT_CUSTOM_VIDEO_PRIMARIES = extern struct {
fRx: f32,
fRy: f32,
fGx: f32,
fGy: f32,
fBx: f32,
fBy: f32,
fWx: f32,
fWy: f32,
};type
MT_CUSTOM_VIDEO_PRIMARIES {.bycopy.} = object
fRx: float32
fRy: float32
fGx: float32
fGy: float32
fBx: float32
fBy: float32
fWx: float32
fWy: float32struct MT_CUSTOM_VIDEO_PRIMARIES
{
float fRx;
float fRy;
float fGx;
float fGy;
float fBx;
float fBy;
float fWx;
float fWy;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; MT_CUSTOM_VIDEO_PRIMARIES サイズ: 32 バイト(x64)
dim st, 8 ; 4byte整数×8(構造体サイズ 32 / 4 切り上げ)
; fRx : FLOAT (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; fRy : FLOAT (+4, 4byte) st.1 = 値 / 値 = st.1 (lpoke/lpeek も可)
; fGx : FLOAT (+8, 4byte) st.2 = 値 / 値 = st.2 (lpoke/lpeek も可)
; fGy : FLOAT (+12, 4byte) st.3 = 値 / 値 = st.3 (lpoke/lpeek も可)
; fBx : FLOAT (+16, 4byte) st.4 = 値 / 値 = st.4 (lpoke/lpeek も可)
; fBy : FLOAT (+20, 4byte) st.5 = 値 / 値 = st.5 (lpoke/lpeek も可)
; fWx : FLOAT (+24, 4byte) st.6 = 値 / 値 = st.6 (lpoke/lpeek も可)
; fWy : FLOAT (+28, 4byte) st.7 = 値 / 値 = st.7 (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global MT_CUSTOM_VIDEO_PRIMARIES
#field float fRx
#field float fRy
#field float fGx
#field float fGy
#field float fBx
#field float fBy
#field float fWx
#field float fWy
#endstruct
stdim st, MT_CUSTOM_VIDEO_PRIMARIES ; NSTRUCT 変数を確保
st->fRx = 100
mes "fRx=" + st->fRx