gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gnash-commit] /srv/bzr/gnash/trunk r11614: Reverted postpone of bit


From: Sandro Santilli
Subject: Re: [Gnash-commit] /srv/bzr/gnash/trunk r11614: Reverted postpone of bitmap loading as it breaks a test showing that onLoadInit call finds known bitmap size. Rather than fixing this I think is better to change strategy on un-blocking bitmap loads as this attempt didn't consider blockage
Date: Sun, 8 Nov 2009 14:22:27 +0100

Sorry guys, mea culpa haven't make checked.
I'll work on a private branch more...

--strk;

On Sun, Nov 08, 2009 at 01:53:30PM +0100, Sandro Santilli wrote:
> ------------------------------------------------------------
> revno: 11614
> committer: Sandro Santilli <address@hidden>
> branch nick: trunk
> timestamp: Sun 2009-11-08 13:53:30 +0100
> message:
>   Reverted postpone of bitmap loading as it breaks a test showing that 
> onLoadInit call finds known bitmap size. Rather than fixing this I think is 
> better to change strategy on un-blocking bitmap loads as this attempt didn't 
> consider blockage
>   on DNS lookup, socket initialization and magic number parsing anyway..
> modified:
>   libcore/BitmapMovie.cpp
>   libcore/BitmapMovie.h
>   libcore/impl.cpp
>   libcore/parser/BitmapMovieDefinition.cpp
>   libcore/parser/BitmapMovieDefinition.h

