intptr_t event(const ev * e) { intptr_t ret = 1; cveventtype t = evType(e); if (t != CVE_UPDATE) cvReport("got event %s, %p %p", evName(e), evArg0(e), evArg1(e)); switch (t) { #if !defined NPAPI case CVQ_LOGGER: ret = (intptr_t)report; break; #endif case CVQ_NAME: ret = (intptr_t)"test"; break; case CVQ_XPOS: ret = 50; break; case CVQ_YPOS: ret = 50; break; case CVQ_WIDTH: ret = 640; break; case CVQ_HEIGHT: ret = 480; break; case CVE_INIT: init(); break; case CVE_TERM: term(); break; case CVE_GLINIT: glinit(); break; case CVE_DOWN: ret = down(evWhich(e)); break; case CVE_UP: ret = up(evWhich(e)); break; case CVE_UNICODE: unicode(evUnicode(e)); break; case CVE_MOTION: motion(evX(e), evY(e)); break; case CVE_CLOSE: close(); break; case CVE_INVOKE: invoke(evMethod(e)); break; case CVE_RESIZE: resize(evWidth(e), evHeight(e)); break; case CVE_UPDATE: update(); break; default: ret = 0; break; } return ret; }
int main(int argc, char **argv) { GLenum res; if (argc <= 1) return (1); glutInit(&argc, argv); if ((res = glinit()) != GLEW_OK) { fprintf(stderr, "Error: '%s'\n", glewGetErrorString(res)); return (1); } glEnable(GL_DEPTH_TEST); glDepthFunc(GL_LESS); glClearColor(0, 0.2f, 0.2f, 0); gameset(argv[1]); glutMainLoop(); return (0); }
int main(int argc, char **argv) { int result = EXIT_FAILURE; if(SDL_Init(SDL_INIT_VIDEO) < 0) goto out; setupformat(); if(resize(1024, 768, false, Diagonal)) goto out_sdl; SDL_WM_SetCaption("Radmire", NULL); SDL_EnableKeyRepeat(0, 0); glinit(); setupclock(); result = run(); out_sdl: SDL_Quit(); out: return result; }
int main(int argc, char *argv[]) { SDL_Init(SDL_INIT_VIDEO); SDL_Window *window = SDL_CreateWindow("An SDL2 window", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 1280, 720, SDL_WINDOW_OPENGL); if (window == NULL) { Log("Could not create window: %s\n", SDL_GetError()); return 1; } SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_ES); SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 2); SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 0); SDL_GLContext context = SDL_GL_CreateContext(window); if (context == NULL) { Log("Could not create context: %s\n", SDL_GetError()); return 1; } int res = SDL_GL_MakeCurrent(window, context); if (res != 0) { Log("Could not make context current: %s\n", SDL_GetError()); return 1; } glExtLoadAll((PFNGLGETPROC*)&SDL_GL_GetProcAddress); run = glinit(); SDL_SetWindowSize(window, 1280, 720); while (run) { SDL_Event event; while (SDL_PollEvent(&event)) { if (event.type == SDL_WINDOWEVENT) { if (event.window.event == SDL_WINDOWEVENT_SIZE_CHANGED) { im::uistate.windowx = (event.window.data1 <= 0 ? 1 : event.window.data1); im::uistate.windowy = (event.window.data2 <= 0 ? 1 : event.window.data2); glresize(im::uistate.windowx, im::uistate.windowy); } } else if (event.type == SDL_MOUSEBUTTONDOWN) { if (event.button.button == SDL_BUTTON_LEFT) { im::uistate.mousebuttonsdown |= MOUSEBUTTON01; } else if (event.button.button == SDL_BUTTON_MIDDLE) { im::uistate.mousebuttonsdown |= MOUSEBUTTON02; } else if (event.button.button == SDL_BUTTON_RIGHT) { im::uistate.mousebuttonsdown |= MOUSEBUTTON03; } } else if (event.type == SDL_MOUSEBUTTONUP) { if (event.button.button == SDL_BUTTON_LEFT) { im::uistate.mousebuttonsdown ^= MOUSEBUTTON01; } else if (event.button.button == SDL_BUTTON_MIDDLE) { im::uistate.mousebuttonsdown ^= MOUSEBUTTON02; } else if (event.button.button == SDL_BUTTON_RIGHT) { im::uistate.mousebuttonsdown ^= MOUSEBUTTON03; } } else if (event.type == SDL_MOUSEMOTION) { im::uistate.mousex = event.button.x; im::uistate.mousey = event.button.y; } else if (event.type == SDL_KEYUP) { if (event.key.keysym.sym == SDLK_ESCAPE) { if (showSidebar) showSidebar = false; else run = false; } } } glloop(); SDL_GL_SwapWindow(window); // const Uint8 *state = SDL_GetKeyboardState(nullptr); // run = !state[SDL_SCANCODE_ESCAPE]; } SDL_GL_DeleteContext(context); SDL_DestroyWindow(window); SDL_Quit(); return 0; }