int UtcDaliImageActorUseImageAlpha04(void) { TestApplication application; tet_infoline("Testing Dali::RenderableActor::SetUseImageAlpha()"); FrameBufferImage image = FrameBufferImage::New( 100, 50, Pixel::RGBA8888 ); RenderTaskList taskList = Stage::GetCurrent().GetRenderTaskList(); RenderTask task = taskList.GetTask( 0u ); task.SetTargetFrameBuffer( image ); // To ensure frame buffer is connected application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE ); application.SendNotification(); application.Render(0); ImageActor actor = ImageActor::New( image ); application.SendNotification(); application.Render(0); actor.SetBlendMode( BlendingMode::ON ); actor.SetColor(Vector4(1.0, 1.0, 1.0, 1.0)); actor.SetSize(100, 50); application.GetGlAbstraction().EnableCullFaceCallTrace(true); // For Enable(GL_BLEND) Stage::GetCurrent().Add(actor); application.SendNotification(); application.Render(); const TraceCallStack& callTrace = application.GetGlAbstraction().GetCullFaceTrace(); DALI_TEST_EQUALS( BlendDisabled( callTrace ), false, TEST_LOCATION ); DALI_TEST_EQUALS( BlendEnabled( callTrace), true, TEST_LOCATION ); END_TEST; }
int UtcDaliHoverOffscreenRenderTasks(void) { TestApplication application; Stage stage ( Stage::GetCurrent() ); Vector2 stageSize ( stage.GetSize() ); // FrameBufferImage for offscreen RenderTask FrameBufferImage frameBufferImage( FrameBufferImage::New( stageSize.width, stageSize.height, Pixel::RGBA8888 ) ); // Create a renderable actor to display the FrameBufferImage Actor renderableActor = CreateRenderableActor( frameBufferImage ); renderableActor.SetParentOrigin(ParentOrigin::CENTER); renderableActor.SetSize( stageSize.x, stageSize.y ); renderableActor.ScaleBy( Vector3(1.0f, -1.0f, 1.0f) ); // FIXME stage.Add( renderableActor ); Actor actor = Actor::New(); actor.SetSize(100.0f, 100.0f); actor.SetAnchorPoint(AnchorPoint::TOP_LEFT); stage.Add( actor ); application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE ); // Ensure framebuffer connects stage.GetRenderTaskList().GetTask( 0u ).SetScreenToFrameBufferFunction( RenderTask::FULLSCREEN_FRAMEBUFFER_FUNCTION ); // Create a RenderTask RenderTask renderTask = stage.GetRenderTaskList().CreateTask(); renderTask.SetSourceActor( actor ); renderTask.SetTargetFrameBuffer( frameBufferImage ); renderTask.SetInputEnabled( true ); // Create another RenderTask RenderTask renderTask2( stage.GetRenderTaskList().CreateTask() ); renderTask2.SetInputEnabled( true ); // Render and notify application.SendNotification(); application.Render(); // Connect to actor's hovered signal SignalData data; HoverEventFunctor functor( data ); actor.HoveredSignal().Connect( &application, functor ); // Emit a started signal application.ProcessEvent( GenerateSingleHover( TouchPoint::Started, Vector2( 10.0f, 10.0f ) ) ); DALI_TEST_EQUALS( true, data.functorCalled, TEST_LOCATION ); data.Reset(); END_TEST; }
void BubbleEmitter::SetBackground( Image bgImage, const Vector3& hsvDelta ) { mBackgroundImage = bgImage; mHSVDelta = hsvDelta; ImageActor sourceActor = ImageActor::New( bgImage ); sourceActor.SetSize( mMovementArea ); sourceActor.SetParentOrigin(ParentOrigin::CENTER); Stage::GetCurrent().Add( sourceActor ); ShaderEffect colorAdjuster = CreateColorAdjuster( hsvDelta, true /*ignore alpha to make bubble color always*/ ); sourceActor.SetShaderEffect( colorAdjuster ); RenderTaskList taskList = Stage::GetCurrent().GetRenderTaskList(); RenderTask task = taskList.CreateTask(); task.SetRefreshRate( RenderTask::REFRESH_ONCE ); task.SetSourceActor( sourceActor ); task.SetExclusive(true); task.SetCameraActor(mCameraActor); task.GetCameraActor().SetInvertYAxis(true); task.SetTargetFrameBuffer( mEffectImage ); task.FinishedSignal().Connect(this, &BubbleEmitter::OnRenderFinished); mRenderTaskRunning = true; }