def take_screenshot(): #would be better to refactor the code.. from xpra.platform.win32.gdi_screen_capture import GDICapture gdic = GDICapture() v = gdic.take_screenshot() gdic.clean() return v
def init_capture(w, h, pixel_depth=32): capture = None if SHADOW_NVFBC: try: from xpra.codecs.nvfbc.fbc_capture_win import init_nvfbc_library except ImportError: log("NvFBC capture is not available", exc_info=True) else: try: if init_nvfbc_library(): log("NVFBC_CUDA=%s", NVFBC_CUDA) pixel_format = { 24: "RGB", 32: "BGRX", 30: "r210", }[pixel_depth] if NVFBC_CUDA: from xpra.codecs.nvfbc.fbc_capture_win import NvFBC_CUDACapture #@UnresolvedImport capture = NvFBC_CUDACapture() else: from xpra.codecs.nvfbc.fbc_capture_win import NvFBC_SysCapture #@UnresolvedImport capture = NvFBC_SysCapture() capture.init_context(w, h, pixel_format) except Exception as e: capture = None log("NvFBC_Capture", exc_info=True) log.warn( "Warning: NvFBC screen capture initialization failed:") for x in str(e).replace(". ", ":").split(":"): if x.strip() and x != "nvfbc": log.warn(" %s", x.strip()) log.warn(" xpra is using the slower GDI capture code") del e if not capture: if SHADOW_GDI: capture = GDICapture() if not capture: raise Exception( "no screen capture methods enabled (GDI capture is disabled)") log("init_capture()=%s", capture) return capture
def init_capture(pixel_depth=32): capture = None if SHADOW_NVFBC: try: from xpra.codecs.nvfbc.fbc_capture_win import init_nvfbc_library except ImportError: log("NvFBC capture is not available", exc_info=True) else: try: if init_nvfbc_library(): log("NVFBC_CUDA=%s", NVFBC_CUDA) pixel_format = { 24: "RGB", 32: "BGRX", 30: "r210", }[pixel_depth] if NVFBC_CUDA: from xpra.codecs.nvfbc.fbc_capture_win import NvFBC_CUDACapture capture = NvFBC_CUDACapture() else: from xpra.codecs.nvfbc.fbc_capture_win import NvFBC_SysCapture capture = NvFBC_SysCapture() capture.init_context(-1, -1, pixel_format) except Exception as e: log("NvFBC_Capture", exc_info=True) log.warn( "Warning: NvFBC screen capture initialization failed:") log.warn(" %s", e) log.warn(" using the slower GDI capture code") del e if not capture: if SHADOW_GDI: capture = GDICapture() if not capture: raise Exception( "no screen capture methods enabled (GDI capture is disabled)") log("init_capture()=%s", capture) return capture