summaryrefslogtreecommitdiffstats
path: root/src/declarative/items/qsgninepatchnode_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/declarative/items/qsgninepatchnode_p.h')
-rw-r--r--src/declarative/items/qsgninepatchnode_p.h49
1 files changed, 35 insertions, 14 deletions
diff --git a/src/declarative/items/qsgninepatchnode_p.h b/src/declarative/items/qsgninepatchnode_p.h
index 22bfc79f01..533495d3ce 100644
--- a/src/declarative/items/qsgninepatchnode_p.h
+++ b/src/declarative/items/qsgninepatchnode_p.h
@@ -42,32 +42,53 @@
#ifndef QSGNINEPATCHNODE_H
#define QSGNINEPATCHNODE_H
-#include "node.h"
-#include "texturematerial.h"
+#include "qsgnode.h"
+#include "qsgtexturematerial.h"
+#include "qsgborderimage_p.h"
class TextureReference;
-class QSGNinePatchNode : public GeometryNode
+class QSGNinePatchNode : public QSGGeometryNode
{
public:
- QSGNinePatchNode(const QRectF &targetRect, const QSGTextureRef &texture, const QRect &innerRect,
- bool linearFiltering = false);
+ QSGNinePatchNode();
+
+ void setTexture(QSGTexture *texture);
+ QSGTexture *texture() const;
void setRect(const QRectF &rect);
QRectF rect() const { return m_targetRect; }
- bool linearFiltering() const { return m_linearFiltering; }
- void setLinearFiltering(bool);
+ void setInnerRect(const QRectF &rect);
+ QRectF innerRect() const { return m_innerRect; }
+
+ void setFiltering(QSGTexture::Filtering filtering);
+ QSGTexture::Filtering filtering() const;
+
+ void setHorzontalTileMode(QSGBorderImage::TileMode mode);
+ QSGBorderImage::TileMode horizontalTileMode() const {
+ return (QSGBorderImage::TileMode) m_horizontalTileMode;
+ }
+
+ void setVerticalTileMode(QSGBorderImage::TileMode mode);
+ QSGBorderImage::TileMode verticalTileMode() const {
+ return (QSGBorderImage::TileMode) m_verticalTileMode;
+ }
+
+ void update();
private:
- void updateGeometry();
+ void fillRow(QSGGeometry::TexturedPoint2D *&v, float y, float ty, int xChunkCount, float xChunkSize);
QRectF m_targetRect;
- QRect m_innerRect;
- bool m_linearFiltering;
- TextureMaterial m_material;
- TextureMaterialWithOpacity m_materialO;
- QSGTextureRef m_texture;
+ QRectF m_innerRect;
+ QSGTextureMaterial m_material;
+ QSGTextureMaterialWithOpacity m_materialO;
QSGGeometry m_geometry;
-};
+
+ uint m_horizontalTileMode : 2;
+ uint m_verticalTileMode : 2;
+
+ uint m_dirtyGeometry : 1;
+};
#endif // QSGNINEPATCHNODE_H