Damit sollten auch einige abhängige Pakete mitinstalliert werden.
Auch hier sollten einige abhängige Pakete mitinstalliert werden.
Das selbe Beispiel (bisher nach Folge #007) funktioniert auch unter Linux.
Wenn als Texteditor der Emacs verwendet wird ist die Einrichtung sehr viel einfacher:
Diese beiden Pakete installieren: libsdl2-dev, libglew-dev
Ein Ordner anlegen mit Projektname. Da hinein das main.cpp kopieren.
Und folgendes makefile (Textdatei "makefile" ohne .txt) erstellen:
CC=gcc CXX=g++ WARN = -Wall -Wno-unused-variable #DEBUG= -ggdb # fuer den Gnu-Debugger OPT = -O3 #-O3 fuer moeglichst schnell, -Os fuer moeglist kurz CFLAGS = -std=c++11 $(WARN) $(OPT) $(DEBUG) CXXFLAGS= $(CFLAGS) LDFLAGS = $(DEBUG) LDLIBS = -lGL -lSDL2 -lGLEW -lm all: main clean: rm -f *.o *~ clean_all: rm -f *.o *~ mainWobei hier jetzt noch kein GLUT verwendet wird.
// hello.cc #include <stdio.h> #include <GL/freeglut.h> typedef unsigned char uchar; void display() { glClearColor(0.0, 0.0, 0.0, 0.0); glClear(GL_COLOR_BUFFER_BIT); glFlush(); } void reshape(int w,int h) { printf("reshape(%d,%d)\n",w,h);//test glutPostRedisplay(); } void key(uchar c,int x,int y) //Tastatur abfragen { printf("key(c=%d,x=%d,y=%d)\n",c,x,y);//test glutPostRedisplay(); } void spezial(int key,int x,int y) //Tastatur spezialzeichen { printf("spezial(key=%d,x=%d,y=%d)\n",key,x,y);//test glutPostRedisplay(); } void mausknopf(int button,int state,int x,int y) { printf("mausknopf(button=%d,state=%d,%d,%d)\n",button,state,x,y);//test glutPostRedisplay(); } void mausmotion(int x,int y) //Mausbewegung mit gedrueckter Taste { printf("mausmotion(%d,%d)\n",x,y);//test glutPostRedisplay(); } void mausmotion2(int x,int y) //Mausbewegung ohne Taste zu druecken { printf("mausmotion2(%d,%d)\n",x,y);//test glutPostRedisplay(); } void idle() {glutPostRedisplay();} int main(int argc,char** argv) { glutInit(&argc,argv); glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); glutInitWindowSize(500,500); glutInitWindowPosition(100,50); glutCreateWindow("Leeres Fenster"); //glutIdleFunc(idle); glutDisplayFunc(display); glutReshapeFunc(reshape); glutKeyboardFunc(key); glutSpecialFunc(spezial); glutMouseFunc(mausknopf); glutMotionFunc(mausmotion); glutPassiveMotionFunc(mausmotion2); // zum Loslassen von Tasten: //glutKeyboardUpFunc(void (*func)(unsigned char key,int x,int y)); //glutSpecialUpFunc(void (*func)(int key,int x, int y)); glutMainLoop(); return 0; }Compilieren sollte so gehen:
Hier das Programm: molz.tar.gz
Ein Programm um ein Gas (bisher nur Edelgas) zu simulieren:
edelgas-opengl.tar.gz
Dies verwendet für die Berechnungen OpenCL um auf der Grafikkarte
zu rechnen.
(OpenCL zu installieren ist aber viel schwieriger als OpenGL)