/* * Copyright 2012 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #include "GrGLSLCaps.h" //////////////////////////////////////////////////////////////////////////////////////////// GrGLSLCaps::GrGLSLCaps(const GrContextOptions& options) { fGLSLGeneration = k330_GrGLSLGeneration; fDropsTileOnZeroDivide = false; fFBFetchSupport = false; fFBFetchNeedsCustomOutput = false; fBindlessTextureSupport = false; fFBFetchColorName = nullptr; fFBFetchExtensionString = nullptr; fAdvBlendEqInteraction = kNotSupported_AdvBlendEqInteraction; } SkString GrGLSLCaps::dump() const { SkString r = INHERITED::dump(); static const char* kAdvBlendEqInteractionStr[] = { "Not Supported", "Automatic", "General Enable", "Specific Enables", }; GR_STATIC_ASSERT(0 == kNotSupported_AdvBlendEqInteraction); GR_STATIC_ASSERT(1 == kAutomatic_AdvBlendEqInteraction); GR_STATIC_ASSERT(2 == kGeneralEnable_AdvBlendEqInteraction); GR_STATIC_ASSERT(3 == kSpecificEnables_AdvBlendEqInteraction); GR_STATIC_ASSERT(SK_ARRAY_COUNT(kAdvBlendEqInteractionStr) == kLast_AdvBlendEqInteraction + 1); r.appendf("--- GLSL-Specific ---\n"); r.appendf("FB Fetch Support: %s\n", (fFBFetchSupport ? "YES" : "NO")); r.appendf("Drops tile on zero divide: %s\n", (fDropsTileOnZeroDivide ? "YES" : "NO")); r.appendf("Bindless texture support: %s\n", (fBindlessTextureSupport ? "YES" : "NO")); r.appendf("Advanced blend equation interaction: %s\n", kAdvBlendEqInteractionStr[fAdvBlendEqInteraction]); return r; }