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)