問題タブ [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.

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

directx - IDirectDraw::GetCaps が DDERR_INVALIDPARAMS を返す原因は何ですか?

IDirectDraw::GetCaps が返さDDERR_INVALIDPARAMSれる (別名E_INVALIDARG、別名 0x80070057) を含むこの小さなコード スニペットがあります。

読み込まれた dll は ddraw.dll 5.03.2600.5512 (xpsp.080413-0845) です。

ディスプレイ ハードウェアに 3D アクセラレーション (DDCAPS_3D) があるかどうかを確認する必要があります。

問題を解決する方法がわかりません。スニペットはとてもシンプルですが、何か不足していますか?

どうもありがとうございました。

アレッサンドロ

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

directx - DxDiag「Direct3D アクセラレーション」検出を行う C++ 関数

Microsoft DxDiag は、システムに「Direct3D アクセラレーション」があるかどうかを検出できます。

システムにその機能がない場合、DxDiag は「Direct3D アクセラレーションが利用できません」と表示し、コンソールに「Direct3D 機能が利用できません。ドライバーがハードウェアの製造元から提供された最終バージョンであることを確認する必要があります」と表示します。

C++ 関数でも同じようにしたいと思います。

いくつかのテストを行いましたが、次の関数が機能しているようです。

他に良いアイデアはありますか?

ありがとうございました。

アレッサンドロ

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

windows-mobile - BltFastはWindowsMo​​bileDirectDrawでサポートされていますか?

BltFastメソッドにアクセスできるように、WindowsMo​​bileデバイスでIDirectDrawSurface5にアクセスできますか?

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

directx - DirectXでブリットをストレッチすると、エッジがギザギザになります

固定解像度(たとえば800x600)でウィンドウまたはフルスクリーンで実行されるDirect3Dアプリがあります。ワイドスクリーンモードをサポートするために、800x600でバックバッファーにレンダリングしてから、Bltを使用してフロントバッファーの一部(通常は1280x720など)に最終フレームを描画します。したがって、800x600の画像は960x720に引き伸ばされ、アスペクト比。

これは正常に機能しますが、一部のビデオカード/ OS /ドライバーの組み合わせ(nVidia Quadro、DX11、Windows 7)では、ブリットがポイントサンプリングを使用して行われているように見え、エッジがギザギザになり、最終的な画像が全体的に滑らかになりません。

これを回避する方法はありますか?たとえば、スケールアップするときにBltに線形フィルターを使用するように強制しますか?

(注:元の800x600アセットを最後にストレッチする代わりに960x720にレンダリングできることはわかっていますが、他にも欠点があるため、最後にストレッチすることをお勧めします)

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

directdraw - DirectX 6.1 (DDraw4) のデバイス キャップをプログラムで取得する

DirectX 6.1 ライブラリの周りに Windows32 フックを DirectX 9.0c に書き込んでいます。アイデアは、DX 6.1 3D デバイスへのすべての呼び出しを Direct 9.0c への呼び出しに置き換え、いくつかのカスタム コードを挿入することです。これにより、パッチを適用している古いゲーム (99 年) でシェーダーやポストエフェクトなどを使用できるようになります。

古い DX 6.1 3D デバイスは、DDraw モジュールを作成することによって作成されました。その後、ゲームはデバイスの上限を列挙しています。私のモジュールでは、DDraw モジュール全体がスキップされ、3D ビューが初期化されます。したがって、DDraw デバイスをまったく持っていないため、必要な Ddraw4 デバイス キャップをゲームに与えることができないという問題があります。

私の質問は、DDraw4 デバイスを初期化せずに DDraw4 デバイス キャップを取得する方法です。おそらく、固定リストを作成してゲームにフィードするだけで十分でしょうが、そのリストに何を入れるべきかわかりません (そうあるべきだと思ったものを与えたところ、ゲームが終了しました - ロガーは、デバイス キャップの直後であることを示しました)チェック済み)

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

graphics - DirectDrawオーバーレイ

DirectDrawオーバーレイの実用的な例(コード)を持っている人はいますか?画面上で何かが動くように。DirectDrawオーバーレイの使用例を見つけようとしましたが、見つかりませんでした。

ありがとうございました。

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

windows-7 - テキストを上にして動画を描画する

私はアプリケーションに取り組んでいますが、解決策が見つからないように見える問題があります。アプリケーションは vc++ で書かれています。私がする必要があるのは、その上にテキストを含む YUV ビデオ フィードを表示することです。

現時点では、GDI を使用して OnPaint メソッドでテキストを描画し、DirectDraw オーバーレイでビデオを描画することで正しく動作します。多くの問題を引き起こすため、オーバーレイを取り除く必要があります。一部のビデオ カード、Vista、7 などでは動作しません。

同じことをより互換性のある方法で完了する方法がわかりません。バック バッファーを使用して DirectDraw を使用してビデオを描画し、それをプライマリ バッファーに問題なくコピーできます。ここでの問題は、ビデオが更新される回数が原因で、GDI で描画されているテキストが点滅することです。うまく機能するので、可能であればテキストをそのまま描画するコードを保持したいと思います。

