# SPDX-License-Identifier: GPL-2.0-or-later # Copyright (C) 2022, Tomi Valkeinen from OpenGL.EGL.VERSION.EGL_1_0 import EGLNativeDisplayType, eglGetProcAddress, eglQueryString, EGL_EXTENSIONS from OpenGL.raw.GLES2 import _types as _cs from OpenGL.GLES2.VERSION.GLES2_2_0 import * from OpenGL.GLES3.VERSION.GLES3_3_0 import * from OpenGL import GL as gl from ctypes import c_int, c_char_p, c_void_p, cdll, POINTER, util, \ pointer, CFUNCTYPE, c_bool def getEGLNativeDisplay(): _x11lib = cdll.LoadLibrary(util.find_library('X11')) XOpenDisplay = _x11lib.XOpenDisplay XOpenDisplay.argtypes = [c_char_p] XOpenDisplay.restype = POINTER(EGLNativeDisplayType) return XOpenDisplay(None) # Hack. PyOpenGL doesn't seem to manage to find glEGLImageTargetTexture2DOES. def getglEGLImageTargetTexture2DOES(): funcptr = eglGetProcAddress('glEGLImageTargetTexture2DOES') prototype = CFUNCTYPE(None, _cs.GLenum, _cs.GLeglImageOES) return prototype(funcptr) glEGLImageTargetTexture2DOES = getglEGLImageTargetTexture2DOES() def get_gl_extensions(): n = GLint() glGetIntegerv(GL_NUM_EXTENSIONS, n) gl_extensions = [] for i in range(n.value): gl_extensions.append(gl.glGetStringi(GL_EXTENSIONS, i).decode()) return gl_extensions def check_gl_extensions(required_extensions): extensions = get_gl_extensions() if False: print('GL EXTENSIONS: ', ' '.join(extensions)) for ext in required_extensions: if ext not in extensions: raise Exception(ext + ' missing') def get_egl_extensions(egl_display): return eglQueryString(egl_display, EGL_EXTENSIONS).decode().split(' ') def check_egl_extensions(egl_display, required_extensions): extensions = get_egl_extensions(egl_display) if False: print('EGL EXTENSIONS: ', ' '.join(extensions)) for ext in required_extensions: if ext not in extensions: raise Exception(ext + ' missing') alue='10d05404eb5b3941ef34dbdd901c61d302b421e0'/>
path: root/src/qcam/assets/feathericons/link.svg
blob: c89dd41c2330024a38406a01d9863bacbb376cbe (plain)
1
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg>