{
const std::string DEFAULT_DEVICE_NAME("hwKeyboard");
+const char* VERTEX_SHADER = DALI_COMPOSE_SHADER(
+ attribute mediump vec2 aPosition;\n
+ uniform mediump mat4 uModelView;\n
+ uniform mediump mat4 uProjection;\n
+ uniform mediump vec3 uSize;\n void main()\n {
+ \n
+ mediump vec4 vertexPosition = vec4(aPosition, 0.0, 1.0);
+ \n
+ vertexPosition.xyz *= uSize;
+ \n
+ gl_Position = uProjection * uModelView * vertexPosition;
+ \n
+ }\n);
+
+const char* FRAGMENT_SHADER = DALI_COMPOSE_SHADER(
+ uniform lowp vec4 uColor;\n void main()\n {
+ \n
+ gl_FragColor = uColor;
+ \n
+ }\n);
+
// Functor for EventProcessingFinished signal
struct EventProcessingFinishedFunctor
{
clippingRect = TestApplication::DEFAULT_SURFACE_RECT;
application.RenderWithPartialUpdate(damagedRects, clippingRect);
- Actor actor = CreateRenderableActor();
+ Texture image = CreateTexture(TextureType::TEXTURE_2D, Pixel::RGBA8888, 4u, 4u);
+ Actor actor = CreateRenderableActor(image, VERTEX_SHADER, FRAGMENT_SHADER);
actor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
actor.SetProperty(Actor::Property::POSITION, Vector3(16.0f, 16.0f, 0.0f));
actor.SetProperty(Actor::Property::SIZE, Vector3(16.0f, 16.0f, 0.0f));
application.GetScene().Add(actor);
application.SendNotification();
+ application.Render(0);
+
+ Matrix projection;
+ CameraActor camera = application.GetScene().GetRenderTaskList().GetTask(0u).GetCameraActor();
+ camera.GetProperty(CameraActor::CameraActor::Property::PROJECTION_MATRIX).Get(projection);
damagedRects.clear();
application.GetScene().SurfaceRotated(TestApplication::DEFAULT_SURFACE_WIDTH,
// It should be changed.
DALI_TEST_EQUALS(orientation, 0, TEST_LOCATION);
+ // Check uniform
+ Quaternion rotationAngle(Dali::ANGLE_0, Vector3::ZAXIS);
+ Matrix rotation, newProjection;
+ rotation.SetIdentity();
+ rotation.SetTransformComponents(Vector3(1.0f, 1.0f, 1.0f), rotationAngle, Vector3(0.0f, 0.0f, 0.0f));
+ Matrix::Multiply(newProjection, projection, rotation);
+
+ DALI_TEST_CHECK(application.GetGlAbstraction().CheckUniformValue("uProjection", newProjection));
+
+ // Change actor size to trigger rendering
+ actor.SetProperty(Actor::Property::SIZE, Vector3(32.0f, 32.0f, 0.0f));
+
+ // Render again
+ application.SendNotification();
+ application.Render(0);
+
+ DALI_TEST_CHECK(application.GetGlAbstraction().CheckUniformValue("uProjection", newProjection));
+
END_TEST;
}
clippingRect = TestApplication::DEFAULT_SURFACE_RECT;
application.RenderWithPartialUpdate(damagedRects, clippingRect);
- Actor actor = CreateRenderableActor();
+ Texture image = CreateTexture(TextureType::TEXTURE_2D, Pixel::RGBA8888, 4u, 4u);
+ Actor actor = CreateRenderableActor(image, VERTEX_SHADER, FRAGMENT_SHADER);
actor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
actor.SetProperty(Actor::Property::POSITION, Vector3(16.0f, 16.0f, 0.0f));
actor.SetProperty(Actor::Property::SIZE, Vector3(16.0f, 16.0f, 0.0f));
application.GetScene().Add(actor);
application.SendNotification();
+ application.Render(0);
+
+ Matrix projection;
+ CameraActor camera = application.GetScene().GetRenderTaskList().GetTask(0u).GetCameraActor();
+ camera.GetProperty(CameraActor::CameraActor::Property::PROJECTION_MATRIX).Get(projection);
damagedRects.clear();
application.GetScene().SurfaceRotated(TestApplication::DEFAULT_SURFACE_WIDTH,
// It should be changed.
DALI_TEST_EQUALS(orientation, 90, TEST_LOCATION);
+ // Check uniform
+ Quaternion rotationAngle(Dali::ANGLE_90, Vector3::ZAXIS);
+ Matrix rotation, newProjection;
+ rotation.SetIdentity();
+ rotation.SetTransformComponents(Vector3(1.0f, 1.0f, 1.0f), rotationAngle, Vector3(0.0f, 0.0f, 0.0f));
+ Matrix::Multiply(newProjection, projection, rotation);
+
+ DALI_TEST_CHECK(application.GetGlAbstraction().CheckUniformValue("uProjection", newProjection));
+
+ // Change actor size to trigger rendering
+ actor.SetProperty(Actor::Property::SIZE, Vector3(32.0f, 32.0f, 0.0f));
+
+ // Render again
+ application.SendNotification();
+ application.Render(0);
+
+ DALI_TEST_CHECK(application.GetGlAbstraction().CheckUniformValue("uProjection", newProjection));
+
END_TEST;
}
clippingRect = TestApplication::DEFAULT_SURFACE_RECT;
application.RenderWithPartialUpdate(damagedRects, clippingRect);
- Actor actor = CreateRenderableActor();
+ Texture image = CreateTexture(TextureType::TEXTURE_2D, Pixel::RGBA8888, 4u, 4u);
+ Actor actor = CreateRenderableActor(image, VERTEX_SHADER, FRAGMENT_SHADER);
actor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
actor.SetProperty(Actor::Property::POSITION, Vector3(16.0f, 16.0f, 0.0f));
actor.SetProperty(Actor::Property::SIZE, Vector3(16.0f, 16.0f, 0.0f));
application.GetScene().Add(actor);
application.SendNotification();
+ application.Render(0);
+
+ Matrix projection;
+ CameraActor camera = application.GetScene().GetRenderTaskList().GetTask(0u).GetCameraActor();
+ camera.GetProperty(CameraActor::CameraActor::Property::PROJECTION_MATRIX).Get(projection);
damagedRects.clear();
application.GetScene().SurfaceRotated(TestApplication::DEFAULT_SURFACE_WIDTH,
// It should be changed.
DALI_TEST_EQUALS(orientation, 180, TEST_LOCATION);
+ // Check uniform
+ Quaternion rotationAngle(Dali::ANGLE_180, Vector3::ZAXIS);
+ Matrix rotation, newProjection;
+ rotation.SetIdentity();
+ rotation.SetTransformComponents(Vector3(1.0f, 1.0f, 1.0f), rotationAngle, Vector3(0.0f, 0.0f, 0.0f));
+ Matrix::Multiply(newProjection, projection, rotation);
+
+ DALI_TEST_CHECK(application.GetGlAbstraction().CheckUniformValue("uProjection", newProjection));
+
+ // Change actor size to trigger rendering
+ actor.SetProperty(Actor::Property::SIZE, Vector3(32.0f, 32.0f, 0.0f));
+
+ // Render again
+ application.SendNotification();
+ application.Render(0);
+
+ DALI_TEST_CHECK(application.GetGlAbstraction().CheckUniformValue("uProjection", newProjection));
+
END_TEST;
}
clippingRect = TestApplication::DEFAULT_SURFACE_RECT;
application.RenderWithPartialUpdate(damagedRects, clippingRect);
- Actor actor = CreateRenderableActor();
+ Texture image = CreateTexture(TextureType::TEXTURE_2D, Pixel::RGBA8888, 4u, 4u);
+ Actor actor = CreateRenderableActor(image, VERTEX_SHADER, FRAGMENT_SHADER);
actor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_LEFT);
actor.SetProperty(Actor::Property::POSITION, Vector3(16.0f, 16.0f, 0.0f));
actor.SetProperty(Actor::Property::SIZE, Vector3(16.0f, 16.0f, 0.0f));
application.GetScene().Add(actor);
application.SendNotification();
+ application.Render(0);
+
+ Matrix projection;
+ CameraActor camera = application.GetScene().GetRenderTaskList().GetTask(0u).GetCameraActor();
+ camera.GetProperty(CameraActor::CameraActor::Property::PROJECTION_MATRIX).Get(projection);
damagedRects.clear();
application.GetScene().SurfaceRotated(TestApplication::DEFAULT_SURFACE_WIDTH,
// It should be changed.
DALI_TEST_EQUALS(orientation, 270, TEST_LOCATION);
+ // Check uniform
+ Quaternion rotationAngle(Dali::ANGLE_270, Vector3::ZAXIS);
+ Matrix rotation, newProjection;
+ rotation.SetIdentity();
+ rotation.SetTransformComponents(Vector3(1.0f, 1.0f, 1.0f), rotationAngle, Vector3(0.0f, 0.0f, 0.0f));
+ Matrix::Multiply(newProjection, projection, rotation);
+
+ DALI_TEST_CHECK(application.GetGlAbstraction().CheckUniformValue("uProjection", newProjection));
+
+ // Change actor size to trigger rendering
+ actor.SetProperty(Actor::Property::SIZE, Vector3(32.0f, 32.0f, 0.0f));
+
+ // Render again
+ application.SendNotification();
+ application.Render(0);
+
+ DALI_TEST_CHECK(application.GetGlAbstraction().CheckUniformValue("uProjection", newProjection));
+
END_TEST;
}
END_TEST;
}
-
-
int UtcDaliSceneKeyEventGeneratedSignalP(void)
{
TestApplication application;