Index: src/gpu/GrLayerHoister.h |
diff --git a/src/gpu/GrLayerHoister.h b/src/gpu/GrLayerHoister.h |
index 58b3f4870ba2f809a1a3554a1b50216eebd22b5f..7f49881e21d66194a7f199cb32f9a54a8e9d3cb6 100644 |
--- a/src/gpu/GrLayerHoister.h |
+++ b/src/gpu/GrLayerHoister.h |
@@ -16,6 +16,14 @@ struct GrCachedLayer; |
class GrReplacements; |
struct SkRect; |
+class GrHoistedLayer { |
+public: |
+ const SkPicture* fPicture; |
+ GrCachedLayer* fLayer; |
+ SkIPoint fOffset; |
+ SkMatrix fCTM; |
+}; |
+ |
// This class collects the layer hoisting functionality in one place. |
// For each picture rendering: |
// FindLayersToHoist should be called once to collect the required layers |
@@ -23,29 +31,23 @@ struct SkRect; |
// UnlockLayers should be called once to allow the texture resources to be recycled |
class GrLayerHoister { |
public: |
- struct HoistedLayer { |
- const SkPicture* fPicture; |
- GrCachedLayer* fLayer; |
- SkIPoint fOffset; |
- SkMatrix fCTM; |
- }; |
/** Find the layers in 'topLevelPicture' that need hoisting. Note that the discovered |
layers can be inside nested sub-pictures. |
+ @param context Owner of the layer cache (the source of new layers) |
@param topLevelPicture The top-level picture that is about to be rendered |
@param query The rectangle that is about to be drawn. |
@param atlased Out parameter storing the layers that should be hoisted to the atlas |
@param nonAtlased Out parameter storing the layers that should be hoisted stand alone |
@param recycled Out parameter storing layers that need hoisting but not rendering |
- @param layerCache The source of new layers |
Return true if any layers are suitable for hoisting; false otherwise |
*/ |
- static bool FindLayersToHoist(const SkPicture* topLevelPicture, |
+ static bool FindLayersToHoist(GrContext* context, |
+ const SkPicture* topLevelPicture, |
const SkRect& query, |
- SkTDArray<HoistedLayer>* altased, |
- SkTDArray<HoistedLayer>* nonAtlased, |
- SkTDArray<HoistedLayer>* recycled, |
- GrLayerCache* layerCache); |
+ SkTDArray<GrHoistedLayer>* atlased, |
+ SkTDArray<GrHoistedLayer>* nonAtlased, |
+ SkTDArray<GrHoistedLayer>* recycled); |
/** Draw the specified layers into either the atlas or free floating textures. |
@param atlased The layers to be drawn into the atlas |
@@ -54,21 +56,21 @@ public: |
replacements object |
@param replacements The replacement structure to fill in with the rendered layer info |
*/ |
- static void DrawLayers(const SkTDArray<HoistedLayer>& atlased, |
- const SkTDArray<HoistedLayer>& nonAtlased, |
- const SkTDArray<HoistedLayer>& recycled, |
+ static void DrawLayers(const SkTDArray<GrHoistedLayer>& atlased, |
+ const SkTDArray<GrHoistedLayer>& nonAtlased, |
+ const SkTDArray<GrHoistedLayer>& recycled, |
GrReplacements* replacements); |
/** Unlock unneeded layers in the layer cache. |
- @param layerCache holder of the locked layers |
+ @param context Owner of the layer cache (and thus the layers) |
@param atlased Unneeded layers in the atlas |
@param nonAtlased Unneeded layers in their own textures |
@param recycled Unneeded layers that did not require rendering |
*/ |
- static void UnlockLayers(GrLayerCache* layerCache, |
- const SkTDArray<HoistedLayer>& atlased, |
- const SkTDArray<HoistedLayer>& nonAtlased, |
- const SkTDArray<HoistedLayer>& recycled); |
+ static void UnlockLayers(GrContext* context, |
+ const SkTDArray<GrHoistedLayer>& atlased, |
+ const SkTDArray<GrHoistedLayer>& nonAtlased, |
+ const SkTDArray<GrHoistedLayer>& recycled); |
}; |
#endif |