OPEN GL headers importeren in xcode

hey mensen, ik heb de open gl headers maar ik weet niet hoe ik ze in xcode moet importeren.

schrijf je open gl in een gewoon c bestand?(dus welk type programmastyl moet je kiezen in xcode)

Alvast bedankt

Ik weet niet of je dit bedoeld:

#include <OpenGL/gl.h> in de .m file

Er zijn wat Apple voorbeelden aanwezig op je HardeSchijf.

Of probeer een project te vinden voor Xcode op het web.

HTH

R

hey, ik bedoel:

Ik heb wat OPEN GL source geplakt in een .c bestand in xcode. Vervolgens krijg ik de melding dat de compiler enkele header files niet kan vinden.

Ik heb de OPEN GL header files kunnen downloaden, maar weet niet waar ze op je juiste plek moet neer zetten zodat de compiler ze tijdens het compilen kan vinden.

Hopelijk ben ik nu wel wat duidelijker.

[quote:7612237942="NewToMac"]Ik heb wat OPEN GL source geplakt in een .c bestand in xcode. Vervolgens krijg ik de melding dat de compiler enkele header files niet kan vinden. [/quote:7612237942] Ik hoop dat je bedoelt function calls naar open gl libraries.. [quote:7612237942="NewToMac"]Ik heb de OPEN GL header files kunnen downloaden, maar weet niet waar ze op je juiste plek moet neer zetten zodat de compiler ze tijdens het compilen kan vinden.[/quote:7612237942] Header filles moet je niet appart downloaden. Je hebt header files nodig om je programma te kunnen compileren. Nadien moet het nog worden gelinked tegen de library. Je hebt dus alles nodig, niet enkel header files. Normaal gezien staan de opengl libraries standaard geinstalleerd op je schijf een mogelijkheid is ook dat je gewoon niet naar die directory verwijst bij het compileren.

