問題タブ [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# - C# で DirectDraw サーフェス メモリに直接アクセスする
ユーザー指定のバッファ (特定のメモリ アドレス) を定期的にイメージ データで満たすビデオ キャプチャ カードがあります。Surface.lpSurface ポインター アドレスを指定するだけで、キャプチャ カード ドライバーがフレームごとに新しい画像データを自動的に入力し、flip() して新しい画像を取得できるため、これは C++ で機能します。素敵なきれいなビデオ フィード。
問題は、私が C# に移植していて、同じことができるようにする必要があることですが、DirectDraw.Surface のマネージ バージョンには、サーフェス メモリ領域のメモリ アドレスを取得するためのメソッド/プロパティがありません。必要なのはこのアドレスだけです。C# を使用して取得する方法はありませんか?
windows - DirectDrawによるスクリーンショットはGDIの方法よりも高速ですか?
時間を節約するために、おそらく誰かがこれを試したか、どこかに関連する情報を見ました。
Win2000以降をサポートする必要があり、ターゲットPCにDirectXをインストールできないため、DirectXではなくDirectDrawについて質問する
graphics - DirectDraw の CreateSurface が x64 で E_INVALIDARG を返す
次のコードでは、x64 用にビルドすると hRet が E_INVALIDARG に設定されます。
同じコードは常に 32 ビットで問題なく動作します。入力の唯一の明確な違いは ddsd のサイズです。これは、ポインター サイズのため、64 ビット モードでは 4 バイト大きくなります。
(OSはwin7です)。アドバイスをありがとう。
c++ - エラーLNK2001:未解決の外部シンボル_IID_IDirectDraw2
私は直接描画を使用するレガシーコードを使用していますが、かなり恥ずかしい状況にあります。少し前にシステムを更新し、新しい状況(ddraw.dllのロード)に適応する必要があり、すべてが正常に機能しました。今日、私は変更したクラス(ファイル)を使用する別のレガシーソリューションを検討しましたが、上記のリンクエラーで立ち往生しています。プロジェクトのプロパティを確認して比較しましたが、それらはうまく継ぎ目があります。
これはdirectX初期化のコードであり、「厄介な」コードは太字です。
何か案は?なぜこれは1つのソリューションで機能し、このソリューションでは機能しないのですか?ああリンカー私はあなたを嫌います。
c# - DirectDraw ビデオ サーフェスの前にあると、「透明な」Windows フォームがちらつく
私の制御を超えて、いくつかの Windows フォームに TransparencyKey プロパティが設定されているアプリケーションがあります。これらのウィンドウが DirectDraw ビデオ サーフェスを持つ別のフォームを覆っている (その前にある) 場合、フォアグラウンド フォームがちらつきます (一部はフォームを表示し、一部は下のビデオを表示します)。問題は、TransparencyKey の色がアプリケーションのどこにも表示されないため、何も透明であってはならないということです。つまり、結果として、フォアグラウンド フォームが完全に不透明になるはずです。
Windows フォームと組み合わせたときに DirectDraw サーフェスがちらついた経験がある人はいますか? 私はこれに何週間も取り組んできましたが、成功しませんでした。ありがとう!
c++ - DirectDraw Blt 関数のパラメーター
単純な blt 関数:
私の質問は:
幅 'w' のバッファーがあるとします。dstL = 0 を指定します。dstR は何にする必要がありますか? w または w-1 ?
dstRが含まれているか含まれていないことを意味しますか?(< または <=) ?
windows-7 - Windows7 でのパレット モードでの Allegro 4.2.4 の破損
Windows 7 でパレット モード (256 色) を実行している Allegro 4.2.4 に問題があります。エクスプローラーを強制終了するインターネット ソリューションを見つけましたが、実際に機能していますが、エンド ユーザーがゲームをプレイしようとしたときにエクスプローラーを強制終了すると予想するのはばかげています。 .
次に、DDraw.dllをハッキングされたバージョンに置き換えるソリューションを見つけましたが、どちらも機能しません.DDHackは、アプリケーションの起動後に画面がまったく表示されないだけです.
次に、レジストリハックを追加する解決策を見つけました:
しかし悲しいことに、それも機能しません。パレットはすべての虹色でちらつき続けます。
アプリケーション全体を別のプログラミング ライブラリに移植する以外に解決策はありますか? パレットに触れずに Vista/W7 で DDraw の問題を修正することは可能ですか? そうでない場合、Vista/W7 でこのような問題を起こさずにパレット プログラミング (パレットを必要とするゲームをやっています) を提供してくれるライブラリはどれですか?
もう 1 つの解決策を知っています。Allegro 4.2.4 アプリケーションを DOS アプリケーションとしてコンパイルし、DosBox で実行できます。残念だけど今はそれしか思い浮かばない…
他の解決策を前もってありがとう!
c++ - DirectDrawフルスクリーンアプリケーションの上に別のアプリケーションを表示する
DirectDraw関数を表示に使用しているフルスクリーンアプリケーションを使用していますが、正常に動作しています。ここで、独自のウィンドウで別のアプリケーションを表示したいのですが、他のアプリケーションは、起動時にフルスクリーンのDirectDrawアプリケーションの背後に隠れています。DirectDrawフルスクリーンアプリケーションを閉じた場合にのみ、他のアプリケーションにアクセスできます。
実行中に直接描画フルスクリーンアプリケーションから別のアプリケーションに切り替えることは可能ですか?フルスクリーンのDirectDraw関数の上に他のアプリケーションのウィンドウを表示し、他のウィンドウが閉じられたら再開する方法はありますか?
ありがとう、よろしく
direct2d - Direct2D を使用してピクセルを操作する方法
Direct2D を使用してピクセルを操作する効率的な方法の例を誰かが提供できますか?
たとえば、レンダー ターゲットですべての緑のピクセル ( RGB = 0x00FF00
) を赤のピクセル ( ) と交換するにはどうすればよいでしょうか? RGB = 0xFF0000
標準的なアプローチは何ですか?そのために使用することは可能ID2D1HwndRenderTarget
ですか?ここでは、ある種のハードウェア アクセラレーションの使用を想定しています。ピクセルを直接操作するには、別のオブジェクトを作成する必要がありますか?
DirectDraw を使用して、論理演算でBltFast
メソッドを使用します。IDirectDrawSurface7
Direct2D に似たものはありますか?
もう 1 つのタスクは、各点の位置と色が数学関数の結果である複雑な画像を動的に生成することです。例として、すべてを単純化して描画してみましょうY = X ^ 2
。Direct2D でそれを行う方法は? 最終的には複雑な関数を描く必要がありますが、誰かが簡単な例を教えてくれたらY = X ^ 2
.
windows - 画面の向きを変更した後、DirectDraw アプリケーションが真っ暗になる
ユーザーがアプリケーションのボタンを使用して画面を回転させると、色が黒くなるdirectdrawアプリケーション(c)があります。ボタンを使用enumdisplaysettings
してこれを行います。Nvidia と ATI の両方でこれをテストしましたが、問題は解決しません。
directdraw アプリケーションを「displaysettings-proof」にする方法はありますか? 画面が回転したら、表示を元に戻すコードを追加できますか?