問題タブ [sharpdx]
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.
gdi+ - GDI+ DrawImage を PInvoked GDI と透過 PNG に置き換えます。
C# でイメージ サービスを作成しました。このサービスは、ベース レイヤー イメージ (JPG) を受け取り、もう 1 つ透明な PNG (32 ビット) をレイヤー化し、最終的な JPG イメージを出力します。この関数から最後のミリ秒をすべて絞り出そうとしていますが、GDI+ の DrawImage 呼び出しでコードがボトルネックになっています。マネージ コードは次のとおりです。
ここで、P/Invoke で GDI を直接呼び出すことによって得られるパフォーマンスの向上について読み、DrawImage 呼び出しを置き換えることを試みました。単体テストを作成して、JPG をロードし、その上に 1 つの透明な PNG を重ねるという同じ機能を再現しようとしました。
参照: http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/29582142-0068-40dd-bd99-4b3883a76350
しかし、これは階層化されたイメージを生成できません。ベースJPGなしのPNGのみ。どうすればいいですか?ストレート GDI に関して言えば、私は自分のリーグから少し外れています。
asp.net - SharpDXを介してDirect2D画像をレンダリングする場合、ファイルの代わりにメモリストリームをどのように使用しますか?
セットアップ
Direct *ライブラリのマネージラッパーであるSharpDXを使用して、ビットマップをレンダリングし、PNGとして保存する特定のスクラッチプログラムについて考えてみます。
このプログラムを実行すると、プログラムの作業ディレクトリに「test.png」ファイルが作成され、次の美しい画像が表示されます。
質問
素晴らしいです。GDI+の代わりにDirect2Dを使用して画像をレンダリングしました。これは、ASP.NETアプリケーションのコンテキストでよりサポートされていると思われます。さらに、Direct2Dは新しい注目度です。
Stream
このような画像をレンダリングし、PNGをまたはbyte[]
配列として返し、ファイルシステムに書き込む代わりに、レンダリングおよびエンコード操作全体をメモリ内で実行する関数を作成したいとします。これは、Web要求に応答するためのものです。ファイルシステムを経由せずにブラウザに直接ストリーミングするのは理にかなっています。
GDI +では、これをMemoryStream
非常に簡単に行うことができDataStream
ましたが、バッファのサイズを知らなければ、SharpDXでの使用方法を理解することはできません。
- P / Invokeを実行し
CreateStreamOnHGlobal
、それを使用しIntPtr
てビルドする必要がありますDataStream
か? DataStream
私が見逃している過負荷はありますか?- エンコードされたPNG画像を保持するために必要なバッファを事前に計算する簡単な方法はありますか?
- それとも、ファイルシステムの処理をやり直す必要がありますか?
助けてくれてありがとう!
c# - Winforms コントロールのペイント メソッドをオーバーライドしてテクスチャにペイントするにはどうすればよいですか?
3D アプリで Winforms (および最終的には HostElement 経由の WPF) を使用するために、Winforms を SharpDX プロジェクトと統合しようとしています。
次のことができるように、コントロールまたはフォームを作成または構成する必要があります。
を。
b.テクスチャにレンダリングします (スプライトとして表示できます*) 。コントロールがアクティブでないときに、入力をフィルター処理してマウス/キーボード イベントを削除します。
OnPaint と OnPaintBackground をオーバーライドするために Control と Form をサブクラス化しようとしましたが、これらは子コントロールには影響しません。さらに言えば、フォームの境界線にも影響を与えません (たとえそれらがあったとしても、私がまだ残っているので、それらだけでは十分ではありません)。 「親」が描かれていると思われる白い四角)。
コントロールまたはフォームの画面への描画を停止し、代わりにビットマップのみに描画するにはどうすればよいですか? (たとえば、ツリーが描画される前に Graphics をオーバーライドできる方法はありますか?)
* Winforms は真の透明度をサポートしていないため、(コントロールを画面にレンダリングするのではなく) この方法で行う必要があるため、ピクセル シェーダーで色分けされたピクセルをクリップする必要があります。
(確認するために、特に DirectX テクスチャを意味しているわけではありません。単純な System.Drawing ビットマップに満足しています (実際には好むでしょう))。
c# - WindowsストアアプリでSharpDXを使用してテクスチャを読み込む
C#ゲームをOpenTK(OpenGL)からSharpDX(DirectX)に変換し、Visual Studio 2010から起動して実行しました。また、Windows 8DeveloperPreviewのMetroのVisualStudio11からも起動して実行しています。ただし、Metroビルドにはまだテクスチャがないため、現在、ポリゴンは単純に色付けされています。問題は、イメージのロードに使用されるメソッドがMetroDLLにないことです。これらのメソッドはすべて、Windows StoreアプリのTexture2Dクラス(Resourceクラスから継承)にはありません。
これらが最終的にMetroに実装されるかどうか誰かが知っていますか?または、私が使用できる別のアプローチはありますか?これまでDirectXやSharpDXのことを知らなかったので、まだ耳の後ろでとても濡れていることを覚えておいてください。
SharpDXのヘルプや情報を見つけるのは簡単ではありません。これは、C#を使用したMetroでの3Dの優れたソリューションのように思われるためです。
c# - SharpDX、DirectWrite、および Windows フォーム
DirectWrite を使用して WinForm アプリの PictureBox にテキストをレンダリングできますか?
私は SharpDX を使用しており、DirectWrite のサンプルを試して、できる限り簡単に動作するケースを構築しようとしました。
Form を作成し、pictureBox のみを追加しました。次に、次のコード。フォームは表示されますが、PictureBox には何も表示されません。
どんなガイダンスでも大歓迎です。
ありがとう!
c# - SharpDXRenderLoopを終了する
SharpDXにはRenderLoop
、レンダリングループで特定のデリゲートを実行するがあります。
私がする必要があるのは、なんとかしてレンダリングループを終了することです。
return
それは現在のループの反復を終了するだけなので、私はただできません。
c# - 効率的な DirectX レンダリング
複数の 2-D 形状をサーフェスにレンダリングし、ユーザーがこれらの形状を操作できるようにする DirectX 9.0 コントロールを作成しようとしています。これまでのところ、さまざまな色の 100 万個の三角形をグリッドにレンダリングすることができました。ユーザーはマウスを使用して、このグリッドをパンおよびズームできます。しかし、待ってはいけません..私はこれを非効率的な方法で行っていることを知っています...
現在
、各三角形の頂点バッファがあり、レンダリングごとにストリームソースを設定し、プリミティブをジャイアントに描画します-ループ。実験として、1 つの三角形を含む頂点バッファーを作成してみました。別の for ループで、ワールド トランスフォームを変更してプリミティブを描画しました。パフォーマンスはひどかった。
私が本当に必要としているのは、いくつかのユニークな形状 (約 100) を保存し、それらを世界中で 1,000 回または 10,000 回以上スタンプする方法です。また、形状の単一インスタンスの色を変更できるようにしたいと考えています。派手な照明/テクスチャ/またはそのようなものは必要ありません。シンプルな色ばかり。
では、これを実現するための典型的な DirectX の方法は何ですか?
c# - Windows8リリースプレビューでSharpDXオーディオサンプルを実行するとクラッシュする
最新のSharpDXv2.2をダウンロードし、SharpDXSamples.slnでサンプルをビルドしました
XAudio2を使用する例を実行しようとすると、
サンプルは次のエラーでクラッシュします
スタックトレースは次のとおりです。
何が起こっているのかについて何かアイデアはありますか?他のライブラリをインストールする必要がありますか?
c# - ゲーム開発のための SharpDX と SlimDX の比較?
ゲーム開発に最適な API を提供するのはどれですか? どのライブラリが使いやすく、高速で、より多くのドキュメントがありますか?