問題タブ [sdl-image]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
412 参照

c++ - 奇妙な SDL_Surface->format->BytesPerPixel 値

そのため、SDL_image を使用して高さマップを読み込み、OpenGL アプリで地形を作成しています。

それがSDL_imageを初期化する方法です:

...そして、これは私の Load 関数です:

次に、頂点バッファーを準備している Terrain クラスで、次のメソッドでピクセル値を読み取ります。

...そして、プログラムを実行するたびにimg->format->BytesPerPixelランダムな値が返されることがわかりました...一体何ですか? 誰にもアイデアはありますか?これは、1、2、3、または 4 のみを返す必要があります。

0 投票する
3 に答える
4908 参照

c++ - 'IMG_Load' はこのスコープ SDL 2 で宣言されていません

SDL でアプリケーションを作成しようとしていて、ウィンドウにアイコンを追加したいのですが、コンパイルすると次のエラーが発生します。

私はコンパイルにcmakemakeを使用しています。ここにCMakeLists.txtがあります

ここにmain.cpp

インクルード ディレクトリに SDL_image.h を追加しようとしましたが、コンパイラが SDL_image.h で指定された SDL.h を見つけられないため、エラーが発生します...

助けてくれてありがとう!

0 投票する
1 に答える
1741 参照

linux - libgraph の構成: インストールされているにもかかわらず、SDL_Image が見つかりません

Crunchbang (Debian/7.7) システムに libgraph (1.0.1) をインストールする必要がありました。
もちろん、その前にいくつかの依存関係があります。SDL_Image がソースから正常にダウンロードおよびインストールされました。テストするために、SDL ヘッダーを使用して C++ プログラムをコンパイルしました。完全に実行されました。
ただし、実行中./configureはまだスローされます:

SDL および SDL_image パッケージがインストールされます。

他の質問から、SDL_image ファイルが「デフォルト」以外の別のディレクトリにある可能性があります。しかし、SDL が検出され、同じ場所にインストールされています。問題は何ですか?

0 投票する
1 に答える
519 参照

c - 緑の色合いに悩まされているSDL OpenGLテクスチャ

SDL_image を使用してイメージを OpenGL テクスチャにロードしようとすると、予期しない出力が表示されます。

私のコードの関連部分は次のとおりです。

私がロードするネイティブ画像は次のとおりです。

入力.jpg

しかし、出力は次のとおりです。

出力.jpg

別のスタック オーバーフローの投稿で読んだことから、逆チャネルの問題である可能性があると思いますが、提案された解決策では問題が解決しません。私のアプローチ/コードの何が問題になっていますか?

0 投票する
0 に答える
612 参照

c - SDL - ブリット中にサーフェスをロックしてはいけません

C で簡単なゲームを作成しようとしています。SDL2 を使用して描画します。メインループは次のとおりです。

draw_player 関数は次のとおりです。

正常にコンパイルされますが、実行後にプレーヤーが表示されません。出力:

self->surface->lockeddraw_player 関数内が NULL である理由がわかりません。表面へのポインターは同じなので...よくわかりません。コードのどこにも SDL_LockSurface を呼び出していませんが、SDL はブリット中にサーフェスがロックされていると不平を言っていSurfaces must not be locked during blitます。SDL_BlitSurface の前に SDL_UnlockSurface を呼び出そうとしましたが、何も変わりませんでした。何か案は?私は C と SDL の初心者です。Fedora 24 を実行しています。SDL はクロスプラットフォーム ライブラリであるため、問題にはなりません。gcc 6.1.1 を使用しています。

Player のスプライトは png 形式なので、IMG_Load を使用します。プレーヤーの作成方法は次のとおりです。

そして最後にお伝えしたいことがあります。描画関数と更新関数へのポインターを GameObject 構造体に格納します。だから私は update_player のように呼び出しますplayer->update(...)。描画関数も同様です。少しハッキーなスタイルですが、気に入っています。早速 draw_player を呼び出してみました。結果は同じだったので、コーディングスタイルは問題ないと思います。しかし、私は間違っているかもしれません。お気軽に訂正してください。

編集:そのバグを見つけたかもしれません。SDL_BlitSurface(window, NULL, self->surface, NULL);する必要がありますSDL_BlitSurface(screenSurface, NULL, self->surface, NULL);。Window は SDL_Window へのポインタで、screenSurface は SDL_Surface へのポインタです。コンパイル中にエラーをスローしなかったのはなぜですか?? わかりました、エラーはなくなりました。しかし、何も表示されません。

編集番号 2 見つけました。それはとても愚かな間違いでした。これが正しい解決策です: SDL_BlitSurface(self->surface, NULL, screenSurface, NULL); SDL_BlitSurface は次のようになります:

1 番目がソース サーフェスで、3 番目が宛先サーフェスである必要があります。逆に書いてありました。バグを引き起こしました。

0 投票する
1 に答える
733 参照

sdl-2 - SDL2 IMG_Load「サポートされていない画像形式」エラー メッセージ?

PNG画像を読み込もうとしています。libsdl2-dev および libsdl2-image-dev パッケージがインストールされ、SDL2/SDL_image.h が含まれています。IMG_Init はエラーなしで動作していますが、IMG_Load エラーです。

私のデスクトップ PC (Ubuntu) では動作します (png を SDL_Surface にロードします) が、私のラップトップ (同じく Ubuntu) が必要な png ライブラリにリンクしていないようです。

ldd (デスクトップ) libpng12.so.0 => /lib/x86_64-linux-gnu/libpng12.so.0 (0x00007ff58db3c000)

ldd (ラップトップ) libpng lib なし

これらのマシンは両方ともこのライブラリを同じ場所に持っていますが。

リンクされていない理由をどのように理解できますか?

編集: IMAGE_Init(IMG_INIT_PNG) が「PNG 画像はサポートされていません」というエラーを引き起こしている