aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--docs/SkImage_Reference.bmh149
-rw-r--r--docs/usingBookmaker.bmh24
-rw-r--r--site/user/api/SkImage_Reference.md65
-rw-r--r--site/user/api/catalog.htm31
-rw-r--r--tools/bookmaker/bookmaker.h2
-rw-r--r--tools/bookmaker/definition.cpp17
-rw-r--r--tools/bookmaker/includeParser.cpp3
7 files changed, 209 insertions, 82 deletions
diff --git a/docs/SkImage_Reference.bmh b/docs/SkImage_Reference.bmh
index 1f61db2917..0d9c98b211 100644
--- a/docs/SkImage_Reference.bmh
+++ b/docs/SkImage_Reference.bmh
@@ -1320,7 +1320,7 @@ paint.setShader(image->makeShader(&matrix));
canvas->drawPaint(paint);
##
-#SeeAlso incomplete
+#SeeAlso scalePixels
#Method ##
@@ -1328,20 +1328,49 @@ canvas->drawPaint(paint);
#Method bool peekPixels(SkPixmap* pixmap) const
-If the image has direct access to its pixels (i.e. they are in local RAM)
-return true, and if not null, return in the pixmap parameter the info about the
-images pixels.
-On failure, return false and ignore the pixmap parameter.
+Copies Image pixel address, row bytes, and Image_Info to pixmap, if address
+is available, and returns true. If pixel address is not available, return
+false and leave pixmap unchanged.
-#Param pixmap incomplete ##
+#Param pixmap storage for pixel state if pixels are readable; otherwise, ignored ##
-#Return incomplete ##
+#Return true if Image has direct access to pixels ##
#Example
-// incomplete
+ SkBitmap bitmap;
+ bitmap.allocPixels(SkImageInfo::MakeN32Premul(12, 11));
+ SkCanvas offscreen(bitmap);
+ offscreen.clear(SK_ColorWHITE);
+ SkPaint paint;
+ offscreen.drawString("%", 1, 10, paint);
+ sk_sp<SkImage> image = SkImage::MakeFromBitmap(bitmap);
+ SkPixmap pixmap;
+ if (image->peekPixels(&pixmap)) {
+ const SkPMColor* pixels = pixmap.addr32();
+ SkPMColor pmWhite = pixels[0];
+ for (int y = 0; y < image->height(); ++y) {
+ for (int x = 0; x < image->width(); ++x) {
+ SkDebugf("%c", *pixels++ == pmWhite ? '-' : 'x');
+ }
+ SkDebugf("\n");
+ }
+ }
+#StdOut
+------------
+--xx----x---
+-x--x--x----
+-x--x--x----
+-x--x-x-----
+--xx-xx-xx--
+-----x-x--x-
+----x--x--x-
+----x--x--x-
+---x----xx--
+------------
+##
##
-#SeeAlso incomplete
+#SeeAlso readPixels
#Method ##
@@ -1355,7 +1384,7 @@ Deprecated.
##
#Private
-currently used by Canvas2DLayerBridge in Chromium.
+Currently used by Canvas2DLayerBridge in Chromium.
##
#Method ##
@@ -1364,15 +1393,37 @@ currently used by Canvas2DLayerBridge in Chromium.
#Method bool isTextureBacked() const
-Returns true if the image is texture backed.
+Returns true the contents of Image was created on or uploaded to GPU memory,
+and is available as a GPU_Texture.
-#Return incomplete ##
+#Return true if Image is a GPU_Texture ##
#Example
-// incomplete
+#Image 5
+#Platform gpu
+auto drawImage = [=](sk_sp<SkImage> image, const char* label) -> void {
+ if (nullptr == image) {
+ return;
+ }
+ SkPaint paint;
+ paint.setAntiAlias(true);
+ paint.setTextAlign(SkPaint::kCenter_Align);
+ canvas->drawImage(image, 0, 0);
+ canvas->drawString(label, image->width() / 2, image->height() / 4, paint);
+ canvas->drawString(image->isTextureBacked() ? "is GPU texture" : "not GPU texture",
+ image->width() / 2, image->height() * 3 / 4, paint);
+};
+sk_sp<SkImage> bitmapImage(SkImage::MakeFromBitmap(source));
+sk_sp<SkImage> textureImage(SkImage::MakeFromTexture(canvas->getGrContext(), backEndTexture,
+ kTopLeft_GrSurfaceOrigin, kOpaque_SkAlphaType, nullptr));
+drawImage(image, "image");
+canvas->translate(image->width(), 0);
+drawImage(bitmapImage, "source");
+canvas->translate(-image->width(), image->height());
+drawImage(textureImage, "backEndTexture");
##
-#SeeAlso incomplete
+#SeeAlso MakeFromTexture isValid
#Method ##
@@ -1380,22 +1431,48 @@ Returns true if the image is texture backed.
#Method bool isValid(GrContext* context) const
-Returns true if Image can be drawn. If context
-is nullptr, tests if Image draws on Raster_Surface; Otherwise, tests if Image
-draws on GPU_Surface associated with context.
+Returns true if Image can be drawn on either Raster_Surface or GPU_Surface.
+If context is nullptr, tests if Image draws on Raster_Surface;
+otherwise, tests if Image draws on GPU_Surface associated with context.
-Texture-backed images may become invalid if their underlying GrContext is abandoned. Some
-generator-backed images may be invalid for CPU and/or GPU.
+Image backed by GPU_Texture may become invalid if associated GrContext is
+invalid. Lazy_Image may be invalid and may not draw to Raster_Surface or
+GPU_Surface or both.
#Param context GPU_Context ##
-#Return incomplete ##
+#Return true if Image can be drawn ##
#Example
-// incomplete
+#Image 5
+#Platform gpu
+auto drawImage = [=](sk_sp<SkImage> image, const char* label) -> void {
+ if (nullptr == image) {
+ return;
+ }
+ SkPaint paint;
+ paint.setAntiAlias(true);
+ paint.setTextAlign(SkPaint::kCenter_Align);
+ canvas->drawImage(image, 0, 0);
+ canvas->drawString(label, image->width() / 2, image->height() / 4, paint);
+ if (canvas->getGrContext()) {
+ canvas->drawString(image->isValid(canvas->getGrContext()) ? "is valid on GPU" :
+ "not valid on GPU", image->width() / 2, image->height() * 5 / 8, paint);
+ }
+ canvas->drawString(image->isValid(nullptr) ? "is valid on CPU" :
+ "not valid on CPU", image->width() / 2, image->height() * 7 / 8, paint);
+};
+sk_sp<SkImage> bitmapImage(SkImage::MakeFromBitmap(source));
+sk_sp<SkImage> textureImage(SkImage::MakeFromTexture(canvas->getGrContext(), backEndTexture,
+ kTopLeft_GrSurfaceOrigin, kOpaque_SkAlphaType, nullptr));
+drawImage(image, "image");
+canvas->translate(image->width(), 0);
+drawImage(bitmapImage, "source");
+canvas->translate(-image->width(), image->height());
+drawImage(textureImage, "backEndTexture");
##
-#SeeAlso incomplete
+#SeeAlso isTextureBacked isLazyGenerated
#Method ##
@@ -1992,6 +2069,34 @@ void draw(SkCanvas* canvas) {
}
##
+#Example
+#Image 5
+#Platform gpu
+void draw(SkCanvas* canvas) {
+ auto drawImage = [=](sk_sp<SkImage> image, const char* label) -> void {
+ if (nullptr == image) {
+ return;
+ }
+ SkPaint paint;
+ paint.setAntiAlias(true);
+ paint.setTextAlign(SkPaint::kCenter_Align);
+ canvas->drawImage(image, 0, 0);
+ canvas->drawString(label, image->width() / 2, image->height() / 4, paint);
+ canvas->drawString(
+ image->isLazyGenerated() ? "is lazily generated" : "not lazily generated",
+ image->width() / 2, image->height() * 3 / 4, paint);
+ };
+ sk_sp<SkImage> bitmapImage(SkImage::MakeFromBitmap(source));
+ sk_sp<SkImage> textureImage(SkImage::MakeFromTexture(canvas->getGrContext(), backEndTexture,
+ kTopLeft_GrSurfaceOrigin, kOpaque_SkAlphaType, nullptr));
+ drawImage(image, "image");
+ canvas->translate(image->width(), 0);
+ drawImage(bitmapImage, "source");
+ canvas->translate(-image->width(), image->height());
+ drawImage(textureImage, "backEndTexture");
+}
+##
+
#SeeAlso incomplete
#Method ##
diff --git a/docs/usingBookmaker.bmh b/docs/usingBookmaker.bmh
index 470dd3c3fd..170a5a711d 100644
--- a/docs/usingBookmaker.bmh
+++ b/docs/usingBookmaker.bmh
@@ -27,18 +27,18 @@ Checking in the edited docs/SkIRect_Reference.bmh will fix the bot.
To regenerate the documentation, follow the Installing and Regenerate steps below.
If the
-#A Housekeeper-Nightly-Bookmaker # https://status.skia.org/repo/skia?filter=search&search_value=Housekeeper-Nightly-Bookmaker ##
- bot is red, one of several things may have gone wrong:
-
-#List
-# A change to include broke documentation examples. ##
-# Something changed the examples that output text. ##
-# Some interface was added, deleted, edited. ##
-# Documentation is malformed. ##
-##
-
-The bot output describes what changed, and includes the file and line
-where the error occurred.
+#A Housekeeper-Nightly-Bookmaker # https://status.skia.org/repo/skia?filter=search&search_value=Housekeeper-Nightly-Bookmaker ##
+ bot is red, one of several things may have gone wrong:
+
+#List
+# A change to include broke documentation examples. ##
+# Something changed the examples that output text. ##
+# Some interface was added, deleted, edited. ##
+# Documentation is malformed. ##
+##
+
+The bot output describes what changed, and includes the file and line
+where the error occurred.
To regenerate the documentation, follow the Installing and Regenerate steps below.
diff --git a/site/user/api/SkImage_Reference.md b/site/user/api/SkImage_Reference.md
index 6ae8dd1704..820aa5747e 100644
--- a/site/user/api/SkImage_Reference.md
+++ b/site/user/api/SkImage_Reference.md
@@ -1353,7 +1353,7 @@ transforming <a href="#Image">Image</a> before <a href="#Matrix">Canvas Matrix</
### See Also
-incomplete
+<a href="#SkImage_scalePixels">scalePixels</a>
---
@@ -1364,29 +1364,46 @@ incomplete
bool peekPixels(SkPixmap* pixmap) const
</pre>
-If the image has direct access to its pixels (i.e. they are in local RAM)
-return true, and if not null, return in the <a href="#SkImage_peekPixels_pixmap">pixmap</a> parameter the info about the
-images pixels.
-On failure, return false and ignore the <a href="#SkImage_peekPixels_pixmap">pixmap</a> parameter.
+Copies <a href="#Image">Image</a> pixel address, row bytes, and <a href="#Info">Image Info</a> to <a href="#SkImage_peekPixels_pixmap">pixmap</a>, if address
+is available, and returns true. If pixel address is not available, return
+false and leave <a href="#SkImage_peekPixels_pixmap">pixmap</a> unchanged.
### Parameters
<table> <tr> <td><a name="SkImage_peekPixels_pixmap"> <code><strong>pixmap </strong></code> </a></td> <td>
-incomplete</td>
+storage for pixel state if pixels are readable; otherwise, ignored</td>
</tr>
</table>
### Return Value
-incomplete
+true if <a href="#Image">Image</a> has direct access to pixels
### Example
-<div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
+<div><fiddle-embed name="900c0eab8dfdecd8301ed5be95887f8e">
+
+#### Example Output
+
+~~~~
+------------
+--xx----x---
+-x--x--x----
+-x--x--x----
+-x--x-x-----
+--xx-xx-xx--
+-----x-x--x-
+----x--x--x-
+----x--x--x-
+---x----xx--
+------------
+~~~~
+
+</fiddle-embed></div>
### See Also
-incomplete
+<a href="#SkImage_readPixels">readPixels</a>
---
@@ -1408,19 +1425,20 @@ Deprecated.
bool isTextureBacked() const
</pre>
-Returns true if the image is texture backed.
+Returns true the contents of <a href="#Image">Image</a> was created on or uploaded to GPU memory,
+and is available as a <a href="undocumented#GPU_Texture">GPU Texture</a>.
### Return Value
-incomplete
+true if <a href="#Image">Image</a> is a <a href="undocumented#GPU_Texture">GPU Texture</a>
### Example
-<div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
+<div><fiddle-embed name="96fd92d399778486a51c5d828ef99322" gpu="true"></fiddle-embed></div>
### See Also
-incomplete
+<a href="#SkImage_MakeFromTexture">MakeFromTexture</a> <a href="#SkImage_isValid">isValid</a>
---
@@ -1431,12 +1449,13 @@ incomplete
bool isValid(GrContext* context) const
</pre>
-Returns true if <a href="#Image">Image</a> can be drawn. If <a href="#SkImage_isValid_context">context</a>
-is nullptr, tests if <a href="#Image">Image</a> draws on <a href="undocumented#Raster_Surface">Raster Surface</a>; Otherwise, tests if <a href="#Image">Image</a>
-draws on <a href="undocumented#GPU_Surface">GPU Surface</a> associated with <a href="#SkImage_isValid_context">context</a>.
+Returns true if <a href="#Image">Image</a> can be drawn on either <a href="undocumented#Raster_Surface">Raster Surface</a> or <a href="undocumented#GPU_Surface">GPU Surface</a>.
+If <a href="#SkImage_isValid_context">context</a> is nullptr, tests if <a href="#Image">Image</a> draws on <a href="undocumented#Raster_Surface">Raster Surface</a>;
+otherwise, tests if <a href="#Image">Image</a> draws on <a href="undocumented#GPU_Surface">GPU Surface</a> associated with <a href="#SkImage_isValid_context">context</a>.
-<a href="undocumented#Texture">Texture</a>-backed images may become invalid if their underlying <a href="undocumented#GrContext">GrContext</a> is abandoned. Some
-generator-backed images may be invalid for CPU and/or GPU.
+<a href="#Image">Image</a> backed by <a href="undocumented#GPU_Texture">GPU Texture</a> may become invalid if associated <a href="undocumented#GrContext">GrContext</a> is
+invalid. <a href="#Lazy_Image">Lazy Image</a> may be invalid and may not draw to <a href="undocumented#Raster_Surface">Raster Surface</a> or
+<a href="undocumented#GPU_Surface">GPU Surface</a> or both.
### Parameters
@@ -1447,15 +1466,15 @@ generator-backed images may be invalid for CPU and/or GPU.
### Return Value
-incomplete
+true if <a href="#Image">Image</a> can be drawn
### Example
-<div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
+<div><fiddle-embed name="daf1507ab3a5f7cb0f90058cbc028402" gpu="true"></fiddle-embed></div>
### See Also
-incomplete
+<a href="#SkImage_isTextureBacked">isTextureBacked</a> <a href="#SkImage_isLazyGenerated">isLazyGenerated</a>
---
@@ -2229,6 +2248,10 @@ true if <a href="#Image">Image</a> is created as needed
<div><fiddle-embed name="a8b8bd4bfe968e2c63085f867665227f"></fiddle-embed></div>
+### Example
+
+<div><fiddle-embed name="070dd0405890b84c07827d93fa01c331" gpu="true"></fiddle-embed></div>
+
### See Also
incomplete
diff --git a/site/user/api/catalog.htm b/site/user/api/catalog.htm
index 4265f09294..cb1bec3b9b 100644
--- a/site/user/api/catalog.htm
+++ b/site/user/api/catalog.htm
@@ -1064,6 +1064,13 @@
"name": "SkImage::isOpaque",
"stdout": "isOpaque = false\\nisOpaque = true\\n"
},
+ "SkImage_peekPixels": {
+ "code": "void draw(SkCanvas* canvas) {\n SkBitmap bitmap;\n bitmap.allocPixels(SkImageInfo::MakeN32Premul(12, 11));\n SkCanvas offscreen(bitmap);\n offscreen.clear(SK_ColorWHITE);\n SkPaint paint;\n offscreen.drawString(\"%\", 1, 10, paint);\n sk_sp<SkImage> image = SkImage::MakeFromBitmap(bitmap);\n SkPixmap pixmap;\n if (image->peekPixels(&pixmap)) {\n const SkPMColor* pixels = pixmap.addr32();\n SkPMColor pmWhite = pixels[0];\n for (int y = 0; y < image->height(); ++y) {\n for (int x = 0; x < image->width(); ++x) {\n SkDebugf(\"%c\", *pixels++ == pmWhite ? '-' : 'x');\n }\n SkDebugf(\"\\n\");\n }\n }\n}",
+ "hash": "900c0eab8dfdecd8301ed5be95887f8e",
+ "file": "SkImage_Reference",
+ "name": "SkImage::peekPixels",
+ "stdout": "------------\\n--xx----x---\\n-x--x--x----\\n-x--x--x----\\n-x--x-x-----\\n--xx-xx-xx--\\n-----x-x--x-\\n----x--x--x-\\n----x--x--x-\\n---x----xx--\\n------------\\n"
+ },
"SkMatrix_I": {
"code": "void draw(SkCanvas* canvas) {\n SkMatrix m1, m2, m3;\n m1.reset();\n m2.setIdentity();\n m3 = SkMatrix::I();\n SkDebugf(\"m1 %c= m2\\n\", m1 == m2 ? '=' : '!');\n SkDebugf(\"m2 %c= m3\\n\", m1 == m2 ? '=' : '!');\n}",
"hash": "d961d91020f19037204a8c3fd8cb1060",
@@ -4937,19 +4944,27 @@
"file": "SkImage_Reference",
"name": "SkImage::isLazyGenerated"
},
+ "SkImage_isLazyGenerated_a": {
+ "code": "void draw(SkCanvas* canvas) {\n auto drawImage = [=](sk_sp<SkImage> image, const char* label) -> void {\n if (nullptr == image) {\n return;\n }\n SkPaint paint;\n paint.setAntiAlias(true);\n paint.setTextAlign(SkPaint::kCenter_Align);\n canvas->drawImage(image, 0, 0);\n canvas->drawString(label, image->width() / 2, image->height() / 4, paint);\n canvas->drawString(\n image->isLazyGenerated() ? \"is lazily generated\" : \"not lazily generated\",\n image->width() / 2, image->height() * 3 / 4, paint);\n };\n sk_sp<SkImage> bitmapImage(SkImage::MakeFromBitmap(source));\n sk_sp<SkImage> textureImage(SkImage::MakeFromTexture(canvas->getGrContext(), backEndTexture,\n kTopLeft_GrSurfaceOrigin, kOpaque_SkAlphaType, nullptr));\n drawImage(image, \"image\");\n canvas->translate(image->width(), 0);\n drawImage(bitmapImage, \"source\");\n canvas->translate(-image->width(), image->height());\n drawImage(textureImage, \"backEndTexture\");\n}\n",
+ "width": 256,
+ "height": 256,
+ "hash": "070dd0405890b84c07827d93fa01c331",
+ "file": "SkImage_Reference",
+ "name": "SkImage::isLazyGenerated_2"
+},
"SkImage_isTextureBacked": {
- "code": "void draw(SkCanvas* canvas) {\n // incomplete\n}",
+ "code": "void draw(SkCanvas* canvas) {\n auto drawImage = [=](sk_sp<SkImage> image, const char* label) -> void {\n if (nullptr == image) {\n return;\n }\n SkPaint paint;\n paint.setAntiAlias(true);\n paint.setTextAlign(SkPaint::kCenter_Align);\n canvas->drawImage(image, 0, 0);\n canvas->drawString(label, image->width() / 2, image->height() / 4, paint);\n canvas->drawString(image->isTextureBacked() ? \"is GPU texture\" : \"not GPU texture\",\n image->width() / 2, image->height() * 3 / 4, paint);\n };\n sk_sp<SkImage> bitmapImage(SkImage::MakeFromBitmap(source));\n sk_sp<SkImage> textureImage(SkImage::MakeFromTexture(canvas->getGrContext(), backEndTexture,\n kTopLeft_GrSurfaceOrigin, kOpaque_SkAlphaType, nullptr));\n drawImage(image, \"image\");\n canvas->translate(image->width(), 0);\n drawImage(bitmapImage, \"source\");\n canvas->translate(-image->width(), image->height());\n drawImage(textureImage, \"backEndTexture\");\n}",
"width": 256,
"height": 256,
- "hash": "882e8e0103048009a25cfc20400492f7",
+ "hash": "96fd92d399778486a51c5d828ef99322",
"file": "SkImage_Reference",
"name": "SkImage::isTextureBacked"
},
"SkImage_isValid": {
- "code": "void draw(SkCanvas* canvas) {\n // incomplete\n}",
+ "code": "void draw(SkCanvas* canvas) {\n auto drawImage = [=](sk_sp<SkImage> image, const char* label) -> void {\n if (nullptr == image) {\n return;\n }\n SkPaint paint;\n paint.setAntiAlias(true);\n paint.setTextAlign(SkPaint::kCenter_Align);\n canvas->drawImage(image, 0, 0);\n canvas->drawString(label, image->width() / 2, image->height() / 4, paint);\n if (canvas->getGrContext()) {\n canvas->drawString(image->isValid(canvas->getGrContext()) ? \"is valid on GPU\" :\n \"not valid on GPU\", image->width() / 2, image->height() * 5 / 8, paint);\n }\n canvas->drawString(image->isValid(nullptr) ? \"is valid on CPU\" :\n \"not valid on CPU\", image->width() / 2, image->height() * 7 / 8, paint);\n };\n sk_sp<SkImage> bitmapImage(SkImage::MakeFromBitmap(source));\n sk_sp<SkImage> textureImage(SkImage::MakeFromTexture(canvas->getGrContext(), backEndTexture,\n kTopLeft_GrSurfaceOrigin, kOpaque_SkAlphaType, nullptr));\n drawImage(image, \"image\");\n canvas->translate(image->width(), 0);\n drawImage(bitmapImage, \"source\");\n canvas->translate(-image->width(), image->height());\n drawImage(textureImage, \"backEndTexture\");\n}",
"width": 256,
"height": 256,
- "hash": "882e8e0103048009a25cfc20400492f7",
+ "hash": "daf1507ab3a5f7cb0f90058cbc028402",
"file": "SkImage_Reference",
"name": "SkImage::isValid"
},
@@ -5017,14 +5032,6 @@
"file": "SkImage_Reference",
"name": "SkImage::makeWithFilter"
},
- "SkImage_peekPixels": {
- "code": "void draw(SkCanvas* canvas) {\n // incomplete\n}",
- "width": 256,
- "height": 256,
- "hash": "882e8e0103048009a25cfc20400492f7",
- "file": "SkImage_Reference",
- "name": "SkImage::peekPixels"
-},
"SkImage_readPixels": {
"code": "void draw(SkCanvas* canvas) {\n // incomplete\n}",
"width": 256,
diff --git a/tools/bookmaker/bookmaker.h b/tools/bookmaker/bookmaker.h
index 792f7d9249..c83927822a 100644
--- a/tools/bookmaker/bookmaker.h
+++ b/tools/bookmaker/bookmaker.h
@@ -935,7 +935,7 @@ public:
RootDefinition* asRoot() override { return this; }
const RootDefinition* asRoot() const override { return this; }
void clearVisited();
- bool dumpUnVisited(bool skip);
+ bool dumpUnVisited();
const Definition* find(const string& ref, AllowParens ) const;
bool isRoot() const override { return true; }
RootDefinition* rootParent() override { return fRootParent; }
diff --git a/tools/bookmaker/definition.cpp b/tools/bookmaker/definition.cpp
index 77f4446445..82b0a33a81 100644
--- a/tools/bookmaker/definition.cpp
+++ b/tools/bookmaker/definition.cpp
@@ -1215,18 +1215,10 @@ void RootDefinition::clearVisited() {
}
}
-bool RootDefinition::dumpUnVisited(bool skip) {
- bool allStructElementsFound = true;
+bool RootDefinition::dumpUnVisited() {
+ bool success = true;
for (auto& leaf : fLeaves) {
if (!leaf.second.fVisited) {
- // TODO: parse embedded struct in includeParser phase, then remove this condition
- if (skip) {
- const Definition& def = leaf.second;
- if (def.fChildren.size() > 0 &&
- MarkType::kDeprecated == def.fChildren[0]->fMarkType) {
- continue;
- }
- }
// FIXME: bugs requiring long tail fixes, suppressed here:
// SkBitmap::validate() is wrapped in SkDEBUGCODE in .h and not parsed
if ("SkBitmap::validate()" == leaf.first) {
@@ -1238,12 +1230,13 @@ bool RootDefinition::dumpUnVisited(bool skip) {
}
// FIXME: end of long tail bugs
SkDebugf("defined in bmh but missing in include: %s\n", leaf.first.c_str());
+ success = false;
}
}
for (auto& branch : fBranches) {
- allStructElementsFound &= branch.second->dumpUnVisited(skip);
+ success &= branch.second->dumpUnVisited();
}
- return allStructElementsFound;
+ return success;
}
const Definition* RootDefinition::find(const string& ref, AllowParens allowParens) const {
diff --git a/tools/bookmaker/includeParser.cpp b/tools/bookmaker/includeParser.cpp
index fa5ad325fd..26281b6184 100644
--- a/tools/bookmaker/includeParser.cpp
+++ b/tools/bookmaker/includeParser.cpp
@@ -458,8 +458,7 @@ bool IncludeParser::crossCheck(BmhParser& bmhParser) {
continue;
}
RootDefinition* root = &finder->second;
- if (!root->dumpUnVisited(bmhParser.fSkip)) {
- SkDebugf("some struct elements not found; struct finding in includeParser is missing\n");
+ if (!root->dumpUnVisited()) {
fFailed = true;
}
if (crossChecks) {