Y
yest86
Gast
Hallo,
hoffe ihr könnt mir weiterhelfen. Habe bisher nur ein bisschen Java programmiert und wollte mir jetzt auch mal andere Sachen anschauen um gleich mit einem etwas weiteren Überblick anzufangen. Nun hat mir ein Freund ein paar Aufgaben seiner Hochschule zur Verfügung gestellt. Im ersten Teil zu open GL wird einfach nur ein Bildpunkt gesetzt. So weit, so einfach. Nun ist der Code aber auf zwei Dateien aufgeteilt, eine die Wohl die Initialisierungen übernimmt und eine, die das Programm ausführt.
Dabei wird mit externen Funktionen gearbeitet, allerdings verstehe ich nicht, wie man diese Dateien gegenseitig bekannt macht bzw einbindet. Bei der Suche nach der Lösung habe ich nur Hinweise gelesen, dieses über include "..." zu machen, aber ich denke, hier ist wohl etwas anderes gemeint.
Anbei mal die "Musterlösung", die bei mir aber wie gesagt nicht funktioniert, da die externen Funktionen nicht gefunden werden. (Benutze Dev-C++ und habe beide Dateien in einem gemeinsamen Projekt liegen)
Wäre nett, wenn mir jemand sagen könnte, wie ich das mit den zwei Dateien zum laufen bekomme.
hoffe ihr könnt mir weiterhelfen. Habe bisher nur ein bisschen Java programmiert und wollte mir jetzt auch mal andere Sachen anschauen um gleich mit einem etwas weiteren Überblick anzufangen. Nun hat mir ein Freund ein paar Aufgaben seiner Hochschule zur Verfügung gestellt. Im ersten Teil zu open GL wird einfach nur ein Bildpunkt gesetzt. So weit, so einfach. Nun ist der Code aber auf zwei Dateien aufgeteilt, eine die Wohl die Initialisierungen übernimmt und eine, die das Programm ausführt.
Dabei wird mit externen Funktionen gearbeitet, allerdings verstehe ich nicht, wie man diese Dateien gegenseitig bekannt macht bzw einbindet. Bei der Suche nach der Lösung habe ich nur Hinweise gelesen, dieses über include "..." zu machen, aber ich denke, hier ist wohl etwas anderes gemeint.
Anbei mal die "Musterlösung", die bei mir aber wie gesagt nicht funktioniert, da die externen Funktionen nicht gefunden werden. (Benutze Dev-C++ und habe beide Dateien in einem gemeinsamen Projekt liegen)
Code:
pixel.c
#include <GL/glut.h>
#include <stdlib.h>
/* Auflösung des Ausgabefensters -> Top-Level Window */
int breite = 800, hoehe = 600;
/* Position des Bildpunktes */
int px = 400, py = 300;
/* Funktionsprototypen */
extern void display(void);
extern void putpixel(GLint x, GLint y);
void init(void);
void zeichnen(void);
/* Funktionen */
void init(void)
{
/* Hintergrundfarbe setzen -> Weiß */
glClearColor(1.0,1.0,1.0,1.0);
/* Verdergrundfarbe setzen -> Rot */
glColor3f(1.0,0.0,0.0);
}
void zeichnen (void)
{
/* Grafik realisieren, Bildpunkt an (px,py) setzen */
putpixel(px,py);
}
Code:
main.c
#include <GL/glut.h>
extern GLint breite, hoehe;
/* Funktionsprototypen */
extern void init(void);
extern void zeichen(void);
void putpixel(GLint x, GLint y);
void display(void);
/* Funktionen */
void putpixel(GLint x, GLint y)
{
/* Bildpunkt an Position (x,y) setzen */
glBegin(GL_POINTS);
glVertex2i(x,y);
glEnd();
}
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
/* Viewingvolumen einstellen */
glOrtho(0,breite,0,hoehe,-1,1);
/* Grafik realisieren */
zeichnen();
glFlush();
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(breite, hoehe);
glutCreateWindow(argv[0]);
init();
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
Wäre nett, wenn mir jemand sagen könnte, wie ich das mit den zwei Dateien zum laufen bekomme.