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 パラメータには、ソフトウェアベースのレンダリングに必要なフレームバッファアドレス、bytesPerPixel、およびbytesPerLineが含まれます。platformContextが利用可能な場合は、これを取得してプラットフォーム固有のハードウェア機能にアクセスし、レンダリングを行うことができます。
描画対象が別のアイテムの内側にある場合や部分更新の場合、clip で定義された領域にブレンドを制限することができます。
size を使用すると、描画対象のアイテムのサイズと等しいバウンディング矩形を取得できます。
このメソッドは、Qmlアプリケーションで定義されたtransform を適用することもできます。
painteditem の不透明度に関する情報は、opacity パラメータによって提供されます。
void PaintedItemDelegate::update() const
描画対象を更新します。
このメソッドは、描画対象の更新が必要になった際に、アプリケーションによって呼び出されます。このメソッドは、描画対象に関連付けられたノードを順に処理し、変更されたノードに対して再描画をトリガーします。
paintも参照してください 。
void PaintedItemDelegate::update(int x, int y, int width, int height) const
指定された境界領域で、描画対象を更新します。
このメソッドは、指定された領域内のみにおいて、描画対象項目の再描画をトリガーします。この領域は、項目のx 、y 、width 、およびheight プロパティによって定義されます。
paintも参照してください 。
特定のQtライセンスの下で利用可能です。
詳細はこちら。