問題タブ [quartz-composer]

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 に答える
285 参照

cocoa - QuartzComposerとMacRubyでのforKeyPathの問題

MacRubyとCocoaを使用した値の設定で問題が発生しています。QCViewとQCPatchControllerをXIBに挿入し、コンポジションをQCPatchControllerにロードしました。すべてが実行されていますが、QCViewで公開された入力にアクセスできません。

エラーが発生しました:

私は困惑しています。MacRubyフォーラムを検索してみましたが、うまくいきませんでした。

アドバイスありがとうございます

0 投票する
3 に答える
952 参照

bash - SED、最後のファイル名を取得する

これはSEDの問題です。

Quartz Composer(Mac OSX)スクリプトで次の作業を行っています。

  1. ディレクトリから最後の.logを開きます。
  2. そのファイルの最後のテキスト行を取得し、その最初の24文字を削除します。
  3. 最後の.log内に新しい行が作成されるたびに、最後の行を表示します

これはとても簡単だと思います。現時点では、これをQCで行っており、ほぼ機能しています。しかし、 getFileName.shgetLastLineOfLog.shの両方のSEDコマンドに問題があります

getFileName.sh

ここで必要なのは、最後の.logファイルを開くことです。この名前構造は127.0.0.1、NUMBER.logで、NUMBERセクションは5桁の数字です。数値が大きいほど、.logファイルは新しくなります。これで、最初の.logファイルだけが開きます。

それを行うための正しいコマンドをSEDに書き込む方法を知っていますか?

getLastLineOfLog.sh

この2番目のファイルでは、ロードされた.logの最後のファイルを取得し、最初の24文字なしでエコーしようとしました。動作しますが、新しい.log.logを作成します。(など)関数が通過するたびにファイルする、避けたいこと。

SEDコマンドの結果を新しいファイルに出力する必要がありますか?どうすればそれをできるだけ簡単に行うことができますか?

前もって感謝します。

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

quartz-composer - Quartz Composer、テキストファイルのループリロード(コマンドラインツール)

プレーヤーから現在再生されている曲を表示するために、最新の.logファイルの最後の行をロードする.qtzがあります。

例として2つの.logファイルを含むソースを次に示します。LastTrack.zip(.zip内の手順を読んでください)

動作しますが、手動です。最後に再生された曲を取得するには、ビューアから再度実行する必要があります。そうしないと、.logに新しいトラックがあったとしても、常に同じテキストが表示されます。

自動的に動作させる方法があるかどうか知りたいです(LFOとPulseを試してみましたが、結果が得られず、スクリプトでエラーが出力されました)。

両方のコマンドラインツールパッチを手動でLFO/PulseとEnable/Disableのプラグを抜いてみました。

「最新の.logファイルを取得する」パッチで実行すると、次のエラーが出力されました。

例外が発生しました:

* -[NSConcreteTaskterminationStatus]:タスクはまだ実行中です

0x85b9bc55:-[QCContext nextExecutionTimeForPatch:time:arguments:] 0x85b9b9fe:-[QCGraphicsContext nextExecutionTimeForPatch:time:arguments:] 0x85b9b7e1:-[QCOpenGLContext nextExecutionTimeForPatch:time:arguments:] 0x0000d5f2 [NSViewの_drawRect:クリップ:] 0x84ad58bc: - [NSViewの_recursiveDisplayAllDirtyWithLockFocus:visRect:] 0x84ad5c26: - [NSViewの_recursiveDisplayAllDirtyWithLockFocus:visRect:] 0x84ad3f8e: - [NSViewの_recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:上面図:] 0x84ad4e5a: - [NSViewの_recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect: rectIsVisibleRectForView:topView:] 0x84ad4e5a:-[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] 0x84ad3ab0:- [NSThemeFrame _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:上面図:] 0x84ad0362: - [NSViewの_displayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:] 0x84a49b9a: - [NSViewのdisplayIfNeeded] 0x84a44a46:_handleWindowNeedsDisplay 0x85471b37:__CFRunLoopDoObservers 0x8544d464:__CFRunLoopRun 0x8544cdbf:CFRunLoopRunSpecific 0x8470591a:RunCurrentEventLoopInMode 0x8470567d:ReceiveNextEventCommon 0x847055d8 :BlockUntilNextEventMatchingListInMode 0x84a19e64:_DPSNextEvent 0x84a197a9:-[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] 0x849df48b:-[NSApplication run]__CFRunLoopDoObservers 0x8544d464:__ CFRunLoopRun 0x8544cdbf:CFRunLoopRunSpecific 0x8470591a:RunCurrentEventLoopInMode 0x8470567d:ReceiveNextEventCommon 0x847055d8:BlockUntilNextEventMatchingListInMode 0x84a19e64:_DPSNextEvent__CFRunLoopDoObservers 0x8544d464:__ CFRunLoopRun 0x8544cdbf:CFRunLoopRunSpecific 0x8470591a:RunCurrentEventLoopInMode 0x8470567d:ReceiveNextEventCommon 0x847055d8:BlockUntilNextEventMatchingListInMode 0x84a19e64:_DPSNextEvent

