/* * Copyright 2014 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef GrDefaultGeoProcFactory_DEFINED #define GrDefaultGeoProcFactory_DEFINED #include "include/private/SkColorData.h" #include "include/private/base/SkAssert.h" #include <cstdint> class GrGeometryProcessor; class SkArenaAlloc; class SkMatrix; /* * A factory for creating default Geometry Processors which simply multiply position by the uniform * view matrix and wire through color, coverage, UV coords if requested. */ namespace GrDefaultGeoProcFactory { struct Color { … }; struct Coverage { … }; struct LocalCoords { … }; GrGeometryProcessor* Make(SkArenaAlloc*, const Color&, const Coverage&, const LocalCoords&, const SkMatrix& viewMatrix); /* * Use this factory to create a GrGeometryProcessor that expects a device space vertex position * attribute. The view matrix must still be provided to compute correctly transformed * coordinates for GrFragmentProcessors. It may fail if the view matrix is not invertible. */ GrGeometryProcessor* MakeForDeviceSpace(SkArenaAlloc*, const Color&, const Coverage&, const LocalCoords&, const SkMatrix& viewMatrix); } // namespace GrDefaultGeoProcFactory #endif