Fail draws when can't get geom into vb/ib.

Review URL: http://codereview.appspot.com/4837059/



git-svn-id: http://skia.googlecode.com/svn/trunk@2053 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/gpu/src/GrContext.cpp b/gpu/src/GrContext.cpp
index 10ff206..bfae62e 100644
--- a/gpu/src/GrContext.cpp
+++ b/gpu/src/GrContext.cpp
@@ -955,6 +955,10 @@
     size_t vsize = GrDrawTarget::VertexSize(layout);
 
     GrDrawTarget::AutoReleaseGeometry geo(target, layout, 8, 0);
+    if (!geo.succeeded()) {
+        GrPrintf("Failed to get space for vertices!\n");
+        return;
+    }
 
     intptr_t verts = reinterpret_cast<intptr_t>(geo.vertices());
 
@@ -1008,6 +1012,10 @@
     size_t vsize = GrDrawTarget::VertexSize(layout);
 
     GrDrawTarget::AutoReleaseGeometry geo(target, layout, 16, 0);
+    if (!geo.succeeded()) {
+        GrPrintf("Failed to get space for vertices!\n");
+        return;
+    }
 
     intptr_t verts = reinterpret_cast<intptr_t>(geo.vertices());
 
@@ -1149,6 +1157,7 @@
         GrDrawTarget::AutoReleaseGeometry geo(target, layout, worstCaseVertCount, 0);
 
         if (!geo.succeeded()) {
+            GrPrintf("Failed to get space for vertices!\n");
             return;
         }
 
@@ -1182,9 +1191,12 @@
     } else {
         #if GR_STATIC_RECT_VB
             GrVertexLayout layout = PaintStageVertexLayoutBits(paint, NULL);
-
-            target->setVertexSourceToBuffer(layout,
-                                            fGpu->getUnitSquareVertexBuffer());
+            const GrVertexBuffer* sqVB = fGpu->getUnitSquareVertexBuffer();
+            if (NULL == sqVB) {
+                GrPrintf("Failed to create static rect vb.\n");
+                return;
+            }
+            target->setVertexSourceToBuffer(layout, sqVB);
             GrDrawTarget::AutoViewMatrixRestore avmr(target);
             GrMatrix m;
             m.setAll(rect.width(),    0,             rect.fLeft,
@@ -1251,7 +1263,12 @@
     }
     target->preConcatSamplerMatrix(GrPaint::kFirstTextureStage, m);
 
-    target->setVertexSourceToBuffer(layout, fGpu->getUnitSquareVertexBuffer());
+    const GrVertexBuffer* sqVB = fGpu->getUnitSquareVertexBuffer();
+    if (NULL == sqVB) {
+        GrPrintf("Failed to create static rect vb.\n");
+        return;
+    }
+    target->setVertexSourceToBuffer(layout, sqVB);
     target->drawNonIndexed(kTriangleFan_PrimitiveType, 0, 4);
 #else
 
@@ -1299,7 +1316,7 @@
 
     if (sizeof(GrPoint) != vertexSize) {
         if (!geo.set(target, layout, vertexCount, 0)) {
-            GrPrintf("Failed to get space for vertices!");
+            GrPrintf("Failed to get space for vertices!\n");
             return;
         }
         int texOffsets[GrDrawTarget::kMaxTexCoords];
@@ -1517,9 +1534,10 @@
 
     GrVertexLayout layout = GrDrawTarget::StagePosAsTexCoordVertexLayoutBit(0);
     static const int VCOUNT = 4;
-
+    // TODO: Use GrGpu::drawRect here
     GrDrawTarget::AutoReleaseGeometry geo(fGpu, layout, VCOUNT, 0);
     if (!geo.succeeded()) {
+        GrPrintf("Failed to get space for vertices!\n");
         return;
     }
     ((GrPoint*)geo.vertices())->setIRectFan(0, 0, width, height);