コード:
#include "DxLib.h"
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
SetGraphMode(640*2, 480*2, 32);
ChangeWindowMode(TRUE);
if (DxLib_Init() != 0) return 0;
int offscreen = MakeScreen(640, 480, TRUE); // アルファチャンネル付き
while (ProcessMessage() == 0 && ScreenFlip() == 0 && ClearDrawScreen() == 0)
{
SetDrawScreen(DX_SCREEN_BACK);
DrawBox(0, 0, 640, 480*2, GetColor(255,0,0), TRUE);
DrawBox(640, 0, 640*2, 480*2, GetColor(0,0,255), TRUE);
SetDrawScreen(offscreen);
ClearDrawScreen(); // 繰り返し使うのでオフスクリーンをクリア
SetDrawMode( DX_DRAWMODE_NEAREST ); // オフスクリーンにはリアレスト
DrawString( 10, 30, "dot", GetColor( 255, 255, 255 ) );
DrawString( 10+320, 30, "dot", GetColor( 255, 255, 255 ) );
SetDrawScreen(DX_SCREEN_BACK);
SetDrawMode( DX_DRAWMODE_NEAREST ); // ニアレストで拡大
DrawExtendGraph(0, 0, 640*2, 480*2, offscreen, TRUE); // 透過付き描画
SetDrawScreen(offscreen);
ClearDrawScreen(); // 繰り返し使うのでオフスクリーンをクリア
SetDrawMode( DX_DRAWMODE_NEAREST ); // オフスクリーンにはリアレスト
DrawString( 20, 40, "UI", GetColor( 0, 0, 255 ) ); // 重なり具合に注目
DrawString( 20, 60, "UI", GetColor( 255, 255, 255 ) ); // 重なり具合に注目
DrawString( 20+320, 40, "UI", GetColor( 255, 0, 0 ) ); // 背景とのアンチエイリアス具合に注目
DrawString( 20+320, 60, "UI", GetColor( 255, 255, 255 ) ); // 背景とのアンチエイリアス具合に注目
SetDrawScreen(DX_SCREEN_BACK);
SetDrawMode( DX_DRAWMODE_BILINEAR ); // バイリニアで拡大
SetDrawBlendMode(DX_BLENDMODE_PMA_ALPHA, 255); // 乗算済みアルファブレンド
DrawExtendGraph(0, 0, 640*2, 480*2, offscreen, TRUE); // 透過付き描画
SetDrawBlendMode(DX_BLENDMODE_NOBLEND, 255); // 戻す
}
DxLib_End();
return 0;
}