OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2011 Google Inc. | 3 * Copyright 2011 Google Inc. |
4 * | 4 * |
5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
7 */ | 7 */ |
8 | 8 |
9 #include "GrContext.h" | 9 #include "GrContext.h" |
10 | 10 |
(...skipping 27 matching lines...) Expand all Loading... |
38 #include "GrVertices.h" | 38 #include "GrVertices.h" |
39 #include "SkDashPathPriv.h" | 39 #include "SkDashPathPriv.h" |
40 #include "SkConfig8888.h" | 40 #include "SkConfig8888.h" |
41 #include "SkGr.h" | 41 #include "SkGr.h" |
42 #include "SkRRect.h" | 42 #include "SkRRect.h" |
43 #include "SkStrokeRec.h" | 43 #include "SkStrokeRec.h" |
44 #include "SkSurfacePriv.h" | 44 #include "SkSurfacePriv.h" |
45 #include "SkTLazy.h" | 45 #include "SkTLazy.h" |
46 #include "SkTLS.h" | 46 #include "SkTLS.h" |
47 #include "SkTraceEvent.h" | 47 #include "SkTraceEvent.h" |
| 48 #include "SkTraceMemoryDump.h" |
48 | 49 |
49 #include "batches/GrBatch.h" | 50 #include "batches/GrBatch.h" |
50 | 51 |
51 #include "effects/GrConfigConversionEffect.h" | 52 #include "effects/GrConfigConversionEffect.h" |
52 #include "effects/GrDashingEffect.h" | 53 #include "effects/GrDashingEffect.h" |
53 #include "effects/GrSingleTextureEffect.h" | 54 #include "effects/GrSingleTextureEffect.h" |
54 | 55 |
55 #define ASSERT_OWNED_RESOURCE(R) SkASSERT(!(R) || (R)->getContext() == this) | 56 #define ASSERT_OWNED_RESOURCE(R) SkASSERT(!(R) || (R)->getContext() == this) |
56 #define RETURN_IF_ABANDONED if (fDrawingMgr.abandoned()) { return; } | 57 #define RETURN_IF_ABANDONED if (fDrawingMgr.abandoned()) { return; } |
57 #define RETURN_FALSE_IF_ABANDONED if (fDrawingMgr.abandoned()) { return false; } | 58 #define RETURN_FALSE_IF_ABANDONED if (fDrawingMgr.abandoned()) { return false; } |
58 #define RETURN_NULL_IF_ABANDONED if (fDrawingMgr.abandoned()) { return NULL; } | 59 #define RETURN_NULL_IF_ABANDONED if (fDrawingMgr.abandoned()) { return NULL; } |
59 | 60 |
60 | 61 |
61 //////////////////////////////////////////////////////////////////////////////// | 62 //////////////////////////////////////////////////////////////////////////////// |
62 | 63 |
63 void GrContext::DrawingMgr::init(GrContext* context) { | 64 void GrContext::DrawingMgr::init(GrContext* context) { |
64 fContext = context; | 65 fContext = context; |
65 | 66 |
66 #ifdef IMMEDIATE_MODE | 67 #ifdef IMMEDIATE_MODE |
67 fDrawTarget = SkNEW_ARGS(GrImmediateDrawTarget, (context)); | 68 fDrawTarget = SkNEW_ARGS(GrImmediateDrawTarget, (context)); |
68 #else | 69 #else |
69 fDrawTarget = SkNEW_ARGS(GrBufferedDrawTarget, (context)); | 70 fDrawTarget = SkNEW_ARGS(GrBufferedDrawTarget, (context)); |
70 #endif | 71 #endif |
71 } | 72 } |
72 | 73 |
73 void GrContext::DrawingMgr::cleanup() { | 74 void GrContext::DrawingMgr::cleanup() { |
74 SkSafeSetNull(fDrawTarget); | 75 SkSafeSetNull(fDrawTarget); |
75 for (int i = 0; i < kNumPixelGeometries; ++i) { | 76 for (int i = 0; i < kNumPixelGeometries; ++i) { |
76 SkSafeSetNull(fDrawContext[i][0]); | 77 SkSafeSetNull(fDrawContext[i][0]); |
77 SkSafeSetNull(fDrawContext[i][1]); | 78 SkSafeSetNull(fDrawContext[i][1]); |
78 } | 79 } |
79 } | 80 } |
80 | 81 |
(...skipping 24 matching lines...) Expand all Loading... |
105 fDrawTarget->reset(); | 106 fDrawTarget->reset(); |
106 } | 107 } |
107 } | 108 } |
108 | 109 |
109 void GrContext::DrawingMgr::flush() { | 110 void GrContext::DrawingMgr::flush() { |
110 if (fDrawTarget) { | 111 if (fDrawTarget) { |
111 fDrawTarget->flush(); | 112 fDrawTarget->flush(); |
112 } | 113 } |
113 } | 114 } |
114 | 115 |
115 GrDrawContext* GrContext::DrawingMgr::drawContext(const SkSurfaceProps* surfaceP
rops) { | 116 GrDrawContext* GrContext::DrawingMgr::drawContext(const SkSurfaceProps* surfaceP
rops) { |
116 if (this->abandoned()) { | 117 if (this->abandoned()) { |
117 return NULL; | 118 return NULL; |
118 } | 119 } |
119 | 120 |
120 const SkSurfaceProps props(SkSurfacePropsCopyOrDefault(surfaceProps)); | 121 const SkSurfaceProps props(SkSurfacePropsCopyOrDefault(surfaceProps)); |
121 | 122 |
122 SkASSERT(props.pixelGeometry() < kNumPixelGeometries); | 123 SkASSERT(props.pixelGeometry() < kNumPixelGeometries); |
123 if (!fDrawContext[props.pixelGeometry()][props.isUseDistanceFieldFonts()]) { | 124 if (!fDrawContext[props.pixelGeometry()][props.isUseDistanceFieldFonts()]) { |
124 fDrawContext[props.pixelGeometry()][props.isUseDistanceFieldFonts()] = | 125 fDrawContext[props.pixelGeometry()][props.isUseDistanceFieldFonts()] = |
125 SkNEW_ARGS(GrDrawContext, (fContext, fDrawTarget, props)); | 126 SkNEW_ARGS(GrDrawContext, (fContext, fDrawTarget, props)); |
126 } | 127 } |
127 | 128 |
128 return fDrawContext[props.pixelGeometry()][props.isUseDistanceFieldFonts()];
| 129 return fDrawContext[props.pixelGeometry()][props.isUseDistanceFieldFonts()]; |
129 } | 130 } |
130 | 131 |
131 //////////////////////////////////////////////////////////////////////////////// | 132 //////////////////////////////////////////////////////////////////////////////// |
132 | 133 |
133 | 134 |
134 GrContext* GrContext::Create(GrBackend backend, GrBackendContext backendContext)
{ | 135 GrContext* GrContext::Create(GrBackend backend, GrBackendContext backendContext)
{ |
135 GrContextOptions defaultOptions; | 136 GrContextOptions defaultOptions; |
136 return Create(backend, backendContext, defaultOptions); | 137 return Create(backend, backendContext, defaultOptions); |
137 } | 138 } |
138 | 139 |
(...skipping 615 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
754 ////////////////////////////////////////////////////////////////////////////// | 755 ////////////////////////////////////////////////////////////////////////////// |
755 | 756 |
756 void GrContext::addGpuTraceMarker(const GrGpuTraceMarker* marker) { | 757 void GrContext::addGpuTraceMarker(const GrGpuTraceMarker* marker) { |
757 fGpu->addGpuTraceMarker(marker); | 758 fGpu->addGpuTraceMarker(marker); |
758 } | 759 } |
759 | 760 |
760 void GrContext::removeGpuTraceMarker(const GrGpuTraceMarker* marker) { | 761 void GrContext::removeGpuTraceMarker(const GrGpuTraceMarker* marker) { |
761 fGpu->removeGpuTraceMarker(marker); | 762 fGpu->removeGpuTraceMarker(marker); |
762 } | 763 } |
763 | 764 |
| 765 ////////////////////////////////////////////////////////////////////////////// |
| 766 void GrContext::onMemoryDump(SkTraceMemoryDump *traceMemoryDump) const { |
| 767 fResourceCache->onMemoryDump(traceMemoryDump); |
| 768 } |
OLD | NEW |