tixiv
16 years ago
11 changed files with 427 additions and 547 deletions
@ -0,0 +1,124 @@ |
|||||
|
|
||||
|
#include <setjmp.h> |
||||
|
|
||||
|
#include "config.h" |
||||
|
#include "scrolltext/scrolltext.h" |
||||
|
#include "animations/programm.h" |
||||
|
#include "animations/matrix.h" |
||||
|
#include "animations/gameoflife.h" |
||||
|
#include "borg_hw/borg_hw.h" |
||||
|
#include "can/borg_can.h" |
||||
|
#include "random/prng.h" |
||||
|
#include "random/persistentCounter.h" |
||||
|
#include "mcuf/mcuf.h" |
||||
|
#include "menu/menu.h" |
||||
|
#include "pixel.h" |
||||
|
#include "joystick.h" |
||||
|
|
||||
|
|
||||
|
volatile unsigned char oldMode, oldOldmode, mode; |
||||
|
|
||||
|
jmp_buf newmode_jmpbuf; |
||||
|
|
||||
|
void display_loop(){ |
||||
|
// mcuf_serial_mode();
|
||||
|
|
||||
|
mode = setjmp(newmode_jmpbuf); |
||||
|
oldOldmode = oldMode; |
||||
|
waitForFire = 1; |
||||
|
for(;;){ |
||||
|
oldMode = mode; |
||||
|
switch(mode++) { |
||||
|
|
||||
|
#ifdef ANIMATION_SCROLLTEXT |
||||
|
case 1: |
||||
|
scrolltext(scrolltext_text); |
||||
|
{ char a[14]; |
||||
|
sprintf(a,"</# counter == %lu ", percnt_get()); |
||||
|
scrolltext(a); |
||||
|
} |
||||
|
break; |
||||
|
#endif |
||||
|
|
||||
|
#ifdef ANIMATION_SPIRALE |
||||
|
case 2: |
||||
|
spirale(5); |
||||
|
break; |
||||
|
#endif |
||||
|
|
||||
|
#ifdef ANIMATION_JOERN1 |
||||
|
case 3: |
||||
|
joern1(); |
||||
|
break; |
||||
|
#endif |
||||
|
|
||||
|
#ifdef ANIMATION_SNAKE |
||||
|
case 4: |
||||
|
snake(); |
||||
|
break; |
||||
|
#endif |
||||
|
|
||||
|
#ifdef ANIMATION_SCHACHBRETT |
||||
|
case 5: |
||||
|
schachbrett(20); |
||||
|
break; |
||||
|
#endif |
||||
|
|
||||
|
#ifdef ANIMATION_FEUER |
||||
|
case 6: |
||||
|
feuer(); |
||||
|
break; |
||||
|
#endif |
||||
|
|
||||
|
#ifdef ANIMATION_MATRIX |
||||
|
case 7: |
||||
|
matrix(); |
||||
|
break; |
||||
|
#endif |
||||
|
|
||||
|
#ifdef ANIMATION_RANDOM_BRIGHT |
||||
|
case 8: |
||||
|
random_bright(200); |
||||
|
break; |
||||
|
#endif |
||||
|
|
||||
|
#ifdef ANIMATION_GAMEOFLIFE |
||||
|
case 9: |
||||
|
gameoflife(); |
||||
|
break; |
||||
|
#endif |
||||
|
|
||||
|
case 29: |
||||
|
mode = 1; |
||||
|
break; |
||||
|
|
||||
|
#ifdef ANIMATION_TESTS |
||||
|
case 31: |
||||
|
test_level1(); |
||||
|
break; |
||||
|
case 32: |
||||
|
test_level2(); |
||||
|
break; |
||||
|
case 33: |
||||
|
test_level3(); |
||||
|
break; |
||||
|
case 35: |
||||
|
test1(); |
||||
|
while(1); |
||||
|
break; |
||||
|
#endif |
||||
|
|
||||
|
#ifdef ANIMATION_OFF |
||||
|
case 0xFF: |
||||
|
off(); |
||||
|
break; |
||||
|
#endif |
||||
|
|
||||
|
#ifdef MENU_SUPPORT |
||||
|
case 43: |
||||
|
menu(); |
||||
|
mode = oldOldmode; |
||||
|
#endif |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,4 @@ |
|||||
|
|
||||
|
void display_loop(); |
||||
|
|
||||
|
extern jmp_buf newmode_jmpbuf; |
@ -1,111 +1,9 @@ |
|||||
PRG = borgSim |
TARGET = libanimations.a |
||||
OPTIMIZE = -O0 |
TOPDIR = .. |
||||
LIBS = -lglut -lpthread -lGL -lGLU |
|
||||
CC = gcc |
|
||||
LD = ld |
|
||||
|
|
||||
override CFLAGS = -g -Wall -pedantic -std=c99 $(OPTIMIZE) |
include $(TOPDIR)/defaults.mk |
||||
$(DEFS) |
|
||||
override LDFLAGS = -Wl,-Map,$(PRG).map |
|
||||
|
|
||||
OBJ = breakpoint.o font_arial8.o font_small6.o font_uni53.o invader_draw.o \
|
SRC_SIM = main.c trackball.c |
||||
invader_init.o invader_proc.o invaders2.o joystick.o main.o menu.o pixel.o \
|
|
||||
programm.o scrolltext3.o snake.o trackball.o util.o tetris/input.o \
|
|
||||
tetris/logic.o tetris/piece.o tetris/playfield.o tetris/view.o prng.o \
|
|
||||
memxor_c.o noekeon.o stonefly.o |
|
||||
|
|
||||
all: $(PRG) |
|
||||
|
|
||||
$(PRG): $(OBJ) |
include $(TOPDIR)/rules.mk |
||||
$(CC) $(CFLAGS) $(LDFLAGS) $(LIBS) $(OBJ) -o $@ |
|
||||
|
|
||||
clean: |
|
||||
rm -rf $(OBJ) $(PRG) $(PRG).map |
|
||||
|
|
||||
breakpoint.o: breakpoint.c pixel.h util.h config.h |
|
||||
$(CC) $(CFLAGS) -c -o breakpoint.o breakpoint.c |
|
||||
|
|
||||
font_arial8.o: font_arial8.c font.h |
|
||||
$(CC) $(CFLAGS) -c -o font_arial8.o font_arial8.c |
|
||||
|
|
||||
font_small6.o: font_small6.c font.h |
|
||||
$(CC) $(CFLAGS) -c -o font_small6.o font_small6.c |
|
||||
|
|
||||
font_uni53.o: font_uni53.c font.h |
|
||||
$(CC) $(CFLAGS) -c -o font_uni53.o font_uni53.c |
|
||||
|
|
||||
invader_draw.o: invader_draw.c invaders2.h pixel.h util.h config.h \ |
|
||||
scrolltext.h joystick.h |
|
||||
$(CC) $(CFLAGS) -c -o invader_draw.o invader_draw.c |
|
||||
|
|
||||
invader_init.o: invader_init.c invaders2.h pixel.h util.h config.h \ |
|
||||
scrolltext.h joystick.h |
|
||||
$(CC) $(CFLAGS) -c -o invader_init.o invader_init.c |
|
||||
|
|
||||
invader_proc.o: invader_proc.c invaders2.h pixel.h util.h config.h \ |
|
||||
scrolltext.h joystick.h |
|
||||
$(CC) $(CFLAGS) -c -o invader_proc.o invader_proc.c |
|
||||
|
|
||||
invaders2.o: invaders2.c util.h invaders2.h pixel.h config.h scrolltext.h \ |
|
||||
joystick.h |
|
||||
$(CC) $(CFLAGS) -c -o invaders2.o invaders2.c |
|
||||
|
|
||||
joystick.o: joystick.c joystick.h |
|
||||
$(CC) $(CFLAGS) -c -o joystick.o joystick.c |
|
||||
|
|
||||
main.o: main.c config.h pixel.h util.h programm.h menu.h tetris/logic.h \ |
|
||||
tetris/piece.h trackball.h snake.h scrolltext.h |
|
||||
$(CC) $(CFLAGS) -c -o main.o main.c |
|
||||
|
|
||||
menu.o: menu.c menu.h config.h util.h pixel.h joystick.h snake.h \ |
|
||||
tetris/logic.h tetris/piece.h invaders2.h scrolltext.h |
|
||||
$(CC) $(CFLAGS) -c -o menu.o menu.c |
|
||||
|
|
||||
pixel.o: pixel.c pixel.h util.h config.h |
|
||||
$(CC) $(CFLAGS) -c -o pixel.o pixel.c |
|
||||
|
|
||||
programm.o: programm.c pixel.h util.h config.h programm.h joystick.h |
|
||||
$(CC) $(CFLAGS) -c -o programm.o programm.c |
|
||||
|
|
||||
scrolltext3.o: scrolltext3.c config.h scrolltext.h pixel.h util.h \ |
|
||||
font_arial8.h font.h font_small6.h font_uni53.h |
|
||||
$(CC) $(CFLAGS) -c -o scrolltext3.o scrolltext3.c |
|
||||
|
|
||||
snake.o: snake.c pixel.h util.h config.h joystick.h |
|
||||
$(CC) $(CFLAGS) -c -o snake.o snake.c |
|
||||
|
|
||||
trackball.o: trackball.c trackball.h |
|
||||
$(CC) $(CFLAGS) -c -o trackball.o trackball.c |
|
||||
|
|
||||
util.o: util.c joystick.h |
|
||||
$(CC) $(CFLAGS) -c -o util.o util.c |
|
||||
|
|
||||
noekeon.o: noekeon.c noekeon.h memxor.h |
|
||||
$(CC) $(CFLAGS) -c -o $@ $< |
|
||||
|
|
||||
memxor_c.o: memxor_c.c memxor.h |
|
||||
$(CC) $(CFLAGS) -c -o $@ $< |
|
||||
|
|
||||
prng.o: prng.c prng.h noekeon.h memxor.h |
|
||||
$(CC) $(CFLAGS) -c -o $@ $< |
|
||||
|
|
||||
tetris/input.o: tetris/input.c joystick.h util.h tetris/input.h |
|
||||
$(CC) $(CFLAGS) -c -o tetris/input.o tetris/input.c |
|
||||
|
|
||||
logic.o: tetris/logic.c tetris/logic.h tetris/piece.h tetris/playfield.h \ |
|
||||
tetris/view.h tetris/input.h prng.h ../borg-base/prng.h |
|
||||
$(CC) $(CFLAGS) -c -o tetris/logic.o tetris/logic.c |
|
||||
|
|
||||
tetris/piece.o: tetris/piece.c tetris/piece.h |
|
||||
$(CC) $(CFLAGS) -c -o tetris/piece.o tetris/piece.c |
|
||||
|
|
||||
tetris/playfield.o: tetris/playfield.c tetris/playfield.h tetris/piece.h |
|
||||
$(CC) $(CFLAGS) -c -o tetris/playfield.o tetris/playfield.c |
|
||||
|
|
||||
tetris/view.o: tetris/view.c config.h pixel.h util.h scrolltext.h \ |
|
||||
tetris/logic.h tetris/piece.h tetris/playfield.h tetris/view.h |
|
||||
$(CC) $(CFLAGS) -c -o tetris/view.o tetris/view.c |
|
||||
|
|
||||
stonefly.o: stonefly.h stonefly.c pixel.h util.h config.h prng.h \ |
|
||||
../borg-base/prng.h tetris/piece.h |
|
||||
$(CC) $(CFLAGS) -c -o stonefly.o stonefly.c |
|
||||
|
@ -1,309 +1,259 @@ |
|||||
|
|
||||
|
|
||||
#ifdef _WIN32 |
#ifdef _WIN32 |
||||
# include <GL/glut.h> |
# include <GL/glut.h> |
||||
# include <windows.h> |
# include <windows.h> |
||||
# include <process.h> |
# include <process.h> |
||||
# define pthread_t int |
# define pthread_t int |
||||
#else |
#else |
||||
# ifdef OSX_ |
# ifdef OSX_ |
||||
# include <GLUT/glut.h> |
# include <GLUT/glut.h> |
||||
# else |
# else |
||||
# include <GL/glut.h> |
# include <GL/glut.h> |
||||
# endif |
# endif |
||||
# include <pthread.h> // for threads in linux
|
# include <pthread.h> // for threads in linux
|
||||
# include <stdlib.h> |
# include <stdlib.h> |
||||
# include <sys/time.h> |
# include <sys/time.h> |
||||
# include <sys/types.h> |
# include <sys/types.h> |
||||
# include <unistd.h> |
# include <unistd.h> |
||||
#endif |
#endif |
||||
|
|
||||
#include <stdio.h> |
#include <stdio.h> |
||||
#include <setjmp.h> |
#include <setjmp.h> |
||||
#include "config.h" |
#include "../config.h" |
||||
#include "pixel.h" |
#include "../display_loop.h" |
||||
#include "programm.h" |
#include "../pixel.h" |
||||
#include "menu.h" |
//#include "programm.h"
|
||||
#include "tetris/logic.h" |
//#include "menu.h"
|
||||
#include "trackball.h" |
//#include "../tetris/logic.h"
|
||||
#include "snake.h" |
#include "trackball.h" |
||||
#include "stonefly.h" |
//#include "../games/snake.h"
|
||||
|
//#include "stonefly.h"
|
||||
#include "scrolltext.h" |
|
||||
|
//#include "scrolltext.h"
|
||||
|
|
||||
|
|
||||
unsigned char fakeport; |
|
||||
jmp_buf newmode_jmpbuf; |
unsigned char fakeport; |
||||
volatile unsigned char oldMode, oldOldmode, mode; |
jmp_buf newmode_jmpbuf; |
||||
extern unsigned char waitForFire; |
volatile unsigned char oldMode, oldOldmode, mode; |
||||
|
extern unsigned char waitForFire; |
||||
|
|
||||
int WindWidth, WindHeight; |
|
||||
|
int WindWidth, WindHeight; |
||||
unsigned char pixmap[NUMPLANE][NUM_ROWS][LINEBYTES]; |
|
||||
unsigned char joystick; |
unsigned char pixmap[NUMPLANE][NUM_ROWS][LINEBYTES]; |
||||
|
unsigned char joystick; |
||||
float view_rotx = 0, view_roty = 0, view_rotz = 0; |
|
||||
int win; |
float view_rotx = 0, view_roty = 0, view_rotz = 0; |
||||
|
int win; |
||||
|
|
||||
pthread_t simthread; |
|
||||
GLUquadric* quad; |
pthread_t simthread; |
||||
|
GLUquadric* quad; |
||||
void drawLED(int color, float pos_x, float pos_y, float pos_z) { |
|
||||
glPushMatrix(); |
void drawLED(int color, float pos_x, float pos_y, float pos_z) { |
||||
glTranslatef(pos_x, pos_y, pos_z); |
glPushMatrix(); |
||||
glCallList(color); |
glTranslatef(pos_x, pos_y, pos_z); |
||||
glPopMatrix(); |
glCallList(color); |
||||
} |
glPopMatrix(); |
||||
|
} |
||||
void display(void){ |
|
||||
int x, y, z, level, color; |
void display(void){ |
||||
tbReshape(WindWidth, WindHeight); |
int x, y, z, level, color; |
||||
glClear(GL_COLOR_BUFFER_BIT); |
tbReshape(WindWidth, WindHeight); |
||||
glPushMatrix(); |
glClear(GL_COLOR_BUFFER_BIT); |
||||
glTranslatef(NUM_COLS*2., 0., NUM_ROWS*2.); |
glPushMatrix(); |
||||
tbMatrix(); |
glTranslatef(NUM_COLS*2., 0., NUM_ROWS*2.); |
||||
glRotatef(view_rotx, 1.0, 0.0, 0.0); |
tbMatrix(); |
||||
glRotatef(view_roty, 0.0, 1.0, 0.0); |
glRotatef(view_rotx, 1.0, 0.0, 0.0); |
||||
glRotatef(view_rotz, 0.0, 0.0, 1.0); |
glRotatef(view_roty, 0.0, 1.0, 0.0); |
||||
glTranslatef(-NUM_COLS*2, 0., -NUM_ROWS*2.); |
glRotatef(view_rotz, 0.0, 0.0, 1.0); |
||||
for (x = 0; x < 1; x++) { |
glTranslatef(-NUM_COLS*2, 0., -NUM_ROWS*2.); |
||||
for (y = 0; y < NUM_COLS; y++) { |
for (x = 0; x < 1; x++) { |
||||
for (z = 0; z < NUM_ROWS; z++) { |
for (y = 0; y < NUM_COLS; y++) { |
||||
color = 0; |
for (z = 0; z < NUM_ROWS; z++) { |
||||
for (level = 0; level < NUMPLANE; level++) { |
color = 0; |
||||
if (pixmap[level][z%NUM_ROWS][y/8] & (1 << y % 8)) { |
for (level = 0; level < NUMPLANE; level++) { |
||||
color = level+1; |
if (pixmap[level][z%NUM_ROWS][y/8] & (1 << y % 8)) { |
||||
} |
color = level+1; |
||||
} |
} |
||||
drawLED(color, (float)y*4.0, |
} |
||||
(float)x*4.0, |
drawLED(color, (float)y*4.0, |
||||
(float)(NUM_ROWS-1-z)*4.0); |
(float)x*4.0, |
||||
} |
(float)(NUM_ROWS-1-z)*4.0); |
||||
} |
} |
||||
} |
} |
||||
glPopMatrix(); |
} |
||||
glutSwapBuffers(); |
glPopMatrix(); |
||||
#ifdef _WIN32 |
glutSwapBuffers(); |
||||
Sleep(10); |
#ifdef _WIN32 |
||||
#else |
Sleep(10); |
||||
usleep(20000); |
#else |
||||
#endif |
usleep(20000); |
||||
joystick = 255; |
#endif |
||||
} |
joystick = 255; |
||||
|
} |
||||
void keyboard(unsigned char key, int x, int y){ |
|
||||
switch (key) { |
void keyboard(unsigned char key, int x, int y){ |
||||
case 'q': printf("Quit\n"); |
switch (key) { |
||||
glutDestroyWindow(win); |
case 'q': printf("Quit\n"); |
||||
exit(0); |
glutDestroyWindow(win); |
||||
break; |
exit(0); |
||||
case ' ': |
break; |
||||
fakeport |= 0x01; |
case ' ': |
||||
break; |
fakeport |= 0x01; |
||||
case 'a': |
break; |
||||
fakeport |= 0x02; |
case 'a': |
||||
break; |
fakeport |= 0x02; |
||||
case 'd': |
break; |
||||
fakeport |= 0x04; |
case 'd': |
||||
break; |
fakeport |= 0x04; |
||||
case 's': |
break; |
||||
fakeport |= 0x08; |
case 's': |
||||
break; |
fakeport |= 0x08; |
||||
case 'w': |
break; |
||||
fakeport |= 0x10; |
case 'w': |
||||
break; |
fakeport |= 0x10; |
||||
} |
break; |
||||
} |
} |
||||
|
} |
||||
void keyboardup(unsigned char key, int x, int y){ |
|
||||
switch (key) { |
void keyboardup(unsigned char key, int x, int y){ |
||||
case ' ': |
switch (key) { |
||||
fakeport &= ~0x01; |
case ' ': |
||||
break; |
fakeport &= ~0x01; |
||||
case 'a': |
break; |
||||
fakeport &= ~0x02; |
case 'a': |
||||
break; |
fakeport &= ~0x02; |
||||
case 'd': |
break; |
||||
fakeport &= ~0x04; |
case 'd': |
||||
break; |
fakeport &= ~0x04; |
||||
case 's': |
break; |
||||
fakeport &= ~0x08; |
case 's': |
||||
break; |
fakeport &= ~0x08; |
||||
case 'w': |
break; |
||||
fakeport &= ~0x10; |
case 'w': |
||||
break; |
fakeport &= ~0x10; |
||||
} |
break; |
||||
} |
} |
||||
|
} |
||||
void mouse(int button, int state, int x, int y) |
|
||||
{ |
void mouse(int button, int state, int x, int y) |
||||
tbMouse(button, state, x, y); |
{ |
||||
} |
tbMouse(button, state, x, y); |
||||
|
} |
||||
void motion(int x, int y) |
|
||||
{ |
void motion(int x, int y) |
||||
tbMotion(x, y); |
{ |
||||
} |
tbMotion(x, y); |
||||
|
} |
||||
void reshape(int width, int height) |
|
||||
{ |
void reshape(int width, int height) |
||||
|
{ |
||||
tbReshape(width, height); |
|
||||
|
tbReshape(width, height); |
||||
glViewport(0, 0, width, height); |
|
||||
|
glViewport(0, 0, width, height); |
||||
glMatrixMode(GL_PROJECTION); |
|
||||
glLoadIdentity(); |
glMatrixMode(GL_PROJECTION); |
||||
gluPerspective(60.0, (float)WindWidth/(float)WindWidth, 5., 1000.); |
glLoadIdentity(); |
||||
gluLookAt(NUM_ROWS*2., NUM_ROWS*2.+50., NUM_COLS*2., |
gluPerspective(60.0, (float)WindWidth/(float)WindWidth, 5., 1000.); |
||||
NUM_ROWS*2., NUM_ROWS*2., NUM_COLS*2., |
gluLookAt(NUM_ROWS*2., NUM_ROWS*2.+50., NUM_COLS*2., |
||||
0.0, 0.0, 1.0); |
NUM_ROWS*2., NUM_ROWS*2., NUM_COLS*2., |
||||
glMatrixMode(GL_MODELVIEW); |
0.0, 0.0, 1.0); |
||||
glLoadIdentity(); |
glMatrixMode(GL_MODELVIEW); |
||||
|
glLoadIdentity(); |
||||
WindWidth = width; |
|
||||
WindHeight = height; |
WindWidth = width; |
||||
} |
WindHeight = height; |
||||
|
} |
||||
/* change view angle */ |
|
||||
static void special(int k, int x, int y) { |
/* change view angle */ |
||||
switch (k) { |
static void special(int k, int x, int y) { |
||||
case GLUT_KEY_UP: |
switch (k) { |
||||
view_rotx += 5.0; |
case GLUT_KEY_UP: |
||||
break; |
view_rotx += 5.0; |
||||
case GLUT_KEY_DOWN: |
break; |
||||
view_rotx -= 5.0; |
case GLUT_KEY_DOWN: |
||||
break; |
view_rotx -= 5.0; |
||||
case GLUT_KEY_LEFT: |
break; |
||||
view_rotz += 5.0; |
case GLUT_KEY_LEFT: |
||||
break; |
view_rotz += 5.0; |
||||
case GLUT_KEY_RIGHT: |
break; |
||||
view_rotz -= 5.0; |
case GLUT_KEY_RIGHT: |
||||
break; |
view_rotz -= 5.0; |
||||
default: |
break; |
||||
return; |
default: |
||||
} |
return; |
||||
glutPostRedisplay(); |
} |
||||
} |
glutPostRedisplay(); |
||||
/*
|
} |
||||
void timf(int value) { |
/*
|
||||
glutPostRedisplay(); |
void timf(int value) { |
||||
glutTimerFunc(1, timf, 0); |
glutPostRedisplay(); |
||||
}*/ |
glutTimerFunc(1, timf, 0); |
||||
|
}*/ |
||||
void *display_loop(void * unused) { |
|
||||
unsigned char mode;;; |
void *display_loop_run(void * unused) { |
||||
mode = setjmp(newmode_jmpbuf); |
display_loop(); |
||||
oldOldmode = oldMode; |
} |
||||
waitForFire = 1; |
|
||||
scrolltext("</#Scrolltext3 Test"); |
int main(int argc, char **argv){ |
||||
for(;;){ |
WindHeight = 700; |
||||
oldMode = mode; |
WindWidth = 700; |
||||
switch(mode++) { |
glutInit(&argc,argv); |
||||
case 1: |
glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE); |
||||
stonefly(); |
glutInitWindowSize(WindHeight, WindWidth); |
||||
break; |
win = glutCreateWindow("16x16 Borg Simulator"); |
||||
case 2: |
|
||||
breakpoint(); |
// callback
|
||||
break; |
//glutReshapeFunc(reshape);
|
||||
case 3: |
glutDisplayFunc(display); |
||||
schwarzesLoch(); |
glutIdleFunc(display); |
||||
break; |
glutSetKeyRepeat(GLUT_KEY_REPEAT_OFF); |
||||
case 4: |
glutKeyboardFunc(keyboard); |
||||
scrolltext("</#Scrolltext3 Test"); |
glutKeyboardUpFunc(keyboardup); |
||||
break; |
glutSpecialFunc(special); |
||||
case 5: |
glutMouseFunc(mouse); |
||||
spirale(20); |
glutMotionFunc(motion); |
||||
break; |
|
||||
case 6: |
// clearcolor & main loop
|
||||
joern1(); |
glClearColor(0,0,0,1.0); |
||||
break; |
gluPerspective(60.0, (float)WindWidth/(float)WindWidth, 5., 1000.); |
||||
case 7: |
gluLookAt(NUM_COLS*2., NUM_COLS*2.+50., NUM_ROWS*2., |
||||
snake(); |
NUM_COLS*2., NUM_COLS*2., NUM_ROWS*2., |
||||
break; |
0.0, 0.0, 1.0); |
||||
case 8: |
|
||||
schachbrett(20); |
// init Call List for LED
|
||||
break; |
quad = gluNewQuadric(); |
||||
case 9: |
glNewList(0, GL_COMPILE); |
||||
feuer(); |
glColor4f(0.8, 0.0, 0.0, 1.); |
||||
break; |
gluSphere(quad, 1.0, 12, 12); |
||||
case 10: |
glEndList(); |
||||
matrix(); |
glNewList(1, GL_COMPILE); |
||||
break; |
glColor4f(0.5, 0.0, 0.0, 1.); |
||||
case 31: |
gluSphere(quad, 1.4, 12, 12); |
||||
fadein(); |
glEndList(); |
||||
break; |
glNewList(2, GL_COMPILE); |
||||
case 32: |
glColor4f(0.7, 0.0, 0.0, 1.); |
||||
test1(); |
gluSphere(quad, 1.55, 12, 12); |
||||
break; |
glEndList(); |
||||
case 43: |
glNewList(3, GL_COMPILE); |
||||
menu(); |
glColor4f(1.00, 0.0, 0.0, 1.); |
||||
mode = oldOldmode; |
gluSphere(quad, 1.7, 12, 12); |
||||
default: |
glEndList(); |
||||
break; |
|
||||
} |
tbInit(GLUT_LEFT_BUTTON); |
||||
} |
tbAnimate(GL_FALSE); |
||||
|
|
||||
} |
// start display_loop thread
|
||||
|
#ifdef _WIN32 |
||||
int main(int argc, char **argv){ |
_beginthread((void (*)(void*))display_loop_run, 0, NULL); |
||||
WindHeight = 700; |
#else |
||||
WindWidth = 700; |
pthread_create(&simthread, NULL, display_loop_run, NULL); |
||||
glutInit(&argc,argv); |
#endif |
||||
glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE); |
//glutTimerFunc(40, timf, 0); // Set up timer for 40ms, about 25 fps
|
||||
glutInitWindowSize(WindHeight, WindWidth); |
glutMainLoop(); |
||||
win = glutCreateWindow("16x16 Borg Simulator"); |
return 0; |
||||
|
} |
||||
// callback
|
|
||||
//glutReshapeFunc(reshape);
|
|
||||
glutDisplayFunc(display); |
|
||||
glutIdleFunc(display); |
|
||||
glutSetKeyRepeat(GLUT_KEY_REPEAT_OFF); |
|
||||
glutKeyboardFunc(keyboard); |
|
||||
glutKeyboardUpFunc(keyboardup); |
|
||||
glutSpecialFunc(special); |
|
||||
glutMouseFunc(mouse); |
|
||||
glutMotionFunc(motion); |
|
||||
|
|
||||
// clearcolor & main loop
|
|
||||
glClearColor(0,0,0,1.0); |
|
||||
gluPerspective(60.0, (float)WindWidth/(float)WindWidth, 5., 1000.); |
|
||||
gluLookAt(NUM_COLS*2., NUM_COLS*2.+50., NUM_ROWS*2., |
|
||||
NUM_COLS*2., NUM_COLS*2., NUM_ROWS*2., |
|
||||
0.0, 0.0, 1.0); |
|
||||
|
|
||||
// init Call List for LED
|
|
||||
quad = gluNewQuadric(); |
|
||||
glNewList(0, GL_COMPILE); |
|
||||
glColor4f(0.8, 0.0, 0.0, 1.); |
|
||||
gluSphere(quad, 1.0, 12, 12); |
|
||||
glEndList(); |
|
||||
glNewList(1, GL_COMPILE); |
|
||||
glColor4f(0.5, 0.0, 0.0, 1.); |
|
||||
gluSphere(quad, 1.4, 12, 12); |
|
||||
glEndList(); |
|
||||
glNewList(2, GL_COMPILE); |
|
||||
glColor4f(0.7, 0.0, 0.0, 1.); |
|
||||
gluSphere(quad, 1.55, 12, 12); |
|
||||
glEndList(); |
|
||||
glNewList(3, GL_COMPILE); |
|
||||
glColor4f(1.00, 0.0, 0.0, 1.); |
|
||||
gluSphere(quad, 1.7, 12, 12); |
|
||||
glEndList(); |
|
||||
|
|
||||
tbInit(GLUT_LEFT_BUTTON); |
|
||||
tbAnimate(GL_FALSE); |
|
||||
|
|
||||
// start display_loop thread
|
|
||||
#ifdef _WIN32 |
|
||||
_beginthread((void (*)(void*))display_loop, 0, NULL); |
|
||||
#else |
|
||||
pthread_create(&simthread, NULL, display_loop, NULL); |
|
||||
#endif |
|
||||
//glutTimerFunc(40, timf, 0); // Set up timer for 40ms, about 25 fps
|
|
||||
glutMainLoop(); |
|
||||
return 0; |
|
||||
} |
|
||||
|
@ -1,8 +1,6 @@ |
|||||
#ifndef UTIL_H |
#ifndef UTIL_H |
||||
#define UTIL_H |
#define UTIL_H |
||||
|
|
||||
#include <avr/io.h> |
|
||||
|
|
||||
void wait(int ms); |
void wait(int ms); |
||||
|
|
||||
#endif |
#endif |
||||
|
Loading…
Reference in new issue