// ------------------------------------------------------------------------------------------------ Texture2D* TextureManager::newTexture2DFromDetails(const TextureDetails* _texDetails) { Texture2D* retTex = allocTexture2D(_texDetails->szMipMapCount, _texDetails->glFormat, _texDetails->dwWidth, _texDetails->dwHeight); retTex->commit(); size_t offset = 0; for (int mip = 0; mip < _texDetails->szMipMapCount; ++mip) { retTex->CompressedTexSubImage2D(mip, 0, 0, _texDetails->MipMapWidth(mip), _texDetails->MipMapHeight(mip), _texDetails->glFormat, _texDetails->pSizes[mip], (char*)_texDetails->pPixels + offset); offset += _texDetails->pSizes[mip]; } return retTex; }