Als je de PP flags goed hebt (dingen als #include "dit.h"), dan moet je onder OsX ook de openGl en ook vrijwel zeker GLUT, frameworks includen. Dit kun je doen, door de nodige frameworks aan je project gewoon toe te voegen. Dit kan door een optie onder project->add->framework (of iets dergelijks).

suc6.

#include <gltk.h>

wanneer ik deze header include krijg ik dus de foutmelding:

No shuch file or directory.

Ik ben eigenlijk nog steeds aan het zoeken hoe het precies moet…:frowning:

[EDIT]: volgens mij moet het op deze manier:
http://www.vis.uky.edu/~dnister/Teaching/CS535/macNotes.html

Dat is geen standaard OpenGL, maar een of andere extensie. De foutmelding vind ik trouwens merkwaardig, maar goed.

Probeer eens de GLUT, AGL en OpenGL frameworks toe te voegen aan je project. Misschien zijn er nog een paar. Dat helpt meestal wel.

Oh, even gezocht, maar in mijn installatie is gltk.h op het hele systeem niet te vinden. Probeer je toevallig tk of tcl/tk te gebruiken? Die hebben hun eigen OpenGL interface en die zul je dan eerst moeten installeren/compileren. Zou onderdeel kunnen zijn van “mesa”, zo suggereert codesearch.google.com.

Eigenlijk ben ik er nog steeds mee bezig.

Wanneer ik netjes de tuturial van nehe volg(les 1), de code overtik en in een main.c stop, dan wordt de code dus gecompileerd en gerunt. In mijn console krijg ik dan als uitvoer:

[Session started at 2006-12-20 11:51:28 +0100.]
ZeroLink: unknown symbol ‘_ReSizeGLScene’

Tut1 has exited due to signal 6 (SIGABRT).

Kan iemand mij helpen?

Alvast bedankt

Dat je die foutmelding pas op run-time krijgt, komt door Zero Linking. Je hebt een bibliotheek of framework niet toegevoegd. Ik zou niet precies weten welke het is, maar ik gok op GLUT of AGL. Of anders is het een functie die je nog had moeten overtikken. Probeer deze eens toe te voegen (die had je kunnen vinden met een minuutje Googlen): [code:1:1797f061f4]void ReSizeGLScene(int Width, int Height){ }[/code:1:1797f061f4]

[code:1:0f6dfc6310]void ReSizeGLScene(int Width, int Height){ }[/code:1:0f6dfc6310]

Het toevoegen van deze methode helpt niet, ik heb wel zerolink uitgeschakeld, maar dan krijg ik weer de melding dat al die functies die ik gebruik niet gedefinieerd zijn. En dat terwijl ik GLUT framework heb gedownload van http://developer.apple.com/samplecode/glut/index.html

Wanneer ik een gemaakt project van NeHe download en importeer, dan werkt deze meteen. Dus het ligt niet aan de GLUT framework.

Als het veel functies zijn die niet in je eigen code worden genoemd, dan zul je toch wel een bibliotheek vergeten zijn mee te linken. Als ze wel in je code worden genoemd, dan zul je ze zelf moeten schrijven. Heb je al met Google ([url]www.google.com[/url] of [url]http://www.google.com/codesearch[/url]!) gezocht naar die functies? Meestal kun je er dan wel achterkomen waar ze vandaan komen.

[quote:27a7b11411="TGV"]Als het veel functies zijn die niet in je eigen code worden genoemd, dan zul je toch wel een bibliotheek vergeten zijn mee te linken. Als ze wel in je code worden genoemd, dan zul je ze zelf moeten schrijven. Heb je al met Google ([url]www.google.com[/url] of [url]http://www.google.com/codesearch[/url]!) gezocht naar die functies? Meestal kun je er dan wel achterkomen waar ze vandaan komen.[/quote:27a7b11411]

Ik neem aan dat de functies in de GLUT framework zijn gedefineerd. Ik denk gewoon dat ik de overgetikte code niet in main.m moet zetten…

Alle (belangrijke) functies in GLUT beginnen met glut al hebben hulpfuncties soms heel andere namen. Je kunt het frameword gewoon in /System/Library/Frameworks vinden en toevoegen aan je project. Ik heb voor mijn OpenGL-project de frameworks GLUT, AGL en OpenGL moeten toevoegen (bovenop Cocoa en Carbon).

Ik ben denk ik nog niet echt duidelijk.

Als ik een project van internet compile, dan kan ik die zonder problemen runnen.
Dus het ligt niet aan de geimporteerde frameworks

Kopieer dat project dan, haal alle code eruit en stop je eigen file erin. Schakel Zero Link uit. Alle foutmeldingen die je dan overhoudt, zijn functies die dus niet standaard beschikbaar zijn. Misschien moet je wel aparte hulpbibliotheekjes downloaden, misschien moet je ze zelf invullen.

Eh, wacht even… Heb jij gewoon dit programmaatje overgenomen en verder niks?

[code:1:1401b1135e]#include <OpenGL/gl.h> // Header File For The OpenGL32 Library
#include <OpenGL/glu.h> // Header File For The GLu32 Library
#include <GLUT/glut.h> // Header File For The GLut Library

#define kWindowWidth 400
#define kWindowHeight 300

GLvoid InitGL(GLvoid);
GLvoid DrawGLScene(GLvoid);
GLvoid ReSizeGLScene(int Width, int Height);

int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize (kWindowWidth, kWindowHeight);
glutInitWindowPosition (100, 100);
glutCreateWindow (argv[0]);

InitGL&#40;&#41;;

glutDisplayFunc&#40;DrawGLScene&#41;;
glutReshapeFunc&#40;ReSizeGLScene&#41;;

glutMainLoop&#40;&#41;;

return 0;

}
[/code:1:1401b1135e]

uuhhhhhhhh jah.... (bloos) Niet goed dan?

Ik denk dat je nog wat verder had moeten lezen. In les 1 bijvoorbeeld, wordt uitgelegd wat je in DrawGLScene() moet doen om iets op je scherm te krijgen en worden InitGL en Resize... ingevuld. Ik zie daar overigens vrij veel Windows code tussen staan, dus let goed op.

Maar in het algemeen: functies uit een bibliotheek hebben meestal een naam waaraan je de bibliotheek vrij makkelijk herkent. Alle andere functies moet je echt zelf schrijven. Zeker een functie als DrawGLScene. Je kunt echt niet verwachten dat iemand al een functie geschreven heeft die precies op het scherm tekent wat jij graag wilt…

Ik heb verschillende malen deze pagina door genomen maar er staat niets in over aanpassingen of iets dergelijks

http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=Mac_OS_X

Lees dan deze maar: [url]http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=01[/url]