Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef GNASH_SHAPE_CHARACTER_DEF_H
00010 #define GNASH_SHAPE_CHARACTER_DEF_H
00011
00012 #include "DefinitionTag.h"
00013 #include "SWF.h"
00014 #include "ShapeRecord.h"
00015
00016 namespace gnash {
00017 class SWFStream;
00018 class SWFCxForm;
00019 class Shape;
00020 class SWFMatrix;
00021 class RunResources;
00022 class Renderer;
00023 class Transform;
00024 }
00025
00026 namespace gnash {
00027 namespace SWF {
00028
00032 class DefineShapeTag : public DefinitionTag
00033 {
00034 public:
00035
00036 static void loader(SWFStream& in, TagType tag, movie_definition& m,
00037 const RunResources& r);
00038
00039 virtual ~DefineShapeTag() {};
00040
00041
00042 virtual void display(Renderer& renderer, const Transform& xform) const;
00043
00044
00045 virtual DisplayObject* createDisplayObject(Global_as& gl,
00046 DisplayObject* parent) const;
00047
00049 const SWFRect& bounds() const { return _shape.getBounds(); }
00050
00051 virtual bool pointTestLocal(boost::int32_t x, boost::int32_t y,
00052 const SWFMatrix& wm) const;
00053
00054 protected:
00055
00056 private:
00057
00058 DefineShapeTag(SWFStream& in, TagType tag, movie_definition& m,
00059 const RunResources& r, boost::uint16_t id);
00060
00062 const ShapeRecord _shape;
00063
00064 };
00065
00066 }
00067 }
00068
00069
00070 #endif
00071
00072
00073
00074
00075
00076
00077
00078