jjzjj

Direct2d

全部标签

windows - 与directx sdk相比,使用windows sdk学习direct3d11有什么区别?

是否可以通过windows8sdk或directxsdk使用direct3d11?作为一名学习者,不清楚这种选择有什么影响。directx11是用windowssdk学还是directxsdk学,有什么区别? 最佳答案 directxsdk(最后一次是2010年6月,三年前)已弃用。Windows8套件包含最新版本的直接xheader和库。基本API和文档大部分相同,但缺少最近的更改。D3DX已弃用,数学移至directxmath.h,着色器编译移至d3dcompiler.hPix不再适用于最新的Windows,因此您必须坚持使用v

c++ - 如何在 C++ 中将加载到内存中的图像文件转换为 ID2D1Bitmap

我正在尝试将刚刚从压缩文件提取到内存中的图像文件(png,但可以是任何文件)转换为ID2D1Bitmap,以便使用Direct2D进行绘制。我试图寻找一些文档,但我只能找到接收“constchar*路径”的方法或询问我图像的宽度和高度,我事先不知道。在谷歌上搜索它让我一无所获。该文件在内存中是原始文件,我想避免将图像提取到硬盘到一个临时文件中,只是为了从那里读取数据。有什么想法吗? 最佳答案 如果你有HBITMAP句柄,你可以这样做:图像的大小使用:::GetObject(hBmp,sizeof(BITMAP),&bmpSizeIn

c++ - 在 direct3d 应用程序中呈现格式化文本

我需要呈现一些格式化的文本(颜色、不同的字体大小、下划线、粗体等),但我不确定如何去做。D3DXFont只允许一次呈现单一字体/大小/粗细/颜色/等的文本,我看不到一种实用的方法来“组合”对ID3DXFont::DrawText的多次调用来做这样的事情......我环顾四周,似乎没有任何现有的库可以做这些事情,但我不知道如何实现这样的文本渲染器,我什至找不到任何关于如何渲染这样的文本的文档会工作,只渲染简单的固定宽度,ASCII位图字体,从表面上看可能是一种完全不同的方法,它只适用于渲染简单的文本block,其中Unicode不重要。如果没有direct3d字体渲染能够做到这一点,是否

windows - 报告 Direct3D 内存使用情况

我有一个Direct3D9应用程序,我想监控内存使用情况。有没有工具可以知道Direct3D使用了多少系统内存和视频内存?理想情况下,它还会报告为纹理、顶点缓冲区、索引缓冲区分配了多少... 最佳答案 您可以使用旧的DirectDraw界面查询总内存和可用内存。您通过这种方式获得的数字并不可靠。可用内存可能随时变化,可用内存通常会考虑AGP内存(严格来说不是视频内存)。您可以使用这些数字很好地猜测您的应用程序/游戏的默认纹理分辨率和细节级别,仅此而已。您可能想知道为什么没有办法获得更好的数字,毕竟跟踪资源使用情况并不难。从应用的角度

C# 或 C++ - Windows 图形概述的好资源 - 2D,直接绘制像素

我有一个我一直在研究的奇怪的小lifesim程序,它涉及二维数组中的数据。这从来都不是一件大事,我最初通过将它逐个像素地写入外部位图来查看它的一些快照,然后我打开并查看。这不会给我任何形式的屏幕实时更新。这是一种糟糕的方法,并且在尝试直接在窗口中实现绘制时,我想第一次就正确有效地完成此操作。我做了一些搜索并找到了bitblt,这将让我一次绘制一个完整的矩形,但我所有的图形经验都仅限于WPF之类的东西,很多术语我都忘记了。我不知道我的数据应该是什么格式才能将它作为位图传递给这个函数。在阅读msdn时,我发现了对DC等内容的引用,还有更多我尚未了解的内容。我不需要了解很多有关Windows

windows - 有没有一种有效的方法可以将 a3d 场景转换为 2d 增强图元文件

我正在使用Delphi2010和OpenGL开发CAD应用程序。目前,我正在开发一个将当前View导出到图像文件的模块。这对于光栅格式来说非常简单(将场景渲染到所需尺寸的屏幕外缓冲区,将缓冲区写入磁盘),但我也希望能够将场景的轴对齐二维View导出为矢量格式,最好是WindowsEMF。我正在考虑在软件中计算我的变换和投影,或者滥用glFeedback功能。由于我必须实现自己的z缓冲,这种方法似乎相当费力,更不用说我在没有硬件加速的情况下渲染复杂场景时可能面临的性能问题。由于我的google-fu没有得到结果,我想问问你们有没有人遇到过这个问题(将Opengl-3d-scene转换为2

windows - C++/W32 - 录制声音、Direct Show 或 WaveInOpen?

想到WinXP、Vista、Win7++该选什么:使用DirectShow/Direct...录制音频?使用经典的WaveInOpen(我在某处看到有人说这将在W7/W8中过时-可能吗?)附言。我需要回调功能,以将缓冲区传递给编码器。谢谢! 最佳答案 WaveIn易于使用,网上有大量示例代码,它会以您需要的方式为您提供回调。DirectSound使用循环缓冲区,设置起来可能有点麻烦,很可能您需要处理循环缓冲区而不是“只是填充缓冲区”。然而,DirectSound可以让您更严格地控​​制音频,即延迟更好一些。IMO,Microsoft

windows - 硬件 H264 编码 ID3D11Texture2D with Media Foundation

我正在从事一个捕获屏幕并对其进行编码的项目。我已经可以使用桌面复制API(Win8+)捕获屏幕。使用API,我可以获得ID3D11Texture2D纹理并将它们从GPU传输到CPU,然后使用libx264对其进行编码。但是,将纹理从GPU拉到CPU可能是一个瓶颈,可能会降低fps。libx264也占用CPU周期(取决于质量)来编码帧。我正在寻找在GPU本身中编码ID3D11Texture2D纹理,而不是使用CPU进行编码作为优化。我已经检查了文档和一些示例代码,但没有成功。如果有人可以向我指出一些可靠地完成我想要的事情的资源,我将不胜感激。 最佳答案

c++ - 未聚焦时 Direct2D 窗口变黑

我有一个Direct2D窗口,它在聚焦时画得很好;然而,当焦点移动到另一个窗口(同一个应用程序或另一个)时,整个窗口变黑。我将问题归结为ID2D1HwndRenderTarget::Clear的使用。此功能对我的应用程序至关重要,因为没有它,绘画会变得相当……奇怪。有没有一种方法可以让未聚焦的Direct2D窗口正常绘制(注意:WM_PAINT会像往常一样被调用,Clear也是如此,BeginPaint等都没有错误)提前致谢。 最佳答案 来自MSDN,HandlingDeviceLossWhileyourprogramisrunni

c++ - 使用 Windows API 和 C++ 进行 2D(或 3D)图形编程?

我即将开始我的大学类(class)单元项目。我希望用C++制作有点像小行星的复古2D游戏。我可以使用SFML之类的东西来做到这一点,这看起来肯定是合乎逻辑的事情。但是我不能使用SFML,因为这些库在Windows上默认不可用。要求是我的C++代码必须复制并粘贴到任何WindowsPC(已安装VisualStudio),然后从VisualStudio编译/运行。我以前从未使用过WindowsAPI,但我觉得我可以使用它打开一个窗口并在窗口中绘制一些二维图形。我对么?基本上这就是我需要做的所有事情:打开一个窗口,然后在上面画一些线。这不是“你能帮我做作业吗”类型的问题。如果这是我需要的工具