skia2/include/private
Mike Klein c3ad6a1e59 make skvx::if_then_else work at byte granularity
The default implementation of if_then_else is logically bitwise,

   (cond & true_val) | (~cond & false_val)

The existing skvx specializations work only for 32-bit lanes, but we can
easily make them work for any type where the whole vector is the right
size by reducing the granularity down to byte level.

Existing code using 32-bit values and 0xffff'ffff or 0x0000'0000 masks
will continue to work the same.  But this now lets us use, e.g. 16-bit
values with 0xffff and 0x0000 masks, or even things like 32-bit values
and a mask like 0xff00ff00, selecting byte by byte.

We can't go any lower without falling back on the generic bitwise
implementation, so we'll have to settle for not getting to use a mask
like 0x0f0f0f0f.

Change-Id: I8518cb3cafc7f6e1480b4ae8af50daad2d28c5df
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/317170
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-09-15 21:29:41 +00:00
..
GrContext_Base.h Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
GrD3DTypesPriv.h More fixes to get D3D tests running. 2020-04-10 15:19:18 +00:00
GrGLTypesPriv.h Remove use of texture swizzle in GL backend. 2020-08-28 15:22:29 +00:00
GrImageContext.h Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
GrResourceKey.h Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
GrSharedEnums.h Remove HairlineAA from the clip-edge types. 2020-06-17 17:43:35 +00:00
GrSingleOwner.h Pass file and line number when asserting single owner 2020-06-01 17:10:40 +00:00
GrTypesPriv.h Add input attachment support to program building. 2020-09-14 19:59:47 +00:00
GrVkTypesPriv.h Add GrContext API to allow updating GrBackendSurfaceMutableState. 2020-06-10 13:15:55 +00:00
SkBitmaskEnum.h Fix modifier key handling in OS X to allow command-keys to work. 2020-07-01 16:07:03 +00:00
SkChecksum.h Revert "Revert "gms for SkParagraph"" 2020-06-02 19:26:04 +00:00
SkColorData.h Reland "Simplify GrRTC::clean APIs" 2020-05-27 14:26:16 +00:00
SkDeque.h Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
SkEncodedInfo.h Enable ClangTidy check readability-redundant-smartptr-get. 2020-08-16 15:56:48 +00:00
SkFixed.h Remove gendered language 2020-07-28 15:02:41 +00:00
SkFloatBits.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkFloatingPoint.h Move GrWangsFormula::nextlog2 to sk_float_nextlog2 2020-08-19 23:45:12 +00:00
SkHalf.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkIDChangeListener.h Revert "Use spin lock in SkIDChangeListener" 2020-03-04 03:40:11 +00:00
SkImageInfoPriv.h Wsign-conversion for public headers 2020-06-02 12:34:54 +00:00
SkMacros.h Remove SK_REQUIRE_LOCAL_VAR macro. 2020-07-31 02:32:01 +00:00
SkMalloc.h [fuzz] Standardize, document, and backport fuzzing defines. 2020-09-14 13:36:10 +00:00
SkMutex.h Remove SK_REQUIRE_LOCAL_VAR macro. 2020-07-31 02:32:01 +00:00
SkNoncopyable.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkNx_neon.h Remove SkTMin and SkTMax 2020-02-07 18:40:09 +00:00
SkNx_sse.h update SkNx allTrue/anyTrue 2020-09-02 17:11:45 +00:00
SkNx.h Remove SkTMin and SkTMax 2020-02-07 18:40:09 +00:00
SkOnce.h experimental support for go/fibers 2019-10-28 16:48:55 +00:00
SkOpts_spi.h Enable ClangTidy check llvm-namespace-comment. 2020-08-06 19:07:52 +00:00
SkPathRef.h Move convexity enum out of public 2020-08-30 13:04:22 +00:00
SkSafe32.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkSafe_math.h Guard against buggy ucrt\math.h. 2016-11-28 15:40:23 +00:00
SkSemaphore.h Reland "Cache hb_face." 2020-05-19 17:42:14 +00:00
SkShadowFlags.h Remove deprecated drawShadow interfaces 2018-02-28 19:07:29 +00:00
SkSLSampleUsage.h Enable ClangTidy check llvm-namespace-comment. 2020-08-06 19:07:52 +00:00
SkSpinlock.h Add thread safety annotations. 2019-05-10 13:40:38 +00:00
SkTArray.h Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
SkTDArray.h Add arc methods to path builder 2020-08-03 15:50:01 +00:00
SkTemplates.h constify GrAtlasTextOp::Geometry 2020-07-21 16:56:27 +00:00
SkTFitsIn.h Add support for MSVC run-time checks (and control flow guard) 2019-02-04 20:55:24 +00:00
SkTHash.h remove unused mutate() apis 2020-03-16 20:44:36 +00:00
SkThreadAnnotations.h Add a condition to prevent a thread annotation meant for blaze from showing up to emscripten 2020-02-28 17:57:20 +00:00
SkThreadID.h Mark SkGetThreadID SK_SPI in debug. 2020-07-07 21:50:55 +00:00
SkTLogic.h update skstd 2020-04-30 15:05:43 +00:00
SkTo.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkVx.h make skvx::if_then_else work at byte granularity 2020-09-15 21:29:41 +00:00
SkWeakRefCnt.h Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00