Windows WinMM Lightweight Load Library for Free Pascal / Lazarus
PetitLoader は、Free Pascal / Lazarus環境でWindows API (WinMM) をベースとした、画像描画・サウンド再生・アニメーション補間を効率化するための軽量ライブラリです。
| メソッド | 説明 |
|---|---|
constructor Create(AhWnd, AWidth, AHeight) |
インスタンスの生成。対象のウィンドウハンドルと描画バッファサイズを指定します。内部でダブルバッファ用のDCを作成します。 |
destructor Destroy |
インスタンスの破棄。バックバッファ、ビットマップ、DCなどのGDIリソースをすべて安全に解放します。 |
ビットマップの読み込みと転送を行います。TargetDC には通常 TPetitDraw.BackDC を渡します。
| メソッド | 説明 |
|---|---|
LoadBMP(FileName): HBITMAP | BMPファイルを読み込みハンドルを返します。LR_CREATEDIBSECTION を使用し、高速な描画を可能にします。 |
FreeBMP(var hBmp) | 画像をメモリから解放し、変数を0にリセットします。 |
DrawImagePart(TargetDC, hBmp, dx, dy, dw, dh, sx, sy, sw, sh) | 画像の一部を転送。StretchBlt による拡大縮小に対応。 |
DrawImageTransparent(TargetDC, hBmp, dx, dy, dw, dh, sx, sy, sw, sh, TransColor) | 特定の色を透過して描画。msimg32.dll の TransparentBlt を使用。 |
SetClipRect(x, y, w, h) | 描画領域を制限します。枠外へのはみ出し防止に使用します。 |
WinMM (MCI) を使用し、外部DLL不要でサウンドを再生します。
| メソッド | 説明 |
|---|---|
PlaySE(FileName) | 効果音(WAV)の非同期再生。即座に制御を戻します。 |
PlayBGM(FileName) | BGM(MP3)の非同期ループ再生を行います。 |
StopBGM | 再生中の全てのBGMを停止します。 |
GetEasing(t: Single; Easing: TEasingType): Single
時間 t (0.0 ~ 1.0) を渡すと、指定されたアルゴリズムで補間された値を返します。
// 描画ループ内での使用例
procedure OnUpdate;
begin
Draw.Clear(RGB(0, 0, 0));
// Loaderを使用してDrawのバッファへ描画
Loader.DrawImageTransparent(Draw.BackDC, hPlayerBmp, x, y, 32, 32, 0, 0, 32, 32, clFuchsia);
Draw.Present;
end;