Articles of direct3d

不同显卡上的DirectXfunction

我正在使用DirectX 9编写Direct3D应用程序。虽然它可以在我的电脑上运行,但是我需要使它在各种系统上运行。 我需要知道我可以期望在其他系统上看到什么function。 有显卡支持的DirectX function列表吗? 我find了一个网站,我会作为答案发布,但是有点过时了。 编辑#1:当然我会在使用之前testing所有的function。 但是有两种不同的方法来解决缺失的function:解决方法或者只是无法启动。 在决定采取什么方法之前,我需要知道有多less人会受到影响。 编辑#2:“能力”我的意思是由IDirect3D9 :: GetDeviceCaps返回的D3DCAPS9中的值。 这些可以(并且)在不同的显卡之间有所不同。

在direct3d应用程序中呈现格式化的文本

我需要呈现一些格式化文本(颜色,不同的字体大小,下划线,粗体等),但我不知道如何去做。 D3DXFont只允许一次显示单个字体/大小/重量/颜色/等文本,我不能看到一个实用的方法来“多”调用ID3DXFont :: DrawText“做”这样的事情… 我环顾四周,似乎没有任何现成的库可以做这些事情,但我不知道如何实现这样的文本渲染器,甚至找不到任何关于这样的文本渲染如何工作的文档,只渲染简单的固定宽度,查看它的ASCII位图字体可能是一个完全不同的方法,只适合于在Unicode不重要的情况下渲染简单的文本块。 如果没有direct3d字体可以做到这一点,是否有任何其他渲染器(例如用于在普通窗口中渲染富文本),并将渲染到RAM中的纹理,然后将其上传到video卡以渲染到后台缓冲区产量合理performance?

DirectDraw比GDI更快地截图吗?

只是为了节省一些时间,可能有人试过这个或看到相关的信息。 询问DirectDraw而不是DirectX,因为我需要支持Win2000以上,而且我无法在目标PC上安装DirectX

如何在透明窗口中绘制透明的DirectX内容?

我想绘制DirectX内容,以便它看起来是悬浮在桌面和任何其他正在运行的应用程序的顶部。 我也需要能够使directx内容半透明,所以其他的东西显示。 有没有办法做到这一点? 我正在使用C#托pipeDX。

Windows StretchBlt API性能

我定时了使用多个StretchBlt和StretchDIBits调用的DDB绘图操作。 而且我发现,完成的时间与目标窗口大小成比例地增加/减less。 900×600窗口大约需要5ms,但1920×1080需要55ms(源图像是1280×640)。 看起来Stretch .. APIs不使用任何硬件加速function。 源图像(实际上这是临时绘图canvas)是用CreateDIBSection创build的,因为我需要绘制每个帧的结果(拉伸和合并)位图的像素数据 。 我们假设,Windows GDI是无望的。 那么有希望的select是什么? 我用WIC方法考虑了D3D,D2D(写入WIC位图并用D2D绘制,然后从WIC位图读回像素数据)。 我计划用WIC方法尝试D2D,因为我很快就需要使用大量的文本绘图function。 但是WIC似乎并不那么有希望: WIC位图处理最有效的像素格式是什么?

如何获取DXGI中显示器/输出的当前显示模式(分辨率,刷新率)?

我正在创build一个多显示器全屏DXGI / D3D应用程序。 我正在通过可用的输出和适配器来准备创build交换链。 当使用DXGI的IDXGIFactory :: CreateSwapChain方法创build交换链时,我需要提供一个交换链描述,其中包含DXGI_MODE_DESCtypes的缓冲区描述,详细说明宽度,高度,刷新率等。我怎样才能知道输出是什么目前设置为(或者我怎么知道当前输出的显示模式是什么)? 当我使用此交换链全屏时,我不想更改用户的分辨率或刷新率。