手元で以下のような DrawPolygon2DToShader の呼び出し後に DrawGraph を実行するプログラムを組み
試してみましたが、問題無く DrawGraph で描画したものが DrawPolygon2DToShader で描画したものより上に表示されました
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
int texhandle, pshandle ;
VERTEX2DSHADER Vert[ 6 ] ;
ChangeWindowMode( TRUE ) ;
// DXライブラリの初期化
if( DxLib_Init() < 0 ) return -1;
// テクスチャを読み込む
texhandle = LoadGraph( "Tex1.bmp" ) ;
// ピクセルシェーダーを読み込む
pshandle = LoadPixelShader( "PixelShaderTestPS_DX11.pso" ) ;
// 2ポリゴン分の頂点のデータをセットアップ
Vert[ 0 ].pos = VGet( 0.0f, 0.0f, 0.0f ) ;
Vert[ 0 ].rhw = 1.0f ;
Vert[ 0 ].dif = GetColorU8( 255,255,255,255 ) ;
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( 256.0f, 0.0f, 0.0f ) ;
Vert[ 1 ].rhw = 1.0f ;
Vert[ 1 ].dif = GetColorU8( 255,255,255,255 ) ;
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, 256.0f, 0.0f ) ;
Vert[ 2 ].rhw = 1.0f ;
Vert[ 2 ].dif = GetColorU8( 255,255,255,255 ) ;
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( 256.0f, 256.0f, 0.0f ) ;
Vert[ 3 ].rhw = 1.0f ;
Vert[ 3 ].dif = GetColorU8( 255,255,255,255 ) ;
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 ].pos = VGet( 0.0f, 256.0f, 0.0f ) ;
Vert[ 4 ].rhw = 1.0f ;
Vert[ 4 ].dif = GetColorU8( 255,255,255,255 ) ;
Vert[ 4 ].spc = GetColorU8( 0, 0, 0, 0 ) ;
Vert[ 4 ].u = 0.0f ;
Vert[ 4 ].v = 1.0f ;
Vert[ 4 ].su = 0.0f ;
Vert[ 4 ].sv = 1.0f ;
Vert[ 5 ].pos = VGet( 256.0f, 0.0f, 0.0f ) ;
Vert[ 5 ].rhw = 1.0f ;
Vert[ 5 ].dif = GetColorU8( 255,255,255,255 ) ;
Vert[ 5 ].spc = GetColorU8( 0, 0, 0, 0 ) ;
Vert[ 5 ].u = 1.0f ;
Vert[ 5 ].v = 0.0f ;
Vert[ 5 ].su = 1.0f ;
Vert[ 5 ].sv = 0.0f ;
// 使用するテクスチャを0番にセット
SetUseTextureToShader( 0, texhandle ) ;
// 使用するピクセルシェーダーをセット
SetUsePixelShader( pshandle ) ;
// シェーダーを使用した2Dの2ポリゴンの描画
DrawPolygon2DToShader( Vert, 2 ) ;
// 後から上にテクスチャを描画
DrawGraph( 10, 10, texhandle, FALSE ) ;
// キー入力待ち
WaitKey() ;
// DXライブラリの後始末
DxLib_End();
// ソフトの終了
return 0;
}
お使いのDXライブラリのバージョンは幾つでしょうか?
DrawPolygon2DToShader とは別件だったと思いますが、ご報告いただいたバグに関連する
処理を最近変更したような記憶がありますので、もしかしたら最新のバージョンでは
修正されているかもしれません
なので、よろしければダウンロードページにある正式公開の最新バージョンか、
こちらの暫定最新バージョンでも同様の描画結果になってしまうかお試しになってみてください m(_ _;m
https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用
https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用
https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.3 用
https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用
https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用
https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース
(中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい)