diff --git a/samplecode/SampleLighting.cpp b/samplecode/SampleLighting.cpp
index 1c86c99..bab2b5d 100755
--- a/samplecode/SampleLighting.cpp
+++ b/samplecode/SampleLighting.cpp
@@ -21,8 +21,8 @@
 
     SkLights::Builder builder;
 
-    builder.add(SkLights::Light(SkColor3f::Make(1.0f, 1.0f, blue), dir));
-    builder.add(SkLights::Light(SkColor3f::Make(0.1f, 0.1f, 0.1f)));
+    builder.add(SkLights::Light::MakeDirectional(SkColor3f::Make(1.0f, 1.0f, blue), dir));
+    builder.add(SkLights::Light::MakeAmbient(SkColor3f::Make(0.1f, 0.1f, 0.1f)));
 
     return builder.finish();
 }
diff --git a/samplecode/SampleLitAtlas.cpp b/samplecode/SampleLitAtlas.cpp
index 5f62e2a..cb49bf3 100644
--- a/samplecode/SampleLitAtlas.cpp
+++ b/samplecode/SampleLitAtlas.cpp
@@ -182,8 +182,9 @@
     void updateLights() {        
         SkLights::Builder builder;
 
-        builder.add(SkLights::Light(SkColor3f::Make(1.0f, 1.0f, 1.0f), fLightDir));
-        builder.add(SkLights::Light(SkColor3f::Make(0.2f, 0.2f, 0.2f)));
+        builder.add(SkLights::Light::MakeDirectional(
+                SkColor3f::Make(1.0f, 1.0f, 1.0f), fLightDir));
+        builder.add(SkLights::Light::MakeAmbient(SkColor3f::Make(0.2f, 0.2f, 0.2f)));
 
         fLights = builder.finish();
     }
diff --git a/samplecode/SampleShadowing.cpp b/samplecode/SampleShadowing.cpp
index 7b434bc..d0b37fb 100644
--- a/samplecode/SampleShadowing.cpp
+++ b/samplecode/SampleShadowing.cpp
@@ -19,11 +19,11 @@
 
         this->setBGColor(0xFFCCCCCC);
         SkLights::Builder builder;
-        builder.add(SkLights::Light(SkColor3f::Make(0.2f, 0.3f, 0.4f),
-                                    SkVector3::Make(0.2f, 0.05f, 1.0f)));
-        builder.add(SkLights::Light(SkColor3f::Make(0.4f, 0.3f, 0.2f),
-                                    SkVector3::Make(0.05f, 0.2f, 1.0f)));
-        builder.add(SkLights::Light(SkColor3f::Make(0.4f, 0.4f, 0.4f)));
+        builder.add(SkLights::Light::MakeDirectional(SkColor3f::Make(0.2f, 0.3f, 0.4f),
+                                                     SkVector3::Make(0.2f, 0.05f, 1.0f)));
+        builder.add(SkLights::Light::MakeDirectional(SkColor3f::Make(0.4f, 0.3f, 0.2f),
+                                                     SkVector3::Make(0.05f, 0.2f, 1.0f)));
+        builder.add(SkLights::Light::MakeAmbient(SkColor3f::Make(0.4f, 0.4f, 0.4f)));
         fLights = builder.finish();
 
         fTestRects[0].fColor = 0xFFEE8888;
@@ -139,15 +139,18 @@
                 float recipY = 1.0f / kHeight;
 
                 SkLights::Builder builder;
-                builder.add(SkLights::Light(SkColor3f::Make(0.2f, 0.3f, 0.4f),
-                                            SkVector3::Make(0.2f + (200.0f - x) * recipX,
-                                                            0.05f + (200.0f - y) * recipY,
-                                                            1.0f)));
-                builder.add(SkLights::Light(SkColor3f::Make(0.4f, 0.3f, 0.2f),
-                                            SkVector3::Make(0.05f + (200.0f - x) * recipX,
-                                                            0.2f + (200.0f - y) * recipY,
-                                                            1.0f)));
-                builder.add(SkLights::Light(SkColor3f::Make(0.4f, 0.4f, 0.4f)));
+                builder.add(SkLights::Light::MakeDirectional(
+                        SkColor3f::Make(0.2f, 0.3f, 0.4f),
+                        SkVector3::Make(0.2f + (200.0f - x) * recipX,
+                                        0.05f + (200.0f - y) * recipY,
+                                        1.0f)));
+                builder.add(SkLights::Light::MakeDirectional(
+                        SkColor3f::Make(0.4f, 0.3f, 0.2f),
+                        SkVector3::Make(0.05f + (200.0f - x) * recipX,
+                                        0.2f + (200.0f - y) * recipY,
+                                        1.0f)));
+                builder.add(SkLights::Light::MakeAmbient(
+                        SkColor3f::Make(0.4f, 0.4f, 0.4f)));
                 fLights = builder.finish();
 
                 fLightsChanged = true;
