[SailfishDevel] Different behaviour of ShaderEffectSource in emulator vs. device
Andrey Kozhevnikov
coderusinbox at gmail.com
Tue Feb 10 10:39:17 UTC 2015
yes i can confirm this behaviour.
10.02.2015 15:24, Luca Donaggio пишет:
> Hi Andrey, thanks for your reply.
>
> Still, can you try both tests on your Jolla?
> The first shouldn't work, while the second does.
>
> On Tue, Feb 10, 2015 at 10:32 AM, Andrey Kozhevnikov
> <coderusinbox at gmail.com <mailto:coderusinbox at gmail.com>> wrote:
>
> sorry, not using emulator at all.
>
> 10.02.2015 14:28, Luca Donaggio пишет:
>> Anybody is willing to try my test code and confirm or deny my
>> finding?
>>
>> On Fri, Feb 6, 2015 at 2:12 PM, Luca Donaggio <donaggio at gmail.com
>> <mailto:donaggio at gmail.com>> wrote:
>>
>> 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:
>>
>> Page {
>> id: page
>>
>> SilicaFlickable {
>> anchors.fill: parent
>>
>> contentHeight: column.height
>>
>> Column {
>> id: column
>>
>> anchors { top: parent.top; left: parent.left;
>> right: parent.right; leftMargin: Theme.paddingLarge;
>> rightMargin: Theme.paddingLarge; }
>> spacing: Theme.paddingLarge
>>
>> PageHeader {
>> title: qsTr("ShaderEffect Test")
>> }
>>
>> Row {
>> anchors.horizontalCenter: parent.horizontalCenter
>> spacing: Theme.paddingLarge
>>
>> Column {
>> spacing: Theme.paddingSmall
>>
>> Rectangle {
>> id: gradientSource
>>
>> property list<Gradient> gradients: [
>> Gradient {
>> GradientStop { position: 0.0;
>> color: "black"; }
>> GradientStop { position: 1.0;
>> color: "blue"; }
>> },
>>
>> Gradient {
>> GradientStop { position: 0.0;
>> color: "black"; }
>> GradientStop { position: 1.0;
>> color: "red"; }
>> }
>> ]
>>
>> width: 100
>> height: 100
>>
>> gradient: gradients[0]
>>
>> ShaderEffectSource {
>> id: gradientTexture
>>
>> anchors.fill: parent
>> sourceItem: gradientSource
>> hideSource: false
>> live: true
>> }
>> }
>>
>> Label {
>> font.pixelSize: Theme.fontSizeExtraSmall
>> wrapMode: Text.WordWrap
>> text: "Rectangle\nShaderEffectSource"
>> }
>> }
>>
>> Column {
>> spacing: Theme.paddingSmall
>>
>> ShaderEffect {
>> property variant source: gradientTexture
>>
>> width: 100
>> height: 100
>>
>> blending: false
>> cullMode: ShaderEffect.BackFaceCulling
>> fragmentShader: "
>> varying highp vec2 qt_TexCoord0;
>> uniform lowp float qt_Opacity;
>> uniform sampler2D source;
>>
>> void main() {
>> gl_FragColor =
>> texture2D(source, qt_TexCoord0) * qt_Opacity;
>> }"
>> }
>>
>> Label {
>> font.pixelSize: Theme.fontSizeExtraSmall
>> text: "ShaderEffect"
>> }
>> }
>> }
>>
>> Button {
>> anchors.horizontalCenter: parent.horizontalCenter
>> text: "Blue gradient"
>>
>> onClicked: gradientSource.gradient =
>> gradientSource.gradients[0]
>> }
>>
>> Button {
>> anchors.horizontalCenter: parent.horizontalCenter
>> text: "Red gradient"
>>
>> onClicked: gradientSource.gradient =
>> gradientSource.gradients[1]
>> }
>> }
>> }
>> }
>>
>> It doesn't work on device though (changing Reactangle's
>> gradient doesn't update the ShaderEffectSource).
>>
>> Un-nesting the ShaderEffectSource from its source item (the
>> Rectangle) works fine both on emulator and on device:
>>
>> Page {
>> id: page
>>
>> SilicaFlickable {
>> anchors.fill: parent
>>
>> contentHeight: column.height
>>
>> Column {
>> id: column
>>
>> anchors { top: parent.top; left: parent.left;
>> right: parent.right; leftMargin: Theme.paddingLarge;
>> rightMargin: Theme.paddingLarge; }
>> spacing: Theme.paddingLarge
>>
>> PageHeader {
>> title: qsTr("ShaderEffect Test")
>> }
>>
>> Row {
>> anchors.horizontalCenter: parent.horizontalCenter
>> spacing: Theme.paddingLarge
>>
>> Column {
>> spacing: Theme.paddingSmall
>>
>> Rectangle {
>> id: gradientSource
>>
>> property list<Gradient> gradients: [
>> Gradient {
>> GradientStop { position: 0.0; color: "black"; }
>> GradientStop { position: 1.0; color: "blue"; }
>> },
>>
>> Gradient {
>> GradientStop { position: 0.0; color: "black"; }
>> GradientStop { position: 1.0; color: "red"; }
>> }
>> ]
>>
>> width: 100
>> height: 100
>>
>> gradient: gradients[0]
>> }
>>
>> Label {
>> font.pixelSize: Theme.fontSizeExtraSmall
>> text: "Rectangle"
>> }
>> }
>>
>> Column {
>> spacing: Theme.paddingSmall
>>
>> ShaderEffectSource {
>> id: gradientTexture
>>
>> width: 100
>> height: 100
>> sourceItem: gradientSource
>> hideSource: false
>> live: true
>> }
>>
>> Label {
>> font.pixelSize: Theme.fontSizeExtraSmall
>> text: "ShaderEffectSource"
>> }
>> }
>>
>> Column {
>> spacing: Theme.paddingSmall
>>
>> ShaderEffect {
>> property variant source: gradientTexture
>>
>> width: 100
>> height: 100
>>
>> blending: false
>> cullMode: ShaderEffect.BackFaceCulling
>> fragmentShader: "
>> varying highp vec2 qt_TexCoord0;
>> uniform lowp float qt_Opacity;
>> uniform sampler2D source;
>>
>> void main() {
>> gl_FragColor = texture2D(source, qt_TexCoord0) * qt_Opacity;
>> }"
>> }
>>
>> Label {
>> font.pixelSize: Theme.fontSizeExtraSmall
>> text: "ShaderEffect"
>> }
>> }
>> }
>>
>> Button {
>> anchors.horizontalCenter: parent.horizontalCenter
>> text: "Blue gradient"
>>
>> onClicked: gradientSource.gradient =
>> gradientSource.gradients[0]
>> }
>>
>> Button {
>> anchors.horizontalCenter: parent.horizontalCenter
>> text: "Red gradient"
>>
>> onClicked: gradientSource.gradient =
>> gradientSource.gradients[1]
>> }
>> }
>> }
>> }
>>
>> Is it a bug?
>>
>> --
>> Luca Donaggio
>>
>>
>>
>>
>> --
>> Luca Donaggio
>>
>>
>> _______________________________________________
>> SailfishOS.org Devel mailing list
>> To unsubscribe, please send a mail todevel-unsubscribe at lists.sailfishos.org <mailto:devel-unsubscribe at lists.sailfishos.org>
>
>
> _______________________________________________
> SailfishOS.org Devel mailing list
> To unsubscribe, please send a mail to
> devel-unsubscribe at lists.sailfishos.org
> <mailto:devel-unsubscribe at lists.sailfishos.org>
>
>
>
>
> --
> Luca Donaggio
>
>
> _______________________________________________
> SailfishOS.org Devel mailing list
> To unsubscribe, please send a mail to devel-unsubscribe at lists.sailfishos.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.sailfishos.org/pipermail/devel/attachments/20150210/0bd53c95/attachment-0001.html>
More information about the Devel
mailing list