問題タブ [directdraw]
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.
c++ - DirectX — DirectDraw サーフェス Flip() の類似物はありますか?
提供された 2 つの画像 (3D モデルではない) に基づいて、200 Hz の画面にアナグリフ (立体画像) を描画するアプリケーションを構築しています。したがって、再描画の速度の整合性は非常に重要です。DirectDraw サーフェスとその Flip() (現在のサーフェスのイメージをセカンダリ イメージに切り替える) で最高の結果を達成しました。
しかし、DirectDraw は非常に時代遅れであり、最新の DirectX ライブラリに基づいてこの機能を再実装する方法を探しています。しかし、クワッドを作成したり、テクスチャとして絵を描いたり、2D 画像を出力するためだけに 3D 射影行列を計算したりしたくありません。
これが DirectX でどのように実行できるかについてのスニペットがあれば、本当にうれしいです。前もって感謝します。
linux - Linuxコマンドラインで画像をddsに変換する
jpeg 形式の画像がたくさんあり、それらを .dds (DirectDraw サーフェス) にバッチ変換したいと考えています。
このような変換を行うためのコマンド ライン ツールを知っている人はいますか?
c++ - GetProcAddressを使用してDirectDrawのプロシージャアドレスを取得する
IDirectDraw7 :: SetCooperativeLevelメソッドのドキュメントに記載されているように、
LoadLibraryを使用してDdraw.dllに明示的にリンクしてから、GetProcAddressを使用してSetCooperativeLevelメソッドにアクセスする必要があります。
発言で。ただし、これを実行しようとすると(以下のコード)、機能しません。私は何か間違ったことをしていますか?
c++ - COM インターフェイスの Vtable で特定の関数のインデックスを見つける
SetCooperativeLevel
DirectDraw オブジェクトで関数をフックしようとしています。私の目標は、この質問API Hook on a COM object function?の目標と非常に似ています。IDirectDraw
ただし、唯一の問題は、の vtable for の正確なオフセットがわからないことですSetCooperativeLevel
。<ddraw.h>
おそらくまたはプログラムからこれを収集する方法はありますか?
のインターフェイス宣言はIDirectDraw
次のとおりですが、これが vtable にどのように対応するかはわかりません。
png - Compressonator は dds をアルファチャンネル付きの png に変換します
アルファチャンネルでddsをpngに変換するコマンドは何ですか?
このコマンドを使用する場合:
出力pngはアルファチャンネルを使用しません。を開きTheCompressonator.exe
、[編集] -> [アルファ チャンネルの作成] を選択し、ファイルを選択してオリジナルを png に保存すると、png ファイルにはアルファ チャンネルが含まれますが、変換が必要な dds ファイルがたくさんあります。
wpf - WPFで汚れた領域を検出して取得していますか?
WPF アプリケーションで再描画/ダーティ領域を取得する方法はありますか?
視覚化するだけでなく、プログラムでそれらを作成したいと思います。
私の目標は、一種のリモート アプリケーション用に WPF アプリでいつ、何が再描画されたかを知ることです。
directx - DirectDrawSurface (DDS) ピッチ計算
この 2 日間、DDS フォーマットを研究し、DDS テクスチャ ローダーを書いていたのですが、好奇心だけで、「ピッチ計算式」という当たり前のことに出くわしました。正当な理由もなく、それらがそのまま正確に指定されている理由について、私は本当に興味があります。
たとえば、すべて S3TC に基づくブロック圧縮形式 (DXT#n、BC#n) の場合、計算方法は次のようになります。
max( 1, (幅+3) / 4 ) * ブロックサイズ
したがって、max は 2 つの値のうち大きい方を示しますが、なぜそれが機能するのでしょうか? テクスチャの幅に 3 を追加してから、「ニブル境界」に分割するのはなぜですか?
一方、いくつかのレガシータイプは次のとおりです。
((幅+1) >> 1) * 4
したがって、右シフトは基本的に基数をバイナリベースで移動するか、2 で割ることです。では、なぜ 1 を足してから 2 で割って 4 を掛けるのでしょうか? 右端の 2 ビットを失うには?
最後に、他の形式の場合:
( 幅 * bpp + 7) / 8
ピクセルあたりのビット数と最も近いバイト境界分割は理解していますが、なぜ 7 を追加するのですか?
誰かがこれについてもう少し書くことができますか? または、私を正しい方向に向けますか?
directx - DirectDraw (2d) オーバーレイを使用した Direct3D 11
基本的に、3D スワップチェーンで 2D 描画を行いたいと考えています。しかし、私のコードは別のプログラムに挿入され、ソース コードはありません。
描画はできますが、スワップチェーンが DXGI_FORMAT_B8G8R8A8_UNORM (BGR) 形式で作成されている場合にのみ機能します。
もともと、プログラムは DXGI_FORMAT_R8G8B8A8_UNORM (RGB) を使用しており、BGR に切り替えると、プログラムはウィンドウ/画面の外側にレンダリングされます。ほとんどすべてが大きくなっています。
RGB を使用して Direct3D 11 を 2D と相互運用する方法、またはアプリケーションのレンダリングを BGR で正しく動作させる方法はありますか?
c# - 直接描画に相当する Linux
ac# プログラマーとして、私は Microsoft に慣れていますが、Linux 側が本当に好きで、Mono はその世界をよりよく開いてくれます (imo)。
アクティブなビデオを表示するために直接描画のサポートが必要なアプリがありますが、Linux で同等のもの (さらに良いことに、Mono はどのようなサポートを提供するのか) に興味がありますか?