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 cxform;
00019 class Shape;
00020 class SWFMatrix;
00021 class RunResources;
00022 class Renderer;
00023 }
00024
00025 namespace gnash {
00026 namespace SWF {
00027
00031 class DefineShapeTag : public DefinitionTag
00032 {
00033 public:
00034
00035 static void loader(SWFStream& in, TagType tag, movie_definition& m,
00036 const RunResources& r);
00037
00038 virtual ~DefineShapeTag() {};
00039
00040
00041 virtual void display(Renderer& renderer, const DisplayObject& inst) const;
00042
00043
00044 virtual DisplayObject* createDisplayObject(Global_as& gl,
00045 DisplayObject* parent) const;
00046
00048 const SWFRect& bounds() const { return _shape.getBounds(); }
00049
00050 virtual bool pointTestLocal(boost::int32_t x, boost::int32_t y,
00051 const SWFMatrix& wm) const;
00052
00053 protected:
00054
00055 private:
00056
00057 DefineShapeTag(SWFStream& in, TagType tag, movie_definition& m,
00058 const RunResources& r, boost::uint16_t id);
00059
00061 const ShapeRecord _shape;
00062
00063 };
00064
00065 }
00066 }
00067
00068
00069 #endif
00070
00071
00072
00073
00074
00075
00076
00077