diff options
author | Juan Linietsky <reduzio@gmail.com> | 2014-02-09 22:10:30 -0300 |
---|---|---|
committer | Juan Linietsky <reduzio@gmail.com> | 2014-02-09 22:10:30 -0300 |
commit | 0b806ee0fc9097fa7bda7ac0109191c9c5e0a1ac (patch) | |
tree | 276c4d099e178eb67fbd14f61d77b05e3808e9e3 /drivers/register_driver_types.cpp | |
parent | 0e49da1687bc8192ed210947da52c9e5c5f301bb (diff) | |
download | redot-engine-0b806ee0fc9097fa7bda7ac0109191c9c5e0a1ac.tar.gz |
GODOT IS OPEN SOURCE
Diffstat (limited to 'drivers/register_driver_types.cpp')
-rw-r--r-- | drivers/register_driver_types.cpp | 245 |
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(); +} |