summaryrefslogtreecommitdiffstats
path: root/client/gui/softrenderer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'client/gui/softrenderer.cpp')
-rw-r--r--client/gui/softrenderer.cpp7
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
}
-