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

Unified Diff: skia/sgl/SkSpriteBlitter_ARGB32.cpp

Issue 113827: Remove the remainder of the skia source code from the Chromium repo.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years, 7 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 | « skia/sgl/SkSpriteBlitterTemplate.h ('k') | skia/sgl/SkSpriteBlitter_RGB16.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: skia/sgl/SkSpriteBlitter_ARGB32.cpp
===================================================================
--- skia/sgl/SkSpriteBlitter_ARGB32.cpp (revision 16859)
+++ skia/sgl/SkSpriteBlitter_ARGB32.cpp (working copy)
@@ -1,314 +0,0 @@
-/* libs/graphics/sgl/SkSpriteBlitter_ARGB32.cpp
-**
-** Copyright 2006, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
-
-#include "SkSpriteBlitter.h"
-#include "SkTemplates.h"
-#include "SkUtils.h"
-#include "SkColorPriv.h"
-
-#define D32_S32A_Opaque_Pixel(dst, sc) \
-do { \
- if (sc) { \
- unsigned srcA = SkGetPackedA32(sc); \
- uint32_t result = sc; \
- if (srcA != 0xFF) { \
- result += SkAlphaMulQ(*dst, SkAlpha255To256(255 - srcA)); \
- } \
- *dst = result; \
- } \
-} while (0)
-
-#define SkSPRITE_CLASSNAME Sprite_D32_S32A_Opaque
-#define SkSPRITE_ARGS
-#define SkSPRITE_FIELDS
-#define SkSPRITE_INIT
-#define SkSPRITE_DST_TYPE uint32_t
-#define SkSPRITE_SRC_TYPE uint32_t
-#define SkSPRITE_DST_GETADDR getAddr32
-#define SkSPRITE_SRC_GETADDR getAddr32
-#define SkSPRITE_PREAMBLE(srcBM, x, y)
-#define SkSPRITE_BLIT_PIXEL(dst, src) D32_S32A_Opaque_Pixel(dst, src)
-#define SkSPRITE_NEXT_ROW
-#define SkSPRITE_POSTAMBLE(srcBM)
-#include "SkSpriteBlitterTemplate.h"
-
-///////////////////////////////////////////////////////////////////////////////
-
-class Sprite_D32_S32_Opaque : public SkSpriteBlitter {
-public:
- Sprite_D32_S32_Opaque(const SkBitmap& source) : SkSpriteBlitter(source) {}
-
- virtual void blitRect(int x, int y, int width, int height) {
- SkASSERT(width > 0 && height > 0);
- SK_RESTRICT uint32_t* dst = fDevice->getAddr32(x, y);
- const SK_RESTRICT uint32_t* src = fSource->getAddr32(x - fLeft,
- y - fTop);
- unsigned dstRB = fDevice->rowBytes();
- unsigned srcRB = fSource->rowBytes();
- size_t size = width * sizeof(uint32_t);
-
- do {
- memcpy(dst, src, size);
- dst = (SK_RESTRICT uint32_t*)((char*)dst + dstRB);
- src = (const SK_RESTRICT uint32_t*)((const char*)src + srcRB);
- } while (--height != 0);
- }
-};
-
-///////////////////////////////////////////////////////////////////////////////
-
-#include "SkColorFilter.h"
-#include "SkXfermode.h"
-
-class Sprite_D32_XferFilter : public SkSpriteBlitter {
-public:
- Sprite_D32_XferFilter(const SkBitmap& source, const SkPaint& paint)
- : SkSpriteBlitter(source) {
- fColorFilter = paint.getColorFilter();
- fColorFilter->safeRef();
-
- fXfermode = paint.getXfermode();
- fXfermode->safeRef();
-
- fBufferSize = 0;
- fBuffer = NULL;
- }
-
- virtual ~Sprite_D32_XferFilter() {
- delete[] fBuffer;
- fXfermode->safeUnref();
- fColorFilter->safeUnref();
- }
-
- virtual void setup(const SkBitmap& device, int left, int top,
- const SkPaint& paint) {
- this->INHERITED::setup(device, left, top, paint);
-
- int width = device.width();
- if (width > fBufferSize) {
- fBufferSize = width;
- delete[] fBuffer;
- fBuffer = new SkPMColor[width];
- }
- }
-
-protected:
- SkColorFilter* fColorFilter;
- SkXfermode* fXfermode;
- int fBufferSize;
- SkPMColor* fBuffer;
-
-private:
- typedef SkSpriteBlitter INHERITED;
-};
-
-///////////////////////////////////////////////////////////////////////////////
-
-class Sprite_D32_S32A_XferFilter : public Sprite_D32_XferFilter {
-public:
- Sprite_D32_S32A_XferFilter(const SkBitmap& source, const SkPaint& paint)
- : Sprite_D32_XferFilter(source, paint) {}
-
- virtual void blitRect(int x, int y, int width, int height) {
- SkASSERT(width > 0 && height > 0);
- SK_RESTRICT uint32_t* dst = fDevice->getAddr32(x, y);
- const SK_RESTRICT uint32_t* src = fSource->getAddr32(x - fLeft,
- y - fTop);
- unsigned dstRB = fDevice->rowBytes();
- unsigned srcRB = fSource->rowBytes();
- SkColorFilter* colorFilter = fColorFilter;
- SkXfermode* xfermode = fXfermode;
-
- do {
- const SkPMColor* tmp = src;
-
- if (NULL != colorFilter) {
- colorFilter->filterSpan(src, width, fBuffer);
- tmp = fBuffer;
- }
-
- if (NULL != xfermode) {
- xfermode->xfer32(dst, tmp, width, NULL);
- } else {
- for (int i = 0; i < width; i++) {
- dst[i] = SkPMSrcOver(tmp[i], dst[i]);
- }
- }
-
- dst = (SK_RESTRICT uint32_t*)((char*)dst + dstRB);
- src = (const SK_RESTRICT uint32_t*)((const char*)src + srcRB);
- } while (--height != 0);
- }
-
-private:
- typedef Sprite_D32_XferFilter INHERITED;
-};
-
-static void fillbuffer(SK_RESTRICT SkPMColor dst[],
- const SK_RESTRICT SkPMColor16 src[], int count) {
- SkASSERT(count > 0);
-
- do {
- *dst++ = SkPixel4444ToPixel32(*src++);
- } while (--count != 0);
-}
-
-class Sprite_D32_S4444_XferFilter : public Sprite_D32_XferFilter {
-public:
- Sprite_D32_S4444_XferFilter(const SkBitmap& source, const SkPaint& paint)
- : Sprite_D32_XferFilter(source, paint) {}
-
- virtual void blitRect(int x, int y, int width, int height) {
- SkASSERT(width > 0 && height > 0);
- SK_RESTRICT SkPMColor* dst = fDevice->getAddr32(x, y);
- const SK_RESTRICT SkPMColor16* src = fSource->getAddr16(x - fLeft,
- y - fTop);
- unsigned dstRB = fDevice->rowBytes();
- unsigned srcRB = fSource->rowBytes();
- SK_RESTRICT SkPMColor* buffer = fBuffer;
- SkColorFilter* colorFilter = fColorFilter;
- SkXfermode* xfermode = fXfermode;
-
- do {
- fillbuffer(buffer, src, width);
-
- if (NULL != colorFilter) {
- colorFilter->filterSpan(buffer, width, buffer);
- }
- if (NULL != xfermode) {
- xfermode->xfer32(dst, buffer, width, NULL);
- } else {
- for (int i = 0; i < width; i++) {
- dst[i] = SkPMSrcOver(buffer[i], dst[i]);
- }
- }
-
- dst = (SK_RESTRICT SkPMColor*)((char*)dst + dstRB);
- src = (const SK_RESTRICT SkPMColor16*)((const char*)src + srcRB);
- } while (--height != 0);
- }
-
-private:
- typedef Sprite_D32_XferFilter INHERITED;
-};
-
-///////////////////////////////////////////////////////////////////////////////
-
-static void src_row(SK_RESTRICT SkPMColor dst[],
- const SK_RESTRICT SkPMColor16 src[], int count) {
- do {
- *dst = SkPixel4444ToPixel32(*src);
- src += 1;
- dst += 1;
- } while (--count != 0);
-}
-
-class Sprite_D32_S4444_Opaque : public SkSpriteBlitter {
-public:
- Sprite_D32_S4444_Opaque(const SkBitmap& source) : SkSpriteBlitter(source) {}
-
- virtual void blitRect(int x, int y, int width, int height) {
- SkASSERT(width > 0 && height > 0);
- SK_RESTRICT SkPMColor* dst = fDevice->getAddr32(x, y);
- const SK_RESTRICT SkPMColor16* src = fSource->getAddr16(x - fLeft,
- y - fTop);
- unsigned dstRB = fDevice->rowBytes();
- unsigned srcRB = fSource->rowBytes();
-
- do {
- src_row(dst, src, width);
- dst = (SK_RESTRICT SkPMColor*)((char*)dst + dstRB);
- src = (const SK_RESTRICT SkPMColor16*)((const char*)src + srcRB);
- } while (--height != 0);
- }
-};
-
-static void srcover_row(SK_RESTRICT SkPMColor dst[],
- const SK_RESTRICT SkPMColor16 src[], int count) {
- do {
- *dst = SkPMSrcOver(SkPixel4444ToPixel32(*src), *dst);
- src += 1;
- dst += 1;
- } while (--count != 0);
-}
-
-class Sprite_D32_S4444 : public SkSpriteBlitter {
-public:
- Sprite_D32_S4444(const SkBitmap& source) : SkSpriteBlitter(source) {}
-
- virtual void blitRect(int x, int y, int width, int height) {
- SkASSERT(width > 0 && height > 0);
- SK_RESTRICT SkPMColor* dst = fDevice->getAddr32(x, y);
- const SK_RESTRICT SkPMColor16* src = fSource->getAddr16(x - fLeft,
- y - fTop);
- unsigned dstRB = fDevice->rowBytes();
- unsigned srcRB = fSource->rowBytes();
-
- do {
- srcover_row(dst, src, width);
- dst = (SK_RESTRICT SkPMColor*)((char*)dst + dstRB);
- src = (const SK_RESTRICT SkPMColor16*)((const char*)src + srcRB);
- } while (--height != 0);
- }
-};
-
-///////////////////////////////////////////////////////////////////////////////
-
-#include "SkTemplatesPriv.h"
-
-SkSpriteBlitter* SkSpriteBlitter::ChooseD32(const SkBitmap& source,
- const SkPaint& paint,
- void* storage, size_t storageSize) {
- if (paint.getMaskFilter() != NULL || paint.getAlpha() != 0xFF) {
- return NULL;
- }
-
- SkXfermode* xfermode = paint.getXfermode();
- SkColorFilter* filter = paint.getColorFilter();
- SkSpriteBlitter* blitter = NULL;
-
- switch (source.getConfig()) {
- case SkBitmap::kARGB_4444_Config:
- if (xfermode || filter) {
- SK_PLACEMENT_NEW_ARGS(blitter, Sprite_D32_S4444_XferFilter,
- storage, storageSize, (source, paint));
- } else if (source.isOpaque()) {
- SK_PLACEMENT_NEW_ARGS(blitter, Sprite_D32_S4444_Opaque,
- storage, storageSize, (source));
- } else {
- SK_PLACEMENT_NEW_ARGS(blitter, Sprite_D32_S4444,
- storage, storageSize, (source));
- }
- break;
- case SkBitmap::kARGB_8888_Config:
- if (xfermode || filter) {
- SK_PLACEMENT_NEW_ARGS(blitter, Sprite_D32_S32A_XferFilter,
- storage, storageSize, (source, paint));
- } else if (source.isOpaque()) {
- SK_PLACEMENT_NEW_ARGS(blitter, Sprite_D32_S32_Opaque,
- storage, storageSize, (source));
- } else {
- SK_PLACEMENT_NEW_ARGS(blitter, Sprite_D32_S32A_Opaque,
- storage, storageSize, (source));
- }
- break;
- default:
- break;
- }
- return blitter;
-}
-
« no previous file with comments | « skia/sgl/SkSpriteBlitterTemplate.h ('k') | skia/sgl/SkSpriteBlitter_RGB16.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698