Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int width = *vid_width;
- int height = *vid_height;
- int xpos = SDL_WINDOWPOS_CENTERED;
- int ypos = SDL_WINDOWPOS_CENTERED;
- Uint32 flags = SDL_WINDOW_OPENGL|SDL_WINDOW_SHOWN;
- if(*vid_fullscreen)
- flags |= SDL_WINDOW_FULLSCREEN;
- SDL_GL_SetAttribute(SDL_GL_ACCELERATED_VISUAL, SDL_TRUE);
- SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, SDL_TRUE);
- 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, 24);
- SDL_GL_SetAttribute(SDL_GL_STENCIL_SIZE, 8);
- Log::get().stream()<< "Creating window "<<width<<"x"<<height<<", flags 0x"<<std::hex<<flags;
- mSDLWindow = SDL_CreateWindow("My Title", xpos, ypos, width, height, flags);
- if(mSDLWindow == nullptr)
- {
- std::stringstream sstr;
- sstr<< "SDL_CreateWindow Error: "<<SDL_GetError();
- throw std::runtime_error(sstr.str());
- }
- graphicswindow_SDL2();
- osg::ref_ptr<osg::GraphicsContext::Traits> traits = new osg::GraphicsContext::Traits;
- SDL_GetWindowPosition(mSDLWindow, &traits->x, &traits->y);
- SDL_GetWindowSize(mSDLWindow, &traits->width, &traits->height);
- traits->windowName = SDL_GetWindowTitle(mSDLWindow);
- traits->windowDecoration = (SDL_GetWindowFlags(mSDLWindow)&SDL_WINDOW_BORDERLESS);
- traits->screenNum = SDL_GetWindowDisplayIndex(mSDLWindow);
- // FIXME: Some way to get these settings back from the SDL window?
- traits->red = 8;
- traits->green = 8;
- traits->blue = 8;
- traits->alpha = 8;
- traits->depth = 24;
- traits->stencil = 8;
- traits->doubleBuffer = true;
- traits->inheritedWindowData = new GraphicsWindowSDL2::WindowData(mSDLWindow);
- osg::ref_ptr<osg::GraphicsContext> gc = osg::GraphicsContext::createGraphicsContext(traits.get());
- if(!gc.valid()) throw std::runtime_error("Failed to create GraphicsContext");
- mCamera = new osg::Camera;
- mCamera->setGraphicsContext(gc.get());
- mCamera->setViewport(0, 0, width, height);
- viewer = new osgViewer::Viewer();
- viewer->setCamera(mCamera.get());
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement