![]() |
DirectX Shared Surfaces
Hallo zusammen,
bei MSDN gibts ein Beispiel für Shared Surfaces zwischen DX9 und DX10.1. Hat das zufällig schon jemand auf Delphi / FPC übersetzt? bg |
AW: DirectX Shared Surfaces
Hallo zusammen,
da bisher sehr viel Response war :wink: hab ich mich mal am WE hingesetzt und angefangen das Bsp auf Delphi umzucodieren. Die LIB ist zumindest mal mit den JSB Headern compilierbar. Sobald das Ding auch funktionstauglich ist meld ich mich :) bg PS: falls noch wer den Link auf die MSDN sucht: ![]() |
AW: DirectX Shared Surfaces
Was hast du denn vor?
Ich muss auch alten DirectDraw-Code ins 21. Jahrhundert bringen, aber ich habe mich dafür von Delphi verabschiedet. Man ist immer auf Header-Übersetzungen angewiesen und das nervt spätestens beim nächsten Minior-Update von DirectX. Ich programmiere dafür lieber alles notwendige in C++ und stelle die für das Delphi-Programm notwendige Funktionalität als Interface-Objekt aus einer DLL zu Verfügung. Mit den neuen Direct2D Device und Device Context Interfaces kann man auch direkt mit Direct3D11 Devices und DXGI Swap Chains arbeiten. Kennst du den Wrapper von Kenny Kerr? ![]() Damit geht das Programmieren von DirectX-Anwendungen sehr schnell. |
AW: DirectX Shared Surfaces
Möchte Videos, DVD's und DVB-S2 wiedergeben. Da ich aber DVD's nicht geschafft habe per DirectShow Filter auf eine eigene Komponente zu rendern bleibt wohl nur der umweg über VMR9 (bzw EVR) und damit DX9(Ex).
Da eben auch BDA zum Einsatz kommen soll wird wohl die nächste Zeit hier kein Weg an DirectShow und VMR/EVR vorbeigehen. Da HUD's aber auch ne feine Sache sind, wäre das direkte Rendern der GUI (vorteilhaft natürlich Direct2D) auf die DX9 Surface vorteilhaft. Ansonsten bleibt wohl nur der Weg über eine eigene DX10.1 Surface die dann vor die DX9 gelegt wird (da sich ja 9 und 10 parallel gemeinsam verwenden lassen sollten). C++ einzusetzen wäre zwar ne Variante, ich bin aber gerne Sprachen-Clean :wink:. Auf alle Fälle kein .NET !!! Ursprünglich wollte ich ORCA (aus der PL) direkt für die GUI einsetzen, wird aber hier dann wohl zumindest auf der untersten Ebene ein paar Anpassungen geben müssen (ORCA geht ja mit D2D). bg |
AW: DirectX Shared Surfaces
Zitat:
Direct 2D Version 1.1 ist relativ neu, gibt es denn überhaupt vernünftige Pascal-Header für deine Zwecke? Ich hätte keine Lust und Zeit mir die Header selber zu stricken. Zitat:
Ich habe auch früher gedacht: "Puh, C++...ne, dass ist mir zu kompliziert, ich bleibe bei Delphi", aber damit schießt man sich immer selber ins Knie. Da man ja eh am Ende C/C++-Funktionen und Interface-Objekte von DirectX nutzt, wäre es hier "cleaner" direkt in der gleichen Sprache zu programmieren. Probiere mal den Header von Kenny Kerr aus, dass programmiert sich dann recht flüssig wie in Delphi / C#. |
AW: DirectX Shared Surfaces
inzwischen gefällt mir die Variante mit C++ vielleicht doch nicht so schlecht.
Da auch sämtliche MSDN Examples in C++ sind... welche IDE verwendest Du? |
AW: DirectX Shared Surfaces
VisualStudio 2012
|
AW: DirectX Shared Surfaces
Aktueller Zwischenstand:
VisualStudio 2012 installiert, Beispiele compiliert und funktionieren: -DXGI Shared Surfaces (DX9 und DX11) -DXGI D2D und DX10 -EVR Presenter Bsp von MSDN compiliert -EVR Player compiliert. Spielt Files ab, nur der der EVR Presenter stürtzt ab, irgendwie mag MediaFound kein xDiv ?!? Soweit ich das momentan beurteilen kann ist das Thema DirectShow und DX11 alles andere als easy... soweit ich das jetzt beurteilen kann: - um DirectShow mit DX11 nutzen zu können braucht man Shared Surfaces - für Shared Surfaces braucht man D3D9Ex. - D3D9Ex funktioniert aber nur mit EVR werd mir mal jetzt das EVR Presenter Example von MSDN genauer ansehen, falls da nichts brauchbares rauskommt wird's wohl nur die Variante geben: D3D9 mit VMR9 und die GUI per PNG's selber malen |
AW: DirectX Shared Surfaces
In der MSDN steht ja auch viel alter Gammel drin.
Bin jetzt nicht so fit drin, aber soweit ich das verstanden habe, ist ja die Media Foundation der Ersatz für DirectShow: Zitat:
![]() |
AW: DirectX Shared Surfaces
hmm, MePo verwendet EVR
![]() soweit ich den MePo Code kenne ist aber alles DirectShow. vielleicht liegts am Graph den die MS Beispiele bauen, muss ich noch checken. |
AW: DirectX Shared Surfaces
Hallo zusammen,
für alle die Shared Surfaces unter DX9Ex/DX10/DX11 mal brauchen können: eine lauffähige Version der Lib in Delphi und FPC mit dem Sample liegt unter ![]() Viel Spaß :-D |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz