草庐IT

windows - 用于游戏内覆盖的 SDK

我设法挖掘出的关于开发游戏内叠加层的少量信息(类似于Steam所做的)提到必须拦截调用图形API的帧交换函数,并在其中挂接我自己的绘图例程。这似乎是Mumble(游戏VoIP)正在做。因为我从来没有做过任何涉及Hook的事情,而且我对DirectX没有太多经验,所以我想知道是否有某种SDK,或者甚至只是一个比Mumble更易读的例子,它也实现了输入,演示了如何实现交互式游戏内叠加层。Mumble很棒,但我似乎无法全神贯注于它,尤其是它为了正确Hook它所做的更有趣的事情。此外,如果您有关于如何在Mac和Linux上执行此操作的更多详细信息...:-) 最佳答

windows - 针对 2D 游戏的大多数 Windows 版本?

如果要为大多数版本的Windows编写游戏代码,应该使用哪个API?我知道DirectDraw可以从NT4及更高版本运行(尽管DirectDraw是在NT4上使用GDI模拟的)。但是,我听说DirectDraw在较新版本的Windows中已被弃用?我可以恢复到只使用GDI,但是很难完全消除闪烁和撕裂,因为没有在缓冲区之间翻转的双缓冲。我应该选择Direct3D还是DirectDraw?或者有什么方法可以完全消除GDI中的闪烁?如果Direct3D是答案,那么大多数平台支持哪个版本? 最佳答案 除非您确定您永远不想将您的游戏移植到任何

windows - 在 Windows 中截取屏幕截图的最快方法是什么?

在Windows中捕获屏幕截图的最快方法是什么?一个司机?使用DirectX? 最佳答案 我认为最快的方法是读取显卡内存的映射区域...只是一个想法,从未尝试过。 关于windows-在Windows中截取屏幕截图的最快方法是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4975333/

Windows:WAITING进程完成

我必须制作一个简短的Windowsshell脚本。请不要逃跑。它再简单不过了,但我就是找不到让这个非常原始的命令行与我一起工作的方法。我只是想运行dxdiag,并对收集到的数据做一些事情。问题是,我无法让脚本等待dxdiag完成,因为它会生成进程并继续运行。在继续下一行之前,我需要文件存在并获得信息。使用start/wait没有效果,我猜是因为没有涉及GUI。我开始认为这是不可能的。请帮忙! 最佳答案 我试过这样的东西start/waitdxdiag/x:SomeXmlFile它在WindowsVista中对我有用。

windows - 在 Windows 8 媒体基础转换中在 IMFMediaBuffer 上绘制文本

如何在IMFMediaBuffer对象上绘制文本,并将其写出到另一个IMFMediaBuffer对象?上下文是我正在构建MFT,最初我尝试使用Direct2D和Direct3D11来实现此目的,但无济于事。 最佳答案 我能够通过WindowsGDI调用完成此操作。我创建的MFT具有RGB32输入/输出类型,这允许我复制到位图对象或从中复制。我将要用文本覆盖的框架部分复制到我创建的Windows位图中,绘制文本,然后复制回IMFMediaBuffer。这是我的代码:#defineBREAK_ON_FAIL(val){if(FAILED

c++ - 是否可以在类似 STL 的容器中使用 WinRT 对象?

我正在尝试为D3D应用程序创建一个简单的手势识别器。手势识别器的工作原理是将接收到的每个点存储到容量为3的boost::circular_buffer中,然后计算缓冲区中相似FrameID的数量,如下所示:UINTTrackball::CalculateGestureSize(Windows::UI::Input::PointerPoint^pPoint){//shiftthecircularbufferqueueoneifit'sfull(commoncase)if(m_pointQueue.full()){m_pointQueue.pop_back();}//thenstoreou

c++ - 如何在 DirectX 11 桌面应用程序中更改窗口大小

我正在根据此msdn链接中的教程编写DirectX11着色器程序:https://msdn.microsoft.com/en-us/library/windows/desktop/jj552952.aspx当我运行它时,它是全屏的。更改交换链大小不会按预期更改窗口大小。有没有办法改变窗口大小?我只是想创建一个固定大小的窗口,如果它恰好覆盖了整个屏幕,我希望它是独占全屏。我可以使用IDXGISwapChain1::GetHwnd方法从交换链获取HWND。这个句柄对调整窗口大小有用吗?对应的代码可以在这里找到:https://code.msdn.microsoft.com/windowsd

c++ - 不再找到 DirectX 命名空间

关闭。这个问题是notreproducibleorwascausedbytypos.它目前不接受答案。这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这个问题的解决方式不太可能帮助future的读者。关闭7年前。ImprovethisquestionVisualStudio专业版2013Windows7x32、x64处理器我正在使用DirectX11,但似乎遇到了一个奇怪的问题。我始终能够在我的应用程序中访问DirectX命名空间。这已不再是这种情况。我可以做一个简单的类说//A.h#include#pragmacomment(lib,"d3d

windows - Xaml + Directx Fullscene Windows 10 移动版

我使用visualstudio2015,并创建了一个VisualC++Universal:DirectX11和XAMLApp(UniversalWindows)项目。我在设备或模拟器上运行并得到如下图所示的结果我希望我的游戏全屏显示。 最佳答案 参见ApplicationView.TryEnterFullScreenMode 关于windows-Xaml+DirectxFullsceneWindows10移动版,我们在StackOverflow上找到一个类似的问题:

c++ - 使用 D3D12Device 调用 DuplicateOutput 失败并显示 E_NOINTERFACE

我一直在尝试制作一个利用桌面复制api的应用程序,但没有使用directx的经验,结果证明这是一个相当大的挑战。似乎一切正常,直到我调用output1->DuplicateOutput(),此时它返回E_NOINTERFACE。msdn文档中未定义此错误,因此我无法诊断问题。我认为这段代码应该可以工作,但我一定遗漏了一些东西。#include#include#includeintmain(){HRESULThr;ID3D12Debug*debug;hr=D3D12GetDebugInterface(IID_PPV_ARGS(&debug));debug->EnableDebugLaye