問題タブ [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 投票する
1 に答える
765 参照

c++ - SDL2 でテクスチャに描画できないのはなぜですか?

ここ数か月、夜と週末に SDL でプロジェクトに取り組んでいます。現在、メニューシステムを機能させようとしています。現時点では、を使用してテキストを描画する作業を行っていますSDL_TTF。私の質問ですが、いくつかのテクスチャを別のテクスチャに描画しようとすると、奇妙な動作が見られます。

奇妙なことに、それを描画すると、SDL_TEXTUREACCESS_TARGET(ドキュメントで行うように)で作成された宛先テクスチャで何も描画されませんが、エラーは返されません。ただし、SDL_TEXTUREACCESS_STATICorを使用SDL_TEXTUREACCESS_STREAMすると、アクセス属性のためにレンダー ターゲットを設定するとエラーが返されますが、問題なく描画されます。掘り下げた後、Intelドライバーのバグについていくつか聞いたので(Intelグラフィックスを搭載したMacbookを使用しています)、これは私が台無しにしたものなのか、どうすれば修正できるのか疑問に思っていました. 代わりに、それが私のせいでない場合でも、何が起こっているのか、プラットフォームによってパフォーマンスが異なるのか、どうすれば回避できるのかを知りたいです。

不要な部分を削除した後のコードは次のとおりです。

レンダラーを作成します。

後でキャンバスにレンダリングすると、次のようになります。

ここでは、いくつかの属性を解析し、TTF_SetFontStyle() とテキストの色の clr を使用してそれらを設定します。

canvas は呼び出し元の関数に返されるため、このテキスト ボックスが変更されるまでキャッシュされます。この関数は、ボックス全体のテクスチャを用意し、背景テクスチャをその上に描画し、その上にこの画像を描画して、全体を保持することで機能します。

そのコードは次のようになります。

(背景を描画するためのもので、うまくレンダリングされます)

Sum は、描画を行う別の関数に返されます。

前もって感謝します!

更新 したがって、アクセス設定が正しくない場合にのみ描画された理由は、関数がエラー値を返していたため、レンダー ターゲットがテクスチャに設定されていなかったため、画面上に描画されただけだったことがわかりました。 . また、テクスチャのテクスチャ形式がレンダラーでサポートされていることを確認し、アクセス属性の文字列の説明を出力し、寸法を出力する関数 AuditTexture を作成して、すべてのテクスチャをチェックしました。すべてのテクスチャ フォーマットがサポートされていること、2 つのラインが静的であること、canvas と sum がレンダー ターゲットであること、次元が 0 ではないことがわかりました。

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

sdl - SDL_ttf を使用してテキストをウィンドウに表示するセグメンテーション違反

これは、SDL を使って作業するための単なるトレーニング演習であり、機能の欠如や警告を無視し、すべてがメインにあることを確認します。セグメンテーション違反が発生し続けます。これは、セクションの下の//Initialise TTF, create font pointer, set font and colour then render.セクションで行ったことです。それがないコードは正常に機能します。

問題は の間にあると思います-------

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

c++ - SDL_TTFを使用するとC++プログラムのメモリ使用量が増加し続ける

SDL ライブラリを使用して単純なゲームのコードを実行しています。これに関して2つの質問があります:

  1. ブレークポイントを設定せずにプログラムを単独で実行すると、メモリ使用量が高くなります (最初と比べて 20 ~ 30 倍)。しかし、ループ(ゲームのメインループ)を止めて自分でクリックすると、100回くらいクリックしてもメモリ使用量は変わらない(?)。なんで?

  2. そのため、ループ内で新しい要素を破棄せずに追加できると考えているため、instrument を使用してその理由を分析することにしました。そして、Instrument でレコードをヒットするたびに、アプリは 5 秒間継続し、クラッシュ レポートでシャットダウンします (アプリは xcode でメモリを使用して完全に実行されます)。

    スレッド 0 がクラッシュしました:: ディスパッチ キュー: com.apple.main-thread

    0 org.libsdl.SDL2 0x0000000100f5bea9 0x100ee9000 + 470697

    1 スパイク 10 0x0000000100ea40cc imageTexture::render() + 50 (imageTexture.cpp:37)

    2 スパイク 10 0x0000000100ea2b70 GUI::renderImage() + 40 (GUI.cpp:140)

    3 スパイク 10 0x0000000100ea30b2 GUI::run() + 1258 (GUI.cpp:172)

    4 スパイク 10 0x0000000100ea439e メイン + 36 (main.cpp:15)

    5 libdyld.dylib 0x00007fff8c60f5ad 開始 + 1

これらは、関連していると思われるいくつかのコードです。

3 番目の場合: //imageVector はすべての imageVector ポインターを含む単なるベクターです。

番号 2 の場合:

コードを無効/有効にして何が起こるかを長い間試した後、何が問題なのかまだわかりません。

これは私の現在のループです:

それのためのいくつかのコード:

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

c++ - SDL_TTF 遅い印刷効果

それで、私はコマンド プロンプト ゲームに取り組んでいて、今は小さなものから始めています。遅い印刷テキスト システムの基本を理解しましたが、修正方法がわからない問題に遭遇しました。

基本的; テキストは定義済みのボックスに収まるように伸びます: プレビュー 定義済みのボックスとは、srcrect と dstrect として定義した SDL_Rect を意味します。

さて、解決策は、テキストに合わせて SDL_Rect を単純に拡張することです。Monospaced フォントを使用しているので、これはかなり簡単です。しかし、私は考えたままです。「もっといい方法があるに違いない!」

最後に、必要に応じて私のコードを次に示します。

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

cabal-install - Haskell に SDL-ttf-0.6.2.1 をインストールする際のエラー: -lSDL_ttf が見つかりません

react-banana-sdl をインストールしようとして、次の問題が発生しました。

私は何をしますか?

詳細: 私は Windows 7 を使用しており、MINGW64 でこれを行っています。pacman から sdl-ttf をインストールし、 https://www.libsdl.org/projects/SDL_ttf/release-1.2.htmlから SDL_ttf をダウンロードし、SDL_platform.h を置き換えました ( https://hg.libsdl.org/SDL /raw-file/e217ed463f25/include/SDL_platform.h ) 別のエラー ( Code::Blocks で SDL をコンパイルするときの「winapifamily.h: No such file or directory」 ) を修正します。追加のディレクトリを含めるようにしました。

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

c - 文字列内の特定の文字を異なる色でレンダリングする (SDL_ttf)

したがって、文字列の配列に1行あたり40文字を保持する25行のテキストがあり、その中に次の文字が必要な色を示す制御コードがあります。たとえば、1行は次のようになります。

[RED] Hello [BLUE] World

Hello は赤で、World は青である必要があります。現在、最初のコード、つまり [RED] (実際の制御コードは 16 進数) を読み取ることができるところまで来ており、次の行を使用して強調表示できます。

ここで、d->font はフォント、array_pointers[i] はそのテキスト行、色は設定する背景/前景です (デフォルトではすべての背景が黒なので心配する必要はありません。この行は文字列全体を赤くレンダリングし、 2 番目の制御コードを無視します。

私の質問は、文字列の特定の部分を異なる色でレンダリングできる方法/使用できるものはありますか? 私の知る限り、RenderUTF8_Shaded は文字列全体のみを引数として取ります。