<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
sorry, not using emulator at all.<br>
<br>
<div class="moz-cite-prefix">10.02.2015 14:28, Luca Donaggio пишет:<br>
</div>
<blockquote
cite="mid:CABPtM87KWnw07k2=FQv087xpNZK0E7xsmv8dJ_E6Cd2xQR3CtA@mail.gmail.com"
type="cite">
<div dir="ltr">Anybody is willing to try my test code and confirm
or deny my finding?<br>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Fri, Feb 6, 2015 at 2:12 PM, Luca
Donaggio <span dir="ltr"><<a moz-do-not-send="true"
href="mailto:donaggio@gmail.com" target="_blank">donaggio@gmail.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">The following code works fine in Emulator,
changing the gradient of the Rectangle correctly updates
the nested ShaderEffectSource and it is reflected on the
ShaderEffect which uses it as its texture:<br>
<br>
Page {<br>
id: page<br>
<br>
SilicaFlickable {<br>
anchors.fill: parent<br>
<br>
contentHeight: column.height<br>
<br>
Column {<br>
id: column<br>
<br>
anchors { top: parent.top; left: parent.left;
right: parent.right; leftMargin: Theme.paddingLarge;
rightMargin: Theme.paddingLarge; }<br>
spacing: Theme.paddingLarge<br>
<br>
PageHeader {<br>
title: qsTr("ShaderEffect Test")<br>
}<br>
<br>
Row {<br>
anchors.horizontalCenter:
parent.horizontalCenter<br>
spacing: Theme.paddingLarge<br>
<br>
Column {<br>
spacing: Theme.paddingSmall<br>
<br>
Rectangle {<br>
id: gradientSource<br>
<br>
property list<Gradient>
gradients: [<br>
Gradient {<br>
GradientStop { position:
0.0; color: "black"; }<br>
GradientStop { position:
1.0; color: "blue"; }<br>
},<br>
<br>
Gradient {<br>
GradientStop { position:
0.0; color: "black"; }<br>
GradientStop { position:
1.0; color: "red"; }<br>
}<br>
]<br>
<br>
width: 100<br>
height: 100<br>
<br>
gradient: gradients[0]<br>
<br>
ShaderEffectSource {<br>
id: gradientTexture<br>
<br>
anchors.fill: parent<br>
sourceItem: gradientSource<br>
hideSource: false<br>
live: true<br>
}<br>
}<br>
<br>
Label {<br>
font.pixelSize:
Theme.fontSizeExtraSmall<br>
wrapMode: Text.WordWrap<br>
text:
"Rectangle\nShaderEffectSource"<br>
}<br>
}<br>
<br>
Column {<br>
spacing: Theme.paddingSmall<br>
<br>
ShaderEffect {<br>
property variant source:
gradientTexture<br>
<br>
width: 100<br>
height: 100<br>
<br>
blending: false<br>
cullMode:
ShaderEffect.BackFaceCulling<br>
fragmentShader: "<br>
varying highp vec2
qt_TexCoord0;<br>
uniform lowp float qt_Opacity;<br>
uniform sampler2D source;<br>
<br>
void main() {<br>
gl_FragColor =
texture2D(source, qt_TexCoord0) * qt_Opacity;<br>
}"<br>
}<br>
<br>
Label {<br>
font.pixelSize:
Theme.fontSizeExtraSmall<br>
text: "ShaderEffect"<br>
}<br>
}<br>
}<br>
<br>
Button {<br>
anchors.horizontalCenter:
parent.horizontalCenter<br>
text: "Blue gradient"<br>
<br>
onClicked: gradientSource.gradient =
gradientSource.gradients[0]<br>
}<br>
<br>
Button {<br>
anchors.horizontalCenter:
parent.horizontalCenter<br>
text: "Red gradient"<br>
<br>
onClicked: gradientSource.gradient =
gradientSource.gradients[1]<br>
}<br>
}<br>
}<br>
}<br>
<br clear="all">
<div>It doesn't work on device though (changing
Reactangle's gradient doesn't update the
ShaderEffectSource).<br>
<br>
</div>
<div>Un-nesting the ShaderEffectSource from its source
item (the Rectangle) works fine both on emulator and on
device:<br>
<br>
Page {<br>
id: page<br>
<br>
SilicaFlickable {<br>
anchors.fill: parent<br>
<br>
contentHeight: column.height<br>
<br>
Column {<br>
id: column<br>
<br>
anchors { top: parent.top; left:
parent.left; right: parent.right; leftMargin:
Theme.paddingLarge; rightMargin: Theme.paddingLarge; }<br>
spacing: Theme.paddingLarge<br>
<br>
PageHeader {<br>
title: qsTr("ShaderEffect Test")<br>
}<br>
<br>
Row {<br>
anchors.horizontalCenter:
parent.horizontalCenter<br>
spacing: Theme.paddingLarge<br>
<br>
Column {<br>
spacing: Theme.paddingSmall<br>
<br>
Rectangle {<br>
id: gradientSource<br>
<br>
property list<Gradient>
gradients: [<br>
Gradient {<br>
GradientStop { position:
0.0; color: "black"; }<br>
GradientStop { position:
1.0; color: "blue"; }<br>
},<br>
<br>
Gradient {<br>
GradientStop { position:
0.0; color: "black"; }<br>
GradientStop { position:
1.0; color: "red"; }<br>
}<br>
]<br>
<br>
width: 100<br>
height: 100<br>
<br>
gradient: gradients[0]<br>
}<br>
<br>
Label {<br>
font.pixelSize:
Theme.fontSizeExtraSmall<br>
text: "Rectangle"<br>
}<br>
}<br>
<br>
Column {<br>
spacing: Theme.paddingSmall<br>
<br>
ShaderEffectSource {<br>
id: gradientTexture<br>
<br>
width: 100<br>
height: 100<br>
sourceItem: gradientSource<br>
hideSource: false<br>
live: true<br>
}<br>
<br>
Label {<br>
font.pixelSize:
Theme.fontSizeExtraSmall<br>
text: "ShaderEffectSource"<br>
}<br>
}<br>
<br>
Column {<br>
spacing: Theme.paddingSmall<br>
<br>
ShaderEffect {<br>
property variant source:
gradientTexture<br>
<br>
width: 100<br>
height: 100<br>
<br>
blending: false<br>
cullMode:
ShaderEffect.BackFaceCulling<br>
fragmentShader: "<br>
varying highp vec2
qt_TexCoord0;<br>
uniform lowp float
qt_Opacity;<br>
uniform sampler2D source;<br>
<br>
void main() {<br>
gl_FragColor =
texture2D(source, qt_TexCoord0) * qt_Opacity;<br>
}"<br>
}<br>
<br>
Label {<br>
font.pixelSize:
Theme.fontSizeExtraSmall<br>
text: "ShaderEffect"<br>
}<br>
}<br>
}<br>
<br>
Button {<br>
anchors.horizontalCenter:
parent.horizontalCenter<br>
text: "Blue gradient"<br>
<br>
onClicked: gradientSource.gradient =
gradientSource.gradients[0]<br>
}<br>
<br>
Button {<br>
anchors.horizontalCenter:
parent.horizontalCenter<br>
text: "Red gradient"<br>
<br>
onClicked: gradientSource.gradient =
gradientSource.gradients[1]<br>
}<br>
}<br>
}<br>
}<br>
<br>
</div>
<div>Is it a bug?<span class="HOEnZb"><font
color="#888888"><br>
</font></span></div>
<span class="HOEnZb"><font color="#888888">
<div><br>
-- <br>
<div>Luca Donaggio</div>
</div>
</font></span></div>
</blockquote>
</div>
<br>
<br clear="all">
<br>
-- <br>
<div class="gmail_signature">Luca Donaggio</div>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
SailfishOS.org Devel mailing list
To unsubscribe, please send a mail to <a class="moz-txt-link-abbreviated" href="mailto:devel-unsubscribe@lists.sailfishos.org">devel-unsubscribe@lists.sailfishos.org</a></pre>
</blockquote>
<br>
</body>
</html>