Hätte hier schonmal eine komplette INIT für SDL und OpenGL parat, aber noch ungetestet...^^Dirty Oerti hat geschrieben:Hier! ^^jside hat geschrieben:...Mal nebenbei angemerkt, jeder 3te hier incl. Ich bastelt an einer GameEngine ...warum proggen wir nicht gleich zusammen eine?
Code: Alles auswählen
typedef struct {
int r;
int b;
int g;
int alpha;
} GfxColor;
typedef struct {
int depth;
int width;
int heigth;
int lod; //Level of Detail, unbenutzt
int efflod; //Effect Level of Detail, ebenfalls unbenutzt
int fullscreen; //1= Fullscreen
char *title; //Fenster Titel
char *task; //Fenster Task
GfxColor background; //OpenGL clear() hintergrund
}GfxOptions;
void SDLinit(GfxOptions Gfx) {
if(SDL_Init(SDL_INIT_EVERYTHING) == -1) {
fprintf(stderr,"Unable to init SDL: %s\n",SDL_GetError());
return;
}
SDL_WM_SetCaption(Gfx.title, Gfx.task);
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
if(!Gfx.fullscreen) SDL_SetVideoMode(Gfx.heigth, Gfx.width, Gfx.depth, SDL_OPENGL);
else SDL_SetVideoMode(Gfx.heigth, Gfx.width, Gfx.depth, SDL_OPENGL|SDL_FULLSCREEN);
}
void GLinit(GfxOptions Gfx) {
glEnable(GL_TEXTURE_2D);
glBlendFunc(GL_SRC_ALPHA,GL_ONE);
glClearColor(Gfx.background.r, Gfx.background.b, Gfx.background.g, Gfx.background.alpha);
glClearDepth(Gfx.depth);
glDepthFunc(GL_LESS);
glEnable(GL_DEPTH_TEST);
glShadeModel(GL_SMOOTH);
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
}