* found in the LICENSE file.
*/
+#ifndef GrReducedClip_DEFINED
+#define GrReducedClip_DEFINED
+
#include "SkClipStack.h"
#include "SkTLList.h"
/**
* This function takes a clip stack and a query rectangle and it produces a reduced set of
- * SkClipStack::Elements that are equivalent to applying the full stack to the rectangle. The
+ * SkClipStack::Elements that are equivalent to applying the full stack to the rectangle. The clip
+ * stack generation id that represents the list of elements is returned in resultGenID. The
* initial state of the query rectangle before the first clip element is applied is returned via
* initialState. Optionally, the caller can request a tighter bounds on the clip be returned via
* tighterBounds. If not NULL, tighterBounds will always be contained by queryBounds after return.
* required to process any of the elements in the result.
*
* This may become a member function of SkClipStack when its interface is determined to be stable.
+ * Marked SK_API so that SkLua can call this in a shared library build.
*/
-void ReduceClipStack(const SkClipStack& stack,
- const SkIRect& queryBounds,
- ElementList* result,
- InitialState* initialState,
- SkIRect* tighterBounds = NULL,
- bool* requiresAA = NULL);
+SK_API void ReduceClipStack(const SkClipStack& stack,
+ const SkIRect& queryBounds,
+ ElementList* result,
+ int32_t* resultGenID,
+ InitialState* initialState,
+ SkIRect* tighterBounds = NULL,
+ bool* requiresAA = NULL);
} // namespace GrReducedClip
+
+#endif