DirectDraw7

DirectDrawはゲーム専用機に対抗してMicrosoftがWindowsでゲームを行えるよう開発したツールです。 XBOXで使われているそうです。 3D機能のあるDirectX9 SDK (February 2006)をdownloadしたものを使っていますが、 DirectDrawはDirectX7のまま、DirectX9に含まれています。
DirectDraw7をVisucal Stuio.NET 2003のC++でプログラムしたサンプルを以下に示します。 DirectX7以上が必要です。

Hello World
あらゆるプログラム言語はHello Worldから始まるそうです。
以下のように打ち込みました。
Source1.cpp
やっていることは です。 どうもDirectDrawを終了する時点で画面モードが元に戻るようなので、 画面モード関数ChangeDisplaySettingsの2番目の引数にNULLを入れて、 画面モードを復元することはしていません。
task1.exe
Hello World!と表示されます。

ランダムドットの背景と文字表示
DirectDrawを使うと画面のちらつきが抑えられるそうです。 そこで背景が時間変化するランダムドット表示、文字を変化しないランダムドット表示に挑戦しました。
Source2.cpp
ようやく視覚刺激の課題らしくなりました。
task2.exe
1秒毎にひらがな1文字が表示されます。

渦巻きと文字表示
背景を回転する渦巻きとし、一定時間反転した文字を表示させます。
Source3.cpp
反転は残影が残るためかサブリミナル効果は?です。
task3.exe
但し、見ていると気分が悪くなります。

四分の一ずつ反転
視野の四分の一ずつを反転する課題を作成しました。
Source4.cpp
視野1/4ずつ検査できることを期待したいと思います。
task4.exe
ウインドウのデバイスコンテキストを介したブロック転送bitblt関数よりサーフェイスのbltFast関数のほうが高速なんだそうです。