当前位置: 首页>>代码示例>>C++>>正文


C++ BitmapImage::CreateBitmap方法代码示例

本文整理汇总了C++中BitmapImage::CreateBitmap方法的典型用法代码示例。如果您正苦于以下问题:C++ BitmapImage::CreateBitmap方法的具体用法?C++ BitmapImage::CreateBitmap怎么用?C++ BitmapImage::CreateBitmap使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在BitmapImage的用法示例。


在下文中一共展示了BitmapImage::CreateBitmap方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: GameInit

bool GameInit(HWND hwnd)
{
	window_hdc = GetDC(hwnd);
	buffer_hdc = CreateCompatibleDC(window_hdc);
	ReleaseDC(hwnd, window_hdc);

	SetClientSize(hwnd, WINDOW_WIDTH, WINDOW_HEIGHT);

	BITMAPINFO  bmp_info;
	bmp_info.bmiHeader.biSize = sizeof (BITMAPINFOHEADER);//结构体的字节数
	bmp_info.bmiHeader.biWidth = WINDOW_WIDTH;//以像素为单位的位图宽
	bmp_info.bmiHeader.biHeight =-WINDOW_HEIGHT;//以像素为单位的位图高,若为负,表示以左上角为原点,否则以左下角为原点
	bmp_info.bmiHeader.biPlanes = 1;//目标设备的平面数,必须设置为1
	bmp_info.bmiHeader.biBitCount = 32; //位图中每个像素的位数
	bmp_info.bmiHeader.biCompression = BI_RGB;
	bmp_info.bmiHeader.biSizeImage = 0;
	bmp_info.bmiHeader.biXPelsPerMeter = 0;
	bmp_info.bmiHeader.biYPelsPerMeter = 0;
	bmp_info.bmiHeader.biClrUsed = 0;
	bmp_info.bmiHeader.biClrImportant = 0;
	if (render_context->frame_buffer == nullptr)
	{
		render_context->InitFrameBuffer();
	}
	if (now_bitmap == nullptr)
	{
		now_bitmap = CreateDIBSection(buffer_hdc, &bmp_info, DIB_RGB_COLORS, (void**)&render_context->frame_buffer, NULL, 0);
	}

	InitSinCosTable();

	srand(GetTickCount());

	int index;

	bitmap24bit.LoadFile("OMPTXT128_24.bmp");
	cout << "bitcount" << bitmap24bit.bitmapinfoheader.biBitCount << endl;
	cout << bitmap24bit.bitmapinfoheader.biWidth << endl;
	cout << bitmap24bit.bitmapinfoheader.biHeight << endl;
	cout << "sizeimage" << bitmap24bit.bitmapinfoheader.biSizeImage << endl;

	// now extract each 64x64x16 texture from the image
	for (int itext = 0; itext < NUM_TEXT; itext++)
	{
		// create the bitmap
		textures[itext].CreateBitmap((WINDOW_WIDTH / 2) - (TEXTSIZE / 2), (WINDOW_HEIGHT / 2) - (TEXTSIZE / 2), TEXTSIZE, TEXTSIZE, 24);
		textures[itext].LoadImageBitmap(bitmap24bit, itext % 4, itext / 4, BITMAP_EXTRACT_MODE_CELL);
	} // end for

	// create temporary working texture (load with first texture to set loaded flags)
	temp_text.CreateBitmap((WINDOW_WIDTH / 2) - (TEXTSIZE / 2), (WINDOW_HEIGHT / 2) - (TEXTSIZE / 2), TEXTSIZE, TEXTSIZE, 24);
	temp_text.LoadImageBitmap(bitmap24bit, 0, 0, BITMAP_EXTRACT_MODE_CELL);
	//bitmap24bit.UnloadFile();

	bitmap24bit.LoadFile("LIGHTMAPS128_24.BMP");
	for (int itext = 0; itext < NUM_LMAP; itext++)
	{
		// create the bitmap
		lightmaps[itext].CreateBitmap((WINDOW_WIDTH / 2) + 2*(TEXTSIZE / 2), (WINDOW_HEIGHT / 2) - 2*(TEXTSIZE / 2), TEXTSIZE, TEXTSIZE, 24);
		lightmaps[itext].LoadImageBitmap(bitmap24bit, itext % 4, itext / 4, BITMAP_EXTRACT_MODE_CELL);
	}
	//bitmap24bit.UnloadFile();

	return true;
}
开发者ID:fxyyoung,项目名称:TinyRenderer,代码行数:65,代码来源:main.cpp


注:本文中的BitmapImage::CreateBitmap方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。