初学者的问题(关于读图的)

gzchrishu 2003-08-26 10:59:37
各位大侠你们好,麻烦看一看我这个函数 Bitmap_Surface

LPDIRECTDRAWSURFACE7 Bitmap_Surface(int nResID)
{
LPDIRECTDRAWSURFACE7 lpdd;
HDC hdc;
HBITMAP hbitmap;
BITMAP bmp;

hbitmap=(HBITMAP)LoadImage(g_hInstance,MAKEINTRESOURCE(nResID),IMAGE_BITMAP,0,0,LR_CREATEDIBSECTION);
if (!hbitmap) return NULL;
GetObject(hbitmap,sizeof(BITMAP),&bmp);
DDSURFACEDESC2 ddsd;
InitDesc(ddsd);
ddsd.dwFlags =DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT ;
ddsd.ddsCaps.dwCaps =DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY;
ddsd.dwWidth =bmp.bmWidth ;
ddsd.dwHeight =bmp.bmHeight ;

if (lpDD->CreateSurface (&ddsd,&lpdd,NULL)!=DD_OK)
{
DeleteObject(hbitmap);
return NULL;
}else{
lpdd->GetDC(&hdc);
HDC hSrcDC = CreateCompatibleDC(hdc);
SelectObject(hSrcDC,hbitmap);
BitBlt(hdc,0,0,bmp.bmWidth ,bmp.bmHeight ,hSrcDC,0, 0, SRCCOPY);
lpdd->ReleaseDC (hdc);
DeleteDC(hSrcDC);
}
DeleteObject(hbitmap);
return lpdd;
}




使用方法:
void TestFlip()
{
LPDIRECTDRAWSURFACE7 lpdd;
lpdd=Bitmap_Surface(BACKGROUND2);
lpDDSBack->BltFast (0,0,lpdd,NULL,DDBLTFAST_WAIT);
lpDDSPrimary->Flip (0,DDFLIP_WAIT);

}



这个函数运行正常,我想问的是:
这个函数的效率(速度,性能)是不是很低,请问大家是使用什么方法在游戏中帖图(读图)的?
请大家指教一下,谢谢!
...全文
39 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
咔嚓个大泥坑 2003-08-27
  • 打赏
  • 举报
回复
这样干可能不只效率低吧?

8,302

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