summaryrefslogtreecommitdiffstats
path: root/skia/sgl/SkAntiRun.h
diff options
context:
space:
mode:
Diffstat (limited to 'skia/sgl/SkAntiRun.h')
-rw-r--r--skia/sgl/SkAntiRun.h185
1 files changed, 0 insertions, 185 deletions
diff --git a/skia/sgl/SkAntiRun.h b/skia/sgl/SkAntiRun.h
deleted file mode 100644
index 12930e66..0000000
--- a/skia/sgl/SkAntiRun.h
+++ /dev/null
@@ -1,185 +0,0 @@
-/* libs/graphics/sgl/SkAntiRun.h
-**
-** 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.
-*/
-
-#ifndef SkAntiRun_DEFINED
-#define SkAntiRun_DEFINED
-
-#include "SkBlitter.h"
-
-inline int sk_make_nonzero_neg_one(int x)
-{
- return (x | -x) >> 31;
-}
-
-#if 0
-template <int kShift> class SkAntiRun {
- static uint8_t coverage_to_alpha(int aa)
- {
- aa <<= 8 - 2*kShift;
- aa -= aa >> (8 - kShift - 1);
- return SkToU8(aa);
- }
-public:
- void set(int start, int stop)
- {
- SkASSERT(start >= 0 && stop > start);
-
-#if 1
- int fb = start & kMask;
- int fe = stop & kMask;
- int n = (stop >> kShift) - (start >> kShift) - 1;
-
- if (n < 0)
- {
- fb = fe - fb;
- n = 0;
- fe = 0;
- }
- else
- {
- if (fb == 0)
- n += 1;
- else
- fb = (1 << kShift) - fb;
- }
-
- fStartAlpha = coverage_to_alpha(fb);
- fMiddleCount = n;
- fStopAlpha = coverage_to_alpha(fe);
-#else
- int x0 = start >> kShift;
- int x1 = (stop - 1) >> kShift;
- int middle = x1 - x0;
- int aa;
-
- if (middle == 0)
- {
- aa = stop - start;
- aa <<= 8 - 2*kShift;
- aa -= aa >> (8 - kShift - 1);
- SkASSERT(aa > 0 && aa < kMax);
- fStartAlpha = SkToU8(aa);
- fMiddleCount = 0;
- fStopAlpha = 0;
- }
- else
- {
- int aa = start & kMask;
- aa <<= 8 - 2*kShift;
- aa -= aa >> (8 - kShift - 1);
- SkASSERT(aa >= 0 && aa < kMax);
- if (aa)
- fStartAlpha = SkToU8(kMax - aa);
- else
- {
- fStartAlpha = 0;
- middle += 1;
- }
- aa = stop & kMask;
- aa <<= 8 - 2*kShift;
- aa -= aa >> (8 - kShift - 1);
- SkASSERT(aa >= 0 && aa < kMax);
- middle += sk_make_nonzero_neg_one(aa);
-
- fStopAlpha = SkToU8(aa);
- fMiddleCount = middle;
- }
- SkASSERT(fStartAlpha < kMax);
- SkASSERT(fStopAlpha < kMax);
-#endif
- }
-
- void blit(int x, int y, SkBlitter* blitter)
- {
- int16_t runs[2];
- runs[0] = 1;
- runs[1] = 0;
-
- if (fStartAlpha)
- {
- blitter->blitAntiH(x, y, &fStartAlpha, runs);
- x += 1;
- }
- if (fMiddleCount)
- {
- blitter->blitH(x, y, fMiddleCount);
- x += fMiddleCount;
- }
- if (fStopAlpha)
- blitter->blitAntiH(x, y, &fStopAlpha, runs);
- }
-
- uint8_t getStartAlpha() const { return fStartAlpha; }
- int getMiddleCount() const { return fMiddleCount; }
- uint8_t getStopAlpha() const { return fStopAlpha; }
-
-private:
- uint8_t fStartAlpha, fStopAlpha;
- int fMiddleCount;
-
- enum {
- kMask = (1 << kShift) - 1,
- kMax = (1 << (8 - kShift)) - 1
- };
-};
-#endif
-
-////////////////////////////////////////////////////////////////////////////////////
-
-class SkAlphaRuns {
-public:
- int16_t* fRuns;
- uint8_t* fAlpha;
-
- bool empty() const
- {
- SkASSERT(fRuns[0] > 0);
- return fAlpha[0] == 0 && fRuns[fRuns[0]] == 0;
- }
- void reset(int width);
- void add(int x, U8CPU startAlpha, int middleCount, U8CPU stopAlpha, U8CPU maxValue);
- SkDEBUGCODE(void assertValid(int y, int maxStep) const;)
- SkDEBUGCODE(void dump() const;)
-
- static void Break(int16_t runs[], uint8_t alpha[], int x, int count);
- static void BreakAt(int16_t runs[], uint8_t alpha[], int x)
- {
- while (x > 0)
- {
- int n = runs[0];
- SkASSERT(n > 0);
-
- if (x < n)
- {
- alpha[x] = alpha[0];
- runs[0] = SkToS16(x);
- runs[x] = SkToS16(n - x);
- break;
- }
- runs += n;
- alpha += n;
- x -= n;
- }
- }
-
-private:
- SkDEBUGCODE(int fWidth;)
- SkDEBUGCODE(void validate() const;)
-};
-
-#endif
-