int Engine::init(void) { int i; this->x_res = 1920; this->y_res = 1080; this->fov = 70; this->z_near = 0.01; this->z_far = 100; if (SDL_Init(SDL_INIT_EVERYTHING) < 0) return (sdlError(0)); this->window = SDL_CreateWindow("Pouet", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, this->x_res, this->y_res, SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE); if (this->window == NULL) return (sdlError(0)); if (!(this->context = SDL_GL_CreateContext(this->window))) return (sdlError(0)); this->camera = new Camera(); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(this->fov, (double)this->x_res / (double)this->y_res, this->z_near, this->z_far); glEnable(GL_DEPTH_TEST); glPointSize(16); glEnable(GL_POINT_SMOOTH); glEnable(GL_BLEND); glShadeModel(GL_SMOOTH); // Vertex reader glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, this->vertex_tab); initLight(); this->moving = false; // Generate and print points makeCube(0.4); makeWTF(PARTY_START, PARTY_SIZE); printArray(0, 336); return (0); }
RGBAPI bool rgb_open(const char *fn) { #if !SDL_VERSION_ATLEAST(2,0,0) const SDL_VideoInfo *vi; #endif (void)fn; if (SDL_Init(SDL_INIT_VIDEO) < 0) { sdlError("initializing SDL"); return false; } #if !SDL_VERSION_ATLEAST(2,0,0) vi = SDL_GetVideoInfo(); if (vi != NULL) { nativewidth = vi->current_w; nativeheight = vi->current_h; } #endif return screen_init(DEFAULT_WIDTH, DEFAULT_HEIGHT); }
static bool screen_init(unsigned int newwidth, unsigned int newheight) { #if SDL_VERSION_ATLEAST(2,0,0) window = SDL_CreateWindow(TITLE, SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, newwidth, newheight, newwidth ? SDL_WINDOW_RESIZABLE : SDL_WINDOW_FULLSCREEN_DESKTOP); if (window) { renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED); } if (!window || !renderer) #else Uint32 flags = SDL_HWSURFACE; if (newwidth == 0) { if (screen && !fullscreen) { winwidth = screen->w; winheight = screen->h; } newwidth = nativewidth; newheight = nativeheight; flags |= SDL_FULLSCREEN; fullscreen = true; } else { flags |= SDL_RESIZABLE; fullscreen = false; } screen = SDL_SetVideoMode(newwidth, newheight, 0, flags); SDL_WM_SetCaption(TITLE, TITLE); if (!screen) #endif { sdlError("setting video mode"); return false; } else { return redraw(); } }
static bool pollevents(void) { SDL_Event event; while (SDL_PollEvent(&event) > 0) { switch (event.type) { #if SDL_VERSION_ATLEAST(2,0,0) case SDL_WINDOWEVENT: if (event.window.event == SDL_WINDOWEVENT_EXPOSED) { if (!redraw()) return false; } break; #else case SDL_VIDEOEXPOSE: if (!redraw()) return false; break; case SDL_VIDEORESIZE: if (screen->w != (event.resize.w) || screen->h != (event.resize.h)) { if (!screen_init(event.resize.w, event.resize.h)) return false; } break; #endif case SDL_MOUSEBUTTONDOWN: if (event.button.button == SDL_BUTTON_LEFT #if SDL_VERSION_ATLEAST(2,0,2) && event.button.clicks == 2 #endif ) { bool res; if (!fullscreen) { #if SDL_VERSION_ATLEAST(2,0,0) res = !SDL_SetWindowFullscreen(window, SDL_WINDOW_FULLSCREEN_DESKTOP); fullscreen = true; #else res = screen_init(0, 0); #endif } else { #if SDL_VERSION_ATLEAST(2,0,0) res = !SDL_SetWindowFullscreen(window, 0); fullscreen = false; #else res = screen_init(winwidth, winheight); #endif } if (!res) { sdlError("toggling full screen size"); return false; } } break; case SDL_QUIT: return false; break; default: break; } } return true; }