OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2010 Google Inc. | 2 * Copyright 2010 Google Inc. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 | 8 |
9 #include "GrGpu.h" | 9 #include "GrGpu.h" |
10 | 10 |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
81 // By default, GrRenderTargets are GL's normal orientation so that they | 81 // By default, GrRenderTargets are GL's normal orientation so that they |
82 // can be drawn to by the outside world without the client having | 82 // can be drawn to by the outside world without the client having |
83 // to render upside down. | 83 // to render upside down. |
84 if (kDefault_GrSurfaceOrigin == origin) { | 84 if (kDefault_GrSurfaceOrigin == origin) { |
85 return renderTarget ? kBottomLeft_GrSurfaceOrigin : kTopLeft_GrSurfaceOr
igin; | 85 return renderTarget ? kBottomLeft_GrSurfaceOrigin : kTopLeft_GrSurfaceOr
igin; |
86 } else { | 86 } else { |
87 return origin; | 87 return origin; |
88 } | 88 } |
89 } | 89 } |
90 | 90 |
91 GrTexture* GrGpu::createTexture(const GrSurfaceDesc& origDesc, bool budgeted, | 91 GrTexture* GrGpu::createTexture(const GrSurfaceDesc& origDesc, SkBudgeted budget
ed, |
92 const void* srcData, size_t rowBytes) { | 92 const void* srcData, size_t rowBytes) { |
93 GrSurfaceDesc desc = origDesc; | 93 GrSurfaceDesc desc = origDesc; |
94 | 94 |
95 if (!this->caps()->isConfigTexturable(desc.fConfig)) { | 95 if (!this->caps()->isConfigTexturable(desc.fConfig)) { |
96 return nullptr; | 96 return nullptr; |
97 } | 97 } |
98 | 98 |
99 bool isRT = SkToBool(desc.fFlags & kRenderTarget_GrSurfaceFlag); | 99 bool isRT = SkToBool(desc.fFlags & kRenderTarget_GrSurfaceFlag); |
100 if (isRT && !this->caps()->isConfigRenderable(desc.fConfig, desc.fSampleCnt
> 0)) { | 100 if (isRT && !this->caps()->isConfigRenderable(desc.fConfig, desc.fSampleCnt
> 0)) { |
101 return nullptr; | 101 return nullptr; |
(...skipping 11 matching lines...) Expand all Loading... |
113 if (desc.fWidth > maxRTSize || desc.fHeight > maxRTSize) { | 113 if (desc.fWidth > maxRTSize || desc.fHeight > maxRTSize) { |
114 return nullptr; | 114 return nullptr; |
115 } | 115 } |
116 } else { | 116 } else { |
117 int maxSize = this->caps()->maxTextureSize(); | 117 int maxSize = this->caps()->maxTextureSize(); |
118 if (desc.fWidth > maxSize || desc.fHeight > maxSize) { | 118 if (desc.fWidth > maxSize || desc.fHeight > maxSize) { |
119 return nullptr; | 119 return nullptr; |
120 } | 120 } |
121 } | 121 } |
122 | 122 |
123 GrGpuResource::LifeCycle lifeCycle = budgeted ? GrGpuResource::kCached_LifeC
ycle : | 123 GrGpuResource::LifeCycle lifeCycle = SkBudgeted::kYes == budgeted ? |
124 GrGpuResource::kUncached_Lif
eCycle; | 124 GrGpuResource::kCached_LifeCycle : |
| 125 GrGpuResource::kUncached_LifeCycle; |
125 | 126 |
126 desc.fSampleCnt = SkTMin(desc.fSampleCnt, this->caps()->maxSampleCount()); | 127 desc.fSampleCnt = SkTMin(desc.fSampleCnt, this->caps()->maxSampleCount()); |
127 // Attempt to catch un- or wrongly initialized sample counts; | 128 // Attempt to catch un- or wrongly initialized sample counts; |
128 SkASSERT(desc.fSampleCnt >= 0 && desc.fSampleCnt <= 64); | 129 SkASSERT(desc.fSampleCnt >= 0 && desc.fSampleCnt <= 64); |
129 | 130 |
130 desc.fOrigin = resolve_origin(desc.fOrigin, isRT); | 131 desc.fOrigin = resolve_origin(desc.fOrigin, isRT); |
131 | 132 |
132 if (GrPixelConfigIsCompressed(desc.fConfig)) { | 133 if (GrPixelConfigIsCompressed(desc.fConfig)) { |
133 // We shouldn't be rendering into this | 134 // We shouldn't be rendering into this |
134 SkASSERT(!isRT); | 135 SkASSERT(!isRT); |
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
398 } | 399 } |
399 | 400 |
400 GrVertices::Iterator iter; | 401 GrVertices::Iterator iter; |
401 const GrNonInstancedVertices* verts = iter.init(vertices); | 402 const GrNonInstancedVertices* verts = iter.init(vertices); |
402 do { | 403 do { |
403 this->onDraw(args, *verts); | 404 this->onDraw(args, *verts); |
404 fStats.incNumDraws(); | 405 fStats.incNumDraws(); |
405 } while ((verts = iter.next())); | 406 } while ((verts = iter.next())); |
406 } | 407 } |
407 | 408 |
OLD | NEW |