~ubuntu-branches/ubuntu/trusty/openscenegraph/trusty

« back to all changes in this revision

Viewing changes to OpenSceneGraph/src/osgViewer/GraphicsWindowX11.cpp

  • Committer: Package Import Robot
  • Author(s): Loic Dachary (OuoU)
  • Date: 2011-09-08 16:06:16 UTC
  • mfrom: (1.4.2 upstream)
  • Revision ID: package-import@ubuntu.com-20110908160616-jyq2q9mmrqyxh89d
Tags: 3.0.1-1
* New upstream fixes release.
* Fixed ffmpeg FTBFS (Closes: #640339).

Show diffs side-by-side

added added

removed removed

Lines of Context:
341
341
        #if defined(GLX_SAMPLE_BUFFERS) && defined (GLX_SAMPLES)
342
342
 
343
343
            if (_traits->sampleBuffers) { attributes.push_back(GLX_SAMPLE_BUFFERS); attributes.push_back(_traits->sampleBuffers); }
344
 
            if (_traits->sampleBuffers) { attributes.push_back(GLX_SAMPLES); attributes.push_back(_traits->samples); }
 
344
            if (_traits->samples) { attributes.push_back(GLX_SAMPLES); attributes.push_back(_traits->samples); }
345
345
 
346
346
        #endif
347
347
        // TODO
348
348
        //  GLX_AUX_BUFFERS
349
349
        //  GLX_ACCUM_RED_SIZE
350
350
        //  GLX_ACCUM_GREEN_SIZE
351
 
        //  GLX_SAMPLE_BUFFERS
352
 
        //  GLX_SAMPLES
353
351
 
354
352
        attributes.push_back(None);
355
353
 
730
728
 
731
729
        OSG_NOTICE<<"GraphicsWindowX11::init() - window created ="<<_valid<<std::endl;
732
730
 
 
731
        eglBindAPI(EGL_OPENGL_ES_API);
 
732
 
733
733
        EGLConfig eglConfig = 0;
734
734
 
735
735
        #if defined(OSG_GLES2_AVAILABLE)
738
738
            #define OSG_EGL_OPENGL_TARGET_BIT EGL_OPENGL_ES_BIT
739
739
        #endif
740
740
 
741
 
        EGLint configAttribs[] = {
742
 
                EGL_SAMPLE_BUFFERS, 0,
743
 
                EGL_SAMPLES, 0,
744
 
                EGL_RED_SIZE, 1,
745
 
                EGL_GREEN_SIZE, 1,
746
 
                EGL_BLUE_SIZE, 1,
747
 
                EGL_DEPTH_SIZE, 1,
748
 
                EGL_RENDERABLE_TYPE, OSG_EGL_OPENGL_TARGET_BIT,
749
 
                EGL_NONE
750
 
        };
 
741
        typedef std::vector<EGLint> Attributes;
 
742
        Attributes attributes;
 
743
 
 
744
        attributes.push_back(EGL_RED_SIZE); attributes.push_back(_traits->red);
 
745
        attributes.push_back(EGL_GREEN_SIZE); attributes.push_back(_traits->green);
 
746
        attributes.push_back(EGL_BLUE_SIZE); attributes.push_back(_traits->blue);
 
747
        attributes.push_back(EGL_DEPTH_SIZE); attributes.push_back(_traits->depth);
 
748
 
 
749
        if (_traits->alpha) { attributes.push_back(EGL_ALPHA_SIZE); attributes.push_back(_traits->alpha); }
 
750
        if (_traits->stencil) { attributes.push_back(EGL_STENCIL_SIZE); attributes.push_back(_traits->stencil); }
 
751
 
 
752
        if (_traits->sampleBuffers) { attributes.push_back(EGL_SAMPLE_BUFFERS); attributes.push_back(_traits->sampleBuffers); }
 
753
        if (_traits->samples) { attributes.push_back(EGL_SAMPLES); attributes.push_back(_traits->samples); }
 
754
 
 
755
        attributes.push_back(EGL_RENDERABLE_TYPE); attributes.push_back(OSG_EGL_OPENGL_TARGET_BIT);
 
756
        
 
757
        attributes.push_back(EGL_NONE);
 
758
        attributes.push_back(EGL_NONE);
751
759
 
752
760
        int numConfigs;
753
 
        if (!eglChooseConfig(_eglDisplay, configAttribs, &eglConfig, 1, &numConfigs) || (numConfigs != 1))
 
761
        if (!eglChooseConfig(_eglDisplay, &(attributes.front()), &eglConfig, 1, &numConfigs) || (numConfigs != 1))
754
762
        {
755
763
            OSG_NOTICE<<"GraphicsWindowX11::init() - eglChooseConfig() failed."<<std::endl;
756
764
            XCloseDisplay( _display );
759
767
            return;
760
768
        }
761
769
 
762
 
        eglBindAPI(EGL_OPENGL_ES_API);
763
770
 
764
771
        _eglSurface = eglCreateWindowSurface(_eglDisplay, eglConfig, (EGLNativeWindowType)_window, NULL);
765
772
        if (_eglSurface == EGL_NO_SURFACE)