diff options
-rw-r--r-- | docs/SkImage_Reference.bmh | 149 | ||||
-rw-r--r-- | docs/usingBookmaker.bmh | 24 | ||||
-rw-r--r-- | site/user/api/SkImage_Reference.md | 65 | ||||
-rw-r--r-- | site/user/api/catalog.htm | 31 | ||||
-rw-r--r-- | tools/bookmaker/bookmaker.h | 2 | ||||
-rw-r--r-- | tools/bookmaker/definition.cpp | 17 | ||||
-rw-r--r-- | tools/bookmaker/includeParser.cpp | 3 |
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) { |