OpenGL in Compiler einbauen

Hier kann alles mögliche diskutiert werden. Themen zu Purebasic sind hier erwünscht.
Flames und Spam kommen ungefragt in den Mülleimer.
Benutzeravatar
brotkasten-deluxe
Beiträge: 147
Registriert: 29.08.2004 01:43
Wohnort: Germany
Kontaktdaten:

Beitrag von brotkasten-deluxe »

Hmm und was is wenn ich die ganze API einbeziehen will ? muss ich jede bestimmte ddl einzeln laden und wie teile ich ihr die befehle zu? :?
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

:? http://www.reelmedia.org/pp/library/index.html Damit musst du die DLLs laden und einfach die Funktionen durch die User aufrufbar machen.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
brotkasten-deluxe
Beiträge: 147
Registriert: 29.08.2004 01:43
Wohnort: Germany
Kontaktdaten:

Beitrag von brotkasten-deluxe »

Hmm mich würd interessieren wie PureBasic das selbst meistert? :?
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

genau so, nur halt intern.
Benutzeravatar
brotkasten-deluxe
Beiträge: 147
Registriert: 29.08.2004 01:43
Wohnort: Germany
Kontaktdaten:

Beitrag von brotkasten-deluxe »

kann es sein dass PB nur auf WinAPI basiert?

Ich meine dass die befehle mit winapi aufgebaut sind :?
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

unter windows zumindest... worauf denn auch sonst ;)
Benutzeravatar
brotkasten-deluxe
Beiträge: 147
Registriert: 29.08.2004 01:43
Wohnort: Germany
Kontaktdaten:

Beitrag von brotkasten-deluxe »

Zaphod hat geschrieben:unter windows zumindest... worauf denn auch sonst ;)
schön zu wissen :allright:
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

:? Frage an Danilo(den Compilerprofi): Muss man sowas wie die WinAPI nicht weit am Anfang beim richtigen Compilerbau kennen?

@brotkasten: Die Libraries in dem PureLibraries\ und PureLibraries\Windows oder wie auch immer sind praktisch wrapper zur direkten benutzung der Befehle in PB.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Beitrag von Danilo »

DarkDragon hat geschrieben::? Frage an Danilo: Muss man sowas wie die WinAPI nicht weit am Anfang beim richtigen Compilerbau kennen?
Nein. WinAPI hat damit ja erstmal nichts zu tun, schliesslich
kannst Du Compiler für alles Mögliche machen.
DarkDragon hat geschrieben:@brotkasten: Die Libraries in dem PureLibraries\ und PureLibraries\Windows oder wie auch immer sind praktisch wrapper zur direkten benutzung der Befehle in PB.
Das ist kein Wrapper, das sind Import-Libraries zum linken
und noch ein paar Header, so daß PB die Funktionen kennt.

Mit dem assemblieren und linken sollte man sich da schon
ein bissl auskennen, bevor man sowas macht.
Erstmal muß der Compiler eine Funktion kennen, z.B. durch
Declare-Anweisungen:
Declare Beep alias "Beep@8" Lib "user32" (Long, Long) : Long

Damit weiß der Compiler das die Funktion "Beep" in der user32.lib
ist (das ist die Import-Lib für die DLL), und das 2 Long-Args
übergeben werden, sowie die Rückgabe auch long ist.

Bei PB funktioniert das über interne Header-Dateien. Die muß
dann nicht der User einbinden wie in FB, C usw., sondern PB
macht das automatisch.

Ruft der User nun Beep(800,100) auf, ist Dein generierter
Code ganz einfach:

Code: Alles auswählen

PUSH dword 100
PUSH dword 800
CALL Beep@8
Diese Infos (2 Argumente des Typs Long usw.) hast Du aus
den (internen) Declare und kannst somit checken ob ein
Fehler vorliegt (z.B. wenn der User einen String statt Long
übergibt, oder nur ein Argument statt 2).

Das wird assembliert, und beim linken wird noch die Import-
Library user32.lib eingebunden und fertig.
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Benutzeravatar
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46

Beitrag von hardfalcon »

@DarkDragon: Ja, was das mitliefern der dlls angeht, hast du recht. da habe ich mich wirklich geirrt.
@Danilo: ich kann zwar kein C/C++, aber in den Codesamples im API-Guide (die sind ja in C++), werden API-Funktionen immer zuerst mittels "declare" "geladen". Das hiesse ja, dass man mittels C++ ALLE API-Befehle nutzen kann, ohne dass diese als Libs geladen werden müssen, oder? Hat PB auch eine solche "declare"-Funktion (da es nicht ALLE API-Befehle kann)?

cya
Pascal
Antworten