C
Qul::PaintedItemDelegate Class
class Qul::PaintedItemDelegateペイントされたアイテムオブジェクトを表現するための基本クラスです。詳細...
| Header: | #include <qul/painteditemdelegate.h> |
| Since: | Qt Quick Ultralite 1.9 |
| Inherits: | Qul::Object |
パブリック関数
| virtual Qul::PlatformInterface::Rect | boundingRect(Qul::PlatformInterface::Size size) const = 0 |
| virtual void | paint(Qul::PlatformInterface::DrawingDevice *device, const Qul::PlatformInterface::Rect &clip, const Qul::PlatformInterface::Transform &transform, Qul::PlatformInterface::Size size, float opacity) const = 0 |
| void | update() const |
| void | update(int x, int y, int width, int height) const |
詳細説明
カスタムペイントアイテムオブジェクトは PaintedItemDelegate クラスから派生させることができます。派生クラスは、paint ()純粋仮想メソッドを実装し、プラットフォームのコンテキストを使用するか、フレームバッファのピクセルを直接操作して描画する必要があります。
class CustomPaintedItemDelegate : public Qul::PaintedItemDelegate { public: Qul::Property<int> scale; Qul::Property<Qul::Private::Matrix4x4> transform; Qul::PlatformInterface::Rect boundingRect(Qul::PlatformInterface::Size size) const override; void paint(Qul::PlatformInterface::DrawingDevice *device, const Qul::PlatformInterface::Rect &clip, const Qul::PlatformInterface::Transform &transform, Qul::PlatformInterface::Size size, float opacity) const override; void paintCircle(Qul::PlatformInterface::DrawingDevice *device, const Qul::PlatformInterface::Rect &clip, Qul::PlatformInterface::Point center, int radius, Qul::PlatformInterface::Rgba32 color) const; };
先ほどの例では、CustomPaintedItemDelegateクラスはPaintedItemDelegateから派生しています。そのpaint メソッドの実装では、Qul::PlatformInterface::DrawingDevice *deviceパラメータから得られるプラットフォームコンテキストまたはフレームバッファアドレスを使用する。
QPainter *painter = static_cast<QPainter *>(device->platformContext());
PaintedItemも参照してください 。
メンバ関数ドキュメント
[pure virtual] Qul::PlatformInterface::Rect PaintedItemDelegate::boundingRect(Qul::PlatformInterface::Size size) const
paint メ ソ ッ ド で用い ら れ る 外接矩形を返 し ます。
これは、size で定義された幅と高さを持つ Rectangle オブジェクトを返します。
paintも参照してください 。
[pure virtual] void PaintedItemDelegate::paint(Qul::PlatformInterface::DrawingDevice *device, const Qul::PlatformInterface::Rect &clip, const Qul::PlatformInterface::Transform &transform, Qul::PlatformInterface::Size size, float opacity) const
ペイントされたアイテムを更新します。
このメソッドは、アプリケーションから更新イベントがトリガーされるたびに呼び出されます。
device パラメータには、ソフトウェアベースのレンダリングに必要な fraembuffer アドレス、bytesPerPixel、bytesPerLine が含まれます。platformContextが利用可能な場合、それを取得することで、プラットフォーム固有のハードウェア機能にアクセスしてレンダリングすることができます。
描画されたアイテムが別のアイテムの中にある場合や、部分更新の場合は、clip で定義された領域にブレンドを制限することができます。
size を使用して、ペイントされたアイテムのサイズに等しい境界矩形を取得することができます。
このメソッドは、Qml アプリケーションで定義されているtransform を適用することもできます。
ペイントされたアイテムの不透明度に関する情報は、opacity パラメータで与えられます。
void PaintedItemDelegate::update() const
ペイントされたアイテムを更新します。
このメソッドは、ペイントされたアイテムの更新が必要になるたびにアプリケーションから呼び出されます。このメソッドは、ペイントされたアイテムに関連付けられたノードを走査し、ダーティなノードの再描画をトリガします。
paintも参照してください 。
void PaintedItemDelegate::update(int x, int y, int width, int height) const
指定された境界領域でペイントされたアイテムを更新する。
このメソッドは、指定された領域内でのみペイントされたアイテムの再ペイントをトリガーする。領域は itema のx,y,width,height プロパティによって定義される。
paintも参照してください 。
特定の Qt ライセンスの下で利用可能です。
詳細を確認してください。