> シェーダーによる描画とDrawGraphといった描画関数両方を呼び出す際に必要な設定等ありますでしょうか?
いえ、特にそのような設定などはありません
私も手元で以下のようなテストプログラムを実行してみたのですが、
DrawPolygon2DToShader の後の DrawGraph の画像も問題なく描画されました
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
// ウィンドウモードで起動
ChangeWindowMode( TRUE ) ;
// Direct3D 9 Ex を使用するように設定
SetUseDirect3DVersion( DX_DIRECT3D_9EX ) ;
// DXライブラリを初期化
if( DxLib_Init() == -1 )
{
return -1 ;
}
// 画像の読み込み
int Texture = LoadGraph( "右渦巻き.bmp" );
int PSHandle = LoadPixelShader( "SamplePS.pso" ) ;
int GrHandle = LoadGraph( "Test1.bmp" ) ;
// 描画先を裏画面に変更
SetDrawScreen( DX_SCREEN_BACK ) ;
VERTEX2DSHADER Vert[ 6 ] ;
SetUseTextureToShader( 0, Texture ) ;
SetUsePixelShader( PSHandle) ;
float vw = 640.0f;
float vh = 480.0f;
float vz = 0.0f;
Vert[ 0 ].pos = VGet( 0.0f - 0.5f, 0.0f - 0.5f, vz ) ;
Vert[ 0 ].rhw = 1.0f ;
Vert[ 0 ].dif = GetColorU8( 255,255,255,128 ) ;
Vert[ 0 ].spc = GetColorU8( 0, 0, 0, 0 ) ;
Vert[ 0 ].u = 0.0f ;
Vert[ 0 ].v = 0.0f ;
Vert[ 0 ].su = 0.0f ;
Vert[ 0 ].sv = 0.0f ;
Vert[ 1 ].pos = VGet( vw - 0.5f, 0.0f - 0.5f, vz) ;
Vert[ 1 ].rhw = 1.0f ;
Vert[ 1 ].dif = GetColorU8( 255,255,255,128 ) ;
Vert[ 1 ].spc = GetColorU8( 0, 0, 0, 0 ) ;
Vert[ 1 ].u = 1.0f ;
Vert[ 1 ].v = 0.0f ;
Vert[ 1 ].su = 1.0f ;
Vert[ 1 ].sv = 0.0f ;
Vert[ 2 ].pos = VGet( 0.0f - 0.5f, vh - 0.5f, vz ) ;
Vert[ 2 ].rhw = 1.0f ;
Vert[ 2 ].dif = GetColorU8( 255,255,255,128 ) ;
Vert[ 2 ].spc = GetColorU8( 0, 0, 0, 0 ) ;
Vert[ 2 ].u = 0.0f ;
Vert[ 2 ].v = 1.0f ;
Vert[ 2 ].su = 0.0f ;
Vert[ 2 ].sv = 1.0f ;
Vert[ 3 ].pos = VGet( vw - 0.5f, vh - 0.5f, vz ) ;
Vert[ 3 ].rhw = 1.0f ;
Vert[ 3 ].dif = GetColorU8( 255,255,255,128 ) ;
Vert[ 3 ].spc = GetColorU8( 0, 0, 0, 0 ) ;
Vert[ 3 ].u = 1.0f ;
Vert[ 3 ].v = 1.0f ;
Vert[ 3 ].su = 1.0f ;
Vert[ 3 ].sv = 1.0f ;
Vert[ 4 ] = Vert[ 2 ];
Vert[ 5 ] = Vert[ 1 ];
// シェーダーでポリゴンを描画
DrawPolygon2DToShader( Vert, 2 ) ;
// 画像を描画
DrawGraph( 0, 0, GrHandle, TRUE ) ;
// 裏画面の内容を表画面に反映
ScreenFlip() ;
// キー入力待ち
WaitKey() ;
// DXライブラリ使用の終了処理
DxLib_End() ;
// ソフトの終了
return 0 ;
}
こちらに私がテストに使用したプログラムをコンパイルした実行ファイルなどを
纏めてアップしましたので、よろしければ BI201さんの環境でも問題なく画像が
描画されるか試してみていただけないでしょうか? m(_ _)m
https://dxlib.xsrv.jp/temp/DrawPolygon2DToShaderTest.zip
( 問題なく描画された場合は DrawPolygon2DToShader で描画された 右渦巻き.bmp の
上に Test1.bmp が描画されます )