00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef GLUON_ENGINE_SPRITERENDERERCOMPONENT_H
00021 #define GLUON_ENGINE_SPRITERENDERERCOMPONENT_H
00022
00023 #include <engine/gluon_engine_export.h>
00024 #include <engine/component.h>
00025
00026 namespace GluonGraphics
00027 {
00028 class MaterialInstance;
00029 }
00030
00031 namespace GluonEngine
00032 {
00033 class Asset;
00034
00035 class GLUON_ENGINE_EXPORT SpriteRendererComponent : public Component
00036 {
00037 Q_OBJECT
00038 GLUON_OBJECT( GluonEngine::SpriteRendererComponent )
00039 Q_PROPERTY( QSizeF size READ size WRITE setSize )
00040 Q_PROPERTY( GluonGraphics::MaterialInstance* material READ material WRITE setMaterial )
00041 Q_INTERFACES( GluonEngine::Component )
00042
00043 public:
00044 Q_INVOKABLE SpriteRendererComponent( QObject* parent = 0 );
00045 SpriteRendererComponent( const SpriteRendererComponent& other );
00046 virtual ~SpriteRendererComponent();
00047 virtual QString category() const;
00048
00049 virtual void initialize();
00050 virtual void start();
00051 virtual void draw( int timeLapse = 0 );
00052 virtual void cleanup();
00053
00054 virtual QSizeF size();
00055 virtual GluonGraphics::MaterialInstance* material();
00056
00057 public slots:
00058 virtual void setSize( const QSizeF& size );
00059 virtual void setMaterial( GluonGraphics::MaterialInstance* material );
00060 virtual void setMaterial( const QString& path );
00061
00062 private:
00063 class SpriteRendererComponentPrivate;
00064 SpriteRendererComponentPrivate* const d;
00065 };
00066
00067 }
00068
00069 Q_DECLARE_METATYPE( GluonEngine::SpriteRendererComponent )
00070 Q_DECLARE_METATYPE( GluonEngine::SpriteRendererComponent* )
00071
00072 #endif // GLUON_ENGINE_SPRITERENDERERCOMPONENT_H