問題タブ [glfw]
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.
xcode - GLFW ライブラリの Xcode プロジェクトのセットアップ
私は、C と OpenGL/GLFW を使用して宇宙の始まりをシミュレートする課題に取り組んでいます。
私は C も Xcode もまったく初めてですが、まったく役に立ちません。私はばかげたコンパイルの問題を克服し、コードは GL/glfw.h を見つけています。コンパイルして実行すると、「Visualisation [プロジェクト名] がステータス 5 で終了しました」というメッセージが表示されます。
それが何を意味するのかよくわかりませんでしたが、コマンドラインからコードを実行しようとすると、次のエラーが発生します。
libglfw.dylib をプロジェクトに追加したのと同じ方法で libglfw.a を追加して、それが修正されたかどうかを確認しましたが、修正されませんでした。
@executable_path がどこに設定されているのか、何に設定されているのかわかりませんが、ライブラリ検索パスのプロジェクトのビルド設定内には "$(SRCROOT)/../../../../glfw/ lib/macosx" は、このライブラリが存在する場所です。
ライブラリが実行可能であることを確認しましたが、そのライブラリ パスを別の場所に設定する必要がありますか?
c++ - C++/STL で関数のリストを維持する方法は?
私の質問を直接する前に、私の問題の性質を説明します。C++/OpenGL と GLFW ライブラリを使用して 2D シミュレーションをコーディングしています。そして、たくさんのスレッドを適切に管理する必要があります。GLFW では、関数を呼び出す必要があります: thread = glfwCreateThread(ThreadFunc, NULL); (最初のパラメーターはスレッドを実行する関数で、2 番目のパラメーターはこの関数のパラメーターを表します)。そして glfwCreateThread は毎回呼び出さなければなりません! (つまり、各サイクルで)。この作業方法は、メインループスコープの外にスレッドを作成する必要があるため、コードを構築する方法を壊してしまうため、実際には役に立ちません。そこで、次のプロトタイプを持つ ThreadManager クラスを作成しています。
たとえば、特定のスレッドを追加したい場合は、特定のパラメーターと特定の関数を指定して AddThread を呼び出すだけです。目標は、次のように呼び出せるようにすることです。メインループスコープ内。しかし、これには次のようなものが必要です:
AddThread 内では、pt2Func によって参照される関数をベクトルに追加する必要があります: list_functions。
さて、これは私がやりたいことの一般的な考えです..それは正しい方法ですか?もっと良いアイデアがありますか?どうやってこれを行うのですか?(つまり、問題は構文です。これを行う方法がわかりません)。
ありがとうございました !
c - OpenGLおよびGLFWを使用したC配列の操作
動き回るいくつかの基本的な球をシミュレートするアプリケーションを構築しようとしています。
私が直面している問題は、実際に必要なときに、データがinitステートメントの外部の配列に割り当てられているように見えないことです。これは、パーティクルを含む配列を宣言した方法と関係がありますか。
さまざまなメソッドからアクセスできる構造体の配列を作成したいので、ファイルの上部の、使用したincludeステートメントの下に次のように入力します。
配列を作成してそれにパーティクルを割り当てる初期化メソッドがあります
次に、描画メソッドの内部で、設定されたシーンを描画するメソッド
これが私のコードのコピーですhttp://pastebin.com/m131405dc
c++ - glfwSleep() はどのようにして segfault を引き起こすことができますか?
私のマルチスレッド アプリケーションでは、sleep() 関数 (GLFW ライブラリのもの) を使用しています。
私のコールスタックが示すように、それは明らかに私のアプリケーションをセグメンテーション違反に導きます:
はglfwSleep()
スレッド内で使用されます。それは危険ですか?その結果、プログラムがセグメンテーション違反になるのはなぜですか?
編集:
のパラメータglfwSleep()
が < 0.02 (秒) の場合、segfault は発生しません!
編集2:
GLFW の公式ドキュメントから:
スレッド化されたアプリケーションの作成は、慣れるまでは非常に厄介かもしれませんが、いくつかの重要なルールに従うのは非常に簡単です。
- スレッド間で共有されるデータへの排他的アクセスを常に保証してください!
- スレッドが適切に同期されていることを確認してください!
- 決して忙しく待つことはありません!
私は答えを得たと思います..今すぐ代替案を見つけなければなりません..
ありがとう!
c++ - C++/GLFW - Mutex オブジェクトを使用する正しい方法は?
マルチスレッドを広く使用するシミュレーションに取り組んでいます。問題は、これまでデータを保護するためにミューテックス オブジェクトを使用したことがないということです。その結果、多くのセグメンテーション違反が発生しています..
読み取り/書き込み中にミューテックスでロック/ロック解除しようとしていますが、別のセグメンテーション違反が発生します:
もちろん、基本的な状況にロック/ロック解除を適用したテスト プロジェクトを作成し、それが機能しました。GLFW を使用して Mutex オブジェクトを処理する方法を示す基本的な例を次に示します。
私が取り組んでいるプロジェクトはより大きく、5 つのスレッドが実行されており、多くのベクトル、マップ、キューが同時にアクセスされます。コードのどこかで、次のようなことをしようとしました:
VehicleManager:CreateVehicles() メソッドをロック/ロック解除の間に配置する理由は、このメソッドに次の行があるためです。
だから私はベクトルを保護したかった: vehicle_. しかし、結果として、上記のセグメンテーション違反が発生しました。そしてでも:
私は同じセグメンテーション違反を起こしました。
あなたが私の問題の性質を理解できるように、私は自分自身を十分に明確にしたことを願っています. 皆さん全員が GLFW を使用したことがあるわけではないので、このライブラリでミューテックスがどのように機能するかを理解できるように、最初の基本的な例を示しました。
ありがとう !
c - GLFW ウィンドウが開かない (Ubuntu)
Ubuntu (9.04) で GLFW ベースの C プログラムをコンパイルして実行すると、ウィンドウを開こうとすると失敗します (最新の GLFW をインストールすると、正常にコンパイルされます)。デフォルトがうまくいくことを期待して、解像度を 300x300 まで下げてさまざまな解像度を試し、ビット深度をゼロのままにしました。
関連するコードの読み取り (サンプル ファイルに基づいて、メイン ファイルの先頭から直接切り取ったものgears.c
):
その他の注目すべき事実は次のとおりです。
- VirtualBox 3.0.2 内で Ubuntu を実行し、512 MB の RAM を使用して構成し、3D アクセラレーションを有効にし、64 MB の VRAM を使用し、Guest Additions を正常にインストールしました
glxgears
> 300 FPS でも正常に動作します- を使用して構築されたGLFW
make-x11
メイクファイル コマンド ライン:
gcc `pkg-config --cflags libglfw` main.c -o program `pkg-config --libs libglfw` -lglfw -lGLU -lGL -lm
Cに関する Mark のヒント- Debian で GLFW ウィンドウが開かない
編集:
より派手なエラー メッセージを抽出する方法はありますか? またはデバッグgetLastErrorDesc()
ログファイルはありますか?
c++ - このC++FreeType GLFWアプリケーションのコンパイル/リンク段階で何が欠けていますか?
これはMacOSX上にあります。
GLFT_FONTをGLFWとFreeType2を使用してMacOSXで動作させようとしています。これは標準のMakefileではありません。自分でその一部を変更しました(「-frameworkOpenGL」など)
私はLinuxの出身で、Macは少し新しいです。
私はMacOSX10.5.8を使用しています。XCode3.1.3を使用する
ありがとう!
macos - フルスクリーンの MacOSX バンドルを強制終了可能にするには?
説明:
MacOSX で GLFW アプリを作成しています。アプリは Mac バンドルです。
アプリをフルスクリーン モードで実行したい (簡単、GLFW_FULLSCREEN を使用)。問題は..私のコードにはまだバグがあり、無限ループするフルスクリーンのアプリを強制終了する方法がわかりません(つまり、プログラムで exit(0); が呼び出されない場合; 強制する方法がわかりませんそれを殺します)。
質問: MacOSX Glfw バンドルをセットアップして、無限ループ時に強制終了できるようにするにはどうすればよいですか?
ありがとう!
c++ - c ++ glfw macosx dim screen vs f1
MacOSXのC++でGLFWアプリを書いています。
GLFW_FULLSCREENモードで実行されます
ここで、「画面を暗くする/ f1」ボタンを押すと、Macが画面を暗くします。
私はそれが起こらないようにしたい。代わりに、GLFWに「キープレスF1」イベント(または「キープレス何とか何とか何とか」イベント)を受信させたい。MacOSXに「薄暗い画面」を解釈せずにフルスクリーンのGLFWに送信するように指示する方法はありますか?アプリ?
ありがとう!
PS:私はMacの管理者権限を持っており、必要に応じてこれを実現するためにシステムに変更を加えるつもりです。
c++ - OpenGL描画しない
OpenGLプロジェクトのGUIとしてGLFWを使用しています。私は自分のレッドブックとテストコードを使用していますが、コードの最初のビットはまったく機能しません。私はJOGLでこの問題を抱えていないので、これはGLFWの問題であると言いたいです。