Gnash  0.8.11dev
DefineShapeTag.h
Go to the documentation of this file.
1 // shape.h -- Thatcher Ulrich <tu@tulrich.com> 2003
2 
3 // This source code has been donated to the Public Domain. Do
4 // whatever you want with it.
5 
6 // Quadratic bezier outline shapes, the basis for most SWF rendering.
7 
8 
9 #ifndef GNASH_SHAPE_CHARACTER_DEF_H
10 #define GNASH_SHAPE_CHARACTER_DEF_H
11 
12 #include "DefinitionTag.h" // for inheritance of DefineShapeTag
13 #include "SWF.h"
14 #include "ShapeRecord.h"
15 
16 namespace gnash {
17  class SWFStream;
18  class SWFCxForm;
19  class Shape;
20  class SWFMatrix;
21  class RunResources;
22  class Renderer;
23  class Transform;
24 }
25 
26 namespace gnash {
27 namespace SWF {
28 
33 {
34 public:
35 
36  static void loader(SWFStream& in, TagType tag, movie_definition& m,
37  const RunResources& r);
38 
39  // Display a Shape character.
40  void display(Renderer& renderer, const Transform& xform) const;
41 
42  // Create a Shape DisplayObject.
43  // Inherited from DefinitionTag, see dox there
45  DisplayObject* parent) const;
46 
48  const SWFRect& bounds() const { return _shape.getBounds(); }
49 
51  //
56  bool pointTestLocal(boost::int32_t x, boost::int32_t y,
57  const SWFMatrix& wm) const;
58 
59 private:
60 
62  const RunResources& r, boost::uint16_t id);
63 
65  const ShapeRecord _shape;
66 
67 };
68 
69 } // namespace SWF
70 } // namespace gnash
71 
72 
73 #endif
74 
75 
76 // Local Variables:
77 // mode: C++
78 // c-basic-offset: 8
79 // tab-width: 8
80 // indent-tabs-mode: t
81 // End: