OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2010 Google Inc. | 3 * Copyright 2010 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 | 9 |
10 | 10 |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
118 if (!fRects->addRect(width + BORDER, height + BORDER, loc)) { | 118 if (!fRects->addRect(width + BORDER, height + BORDER, loc)) { |
119 return false; | 119 return false; |
120 } | 120 } |
121 | 121 |
122 SkAutoSMalloc<1024> storage; | 122 SkAutoSMalloc<1024> storage; |
123 int dstW = width + 2*BORDER; | 123 int dstW = width + 2*BORDER; |
124 int dstH = height + 2*BORDER; | 124 int dstH = height + 2*BORDER; |
125 if (BORDER) { | 125 if (BORDER) { |
126 const size_t dstRB = dstW * fBytesPerPixel; | 126 const size_t dstRB = dstW * fBytesPerPixel; |
127 uint8_t* dst = (uint8_t*)storage.reset(dstH * dstRB); | 127 uint8_t* dst = (uint8_t*)storage.reset(dstH * dstRB); |
128 Gr_bzero(dst, dstRB); // zero top row | 128 sk_bzero(dst, dstRB); // zero top row |
129 dst += dstRB; | 129 dst += dstRB; |
130 for (int y = 0; y < height; y++) { | 130 for (int y = 0; y < height; y++) { |
131 dst = zerofill(dst, fBytesPerPixel); // zero left edge | 131 dst = zerofill(dst, fBytesPerPixel); // zero left edge |
132 memcpy(dst, image, width * fBytesPerPixel); | 132 memcpy(dst, image, width * fBytesPerPixel); |
133 dst += width * fBytesPerPixel; | 133 dst += width * fBytesPerPixel; |
134 dst = zerofill(dst, fBytesPerPixel); // zero right edge | 134 dst = zerofill(dst, fBytesPerPixel); // zero right edge |
135 image = (const void*)((const char*)image + width * fBytesPerPixel); | 135 image = (const void*)((const char*)image + width * fBytesPerPixel); |
136 } | 136 } |
137 Gr_bzero(dst, dstRB); // zero bottom row | 137 sk_bzero(dst, dstRB); // zero bottom row |
138 image = storage.get(); | 138 image = storage.get(); |
139 } | 139 } |
140 adjustForPlot(loc, fPlot); | 140 adjustForPlot(loc, fPlot); |
141 GrContext* context = fTexture->getContext(); | 141 GrContext* context = fTexture->getContext(); |
142 // We pass the flag that does not force a flush. We assume our caller is | 142 // We pass the flag that does not force a flush. We assume our caller is |
143 // smart and hasn't referenced the part of the texture we're about to update | 143 // smart and hasn't referenced the part of the texture we're about to update |
144 // since the last flush. | 144 // since the last flush. |
145 context->writeTexturePixels(fTexture, | 145 context->writeTexturePixels(fTexture, |
146 loc->fX, loc->fY, dstW, dstH, | 146 loc->fX, loc->fY, dstW, dstH, |
147 fTexture->config(), image, 0, | 147 fTexture->config(), image, 0, |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
223 newAtlas->fNext = *atlas; | 223 newAtlas->fNext = *atlas; |
224 *atlas = newAtlas; | 224 *atlas = newAtlas; |
225 | 225 |
226 return newAtlas; | 226 return newAtlas; |
227 } | 227 } |
228 | 228 |
229 void GrAtlasMgr::freePlot(int x, int y) { | 229 void GrAtlasMgr::freePlot(int x, int y) { |
230 SkASSERT(fPlotMgr->isBusy(x, y)); | 230 SkASSERT(fPlotMgr->isBusy(x, y)); |
231 fPlotMgr->freePlot(x, y); | 231 fPlotMgr->freePlot(x, y); |
232 } | 232 } |
OLD | NEW |