「.logファイルの最後の行を取得する」パッチで実行すると、次のエラーが出力されました(同じだと思います)。

例外が発生しました:

* -[NSConcreteTaskterminationStatus]:タスクはまだ実行中です

0x85b9bc55:-[QCContext nextExecutionTimeForPatch:time:arguments:] 0x85b9b9fe:-[QCGraphicsContext nextExecutionTimeForPatch:time:arguments:] 0x85b9b7e1:-[QCOpenGLContext nextExecutionTimeForPatch:time:arguments:] 0x0000d5f2 [NSViewの_drawRect:クリップ:] 0x84ad58bc: - [NSViewの_recursiveDisplayAllDirtyWithLockFocus:visRect:] 0x84ad5c26: - [NSViewの_recursiveDisplayAllDirtyWithLockFocus:visRect:] 0x84ad3f8e: - [NSViewの_recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:上面図:] 0x84ad4e5a: - [NSViewの_recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect: rectIsVisibleRectForView:topView:] 0x84ad4e5a:-[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] 0x84ad3ab0:- [NSThemeFrame _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:上面図:] 0x84ad0362: - [NSViewの_displayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:] 0x84a49b9a: - [NSViewのdisplayIfNeeded] 0x84a44a46:_handleWindowNeedsDisplay 0x85471b37:__CFRunLoopDoObservers 0x8544d464:__CFRunLoopRun 0x8544cdbf:CFRunLoopRunSpecific 0x8470591a:RunCurrentEventLoopInMode 0x8470567d:ReceiveNextEventCommon 0x847055d8 :BlockUntilNextEventMatchingListInMode 0x84a19e64:_DPSNextEvent 0x84a197a9:-[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] 0x849df48b:-[NSApplication run]__CFRunLoopDoObservers 0x8544d464:__ CFRunLoopRun 0x8544cdbf:CFRunLoopRunSpecific 0x8470591a:RunCurrentEventLoopInMode 0x8470567d:ReceiveNextEventCommon 0x847055d8:BlockUntilNextEventMatchingListInMode 0x84a19e64:_DPSNextEvent__CFRunLoopDoObservers 0x8544d464:__ CFRunLoopRun 0x8544cdbf:CFRunLoopRunSpecific 0x8470591a:RunCurrentEventLoopInMode 0x8470567d:ReceiveNextEventCommon 0x847055d8:BlockUntilNextEventMatchingListInMode 0x84a19e64:_DPSNextEvent

よろしくお願いします。

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

javascript - 要素が繰り返される回数をカウントするJavascript

次のコード スニペットは、Quartz Composer の JavaScript パッチに含まれており、構造全体をループして、各要素がいくつあるかを調べ、各要素の合計の配列を出力する必要があります。StructureIn をループしてタイトル 0 と比較し、タイトル 0 をキーとして、繰り返し回数を値として作成および配列することができます。私がする必要があるのは、目的の配列を生成するために、すべての Title 要素 (em の 49 があります) をループする方法を理解することです。どんな援助でも大歓迎です。

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

objective-c - QCView から取得したスナップショットが空白の場合がある

QCViews でクオーツ コンポジションを再生するプログラムがあります。QCViews はセカンダリ スクリーンにあるため、メイン スクリーン (一種のコントロール スクリーン) に (小さい) コピーを表示する必要があります。

そのため、0.1 秒ごとにタイマーを起動し、QCView のスナップショットを取得して、結果の画像を NSImageView に設定します。

私の問題:

  • スナップショットは約 90% の確率で正確ですが、空白になることがあります。これが発生すると、この QCView から取得されたすべてのスナップショットは、stopRendering / startRendering が発生するまで空白になります。これは、まったく同じ構成の別の QCView が実行され、適切なスナップショットが提供されている場合でも発生します。

  • スナップショットが QCView と同期していないようです。より高い頻度でタイマーを起動しようとしましたが、何も変わりませんでした(空白の画像の主な問題に関連している可能性がある場合に備えて、これについて言及します)。

アイデアや指針はありますか?

編集:

私は再現しようとしました:最小限のプロジェクトを作成し、コードをコピーして貼り付けました:

ああ、私は問題を理解していません...

