問題タブ [sdl-ttf]

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 投票する
2 に答える
1312 参照

opengl - sdl ttf_rendertext_blended がランダムに失敗する

編集: 問題はまだ存在しますが、詳しく調べるほど頻繁にこれを再現できていません。質問の最後にある詳細を参照してください。


私はゲームの開発を始めました。現在、そのための基本的なライブラリを作成しています。Linux Mint 13 (Maya) で、SDL-2 および OpenGL 3 (Derelict3 バインディングを使用) で D プログラミング言語を使用しています。コンパイラは DMD64 D Compiler v2.067.1 で、毎回 rdmd でバイナリをリビルドしています。

テキストをレンダリング (変更) するために、オンデマンドでグリフを作成します。これに使用するコードは次のとおりです。

問題は、これが純粋にランダムに失敗することです。場合によっては問題なく動作します。グリフのレンダリングに失敗すると、同じグリフのレンダリングに何度も失敗するのは興味深いことです。私がスローした例外をキャッチするときの例を次に示します。

(スコアを画面に出力していますが、これらのいくつかを除いて他の数字は問題なく表示されます)。TTF_RenderText_Blended がレンダリングに失敗する数値は実行ごとに異なり、前述のように、すべての数値がレンダリングされることがあります。

詳細の 1 つは、ゲーム ループに入る前にレンダリングする静的文字列がまだレンダリングに失敗していないことです。テキストを変更するために使用する単一の文字だけです。

私はほとんどアイデアがありません.Webを検索しても、この問題に関連するものは何も見つかりませんでした. 解決策を探すためのアイデアは非常に高く評価されています。


現在の状況: コンパイラを DMD 2.067.1 に更新しましたが、問題は残ります (これまでに使用されたコンパイラ: 2.066.1、2.067.1)。全体 - プロジェクトファミリーが現時点でgithubにあるとしましょう:

https://github.com/mkoskim/games

テキスト グリフ レンダリング関数は、次のファイルにあります。

https://github.com/mkoskim/games/blob/master/engine/ext/font.d

...そしてここから使用されます:

https://github.com/mkoskim/games/blob/master/engine/ext/gui/label.d

この問題は、主に/最も頻繁に pacman ゲームで発生します (ただし、現時点ではめったに発生しません):

https://github.com/mkoskim/games/tree/master/testbench/pacman

試してみたい場合は、まずインストール手順をお読みください (できれば十分に完了しています)。

https://github.com/mkoskim/games/blob/master/INSTALL

このプロジェクトは 64 ビット Linux Mint Maya 用に作成されており、現在のところ、ビルドの観点からすると、それほどユーザー フレンドリーで移植性がありません。Pacman は、ゲーム コントローラーなしで (できれば) 動作する唯一のデモです。必要なライブラリとツールが正常にインストールされたら、次のコマンドでビルドできます。

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

sdl - SDL_ttf と使用関数

C ++でのSDLプログラミング(Ubuntu Linuxでコードを書いています)では、画面にテキストを描画するために、関数を作成し、その2番目の引数でテキストを取得します。その型は char* です。main 関数では、上記の関数の第 2 引数に何を渡せばよいでしょうか。たとえば、このコードでは、コンパイル中にエラーが発生します: (関数を使用して画面にテキスト (Player1 must play...) を描画したい)

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

c++ - C++ SDL OpenGL でアクセス違反が発生する

SDL_ttf を使用して OpenGL でテキストをレンダリングしようとしていますが、SDL_Surface からピクセルを取得しようとするたびに、次のエラーがスローされます。

エラーが発生した場所にブレークポイントを配置しました。SDL_Surface ポインターは NULL ではなく、すべてのデータ (幅や高さなど) は正しいです。

コードは次のとおりです。

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

c++ - SDL_TTF 文字列メモリリークへの描画?

わかりましたので、更新して画面に反映できる整数を表示しようとしました。(例: マウス位置の x 座標と y 座標を表示する)、思い通りに実行されましたが、古き良きタスク マネージャーを開くと、7 分間実行した後に約 600 MB に達したことがわかりました。画面にレンダリングした整数をコメントアウトしたとき(描画または更新されないように)。プログラムは、7 分後に 20MB 前後で停止しました。私は問題を見つけることができませんでした。誰かが私がどこで間違ったのかを理解するのを手伝ってくれますか? ありがとう。

//TextMangager.h

//TextManager.cpp の一部

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

c++ - TTF_RenderText_Blended 使用時のメモリ リーク

SDL_TTF を使用してテキストを描画していますが、上記の関数、具体的には次の行に絞り込んだメモリ リークがあります。 text_surface = TTF_RenderText_Blended(temp_font, text.get_string().c_str(), text_colour);

opengl でサーフェスを使用した後、SDL_FreeSurface上記の関数が再度実行される前に呼び出していますが、まだリークしています。

0 投票する
2 に答える
5209 参照

cmake - CMakeLists.txt で SDL2_ttf を確認するにはどうすればよいですか?

現在、SDL2-ttf ライブラリを使用して SDL2 プログラムを作成しており、CMakeLists.txt にチェックを追加したいと考えています。それ、どうやったら出来るの?

CMake 3.1 を使用しています。