1 /*
2  * Copyright 2019 Google LLC
3  *
4  * Use of this source code is governed by a BSD-style license that can be
5  * found in the LICENSE file.
6  */
7 
8 #ifndef GrTextureResolveManager_DEFINED
9 #define GrTextureResolveManager_DEFINED
10 
11 #include "include/core/SkRefCnt.h"
12 #include "src/gpu/GrDrawingManager.h"
13 
14 class GrCaps;
15 class GrDrawingManager;
16 class GrRenderTask;
17 
18 /*
19  * This class is a shallow view of the drawing manager. It is passed to render tasks when setting up
20  * the dependency DAG, and gives them limited access to functionality for making new tasks that
21  * regenerate mipmaps and/or resolve MSAA.
22  */
23 class GrTextureResolveManager {
24 public:
GrTextureResolveManager(GrDrawingManager * drawingManager)25     explicit GrTextureResolveManager(GrDrawingManager* drawingManager)
26             : fDrawingManager(drawingManager) {}
27 
newTextureResolveRenderTask(const GrCaps & caps)28     GrTextureResolveRenderTask* newTextureResolveRenderTask(const GrCaps& caps) const {
29         SkASSERT(fDrawingManager);
30         return fDrawingManager->newTextureResolveRenderTask(caps);
31     }
32 
33 private:
34     GrDrawingManager* fDrawingManager;
35 };
36 
37 #endif
38