我发现使用翻转模型(DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL或DXGI_SWAP_EFFECT_FLIP_DISCARD)创建的交换链被锁定到VSync(1/60秒),如下调用IDXGISwapChain1::Present1方法并将SyncInterval设置为0不起作用。swap_chain->Present1(0,0,¶m);有谁知道如何为DXGI翻转模型禁用VSync? 最佳答案 您的Windows10是什么版本?在1511构建之前,UWP和窗口交换链过去总是锁定到VSync。
我一直在看DXGIDesktopDuplicationSample在msdn上,它看起来非常好,但不清楚它是否适用于我想做的事情。我想做的是使用Win32Desktopapi's创建一个新桌面(CreateDesktop),然后切换到该桌面(SwitchDesktop),然后在该新桌面中,我想创建一个窗口并呈现原始桌面的实时预览。尽管名称如此,但在Win32意义上,DXGIapi似乎更与“屏幕”而非桌面相关。在我投入大量时间尝试实现此方法却发现它不起作用之前,我希望对这些API有更多了解的人可以插话并引导我朝着正确的方向前进。之前尝试使用其他常见的屏幕捕获方法执行此操作都失败了,因为图
我制作DXGI适配器和监视器枚举。连接到我的计算机的第二台显示器是DellP2715Q,分辨率为3840*2160:但是,程序将其报告为2560*1440,这是第二个可用分辨率。重现的最少代码:intmain(){IDXGIFactory1*pFactory1;HRESULThr=CreateDXGIFactory1(__uuidof(IDXGIFactory1),(void**)(&pFactory1));if(FAILED(hr)){wcoutEnumAdapters1(i,&pAdapter1);if(hr==DXGI_ERROR_NOT_FOUND){//nomoreadapt
我开发了一个应用程序,它在窗口中显示类似视频的内容。我使用此处描述的技术IntroducingDirect2D1.1.在我的例子中,唯一的区别是最终我使用创建了一个位图ID2D1DeviceContext::CreateBitmap然后我用ID2D1Bitmap::CopyFromMemory将原始RGB数据复制到它,然后我调用ID2D1DeviceContext::DrawBitmap绘制位图。我使用高质量三次插值模式D2D1_INTERPOLATION_MODE_HIGH_QUALITY_CUBIC进行缩放以获得最佳图片,但在某些情况下(RDP、Citrix、虚拟机等)它非常慢并且
我需要此变量为TRUE,以便我可以使用IDXGIOutputDuplication的MapDesktopSurface我们如何将其设置为true。以前的设置可以做什么。这是链接http://msdn.microsoft.com/en-us/library/windows/desktop/hh404622(v=vs.85).aspx 最佳答案 我遇到了同样的问题......所以这就是你需要做的:MapDesktopSurface方法大多数时候会返回DXGI_ERROR_UNSUPPORTED,因为图像不在系统内存中,而是在GPU内存中
我正在修改桌面复制api示例kindlyprovidedbyMicrosoft捕获屏幕并通过网络将更新发送到我的应用程序。我知道如何实际发送数据;我的问题是从ID3D11Texture2D对象获取数据。ID3D11Texture2D*m_AcquiredDesktopImage;IDXGIResource*desktopResource=nullptr;DXGI_OUTDUPL_FRAME_INFOFrameInfo;//GetnewframeHRESULThr=m_DeskDupl->AcquireNextFrame(500,&FrameInfo,&desktopResource);
我正在设计一个使用DirectX11API的游戏引擎,特别是使用延迟上下文。基本思想是让每个设备状态都有自己的延迟上下文,然后在渲染完所有几何图形后,通过遍历每个延迟上下文并在直接上下文中执行其命令列表来显示它。我通过简单地使用线框着色器在屏幕上绘制两个三角形来测试它,仅此而已。所有DirectX调用都不会返回错误,即使在PIX调试报告中查看时也是如此,但是一旦调用IDXGISwapChain::Present(0,0),整个屏幕就会变黑然后返回。然后屏幕右下角会弹出一个错误框,提示显示驱动程序“已停止响应并已成功恢复”。查看PIX日志,我发现在PIX日志中调用的前block和后blo
因此,我正在尝试创建一个仅显示其边框并让主体的其余部分透明的窗口。我已经创建了一个在我脑海中看起来像的模型:我尝试在具有透明像素的缓冲区中进行blitting,但没有达到预期的效果。有什么想法吗? 最佳答案 这可以通过传递WS_EX_NOREDIRECTIONBITMAP来实现1将窗口样式扩展到对CreateWindowEx的调用.这可以防止系统为窗口的客户区分配渲染表面,使客户区完全透明。请注意,这不会使窗口对鼠标点击透明。HitTest仍然由窗口控制,即使它没有可见的客户区。以下代码提供了一个展示使用的最小代码示例:#defin
我在VC++2010中创建控制台应用程序,并向其中添加以下代码:#include#include#include#pragmacomment(lib,"d3d10.lib")#pragmacomment(lib,"d3dx10.lib")#pragmacomment(lib,"dxgi.lib")#pragmacomment(lib,"dxerr.lib")int_tmain(intargc,_TCHAR*argv[]){IDXGIFactory*pDXGIFactory;CreateDXGIFactory(IID_IDXGIFactory,(void**)&pDXGIFactory)
我需要一些帮助来使用GDI和D3D11将文本绘制到纹理。我尝试使用D2D/DirectWrite,但它只支持D3D10而不是我需要的D3D11。到目前为止我尝试的一切都失败了......现在我想使用GDI方法来写入纹理。所以我用这个参数创建了一个纹理:Usage=D3D11_USAGE_DEFAULT;Format=DXGI_FORMAT_B8G8R8A8_UNORM;BindFlags=D3D11_BIND_SHADER_RESOURCE|D3D11_BIND_RENDER_TARGET;CPUAccessFlags=0;MiscFlags=D3D11_RESOURCE_MISC_G