我对 DirectX 比较陌生,必须处理现有的 C++ DX9 应用程序。该应用程序在相机图像上进行跟踪并显示一些 DirectDraw(即 2d)内容。相机的纵横比为 4:3(始终),屏幕未定义。
我想加载纹理并将此纹理用作蒙版,因此仅在纹理的蒙版区域内完成内容的跟踪和显示。因此,我想加载与相机图像大小完全相同的纹理。
我已经完成了加载纹理的所有步骤,但是当我调用GetDesc()
字段时,Width
结构的大小是下一个更大的 2 次方大小。我不在乎用于纹理的实际内存是否针对显卡进行了优化,但我没有找到任何方法来获取硬盘上原始图像文件的尺寸。Height
D3DSURFACE_DESC
我确实(并且确实,但没有成功)搜索了一种可能性,即仅将图像加载到计算机 RAM 中(不需要显卡)而不向代码添加新的依赖项。否则我将不得不使用 OpenCV(在跟踪方面这可能是一个好主意),但目前我仍然尽量避免包含 OpenCV。
谢谢你的提示,诺伯特