diff options
Diffstat (limited to 'client/gui/softrenderer.cpp')
-rw-r--r-- | client/gui/softrenderer.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/client/gui/softrenderer.cpp b/client/gui/softrenderer.cpp index 9e08f7a5..87fffb8b 100644 --- a/client/gui/softrenderer.cpp +++ b/client/gui/softrenderer.cpp @@ -64,19 +64,23 @@ void SoftRenderer::setupImageCodec() #else String _default_codec_name(STRINGIZE(TGAImageCodec/*CEGUI_DEFAULT_IMAGE_CODEC*/)); DynamicModule* module = NULL; + try { DynamicModule* module = new DynamicModule(String("CEGUI") + _default_codec_name); _destroy_image_codec = (void(*)(ImageCodec*))module->getSymbolAddress("destroyImageCodec"); + if (!_destroy_image_codec) { throw GenericException("Missing destroyImageCodec symbol"); } ImageCodec* (*create_f)(void); create_f = (ImageCodec* (*)(void))module->getSymbolAddress("createImageCodec"); + if (!create_f) { throw GenericException("Missing createImageCodec symbol"); } + _image_codec = create_f(); } catch (...) { delete module; @@ -86,14 +90,12 @@ void SoftRenderer::setupImageCodec() #endif } - void SoftRenderer::cleanupImageCodec() { _destroy_image_codec(_image_codec); delete _image_codec_module; } - static inline uint8_t calac_pixel(uint64_t c1, uint64_t c2, uint64_t c3, uint64_t a_mul) { //(c' * c" * a' * a" + c"' * 255 ^ 3 - c"' * a' * a" * 255) / 255^4 @@ -369,4 +371,3 @@ uint SoftRenderer::getVertScreenDPI() const } - |