예제 #1
0
Renderer::Renderer(Tracker &tracker)
	: m_window(NULL),
      m_tracker(tracker)
{
    SDL_Init(SDL_INIT_VIDEO);
	if (SDL_Init(SDL_INIT_VIDEO) < 0)
	{
		sdlDie("Unable to initialize SDL");
	}

	m_window = SDL_CreateWindow("OpenGL Test1",
		SDL_WINDOWPOS_CENTERED,
		SDL_WINDOWPOS_CENTERED,
		640, 480,
		SDL_WINDOW_OPENGL | SDL_WINDOW_SHOWN);
	if (m_window == NULL)
	{
		sdlDie("Unable to initialize SDL");
	}
	checkSDLError(__LINE__);

	m_glContext = SDL_GL_CreateContext(m_window);
	checkSDLError(__LINE__);
}
예제 #2
0
void initwindow(SDL_Window ** window, SDL_GLContext * context){
    if (SDL_Init(SDL_INIT_EVERYTHING) != 0 ){
        std::cerr << SDL_GetError() << std::endl;
        exit(1);
    }

    atexit(SDL_Quit);

    int flags = IMG_INIT_JPG | IMG_INIT_PNG;
    if ( (IMG_Init(flags) & flags) != flags ){
        std::cerr << "IMG_Init failed : \n" << IMG_GetError() << std::endl;
        exit(1);
    }

    SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
    SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 8);
    SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 8);
    SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8);
    SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, 8);
    SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 16);
    SDL_GL_SetAttribute(SDL_GL_MULTISAMPLEBUFFERS, 1);
    SDL_GL_SetAttribute(SDL_GL_MULTISAMPLESAMPLES, 4);

    *window = SDL_CreateWindow(
            WINDOW_NAME,
            SDL_WINDOWPOS_UNDEFINED,
            SDL_WINDOWPOS_UNDEFINED,
            SCREEN_WIDTH,
            SCREEN_HEIGHT,
            SDL_WINDOW_OPENGL
    );
    if (*window == nullptr) sdlDie("Unable to create window");

    *context = SDL_GL_CreateContext(*window);
    checkSDLError();

    std::cout << "------SDL Test------\n";
    SDL_version sdlversion;
    SDL_GetVersion(&sdlversion);
    std::cout << "SDL Version " << (int)sdlversion.major << "." << (int)sdlversion.minor << "." << (int)sdlversion.patch << std::endl;
    std::cout << "OpenGL Version " << glGetString(GL_VERSION) << std::endl;

    SDL_GL_SetSwapInterval(1);
    /*renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
    if (renderer == nullptr) sdlDie("Unable to create renderer");

    SDL_Texture *texture = LoadImage("hello.bmp");
    if (texture == nullptr){
        std::cerr << SDL_GetError() << std::endl;
        return 1;
    }

    SDL_RenderClear(renderer);
    SDL_RenderCopy(renderer, texture, NULL, NULL);
    SDL_RenderPresent(renderer);

    SDL_Delay(1000);

    SDL_DestroyTexture(texture);
    SDL_DestroyRenderer(renderer);*/
}