ホーム › Media.Multimedia › DRAWDIBTIME
DRAWDIBTIME
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| timeCount | INT | 4 | +0 | +0 | DrawDibTime が最後に呼び出されてから、次の操作が実行された回数です。 |
| timeDraw | INT | 4 | +4 | +4 | ビットマップの描画に要した時間です。 |
| timeDecompress | INT | 4 | +8 | +8 | ビットマップの展開に要した時間です。 |
| timeDither | INT | 4 | +12 | +12 | ビットマップのディザリングに要した時間です。 |
| timeStretch | INT | 4 | +16 | +16 | ビットマップの伸縮に要した時間です。 |
| timeBlt | INT | 4 | +20 | +20 | BitBlt 関数を使用したビットマップの転送に要した時間です。 |
| timeSetDIBits | INT | 4 | +24 | +24 | SetDIBits 関数を使用したビットマップの転送に要した時間です。 |
公式ドキュメント
DRAWDIBTIME 構造体は、一連の DrawDib 操作の実行に要した経過時間の情報を格納します。DrawDibTime 関数は、呼び出されるたびに各操作の回数と経過時間の値をリセットします。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
各言語での定義
#include <windows.h>
// DRAWDIBTIME (x64 28 / x86 28 バイト)
typedef struct DRAWDIBTIME {
INT timeCount;
INT timeDraw;
INT timeDecompress;
INT timeDither;
INT timeStretch;
INT timeBlt;
INT timeSetDIBits;
} DRAWDIBTIME;using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct DRAWDIBTIME
{
public int timeCount;
public int timeDraw;
public int timeDecompress;
public int timeDither;
public int timeStretch;
public int timeBlt;
public int timeSetDIBits;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure DRAWDIBTIME
Public timeCount As Integer
Public timeDraw As Integer
Public timeDecompress As Integer
Public timeDither As Integer
Public timeStretch As Integer
Public timeBlt As Integer
Public timeSetDIBits As Integer
End Structureimport ctypes
from ctypes import wintypes
class DRAWDIBTIME(ctypes.Structure):
_fields_ = [
("timeCount", ctypes.c_int),
("timeDraw", ctypes.c_int),
("timeDecompress", ctypes.c_int),
("timeDither", ctypes.c_int),
("timeStretch", ctypes.c_int),
("timeBlt", ctypes.c_int),
("timeSetDIBits", ctypes.c_int),
]#[repr(C)]
pub struct DRAWDIBTIME {
pub timeCount: i32,
pub timeDraw: i32,
pub timeDecompress: i32,
pub timeDither: i32,
pub timeStretch: i32,
pub timeBlt: i32,
pub timeSetDIBits: i32,
}import "golang.org/x/sys/windows"
type DRAWDIBTIME struct {
timeCount int32
timeDraw int32
timeDecompress int32
timeDither int32
timeStretch int32
timeBlt int32
timeSetDIBits int32
}type
DRAWDIBTIME = record
timeCount: Integer;
timeDraw: Integer;
timeDecompress: Integer;
timeDither: Integer;
timeStretch: Integer;
timeBlt: Integer;
timeSetDIBits: Integer;
end;const DRAWDIBTIME = extern struct {
timeCount: i32,
timeDraw: i32,
timeDecompress: i32,
timeDither: i32,
timeStretch: i32,
timeBlt: i32,
timeSetDIBits: i32,
};type
DRAWDIBTIME {.bycopy.} = object
timeCount: int32
timeDraw: int32
timeDecompress: int32
timeDither: int32
timeStretch: int32
timeBlt: int32
timeSetDIBits: int32struct DRAWDIBTIME
{
int timeCount;
int timeDraw;
int timeDecompress;
int timeDither;
int timeStretch;
int timeBlt;
int timeSetDIBits;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; DRAWDIBTIME サイズ: 28 バイト(x64)
dim st, 7 ; 4byte整数×7(構造体サイズ 28 / 4 切り上げ)
; timeCount : INT (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; timeDraw : INT (+4, 4byte) st.1 = 値 / 値 = st.1 (lpoke/lpeek も可)
; timeDecompress : INT (+8, 4byte) st.2 = 値 / 値 = st.2 (lpoke/lpeek も可)
; timeDither : INT (+12, 4byte) st.3 = 値 / 値 = st.3 (lpoke/lpeek も可)
; timeStretch : INT (+16, 4byte) st.4 = 値 / 値 = st.4 (lpoke/lpeek も可)
; timeBlt : INT (+20, 4byte) st.5 = 値 / 値 = st.5 (lpoke/lpeek も可)
; timeSetDIBits : INT (+24, 4byte) st.6 = 値 / 値 = st.6 (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global DRAWDIBTIME
#field int timeCount
#field int timeDraw
#field int timeDecompress
#field int timeDither
#field int timeStretch
#field int timeBlt
#field int timeSetDIBits
#endstruct
stdim st, DRAWDIBTIME ; NSTRUCT 変数を確保
st->timeCount = 100
mes "timeCount=" + st->timeCount