恐らく画像を読み込む前に以下の記述を追加すれば、
ハードウエアの限界のサイズまで読み込み可能になると思います
SetUseDivGraphFlag( FALSE ) ;
DXライブラリは標準では大きいテクスチャや2のn乗ではないサイズを持つ
テクスチャを分割するようにしています
例えば 257x257 サイズのテクスチャを読み込もうとした場合、分割しないと
512x512 サイズのテクスチャが必要になり、画像の元のサイズのほぼ4倍の
面積が必要になってしまって勿体無いので 256x256 32x128 128x32 32x32 の4枚の
テクスチャに分けます( DXライブラリで使用する最小サイズは 32x32 )
また、ハードウエア的に対応しているテクスチャサイズが 2048x2048 の
環境で 4096x4096 サイズの画像を読み込んだ場合は、2048x2048 サイズの
テクスチャ4枚に分割します
そして、大きいテクスチャを分割する処理にはもう一つルールがあり、
ハードウエア的に高解像度のテクスチャに対応しているという情報が返ってきても、
ある程度の大きさ以上の画像は分割する、ということをしています
この「ある程度の大きさ」以上かどうかの判定は「画面をすっぽり収める
テクスチャの最低サイズより大きいかどうか」で判定しています
DXライブラリの画面サイズはデフォルトの設定では 640x480 ですので、
縦横の大きいほうを取って 640x640 のサイズがすっぽり収まるテクスチャの
サイズ( 1024 )が分割するかどうかの判断基準となります
なぜこのような処理をしているのかといいますと、以前ハードウエア的には
4096x4096 のサイズまで対応しているという情報が返ってくるハードウエアで、
実際に 4096x4096 のテクスチャを使用したら正常に表示されないことがあったからです
長くなりましたが、SetUseDivGraphFlag 関数は、上記の分割処理をするかしないかを
設定するための関数で、TRUE を渡すと分割処理をして、FALSE を渡すと分割処理を
しないようになります
ただ、最近のグラフィックチップは 8192x8192 辺りのサイズまで対応するように
なりましたが、まだ 2048x2048 くらいが限界のグラフィックチップもありますのでご注意ください