Fix DM build failures:
  - forgot tool_main;
  - skip building where skia_gpu is false;
  - lots of scalar -> int warnings;
  - stray return on a void method;
  - stifle warning about a uint32_t cast to bool

BUG=
R=bungeman@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/26468005

git-svn-id: http://skia.googlecode.com/svn/trunk@11821 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/dm/DM.cpp b/dm/DM.cpp
index d149b48..aca4986 100644
--- a/dm/DM.cpp
+++ b/dm/DM.cpp
@@ -129,8 +129,8 @@
     }
 };
 
-
-int main(int argc, char** argv) {
+int tool_main(int argc, char** argv);
+int tool_main(int argc, char** argv) {
     SkGraphics::Init();
 
     SkCommandLineFlags::Parse(argc, argv);
@@ -164,3 +164,9 @@
 
     return reporter.failed() > 0;
 }
+
+#if !defined(SK_BUILD_FOR_IOS) && !defined(SK_BUILD_FOR_NACL)
+int main(int argc, char** argv) {
+    return tool_main(argc, argv);
+}
+#endif
diff --git a/dm/DMCpuTask.cpp b/dm/DMCpuTask.cpp
index 5534ba4..544f73c 100644
--- a/dm/DMCpuTask.cpp
+++ b/dm/DMCpuTask.cpp
@@ -24,7 +24,7 @@
 
 void CpuTask::draw() {
     SkBitmap bitmap;
-    bitmap.setConfig(fConfig, fGM->width(), fGM->height());
+    bitmap.setConfig(fConfig, SkScalarCeilToInt(fGM->width()), SkScalarCeilToInt(fGM->height()));
     bitmap.allocPixels();
     bitmap.eraseColor(0x00000000);
     SkCanvas canvas(bitmap);
diff --git a/dm/DMGpuTask.cpp b/dm/DMGpuTask.cpp
index 9205cb9..6cf69ff 100644
--- a/dm/DMGpuTask.cpp
+++ b/dm/DMGpuTask.cpp
@@ -30,7 +30,7 @@
 }
 
 static void delete_gr_context_factory(void* factory) {
-    return SkDELETE((GrContextFactory*) factory);
+    SkDELETE((GrContextFactory*) factory);
 }
 
 static GrContextFactory* get_gr_factory() {
@@ -40,7 +40,11 @@
 
 void GpuTask::draw() {
     GrContext* gr = get_gr_factory()->get(fContextType);  // Will be owned by device.
-    SkGpuDevice device(gr, fConfig, fGM->width(), fGM->height(), fSampleCount);
+    SkGpuDevice device(gr,
+                       fConfig,
+                       SkScalarCeilToInt(fGM->width()),
+                       SkScalarCeilToInt(fGM->height()),
+                       fSampleCount);
     SkCanvas canvas(&device);
 
     canvas.concat(fGM->getInitialTransform());
@@ -48,7 +52,7 @@
     canvas.flush();
 
     SkBitmap bitmap;
-    bitmap.setConfig(fConfig, fGM->width(), fGM->height());
+    bitmap.setConfig(fConfig, SkScalarCeilToInt(fGM->width()), SkScalarCeilToInt(fGM->height()));
     canvas.readPixels(&bitmap, 0, 0);
 
     // We offload checksum comparison to the main CPU threadpool.
@@ -57,7 +61,7 @@
 }
 
 bool GpuTask::shouldSkip() const {
-    return fGM->getFlags() & skiagm::GM::kSkipGPU_Flag;
+    return SkToBool(fGM->getFlags() & skiagm::GM::kSkipGPU_Flag);
 }
 
 }  // namespace DM
diff --git a/dm/DMReplayTask.cpp b/dm/DMReplayTask.cpp
index bc94f73..7e183f6 100644
--- a/dm/DMReplayTask.cpp
+++ b/dm/DMReplayTask.cpp
@@ -19,7 +19,9 @@
 
 void ReplayTask::draw() {
     SkPicture picture;
-    SkCanvas* canvas = picture.beginRecording(fGM->width(), fGM->height(), 0 /*flags*/);
+    SkCanvas* canvas = picture.beginRecording(SkScalarCeilToInt(fGM->width()),
+                                              SkScalarCeilToInt(fGM->height()),
+                                              0 /*flags*/);
 
     canvas->concat(fGM->getInitialTransform());
     fGM->draw(canvas);
@@ -28,7 +30,7 @@
     picture.endRecording();
 
     SkBitmap bitmap;
-    bitmap.setConfig(fConfig, fGM->width(), fGM->height());
+    bitmap.setConfig(fConfig, SkScalarCeilToInt(fGM->width()), SkScalarCeilToInt(fGM->height()));
     bitmap.allocPixels();
     bitmap.eraseColor(0x00000000);
 
diff --git a/gyp/everything.gyp b/gyp/everything.gyp
index f34b517..8758cc6 100644
--- a/gyp/everything.gyp
+++ b/gyp/everything.gyp
@@ -21,6 +21,10 @@
         }, {
           'dependencies': [ 'debugger.gyp:debugger' ],
         }],
+        # DM assumes you've got a GPU.
+        ['skia_gpu == 1', {
+          'dependencies': [ 'dm.gyp:dm' ],
+        }],
       ],
     },
   ],