skia2/tools
mtklein d9dd428211 Modernize and trim down SkOnce.
The API and implementation are very much simplified.
You may not want to bother reading the diff.

As is our trend, SkOnce now uses <atomic> directly.

Member initialization means we don't need SK_DECLARE_STATIC_ONCE.
SkSpinlock already works this same way.

All uses of the old API taking an external bool* and Lock* were pessimal,
so I have not carried this sort of API forward.  It's simpler, faster,
and more space-efficient to always use this single SkOnce class interface.

SkOnce weighs 2 bytes: a done bool and an SkSpinlock, also a bool internally.
This API refactoring opens up the opportunity to fuse those into a single
three-state byte if we'd like.

No public API changes.
TBR=reed@google.com

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1894893002

Review URL: https://codereview.chromium.org/1894893002
2016-04-18 08:09:11 -07:00
..
android Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
copyright Script to automatically update copyright notices in C/C++ source code. 2011-07-28 14:29:58 +00:00
debugger Fix skiaserve crash when displaying batch bounds 2016-04-15 11:00:51 -07:00
flags Vulkan config in dm 2016-04-11 14:21:33 -07:00
gpu Modernize and trim down SkOnce. 2016-04-18 08:09:11 -07:00
kilobench Rename enums in GrContextFactory to remove "GL" 2016-04-05 11:06:27 -07:00
lua Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
skiaserve Rename enums in GrContextFactory to remove "GL" 2016-04-05 11:06:27 -07:00
skp Add catapult to RecreateSKPs bot's PYTHONPATH 2016-02-27 10:04:57 -08:00
timer SkTime::GetNSecs() 2015-10-23 07:02:06 -07:00
VisualBench rename sk_gpu_test::GLContext to sk_gpu_test::GLTestContext 2016-03-31 10:59:06 -07:00
vulkan Vulkan config in dm 2016-04-11 14:21:33 -07:00
__init__.py Add bench_pictures config 2012-12-12 20:13:26 +00:00
add_codereview_message.py Whitespace fixes for Python tools 2014-06-25 08:40:58 -07:00
AndroidSkDebugToStdOut.cpp Change how SkDebugf is sent to stdout on Android. 2014-12-10 10:23:06 -08:00
BigPathBench.inc Factor out VisualBench timing code into a helper class 2015-10-05 07:23:30 -07:00
build_command_buffer.py Fixes for CommandBuffer bot 2016-04-11 10:16:01 -07:00
build_shaderc.py Make build_shaderc.py blow away output dir and allow build_type arg to contain either Debug or Release 2016-04-13 08:02:43 -07:00
BUILD_simulator.py Fix Google3 fonts. Use fontconfig rather than custom_directory_factory. Add Google3 font caching. 2015-12-01 11:12:05 -08:00
buildbot_spec.json GYP_DEFINES and DM flags for Vulkan bot 2016-04-12 08:13:57 -07:00
buildbot_spec.py Do not do compile steps for Coverage 2016-04-18 04:14:17 -07:00
builder_name_schema.json Add builder_spec.py 2015-07-29 07:38:49 -07:00
builder_name_schema.py Add builder_spec.py 2015-07-29 07:38:49 -07:00
chrome_fuzz.cpp Revert of Delete SkFlattenable::Type (patchset #2 id:20001 of https://codereview.chromium.org/1834303003/ ) 2016-04-04 14:57:19 -07:00
compare_codereview.py Further tweak compare_codereview.py. 2014-03-25 18:02:17 +00:00
coverage.sh increase coverage of SkPath.cpp, remove unused code 2013-11-14 16:53:22 +00:00
CrashHandler.cpp Don't convert DWORD to int. 2016-03-19 15:51:05 -07:00
CrashHandler.h rewrite ambiguous comment 2015-02-10 07:47:31 -08:00
create_test_font.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
dm_flags.json Fix CommandBuffer bot's DM config 2016-04-13 06:00:42 -07:00
dm_flags.py Fix CommandBuffer bot's DM config 2016-04-13 06:00:42 -07:00
doxygen_footer.txt Fix update-doxygen, which fails when skia-autogen is reset 2012-09-26 16:09:43 +00:00
dump_record.cpp return pictures as sk_sp 2016-03-18 07:25:55 -07:00
DumpRecord.cpp SkRecord: infer return type for visit() and mutate(). 2016-03-22 11:46:53 -07:00
DumpRecord.h Factor out DumpRecord method from dump_record tool for later use 2014-05-15 16:10:37 +00:00
embed_resources.py Add option to embed font data into executable. 2015-03-30 12:53:48 -07:00
find_run_binary.py Create a common utility for finding and running binaries in out/ 2014-02-07 18:41:49 +00:00
fix_pythonpath.py Use new common tools in Python scripts 2014-06-25 11:13:27 -04:00
gcov_shim add a way to get code coverage 2013-09-13 19:32:43 +00:00
gen_bench_expectations_from_codereview.py gen_bench_expectations: use subprocess instead of shell_utils due to buildbot-side name collision 2014-07-02 12:52:34 -07:00
generate_fir_coeff.py Fix metrics on Windows. 2013-07-27 20:37:56 +00:00
generate_includes_cpp.py fix for the msvs gyp generator that produces nonposix path separators 2014-11-25 08:25:29 -08:00
generate_vk_interface.sh Add vulkan files into skia repo. This is an incomplete backend with only partial functionality at this time. 2016-02-22 09:56:40 -05:00
get_images_from_skps.cpp return pictures as sk_sp 2016-03-18 07:25:55 -07:00
git-skia-verify Land http://codereview.appspot.com/6117046/ for Guanqun.Lu@gmail.com 2012-04-24 15:19:23 +00:00
git-sync-deps tools/git-sync-deps: fix error in git syntax for changing origin 2016-01-28 09:12:52 -08:00
gpuveto.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
imgblur.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
imgslice.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
install_dependencies.sh doc: add quickstart to linux and macos 2015-04-28 13:06:54 -07:00
iOSShell.cpp Make SkGraphics::Term a no-op, stop calling it. 2015-09-09 07:35:42 -07:00
iOSShell.h C++11 override should now be supported by all of {bots,Chrome,Android,Mozilla} 2015-03-25 18:17:32 -07:00
jsondiff.py tools: Remove reference to svndiff. 2014-10-24 17:21:41 -02:00
llvm_coverage_build llvm_coverage_build: Use CC and CXX variables by default 2015-07-17 07:31:07 -07:00
llvm_coverage_run.py Split llvm_coverage_run into two scripts 2015-07-20 09:43:36 -07:00
llvm_coverage.sh Add scripts for running LLVM coverage 2015-07-06 07:43:58 -07:00
lsan.supp Suppress mystery leak. 2014-09-05 10:36:40 -07:00
merge_static_libs.py Build Skia as a static library 2012-10-10 19:45:51 +00:00
milestone.py SkPDF: milestone in metadata, also SkMilestone.h 2016-03-29 09:09:29 -07:00
mirror-dev.sh Land Ben's 32-bit symlink script. 2015-02-03 10:43:28 -05:00
misc_utils.py Whitespace fixes for Python tools 2014-06-25 08:40:58 -07:00
nanobench_flags.json Add exclusion for keymobi_shop_mobileweb_ebay_com.skp on N5 2016-04-06 08:35:15 -07:00
nanobench_flags.py Add exclusion for keymobi_shop_mobileweb_ebay_com.skp on N5 2016-04-06 08:35:15 -07:00
OverwriteLine.h ios fixes 2014-07-11 12:14:51 -07:00
parse_llvm_coverage.py Walk through files in parse_llvm_coverage.py instead of using 'git ls-files' 2016-04-18 04:18:56 -07:00
pathops_sorter.htm More conic-specific tests revealed a few conic-specific bugs. Because javascript / canvas make visualizing conics tricky, new native tools are required. 2015-10-30 12:03:06 -07:00
pathops_visualizer.htm More conic-specific tests revealed a few conic-specific bugs. Because javascript / canvas make visualizing conics tricky, new native tools are required. 2015-10-30 12:03:06 -07:00
picture_utils.cpp Style Change: NULL->nullptr 2015-08-27 07:41:16 -07:00
picture_utils.h Style Change: NULL->nullptr 2015-08-27 07:41:16 -07:00
pinspect.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
ProcStats.cpp Looks like rssPages * pageSize is overflowing on 32-bit Linux... 2015-04-30 07:35:28 -07:00
ProcStats.h DM+nanobench: print both current and max RSS. 2015-04-30 07:11:22 -07:00
random_parse_path.cpp Add unit test to feed valid SVG sequences to make sure that 2016-02-09 10:30:22 -08:00
random_parse_path.h Add unit test to feed valid SVG sequences to make sure that 2016-02-09 10:30:22 -08:00
reformat-json.py add reformat-json.py script 2013-07-19 15:45:22 +00:00
Resources.cpp update callsites for Make image factories 2016-03-17 10:51:11 -07:00
Resources.h update callsites for Make image factories 2016-03-17 10:51:11 -07:00
retrieve_from_googlesource.py Fix submit_try 2014-06-05 07:32:15 -07:00
sanitize_source_files.py Ignore the .git directory in sanitize_source_files, remove .git directory... 2013-09-11 13:01:27 +00:00
sk_tool_utils_flags.h Add standard fonts to all GMs. 2014-07-31 08:58:44 -04:00
sk_tool_utils_font.cpp Remove SK_VERY_LEGACY_CREATE_TYPEFACE. 2016-04-13 05:23:35 -07:00
sk_tool_utils.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
sk_tool_utils.h Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
skdiff_html.cpp fix warnings 2013-01-07 22:26:05 +00:00
skdiff_html.h Add newline at end of tools/skdiff_html.h to happify the housekeeping bot 2012-12-05 20:30:00 +00:00
skdiff_image.cpp Remove uses of SkImageDecoder from skdiff 2016-03-17 07:17:54 -07:00
skdiff_main.cpp Create output directory in skdiff 2016-04-05 11:37:49 -07:00
skdiff_utils.cpp Remove uses of SkImageDecoder from skdiff 2016-03-17 07:17:54 -07:00
skdiff_utils.h Remove uses of SkImageDecoder from skdiff 2016-03-17 07:17:54 -07:00
skdiff.cpp * Extended skdiff to report alpha channel differences. 2013-01-03 19:23:22 +00:00
skdiff.h Move SkTDArray to private. 2016-02-18 08:53:33 -08:00
skhello.cpp switch surface to sk_sp 2016-03-23 18:59:25 -07:00
skpinfo.cpp Make skpinfo able to inspect SK_PICT_TYPEFACE_TAG blocks 2016-02-25 10:58:49 -08:00
skpmaker.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
Stats.h Consolidate SK_CRASH and sk_throw into SK_ABORT 2016-01-29 08:51:04 -08:00
test_all.py skimage, die die die 2014-12-15 12:47:52 -08:00
test_font_data_chars.cpp Add standard fonts to all GMs. 2014-07-31 08:58:44 -04:00
test_font_data.cpp Style Change: NULL->nullptr 2015-08-27 07:41:16 -07:00
test_font_index.cpp Style Change: NULL->nullptr 2015-08-27 07:41:16 -07:00
test_font_monospace.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
test_font_sans_serif.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
test_font_serif.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
test_gpuveto.py Remove dashing from gpu veto 2014-06-18 07:34:39 -07:00
test_pdfs.py Add an SKP to PDF rendered. test_pdfs.py will be hooked up in buildbot testing later. 2012-10-10 15:20:34 +00:00
ThermalManager.cpp enable ThermalManager on Android 2016-02-11 11:42:19 -08:00
ThermalManager.h Move SkTArray to include/private. 2016-02-17 13:13:44 -08:00
tsan.supp SkPDF: remove suppression 2015-10-02 12:15:55 -07:00
ubsan.supp Add tools/ubsan.supp. 2015-08-05 10:12:33 -04:00
UrlDataManager.cpp Create image cache for use by json canvas 2016-02-08 07:08:21 -08:00
UrlDataManager.h Create image cache for use by json canvas 2016-02-08 07:08:21 -08:00
valgrind.supp Suppress jpeg valgrind errors 2016-01-27 12:05:27 -08:00
whitelist_typefaces.cpp Suppress embedding fonts when the skp's fonts match the OS fonts. 2015-08-31 09:22:38 -07:00
win_dbghelp.cpp Style Change: NULL->nullptr 2015-08-27 07:41:16 -07:00
win_dbghelp.h Collect minidump and print callstack if an app chrashes. 2013-03-08 18:00:16 +00:00
win_lcid.cpp Style Change: NULL->nullptr 2015-08-27 07:41:16 -07:00
xsan_build MSAN: build libc++ with MSAN, link to it. 2016-02-16 14:03:15 -08:00
xsan.blacklist Remove size check from SkCodec 2016-01-13 10:54:20 -08:00