#include <stdlib.h>
#include <dali/public-api/dali-core.h>
#include <dali/devel-api/events/hit-test-algorithm.h>
+#include <dali/devel-api/rendering/frame-buffer.h>
#include <dali-test-suite-utils.h>
#include <dali/integration-api/debug.h>
#include <test-native-image.h>
#define BOOLSTR(x) ((x)?"T":"F")
+//& set: DaliRenderTask
using namespace Dali;
return true;
}
-ImageActor CreateLoadingImageActor(TestApplication& application, std::string filename, ResourceImage::LoadPolicy loadPolicy, Image::ReleasePolicy releasePolicy)
+Actor CreateLoadingActor(TestApplication& application, std::string filename, ResourceImage::LoadPolicy loadPolicy, Image::ReleasePolicy releasePolicy)
{
Image image = ResourceImage::New(filename, loadPolicy, releasePolicy);
DALI_TEST_CHECK( image );
application.SendNotification();
application.Render(16);
DALI_TEST_CHECK( application.GetPlatform().WasCalled(TestPlatformAbstraction::LoadResourceFunc) );
- ImageActor actor = ImageActor::New(image);
+ Actor actor = CreateRenderableActor(image);
actor.SetSize( 80, 80 );
application.SendNotification();
application.Render(16);
newTask.SetExclusive( true );
newTask.SetRefreshRate( refreshRate );
newTask.SetTargetFrameBuffer( frameBufferImage );
+ newTask.SetProperty( RenderTask::Property::REQUIRES_SYNC, glSync );
return newTask;
}
{
finishedSig = false;
callStack.Reset();
+
+ tet_printf("TestApplication::UpdateRender().\n");
+
application.Render(16);
application.SendNotification();
application.GetGlAbstraction().SetNextTextureIds( ids );
BufferImage img = BufferImage::New( 1,1 );
- ImageActor newActor = ImageActor::New( img );
+ Actor newActor = CreateRenderableActor( img );
newActor.SetSize(1,1);
stage.Add( newActor );
application.GetGlAbstraction().SetNextTextureIds( ids );
BufferImage img = BufferImage::New( 1,1 );
- ImageActor newActor = ImageActor::New( img );
+ Actor newActor = CreateRenderableActor( img );
newActor.SetSize(1,1);
stage.Add( newActor );
application.GetGlAbstraction().SetNextTextureIds( ids );
BufferImage img = BufferImage::New( 1,1 );
- ImageActor newActor = ImageActor::New( img );
+ Actor newActor = CreateRenderableActor( img );
newActor.SetSize(1,1);
task.SetSourceActor( newActor );
// Don't add newActor to stage yet //'
application.GetGlAbstraction().SetNextTextureIds( ids );
BufferImage img = BufferImage::New( 1,1 );
- ImageActor newActor = ImageActor::New( img );
+ Actor newActor = CreateRenderableActor( img );
newActor.SetSize(1,1);
stage.Add( newActor );
RenderTaskList taskList = Stage::GetCurrent().GetRenderTaskList();
- // Manipulate the GenTextures behaviour, to identify different ImageActors
+ // Manipulate the GenTextures behaviour, to identify different actors
std::vector<GLuint> ids;
ids.push_back( 8 ); // 8 = actor1
application.GetGlAbstraction().SetNextTextureIds( ids );
BufferImage img1 = BufferImage::New( 1,1 );
- ImageActor actor1 = ImageActor::New( img1 );
+ Actor actor1 = CreateRenderableActor( img1 );
actor1.SetSize(1,1);
Stage::GetCurrent().Add( actor1 );
}
BufferImage img2 = BufferImage::New( 1,1 );
- ImageActor actor2 = ImageActor::New( img2 );
+ Actor actor2 = CreateRenderableActor( img2 );
actor2.SetSize(1,1);
// Force actor2 to be rendered before actor1
}
BufferImage img3 = BufferImage::New( 1,1 );
- ImageActor actor3 = ImageActor::New( img3 );
+ Actor actor3 = CreateRenderableActor( img3 );
actor3.SetSize(1,1);
// Force actor3 to be rendered before actor2
application.GetGlAbstraction().SetNextTextureIds( ids );
BufferImage img1 = BufferImage::New( 1,1 );
- ImageActor actor1 = ImageActor::New( img1 );
+ Actor actor1 = CreateRenderableActor( img1 );
actor1.SetSize(1,1);
Stage::GetCurrent().Add( actor1 );
application.SendNotification();
application.Render();
- DALI_TEST_EQUALS( drawTrace.CountMethod("DrawElements"), 1, TEST_LOCATION );
+ DALI_TEST_EQUALS( drawTrace.CountMethod("DrawArrays"), 1, TEST_LOCATION );
// Set task to non-exclusive - actor1 should render twice:
drawTrace.Reset();
application.SendNotification();
application.Render();
- DALI_TEST_EQUALS( drawTrace.CountMethod("DrawElements"), 2, TEST_LOCATION );
+ DALI_TEST_EQUALS( drawTrace.CountMethod("DrawArrays"), 2, TEST_LOCATION );
END_TEST;
}
END_TEST;
}
+int UtcDaliRenderTaskSetFrameBufferP(void)
+{
+ TestApplication application;
+
+ tet_infoline("Testing RenderTask::SetFrameBuffer()");
+
+ RenderTaskList taskList = Stage::GetCurrent().GetRenderTaskList();
+
+ RenderTask task = taskList.GetTask( 0u );
+
+ FrameBuffer newFrameBuffer = FrameBuffer::New( 128u, 128u, FrameBuffer::COLOR );
+ task.SetFrameBuffer( newFrameBuffer );
+ DALI_TEST_CHECK( task.GetFrameBuffer() == newFrameBuffer );
+ END_TEST;
+}
+
+int UtcDaliRenderTaskSetFrameBufferN(void)
+{
+ TestApplication application;
+
+ tet_infoline("Testing RenderTask::SetFrameBuffer()");
+
+ RenderTaskList taskList = Stage::GetCurrent().GetRenderTaskList();
+
+ RenderTask task = taskList.GetTask( 0u );
+ FrameBuffer newFrameBuffer; // Empty handle
+ task.SetFrameBuffer( newFrameBuffer );
+ DALI_TEST_EQUALS( (bool)task.GetFrameBuffer(), false, TEST_LOCATION );
+ END_TEST;
+}
+
+int UtcDaliRenderTaskGetFrameBufferP(void)
+{
+ TestApplication application;
+
+ tet_infoline("Testing RenderTask::GetFrameBuffer()");
+
+ RenderTaskList taskList = Stage::GetCurrent().GetRenderTaskList();
+
+ RenderTask task = taskList.GetTask( 0u );
+
+ FrameBuffer newFrameBuffer = FrameBuffer::New( 1u, 1u, FrameBuffer::COLOR );
+ task.SetFrameBuffer( newFrameBuffer );
+ DALI_TEST_CHECK( task.GetFrameBuffer() == newFrameBuffer );
+ END_TEST;
+}
+
+int UtcDaliRenderTaskGetFrameBufferN(void)
+{
+ TestApplication application;
+
+ tet_infoline("Testing RenderTask::GetFrameBuffer()");
+
+ RenderTaskList taskList = Stage::GetCurrent().GetRenderTaskList();
+
+ RenderTask task = taskList.GetTask( 0u );
+
+ // By default render-tasks do not render off-screen
+ FrameBuffer frameBuffer = task.GetFrameBuffer();
+ DALI_TEST_CHECK( !frameBuffer );
+
+ END_TEST;
+}
+
int UtcDaliRenderTaskSetScreenToFrameBufferFunctionP(void)
{
TestApplication application;
BufferImage image = BufferImage::New( 10, 10 );
image.Update();
- ImageActor rootActor = ImageActor::New( image );
+ Actor rootActor = CreateRenderableActor( image );
rootActor.SetSize( 10, 10 );
Stage::GetCurrent().Add( rootActor );
newTask.SetExclusive( true );
newTask.SetRefreshRate( RenderTask::REFRESH_ONCE );
newTask.SetTargetFrameBuffer( frameBufferImage );
+ newTask.SetProperty( RenderTask::Property::REQUIRES_SYNC, true );
bool finished = false;
RenderTaskFinished renderTaskFinished( finished );
DALI_TEST_CHECK( finished );
finished = false;
- application.Render(); // Double check no more finished signal
- application.SendNotification();
- DALI_TEST_CHECK( ! finished );
+ DALI_TEST_EQUALS( application.GetUpdateStatus(), 0, TEST_LOCATION );
END_TEST;
}
CameraActor offscreenCameraActor = CameraActor::New();
Stage::GetCurrent().Add( offscreenCameraActor );
- ImageActor secondRootActor = CreateLoadingImageActor(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
+ Actor secondRootActor = CreateLoadingActor(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
Integration::ResourceRequest* imageRequest = application.GetPlatform().GetRequest();
Integration::ResourceId imageRequestId = imageRequest->GetId();
Integration::ResourceTypeId imageType = imageRequest->GetType()->id;
CameraActor offscreenCameraActor = CameraActor::New();
Stage::GetCurrent().Add( offscreenCameraActor );
- ImageActor secondRootActor = CreateLoadingImageActor(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
+ Actor secondRootActor = CreateLoadingActor(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
Integration::ResourceRequest* imageRequest = application.GetPlatform().GetRequest();
Integration::ResourceId imageRequestId = imageRequest->GetId();
Integration::ResourceTypeId imageType = imageRequest->GetType()->id;
Stage::GetCurrent().Add( rootActor );
CameraActor offscreenCameraActor = CameraActor::New();
- ImageActor secondRootActor = CreateLoadingImageActor(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
+ Actor secondRootActor = CreateLoadingActor(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
Integration::ResourceRequest* imageRequest = application.GetPlatform().GetRequest();
Integration::ResourceId imageRequestId = imageRequest->GetId();
Integration::ResourceTypeId imageType = imageRequest->GetType()->id;
CameraActor offscreenCameraActor = CameraActor::New();
Stage::GetCurrent().Add( offscreenCameraActor );
- ImageActor secondRootActor = CreateLoadingImageActor(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
+ Actor secondRootActor = CreateLoadingActor(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
Integration::ResourceRequest* imageRequest = application.GetPlatform().GetRequest();
Integration::ResourceId imageRequestId = imageRequest->GetId();
Integration::ResourceTypeId imageType = imageRequest->GetType()->id;
CameraActor offscreenCameraActor = CameraActor::New();
Stage::GetCurrent().Add( offscreenCameraActor );
- Material material = CreateMaterial();
+ Shader shader = CreateShader();
+
+
Image image = CreateLoadingImage(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
Integration::ResourceRequest* imageRequest = application.GetPlatform().GetRequest();
Integration::ResourceId imageRequestId = imageRequest->GetId();
Integration::ResourceTypeId imageType = imageRequest->GetType()->id;
- material.AddTexture( image, "sTexture" );
+ TextureSet textureSet = CreateTextureSet( image );
- Geometry geometry = CreateQuadGeometry();
- Renderer renderer = Renderer::New(geometry, material);
+ Geometry geometry = Geometry::QUAD();
+ Renderer renderer = Renderer::New(geometry, shader);
+ renderer.SetTextures( textureSet );
Actor secondRootActor = Actor::New();
secondRootActor.AddRenderer(renderer);
secondRootActor.SetSize(100, 100);
CameraActor offscreenCameraActor = CameraActor::New();
Stage::GetCurrent().Add( offscreenCameraActor );
- ImageActor secondRootActor = CreateLoadingImageActor(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
+ Actor secondRootActor = CreateLoadingActor(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
Integration::ResourceRequest* imageRequest = application.GetPlatform().GetRequest();
Integration::ResourceId imageRequestId = imageRequest->GetId();
Integration::ResourceTypeId imageType = imageRequest->GetType()->id;
CameraActor offscreenCameraActor = CameraActor::New();
Stage::GetCurrent().Add( offscreenCameraActor );
- Material material = CreateMaterial();
+ Shader shader = CreateShader();
Image image = CreateLoadingImage(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
Integration::ResourceRequest* imageRequest = application.GetPlatform().GetRequest();
Integration::ResourceId imageRequestId = imageRequest->GetId();
Integration::ResourceTypeId imageType = imageRequest->GetType()->id;
- material.AddTexture( image, "sTexture" );
+ TextureSet textureSet = CreateTextureSet( image );
- Geometry geometry = CreateQuadGeometry();
- Renderer renderer = Renderer::New(geometry, material);
+ Geometry geometry = Geometry::QUAD();
+ Renderer renderer = Renderer::New(geometry, shader);
+ renderer.SetTextures( textureSet );
Actor secondRootActor = Actor::New();
secondRootActor.AddRenderer(renderer);
secondRootActor.SetSize(100, 100);
CameraActor offscreenCameraActor = CameraActor::New();
Stage::GetCurrent().Add( offscreenCameraActor );
- ImageActor secondRootActor = CreateLoadingImageActor(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
+ Actor secondRootActor = CreateLoadingActor(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
Integration::ResourceRequest* imageRequest = application.GetPlatform().GetRequest();
Integration::ResourceId imageRequestId = imageRequest->GetId();
Integration::ResourceTypeId imageType = imageRequest->GetType()->id;
CameraActor offscreenCameraActor = CameraActor::New();
Stage::GetCurrent().Add( offscreenCameraActor );
- Material material = CreateMaterial();
+ Shader shader = CreateShader();
Image image = CreateLoadingImage(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
Integration::ResourceRequest* imageRequest = application.GetPlatform().GetRequest();
Integration::ResourceId imageRequestId = imageRequest->GetId();
Integration::ResourceTypeId imageType = imageRequest->GetType()->id;
- material.AddTexture( image, "sTexture" );
+ TextureSet textureSet = CreateTextureSet( image );
- Geometry geometry = CreateQuadGeometry();
- Renderer renderer = Renderer::New(geometry, material);
+ Geometry geometry = Geometry::QUAD();
+ Renderer renderer = Renderer::New(geometry, shader);
+ renderer.SetTextures( textureSet );
Actor secondRootActor = Actor::New();
secondRootActor.AddRenderer(renderer);
secondRootActor.SetSize(100, 100);
CameraActor offscreenCameraActor = CameraActor::New();
Stage::GetCurrent().Add( offscreenCameraActor );
- ImageActor secondRootActor = CreateLoadingImageActor(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
+ Actor secondRootActor = CreateLoadingActor(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
Integration::ResourceRequest* imageRequest = application.GetPlatform().GetRequest();
Integration::ResourceId imageRequestId = imageRequest->GetId();
Integration::ResourceTypeId imageType = imageRequest->GetType()->id;
CameraActor offscreenCameraActor = CameraActor::New();
Stage::GetCurrent().Add( offscreenCameraActor );
- ImageActor secondRootActor = CreateLoadingImageActor(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
+ Actor secondRootActor = CreateLoadingActor(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
Integration::ResourceRequest* imageRequest = application.GetPlatform().GetRequest();
Integration::ResourceId imageRequestId = imageRequest->GetId();
Integration::ResourceTypeId imageType = imageRequest->GetType()->id;
CameraActor offscreenCameraActor = CameraActor::New();
Stage::GetCurrent().Add( offscreenCameraActor );
- ImageActor secondRootActor = CreateLoadingImageActor(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
+ Actor secondRootActor = CreateLoadingActor(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
Integration::ResourceRequest* imageRequest = application.GetPlatform().GetRequest();
Integration::ResourceId imageRequestId = imageRequest->GetId();
Integration::ResourceTypeId imageType = imageRequest->GetType()->id;
application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
TestGlSyncAbstraction& sync = application.GetGlSyncAbstraction();
TraceCallStack& drawTrace = application.GetGlAbstraction().GetDrawTrace();
+ sync.GetTrace().Enable(true);
drawTrace.Enable(true);
Actor rootActor = Actor::New();
CameraActor offscreenCameraActor = CameraActor::New();
Stage::GetCurrent().Add( offscreenCameraActor );
- ImageActor secondRootActor = CreateLoadingImageActor(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
+ Actor secondRootActor = CreateLoadingActor(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
Integration::ResourceRequest* imageRequest = application.GetPlatform().GetRequest();
Integration::ResourceId imageRequestId = imageRequest->GetId();
Integration::ResourceTypeId imageType = imageRequest->GetType()->id;
Stage::GetCurrent().Add(secondRootActor);
- RenderTask newTask = CreateRenderTask(application, offscreenCameraActor, rootActor, secondRootActor, RenderTask::REFRESH_ALWAYS, true);
+ RenderTask newTask = CreateRenderTask(application, offscreenCameraActor, rootActor, secondRootActor, RenderTask::REFRESH_ALWAYS, /*GL-SYNC*/ true);
bool finished = false;
ConnectionTracker connectionTracker;
// START PROCESS/RENDER Input, Expected Input, Expected
DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, false, __LINE__ ) );
Integration::GlSyncAbstraction::SyncObject* lastSyncObj = sync.GetLastSyncObject();
+ DALI_TEST_CHECK( lastSyncObj == NULL );
+ DALI_TEST_EQUALS( sync.GetTrace().CountMethod( "CreateSyncObject" ), 0, TEST_LOCATION );
+
// CHANGE TO RENDER ONCE,
newTask.SetRefreshRate(RenderTask::REFRESH_ONCE);
DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true, __LINE__ ) );
lastSyncObj = sync.GetLastSyncObject();
DALI_TEST_CHECK( lastSyncObj != NULL );
+ DALI_TEST_EQUALS( sync.GetNumberOfSyncObjects(), 1, TEST_LOCATION );
+ DALI_TEST_EQUALS( sync.GetTrace().CountMethod( "CreateSyncObject" ), 1, TEST_LOCATION );
DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) );
+
+
+ DALI_TEST_EQUALS( sync.GetNumberOfSyncObjects(), 1, TEST_LOCATION );
+ DALI_TEST_EQUALS( sync.GetTrace().CountMethod( "CreateSyncObject" ), 1, TEST_LOCATION );
+
DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) );
+ DALI_TEST_EQUALS( sync.GetNumberOfSyncObjects(), 1, TEST_LOCATION );
+ DALI_TEST_EQUALS( sync.GetTrace().CountMethod( "CreateSyncObject" ), 1, TEST_LOCATION );
+
sync.SetObjectSynced( lastSyncObj, true );
DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) );
DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false, __LINE__ ) );
CameraActor offscreenCameraActor = CameraActor::New();
Stage::GetCurrent().Add( offscreenCameraActor );
- ImageActor secondRootActor = CreateLoadingImageActor(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
+ Actor secondRootActor = CreateLoadingActor(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
Integration::ResourceRequest* imageRequest = application.GetPlatform().GetRequest();
Integration::ResourceId imageRequestId = imageRequest->GetId();
Integration::ResourceTypeId imageType = imageRequest->GetType()->id;
CameraActor offscreenCameraActor = CameraActor::New();
Stage::GetCurrent().Add( offscreenCameraActor );
- ImageActor secondRootActor = CreateLoadingImageActor(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
+ Actor secondRootActor = CreateLoadingActor(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
Integration::ResourceRequest* imageRequest = application.GetPlatform().GetRequest();
Integration::ResourceId imageRequestId = imageRequest->GetId();
Stage::GetCurrent().Add(secondRootActor);
CameraActor offscreenCameraActor = CameraActor::New();
Stage::GetCurrent().Add( offscreenCameraActor );
- ImageActor secondRootActor = CreateLoadingImageActor(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
+ Actor secondRootActor = CreateLoadingActor(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
Integration::ResourceRequest* imageRequest = application.GetPlatform().GetRequest();
Integration::ResourceId imageRequestId = imageRequest->GetId();
Integration::ResourceTypeId imageType = imageRequest->GetType()->id;
CameraActor offscreenCameraActor = CameraActor::New();
Stage::GetCurrent().Add( offscreenCameraActor );
- Material material = CreateMaterial();
+ Shader shader = CreateShader();
Image image = CreateLoadingImage(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
Integration::ResourceRequest* imageRequest = application.GetPlatform().GetRequest();
Integration::ResourceId imageRequestId = imageRequest->GetId();
Integration::ResourceTypeId imageType = imageRequest->GetType()->id;
- material.AddTexture(image, "sTexture" );
+ TextureSet textureSet = CreateTextureSet( image );
- Geometry geometry = CreateQuadGeometry();
- Renderer renderer = Renderer::New(geometry, material);
+ Geometry geometry = Geometry::QUAD();
+ Renderer renderer = Renderer::New(geometry, shader);
+ renderer.SetTextures( textureSet );
Actor secondRootActor = Actor::New();
secondRootActor.AddRenderer(renderer);
secondRootActor.SetSize(100, 100);
CameraActor offscreenCameraActor = CameraActor::New();
Stage::GetCurrent().Add( offscreenCameraActor );
- ImageActor secondRootActor = CreateLoadingImageActor(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
+ Actor secondRootActor = CreateLoadingActor(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
Integration::ResourceRequest* imageRequest = application.GetPlatform().GetRequest();
Integration::ResourceId imageRequestId = imageRequest->GetId();
Integration::ResourceTypeId imageType = imageRequest->GetType()->id;
CameraActor offscreenCameraActor = CameraActor::New();
Stage::GetCurrent().Add( offscreenCameraActor );
- Material material = CreateMaterial();
+ Shader shader = CreateShader();
Image image = CreateLoadingImage(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
Integration::ResourceRequest* imageRequest = application.GetPlatform().GetRequest();
Integration::ResourceId imageRequestId = imageRequest->GetId();
Integration::ResourceTypeId imageType = imageRequest->GetType()->id;
- material.AddTexture( image, "sTexture" );
+ TextureSet textureSet = CreateTextureSet( image );
- Geometry geometry = CreateQuadGeometry();
- Renderer renderer = Renderer::New(geometry, material);
+ Geometry geometry = Geometry::QUAD();
+ Renderer renderer = Renderer::New(geometry, shader);
+ renderer.SetTextures( textureSet );
Actor secondRootActor = Actor::New();
secondRootActor.AddRenderer(renderer);
secondRootActor.SetSize(100, 100);
DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) );
DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) );
+ TestGlSyncAbstraction& sync = application.GetGlSyncAbstraction();
+ Integration::GlSyncAbstraction::SyncObject* lastSyncObj = sync.GetLastSyncObject();
+ DALI_TEST_CHECK( lastSyncObj == NULL );
+
// FINISH RESOURCE LOADING
CompleteImageLoad(application, imageRequestId, imageType); // Need to run update again for this to complete
DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, false, __LINE__ ) );
application.GetPlatform().ClearReadyResources();
+ lastSyncObj = sync.GetLastSyncObject();
+ DALI_TEST_CHECK( lastSyncObj == NULL );
+
newTask.SetRefreshRate(RenderTask::REFRESH_ONCE);
application.SendNotification(); // Input, Expected Input, Expected
DALI_TEST_CHECK( UpdateRender(application, drawTrace, true, finished, false, true, __LINE__ ) );
DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, true, false, __LINE__ ) );
+
+ lastSyncObj = sync.GetLastSyncObject();
+ DALI_TEST_CHECK( lastSyncObj == NULL );
+
END_TEST;
}
CameraActor offscreenCameraActor = CameraActor::New();
Stage::GetCurrent().Add( offscreenCameraActor );
- ImageActor secondRootActor = CreateLoadingImageActor(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
+ Actor secondRootActor = CreateLoadingActor(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
Integration::ResourceRequest* imageRequest = application.GetPlatform().GetRequest();
Integration::ResourceId imageRequestId = imageRequest->GetId();
Integration::ResourceTypeId imageType = imageRequest->GetType()->id;
newTask.FinishedSignal().Connect( &application, renderTaskFinished );
application.SendNotification();
+ TestGlSyncAbstraction& sync = application.GetGlSyncAbstraction();
+ Integration::GlSyncAbstraction::SyncObject* lastSyncObj = sync.GetLastSyncObject();
+ DALI_TEST_CHECK( lastSyncObj == NULL );
+
// START PROCESS/RENDER Input, Expected Input, Expected
DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) );
DALI_TEST_CHECK( UpdateRender(application, drawTrace, false, finished, false, true, __LINE__ ) );
CameraActor offscreenCameraActor = CameraActor::New();
Stage::GetCurrent().Add( offscreenCameraActor );
- ImageActor secondRootActor = CreateLoadingImageActor(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
+ Actor secondRootActor = CreateLoadingActor(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
Integration::ResourceRequest* imageRequest = application.GetPlatform().GetRequest();
Integration::ResourceId imageRequestId = imageRequest->GetId();
Integration::ResourceTypeId imageType = imageRequest->GetType()->id;
CameraActor offscreenCameraActor = CameraActor::New();
Stage::GetCurrent().Add( offscreenCameraActor );
- ImageActor secondRootActor = CreateLoadingImageActor(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
+ Actor secondRootActor = CreateLoadingActor(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
Integration::ResourceRequest* imageRequest = application.GetPlatform().GetRequest();
Integration::ResourceId imageRequestId = imageRequest->GetId();
Integration::ResourceTypeId imageType = imageRequest->GetType()->id;
CameraActor offscreenCameraActor = CameraActor::New();
Stage::GetCurrent().Add( offscreenCameraActor );
- ImageActor secondRootActor = CreateLoadingImageActor(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
+ Actor secondRootActor = CreateLoadingActor(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
Integration::ResourceRequest* imageRequest = application.GetPlatform().GetRequest();
Integration::ResourceId imageRequestId = imageRequest->GetId();
Integration::ResourceTypeId imageType = imageRequest->GetType()->id;
CameraActor offscreenCameraActor = CameraActor::New();
Stage::GetCurrent().Add( offscreenCameraActor );
- ImageActor secondRootActor = CreateLoadingImageActor(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
+ Actor secondRootActor = CreateLoadingActor(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
Integration::ResourceRequest* imageRequest = application.GetPlatform().GetRequest();
Integration::ResourceId imageRequestId = imageRequest->GetId();
Integration::ResourceTypeId imageType = imageRequest->GetType()->id;
CameraActor offscreenCameraActor = CameraActor::New();
Stage::GetCurrent().Add( offscreenCameraActor );
- ImageActor secondRootActor = CreateLoadingImageActor(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
+ Actor secondRootActor = CreateLoadingActor(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
Integration::ResourceRequest* imageRequest = application.GetPlatform().GetRequest();
Integration::ResourceId imageRequestId = imageRequest->GetId();
Stage::GetCurrent().Add(secondRootActor);
CameraActor offscreenCameraActor = CameraActor::New();
Stage::GetCurrent().Add( offscreenCameraActor );
- ImageActor firstRootActor = CreateLoadingImageActor(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
+ Actor firstRootActor = CreateLoadingActor(application, "aFile.jpg", ResourceImage::IMMEDIATE, Image::UNUSED);
Integration::ResourceRequest* imageRequest = application.GetPlatform().GetRequest();
Integration::ResourceId imageRequestId = imageRequest->GetId();
Integration::ResourceTypeId imageType = imageRequest->GetType()->id;
// Second render task
FrameBufferImage fbo = firstTask.GetTargetFrameBuffer();
- ImageActor secondRootActor = ImageActor::New( fbo );
+ Actor secondRootActor = CreateRenderableActor( fbo );
Stage::GetCurrent().Add(secondRootActor);
RenderTask secondTask = CreateRenderTask(application, offscreenCameraActor, defaultRootActor, secondRootActor, RenderTask::REFRESH_ONCE, false);
bool secondFinished = false;
{
TestApplication application;
- tet_infoline("Testing RenderTask::SignalFinished()");
+ tet_infoline("Testing RenderTask::FinishInvisibleSourceActor()");
application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
TestGlSyncAbstraction& sync = application.GetGlSyncAbstraction();
Stage::GetCurrent().Add( offscreenCameraActor );
BufferImage image = BufferImage::New( 10, 10 );
- ImageActor rootActor = ImageActor::New( image );
+ Actor rootActor = CreateRenderableActor( image );
rootActor.SetSize( 10, 10 );
rootActor.SetVisible(false);
Stage::GetCurrent().Add( rootActor );
newTask.SetExclusive( true );
newTask.SetRefreshRate( RenderTask::REFRESH_ONCE );
newTask.SetTargetFrameBuffer( frameBufferImage );
+ newTask.SetProperty( RenderTask::Property::REQUIRES_SYNC, true );
// Framebuffer doesn't actually get created until Connected, i.e. by previous line
TestApplication application;
// Previously we had bugs where not having a resource ID would cause render-tasks to wait forever
- tet_infoline("Testing RenderTask::SignalFinished() when an ImageActor has no Image set");
+ tet_infoline("Testing RenderTask::SignalFinished() when an Actor has no Image set");
Stage stage = Stage::GetCurrent();
BufferImage image = BufferImage::New( 10, 10 );
- ImageActor rootActor = ImageActor::New( image );
+ Actor rootActor = CreateRenderableActor( image );
rootActor.SetSize( 10, 10 );
stage.Add( rootActor );
- ImageActor actorWithMissingImage = ImageActor::New( Image() );
+ Actor actorWithMissingImage = CreateRenderableActor( Image() );
actorWithMissingImage.SetSize( 10, 10 );
stage.Add( actorWithMissingImage );
Stage::GetCurrent().Add(actor);
- application.Render();
application.SendNotification();
application.Render();
application.SendNotification();
actor2.Add(actor);
actor.SetParentOrigin( Vector3(0,0,0) );
- application.Render();
application.SendNotification();
application.Render();
application.SendNotification();
// flush the queue and render once
application.SendNotification();
application.Render();
+ application.SendNotification();
+ application.Render();
float localX;
float localY;