Esempio n. 1
0
void CPicture::LoadDDS( CDataStream& dataStream )
{
	char const* header = (char const*)dataStream.GetCursorData() + 4;

	m_height = *(unsigned int*)&(header[8]);
	m_width = *(unsigned int*)&(header[12]);
	unsigned int linearSize = *(unsigned int*)&(header[16]);
	m_mipMapCount = *(unsigned int*)&(header[24]);
	unsigned int fourCC = *(unsigned int*)&(header[80]);

	m_pPixelData = const_cast<char*>(header) + 124;

	switch (fourCC)
	{
	case FOURCC_DXT1:	m_format = ePF_R8G8B8A8_DTX1; break;
	case FOURCC_DXT3:	m_format = ePF_R8G8B8A8_DTX3; break;
	case FOURCC_DXT5:	m_format = ePF_R8G8B8A8_DTX5; break;
	default:
		break;
		// free
	}
}
Esempio n. 2
0
void CPicture::LoadPNG( CDataStream& dataStream )
{
	lodepng_decode_memory( (unsigned char**)&m_pPixelData, &m_width, &m_height, (unsigned char*)dataStream.GetCursorData(), dataStream.GetSize(), LodePNGColorType::LCT_RGBA, 8 );
	m_format = ePF_R8G8B8A8;
	m_mipMapCount = 0;
}