application.SendNotification();
application.Render(20);
- DALI_TEST_EQUALS(gl.GetLastGenTextureId(), 4, TEST_LOCATION);
+ DALI_TEST_EQUALS(gl.GetLastGenTextureId(), 8, TEST_LOCATION);
view.Deactivate();
application.SendNotification();
application.Render(20);
- DALI_TEST_EQUALS(gl.GetLastGenTextureId(), 4, TEST_LOCATION);
+ DALI_TEST_EQUALS(gl.GetLastGenTextureId(), 8, TEST_LOCATION);
view.Activate();
application.SendNotification();
application.Render(20);
- DALI_TEST_EQUALS(gl.GetLastGenTextureId(), 8, TEST_LOCATION);
+ DALI_TEST_EQUALS(gl.GetLastGenTextureId(), 12, TEST_LOCATION);
END_TEST;
}
application.SendNotification();
application.Render(20);
- DALI_TEST_CHECK(gl.GetLastGenTextureId() == 4);
+ DALI_TEST_EQUALS(gl.GetLastGenTextureId(), 8, TEST_LOCATION);
view.ActivateOnce();
application.SendNotification();
application.Render(20);
- DALI_TEST_CHECK(gl.GetLastGenTextureId() == 8);
+ DALI_TEST_EQUALS(gl.GetLastGenTextureId(), 12, TEST_LOCATION);
END_TEST;
}
} // namespace
GaussianBlurView::GaussianBlurView()
-: Control(ControlBehaviour(DISABLE_SIZE_NEGOTIATION | DISABLE_STYLE_CHANGE_SIGNALS)),
+: Control(ControlBehaviour(DISABLE_STYLE_CHANGE_SIGNALS)),
mPixelRadius(GAUSSIAN_BLUR_VIEW_DEFAULT_NUM_SAMPLES),
mBellCurveWidth(GAUSSIAN_BLUR_VIEW_DEFAULT_BLUR_BELL_CURVE_WIDTH),
mPixelFormat(GAUSSIAN_BLUR_VIEW_DEFAULT_RENDER_TARGET_PIXEL_FORMAT),
mDownsampledHeight(0.0f),
mBlurUserImage(false),
mRenderOnce(false),
- mBackgroundColor(Color::BLACK),
+ mBackgroundColor(Color::TRANSPARENT),
mTargetSize(Vector2::ZERO),
mLastSize(Vector2::ZERO),
mChildrenRoot(Actor::New()),
const float downsampleWidthScale,
const float downsampleHeightScale,
bool blurUserImage)
-: Control(ControlBehaviour(DISABLE_SIZE_NEGOTIATION | DISABLE_STYLE_CHANGE_SIGNALS)),
+: Control(ControlBehaviour(DISABLE_STYLE_CHANGE_SIGNALS)),
mPixelRadius(numSamples),
mBellCurveWidth(blurBellCurveWidth),
mPixelFormat(renderTargetPixelFormat),
mDownsampledHeight(0.0f),
mBlurUserImage(blurUserImage),
mRenderOnce(false),
- mBackgroundColor(Color::BLACK),
+ mBackgroundColor(Color::TRANSPARENT),
mTargetSize(Vector2::ZERO),
mLastSize(Vector2::ZERO),
mChildrenRoot(Actor::New()),
mHorizontalBlurActor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
Renderer renderer = CreateRenderer(BASIC_VERTEX_SOURCE, fragmentSource.c_str());
+ renderer.SetProperty(Dali::Renderer::Property::BLEND_PRE_MULTIPLIED_ALPHA, true);
mHorizontalBlurActor.AddRenderer(renderer);
// Create an actor for performing a vertical blur on the texture
mVerticalBlurActor = Actor::New();
mVerticalBlurActor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
renderer = CreateRenderer(BASIC_VERTEX_SOURCE, fragmentSource.c_str());
+ renderer.SetProperty(Dali::Renderer::Property::BLEND_PRE_MULTIPLIED_ALPHA, true);
mVerticalBlurActor.AddRenderer(renderer);
// Register a property that the user can control to fade the blur in / out via the GaussianBlurView object
mCompositingActor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
mCompositingActor.SetProperty(Actor::Property::OPACITY, GAUSSIAN_BLUR_VIEW_DEFAULT_BLUR_STRENGTH); // ensure alpha is enabled for this object and set default value
renderer = CreateRenderer(BASIC_VERTEX_SOURCE, BASIC_FRAGMENT_SOURCE);
+ renderer.SetProperty(Dali::Renderer::Property::BLEND_PRE_MULTIPLIED_ALPHA, true);
mCompositingActor.AddRenderer(renderer);
Constraint blurStrengthConstraint = Constraint::New<float>(mCompositingActor, Actor::Property::COLOR_ALPHA, EqualToConstraint());
mTargetActor = Actor::New();
mTargetActor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
renderer = CreateRenderer(BASIC_VERTEX_SOURCE, BASIC_FRAGMENT_SOURCE);
+ renderer.SetProperty(Dali::Renderer::Property::BLEND_PRE_MULTIPLIED_ALPHA, true);
mTargetActor.AddRenderer(renderer);
//////////////////////////////////////////////////////
mCompositeTask.SetSourceActor(mCompositingActor);
mCompositeTask.SetExclusive(true);
mCompositeTask.SetInputEnabled(false);
-
+ mCompositeTask.SetClearEnabled(true);
+ mCompositeTask.SetClearColor(mBackgroundColor);
mCompositeTask.SetCameraActor(mRenderFullSizeCamera);
mCompositeTask.SetFrameBuffer(mBlurResultFrameBuffer);