123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303 |
- /*************************************************/
- /* 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 TOOLS_ENABLED
- #include "pe_bliss/pe_bliss_godot.h"
- #include "platform/windows/export/export.h"
- #endif
- #ifdef TREMOR_ENABLED
- #include "teora/audio_stream_ogg.h"
- #endif
- #ifdef VORBIS_ENABLED
- #include "vorbis/audio_stream_ogg_vorbis.h"
- #endif
- #ifdef OPUS_ENABLED
- #include "opus/audio_stream_opus.h"
- #endif
- #ifdef SPEEX_ENABLED
- #include "speex/audio_stream_speex.h"
- #endif
- #ifdef THEORA_ENABLED
- #include "theora/video_stream_theora.h"
- #endif
- #ifdef THEORAPLAYER_ENABLED
- #include "theoraplayer/video_stream_theoraplayer.h"
- #endif
- #include "drivers/nrex/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 OPUS_ENABLED
- static ResourceFormatLoaderAudioStreamOpus *opus_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 THEORAPLAYER_ENABLED
- static ResourceFormatLoaderVideoStreamTheoraplayer* theoraplayer_stream_loader = NULL;
- #endif
- #ifdef MUSEPACK_ENABLED
- static ResourceFormatLoaderAudioStreamMPC * mpc_stream_loader=NULL;
- #endif
- #ifdef OPENSSL_ENABLED
- #include "openssl/register_openssl.h"
- #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 OPUS_ENABLED
- opus_stream_loader=memnew( ResourceFormatLoaderAudioStreamOpus );
- ResourceLoader::add_resource_format_loader( opus_stream_loader );
- ObjectTypeDB::register_type<AudioStreamOpus>();
- #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 OPENSSL_ENABLED
- register_openssl();
- #endif
- #ifdef THEORA_ENABLED
- theora_stream_loader = memnew( ResourceFormatLoaderVideoStreamTheora );
- ResourceLoader::add_resource_format_loader(theora_stream_loader);
- ObjectTypeDB::register_type<VideoStreamTheora>();
- #endif
- #ifdef THEORAPLAYER_ENABLED
- theoraplayer_stream_loader = memnew( ResourceFormatLoaderVideoStreamTheoraplayer );
- ResourceLoader::add_resource_format_loader(theoraplayer_stream_loader);
- ObjectTypeDB::register_type<VideoStreamTheoraplayer>();
- #endif
- #ifdef TOOLS_ENABLED
- #ifdef SQUISH_ENABLED
- Image::set_compress_bc_func(image_compress_squish);
- #endif
- #endif
- #ifdef ETC1_ENABLED
- _register_etc1_compress_func();
- #endif
-
- initialize_chibi();
- }
- void unregister_driver_types() {
- #ifdef TREMOR_ENABLED
- memdelete( vorbis_stream_loader );
- #endif
- #ifdef VORBIS_ENABLED
- memdelete( vorbis_stream_loader );
- #endif
- #ifdef OPUS_ENABLED
- memdelete( opus_stream_loader );
- #endif
- #ifdef SPEEX_ENABLED
- memdelete( speex_stream_loader );
- #endif
- #ifdef THEORA_ENABLED
- memdelete (theora_stream_loader);
- #endif
- #ifdef THEORAPLAYER_ENABLED
- memdelete (theoraplayer_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
- #ifdef OPENSSL_ENABLED
- unregister_openssl();
- #endif
- finalize_chibi();
- }
|