Disable CUDA when memory allocations fail.

pull/216/head
castano 16 years ago
parent 7933aeea09
commit 8a24a93e2f

@ -215,6 +215,12 @@ Compressor::Compressor() : m(*new Compressor::Private())
if (m.cudaEnabled)
{
m.cuda = new CudaCompressor();
if (!m.cuda->isValid())
{
m.cudaEnabled = false;
m.cuda = NULL;
}
}
}
@ -235,6 +241,12 @@ void Compressor::enableCudaAcceleration(bool enable)
if (m.cudaEnabled && m.cuda == NULL)
{
m.cuda = new CudaCompressor();
if (!m.cuda->isValid())
{
m.cudaEnabled = false;
m.cuda = NULL;
}
}
}

@ -107,7 +107,10 @@ CudaCompressor::~CudaCompressor()
#endif
}
bool CudaCompressor::isValid() const
{
return m_data != NULL && m_result != NULL && m_bitmapTable != NULL;
}
// @@ This code is very repetitive and needs to be cleaned up.

@ -37,6 +37,8 @@ namespace nv
CudaCompressor();
~CudaCompressor();
bool isValid() const;
void compressDXT1(const Image * image, const nvtt::OutputOptions::Private & outputOptions, const nvtt::CompressionOptions::Private & compressionOptions);
void compressDXT3(const Image * image, const nvtt::OutputOptions::Private & outputOptions, const nvtt::CompressionOptions::Private & compressionOptions);
void compressDXT5(const Image * image, const nvtt::OutputOptions::Private & outputOptions, const nvtt::CompressionOptions::Private & compressionOptions);

Loading…
Cancel
Save