2016-08-07 5 views
0

したがって、sdlの画面に小さな画像を追加すると絶対にfpsが落ちることはありませんが、詳細とすべてを画面に追加します。それから私は350から150fpsに落ちます。多分それを修正する方法がありますか?このテクスチャを他の画面などに追加しますか?あなたが背景を描いているので、あなたの場合は大きな画像をsdlのテクスチャに追加すると、巨大な画像がドロップする

SDL_RenderClear(renderer); 
SDL_RenderCopy(renderer, texture, NULL, &rect); 
SDL_RenderPresent(renderer); 
+0

SDLが2Dグラフィックアクセラレーション用にハードウェアを使用できるようにしてください。 SDLはソフトウェアレンダリングのみを使用している可能性があります。 https://wiki.libsdl.org/SDL_CreateRenderer#flags – nshct

+0

@nshct私はSDL_RENDERER_ACCELERATEDを使用していますので、私はハードウェアを使用しています。 SDL_RENDERER_ACCELLERATEDはSDL_RENDERER_TARGETTEXTUREと同じfpsを返します。他のものは10fpsな​​どに落ちます(私がそれらを使用すると、frapsプログラムのカウンタはありません)。 – lollypap54

+0

私が覚えていることの1つは時々、テクスチャ(色がメモリにどのようにレイアウトされているか、カラーフィールドのサイズ...など)は画面のフォーマットとは異なります。そのため、何かをコピーしたいときは、それを翻訳する必要があります。あなたはあなたのスクリーンと同じフォーマットを使用する新しいテクスチャにイメージをコピーしようとすることができます( 'CreateTexture'でそれを与えることができます)、それをあなたのスクリーンに各フレームでレンダリングしようとします。 – nshct

答えて

3

:私のゲームループで

SDL_Texture* texture; 
SDL_Rect rect; 
texture = IMG_LoadTexture(renderer, "data/interiors/baznycia.png"); 
rect.x = 0; 
rect.y = 0; 
rect.w = screenWidth; 
rect.h = screenHight; 

:私のゲームのロードでは

:ここ

は、私はこのイメージを追加する方法を説明します一定のウィンドウサイズを持つゲームの画像では、画像のサイズを画面サイズに合わせて、補間がテクスチャに適用されないようにすると便利ですテクスチャピクセルのフォーマットが不一致の場合はテクスチャの不要な変換が行われることがありますので、それをスクリーンに描画する前に正しいformatを使用していることを確認してください。

関連する問題