Example #1
0
 def create_context(self, share):
     # Workaround for issue on certain Intel cards/drivers.
     # TODO: Find out if there is a way to query for this problem
     if wgl_info.have_extension('WGL_ARB_create_context') and gl_info.get_vendor() != 'Intel':
         return Win32ARBContext(self, share)
     else:
         return Win32Context(self, share)
Example #2
0
 def set_vsync(self, vsync):
     if pyglet.options['vsync'] is not None:
         vsync = pyglet.options['vsync']
     if wgl_info.have_extension('WGL_EXT_swap_control'):
         wglext_arb.wglSwapIntervalEXT(int(vsync))
     else:
         warnings.warn('Could not set vsync; unsupported extension.')
Example #3
0
 def create_context(self, share):
     if wgl_info.have_extension('WGL_ARB_create_context'):
         # Graphics adapters that ONLY support up to OpenGL 3.1/3.2
         # should be using the Win32ARBContext class.
         return Win32ARBContext(self, share)
     else:
         return Win32Context(self, share)
Example #4
0
    def get_matching_configs(self, template):
        # Determine which technique should be used for finding matching configs.
        # Use the builtin PIXELFORMATDESCRIPTOR if possible, otherwise resort
        # to the WGL_ARB_pixel_format extension.
        need_pixel_format_arb = False
        if template.sample_buffers or template.samples:
            need_pixel_format_arb = True

        if need_pixel_format_arb:
            # Need a GL context before we can query WGL extensions.
            dummy_window = None
            if not gl_info.have_context():
                # Create a dummy context
                config = self.get_best_config()
                context = config.create_context(None)
                dummy_window = Win32Window(visible=False, context=context)

            try:
                # Check for required extensions
                if not wgl_info.have_extension('WGL_ARB_pixel_format'):
                    return []
                return self._get_arb_pixel_format_matching_configs(template)
            finally:
                if dummy_window:
                    dummy_window.close()

        return self._get_pixel_format_descriptor_matching_configs(template)
Example #5
0
 def create_context(self, share):
     # Workaround for issue on certain Intel cards/drivers.
     # TODO: Find out if there is a way to query for this problem
     if wgl_info.have_extension('WGL_ARB_create_context') and gl_info.get_vendor() != 'Intel':
         return Win32ARBContext(self, share)
     else:
         return Win32Context(self, share)
Example #6
0
 def create_context(self, share):
     if self.requires_gl_3() and wgl_info.have_extension('WGL_ARB_create_context'):
         # For GPUs that ONLY support OpenGL 3.1/3.2, this
         # extension should be present. Those GPUs should use
         # the Win32ARBContext for GL3.1/3.2 contexts:
         return Win32ARBContext(self, share)
     else:
         return Win32Context(self, share)
Example #7
0
    def match(self, canvas):
        if not isinstance(canvas, Win32Canvas):
            raise RuntimeError("Canvas must be instance of Win32Canvas")

        # Use ARB API if available
        if gl_info.have_context() and wgl_info.have_extension("WGL_ARB_pixel_format"):
            return self._get_arb_pixel_format_matching_configs(canvas)
        else:
            return self._get_pixel_format_descriptor_matching_configs(canvas)
Example #8
0
    def match(self, canvas):
        if not isinstance(canvas, Win32Canvas):
            raise RuntimeError('Canvas must be instance of Win32Canvas')

        # Use ARB API if available
        if gl_info.have_context() and wgl_info.have_extension('WGL_ARB_pixel_format'):
            return self._get_arb_pixel_format_matching_configs(canvas)
        else:
            return self._get_pixel_format_descriptor_matching_configs(canvas)
Example #9
0
 def set_vsync(self, vsync):
     if wgl_info.have_extension('WGL_EXT_swap_control'):
         wglext_arb.wglSwapIntervalEXT(int(vsync))
Example #10
0
 def get_vsync(self):
     if wgl_info.have_extension('WGL_EXT_swap_control'):
         return bool(wglext_arb.wglGetSwapIntervalEXT())
Example #11
0
 def create_context(self, share):
     if wgl_info.have_extension('WGL_ARB_create_context'):
         return Win32ARBContext(self, share)
     else:
         return Win32Context(self, share)
Example #12
0
 def set_vsync(self, vsync):
     if wgl_info.have_extension('WGL_EXT_swap_control'):
         wglext_arb.wglSwapIntervalEXT(int(vsync))
Example #13
0
 def get_vsync(self):
     if wgl_info.have_extension('WGL_EXT_swap_control'):
         return bool(wglext_arb.wglGetSwapIntervalEXT())
Example #14
0
if "xlib" in globals() and isinstance(context, xlib.BaseXlibContext):
    from pyglet.gl import glx_info
    print('GLX %s direct' % (context.is_direct() and 'is' or 'is not'))
    if not glx_info.have_version(1, 1):
        print("GLX server version: 1.0")
    else:
        print('GLX server vendor:', glx_info.get_server_vendor())
        print('GLX server version:', glx_info.get_server_version())
        print('GLX server extensions:')
        exts = glx_info.get_server_extensions()
        print(' ', '\n  '.join(textwrap.wrap(' '.join(exts))))
        print('GLX client vendor:', glx_info.get_client_vendor())
        print('GLX client version:', glx_info.get_client_version())
        print('GLX client extensions:')
        exts = glx_info.get_client_extensions()
        print(' ', '\n  '.join(textwrap.wrap(' '.join(exts))))
        print('GLX extensions:')
        exts = glx_info.get_extensions()
        print(' ', '\n  '.join(textwrap.wrap(' '.join(exts))))
elif "win32" in globals() and isinstance(context, win32.Win32Context):
    from pyglet.gl import wgl_info
    if wgl_info.have_extension('WGL_EXT_extensions_string'):
        wgl_extensions = wgl_info.get_extensions()
        print('WGL extensions:')
        print('', '\n '.join(textwrap.wrap(' '.join(wgl_extensions))))
    else:
        print('WGL_EXT_extensions_string extension not available.')

w.close()
Example #15
0
if context.__class__.__name__ == 'XlibGLContext':
    from pyglet.gl import glx_info
    print 'GLX %s direct'%(context.is_direct() and 'is' or 'is not')
    if not glx_info.have_version(1, 1):
        print "GLX server version: 1.0"
    else:
        print 'GLX server vendor:', glx_info.get_server_vendor()
        print 'GLX server version:', glx_info.get_server_version()
        print 'GLX server extensions:'
        exts = glx_info.get_server_extensions()
        print ' ', '\n  '.join(textwrap.wrap(' '.join(exts)))
        print 'GLX client vendor:', glx_info.get_client_vendor()
        print 'GLX client version:', glx_info.get_client_version()
        print 'GLX client extensions:'
        exts = glx_info.get_client_extensions()
        print ' ', '\n  '.join(textwrap.wrap(' '.join(exts)))
        print 'GLX extensions:'
        exts = glx_info.get_extensions()
        print ' ', '\n  '.join(textwrap.wrap(' '.join(exts)))
elif context.__class__.__name__ == 'Win32Context':
    from pyglet.gl import wgl_info
    if wgl_info.have_extension('WGL_EXT_extensions_string'):
        wgl_extensions = wgl_info.get_extensions()
        print 'WGL extensions:'
        print '', '\n '.join(textwrap.wrap(' '.join(wgl_extensions)))
    else:
        print 'WGL_EXT_extensions_string extension not available.'

w.close()
Example #16
0
File: win32.py Project: pyzh/pyglet
 def create_context(self, share):
     if wgl_info.have_extension('WGL_ARB_create_context'):
         return Win32ARBContext(self, share)
     else:
         return Win32Context(self, share)