GSD
概要
ゲーム画面上に任意の画像を表示させるライブラリです
オマケとしてフレームレートを制限する機能が付いています
Source
Download
- Binary
svn co http://svn.coderepos.org/share/lang/c/GSD/trunk GSD
Usage
- APIの詳細は API_Specification.txt をご覧ください
初期化
const DWORD size = 128; GSD_Initialize(); GSD_InitTexture(&size, 1);
設定
GSD_ShowFps(TRUE); GSD_SetFpsAlign(DT_RIGHT); GSD_SetFpsLimit(60.0);
テクスチャ作成・設定
DWORD i, j, k, r;
GSD_TextureInfo info;
GSD_DataLock();
GSD_GetTexture(0, &info);
for(i=0, k=0 ;i<info.size; i++){
r = (i*0xFF)/info.size;
for (j=0; j<info.size; j++, k+=4){
info.data[k+0] = (BYTE)r;
info.data[k+1] = (BYTE)((j*0xFF)/info.size);
info.data[k+2] = (BYTE)~r;
info.data[k+3] = (BYTE)~r;
}
}
info.active = TRUE;
info.x = 16;
info.y = 16;
info.color = 0xffffffff;
info.align = DT_BOTTOM;
GSD_SetTexture(0, &info);
GSD_DataUnlock();
終了処理
GSD_Finalize();
ToDo
- Direct3D10のゲームに対応する
- DirectDraw、Direct3D7以前のゲームに対応する
- 64bitのゲームに対応する
- 似たようなコードが散在しているので一箇所にまとめたい
- 高速化
既知の問題点
- extAddRef、extReleaseが適当なので何とかしたい
- OpenGLでのテクスチャ消失の検知が適当なので何とかしたい
- 一部のDirect3D8ゲーム(UT2003等)で CaptureStateBlock を呼び出すと例外が発生する
- 一部のOpenGLゲーム(HexenII等)で頂点色が効かない
- Steamコミュニティーを使用するゲームで終了時にリソースを開放しようとすると例外が発生する
改良歓迎
上で挙げたToDoや問題点も、自分の力だけで解決できるか怪しいです
「俺が直してやんよ」という方は、是非CodeReposのCommitterになり開発に参加してください
Author
License
LGPL準拠
