Add GrTFlagsMask<> wrapper for C++11 bitfield enums
authorcsmartdalton <csmartdalton@google.com>
Mon, 20 Feb 2017 06:51:45 +0000 (23:51 -0700)
committerSkia Commit-Bot <skia-commit-bot@chromium.org>
Tue, 21 Feb 2017 19:34:59 +0000 (19:34 +0000)
commitad2a2becb64fff269730d8b9c15f1ba6da1ccdd7
tree5c7c2df06dded8f1bbdd3327c06ed8f56f64ba44
parenta9d0d9e71adee83c26c239598daaefe063d17d26
Add GrTFlagsMask<> wrapper for C++11 bitfield enums

Previously, operator& for enum class bitfields was reserved only to
return a bool. e.g:

  if (flags & Flags::kFlag)

This change adds a new template class GrTFlagsMask<> that gets
instantiated by operator~ and allows us to write expressions like:

  flags &= ~Flags::kFlag
  (flags & ~Flags::kFlag1) | Flags::kFlag2

BUG=skia:

Change-Id: I21e5eb9304135e82cdda459e8a833a3489f6beaf
Reviewed-on: https://skia-review.googlesource.com/8563
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
include/gpu/GrTypes.h