codeworx OpenGL Tutorial Kapitel 6



  • Hallo,
    ich lese gerade das Tutorial von http://www.codeworx.org/opengl_tuts.php . Aber in dem 6. Kapitel erklären die einige Dinge zu oberflächlich (aber das TUT ist top ;-), nur weiter zu empfehlen). Ich hab mir den Code schon genauer angesehen und wollte zum Verständnis ein 2 Fragen stellen.

    1. Die Funktion:
    AUX_RGBImageRec *LoadBMP(char *Filename)
    hat 2 Sterne. Das bedeutet doch eigentlich das das Zeiger (Pointer) sind. Aber Pointer in einer "Funktionstitelleiste" hab ich noch nie gesehen und vorallem frage ich mich worauf die zeigen???. Könnte jemand ganz genau erklären warum das so ist??? (Mit logischer Begründung)

    2. Am Ende des Ladevorgangs der Texturen kommt noch die Filtereinstellungen:
    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);

    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
    Gelten die für alle Texturen oder nur für die, die gerade geladen wird???

    3. Bedanke mich für Antworten und Erklärungen. thx 🙂
    mfg 🙂



  • 1. bitte was? Funktionstitelleiste? Was soll das sein? Ausserdem kann ich nur empfehlen vor dem OpenGL Programmieren erstmal vernünftig C oder C++ zu lernen.
    2. AFAIK gelten die Filtereinstellungen, bis sie wieder überschrieben werden



  • @TGGC: Melde hiermit offiziell diesen Thread für die nächste Kultur an...

    😃


  • Mod

    naja, vielleicht müßte man das einfach sauberer schreiben damit auch nicht so versierte leute das verstehen

    AUX_RGBImageRec* LoadBMP(char* Filename);
    

    der rückgabewert ist ein zeiger auf AUX_RGBImageRec*, als parameter wird ein char array übergeben, bzw ein zeiger auf des erste element des arrays vom typ char.

    übrigens gibt es sowas wie eine "funktionstitelleiste" nicht. im header (*.h oder .hpp) deklariert man, dann ist es eine Funktionsdeklaration und in den implementationsdateien (.c, *.cpp oder *.inl) definiert man, da gibt es eine Funktionsdefinition besteht aus funktionskopf und funktionsrumpf (head und body)

    2.die filtereinstellung gelten bei openGL für die aktuell aktive textur und zwar so lange bis du diese einstellung für diese texture überschreibst.

    rapso->greets();



  • rapso schrieb:

    naja, vielleicht müßte man das einfach sauberer schreiben damit auch nicht so versierte leute das verstehen

    AUX_RGBImageRec* LoadBMP(char* Filename);
    

    der rückgabewert ist ein zeiger auf AUX_RGBImageRec,*

    Um exakt zu bleiben:

    • Entweder der Rückgabewert ist vom Typ AUX_RGBImageRec*
    • oder der Rückgabewert ist ein Zeiger auf ein AUX_RGBImageRec

    (was beides das gleiche bedeutet) 😉

    rapso schrieb:

    übrigens gibt es sowas wie eine "funktionstitelleiste" nicht. im header (*.h oder .hpp) deklariert man, dann ist es eine Funktionsdeklaration und in den implementationsdateien (.c, *.cpp oder *.inl) definiert man, da gibt es eine Funktionsdefinition besteht aus funktionskopf und funktionsrumpf (head und body)

    Hierzu sei zumindest gesagt, daß es auch durchaus Ausnahmen gibt (Stichwort inline z.B.).


  • Mod

    Sgt. Nukem schrieb:

    rapso schrieb:

    naja, vielleicht müßte man das einfach sauberer schreiben damit auch nicht so versierte leute das verstehen

    AUX_RGBImageRec* LoadBMP(char* Filename);
    

    der rückgabewert ist ein zeiger auf AUX_RGBImageRec,*

    Um exakt zu bleiben:

    • Entweder der Rückgabewert ist vom Typ AUX_RGBImageRec*
    • oder der Rückgabewert ist ein Zeiger auf ein AUX_RGBImageRec

    (was beides das gleiche bedeutet) 😉

    versehen, bei char* hab ich noch drauf geachtet 🙂

    Sgt. Nukem schrieb:

    rapso schrieb:

    übrigens gibt es sowas wie eine "funktionstitelleiste" nicht. im header (*.h oder .hpp) deklariert man, dann ist es eine Funktionsdeklaration und in den implementationsdateien (.c, *.cpp oder *.inl) definiert man, da gibt es eine Funktionsdefinition besteht aus funktionskopf und funktionsrumpf (head und body)

    Hierzu sei zumindest gesagt, daß es auch durchaus Ausnahmen gibt (Stichwort inline z.B.).

    klar gibt es ausnahmen, diese ausnahmen schreiben dann code der ausschaut wie java. gibt auch ausnahmen die coden grundsätzlich alles im public.

    Aber der Rest von uns, der Ordnung halten kann, der nutzt Implementationsdateien (*.c, *.cpp oder *.inl) für die Implementierung. 😉

    rapso->greets();



  • @rapso: Es ging mir auch (AUSNAHMSWEISE 😉 ) nicht darum, Dein Geschreibsel zu korinthenbekacken, sondern nur darum, daß unser Manitou nicht aus allen Wolken fällt (welch passendes Wortspiel 😃 ), wenn er es doch mal anders sieht...



  • thx, danke für die Hilfe. Jetzt wird das auch langsam in meinen Augen logisch.


Anmelden zum Antworten