問題タブ [nsopenglview]
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.
cocoa - NSImage を NSOpenGLView に描画する
私は基本的に NSOpenGLView を使用して NSImageView を実装しようとしています。つまり、提供された NSImage からレンダリングできるはずです。誰かが簡単な OpenGL の実装や開始ガイドラインを教えてくれませんか?
xcode - Swift での NSOpenGLPixelFormat の初期化
私のGoogle検索のどれも役に立たなかったので、どうやらこれを試みたのは私だけです。次のように属性配列を初期化しているとします。
これらはすべて通常の Int です。確認しました。今私がするなら
コンパイラから次のエラー メッセージが表示されます。
「Int」は「NSOpenGLPixelFormatAttribute」と同一ではありません
どこかで間違えた場合、それは表示されません。
opengl - QCRenderer.renderAtTime が「無効なフレームバッファ操作」で失敗する
QCRenderer を次のように初期化します。
コードのさらに下では、次のように renderAtTime を呼び出します。
常に次のエラー メッセージが生成されます。
Quartz コンポジションは、Quartz Composer で問題なく動作するシンプルな GLSL シェーダーです。以下は、Quartz Composer ウィンドウのスクリーンショットです。
私が見つけることができるこれについては、インターネット上にはあまりありません。ここに誰かが何かを知っていることを願っています。
ちなみに、QCRendererを次のように初期化できることは知っています
しかし、GPU のマルチサンプリング機能を利用して、アンチエイリアス処理された画像を取得したいと考えています。これは、4 倍のサイズでレンダリングしてから手動で画像を縮小するよりもパフォーマンスが向上するはずです。
編集:ピクセル形式をに変更
view - NSOpenGLView - ウィンドウを移動するまでビューが更新されない
私は本当にこれに頭を悩ませています!
ビューでいくつかのアニメーションを実行するために、NSOpenGLView をサブクラス化しています。アニメーションとは、いくつかの画像をビューの左から右に移動することなどを意味します。
これが私がすることです
a) OpenGL システム コードを初期化します。
b) 開始時にタイマーを設定する
c) drawRect で自分のものをアニメーション化する
d) animateFrame メソッドは、さまざまな長方形の位置に画像を描画するだけです
ここに問題があります
アプリを起動すると、時間タイマーが起動され、drawRect が呼び出され、画像が描画されていることがわかります。
ただし、ウィンドウをドラッグしてウィンドウを移動すると、画像のアニメーションしか表示されません。ウィンドウがまだ静止しているときは、画像はフリーズしたままです。ウィンドウを移動すると、画像が動いていることがわかります...または、ウィンドウの焦点が外れて再び焦点が合った場合でも、画像の位置が変わることがわかります...
静的な場合、OpenGLView 自体が描画されていないように感じます...他に何をすべきかわかりません...
[[self openGLContext] flushBuffer]; を呼び出す必要がありますか? ビューが常に描画されるようにするにはどうすればよいですか?
誰かがここで何が起こっているのか、または私が見逃したものに光を当てることができますか?
助けていただければ幸いです。前もって感謝します!カミーFC
objective-c - GCController フレームワーク (OSX) が通知を生成しない
GCController フレームワークをプロジェクトに統合しようとしています。私は Objective-C にあまり詳しくないので、これがどのように機能するかについて無知であることをお許しください。
次のように、さまざまなコントローラー通知のオブザーバー メソッドを登録する NSOpenGLView を拡張するクラスがあります。
そして、私は非常に単純なハンドラーを次のように定義しました:
問題は、これらのイベント/通知が起動しないように見えることです。[GCController controllers] を調べると、完全に空です。
もちろん、コントローラーがなければイベントも発生しないのは当然のことです。
または、何らかの理由で、コントローラーが必要なイベントを生成できないだけです (ワイヤレスまたは USB 経由で、OS に登録されている PS4 コントローラーを使用しているため、ここで何が欠けているのかわかりません)。
これらの通知を有効にする必要がある他の場所はありますか? 何らかの方法で GCController フレームワークを初期化する必要がありますか?
macos - NSOpenGLView サブクラスがウィンドウのサイズを変更しない
ウィンドウのサイズを変更するときに NSOpenGLView を正しくサイズ変更しようとしましたが、説明できない奇妙な動作が続いています。次のようになります。
オリジナル(最初はどのように見えるか):
リサイズ後:
これは私のサイズ変更コードです:
私が使用しているのは、「glViewport(0, 0, m_width, m_height);」です。glDrawArrays() を呼び出すたびに;
誰でも助けることができますか?
swift - Swift、OpenGL、および glVertexAttribPointer
OpenGL の基礎のいくつかを学ぶために、このレポの Objective-C コードを Swift に翻訳しています。私はそれにまったく新しいです。フローティング長方形を使用して作業中の NSOpenGLView をコンパイルして生成する作業中のプロジェクトがありますが、色が間違っています。glVertexAttribPointer
問題を頂点とカラー データを指す関数の使用に絞り込みました。
頂点と色のデータを保存する方法は次のとおりです。
glVertexAttribPointer
翻訳しようとしている関数の Objective-C バージョンは次のようになります。
Objective-C バージョンでは、offsetof
マクロを使用して、これらの関数のポインター パラメーターを設定します。Swift はマクロを許可していないので、その代わりに何を使用するかを考えています。私はnil
次のように を渡そうとしました:
しかし、そうすると、カラー データ配列は位置データで満たされます。オフセットは考慮されないため、位置と色の両方の属性に位置データが使用されます。
次のように、使用を提案するこのスタックオーバーフローの回答を見つけwithUnsafePointer
て試してみました。
しかし、それはディスプレイ全体をクラッシュさせ、強制シャットダウンと再起動を必要とします.
次に何を試せばよいかわかりません。私が取り組んでいる完全なコードは、こちらから入手できます。
編集:
また、次のように、最初のデータ ポイントへのポインターを取得して 4GLfloat
秒進めてみました。
ディスプレイはクラッシュしませんが、画面には何も描画されません。