Advertisement
Guest User

Untitled

a guest
Feb 19th, 2015
370
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.36 KB | None | 0 0
  1.         int width = *vid_width;
  2.         int height = *vid_height;
  3.         int xpos = SDL_WINDOWPOS_CENTERED;
  4.         int ypos = SDL_WINDOWPOS_CENTERED;
  5.         Uint32 flags = SDL_WINDOW_OPENGL|SDL_WINDOW_SHOWN;
  6.         if(*vid_fullscreen)
  7.             flags |= SDL_WINDOW_FULLSCREEN;
  8.  
  9.         SDL_GL_SetAttribute(SDL_GL_ACCELERATED_VISUAL, SDL_TRUE);
  10.         SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, SDL_TRUE);
  11.         SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 8);
  12.         SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 8);
  13.         SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8);
  14.         SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, 8);
  15.         SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 24);
  16.         SDL_GL_SetAttribute(SDL_GL_STENCIL_SIZE, 8);
  17.  
  18.         Log::get().stream()<< "Creating window "<<width<<"x"<<height<<", flags 0x"<<std::hex<<flags;
  19.         mSDLWindow = SDL_CreateWindow("My Title", xpos, ypos, width, height, flags);
  20.         if(mSDLWindow == nullptr)
  21.         {
  22.             std::stringstream sstr;
  23.             sstr<< "SDL_CreateWindow Error: "<<SDL_GetError();
  24.             throw std::runtime_error(sstr.str());
  25.         }
  26.  
  27.         graphicswindow_SDL2();
  28.         osg::ref_ptr<osg::GraphicsContext::Traits> traits = new osg::GraphicsContext::Traits;
  29.         SDL_GetWindowPosition(mSDLWindow, &traits->x, &traits->y);
  30.         SDL_GetWindowSize(mSDLWindow, &traits->width, &traits->height);
  31.         traits->windowName = SDL_GetWindowTitle(mSDLWindow);
  32.         traits->windowDecoration = (SDL_GetWindowFlags(mSDLWindow)&SDL_WINDOW_BORDERLESS);
  33.         traits->screenNum = SDL_GetWindowDisplayIndex(mSDLWindow);
  34.         // FIXME: Some way to get these settings back from the SDL window?
  35.         traits->red = 8;
  36.         traits->green = 8;
  37.         traits->blue = 8;
  38.         traits->alpha = 8;
  39.         traits->depth = 24;
  40.         traits->stencil = 8;
  41.         traits->doubleBuffer = true;
  42.         traits->inheritedWindowData = new GraphicsWindowSDL2::WindowData(mSDLWindow);
  43.  
  44.         osg::ref_ptr<osg::GraphicsContext> gc = osg::GraphicsContext::createGraphicsContext(traits.get());
  45.         if(!gc.valid()) throw std::runtime_error("Failed to create GraphicsContext");
  46.  
  47.         mCamera = new osg::Camera;
  48.         mCamera->setGraphicsContext(gc.get());
  49.         mCamera->setViewport(0, 0, width, height);
  50.  
  51.         viewer = new osgViewer::Viewer();
  52.         viewer->setCamera(mCamera.get());
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement