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)
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.')
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)
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)
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)
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)
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)
def set_vsync(self, vsync): if wgl_info.have_extension('WGL_EXT_swap_control'): wglext_arb.wglSwapIntervalEXT(int(vsync))
def get_vsync(self): if wgl_info.have_extension('WGL_EXT_swap_control'): return bool(wglext_arb.wglGetSwapIntervalEXT())
def create_context(self, share): if wgl_info.have_extension('WGL_ARB_create_context'): return Win32ARBContext(self, share) else: return Win32Context(self, share)
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()
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()