テキストを DirectDraw バッファまたはメモリ バッファなどに直接描画してから、バック バッファに blt する方法はありますか? 別の方法をまとめて検討する必要がありますか?2 つの重要な OS は XP と 7 です。何かアイデアがあれば教えてください。テストします。ありがとう。

0 投票する
4 に答える
1775 参照

c++ - DirectX9、DirectDraw、最適化?

まず、ゲームをプログラミングしています。現在、render関数には、2つの異なる関数への2つの呼び出しがあります。1つはテキストをレンダリングし、もう1つはスプライトをレンダリングします。

私のコンピューター(AMD Phenom(tm)II X4 955プロセッサー(4 CPU)、〜3.2GHz、4096MB RAM DDR2、NVIDIA GeForce GTX 285)では、約200スプライトをレンダリングする場合は約2200 FPS、約100FPSの場合はレンダリング速度があります。約14,500をレンダリングします。

レンダリングしている各オブジェクトの情報を格納するためにベクトルを使用しており、多くの描画呼び出しで1つのスプライトを使用しています。

C++用に完全に最適化されたVS2008リリースモード。左右が時期尚早に最適化されないと聞いたことがありますが、現時点では、それは私にとってはうまく機能していますが、特定のコンピューターではあまりうまく機能していません。

不確定な方法で、フレームごとにベクトルから物事をプッシュおよびプルしているため、配列のベクトルを変更することは想像できません。ほぼランダムに。

私はフロートとダブルを試しましたが、速度も同じです。

DirectXではなくDirectDrawとSpriteRenderメソッドを使用した場合は異なりますか?DirectDrawとDirectXの違いがわからないので、100%考えるべきではありません。

ゲームは平均的なコンピューターで問題なく動作しますが、私のゲームと比較しているのは東方です。東方は私が試した中で最も弱いコンピューターで60FPSで実行されますが、私のゲームは36〜42FPSより速く実行されません。DirectXとC++に慣れていないので、自分が間違っていることを想像することはできません。

この件に関する支援は素晴らしいものですが、残念ながら私はしばらくの間、情報を追加したり質問に答えたりすることはありません。

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

c++ - Directdraw: ビデオ ストリームの回転

問題

Windows Mobile / Directdraw: ビデオ ストリームの回転

ビデオのプレビューは機能しています。今必要なのは、画像を回転させる方法だけです。CTransformFilterこれを処理する唯一の方法は、カメラ画像を回転させるカスタム フィルターを作成することだと思います。この問題を解決するのを手伝ってくれるなら、例えば、限られた DirectDraw の知識でこのフィルタを開発するのを手伝ってくれれば、報奨金はあなたのものです。

背景/前の質問

現在、モバイル デバイス (HTC HD2、Windows Mobile 6) 用のアプリケーションを開発しています。プログラムが行う必要があることの 1 つは、内蔵カメラを使用して写真を撮ることです。以前はCameraCaptureDialog、Windows Mobile 6 SDK が提供する を使用してこれを行っていましたが、顧客はよりユーザー フレンドリーなソリューションを望んでいます。

アイデアは、コントロールでカメラのビデオ ストリームをプレビューし、コントロールがクリックされたときに、カメラの写真機能を使用して高解像度の写真 (>= 2 メガピクセル) を撮影することです。このトピックについて調査を行った結果、これを達成する最善の方法は Direct Draw を使用することであることがわかりました。

マイナス面は、ネイティブ Windows API を実際に使用したことがないことと、私の C++ がかなり悪いことです。これに加えて、私はどこかで、HTC 携帯電話の Direct Draw サポートは特殊性が悪く、高品質の写真を撮るには文書化されていないネイティブの HTC ライブラリ呼び出しを使用する必要があることを読みました。

良いニュースは、会社が上記の仕様を満たすコントロールを開発することを申し出たことです。彼らは約 10 日かかると見積もっており、妥当な時間内にこのコントロールを開発できるかどうかの議論につながりました。

どの代替案が優れているかを研究するのが今の私の仕事です。言うまでもなく、アーキテクチャ全体を研究してデモを開発するには、あまりにも時間がかかりすぎるため、次のような疑問が生じます。

質問はもはや関係ありません!

  • 同様のプロジェクトの経験がある人はいますか? あなたの推奨事項は何ですか?
  • ビデオのプレビューと画像のキャプチャを処理する Direct Draw のソース コードの例はありますか?
0 投票する
1 に答える
1108 参照

windows-mobile - Windows Mobile / Directdraw: ビデオ ストリームの回転

フォローアップ: Directdraw: Rotate video stream

カメラのビデオ ストリームをプレビューすることはできましたが、画像が 90° 回転してランドスケープ モードになっています。現在、カメラ画像を回転させて通常の状態に戻す方法を探していますが、問題は、どこから始めればよいかさえわからないことです。これは、DDSURFACEDESC 構造の VideoCaptureFilter、VideoInfoHeader で行われますか? 追加のフィルターを使用してのみ回転を行うことはできますか? フィルター設定ですか?