0

我只想加载从文件加载的位图的一部分,使用D3DXLoadSurfaceFromFile.

有人可以向我解释这将如何工作吗?我尝试使用RECT rect带有设置尺寸的顶部、机器人、右侧、左侧,如下所示:

result = D3DXLoadSurfaceFromFile(
    surface,            //destination surface
    NULL,               //destination palette   
    NULL,               //destination rectangle
    "legotron.bmp",     //source filename
    &rect,              //source rectangle
    D3DX_DEFAULT,       //controls how image is filtered
    0,                  //for transparency (0 for none)
    NULL);              //source image info (usuallyNULL)

   //makesure file was loaded okay
   if(!SUCCEEDED(result))
   {
       MessageBox(hwnd, "Error, result did not succeed", "Error", MB_OK);
       return false;
   }

但结果不幸的是没有成功。我确信有一个简单的解释,但对于我的生活,我无法弄清楚。

4

1 回答 1

1

问题很不清楚,您是在加载图像时遇到问题,还是图像已加载但表面没有您想要的纹理部分?

无论如何,我假设 SUCCEEDED() 是一个检查 D3D_OK 返回值的函数,对吗?我看不出您的代码有什么问题,可能与 SUCCEEDED() 检查函数有关。您正在正确执行图像加载部分,不确定 Source Rectangle 部分,如果我没记错的话,您应该传递一个指向该部分的指针。

于 2013-09-25T04:20:46.573 回答