DevCpp - Einbindung von DirectX

Fragen zu allen anderen Programmiersprachen.
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

Die Library ist immer dabei, wenn du die neusten Treiber für deine Graka
installierst. Bei DirectX musst du gleich ein 40 MB großes Runtime Kit
installieren wo die DLL dann nur paar hundert Kilobyte groß ist.

Für die Tastenabfrage musst du etwas improvisieren. Z.b. mit den Window
messages, wenn du ein Fenster für den Screen offen hast.

Flamewar: Du magst doch OpenGL nur nicht, weil deine kleine ATI
OpenGL nicht anständiog mit macht : D
Bild
Benutzeravatar
Rubiko
Beiträge: 943
Registriert: 25.02.2005 19:43
Computerausstattung: Intel i7 2600k
8GB Ram
GeForce GTX 560 Ti
Wohnort: Schwabach

Beitrag von Rubiko »

nee, meine graka kann opengl sehr wohl unterstützen, kann man sogar in den treiber settings umstellen... openGL und direct3D... aber damit hast du mir schon wieder einen punkt gegeben von openGL abzusehen... es gibt grakas die nicht richtig damit laufen...
Ich wollte die Welt verändern, doch Gott gab mir nicht den Quelltext.
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

Ob du es glaubst oder nicht: Es gibt auch Karten, die nichts mit DirectX anfangen können.
Bild
Benutzeravatar
Ynnus
Beiträge: 855
Registriert: 29.08.2004 01:37
Kontaktdaten:

Beitrag von Ynnus »

MVXA hat geschrieben:Ob du es glaubst oder nicht: Es gibt auch Karten, die nichts mit DirectX anfangen können.
So ist es!

Was die Lib im Windowsverzeichnis betrifft, höö?
Meinst du die opengl32.dll? Da hab ich neulich was interessantes in einem OGL-Forum gefunden wo es hieß, die sei nur als Ausweichmodul da, wenn keine fähige GL Unterstützung vorhanden sei. Normalerweise wird sie mit Windows mitgeliefert und nicht genutzt. Jede Grafikkarte hat Hardwaremäßig die OpenGL-Dinge drauf und braucht da keine DLL, zumindest nicht diese.

Hier mal ein Zitat:
Die Versionsnummer von der OpenGL32.dll solltest als aller erstes gleich einmal wieder vergessen. Die sagt nichts über die verfügbare OpenGL Version aus. Und das ist die einzig wichtige Version. Aber wieder zur Opengl32.dll. Diese ist Bestandteil von Windows und hat sich funktional wohl seit einigen (9?) Jahren nicht mehr verändert. Muss sie aber auch nicht. Wenn du einen Grafiikkartentreiber installierst, dann registriert sich dieser in der Registry und die OpenGL32.dll greift dann auf ihn zu. Da du auch mehrere Grafikkarten von unterschiedlichen Herstellern installiert haben kannst wäre es fatal, wenn irgendeiner die Opengl32.dll ersetzen würde. Dann würde nur eine deiner Karte funktionieren. Also entsprechend der Trick mit der DLL als Wrapper. Sollte kein passender Treiber gefunden werden bietet die DLL auch eine Softwareimplementation, die so ziemlich das Schlechteste ist was einem passieren kann.
Noch was zu OpenGl. Das ist nunmal ein Verfahren um portabel Grafik zu programmieren. Deshalb gibt es in den Grunddingen für OpenGL keinerlei Tastenabfragen, Sound, all das was etwa DirectInput oder DirectPlay erledigen würde. Dafür ist es nicht an windows gebunden.
Außerdem gibt es Zwischenstücke zwischen dem OS und OpenGL. Etwa die wgl-Funktionen, speziell für Windows und OpenGL. Parallel dazu gibt es welche für Linus und MacOS welche den OpenGL Support dort ermöglichen. Der Teil der dann im Programm umstrukturiert werden muss ist sehr gering und daher portabel, denn die Grund-OpenGL-Funktionen sind überall gleich.

Außerdem ist OpenGL eine Sache die durch mehrere große Firmen aufrecht und im Gleichgewicht gehalten wird. Firmen wie Nvidia und ATI, Dell, Apple, IBM, Intel, Matrox, Sun, all die großen sind dabei und bilden das Architecture Review Board (ARB). Dadurch wird nicht nur mit ATI und Nvidia darauf geachtet, dass OpenGL auch wohl immer Hardwaremäßig direkt im Chip vorhanden sein wird, sondern es stehen viele Firmen hinter OpenGL die diesen Standard aufrecht erhalten und weiterentwickeln.
(Shader und sogar eine C-Ähnliche Sprache zum Schreiben eigener Shader gibt's in OpenGL auch).
Microsoft war übrigens auch mal im ARB aber hat sich verabschiedet...
Antworten