//------------------------------------------------------------------------ // // [2011/2/28 jjuiddong] //------------------------------------------------------------------------ void CChunkManager::DeleteChunkGroupLoader( SChunkGroupLoader *pLoader) { if (!pLoader) return; for (int i=0; i < m_ChunkSize; ++i) { SAFE_ADELETE( pLoader->pchunk[ i].pLayer); } SAFE_ADELETE(pLoader->pchunk); SAFE_DELETE(pLoader); }
//------------------------------------------------------------------------ // // [2011/2/28 jjuiddong] //------------------------------------------------------------------------ void CChunkManager::Clear() { SAFE_DELETE(m_pWater); SAFE_DELETE(m_pShader); SAFE_ADELETE(m_pChunk); SAFE_RELEASE(m_pTerrainTex); SAFE_RELEASE(m_pTerrainSurf); SAFE_RELEASE(m_pTerrainDepth); SAFE_RELEASE(m_pTerrainDepthSurf); DeleteChunkGroupLoader(m_pLoader); }
bool save_bmp_mono(const char *filename, uint8_t *ptr, int width, int height) { uint8_t *buf = new uint8_t[width*height*4]; uint8_t *src = ptr; uint32_t *dst = (uint32_t *)buf; for (int i = 0; i < height; ++i) { for (int j = 0; j < width; ++j) { uint8_t b = *src++; uint32_t d = b << 24 | b << 16 | b << 8 | b; *dst++ = d; } } bool res = save_bmp32(filename, buf, width, height); SAFE_ADELETE(buf); return res; }