Index: src/gpu/GrGpu.h |
diff --git a/src/gpu/GrGpu.h b/src/gpu/GrGpu.h |
index 5d35fcf859bca3792681e9e6ff5037e92fc9fdf0..aea6b1900223f8ae7b33722176d99229ead77ec3 100644 |
--- a/src/gpu/GrGpu.h |
+++ b/src/gpu/GrGpu.h |
@@ -365,6 +365,13 @@ public: |
const SkIRect& srcRect, |
const SkIPoint& dstPoint); |
+ const GrCaps::MultisampleSpecs& getMultisampleSpecs(GrRenderTarget* rt, |
+ const GrStencilSettings& stencil) { |
+ using namespace std::placeholders; |
+ const auto& functor = std::bind(&GrGpu::onGetMultisampleSpecs, this, rt, stencil, _1, _2); |
+ return this->caps()->getMultisampleSpecs(rt->desc(), functor); |
+ } |
+ |
struct DrawArgs { |
DrawArgs(const GrPrimitiveProcessor* primProc, |
const GrPipeline* pipeline, |
@@ -601,6 +608,12 @@ private: |
const SkIRect& srcRect, |
const SkIPoint& dstPoint) = 0; |
+ // overridden by backend specific derived class to perform the multisample queries |
+ virtual void onGetMultisampleSpecs(GrRenderTarget*, |
+ const GrStencilSettings&, |
+ int* effectiveSampleCnt, |
+ SkAutoTDeleteArray<SkPoint>* samplePattern) = 0; |
+ |
void resetContext() { |
this->onResetContext(fResetBits); |
fResetBits = 0; |