skia2/include/core
mtklein 0b544ae222 Add SkRacy
SkRacy<T> is a zero-overhead wrapper for a T, except it also
silences race warnings when TSAN is running.

Here we apply in several classes.  In SkMatrix and SkPathRef,
we use it to opportunistically cache some idempotent work.

In SkPixelRef, we wrap the genIDs.  We think the worst that
can happen here is we'll increment the global next-genID a
few times instead of once when we go to get another ID.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/d5e3e6ae1b3434ad1158f441902ff65f1eeaa3a7

CQ_EXTRA_TRYBOTS=tryserver.skia:Canary-Chrome-Ubuntu13.10-Ninja-x86_64-ToT-Trybot,Canary-Chrome-Win7-Ninja-x86-SharedLib_ToT-Trybot,Test-Ubuntu13.10-GCE-NoGPU-x86_64-Release-TSAN-Trybot
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/371363004
2014-07-08 19:37:47 -07:00
..
SkAdvancedTypefaceMetrics.h [PDF] Fix font embedding restrictions. 2014-06-19 11:05:39 -07:00
SkAnnotation.h Factory methods for heap-allocated SkAnnotation objects. 2014-02-27 11:47:36 +00:00
SkBBHFactory.h SK_API-export SkBBHFactory & friends. 2014-04-22 13:33:16 +00:00
SkBitmap.h remove unneeded flags (have been purged from chrome and android) 2014-07-07 14:45:11 -07:00
SkBitmapDevice.h change gpudevice and pdfdevice to inherit from basedevice 2014-06-27 11:34:19 -07:00
SkBlitRow.h replace config() with colorType() 2014-05-29 15:57:47 +00:00
SkBlurTypes.h move common blur types into central header 2014-04-28 16:25:35 +00:00
SkCanvas.h Temporarily resurface matrix/clip save flags enum values. 2014-07-01 11:55:41 -07:00
SkChunkAlloc.h combine glyph and image bulk alloc, and adjust initial alloc size, to reduce total waste from 50% to 30% 2013-06-19 19:25:36 +00:00
SkClipStack.h Add dump() to SkClipStack to help with debugging. 2014-06-09 07:59:06 -07:00
SkColor.h SkAlpha constant defs 2013-07-19 17:43:27 +00:00
SkColorFilter.h Make GrDrawState and GrPaint take GrEffect* instead of GrEffectRef*. 2014-07-08 06:52:35 -07:00
SkColorPriv.h By default, Chromium optimizes for size when compiling on Android. 2014-05-14 13:34:42 +00:00
SkColorShader.h Goodbye GrEffectRef. 2014-07-08 09:56:11 -07:00
SkColorTable.h Refactor read and write buffers. 2014-01-30 18:58:24 +00:00
SkComposeShader.h Add functions for inspecting SkShader. 2014-05-13 18:14:45 +00:00
SkData.h SkLazyPtr, mk. 2 2014-05-29 20:13:22 +00:00
SkDataTable.h Remove SkDataTable from SkFlattenable hierarchy. 2013-10-15 20:39:57 +00:00
SkDeque.h This CL addresses "SkCanvas::save flags are not respected by GPU backend" (https://code.google.com/p/skia/issues/detail?id=1503). 2013-08-16 00:53:34 +00:00
SkDevice.h remove SK_SUPPORT_LEGACY_DEVICE_VIRTUAL_ISOPAQUE 2014-07-07 13:51:48 -07:00
SkDeviceProperties.h Clean up the default gamma settings. 2014-04-10 22:26:29 +00:00
SkDither.h
SkDocument.h remove SkFloatToScalar macro 2013-11-25 19:44:07 +00:00
SkDraw.h remove SkBounder -- unused and unloved 2014-06-03 10:54:00 -07:00
SkDrawFilter.h Add GPU support for roundrects 2013-04-25 15:27:00 +00:00
SkDrawLooper.h add asAShadowBlur for android to drawlooper 2014-04-29 15:20:16 +00:00
SkDrawPictureCallback.h Tick off some TODOs: 2014-06-24 11:29:06 -04:00
SkDynamicAnnotations.h Add SkRacy 2014-07-08 19:37:47 -07:00
SkEndian.h fix size_t/int warnings 2014-04-23 19:19:44 +00:00
SkError.h Sanitizing source files in Housekeeper-Nightly 2013-09-05 07:01:19 +00:00
SkFixed.h SK_CPU_ARM --> SK_CPU_ARM32 2014-06-03 12:07:31 -07:00
SkFlattenable.h Remove unused (by clients) SkUnitMapper 2014-05-22 12:27:41 +00:00
SkFlattenableBuffers.h Refactor read and write buffers. 2014-01-30 18:58:24 +00:00
SkFlattenableSerialization.h Removed unnecessary define 2013-11-08 15:24:12 +00:00
SkFloatBits.h remove SK_SCALAR_IS_[FLOAT,FIXED] and assume floats 2013-12-17 16:44:46 +00:00
SkFloatingPoint.h Add cast for warning as error on Windows from r14201. 2014-04-15 16:08:29 +00:00
SkFont.h Test font created from paint 2014-05-30 16:46:10 +00:00
SkFontHost.h Remove SK_FONTHOST_USES_FONTMGR. 2013-11-11 15:53:29 +00:00
SkFontLCDConfig.h Sanitizing source files in Skia_Periodic_House_Keeping 2013-03-13 07:01:04 +00:00
SkGraphics.h Sanitizing source files in Housekeeper-Nightly 2013-09-27 07:01:29 +00:00
SkImage.h Revert of Revert "Serialization of SkPictureImageFilter" (https://codereview.chromium.org/153583007/) 2014-02-07 12:20:04 +00:00
SkImageDecoder.h add setPreserveSrcDepth to replace PrefTable API for android 2014-07-08 11:15:59 -07:00
SkImageEncoder.h Initial KTX encoder 2014-06-06 06:16:28 -07:00
SkImageFilter.h Clean up SkImageFilter constructors. 2014-07-08 09:16:22 -07:00
SkImageGenerator.h legacy refEncodedData() returns data, not bool 2014-05-29 16:05:47 +00:00
SkImageInfo.h Adjust the alpha type for pixelRefs. 2014-07-01 07:08:20 -07:00
SkInstCnt.h Clean up SkOnce: 2014-06-02 11:26:59 -07:00
SkMallocPixelRef.h change pixelref to not inherit from SkFlattenable 2014-07-07 14:32:06 -07:00
SkMask.h Guard against most unintentionally ephemeral SkAutoFoo instantiations. 2013-11-18 16:03:59 +00:00
SkMaskFilter.h Make GrDrawState and GrPaint take GrEffect* instead of GrEffectRef*. 2014-07-08 06:52:35 -07:00
SkMath.h SK_CPU_ARM --> SK_CPU_ARM32 2014-06-03 12:07:31 -07:00
SkMatrix.h Add SkRacy 2014-07-08 19:37:47 -07:00
SkMetaData.h
SkOnce.h Clean up SkOnce: 2014-06-02 11:26:59 -07:00
SkOSFile.h Fix bug in setting directories for tests. 2013-06-06 14:59:56 +00:00
SkPackBits.h
SkPaint.h Implement text rendering with NVPR 2014-06-24 00:12:27 -07:00
SkPaintOptionsAndroid.h Refactor read and write buffers. 2014-01-30 18:58:24 +00:00
SkPath.h add path dump test 2014-06-24 08:30:18 -07:00
SkPathEffect.h Remove SK_SUPPORT_LEGACY_PUBLICEFFECTCONSTRUCTORS flag. 2014-05-15 15:40:41 +00:00
SkPathMeasure.h add SK_API 2013-05-08 13:25:02 +00:00
SkPathRef.h Add SkRacy 2014-07-08 19:37:47 -07:00
SkPicture.h Back off from SkPicture API hardening a bit 2014-07-08 12:58:20 -04:00
SkPictureRecorder.h Use smart pointers to make SkPictureRecorder lifetimes less manual. 2014-06-23 13:29:10 -04:00
SkPixelRef.h Add SkRacy 2014-07-08 19:37:47 -07:00
SkPoint.h Move GrIPoint16 to SkIPoint16 (and remove GrPoint.h) 2014-06-02 10:20:15 -07:00
SkPostConfig.h CrashHandler for Windows. 2014-06-19 07:41:59 -07:00
SkPreConfig.h SK_CPU_ARM --> SK_CPU_ARM32 2014-06-03 12:07:31 -07:00
SkRasterizer.h Builder class for SkLayerRasterizer. 2014-02-26 13:27:37 +00:00
SkReadBuffer.h change pixelref to not inherit from SkFlattenable 2014-07-07 14:32:06 -07:00
SkReader32.h Fixed issue found by clusterfuzz 2014-04-29 15:35:23 +00:00
SkRect.h Add dump() to SkClipStack to help with debugging. 2014-06-09 07:59:06 -07:00
SkRefCnt.h Remove ability for Release code to call getRefCnt() or getWeakRefCnt(). 2014-07-08 06:48:17 -07:00
SkRegion.h Add dump() to SkClipStack to help with debugging. 2014-06-09 07:59:06 -07:00
SkRRect.h Add dump() to SkClipStack to help with debugging. 2014-06-09 07:59:06 -07:00
SkScalar.h add rounding-using-doubles methods on SkScalar and SkRect 2014-05-05 16:04:42 +00:00
SkShader.h Goodbye GrEffectRef. 2014-07-08 09:56:11 -07:00
SkSize.h deprecate SkScalarRound (and its ilk), use SkScalarRound[ToInt,ToScalar]. #define SK_SUPPORT_DEPRECATED_SCALARROUND for legacy clients 2013-12-17 19:22:07 +00:00
SkStream.h Add size_t bytesWritten() const to SkWStream. 2014-03-06 17:16:26 +00:00
SkString.h remove SK_SCALAR_IS_[FLOAT,FIXED] and assume floats 2013-12-17 16:44:46 +00:00
SkStrokeRec.h Use vertex attributes for dash effect in gpu 2014-06-12 10:24:21 -07:00
SkSurface.h Begin atlasing 2014-06-30 08:26:50 -07:00
SkTArray.h Have SkTArray state that it default-initializes. 2014-03-24 15:55:01 +00:00
SkTDArray.h SkWriter32: throw in the SkTDArray towel. 2014-02-13 18:35:54 +00:00
SkTDict.h move some headers out of public 2014-06-17 09:04:45 -07:00
SkTDStack.h
SkTemplates.h Don't set SK_MALLOC_TEMP in SkAutoTMalloc. 2014-06-26 11:04:28 -04:00
SkThread.h Add assertHeld() to SkMutex. 2014-06-09 14:18:03 -07:00
SkTime.h Revert of Add nanosecond timer. (https://codereview.chromium.org/250243002/) 2014-04-24 20:17:24 +00:00
SkTInternalLList.h SkNonCopyable should be used with private inheritance. 2014-04-07 19:34:38 +00:00
SkTLazy.h Clean up Skia for Clang's -Wtautological-undefined-compare 2014-06-07 19:15:14 -04:00
SkTRegistry.h Rewrite SkTRegistry to take any trivially-copyable type. 2013-09-04 17:20:18 +00:00
SkTSearch.h One SkTSearch to rule them all. Allow key to be of different type than the array. 2013-05-17 19:05:03 +00:00
SkTypeface.h Port most uses of SkOnce to SkLazyPtr. 2014-06-02 08:44:27 -07:00
SkTypes.h Add SkASSERTF. 2014-06-18 07:54:47 -07:00
SkUnPreMultiply.h Factor out UnPreMultiplyPreservingByteOrder 2014-01-15 22:24:58 +00:00
SkUtils.h SSE2 implementation of memcpy32 2014-05-21 12:43:07 +00:00
SkWeakRefCnt.h Remove ability for Release code to call getRefCnt() or getWeakRefCnt(). 2014-07-08 06:48:17 -07:00
SkWriteBuffer.h read/write function_ptrs as just void*, and not as 'array of bytes' 2014-04-16 16:24:08 +00:00
SkWriter32.h Add SK_API to SkWriter32 2014-06-26 08:01:14 -07:00
SkXfermode.h Make GrDrawState and GrPaint take GrEffect* instead of GrEffectRef*. 2014-07-08 06:52:35 -07:00