QSGNode *TabBar::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *)
{
QSGNode *root = static_cast<QSGNode *>(oldNode);
if(!root) root = new QSGNode;
root->removeAllChildNodes();
QSGGeometry *geometry;
geometry = new QSGGeometry(QSGGeometry::defaultAttributes_Point2D(), 6);
geometry->setDrawingMode(GL_TRIANGLE_FAN);
geometry->vertexDataAsPoint2D()[0].set(20, 40);
geometry->vertexDataAsPoint2D()[1].set(0, 0);
geometry->vertexDataAsPoint2D()[2].set(100, 0);
geometry->vertexDataAsPoint2D()[3].set(120, 40);
geometry->vertexDataAsPoint2D()[4].set(100, 80);
geometry->vertexDataAsPoint2D()[5].set(0, 80);
node = drawPolygon(geometry, Qt::red);
root->appendChildNode(node);
}
QSGNode
*TabBar
::drawPolygon(QSGGeometry
*geometry,
const QColor &color
){
QSGFlatColorMaterial *material = new QSGFlatColorMaterial;
material->setColor(color);
QSGGeometryNode *node = new QSGGeometryNode;
node->setGeometry(geometry);
node->setFlag(QSGNode::OwnsGeometry);
node->setMaterial(material);
node->setFlag(QSGNode::OwnsMaterial);
return node;
}
QSGNode *TabBar::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *)
{
QSGNode *root = static_cast<QSGNode *>(oldNode);
if(!root) root = new QSGNode;
root->removeAllChildNodes();
QSGGeometry *geometry;
geometry = new QSGGeometry(QSGGeometry::defaultAttributes_Point2D(), 6);
geometry->setDrawingMode(GL_TRIANGLE_FAN);
geometry->vertexDataAsPoint2D()[0].set(20, 40);
geometry->vertexDataAsPoint2D()[1].set(0, 0);
geometry->vertexDataAsPoint2D()[2].set(100, 0);
geometry->vertexDataAsPoint2D()[3].set(120, 40);
geometry->vertexDataAsPoint2D()[4].set(100, 80);
geometry->vertexDataAsPoint2D()[5].set(0, 80);
node = drawPolygon(geometry, Qt::red);
root->appendChildNode(node);
}
QSGNode *TabBar::drawPolygon(QSGGeometry *geometry, const QColor &color)
{
QSGFlatColorMaterial *material = new QSGFlatColorMaterial;
material->setColor(color);
QSGGeometryNode *node = new QSGGeometryNode;
node->setGeometry(geometry);
node->setFlag(QSGNode::OwnsGeometry);
node->setMaterial(material);
node->setFlag(QSGNode::OwnsMaterial);
return node;
}
To copy to clipboard, switch view to plain text mode
Bookmarks