X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Fcanvas-view%2Fcanvas-view-impl.cpp;h=e8fefbf474ddaedaa5148e231e925e0c0d474860;hb=3cdcf62978e0a6794578caa5054238c104cef855;hp=700d76fc7e909a2d4ef015f681642f271934f9c3;hpb=d75bd90eefea3cac2142fb8dba0aedf1bcbdc86f;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/controls/canvas-view/canvas-view-impl.cpp b/dali-toolkit/internal/controls/canvas-view/canvas-view-impl.cpp index 700d76f..e8fefbf 100644 --- a/dali-toolkit/internal/controls/canvas-view/canvas-view-impl.cpp +++ b/dali-toolkit/internal/controls/canvas-view/canvas-view-impl.cpp @@ -23,6 +23,7 @@ #include #include #include +#include // INTERNAL INCLUDES #include @@ -196,43 +197,25 @@ void CanvasView::AddRasterizationTask() } } -void CanvasView::ApplyRasterizedImage(PixelData rasterizedPixelData) +void CanvasView::ApplyRasterizedImage(Texture rasterizedTexture) { - if(rasterizedPixelData) + if (rasterizedTexture && rasterizedTexture.GetWidth() != 0 && rasterizedTexture.GetHeight() != 0) { - auto rasterizedPixelDataWidth = rasterizedPixelData.GetWidth(); - auto rasterizedPixelDataHeight = rasterizedPixelData.GetHeight(); - - if(rasterizedPixelDataWidth > 0 && rasterizedPixelDataHeight > 0) + if(!mTextureSet) { - if(!mTexture || mTexture.GetWidth() != rasterizedPixelDataWidth || mTexture.GetHeight() != rasterizedPixelDataHeight) - { - mTexture = Texture::New(TextureType::TEXTURE_2D, Dali::Pixel::RGBA8888, rasterizedPixelDataWidth, rasterizedPixelDataHeight); - mTexture.Upload(rasterizedPixelData); + std::string fragmentShader = SHADER_CANVAS_VIEW_FRAG.data(); + DevelTexture::ApplyNativeFragmentShader(rasterizedTexture, fragmentShader); - if(!mTextureSet) - { - mTextureSet = TextureSet::New(); - Geometry geometry = VisualFactoryCache::CreateQuadGeometry(); - Shader shader = Shader::New(SHADER_CANVAS_VIEW_VERT, SHADER_CANVAS_VIEW_FRAG); - Renderer renderer = Renderer::New(geometry, shader); - renderer.SetTextures(mTextureSet); - renderer.SetProperty(Renderer::Property::BLEND_PRE_MULTIPLIED_ALPHA, true); - - Actor actor = Self(); - if(actor) - { - actor.AddRenderer(renderer); - } - } - mTextureSet.SetTexture(0, mTexture); - } - else - { - //Update texture - mTexture.Upload(rasterizedPixelData); - } + mTextureSet = TextureSet::New(); + Geometry geometry = VisualFactoryCache::CreateQuadGeometry(); + Shader shader = Shader::New(SHADER_CANVAS_VIEW_VERT, fragmentShader); + Renderer renderer = Renderer::New(geometry, shader); + + renderer.SetTextures(mTextureSet); + renderer.SetProperty(Renderer::Property::BLEND_PRE_MULTIPLIED_ALPHA, true); + Self().AddRenderer(renderer); } + mTextureSet.SetTexture(0, rasterizedTexture); } //If there are accumulated changes to CanvasRenderer during Rasterize, Rasterize once again.