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

Unified Diff: skia/sgl/SkBitmapProcShader.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/SkBitmapProcShader.h ('k') | skia/sgl/SkBitmapProcState.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: skia/sgl/SkBitmapProcShader.cpp
===================================================================
--- skia/sgl/SkBitmapProcShader.cpp (revision 16859)
+++ skia/sgl/SkBitmapProcShader.cpp (working copy)
@@ -1,194 +0,0 @@
-#include "SkBitmapProcShader.h"
-#include "SkColorPriv.h"
-#include "SkPixelRef.h"
-
-bool SkBitmapProcShader::CanDo(const SkBitmap& bm, TileMode tx, TileMode ty) {
- switch (bm.config()) {
- case SkBitmap::kA8_Config:
- case SkBitmap::kRGB_565_Config:
- case SkBitmap::kIndex8_Config:
- case SkBitmap::kARGB_8888_Config:
- // if (tx == ty && (kClamp_TileMode == tx || kRepeat_TileMode == tx))
- return true;
- default:
- break;
- }
- return false;
-}
-
-SkBitmapProcShader::SkBitmapProcShader(const SkBitmap& src,
- TileMode tmx, TileMode tmy) {
- fRawBitmap = src;
- fState.fTileModeX = (uint8_t)tmx;
- fState.fTileModeY = (uint8_t)tmy;
-}
-
-SkBitmapProcShader::SkBitmapProcShader(SkFlattenableReadBuffer& buffer)
- : INHERITED(buffer) {
- fRawBitmap.unflatten(buffer);
- fState.fTileModeX = buffer.readU8();
- fState.fTileModeY = buffer.readU8();
-}
-
-void SkBitmapProcShader::beginSession() {
- this->INHERITED::beginSession();
-
- fRawBitmap.lockPixels();
-}
-
-void SkBitmapProcShader::endSession() {
- fRawBitmap.unlockPixels();
-
- this->INHERITED::endSession();
-}
-
-bool SkBitmapProcShader::asABitmap(SkBitmap* texture, SkMatrix* texM,
- TileMode xy[]) {
- if (texture) {
- *texture = fRawBitmap;
- }
- if (texM) {
- texM->reset();
- }
- if (xy) {
- xy[0] = (TileMode)fState.fTileModeX;
- xy[1] = (TileMode)fState.fTileModeY;
- }
- return true;
-}
-
-void SkBitmapProcShader::flatten(SkFlattenableWriteBuffer& buffer) {
- this->INHERITED::flatten(buffer);
-
- fRawBitmap.flatten(buffer);
- buffer.write8(fState.fTileModeX);
- buffer.write8(fState.fTileModeY);
-}
-
-bool SkBitmapProcShader::setContext(const SkBitmap& device,
- const SkPaint& paint,
- const SkMatrix& matrix) {
- // do this first, so we have a correct inverse matrix
- if (!this->INHERITED::setContext(device, paint, matrix)) {
- return false;
- }
-
- fState.fOrigBitmap = fRawBitmap;
- fState.fOrigBitmap.lockPixels();
- if (fState.fOrigBitmap.getPixels() == NULL) {
- fState.fOrigBitmap.unlockPixels();
- return false;
- }
-
- if (!fState.chooseProcs(this->getTotalInverse(), paint)) {
- return false;
- }
-
- bool bitmapIsOpaque = fState.fBitmap->isOpaque();
-
- // filtering doesn't guarantee that opaque stays opaque (finite precision)
- // so pretend we're not opaque if we're being asked to filter. If we had
- // more blit-procs, we could specialize on opaque src, and just OR in 0xFF
- // after the filter to be sure...
- if (paint.isFilterBitmap()) {
- bitmapIsOpaque = false;
- }
-
- // update fFlags
- fFlags = 0; // this should happen in SkShader.cpp
-
- if (bitmapIsOpaque && (255 == this->getPaintAlpha())) {
- fFlags |= kOpaqueAlpha_Flag;
- }
-
- switch (fState.fBitmap->config()) {
- case SkBitmap::kRGB_565_Config:
- fFlags |= (kHasSpan16_Flag | kIntrinsicly16_Flag);
- break;
- case SkBitmap::kIndex8_Config:
- case SkBitmap::kARGB_8888_Config:
- if (bitmapIsOpaque) {
- fFlags |= kHasSpan16_Flag;
- }
- break;
- case SkBitmap::kA8_Config:
- break; // never set kHasSpan16_Flag
- default:
- break;
- }
- return true;
-}
-
-#define BUF_MAX 128
-
-void SkBitmapProcShader::shadeSpan(int x, int y, SkPMColor dstC[], int count) {
- uint32_t buffer[BUF_MAX];
-
- const SkBitmapProcState& state = fState;
- SkBitmapProcState::MatrixProc mproc = state.fMatrixProc;
- SkBitmapProcState::SampleProc32 sproc = state.fSampleProc32;
- int max = fState.fDoFilter ? (BUF_MAX >> 1) : BUF_MAX;
-
- SkASSERT(state.fBitmap->getPixels());
- SkASSERT(state.fBitmap->pixelRef() == NULL ||
- state.fBitmap->pixelRef()->getLockCount());
-
- for (;;) {
- int n = count;
- if (n > max) {
- n = max;
- }
- mproc(state, buffer, n, x, y);
- sproc(state, buffer, n, dstC);
-
- if ((count -= n) == 0) {
- break;
- }
- x += n;
- dstC += n;
- }
-}
-
-void SkBitmapProcShader::shadeSpan16(int x, int y, uint16_t dstC[], int count) {
- uint32_t buffer[BUF_MAX];
-
- const SkBitmapProcState& state = fState;
- SkBitmapProcState::MatrixProc mproc = state.fMatrixProc;
- SkBitmapProcState::SampleProc16 sproc = state.fSampleProc16;
- int max = fState.fDoFilter ? (BUF_MAX >> 1) : BUF_MAX;
-
- SkASSERT(state.fBitmap->getPixels());
- SkASSERT(state.fBitmap->pixelRef() == NULL ||
- state.fBitmap->pixelRef()->getLockCount());
-
- for (;;) {
- int n = count;
- if (n > max) {
- n = max;
- }
- mproc(state, buffer, n, x, y);
- sproc(state, buffer, n, dstC);
-
- if ((count -= n) == 0) {
- break;
- }
- x += n;
- dstC += n;
- }
-}
-
-///////////////////////////////////////////////////////////////////////////////
-
-#include "SkTemplatesPriv.h"
-
-SkShader* SkShader::CreateBitmapShader(const SkBitmap& src,
- TileMode tmx, TileMode tmy,
- void* storage, size_t storageSize) {
- SkShader* shader;
- SK_PLACEMENT_NEW_ARGS(shader, SkBitmapProcShader, storage,
- storageSize, (src, tmx, tmy));
- return shader;
-}
-
-static SkFlattenable::Registrar gBitmapProcShaderReg("SkBitmapProcShader",
- SkBitmapProcShader::CreateProc);
« no previous file with comments | « skia/sgl/SkBitmapProcShader.h ('k') | skia/sgl/SkBitmapProcState.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698