訂正

T-Bufferって?

フレームバッファを4層以上に分けて、表示するときにそれらを合成するようなモノ。
書き込む時、T-Bufferにある色とブレンドしているみたいにょ。
VRAMをclearする時も、その色と合成してしまので注意にょ。

2sampleAAの場合、2層に分けているようだけど、これをT-Bufferとは言わない。
grTBufferWriteMaskExtでいじれないから。

Voodoo5 5500の場合、16bppのレイヤを四つ使っているらしいけど、詳細は不明。

いじってみる1(Windows 9xのレジストリ)

regeditとかで、
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\Display\0000\Glide
とか、そこら辺に、

FX_GLIDE_AA2_OFFSET_X0
FX_GLIDE_AA2_OFFSET_X1
FX_GLIDE_AA2_OFFSET_Y0
FX_GLIDE_AA2_OFFSET_Y1
とか、
FX_GLIDE_AA4_OFFSET_X0
FX_GLIDE_AA4_OFFSET_X1
FX_GLIDE_AA4_OFFSET_X2
FX_GLIDE_AA4_OFFSET_X3
FX_GLIDE_AA4_OFFSET_Y0
FX_GLIDE_AA4_OFFSET_Y1
FX_GLIDE_AA4_OFFSET_Y2
FX_GLIDE_AA4_OFFSET_Y3
っていうのを作って、適当にいじってみるとかいろいろ。

いじってみる2(Glide使ってテキトーに)

void (__stdcall *grTBufferWriteMask)(FxU32);
とか、こういう感じの関数ポインタ用意して、
grTBufferWriteMask = (void (__stdcall *)(FxU32))grGetProcAddress("grTBufferWriteMaskExt");
っていう風にアドレスもらって、
void maskTBuffer(int mask)
{
	if (NULL!=grTBufferWriteMask)
		grTBufferWriteMask(mask&0x0f);
}
とか、テキトーにやるが良いにょ。bitが立っていると書き込み可能って言う感じでお願い。

T-Bufferの動作?

よくわからないの。ごめんね。あははー(ぉ
気が向いたら調べるにょ。
あと、shutdownする前にbitを全部立てた方が良いかもね。
(そうしないと、何度もプログラムを起動したときにハングアップしやすくなるみたい)

マスクするとき、全bitを立てると、普通の4sampleAAになるにょ。
Glide使っているときに、各層のズレを変えられないのが残念かな。

サンプルぷろぐらむみたいなモノ

サンプルぷろぐらむみたいなモノの場所

動作推奨環境
・PC用Voodoo5の動作必須環境
・DirectX 8.0以降をinstallしていないと、動かないかもしれないにょ
何となく、D3DX使っているんで...。

二つの三角形を回すだけ。
3dfx toolsで、tripleBufferingと4sampleAAを有効にしてから起動してね。
(grSstWinOpenExtのアドレスもらって呼んでやれば良いけど、気が向かないので)
Alt + Esc とか、Alt + Tab とか押して、他の窓を悪恥部にすると終了させられるにょ。

書いた使徒:ゆうりぃ/C++
return