+ // change shader program
+ Property::Map map;
+ map["vertex"] = VertexSource;
+ map["fragment"] = FragmentSource;
+ map["hints"] = "MODIFIES_GEOMETRY";
+ shader.SetProperty( Shader::Property::PROGRAM, Property::Value(map) );
+ application.SendNotification();
+ application.Render(100);
+
+ // register another custom property as well
+ Property::Index customIndex = shader.RegisterProperty( "uCustom", Vector3(1,2,3) );
+ DALI_TEST_EQUALS( shader.GetProperty<Vector3>( customIndex ), Vector3(1,2,3), TEST_LOCATION );
+
+ application.SendNotification();
+ application.Render(100);
+
+ DALI_TEST_CHECK( gl.GetUniformValue<Vector4>( "uFadeColor", actualValue ) );
+ DALI_TEST_EQUALS( actualValue, Color::TRANSPARENT, TEST_LOCATION );
+
+ Vector3 customValue;
+ DALI_TEST_CHECK( gl.GetUniformValue<Vector3>( "uCustom", customValue ) );
+ DALI_TEST_EQUALS( customValue, Vector3(1,2,3), TEST_LOCATION );