将大量图像的一部分加载到内存并将其转换为纹理的好方法是什么?只是尝试将整个图像加载到纹理并使用StretchRect将无法工作,因为如果您尝试加载宽度为17000像素的图像,它将无法在大多数GPU上运行。
答案 0 :(得分:0)
使用图像的一部分创建纹理(我假设您需要一个连续的子矩形)与使用整个图像这样做基本相同。在D3D9中,您在目标纹理上LockRect
,并写入图像内容。不是写入图像的全部内容,而是逐行写入字节,从子矩形的y原点开始,并用子矩形的x原点偏移每一行的源。
当然,您的目标纹理仍然需要遵守纹理大小限制。