0

モバイル デバイス用のゲーム エンジンを作成しており、複数の解像度をサポートしようとしています。ゲームの世界は画面よりもはるかに大きくなる可能性があるため、クリッパーを使用して世界にビューポートを作成しています。

私のデバイスの解像度は 240x320 です。ビューポートを 240x320 に設定し、ワールドを 240x320 に設定すると、すべて問題ありません。画面外の世界を問題なくスライドできます。ただし、ビューポートが 220x320 でワールドが 240x320 のDDERR_INVALIDPARAMS場合、サーフェスが左側の画面の外に移動すると、ブリッティングが失敗します。

(09:02:06) - INFO - ERROR! DirectDraw: One or more of the passed parameters are incorrect. (DDERR_INVALIDPARAMS)
(09:02:06) - INFO - ERROR! Couldn't copy to screen. (RECT: -1, 0, 239, 320) (line 125 in file .\src\SurfaceDirectDraw.cpp)
(09:02:06) - INFO - Dimensions: (0, 0, 240, 320)
(09:02:06) - INFO - ERROR! DirectDraw: One or more of the passed parameters are incorrect. (DDERR_INVALIDPARAMS)
(09:02:06) - INFO - ERROR! Couldn't copy to screen. (RECT: -2, 0, 238, 320) (line 125 in file .\src\SurfaceDirectDraw.cpp)
(09:02:06) - INFO - Dimensions: (0, 0, 240, 320)
(09:02:06) - INFO - ERROR! DirectDraw: One or more of the passed parameters are incorrect. (DDERR_INVALIDPARAMS)
(09:02:06) - INFO - ERROR! Couldn't copy to screen. (RECT: -3, 0, 237, 320) (line 125 in file .\src\SurfaceDirectDraw.cpp)
(09:02:06) - INFO - Dimensions: (0, 0, 240, 320)

右側の画面の外にサーフェスを移動しても問題なく動作し、サーフェスは正しくクリップされます。

サーフェスがバックバッファよりも大きい場合、バックバッファでサーフェスをクリップするにはどうすればよいですか?

前もって感謝します

4

1 に答える 1

0

私が正しいかどうかはよくわかりませんが(DirectDrawは何年も使用されていません)、負のクリッピング四角形についてだと思います。したがって、0/0 を最も左/上の位置に設定して、負の数を取得しないようにする必要があります。

于 2010-07-02T07:25:25.833 に答える