問題タブ [eaglview]
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.
iphone - iPhoneのOpenGLESアプリケーションでジェスチャレコグナイザーを使用するにはどうすればよいですか?
ビューベースのアプリケーションでジェスチャレコグナイザーを使用する方法は知っていますが、OpenGLSEベースのアプリケーションで同じアイデアを適用すると、たとえば、TapGestureRecognizerを追加し、EAGLViewをタップするとクラッシュします。では、OpenGLESベースのアプリケーションでのUITapGestureRecognizerの標準的な使用法を誰かに教えてもらえますか?
幸運をお祈りしています。
iphone - openGL アプリの destroyFramebuffer メソッド
私の OpenGL タイプの iPhone アプリでは、以下の GLView 実装にこのメソッドがあります。
開発中にアプリを起動するたびに、前回アプリをシャットダウンしたときに存在していた最後のフレームが、アプリがアニメーションを開始する前に最初に描画されることに気付きました...
しかし、このメソッドをコメントアウトすると、アプリは前回の古い終了フレームがなくても問題なく起動します。
だから私はここに何か問題があります。おそらくこの方法で直接...アイデアはありますか?
(今、アニメーションの直前に(最初のフレームとして)空白の白い画面が表示されるので、ここで何かがおかしいです)
以下は、「createFrameBuffer」メソッドの外観です (GLView 実装の起動方法は、これらの 3 行でした)。
iphone - EAGLVIew が iOS 4.2 でレンダリングされなくなったのはなぜですか?
iOS SDK 4.2 へのアップグレード アプリケーションでいくつかの誤動作が発生しています (別の動作についてはこちらで質問されます)。私があなたの助けを求めるつもりのものは、私が入れている 3d モデルをレンダリングしない OpenGL ビュー (EAGLView サブクラス) に関するものです。
ビューが割り当てられ、ジェスチャを認識しているように見えますが、その内容は表示されません(背景に色を付けてモデルを配置するのではなく、ビューに関するものであることを確認しました: 色を付けませんglClearColor()
)。
ダブルタップすると、サイズが変更されます (フルスクリーンになります。この前は小さな UIVIew です)。このメソッドを呼び出します。
すると魔法のようにモデルが現れ、背景まで色がつきます。
サイズを変更して前のフレームと中央の位置に戻すメソッドがあり、呼び出されるとビューが再び「空」になります。
提案の前に?(必要に応じてさらにコードを投稿できます)
更新 これはシミュレーターで発生しています (現時点ではデバイスでテストできません)。これが既知のバグである場合、誰かが Apple ドキュメントから参照していますか?
更新 2 OpenGL ES 2.0 ではなく 1.1 を使用しています。
EAGLView で行うことは次のlayoutSubViews
とおりです。
そして、これは私のcreateFramebuffer
更新 3
フルスクリーン フレーム (320x480) を指定してビューを作成すると、正しくレンダリングされたように見えます。何らかの形でビューの寸法に関連しています
iphone - EAGLViewの制限
EAGLView(CGRectMake(0,0,320 * 3,480 * 3)を1024より上に設定しています)のフレームを1024より上に増やすことはできますか?フレームを1024より上に設定すると、iOS 4.2では正しく機能しますが、iOS 4.1デバイスでは、フレームを1024より上に設定すると機能しません。
更新:サンプルのopenGLプロジェクトを作成し、didFinishLaunchingWithOptionsを次のコードに置き換えました。シミュレーターでは正常に機能しますが、IOS4.2未満のデバイスでは何も表示されません。
objective-c - ES1Renderer から EAGLView のメソッドを呼び出す方法は?
標準の OpenGL ES iPad パターンを使用すると、そのような「構造」が得られます。委任、プロトコルについていくつか読んだことがありますが、この特定の目的に対する直接的な答えはまだ得られていません。教えてください。
なぜこれが必要なのですか?すべてのアクションは ES1Renderer で実行され[EAGLView setUserInteractionEnabled:true];
ます。たとえば、次のようにします。
「EAGLView」は「+setUserInteractionEnabled:」に応答しない場合があります:
iphone - iPhone用のOpenGLゲームでFPSを計算する(EAGLView)
アップルのクラッシュランディングの例をベースとして、iPhone用の小さなゲームをプログラムしました。ここで、ゲームの1秒あたりのフレーム数を測定したいと思います。
1秒あたりのFPSをどのように計算できるか知りたいのですが、誰かがそれを理解したり、それを行う方法を教えてくれたりするのを手伝ってもらえますか?
ありがとう。
objective-c - ツールバーの自動回転を使用して OpenGL ES テンプレートを作成する方法
私はこれを数日間行う方法を理解しようとしてきましたが、成功は限られています。ビューの向きが変わったときに通知する NSNotifications を手動で処理することができたので、CGAffineTransformations を使用してツールバーを正しい向きに移動します。この種の作品は、あまりきれいではありません。私の質問は、ツールバーを OpenGL-ES ビューに追加して自動回転させるにはどうすればよいですか? 新しいviewControllerを作成し、OpenGLビューとツールバーをこのビューに追加する必要があると思いますが、これを行う正しい方法を知る、またはこれが正しいアプローチである場合でも、ビューとサブビューを操作した経験が十分ではありません. 私はそれをやってみましたが、惨めに失敗しました。
iphone - iOS (iPad / iPhone) でキーボードとサブビューの向きを強制する
ユーザーがメールアドレスなどを入力できるように、ユーザー入力をゲームに入れているだけです。ゲーム全体は Gl であり、iOS UI はまったくありません。EAGLView は向きを変更せず、常に縦向きですが、ゲームは横向きであり、カメラ変換でこれを処理します。
iOS キーボードを表示し、テキスト入力用に UITextView をオーバーレイします。UITextView は EAGLView のサブビューです。明らかにそれとキーボードは、EAGLView が縦向きであるため、縦向きに表示されます。
EAGLView を横向きに変更することなく、UITextView とキーボードを強制的に横向きに表示する方法はありますか?
これを機能させるために EAGLView の向きを横向きに変更した場合、パフォーマンスに影響はありますか? GLビューをデフォルトの縦向きビュー以外に向けるとパフォーマンスが低下することを何度か読んだことがありますが、これに関する確固たる証拠は見つかりません。
ありがとう、
iphone - CADisplayLink で再描画を強制する
私は現在CADisplayLink
、うまく機能するOpenGLアニメーションを表示するために使用しています。ただし、パラメーターが変更され、すぐにビューを再描画する必要があり、次のフレームが によって要求されるまで待てないことがありCADisplayLink
ます。そうしないと、フレームが 1 つ間違ってしまい、私の場合は非常に見栄えが悪くなります。
EAGLView
では、どうすればものに干渉せずに を強制的に再描画できCADisplayLink
ますか?
iphone - iPhoneでのEAGLViewプレゼンテーションとフレームサイズ変更の同期
EAGLView
アニメーションでサイズを変更しているものがあります。アニメーションNSTimer
は、描画関数を呼び出すによって駆動されます。サイズを変更するEAGLView
ときは、コンテンツのアスペクト比を維持するために、ビューの投影を調整する必要があります。描画関数は次のようになります。
ただし、このように実行すると、EAGLViewのコンテンツがアニメーションを「階段状」に下がるように見えます。それを記録してフレームごとに見ると、投影が調整されていることは明らかです。その後、ビューのサイズが非常に短時間で変更されます(1アニメーションフレーム未満)。
その理由は、のフレームの変更gameView
が延期されていることと、その間に更新されたフレームバッファが画面に表示されていることによるものと思われます。CATransactions
フレームの更新をすぐに有効にするためにを使用してみましたが、UIViewの変更を期待していたので、何もしませんでした。ビューポートを変更してEAGLView
フルフレームのままにすることはできると思いますが、それによって他の場所で同期の問題が発生する可能性があるのではないかと心配しています(たとえば、オーバーレイされたCALayerの更新など)。
これは問題の合理的な評価のように思われますか?どうすればそれを防ぐことができますか?つまり、フレームバッファの表示がEAGLView(および他のCA要素)の実際のフレームの変更と一致することを最も確実にするにはどうすればよいですか?
ありがとう!