DrawPolygonBase より DrawPolygon2D の方が高速で且つ分かりやすいので、
よろしければ DrawPolygon2D をお使いください
DrawPolygon2D で画像を画面左上端に 256x256 の正方形に描画するプログラムは
以下のようになります
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
int texhandle ;
VERTEX2D Vert[ 6 ] ;
ChangeWindowMode( TRUE ) ;
// DXライブラリの初期化
if( DxLib_Init() < 0 ) return -1;
// テクスチャを読み込む
texhandle = LoadGraph( "Tex1.bmp" ) ;
// 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 ].u = 0.0f ;
Vert[ 0 ].v = 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 ].u = 1.0f ;
Vert[ 1 ].v = 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 ].u = 0.0f ;
Vert[ 2 ].v = 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 ].u = 1.0f ;
Vert[ 3 ].v = 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 ].u = 0.0f ;
Vert[ 4 ].v = 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 ].u = 1.0f ;
Vert[ 5 ].v = 0.0f ;
// 2Dの2ポリゴンの描画
DrawPolygon2D( Vert, 2, texhandle, TRUE ) ;
// キー入力待ち
WaitKey() ;
// DXライブラリの後始末
DxLib_End();
// ソフトの終了
return 0;
}
VERTEX2D構造体3つで一つのポリゴンの情報となります
上記サンプルでは 2ポリゴン描画するので VERTEX2D構造体6つの配列を使用しています
VERTEX2D構造体のメンバ変数 pos は画面座標です、pos は VECTOR構造体で、メンバ変数は
x, y, z ですが、z は常に0.0fにしておいてください
VERTEX2D構造体のメンバ変数 rhw は常に1.0fにしておいてください
VERTEX2D構造体のメンバ変数 difは COLOR_U8構造体です、GetColorU8 で値を代入すると楽です
VERTEX2D構造体のメンバ変数 u, v はテクスチャ座標です、テクスチャ画像の端から端を 0.0f 〜 1.0f で表現する値です
上記サンプルの u, v値を 0.1f や 0.2f など少し値を変更して実行すると意味が分かると思います
DrawPolygon2D に渡す画像ハンドルは普通に LoadGraph で読み込んで取得できるハンドルを使用しますが、
制限として画像の幅、高さのピクセル数が 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048 といった、
2のn乗の数である必要があります
○ 256 x 256
○ 512 x 128
○ 64 x 1024
× 100 x 100
× 58 x 70
× 512 x 300
幅、高さのピクセル数が2のn乗ではない画像も LoadGraph で普通に読み込むことができますが、
DrawPolygon2D や DrawPolygonBase などで使用すると意図した描画結果を得ることはできませんので
注意してください