diff options
author | Juan Linietsky <reduzio@gmail.com> | 2014-10-03 00:10:51 -0300 |
---|---|---|
committer | Juan Linietsky <reduzio@gmail.com> | 2014-10-03 00:10:51 -0300 |
commit | b24fe3dd206ce391ec4c5f68d32fc2259f275563 (patch) | |
tree | 5d05b14d21ba1c8a484f9b7f3739a63f42ca082d /drivers | |
parent | 870c075ebf67749b21b6cc0c705088bbe273f1bb (diff) |
Huge Amount of BugFix
-=-=-=-=-=-=-=-=-=-=-
-Fixes to Collada Exporter (avoid crash situtions)
-Fixed to Collada Importer (Fixed Animation Optimizer Bugs)
-Fixes to RigidBody/RigidBody2D body_enter/body_exit, was buggy
-Fixed ability for RigidBody/RigidBody2D to get contacts reported and bodyin/out in Kinematic mode.
-Added proper trigger support for 3D Physics shapes
-Changed proper value for Z-Offset in OmniLight
-Fixed spot attenuation bug in SpotLight
-Fixed some 3D and 2D spatial soudn bugs related to distance attenuation.
-Fixed bugs in EventPlayer (channels were muted by default)
-Fix in ButtonGroup (get nodes in group are now returned in order)
-Fixed Linear->SRGB Conversion, previous algo sucked, new algo works OK
-Changed SRGB->Linear conversion to use hardware if supported, improves texture quality a lot
-Fixed options for Y-Fov and X-Fov in camera, should be more intuitive.
-Fixed bugs related to viewports and transparency
Huge Amount of New Stuff:
-=-=-=-=-=-=-=-==-=-=-=-
-Ability to manually advance an AnimationPlayer that is inactive (with advance() function)
-More work in WinRT platform
-Added XY normalmap support, imports on this format by default. Reduces normlmap size and enables much nice compression using LATC
-Added Anisotropic filter support to textures, can be specified on import
-Added support for Non-Square, Isometric and Hexagonal tilemaps in TileMap.
-Added Isometric Dungeon demo.
-Added simple hexagonal map demo.
-Added Truck-Town demo. Shows how most types of joints and vehicles are used. Please somebody make a nicer town, this one is too hardcore.
-Added an Object-Picking API to both RigidBody and Area! (and relevant demo)
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/theoraplayer/video_stream_theoraplayer.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/drivers/theoraplayer/video_stream_theoraplayer.cpp b/drivers/theoraplayer/video_stream_theoraplayer.cpp index 12ef5de88f..b2ff8062cc 100644 --- a/drivers/theoraplayer/video_stream_theoraplayer.cpp +++ b/drivers/theoraplayer/video_stream_theoraplayer.cpp @@ -86,12 +86,18 @@ public: return fa->get_pos(); }; - TPDataFA(String p_path) { + TPDataFA(const String& p_path) { fa = FileAccess::open(p_path, FileAccess::READ); data_name = "File: " + p_path; }; + TPDataFA(FileAccess* p_fa, const String& p_path) { + + fa = p_fa; + data_name = "File: " + p_path; + }; + ~TPDataFA() { if (fa) @@ -366,6 +372,10 @@ void VideoStreamTheoraplayer::update(float p_time) { void VideoStreamTheoraplayer::set_file(const String& p_file) { + FileAccess* f = FileAccess::open(p_file, FileAccess::READ); + if (!f || !f->is_open()) + return; + if (!audio_factory) { audio_factory = memnew(TPAudioGodotFactory); }; @@ -377,10 +387,11 @@ void VideoStreamTheoraplayer::set_file(const String& p_file) { std::string file = p_file.replace("res://", "").utf8().get_data(); clip = mgr->createVideoClip(file); + memdelete(f); } else { - TheoraDataSource* ds = memnew(TPDataFA(p_file)); + TheoraDataSource* ds = memnew(TPDataFA(f, p_file)); try { clip = mgr->createVideoClip(ds); |