aboutsummaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authorGravatar joshualitt <joshualitt@chromium.org>2016-01-07 11:32:39 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2016-01-07 11:32:40 -0800
commitf9bc796e0dbd31674c22b34761913ee6e8fdd66a (patch)
treee3df859198b69533e4c7d96c20662ca3a84d8e68 /include
parentbfd5f171e6a3eccd7c4bede652a85fd76bcbce2a (diff)
Make a single GrSingleOwner in GrContext
Diffstat (limited to 'include')
-rw-r--r--include/gpu/GrContext.h4
-rw-r--r--include/gpu/GrDrawContext.h5
-rw-r--r--include/private/GrSingleOwner.h2
3 files changed, 8 insertions, 3 deletions
diff --git a/include/gpu/GrContext.h b/include/gpu/GrContext.h
index 39477e0db8..baf99789c0 100644
--- a/include/gpu/GrContext.h
+++ b/include/gpu/GrContext.h
@@ -392,7 +392,9 @@ private:
SkMutex fTestPMConversionsMutex;
// In debug builds we guard against improper thread handling
- SkDEBUGCODE(mutable GrSingleOwner fSingleOwner;)
+ // This guard is passed to the GrDrawingManager and, from there to all the
+ // GrDrawContexts. It is also passed to the GrTextureProvider and SkGpuDevice.
+ mutable GrSingleOwner fSingleOwner;
struct CleanUpData {
PFCleanUpFunc fFunc;
diff --git a/include/gpu/GrDrawContext.h b/include/gpu/GrDrawContext.h
index 21977bed74..7ae6f5e682 100644
--- a/include/gpu/GrDrawContext.h
+++ b/include/gpu/GrDrawContext.h
@@ -283,7 +283,8 @@ private:
SkDEBUGCODE(void validate() const;)
- GrDrawContext(GrDrawingManager*, GrRenderTarget*, const SkSurfaceProps* surfaceProps);
+ GrDrawContext(GrDrawingManager*, GrRenderTarget*, const SkSurfaceProps* surfaceProps,
+ GrSingleOwner*);
void internalDrawPath(GrPipelineBuilder*,
const SkMatrix& viewMatrix,
@@ -309,7 +310,7 @@ private:
SkSurfaceProps fSurfaceProps;
// In debug builds we guard against improper thread handling
- SkDEBUGCODE(mutable GrSingleOwner fSingleOwner;)
+ mutable GrSingleOwner* fSingleOwner;
};
#endif
diff --git a/include/private/GrSingleOwner.h b/include/private/GrSingleOwner.h
index dea982e89a..64e63d3b19 100644
--- a/include/private/GrSingleOwner.h
+++ b/include/private/GrSingleOwner.h
@@ -48,6 +48,8 @@ private:
SkThreadID fOwner; // guarded by fMutex
int fReentranceCount; // guarded by fMutex
};
+#else
+class GrSingleOwner {}; // Provide a dummy implementation so we can pass pointers to constructors
#endif
#endif