こんにちは。バグのようなものが見つかったので報告させて頂きます。
LoadDivGraph関数を使用して作った画像をDrawModiGraphで表示させると、元画像内で隣接する別の画像部分のピクセルが表示されます。
この現象について一度検索してみたところ下のスレッドが見つかりました。
http://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=past&no=1934
3.03aで修正されていて、スレッド内で提示されたプログラムでは私の環境でも直っていました。
しかし、特定の変形のしかた(とりわけ平行四辺形で?)では、依然この現象が起こってしまう事があるようです。
3.03a、3.09、3.09fで試しましたがいずれも起こっています。
↓このような感じです
#include "Dxlib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
int ghandle[4];
//ChangeWindowMode(TRUE);
if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
{
return -1 ; // エラーが起きたら直ちに終了
}
LoadDivGraph("texture.png", 4, 2, 2, 32, 32, ghandle);
//隣接ピクセル表示が起こる例(左)
DrawModiGraph( 260, 91, 324, 91, 300, 133, 236, 133, ghandle[1] , TRUE );
DrawModiGraph( 260, 191, 324, 191, 305, 233, 241, 233, ghandle[2] , TRUE );
//起こらない例(右)
DrawModiGraph( 405, 100, 469, 100, 432, 132, 368, 132, ghandle[1] , TRUE );
WaitKey() ; // キー入力待ち
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}
//ここまで
一辺32px×32pxの四角形を
AB
CD
のように並べた画像をLoadDivGraphで読み込み、BとCの画像を平行四辺形に描画するものなのですが、
どちらもAの画像の一部が見えてしまいます。
特に画面と水平・垂直な辺のある部分(C)では隣接ピクセルが一段全て見えてしまう状態です。
例にはありませんが、Bの画像を縦の辺が画面に垂直な平行四辺形に変形すると、
同様にAの隣接ピクセルが一列全て見えてしまいます。
これはバグでしょうか?
もし直るのでしたらお忙しい中失礼しますが対応していただけるとありがたいです。
環境:
windows7(64bit)
VC++2010 Express