Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(193)

Unified Diff: src/gpu/GrAtlas.cpp

Issue 24751003: GrAtlas refactor: Replace GrMaskFormat usage in GrAtlas with GrPixelConfig. (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Fix nits Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/gpu/GrAtlas.h ('k') | src/gpu/GrTextStrike.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/gpu/GrAtlas.cpp
diff --git a/src/gpu/GrAtlas.cpp b/src/gpu/GrAtlas.cpp
index b3f2e34c40e5ab1b79bcb4659761a1268af85165..29f2a54ed75c2ac36a34c66c393dff494c1bd4e5 100644
--- a/src/gpu/GrAtlas.cpp
+++ b/src/gpu/GrAtlas.cpp
@@ -50,7 +50,7 @@
static int g_UploadCount = 0;
#endif
-GrAtlas::GrAtlas(GrAtlasMgr* mgr, int plotX, int plotY, GrMaskFormat format) :
+GrAtlas::GrAtlas(GrAtlasMgr* mgr, int plotX, int plotY, int bpp) :
fDrawToken(NULL, 0) {
fAtlasMgr = mgr; // just a pointer, not an owner
fNext = NULL;
@@ -61,7 +61,7 @@ GrAtlas::GrAtlas(GrAtlasMgr* mgr, int plotX, int plotY, GrMaskFormat format) :
fRects = GrRectanizer::Factory(GR_ATLAS_WIDTH - BORDER,
GR_ATLAS_HEIGHT - BORDER);
- fMaskFormat = format;
+ fBytesPerPixel = bpp;
#ifdef SK_DEBUG
// GrPrintf(" GrAtlas %p [%d %d] %d\n", this, plotX, plotY, gCounter);
@@ -123,17 +123,16 @@ bool GrAtlas::addSubImage(int width, int height, const void* image,
int dstW = width + 2*BORDER;
int dstH = height + 2*BORDER;
if (BORDER) {
- const int bpp = GrMaskFormatBytesPerPixel(fMaskFormat);
- const size_t dstRB = dstW * bpp;
+ const size_t dstRB = dstW * fBytesPerPixel;
uint8_t* dst = (uint8_t*)storage.reset(dstH * dstRB);
Gr_bzero(dst, dstRB); // zero top row
dst += dstRB;
for (int y = 0; y < height; y++) {
- dst = zerofill(dst, bpp); // zero left edge
- memcpy(dst, image, width * bpp);
- dst += width * bpp;
- dst = zerofill(dst, bpp); // zero right edge
- image = (const void*)((const char*)image + width * bpp);
+ dst = zerofill(dst, fBytesPerPixel); // zero left edge
+ memcpy(dst, image, width * fBytesPerPixel);
+ dst += width * fBytesPerPixel;
+ dst = zerofill(dst, fBytesPerPixel); // zero right edge
+ image = (const void*)((const char*)image + width * fBytesPerPixel);
}
Gr_bzero(dst, dstRB); // zero bottom row
image = storage.get();
@@ -161,9 +160,9 @@ bool GrAtlas::addSubImage(int width, int height, const void* image,
///////////////////////////////////////////////////////////////////////////////
-GrAtlasMgr::GrAtlasMgr(GrGpu* gpu, GrMaskFormat format) {
+GrAtlasMgr::GrAtlasMgr(GrGpu* gpu, GrPixelConfig config) {
fGpu = gpu;
- fMaskFormat = format;
+ fPixelConfig = config;
gpu->ref();
fTexture = NULL;
fPlotMgr = SkNEW_ARGS(GrPlotMgr, (GR_PLOT_WIDTH, GR_PLOT_HEIGHT));
@@ -179,20 +178,6 @@ GrAtlasMgr::~GrAtlasMgr() {
#endif
}
-static GrPixelConfig maskformat2pixelconfig(GrMaskFormat format) {
- switch (format) {
- case kA8_GrMaskFormat:
- return kAlpha_8_GrPixelConfig;
- case kA565_GrMaskFormat:
- return kRGB_565_GrPixelConfig;
- case kA888_GrMaskFormat:
- return kSkia8888_GrPixelConfig;
- default:
- SkDEBUGFAIL("unknown maskformat");
- }
- return kUnknown_GrPixelConfig;
-}
-
GrAtlas* GrAtlasMgr::addToAtlas(GrAtlas** atlas,
int width, int height, const void* image,
GrIPoint16* loc) {
@@ -219,7 +204,7 @@ GrAtlas* GrAtlasMgr::addToAtlas(GrAtlas** atlas,
desc.fFlags = kDynamicUpdate_GrTextureFlagBit;
desc.fWidth = GR_ATLAS_TEXTURE_WIDTH;
desc.fHeight = GR_ATLAS_TEXTURE_HEIGHT;
- desc.fConfig = maskformat2pixelconfig(fMaskFormat);
+ desc.fConfig = fPixelConfig;
fTexture = fGpu->createTexture(desc, NULL, 0);
if (NULL == fTexture) {
@@ -227,7 +212,8 @@ GrAtlas* GrAtlasMgr::addToAtlas(GrAtlas** atlas,
}
}
- GrAtlas* newAtlas = SkNEW_ARGS(GrAtlas, (this, plot.fX, plot.fY, fMaskFormat));
+ int bpp = GrBytesPerPixel(fPixelConfig);
+ GrAtlas* newAtlas = SkNEW_ARGS(GrAtlas, (this, plot.fX, plot.fY, bpp));
if (!newAtlas->addSubImage(width, height, image, loc)) {
delete newAtlas;
return NULL;
« no previous file with comments | « src/gpu/GrAtlas.h ('k') | src/gpu/GrTextStrike.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698