問題タブ [pixman]
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.
x11 - pixmanを完全に無効にする方法はありますか
腕のターゲットにpixmanをインストールしました。ベンチマークの目的で、pixmanを完全に無効にします(可能な場合でも!)。実際に削除せずにこれをうまく行う方法はありますか?
PIXMAN_DISABLEフラグを知っていますが、完全にオフにするのでしょうか、それとも動作方法が変わるのでしょうか(sse2のオンまたはオフの切り替えなど)。
c - Pixman 合成とアルファ ブレンディング
以下は小さなテスト プログラムです (リトル エンディアンのマシンで動作します)。
そのままで、結果はすでに私には奇妙です:
私が予想したように、塗りつぶしの色 #FFFFFFFF x マスク 0x80 = #FFFFFF80 なので、#9090FFFF の出力...
ここで、「cfill.alpha = uint16_t(0x80) << 8;」を変更して、塗りつぶしの色を #FFFFFF80 に設定するとします。、結果は本当に間違っているようです:
fill x mask => #FFFFFF40 と予想されるため、出力は #606060C0FF になります。
特に、アルファの低い入力色がターゲット画像の出力を明るくする方法を理解していません。
ここで何が間違っていますか?期待どおりに動作する別の PIXMAP_OP_xxx はありますか?
ありがとう。
alphablending - 事前乗算されたアルファ画像の不透明度を変更するには?
不透明度を変更する必要があるアルファ プリマルチプライ イメージがあります。画像に適用される不透明度の変更は、0.0 ~ 1.0 です。
このプロセスは、次の式を使用して簡単に実現できます。
ただし、私はこのコードを自分で書くことを避け、高度に最適化されたライブラリ pixman に仕事をさせようとしています。それらはさまざまなブレンドオプションを提供しますが、マスクの使用方法や使用するブレンドオプションがよくわかりません. MULTIPLY を使用してみましたが、予想どおり画像が暗くなりました...
どの潜在的なブレンドオプションを使用すべきかについてのアイデアはありますか?
これが実際の複合関数です。
pixman - pixman_region_init_rect のバグを修正
これはしばらく前から存在し、修正されたバグであることを私は知っています。しかし、私の状況は少し違うようです。ターミナル経由で gedit でテキスト ファイルを開くと、次のエラーが表示されます。
テーマを切り替えてもエラーが発生しないため、テーマが原因であることはわかっています。しかし、私は自分のテーマが本当に好きで、変更したくありません。代わりに、エラーの原因となっている行を特定して修正したいと思います。しかし、私はそれについて正確にどうすればよいのかわかりません。Android では、adb logcat を実行するだけで、問題の原因を確認できます。しかし、私は Android ではなく、シナモン デスクトップを実行している Linux Mint 17.2 を使用しています。それで、私の質問は、どうすればこのエラーをログに記録したり、何らかの形で追跡したりできるでしょうか?
c++ - 空の main() を持つプログラムはメモリを割り当てることができますか?
-lcairo
とにリンクするプログラムのメモリの問題を追跡してきました-lX11
。最後に、すべての行をコメントアウトしてmain()
、問題がないことを確認することにしvalgrind
ました。驚いたことに、そうではありません:
空の割り当てメモリを持つプログラムは、main()
到達可能なブロックで終わる可能性がありますか? この奇妙な問題を取り除く方法はありますか?
2d - 特定の角度で線形グラデーションを描く
関数を使用してlibpixmanで線形グラデーションを描画しようとしていpixman_image_create_linear_gradient()
ます。左から右、上から下にグラデーションを描画する場合は問題なく動作しますが、CSS で可能なように、特定の角度 (0 ~ 360 度) でグラデーションを描画する方法がわかりません。たとえば、45 度回転した線形グラデーションです。
p1
グラデーションの方向を定義するため、引数を使用する必要があると思いますp2
が、ドキュメントがまったくなく、これら2つのパラメーターを使用してグラデーションを回転させる方法が実際にはわかりません。
垂直グラデーションの場合、単純に設定します
そして、私が使用する水平グラデーションの場合
しかし、任意の回転にはどの値を使用すればよいでしょうか? ポイントに 2D 回転マトリックスを適用するだけでは正しく見えません。たとえば、640x480 のグラデーションを描画し、これを 45 度回転させると、ポイントになってしまいます。
グラデーションを正しい方向に描画しますが、グラデーションの両側に約 80 ピクセルの空白があるため、何か間違ったことをしているに違いありません。
誰かがこれを正しくする方法を教えてもらえますか?
ありがとう!
c++ - pixman ライブラリをビルドするとき、プロンプトに常に「xxx.h(std ヘッダーが見つかりません)」と表示されます。
Windows 10 システム、VS2015 を使用しています。今pixman-0.34.0をビルドしたいです。ここのチュートリアル: http://cairographics.org/end_to_end_build_for_win32/では、これらのプロンプト ラインを使用するように指示されています。
ただし、powershell(またはmsys64)は常にそれを教えてくれます
「pixman-0.34.0\pixman\pixman.h(105): 致命的なエラー C1083: インクルード ファイルを開けません: 'stdint.h': そのようなファイルまたはディレクトリはありません」
< stdint.h > が私のコンピューターに存在するため、これは非常に奇妙です! < stdint.h > を含む新しい .cpp ファイルを作成すると、正常にコンパイルできました。
すべてのソース コードを pixman のルート ディレクトリから VS のインクルード ディレクトリに移動しようとしました... プロンプトに < time.h > ファイルがないと表示されるようになりました。
インクルードディレクトリをどこかに設定する必要があると思いますが、その方法がわかりません。
今ではほとんど気が狂いそうです。私はそれを解決するために丸一日を費やしましたが、私の試みはどれもうまくいきません。
誰でも私を助けることができますか?