PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mit C++ Grafikkarte ansprechen ?



Kernle 32DLL
21.05.2005, 11:34
Hi !

Ich progge seit einiger Zeit ein bissel mit C++ rum.Was bestimmtes hab ich noch
nicht vor,das C++ ziemlich kompliziert ist.Nun,aber ich arbeite ja auch mit Blitz 3D.
Und dort gibt es keine richtige Antialiasing (was für ein Wort) funktion.Joa,und deshalb
wollte ich ne DLL machen,die ich in B3D einbinden kann,um wirklich antidingesnda
zu erreichen.Mein vater meint,das ich über C++ die Grafikkarte ansprechen müsste,
und dann die Befehle dazu als DLL an Blitz 3D weiter gebe.Würde mich mal intressiern
ob es geht,denn anscheinend gibt es noch keine solche DLL für B3D (und dem
entsprechend kein wirkiches Antialiasing).

Gruß:
Kernle

PS: Achja,ich suche noch 3 wichtige Sachen:

1) Eine Funktions-Tabelle,in der alle Befhele von C++ aufgeführt sind.
Am besten noch mit Deutscher beschreibung.

2) Einige Tutorials,die leicht zu verstehen sind.Habe hier nen Buch mit + 600 Seiten,
aber das ist so schwer,das ich bisher nur geschafft habe ein Dos-Fenster mit dem
Text "hello world" zu machen.

3) Außerdem intressiere ich mich für die Grafik-aspekte von C++.Also,wie erreiche ich
was "grafisches",also z.B. 3D,und nicht nur öden Text ?

MagicMagor
21.05.2005, 12:08
Hm.. direkt die Hardware ansprechen geht zwar unter C++ (irgendwie), ist aber mit Sicherheit nichrt das, was du möchtest. Da bist du nämlich dann in den Gefilden der Treiberprogrammierung.

Was du benötigst ist eine Grafik-API, wie zB DirectX oder OpenGL. Inwieweit du diese aber über den Umweg einer eigenen DLL in Blitz nutzen kannst, weiß ich nicht. Da ich mich weder mit DLL-Programmierung noch mit Blitz sonderlich gut auskenne =).

Zu deinen restlichen Fragen:

1. Als ich vor Jahren mal mit C++ angefangen habe, war das auch mein größtes Problem. Die Sache ist aber in C++ glaube ich, daß du zu großen Teilen auf andere Bibliotheken zugreifst, die natürlich selbst eine Dokumentation mitbringen, bzw. mitbringen sollten. Für die Standard-bibliotheken gibt es eine Dokumentation auf www.cplusplus.com. Ist zwar englisch, aber daran solltest du dich gewöhnen. Ohne Englisch kommt man im Programmierbereich nie sonderlich weit. Auf selbiger Seite gibt es auch ein schönes Tutorial für C++, mit dem auch ich jetzt wieder in die Sprache eingestiegen bin.

2. Wie gesagt, obige Seite bietet etwas an. Ansonsten gibt es hier einen ausgezeichneten gepinnten Thread, mit massig Links zu Tutorials.

3. C++ alleine hat keine wirklichen Grafikaspekte. Hier gehst du dann wieder den Weg über eine API (DirectX od. OpenGL). Beide dieser APIs bieten jede Menge Kram, hauptsächlich auf 3D bezogen, aber auch 2D-Sachen lassen sich damit realisieren. Dafür gibts aber ebenso Tutorial-Links im angepinnten Thread. (zB nehe für OpenGL)

MuadDib
21.05.2005, 12:08
OpenGL - Alles, was das Grafikherz benötigt. Infos unter opengl.org. Das RedBook dürfte gute Lektüre sein. Ansonsten empfehle ich dir die Infos von unserem Institut:
http://www.gup.uni-linz.ac.at/cgue/ - dort findest du Folien mit Infos zu OpenGL, sowie Links zu weiteren Informationen, inclusive einer C Reference Card.

Ineluki
21.05.2005, 14:18
ich glaube, du verwechselst Programmiersprache mit den Bibliotheken zur Sprache.
C++ selber (wie jede andere Programmiersprache) hat gar keine Funktionen, weder zur Daten ein/ausgabe noch fuer irgendwas anderes. Die Sprache selber ebschreibt eigentlich nur die Syntax und Konzeptrealisierung. Was du meinst, sind die Bibliotheken, die mitgeliefert werden. Diese sind oftmals sogar fuer mehere Sprachen verfuegbar. Wenn du dich mit Direct3D auskennst, solltest du das in aehnlicher weise in C++, Delphi oder Blitz3D anwenden koennen. Du brauchst nur ebend die Bibliotheksbeschreibungen. Die Bibliotheken liegen in C++ entweder als Headerdateien (STL), als statische libs, oder als DLLs (wie im Fall von DirectX) vor. Wie man diese benutzt, ist eine ganz andere Angelegenheit.

Was oft (faelschlicher Weise) auch noch zur Sprache gezaehlt wird, sind Bibliotheken, die standardmaessig bei der Sprache dabei sind. Bei C++ sind das z.B. die STL (Standard Template Library) oder auch die elementaren Funktionen fuer Ein/Ausgabe, wie z.B. stdio.h (mit printf). Bei C++ gibts allerdings keine vom C-Kommitee genormten Standardbibliotheken fuer Graphik.

Und um ehrlich zu sein, ich programmiere auch seit Jahren in C++ und ich bin auch noch beim guten alten Dos-Fenster, einfach, weil man fuer die meisten Sachen einfach keinen Graphikschnickschnack braucht, und es fuer GUIs einfach bessere oder einfachere Moeglichkeiten gibt, als C++ mit Standardbibliotheken.

Kernle 32DLL
21.05.2005, 18:46
Joa,danke Leute :)

Jetzte verstehe ich das ^^
Is ganz intressant,was man so mit C++ und den Funktionsbibiliotheken anstellen
kann :p

naja,also beim Dos-Fenster bleibe ich nicht,da das mir etwas zu...hmmm...."primitiv"
ist :|

Nagut,mit Dos kann man auch csöne Textadventures machen,aber ich stehe da eher
auf Action ala Will Rock,Armed & Dangerous,ect.

Im moment arbeite ich mich durch dise "nehe" Seite (http://nehe.gamdev.net).
und schon fang ich wieder an spiele zu proggen ^_^

Aber ich scheitere am Daten aus Dateien auslesen.Mal schauen ob ich da irgentwo
was zum Thema finde kann...

naja,danke für die Hilfe :)

Gruß:
Kernle 32DLL

PS: Luki,fast haste den für einen verrückten Ava ? :D

Jesus_666
22.05.2005, 12:12
naja,also beim Dos-Fenster bleibe ich nicht,da das mir etwas zu...hmmm...."primitiv" ist :|Für Spiele? Sicher. Aber die Mehrzahl der Software, die kein Spiel ist, braucht keine Grafik und ist ohne Grafik auch meist besser dran, da leichter.
Im *nix-Bereich wird auch oft davon ausgegangen, daß eine Shell zur Verfügung steht, über die man Fehler und Mitteilungen ausgeben kann.


PS: Luki,fast haste den für einen verrückten Ava ? :D
Eine Szene aus Falling Down mit Michael Douglas. Ich habe auch einen Falling Down-Ava; das ist ein kleiner Insider.