summaryrefslogtreecommitdiffstats
path: root/drivers/register_driver_types.cpp
diff options
context:
space:
mode:
authorJuan Linietsky <reduzio@gmail.com>2014-02-09 22:10:30 -0300
committerJuan Linietsky <reduzio@gmail.com>2014-02-09 22:10:30 -0300
commit0b806ee0fc9097fa7bda7ac0109191c9c5e0a1ac (patch)
tree276c4d099e178eb67fbd14f61d77b05e3808e9e3 /drivers/register_driver_types.cpp
parent0e49da1687bc8192ed210947da52c9e5c5f301bb (diff)
downloadredot-engine-0b806ee0fc9097fa7bda7ac0109191c9c5e0a1ac.tar.gz
GODOT IS OPEN SOURCE
Diffstat (limited to 'drivers/register_driver_types.cpp')
-rw-r--r--drivers/register_driver_types.cpp245
1 files changed, 245 insertions, 0 deletions
diff --git a/drivers/register_driver_types.cpp b/drivers/register_driver_types.cpp
new file mode 100644
index 0000000000..55a26fea8b
--- /dev/null
+++ b/drivers/register_driver_types.cpp
@@ -0,0 +1,245 @@
+/*************************************************/
+/* register_driver_types.cpp */
+/*************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/*************************************************/
+/* Source code within this file is: */
+/* (c) 2007-2010 Juan Linietsky, Ariel Manzur */
+/* All Rights Reserved. */
+/*************************************************/
+
+#include "register_driver_types.h"
+
+#include "png/image_loader_png.h"
+#include "webp/image_loader_webp.h"
+#include "png/resource_saver_png.h"
+#include "jpg/image_loader_jpg.h"
+#include "dds/texture_loader_dds.h"
+#include "pvr/texture_loader_pvr.h"
+#include "etc1/image_etc.h"
+#include "chibi/event_stream_chibi.h"
+
+#ifdef TOOLS_ENABLED
+#include "squish/image_compress_squish.h"
+#endif
+
+#ifdef TOOLS_ENABLED
+#include "convex_decomp/b2d_decompose.h"
+#endif
+
+#ifdef TREMOR_ENABLED
+#include "teora/audio_stream_ogg.h"
+#endif
+
+#ifdef VORBIS_ENABLED
+#include "vorbis/audio_stream_ogg_vorbis.h"
+#endif
+
+
+#ifdef SPEEX_ENABLED
+#include "speex/audio_stream_speex.h"
+#endif
+
+#ifdef THEORA_ENABLED
+#include "theora/video_stream_theora.h"
+#endif
+
+#include "drivers/trex/regex.h"
+
+#ifdef MUSEPACK_ENABLED
+#include "mpc/audio_stream_mpc.h"
+#endif
+
+#ifdef PNG_ENABLED
+static ImageLoaderPNG *image_loader_png=NULL;
+static ResourceSaverPNG *resource_saver_png=NULL;
+#endif
+
+#ifdef WEBP_ENABLED
+static ImageLoaderWEBP *image_loader_webp=NULL;
+//static ResourceSaverPNG *resource_saver_png=NULL;
+#endif
+
+#ifdef JPG_ENABLED
+static ImageLoaderJPG *image_loader_jpg=NULL;
+#endif
+
+#ifdef DDS_ENABLED
+static ResourceFormatDDS *resource_loader_dds=NULL;
+#endif
+
+
+#ifdef PVR_ENABLED
+static ResourceFormatPVR *resource_loader_pvr=NULL;
+#endif
+
+#ifdef TREMOR_ENABLED
+static ResourceFormatLoaderAudioStreamOGG *vorbis_stream_loader=NULL;
+#endif
+
+#ifdef VORBIS_ENABLED
+static ResourceFormatLoaderAudioStreamOGGVorbis *vorbis_stream_loader=NULL;
+#endif
+
+#ifdef SPEEX_ENABLED
+static ResourceFormatLoaderAudioStreamSpeex *speex_stream_loader=NULL;
+#endif
+
+#ifdef THEORA_ENABLED
+static ResourceFormatLoaderVideoStreamTheora* theora_stream_loader = NULL;
+#endif
+
+#ifdef MUSEPACK_ENABLED
+static ResourceFormatLoaderAudioStreamMPC * mpc_stream_loader=NULL;
+#endif
+
+void register_core_driver_types() {
+
+#ifdef PNG_ENABLED
+ image_loader_png = memnew( ImageLoaderPNG );
+ ImageLoader::add_image_format_loader( image_loader_png );
+
+ resource_saver_png = memnew( ResourceSaverPNG );
+ ResourceSaver::add_resource_format_saver(resource_saver_png);
+
+#endif
+
+#ifdef WEBP_ENABLED
+ image_loader_webp = memnew( ImageLoaderWEBP );
+ ImageLoader::add_image_format_loader( image_loader_webp );
+
+// resource_saver_png = memnew( ResourceSaverPNG );
+// ResourceSaver::add_resource_format_saver(resource_saver_png);
+
+#endif
+
+#ifdef JPG_ENABLED
+
+ image_loader_jpg = memnew( ImageLoaderJPG );
+ ImageLoader::add_image_format_loader( image_loader_jpg );
+#endif
+
+ ObjectTypeDB::register_type<RegEx>();
+}
+
+void unregister_core_driver_types() {
+
+#ifdef PNG_ENABLED
+ if (image_loader_png)
+ memdelete( image_loader_png );
+ if (resource_saver_png)
+ memdelete( resource_saver_png );
+#endif
+
+#ifdef WEBP_ENABLED
+ if (image_loader_webp)
+ memdelete( image_loader_webp );
+// if (resource_saver_png)
+// memdelete( resource_saver_png );
+#endif
+
+#ifdef JPG_ENABLED
+ if (image_loader_jpg)
+ memdelete( image_loader_jpg );
+#endif
+
+}
+
+
+void register_driver_types() {
+
+#ifdef TREMOR_ENABLED
+ vorbis_stream_loader=memnew( ResourceFormatLoaderAudioStreamOGG );
+ ResourceLoader::add_resource_format_loader(vorbis_stream_loader );
+ ObjectTypeDB::register_type<AudioStreamOGG>();
+#endif
+
+#ifdef VORBIS_ENABLED
+ vorbis_stream_loader=memnew( ResourceFormatLoaderAudioStreamOGGVorbis );
+ ResourceLoader::add_resource_format_loader(vorbis_stream_loader );
+ ObjectTypeDB::register_type<AudioStreamOGGVorbis>();
+#endif
+
+
+#ifdef DDS_ENABLED
+ resource_loader_dds = memnew( ResourceFormatDDS );
+ ResourceLoader::add_resource_format_loader(resource_loader_dds );
+#endif
+
+#ifdef PVR_ENABLED
+ resource_loader_pvr = memnew( ResourceFormatPVR );
+ ResourceLoader::add_resource_format_loader(resource_loader_pvr );
+#endif
+
+#ifdef TOOLS_ENABLED
+
+ Geometry::_decompose_func=b2d_decompose;
+#endif
+
+#ifdef SPEEX_ENABLED
+ speex_stream_loader=memnew( ResourceFormatLoaderAudioStreamSpeex );
+ ResourceLoader::add_resource_format_loader(speex_stream_loader);
+ ObjectTypeDB::register_type<AudioStreamSpeex>();
+#endif
+
+#ifdef MUSEPACK_ENABLED
+
+ mpc_stream_loader=memnew( ResourceFormatLoaderAudioStreamMPC );
+ ResourceLoader::add_resource_format_loader(mpc_stream_loader);
+ ObjectTypeDB::register_type<AudioStreamMPC>();
+
+#endif
+
+#ifdef THEORA_ENABLED
+ theora_stream_loader = memnew( ResourceFormatLoaderVideoStreamTheora );
+ ResourceLoader::add_resource_format_loader(theora_stream_loader);
+ ObjectTypeDB::register_type<VideoStreamTheora>();
+#endif
+
+#ifdef TOOLS_ENABLED
+#ifdef SQUISH_ENABLED
+
+ Image::set_compress_bc_func(image_compress_squish);
+
+#endif
+#endif
+
+ _register_etc1_compress_func();
+ initialize_chibi();
+}
+
+void unregister_driver_types() {
+
+#ifdef TREMOR_ENABLED
+ memdelete( vorbis_stream_loader );
+#endif
+
+#ifdef VORBIS_ENABLED
+ memdelete( vorbis_stream_loader );
+#endif
+
+#ifdef SPEEX_ENABLED
+ memdelete( speex_stream_loader );
+#endif
+
+#ifdef THEORA_ENABLED
+
+ memdelete (theora_stream_loader);
+#endif
+
+#ifdef MUSEPACK_ENABLED
+
+ memdelete (mpc_stream_loader);
+#endif
+
+#ifdef DDS_ENABLED
+ memdelete(resource_loader_dds);
+#endif
+
+#ifdef PVR_ENABLED
+ memdelete(resource_loader_pvr);
+#endif
+
+ finalize_chibi();
+}