このページでは

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 ライセンスの下で利用可能です。
詳細を確認してください。