2011-12-09 8 views
0

今、ゲーム2Dのエンジンを実装しようとしています。 ゲームを成功させるためのウィンドウを作成しました。 しかし、プロメムがあります。 device-> BeginScene()と呼ぶと、うまくいきませんでした。その関数は失敗しました。LPDIRECT3DDEVICE9 - > BeginScene()関数が失敗しました

私が検索し、私はすでに、デバイスに> BeginScene(と呼ばれているので、その関数が失敗knowedている)前と、デバイスに> EndScene()を呼び出していませんでした。(という意味では、私は、デバイスに機能を呼び出します> BeginScene() 2回連続)。 いくつかのコード:

//GameEngine.cpp 
    void CGameEngine::Draw() 
     { 
      // let the state draw the screen 
      if (!states.empty()) 
      { 
       this->RenderStart();// this function failed- return 0 
       this->Render2D_Start(); 
       states.back()->Draw(this); 
       this->Render2D_Stop(); 
       this->RenderStop(); 

      } 
     } 

私は何回もdebugedが、間違っているものを発見していません!

誰でも私を助けることができますか?

(エンジンのすべてのクラスは、クラスだけCIntroStateとCGameEngine上の問題OKです) で私のプロジェクトをダウンロードします。事前にhttp://mediafire.com/?h3jumchcqujnh69

ありがとうございます。 貧しい人々のためのソーリー。

答えて

0

the documentationを読んだことがありますか? BeginScene呼び出しをネストすることが許可されていないことを指定します。 BeginSceneに再度電話する前にBeginSceneの後にEndSceneに電話する必要があります。

(IDirect3DDevice9 ::本又はIDirect3DSwapChain9 ::存在するか)を提示する任意の連続する呼び出しの間に1つIDirect3DDevice9 :: BeginScene/IDirect3DDevice9 :: EndSceneペアがなければなりません。 IDirect3DDevice9 :: BeginScene は、レンダリングを実行する前にに一度呼び出す必要があり、IDirect3DDevice9 :: EndScene は、フレームのすべてのレンダリングがランタイムに送信された後に、一度と呼び出す必要があります。複数のネストされていないIDirect3DDevice9 :: BeginScene/IDirect3DDevice9 :: EndSceneの組み合わせは有効ですが、複数のペアがあるとパフォーマンスが低下する可能性があります。

+0

ありがとう!今、私の問題は疲れている –

関連する問題