> === modified file 'libcore/BitmapMovie.cpp'
> --- a/libcore/BitmapMovie.cpp 2009-11-06 22:19:35 +0000
> +++ b/libcore/BitmapMovie.cpp 2009-11-08 12:53:30 +0000
> @@ -21,7 +21,7 @@
>  
>  namespace gnash {
>  
> -BitmapMovie::BitmapMovie(as_object* object, BitmapMovieDefinition* def,
> +BitmapMovie::BitmapMovie(as_object* object, const BitmapMovieDefinition* def,
>          DisplayObject* parent)
>       :
>       Movie(object, def, parent),
> @@ -29,20 +29,10 @@
>  {
>      assert(def);
>      assert(object);
> -}
> -
> -void
> -BitmapMovie::advance()
> -{
> -    if ( ! _def->moreToLoad() )
> -    {
> -        Bitmap* bm = new Bitmap(getRoot(*object()), 0, _def, this);
> -
> -        const int depth = 1 + DisplayObject::staticDepthOffset;
> -
> -        placeDisplayObject(bm, depth);
> -    }
> -
> +    Bitmap* bm = new Bitmap(getRoot(*object), 0, def, this);
> +
> +    const int depth = 1 + DisplayObject::staticDepthOffset;
> +    placeDisplayObject(bm, depth);
>  }
>  
>  } // namespace gnash
> 
> === modified file 'libcore/BitmapMovie.h'
> --- a/libcore/BitmapMovie.h   2009-11-06 22:19:35 +0000
> +++ b/libcore/BitmapMovie.h   2009-11-08 12:53:30 +0000
> @@ -42,7 +42,7 @@
>  
>  public:
>  
> -     BitmapMovie(as_object* object, BitmapMovieDefinition* def,
> +     BitmapMovie(as_object* object, const BitmapMovieDefinition* def,
>              DisplayObject* parent); 
>  
>       virtual ~BitmapMovie() {}
> @@ -50,7 +50,7 @@
>      /// BitmapMovies do need an advance method.
>      //
>      /// This may be for play() or other inherited methods.
> -     virtual void advance();
> +     virtual void advance() { MovieClip::advance(); }
>  
>      virtual float frameRate() const {
>          return _def->get_frame_rate();
> @@ -78,7 +78,7 @@
>       
>  private:
>       
> -    BitmapMovieDefinition* _def;
> +    const BitmapMovieDefinition* const _def;
>  
>  };
>  
> 
> === modified file 'libcore/impl.cpp'
> --- a/libcore/impl.cpp        2009-11-06 22:19:35 +0000
> +++ b/libcore/impl.cpp        2009-11-08 12:53:30 +0000
> @@ -46,7 +46,6 @@
>  #include <map>
>  #include <memory> // for auto_ptr
>  #include <algorithm>
> -#include <boost/shared_ptr.hpp>
>  
>  namespace gnash
>  {
> @@ -77,10 +76,21 @@
>  
>      try
>      {
> +        std::auto_ptr<GnashImage> im(
> +                ImageInput::readImageData(imageData, type));
> +
> +        if (!im.get()) {
> +            log_error(_("Can't read image file from %s"), url);
> +            return NULL;
> +        }
> +
>          Renderer* renderer = r.renderer();
> +
>          BitmapMovieDefinition* mdef =
> -            new BitmapMovieDefinition(imageData, renderer, type, url);
> +            new BitmapMovieDefinition(im, renderer, url);
> +
>          return mdef;
> +
>      }
>      catch (ParserException& e)
>      {
> 
> === modified file 'libcore/parser/BitmapMovieDefinition.cpp'
> --- a/libcore/parser/BitmapMovieDefinition.cpp        2009-11-06 22:19:35 
> +0000
> +++ b/libcore/parser/BitmapMovieDefinition.cpp        2009-11-08 12:53:30 
> +0000
> @@ -27,9 +27,6 @@
>  #include "Renderer.h"
>  #include "Global_as.h"
>  #include "namedStrings.h"
> -#include "GnashException.h"
> -#include <boost/shared_ptr.hpp>
> -#include <sstream>
>  
>  namespace gnash {
>  
> @@ -40,23 +37,6 @@
>      return new BitmapMovie(o, this, parent);
>  }
>  
> -BitmapMovieDefinition::BitmapMovieDefinition(
> -        boost::shared_ptr<IOChannel> imageData,
> -             Renderer* renderer, FileType type, const std::string& url)
> -     :
> -     _version(6),
> -     _framesize(0,0,512*20,512*20), // arbitrary default size (will change)
> -     _framecount(1),
> -     _framerate(12),
> -     _url(url),
> -     _bytesTotal(0),
> -     _bitmap(0),
> -    _inputStream(imageData),
> -    _inputFileType(type),
> -    _renderer(renderer)
> -{
> -}
> -
>  BitmapMovieDefinition::BitmapMovieDefinition(std::auto_ptr<GnashImage> image,
>               Renderer* renderer, const std::string& url)
>       :
> @@ -78,40 +58,6 @@
>      return 0;
>  }
>  
> -bool
> -BitmapMovieDefinition::moreToLoad() 
> -{
> -    // TODO: use a thread for background loading here
> -
> -    // no more to load if we don't have an input stream
> -    if ( ! _inputStream ) return false;
> -    // ..... or it's in bad state .....
> -    if ( _inputStream->bad() ) return false;
> -    // ..... or it's over .....
> -    if ( _inputStream->eof() ) return false;
> -
> -    // This one blocks... (and may throw ?)
> -    log_debug("BitmapMovieDefinition starting image loading");
> -    std::auto_ptr<GnashImage> im(
> -            ImageInput::readImageData(_inputStream, _inputFileType));
> -
> -    log_debug("BitmapMovieDefinition finished image loading");
> -    _inputStream.reset(); // we don't need this anymore
> -
> -    if (!im.get()) {
> -        std::stringstream ss;
> -        ss << _("Can't read image file from") << _url;
> -        throw ParserException(ss.str());
> -    }
> -
> -     _framesize.set_to_rect(0, 0, im->width()*20, im->height()*20);
> -     _bytesTotal = im->size();
> -
> -    if ( _renderer ) _bitmap = _renderer->createBitmapInfo(im);
> -
> -    return false;
> -}
> -
>  #ifdef GNASH_USE_GC
>  void
>  BitmapMovieDefinition::markReachableResources() const
> 
> === modified file 'libcore/parser/BitmapMovieDefinition.h'
> --- a/libcore/parser/BitmapMovieDefinition.h  2009-11-06 22:19:35 +0000
> +++ b/libcore/parser/BitmapMovieDefinition.h  2009-11-08 12:53:30 +0000
> @@ -25,8 +25,6 @@
>  #include "DynamicShape.h" // for destructor visibility by intrusive_ptr
>  #include "GnashImage.h"
>  #include "GnashNumeric.h"
> -#include "IOChannel.h"
> -#include "gnash.h" // for FileType enum
>  
>  #include <string>
>  #include <memory> // for auto_ptr
> @@ -62,21 +60,6 @@
>       BitmapMovieDefinition(std::auto_ptr<GnashImage> image, Renderer* 
> renderer,
>              const std::string& url);
>  
> -     /// Construct a BitmapMovieDefinition for the given input 
> -     //
> -     /// Will be initialized with the following values
> -     ///
> -     ///  - SWF version 6
> -     ///  - Framesize 0x0 (to be updated after parsing)
> -     ///  - Single frame (unlabeled)
> -     ///  - 12 FPS
> -     ///  - 0 bytes size (for get_bytes_loaded()/get_bytes_total())
> -     ///  - provided url
> -     ///
> -     BitmapMovieDefinition(boost::shared_ptr<IOChannel> image,
> -                           Renderer* renderer, FileType type,
> -                           const std::string& url);
> -
>      virtual DisplayObject* createDisplayObject(Global_as&, DisplayObject*)
>          const;
>  
> @@ -141,9 +124,6 @@
>          return _bitmap.get();
>      }
>  
> -    // Load more if needed, return false if finished loading all
> -    bool moreToLoad();
> -
>  protected:
>  
>  #ifdef GNASH_USE_GC
> @@ -167,12 +147,6 @@
>       size_t _bytesTotal;
>  
>      boost::intrusive_ptr<BitmapInfo> _bitmap;
> -
> -    boost::shared_ptr<IOChannel> _inputStream;
> -
> -    FileType _inputFileType;
> -
> -    Renderer* _renderer;
>  };
>  
>  } // namespace gnash
> 

> _______________________________________________
> Gnash-commit mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/gnash-commit


-- 

 Free GIS & Flash consultant/developer      ()  ASCII Ribbon Campaign
 http://foo.keybit.net/~strk/services.html  /\  Keep it simple! 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]