arc shadow shader moved to playground shadows - the algo does not match
the arc renderer.
This commit is contained in:
parent
6a2e07339e
commit
af34d7b8f2
@ -3,7 +3,7 @@
|
|||||||
* SPDX-License-Identifier: BSD-3-Clause
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
#include "QskArcShadowNode.h"
|
#include "ArcShadowNode.h"
|
||||||
|
|
||||||
#include <qcolor.h>
|
#include <qcolor.h>
|
||||||
#include <qsgmaterial.h>
|
#include <qsgmaterial.h>
|
||||||
@ -252,10 +252,10 @@ namespace
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class QskArcShadowNodePrivate final : public QSGGeometryNodePrivate
|
class ArcShadowNodePrivate final : public QSGGeometryNodePrivate
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
QskArcShadowNodePrivate()
|
ArcShadowNodePrivate()
|
||||||
: geometry( QSGGeometry::defaultAttributes_TexturedPoint2D(), 4 )
|
: geometry( QSGGeometry::defaultAttributes_TexturedPoint2D(), 4 )
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@ -265,10 +265,10 @@ class QskArcShadowNodePrivate final : public QSGGeometryNodePrivate
|
|||||||
QRectF rect;
|
QRectF rect;
|
||||||
};
|
};
|
||||||
|
|
||||||
QskArcShadowNode::QskArcShadowNode()
|
ArcShadowNode::ArcShadowNode()
|
||||||
: QSGGeometryNode( *new QskArcShadowNodePrivate )
|
: QSGGeometryNode( *new ArcShadowNodePrivate )
|
||||||
{
|
{
|
||||||
Q_D( QskArcShadowNode );
|
Q_D( ArcShadowNode );
|
||||||
|
|
||||||
setGeometry( &d->geometry );
|
setGeometry( &d->geometry );
|
||||||
setMaterial( &d->material );
|
setMaterial( &d->material );
|
||||||
@ -277,9 +277,9 @@ QskArcShadowNode::QskArcShadowNode()
|
|||||||
d->material.setFlag( QSGMaterial::Blending );
|
d->material.setFlag( QSGMaterial::Blending );
|
||||||
}
|
}
|
||||||
|
|
||||||
QskArcShadowNode::~QskArcShadowNode() = default;
|
ArcShadowNode::~ArcShadowNode() = default;
|
||||||
|
|
||||||
void QskArcShadowNode::setShadowData(
|
void ArcShadowNode::setShadowData(
|
||||||
const QRectF& rect, qreal spreadRadius, qreal blurRadius,
|
const QRectF& rect, qreal spreadRadius, qreal blurRadius,
|
||||||
qreal startAngle, qreal spanAngle, const QColor& color )
|
qreal startAngle, qreal spanAngle, const QColor& color )
|
||||||
{
|
{
|
||||||
@ -289,7 +289,7 @@ void QskArcShadowNode::setShadowData(
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Q_D( QskArcShadowNode );
|
Q_D( ArcShadowNode );
|
||||||
|
|
||||||
if ( d->rect != rect )
|
if ( d->rect != rect )
|
||||||
{
|
{
|
||||||
@ -351,9 +351,9 @@ void QskArcShadowNode::setShadowData(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void QskArcShadowNode::setBoundingRectangle( const QRectF& rect )
|
void ArcShadowNode::setBoundingRectangle( const QRectF& rect )
|
||||||
{
|
{
|
||||||
Q_D( QskArcShadowNode );
|
Q_D( ArcShadowNode );
|
||||||
|
|
||||||
if ( d->rect == rect )
|
if ( d->rect == rect )
|
||||||
return;
|
return;
|
@ -3,8 +3,7 @@
|
|||||||
* SPDX-License-Identifier: BSD-3-Clause
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
#ifndef QSK_ARC_SHADOW_NODE_H
|
#pragma once
|
||||||
#define QSK_ARC_SHADOW_NODE_H
|
|
||||||
|
|
||||||
#include "QskGlobal.h"
|
#include "QskGlobal.h"
|
||||||
#include <qsgnode.h>
|
#include <qsgnode.h>
|
||||||
@ -12,13 +11,13 @@
|
|||||||
class QskArcMetrics;
|
class QskArcMetrics;
|
||||||
class QskShadowMetrics;
|
class QskShadowMetrics;
|
||||||
|
|
||||||
class QskArcShadowNodePrivate;
|
class ArcShadowNodePrivate;
|
||||||
|
|
||||||
class QskArcShadowNode : public QSGGeometryNode
|
class ArcShadowNode : public QSGGeometryNode
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
QskArcShadowNode();
|
ArcShadowNode();
|
||||||
~QskArcShadowNode() override;
|
~ArcShadowNode() override;
|
||||||
|
|
||||||
void setShadowData( const QRectF&, qreal spreadRadius, qreal blurRadius,
|
void setShadowData( const QRectF&, qreal spreadRadius, qreal blurRadius,
|
||||||
qreal startAngle, qreal spanAngle, const QColor& );
|
qreal startAngle, qreal spanAngle, const QColor& );
|
||||||
@ -26,7 +25,5 @@ class QskArcShadowNode : public QSGGeometryNode
|
|||||||
private:
|
private:
|
||||||
void setBoundingRectangle( const QRectF& );
|
void setBoundingRectangle( const QRectF& );
|
||||||
|
|
||||||
Q_DECLARE_PRIVATE( QskArcShadowNode )
|
Q_DECLARE_PRIVATE( ArcShadowNode )
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
|
@ -3,7 +3,38 @@
|
|||||||
# SPDX-License-Identifier: BSD-3-Clause
|
# SPDX-License-Identifier: BSD-3-Clause
|
||||||
############################################################################
|
############################################################################
|
||||||
|
|
||||||
qsk_add_example(shadows
|
set(target shadows)
|
||||||
BoxPage.h BoxPage.cpp ShadowedBox.h ShadowedBox.cpp
|
|
||||||
ArcPage.h ArcPage.cpp ShadowedArc.h ShadowedArc.cpp
|
set(SOURCES
|
||||||
Slider.h Slider.cpp main.cpp)
|
BoxPage.h
|
||||||
|
BoxPage.cpp
|
||||||
|
ShadowedBox.h
|
||||||
|
ShadowedBox.cpp
|
||||||
|
ArcPage.h
|
||||||
|
ArcPage.cpp
|
||||||
|
ShadowedArc.h
|
||||||
|
ShadowedArc.cpp
|
||||||
|
Slider.h
|
||||||
|
Slider.cpp
|
||||||
|
main.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
list(APPEND SOURCES
|
||||||
|
ArcShadowNode.h
|
||||||
|
ArcShadowNode.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
if (QT_VERSION_MAJOR VERSION_LESS 6)
|
||||||
|
qt_add_resources(SOURCES shaders.qrc)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
qsk_add_example(${target} ${SOURCES})
|
||||||
|
|
||||||
|
if (QT_VERSION_MAJOR VERSION_GREATER_EQUAL 6)
|
||||||
|
list(APPEND SHADERS
|
||||||
|
shaders/arcshadow-vulkan.vert
|
||||||
|
shaders/arcshadow-vulkan.frag
|
||||||
|
)
|
||||||
|
qsk_add_shaders( ${target} FILES ${SHADERS} OUTPUT_TARGETS shader_target)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
@ -4,14 +4,14 @@
|
|||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
#include "ShadowedArc.h"
|
#include "ShadowedArc.h"
|
||||||
|
#include "ArcShadowNode.h"
|
||||||
|
|
||||||
#include <QskSkinlet.h>
|
#include <QskSkinlet.h>
|
||||||
#include <QskArcNode.h>
|
#include <QskArcNode.h>
|
||||||
#include <QskArcMetrics.h>
|
#include <QskArcMetrics.h>
|
||||||
#include <QskShadowMetrics.h>
|
#include <QskShadowMetrics.h>
|
||||||
|
|
||||||
#include <QskArcNode.h>
|
|
||||||
#include <QskSGNode.h>
|
#include <QskSGNode.h>
|
||||||
|
#include <QskRgbValue.h>
|
||||||
|
|
||||||
QSK_SUBCONTROL( ShadowedArc, Arc )
|
QSK_SUBCONTROL( ShadowedArc, Arc )
|
||||||
|
|
||||||
@ -22,7 +22,7 @@ namespace
|
|||||||
using Inherited = QskSkinlet;
|
using Inherited = QskSkinlet;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
enum NodeRoles { ArcRole };
|
enum NodeRoles { ShadowRole, ArcRole };
|
||||||
|
|
||||||
Skinlet( QskSkin* skin = nullptr );
|
Skinlet( QskSkin* skin = nullptr );
|
||||||
|
|
||||||
@ -34,12 +34,13 @@ namespace
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
QSGNode* updateArcNode( const ShadowedArc*, QSGNode* node ) const;
|
QSGNode* updateArcNode( const ShadowedArc*, QSGNode* node ) const;
|
||||||
|
QSGNode* updateShadowNode( const ShadowedArc*, QSGNode* node ) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
Skinlet::Skinlet( QskSkin* skin )
|
Skinlet::Skinlet( QskSkin* skin )
|
||||||
: QskSkinlet( skin )
|
: QskSkinlet( skin )
|
||||||
{
|
{
|
||||||
setNodeRoles( { ArcRole } );
|
setNodeRoles( { ShadowRole, ArcRole } );
|
||||||
}
|
}
|
||||||
|
|
||||||
QRectF Skinlet::subControlRect( const QskSkinnable* skinnable,
|
QRectF Skinlet::subControlRect( const QskSkinnable* skinnable,
|
||||||
@ -53,16 +54,50 @@ namespace
|
|||||||
|
|
||||||
QSGNode* Skinlet::updateSubNode(
|
QSGNode* Skinlet::updateSubNode(
|
||||||
const QskSkinnable* skinnable, quint8 nodeRole, QSGNode* node ) const
|
const QskSkinnable* skinnable, quint8 nodeRole, QSGNode* node ) const
|
||||||
{
|
|
||||||
if ( nodeRole == ArcRole )
|
|
||||||
{
|
{
|
||||||
auto arc = static_cast< const ShadowedArc* >( skinnable );
|
auto arc = static_cast< const ShadowedArc* >( skinnable );
|
||||||
|
|
||||||
|
switch( nodeRole )
|
||||||
|
{
|
||||||
|
case ShadowRole:
|
||||||
|
return updateShadowNode( arc, node );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case ArcRole:
|
||||||
return updateArcNode( arc, node );
|
return updateArcNode( arc, node );
|
||||||
}
|
}
|
||||||
|
|
||||||
return Inherited::updateSubNode( skinnable, nodeRole, node );
|
return Inherited::updateSubNode( skinnable, nodeRole, node );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QSGNode* Skinlet::updateShadowNode( const ShadowedArc* arc, QSGNode* node ) const
|
||||||
|
{
|
||||||
|
using Q = ShadowedArc;
|
||||||
|
|
||||||
|
const auto rect = arc->subControlRect( Q::Arc );
|
||||||
|
if ( rect.isEmpty() )
|
||||||
|
return nullptr;
|
||||||
|
|
||||||
|
const auto color = arc->shadowColorHint( Q::Arc );
|
||||||
|
if ( !QskRgb::isVisible( color ) )
|
||||||
|
return nullptr;
|
||||||
|
|
||||||
|
auto metricsArc = arc->arcMetricsHint( Q::Arc );
|
||||||
|
metricsArc = metricsArc.toAbsolute( rect.size() );
|
||||||
|
|
||||||
|
auto metrics = arc->shadowMetricsHint( Q::Arc );
|
||||||
|
metrics = metrics.toAbsolute( rect.size() );
|
||||||
|
|
||||||
|
const auto shadowRect = metrics.shadowRect( rect );
|
||||||
|
const auto spreadRadius = metrics.spreadRadius() + 0.5 * metricsArc.thickness();
|
||||||
|
|
||||||
|
auto shadowNode = QskSGNode::ensureNode< ArcShadowNode >( node );
|
||||||
|
shadowNode->setShadowData( shadowRect, spreadRadius, metrics.blurRadius(),
|
||||||
|
metricsArc.startAngle(), metricsArc.spanAngle(), color );
|
||||||
|
|
||||||
|
return shadowNode;;
|
||||||
|
}
|
||||||
|
|
||||||
QSGNode* Skinlet::updateArcNode( const ShadowedArc* arc, QSGNode* node ) const
|
QSGNode* Skinlet::updateArcNode( const ShadowedArc* arc, QSGNode* node ) const
|
||||||
{
|
{
|
||||||
using Q = ShadowedArc;
|
using Q = ShadowedArc;
|
||||||
@ -79,11 +114,7 @@ namespace
|
|||||||
const auto borderColor = arc->color( Q::Arc | QskAspect::Border );
|
const auto borderColor = arc->color( Q::Arc | QskAspect::Border );
|
||||||
const auto borderWidth = arc->metric( Q::Arc | QskAspect::Border );
|
const auto borderWidth = arc->metric( Q::Arc | QskAspect::Border );
|
||||||
|
|
||||||
const auto shadowColor = arc->shadowColorHint( Q::Arc );
|
arcNode->setArcData( rect, metrics, borderWidth, borderColor, fillGradient );
|
||||||
const auto shadowMetrics = arc->shadowMetricsHint( Q::Arc );
|
|
||||||
|
|
||||||
arcNode->setArcData( rect, metrics, borderWidth, borderColor,
|
|
||||||
fillGradient, shadowColor, shadowMetrics);
|
|
||||||
|
|
||||||
return arcNode;
|
return arcNode;
|
||||||
}
|
}
|
||||||
|
9
playground/shadows/shaders.qrc
Normal file
9
playground/shadows/shaders.qrc
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<!DOCTYPE RCC>
|
||||||
|
<RCC version="1.0">
|
||||||
|
<qresource prefix="/qskinny/">
|
||||||
|
|
||||||
|
<file>shaders/arcshadow.vert</file>
|
||||||
|
<file>shaders/arcshadow.frag</file>
|
||||||
|
|
||||||
|
</qresource>
|
||||||
|
</RCC>
|
@ -103,7 +103,6 @@ list(APPEND HEADERS
|
|||||||
nodes/QskArcNode.h
|
nodes/QskArcNode.h
|
||||||
nodes/QskArcRenderer.h
|
nodes/QskArcRenderer.h
|
||||||
nodes/QskArcRenderNode.h
|
nodes/QskArcRenderNode.h
|
||||||
nodes/QskArcShadowNode.h
|
|
||||||
nodes/QskBasicLinesNode.h
|
nodes/QskBasicLinesNode.h
|
||||||
nodes/QskBoxNode.h
|
nodes/QskBoxNode.h
|
||||||
nodes/QskBoxClipNode.h
|
nodes/QskBoxClipNode.h
|
||||||
@ -144,7 +143,6 @@ list(APPEND SOURCES
|
|||||||
nodes/QskArcNode.cpp
|
nodes/QskArcNode.cpp
|
||||||
nodes/QskArcRenderer.cpp
|
nodes/QskArcRenderer.cpp
|
||||||
nodes/QskArcRenderNode.cpp
|
nodes/QskArcRenderNode.cpp
|
||||||
nodes/QskArcShadowNode.cpp
|
|
||||||
nodes/QskBasicLinesNode.cpp
|
nodes/QskBasicLinesNode.cpp
|
||||||
nodes/QskBoxNode.cpp
|
nodes/QskBoxNode.cpp
|
||||||
nodes/QskBoxClipNode.cpp
|
nodes/QskBoxClipNode.cpp
|
||||||
@ -180,8 +178,6 @@ if (QT_VERSION_MAJOR VERSION_LESS 6)
|
|||||||
qt_add_resources(SOURCES nodes/shaders.qrc)
|
qt_add_resources(SOURCES nodes/shaders.qrc)
|
||||||
else()
|
else()
|
||||||
list(APPEND SHADERS
|
list(APPEND SHADERS
|
||||||
nodes/shaders/arcshadow-vulkan.vert
|
|
||||||
nodes/shaders/arcshadow-vulkan.frag
|
|
||||||
nodes/shaders/boxshadow-vulkan.vert
|
nodes/shaders/boxshadow-vulkan.vert
|
||||||
nodes/shaders/boxshadow-vulkan.frag
|
nodes/shaders/boxshadow-vulkan.frag
|
||||||
nodes/shaders/crisplines-vulkan.vert
|
nodes/shaders/crisplines-vulkan.vert
|
||||||
|
@ -230,7 +230,7 @@ static inline QSGNode* qskUpdateArcNode(
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
auto arcNode = QskSGNode::ensureNode< QskArcNode >( node );
|
auto arcNode = QskSGNode::ensureNode< QskArcNode >( node );
|
||||||
arcNode->setArcData( rect, metrics, borderWidth, borderColor, gradient, {}, {} );
|
arcNode->setArcData( rect, metrics, borderWidth, borderColor, gradient );
|
||||||
|
|
||||||
return arcNode;
|
return arcNode;
|
||||||
}
|
}
|
||||||
|
@ -5,23 +5,17 @@
|
|||||||
|
|
||||||
#include "QskArcNode.h"
|
#include "QskArcNode.h"
|
||||||
#include "QskArcMetrics.h"
|
#include "QskArcMetrics.h"
|
||||||
#include "QskArcShadowNode.h"
|
|
||||||
#include "QskArcRenderNode.h"
|
#include "QskArcRenderNode.h"
|
||||||
#include "QskArcRenderer.h"
|
#include "QskArcRenderer.h"
|
||||||
#include "QskMargins.h"
|
#include "QskMargins.h"
|
||||||
#include "QskGradient.h"
|
#include "QskGradient.h"
|
||||||
#include "QskSGNode.h"
|
#include "QskSGNode.h"
|
||||||
#include "QskShadowMetrics.h"
|
|
||||||
#include "QskRgbValue.h"
|
#include "QskRgbValue.h"
|
||||||
|
|
||||||
#include <qpainterpath.h>
|
|
||||||
|
|
||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
enum NodeRole
|
enum NodeRole
|
||||||
{
|
{
|
||||||
ShadowRole,
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
If possible border + filling will be displayed by ArcRole
|
If possible border + filling will be displayed by ArcRole
|
||||||
Otherwise ArcRole displays the border and FillRole the filling
|
Otherwise ArcRole displays the border and FillRole the filling
|
||||||
@ -34,7 +28,7 @@ namespace
|
|||||||
|
|
||||||
static void qskUpdateChildren( QSGNode* parentNode, quint8 role, QSGNode* node )
|
static void qskUpdateChildren( QSGNode* parentNode, quint8 role, QSGNode* node )
|
||||||
{
|
{
|
||||||
static const QVector< quint8 > roles = { ShadowRole, ArcRole, FillRole };
|
static const QVector< quint8 > roles = { ArcRole, FillRole };
|
||||||
|
|
||||||
auto oldNode = QskSGNode::findChildNode( parentNode, role );
|
auto oldNode = QskSGNode::findChildNode( parentNode, role );
|
||||||
QskSGNode::replaceChildNode( roles, role, parentNode, oldNode, node );
|
QskSGNode::replaceChildNode( roles, role, parentNode, oldNode, node );
|
||||||
@ -67,22 +61,14 @@ QskArcNode::~QskArcNode()
|
|||||||
void QskArcNode::setArcData( const QRectF& rect,
|
void QskArcNode::setArcData( const QRectF& rect,
|
||||||
const QskArcMetrics& arcMetrics, const QskGradient& gradient )
|
const QskArcMetrics& arcMetrics, const QskGradient& gradient )
|
||||||
{
|
{
|
||||||
setArcData( rect, arcMetrics, 0.0, QColor(), gradient, {}, {} );
|
setArcData( rect, arcMetrics, 0.0, QColor(), gradient );
|
||||||
}
|
}
|
||||||
|
|
||||||
void QskArcNode::setArcData( const QRectF& rect, const QskArcMetrics& arcMetrics,
|
void QskArcNode::setArcData( const QRectF& rect, const QskArcMetrics& arcMetrics,
|
||||||
const qreal borderWidth, const QColor& borderColor, const QskGradient& gradient )
|
const qreal borderWidth, const QColor& borderColor, const QskGradient& gradient )
|
||||||
{
|
|
||||||
setArcData( rect, arcMetrics, borderWidth, borderColor, gradient, {}, {} );
|
|
||||||
}
|
|
||||||
|
|
||||||
void QskArcNode::setArcData( const QRectF& rect, const QskArcMetrics& arcMetrics,
|
|
||||||
const qreal borderWidth, const QColor& borderColor, const QskGradient& gradient,
|
|
||||||
const QColor& shadowColor, const QskShadowMetrics& shadowMetrics )
|
|
||||||
{
|
{
|
||||||
using namespace QskSGNode;
|
using namespace QskSGNode;
|
||||||
|
|
||||||
QskArcShadowNode* shadowNode = nullptr;
|
|
||||||
QskArcRenderNode* arcNode = nullptr;
|
QskArcRenderNode* arcNode = nullptr;
|
||||||
QskArcRenderNode* fillNode = nullptr;
|
QskArcRenderNode* fillNode = nullptr;
|
||||||
|
|
||||||
@ -93,26 +79,6 @@ void QskArcNode::setArcData( const QRectF& rect, const QskArcMetrics& arcMetrics
|
|||||||
|
|
||||||
const auto hasFilling = gradient.isVisible();
|
const auto hasFilling = gradient.isVisible();
|
||||||
const auto hasBorder = ( borderWidth > 0.0 ) && QskRgb::isVisible( borderColor );
|
const auto hasBorder = ( borderWidth > 0.0 ) && QskRgb::isVisible( borderColor );
|
||||||
const auto hasShadow = hasFilling && QskRgb::isVisible( shadowColor );
|
|
||||||
|
|
||||||
if ( hasShadow )
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
The shader of the shadow node is for circular arcs and we have some
|
|
||||||
unwanted scaling issues for the spread/blur values when having ellipsoid
|
|
||||||
arcs. We might also want to add the spread value to the ends of the arc
|
|
||||||
and not only to its radius. TODO ...
|
|
||||||
*/
|
|
||||||
|
|
||||||
shadowNode = qskNode< QskArcShadowNode >( this, ShadowRole );
|
|
||||||
|
|
||||||
const auto sm = shadowMetrics.toAbsolute( rect.size() );
|
|
||||||
const auto shadowRect = sm.shadowRect( rect );
|
|
||||||
const auto spreadRadius = sm.spreadRadius() + 0.5 * metricsArc.thickness();
|
|
||||||
|
|
||||||
shadowNode->setShadowData( shadowRect, spreadRadius, sm.blurRadius(),
|
|
||||||
metricsArc.startAngle(), metricsArc.spanAngle(), shadowColor );
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( hasBorder || hasFilling )
|
if ( hasBorder || hasFilling )
|
||||||
{
|
{
|
||||||
@ -142,7 +108,6 @@ void QskArcNode::setArcData( const QRectF& rect, const QskArcMetrics& arcMetrics
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
qskUpdateChildren( this, ShadowRole, shadowNode );
|
|
||||||
qskUpdateChildren( this, ArcRole, arcNode );
|
qskUpdateChildren( this, ArcRole, arcNode );
|
||||||
qskUpdateChildren( this, FillRole, fillNode );
|
qskUpdateChildren( this, FillRole, fillNode );
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,6 @@
|
|||||||
|
|
||||||
class QskArcMetrics;
|
class QskArcMetrics;
|
||||||
class QskGradient;
|
class QskGradient;
|
||||||
class QskShadowMetrics;
|
|
||||||
|
|
||||||
class QSK_EXPORT QskArcNode : public QSGNode
|
class QSK_EXPORT QskArcNode : public QSGNode
|
||||||
{
|
{
|
||||||
@ -23,10 +22,6 @@ class QSK_EXPORT QskArcNode : public QSGNode
|
|||||||
|
|
||||||
void setArcData( const QRectF&, const QskArcMetrics&,
|
void setArcData( const QRectF&, const QskArcMetrics&,
|
||||||
qreal borderWidth, const QColor& borderColor, const QskGradient& );
|
qreal borderWidth, const QColor& borderColor, const QskGradient& );
|
||||||
|
|
||||||
void setArcData( const QRectF&, const QskArcMetrics&,
|
|
||||||
qreal borderWidth, const QColor& borderColor, const QskGradient&,
|
|
||||||
const QColor& shadowColor, const QskShadowMetrics&);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -2,9 +2,6 @@
|
|||||||
<RCC version="1.0">
|
<RCC version="1.0">
|
||||||
<qresource prefix="/qskinny/">
|
<qresource prefix="/qskinny/">
|
||||||
|
|
||||||
<file>shaders/arcshadow.vert</file>
|
|
||||||
<file>shaders/arcshadow.frag</file>
|
|
||||||
|
|
||||||
<file>shaders/boxshadow.vert</file>
|
<file>shaders/boxshadow.vert</file>
|
||||||
<file>shaders/boxshadow.frag</file>
|
<file>shaders/boxshadow.frag</file>
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user