Beispiel #1
0
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;
}
Beispiel #2
0
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);
}
Beispiel #3
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;
}
Beispiel #4
0
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;
}