レンダリングターゲットに出来るテクスチャサーフェスを作成するという方法で実現できるを教わりました。
ありがとうございました。
ただ今度は、レンダリングターゲットに出来るテクスチャサーフェスの作成がよくわかりません…
訳あって古いバージョンを使っており(ver 7a)、テクスチャサーフェスの作成が大変です。
他のテクスチャは全てD3DXの関数を使って簡単に作成出来ているのですが
レンダリングターゲットに出来るサーフェスを作るには一から自分で設定する必要があるようで
各種パラメータがよくわからないで困っています。
一応、自分なりに初期化してみたのですが、実際に描画してみると真っ黒で思った通りにいきません…
この初期化ではダメなのでしょうか?恐らくテクスチャ作成の初期化コードの部分がマズイものと思われるのですが…
※コードを全部書くと冗長になってしまうので余分なところは省いています
//レンダリングターゲット初期化
LPDIRECTDRAWSURFACE7 lpTarget;
DDSURFACEDESC2 ddsd;
ZeroMemory(&ddsd, sizeof(ddsd));
ddsd.dwSize = sizeof(ddsd);
ddsd.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH | DDSD_PIXELFORMAT | DDSD_TEXTURESTAGE;
ddsd.ddsCaps.dwCaps = DDSCAPS_3DDEVICE | DDSCAPS_TEXTURE | DDSCAPS_VIDEOMEMORY;
ddsd.ddsCaps.dwCaps2 = 0L;
ddsd.ddsCaps.dwCaps3 = 0L;
ddsd.ddsCaps.dwCaps4 = 0L;
ddsd.dwWidth = 512;
ddsd.dwHeight = 512
ddsd.dwTextureStage = 0L;
ddsd.ddpfPixelFormat.dwSize = sizeof(DDPIXELFORMAT);
ddsd.ddpfPixelFormat.dwFlags = DDPF_RGB | DDPF_ALPHAPIXELS;
ddsd.ddpfPixelFormat.dwRGBBitCount = 32;
ddsd.ddpfPixelFormat.dwRGBAlphaBitMask = 0xff000000;
ddsd.ddpfPixelFormat.dwRBitMask = 0x00ff0000;
ddsd.ddpfPixelFormat.dwGBitMask = 0x0000ff00;
ddsd.ddpfPixelFormat.dwBBitMask = 0x000000ff;
if(lpDD->CreateSurface(&ddsd, &lpTarget, NULL) != DD_OK)
return FALSE;
・
・
・
//描画の一連の処理
BeginScene(); //描画開始
//レンダリングターゲットを変更
lpD3DDev->SetRenderTarget(lpTarget, 0);
Draw(lpObj); //lpObj描画
lpD3DDev->SetRenderTarget(lpBackBuffer, 0); //レンダリングターゲットをバックバッファに戻す
Draw(lpTarget); //lpTarget描画
EndScene(); //描画終了
Update(); //画面更新(フリップ)