Window API und die Grafikkarte

Akilein

Mitglied
Hi Leute!
dass DirectX und OpenGL nicht mit den herkömlichen Windows-API-Funktionen zum Zeichnen arbeiten, ist klar ... ich hätte gern gewusst, ob OpenGL und DX hardwarenah arbeiten und wenn ja, wie unterstützt Windows das?

Ich programmiere seit langer Zeit in C/C++ und würd mich gern mit der Grafikprogrammierung mehr befassen ... die Win-Zeichen-APIs sind mir jedoch schon zu billig, mein Ziel ist es meine eigene (kleine!) 3D-Engine zu machen ... also wie kann ich am schnellsten auf den Speicher der Grafikkarte zugreifen innerhalb von Windows? THX!
 
danke!

ich habe ein wenig nachgelesen ...
OpenGL ist demnach nur eine Spezifikation, die erst durch Garfikkarten (Hardware-Rendering) oder die drivers zu den Grafikkarten implementiert ist.
Falls ein neuer OpenGL-Befehl auf einer alten Grafikkarte nicht ausgeführt werden kann, das heißt die Karte kennt den Befehl nicht, müssen ja neue Drivers der Garfikkarte für die Implementierung aufkommen ... die müssen ja also auch irgendwie auf den Speicher der Garfikkarte zugreifen können ... verwenden die (also die Drivers) nicht die WinAPI?
 
Zuletzt bearbeitet:
Ich bin nicht so der Coder. Aber es gibt eine Emulations-Modus,
den man auch ab/anschalten kann. Heisst:
Es gibt einen Standard-OpenGL Befehlssatz, den jede Karte in Hardware ausführen kann.
Die erweiterten Befehle sind nicht verpflichtend in Hardware, werden dann emuliert. Dann
greift also Software/CPU unter die Arme. Ist bei DirectX aber genau so.

Den Standard-OpenGL-Befehlssatz kann jede halbaktuelle Karte, das sei sicher.

**EDIT**
OpenGL wird nicht einfach so erweitert wie ein Spiel mit einem Patch. Da sitzt ein
Gremium, um zu entscheiden was reinkommt, was nicht und das passiert schon recht
selten. Außerdem weiß man bei DirectX auch ganz genau, welche Version benötigt wird
und zusätzlich ist eine der Pflichten natürlich die Abwärtskompatibiltät !
Heisst also Directx5 ist in DX9 drin und auch OpenGL1.0 wird in OpenGL2.0 komplett
wiedergegeben.

Lies darüber lieber nochmal bei Wikipedia oder http://www.opengl.org.

Hier ein Zitat aus Wikipedia DirectX:
DirectX ermöglicht direkte Zugriffe auf die Hardware des Systems, ohne die Programme von der Hardware abhängig zu machen. So wird Spiele-Entwicklern eine Hardware-Abstraktions-Schicht (HAL von engl. hardware abstraction layer) für die Spieleprogrammierung zur Verfügung gestellt, mit der langsame Schnittstellen (zum Beispiel Win GDI) umgangen werden. Funktionen, die von der Hardware und damit nicht von der HAL bereitgestellt werden können, werden in der Hardware-Emulations-Schicht (HEL von engl. hardware emulation layer) emuliert.
Du greifst schon über eine Bibliothek( dll ) auf die Grafikfähigkeiten zu,
und diese wiederum hat über den Treiber direkten Zugriff auf die Karte.
Also entweder schwer machen und alles selbst proggen und fluchen,
oder die bequeme Art wählen und vielleicht einige wenige % an Geschwindigkeit verschmerzen.
Vielleicht ist auch der Zugriff auf WDM-Ebene das Richtige für Dich.

-- Hier hör ich auf, weil alles Nähere nur Halbwissen wäre. Viel Glück --

mfg chmee
 
Zuletzt bearbeitet:
Zurück