Directx9 C ++如何从大量图像的一部分加载纹理

时间:2016-11-16 23:30:18

标签: c++ image directx directx-9

将大量图像的一部分加载到内存并将其转换为纹理的好方法是什么?只是尝试将整个图像加载到纹理并使用StretchRect将无法工作,因为如果您尝试加载宽度为17000像素的图像,它将无法在大多数GPU上运行。

1 个答案:

答案 0 :(得分:0)

使用图像的一部分创建纹理(我假设您需要一个连续的子矩形)与使用整个图像这样做基本相同。在D3D9中,您在目标纹理上LockRect,并写入图像内容。不是写入图像的全部内容,而是逐行写入字节,从子矩形的y原点开始,并用子矩形的x原点偏移每一行的源。

当然,您的目标纹理仍然需要遵守纹理大小限制。