我正在创建一个多显示器全屏DXGI/D3D应用程序.我正在通过可用的输出和适配器进行枚举,以准备创建它们的交换链.
使用DXGI的IDXGIFactory :: CreateSwapChain方法创建交换链时,我需要提供一个交换链描述,其中包含DXGI_MODE_DESC类型的缓冲区描述,详细说明宽度,高度,刷新率等.如何找出输出是什么当前设置为(或者如何找出当前输出的显示模式)?当我使用此交换链进入全屏时,我不想更改用户的分辨率或刷新率.
使用Jenkins进行多平台mutibranch构建.
我有多个Multibranch Pipeline项目(每个平台一个,因为每个平台需要特别不同的构建步骤).我有一个包含多个分支的代码存储库(这就是Multibranch Pipeline项目有意义的原因).
我想让每个Multibranch Pipeline项目引用一个不同的Jenkins文件,而不是所有尝试使用位于存储库根目录中的文件名为"Jenkinsfile"的文件.
这个已解决的错误表明我应该能够做到这一点,但我找不到任何文档概述如何执行此操作.任何人都知道如何做到这一点?
谢谢你的时间!艾伦
我有这段代码,它可以工作......但它运行速度非常慢:
hwin = win32gui.GetDesktopWindow()
width = win32api.GetSystemMetrics(win32con.SM_CXVIRTUALSCREEN)
height = win32api.GetSystemMetrics(win32con.SM_CYVIRTUALSCREEN)
left = win32api.GetSystemMetrics(win32con.SM_XVIRTUALSCREEN)
top = win32api.GetSystemMetrics(win32con.SM_YVIRTUALSCREEN)
hwindc = win32gui.GetWindowDC(hwin)
srcdc = win32ui.CreateDCFromHandle(hwindc)
memdc = srcdc.CreateCompatibleDC()
bmp = win32ui.CreateBitmap()
bmp.CreateCompatibleBitmap(srcdc, width, height)
memdc.SelectObject(bmp)
memdc.BitBlt((0, 0), (width, height), srcdc, (left, top), win32con.SRCCOPY)
signedIntsArray = bmp.GetBitmapBits(False)
img = np.array(signedIntsArray).astype(dtype="uint8") # This is REALLY slow!
img.shape = (height,width,4)
srcdc.DeleteDC()
memdc.DeleteDC()
win32gui.ReleaseDC(hwin, hwindc)
win32gui.DeleteObject(bmp.GetHandle())
return cv2.cvtColor(img, cv2.COLOR_RGBA2RGB)
Run Code Online (Sandbox Code Playgroud)
此代码获取整个 Windows 桌面(均显示)并将其转换为我稍后使用的 OpenCV 图像。我相信如果稍微修改一下的话,这个转换的运行速度会比原来慢。具体来说, np.array(signedIntsArray) 调用非常慢!
关于如何更快地将桌面捕获转换为 OpenCV 图像有什么想法吗?
Jenkins设立了7个多分支管道项目,每个项目都基于相同的git repo构建,但是针对不同的目标平台。这些多分支管道中的每一个都建立许多分支。当前,我们通过在多分支项目配置中使用以下属性来设置每个多分支管道构建的分支分支:
Branch Sources -> Git -> Behaviors -> Filter by name (with wildcards)
当前,每个多分支管道在此Filter by name (with wildcards)字段中具有相同的分支字符串。每次我们希望Jenkins开始建立一个新分支时,我们都要遍历所有7个多分支项目配置,并更新此字段以包括新分支。
遍历每个配置并每次更改此字段都有些麻烦,因为我们一直希望每个配置都具有相同的分支列表。是否可以在此字段中简单地使用某种类型的变量?这样,我们只需要更改一个位置即可,而不必尝试使7个不同的配置彼此保持同步,这容易出错并且也很痛苦。
谢谢你的帮助!艾伦