/* * Copyright 2018 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #include "GrDriverBugWorkarounds.h" #include "SkTypes.h" GrDriverBugWorkarounds::GrDriverBugWorkarounds() = default; GrDriverBugWorkarounds::GrDriverBugWorkarounds( const std::vector<int>& enabled_driver_bug_workarounds) { for (auto id : enabled_driver_bug_workarounds) { switch (id) { #define GPU_OP(type, name) \ case GrDriverBugWorkaroundType::type: \ name = true; \ break; GPU_DRIVER_BUG_WORKAROUNDS(GPU_OP) #undef GPU_OP default: SK_ABORT("Not implemented"); break; } } } void GrDriverBugWorkarounds::applyOverrides( const GrDriverBugWorkarounds& workarounds) { #define GPU_OP(type, name) \ name |= workarounds.name; GPU_DRIVER_BUG_WORKAROUNDS(GPU_OP) #undef GPU_OP } GrDriverBugWorkarounds::~GrDriverBugWorkarounds() = default;