本次学习中,我们要利用DirectX中的离屏表面来加载一副图片资源来主窗口中。
首先我们用到的图片加载是用的GDIplus来加载的。
下面就来具体介绍怎么使用一个离屏表面
首先要用到一个数据结构DDSURFACEDESC2 ddsd;
设置这个数据结构的标识位为
ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN;
具体代码如下:
//创建一个离屏表面
ZeroMemory(&ddsd, sizeof(ddsd));
ddsd.dwSize = sizeof(ddsd);
ddsd.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT;
ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN;
ddsd.dwWidth =1024 ;
ddsd.dwHeight = 768;
if (FAILED(g_Lpdd->CreateSurface(&ddsd, &g_BmpSurface, NULL))){
return;
}
//Bitmap* bmp = Bitmap::FromFile(_T("./test.png"));
Image *image = Image::FromFile(_T("./test.png"));
HDC dc;
g_BmpSurface->GetDC(&dc);
Graphics graphics(dc);
graphics.Clear(Color(255, 0, 0, 0));
graphics.DrawImage(image,50, 50);
//Pen p(Color(255, 255, 0, 0));
//graphics.DrawLine(&a