スナップショットは QCViews からは古くなっていますが、完全に良好です:(

スナップショットは現在の画像ではなく前の画像を取得しているようです:「システム時刻」->「時刻フォーマッター (format = ss)」->「文字列付きの画像」->「スプライト」を使用して単純な Quartz Composer クロックを作成しましたスナップショットは正確に 1 秒遅れています: 元の時計と同時に変更されますが、前の画像が表示されます ...

バグのようにも聞こえますが、無効な画像を引き起こすバグとはおそらく同じではありません...

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

performance - QCView 内の Quartz コンポジションがソフトウェアまたはハードウェアを介してレンダリングされるかどうかを検出します

Core Image が正常に「高速化」されていても、GPU では処理できず、ソフトウェア レンダラーにフォールバックする Cocoa Quartz コンポジションと GPU の組み合わせがあるような気がします。このような状況をどのように検出しますか?

または、より一般的には、コンポジションを実際に再生して FPS を測定することなく、特定のサイズの特定のコンポジションを処理するにはマシンの処理能力が低すぎることをどのように検出すればよいでしょうか?

(非表示のウィンドウでコンポジションを再生して FPS を測定することは、QCView がその状況を検出し、操作全体またはその一部を最適化する可能性があるため、うまくいかない可能性があります。また、今日それを行わなかったとしても、それを開始する可能性があります。 Apple からの次の更新では、信頼できない解決策になります。)

更新:徹底するために、順序付けされたが適切なサイズのウィンドウでコンポジションをフル解像度でテスト レンダリングするコードをいくつか作成し、レンダリングを強制的に[self startRendering];[self snapshotImage];[self stopRendering];. これには、最初は合理的に見えた時間がかかりましたが、このテストの実行では、遅いマシンが速いマシンよりも高速であることが判明しました。;) 実際には、低速のマシンはわずか 2.24 FPS で構成をレンダリングしますが、高速のマシンでは 27 FPS です。

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

objective-c - Objective-CおよびQuartzComposer; [qcViewpauseRendering]はBad_Accessを引き起こします

前もって感謝します。

Quartz Composerビュー(以下のqcView)があり、QCViewの中央に「ホーム」があることがわかるまで、画像(コードについて疑問がある場合は、アリの画像)をランダムな方向に移動します。アリが1インチずつ動くのを見るには、pauseRenderingが必要です。それがなければ、アリはその「家」に現れるでしょう。

これは、1匹のアリにとっては完全にうまく機能します。

方程式に別のアリを追加するときは、ディスパッチキューと2つのブロックを使用します。

このコードが実行されると、2人の叔母は同時に自宅に急いで行きます-私たちが探している正確な行動です。ただし、実行を停止して再度ビルドすると、[qcViewpauseRendering]メソッド内のどこかからすぐにExc_Bad_Accessを取得します。Clean&Buildの後、もう1回実行すると完全に機能します。pauseRenderingとresumeRenderingを削除すると、アリはすぐに自宅に現れます。

どうやら、QCView pauseRenderingメソッドにローカルな配列があり、それは絶えず拡大および縮小しており、単一のQCViewとそれにアクセスする複数のブロックを使用すると、問題の根本を確認できます。

QCViewのドキュメントを調べましたが、そこからインスピレーションを得られないようです。pauseRenderingに関するドキュメントは最小限です。誰もこれほどばかげたことを試したことはないと思いますが、誰かがQCViewを実際に変更した経験があり、私を正しい方向に向けることができることを願っています(エラー...「ANY!」を読んでください)。 。

[編集:「while(![qcView isPausedRendering])」のバリエーションを試しましたが、それが役立つ場合は。]

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

cocoa - 黒と白のピクセルを他の2色に変換するQCコンポジション

Quartz Composerについて学び始めたばかりです。最初に作成したいのは、白黒画像と2つのNSColorを受け入れ、黒のピクセルをNSColorに変更するCocoaアプリケーションで最終的に使用できるコンポジションです。 1とNSColor#2への白いピクセル。

QCで遊んでみましたが、すべてをまとめる方法がわからないようです。

私が理解した唯一のことは、画像フィルターテンプレートを使用する必要があることです。画像からピクセルを取得できる画像ピクセルパッチがあることはわかりますが、設定するパッチはありません。ピクセル。Pixellateパッチが必要になる可能性もあるようです...ただし、ソース画像は固定サイズのPNG画像のみであるため、無限のサイズの画像が生成されることを心配する必要はありません。

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

objective-c - QCView と QCPatchController を使用せずに公開されている Quartz 構成の値を観察する

NSView から継承されたカスタム ビューのサブレイヤーとして読み込まれている Quartz コンポジションを制御する方法を探していました。

手動で、公開された入力値を設定するために次のコードが機能することがわかりました。

だから私は公開された出力値を見る方法を見つけようとしていたのですが、オブザーバーがそれをやるべきかどうか疑問に思っていました. 次のように書かれています。

そして、これは同じクラスで:

しかし、うまくいきません。キーパスが間違っているか、このコードがまったく機能しない可能性があります:)
私の構成の公開された値を観察する方法はありますか?
手伝ってくれてありがとう。

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

plugins - Quartz Composer バーコードスキャナー

Leopard (10.5) で実行できる Quartz Composer バーコード スキャナー プラグインはありますか? 本の裏にあるタイプのバーコードをスキャンできるものが必要です。他のタイプのバーコードをスキャンする libdmtx を使用する DataMatrix プラグインを見てきました。