+++ /dev/null
-# Used to recompile required skia libraries with static initializers turned
-# off. This fixes a bug in which the linux compiler was incorrectly stripping
-# required global static methods in an optimization effort.
-
-SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
-CWD=$SCRIPT_DIR/../
-
-DEFINES="skia_static_initializers=0"
-export GYP_DEFINES="$DEFINES"
-
-make clean -C $CWD
-make -C $CWD debugger -j
class SkFlattenableReadBuffer;
class SkFlattenableWriteBuffer;
-#if SK_ALLOW_STATIC_GLOBAL_INITIALIZERS
-
-#define SK_DEFINE_FLATTENABLE_REGISTRAR(flattenable) \
- static SkFlattenable::Registrar g##flattenable##Reg(#flattenable, \
- flattenable::CreateProc);
-#define SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(flattenable) \
- static SkFlattenable::Registrar g##flattenable##Reg(#flattenable, \
- flattenable::CreateProc);
-
-#define SK_DECLARE_FLATTENABLE_REGISTRAR_GROUP()
-#define SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(flattenable)
-#define SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END
-
-#else
-
-#define SK_DEFINE_FLATTENABLE_REGISTRAR(flattenable)
#define SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(flattenable) \
SkFlattenable::Registrar(#flattenable, flattenable::CreateProc);
#define SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END \
}
-#endif
-
#define SK_DECLARE_UNFLATTENABLE_OBJECT() \
virtual Factory getFactory() SK_OVERRIDE { return NULL; }; \
virtual void flatten(SkFlattenableWriteBuffer&) const;
private:
-#if !SK_ALLOW_STATIC_GLOBAL_INITIALIZERS
static void InitializeFlattenables();
-#endif
friend class SkGraphics;
friend class SkFlattenableWriteBuffer;
buffer.writeFlattenable(fDataSet);
}
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkAnnotation)
-
const char* SkAnnotationKeys::URL_Key() {
return "SkAnnotationKey_URL";
};
return shader;
}
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkBitmapProcShader)
-
///////////////////////////////////////////////////////////////////////////////
static const char* gTileModeName[] = {
buffer.writeUInt(fFlags);
buffer.writeColorArray(fColors, fCount);
}
-
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkColorTable)
} while (count > 0);
}
}
-
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkComposeShader)
-
buffer.readByteArray(const_cast<void*>(fPtr));
}
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkData)
-
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
gEmptySet->ref();
return gEmptySet;
}
-
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkDataSet)
gCount += 1;
}
-#if !SK_ALLOW_STATIC_GLOBAL_INITIALIZERS && defined(SK_DEBUG)
+#ifdef SK_DEBUG
static void report_no_entries(const char* functionName) {
if (!gCount) {
SkDebugf("%s has no registered name/factory pairs."
#endif
SkFlattenable::Factory SkFlattenable::NameToFactory(const char name[]) {
-#if !SK_ALLOW_STATIC_GLOBAL_INITIALIZERS && defined(SK_DEBUG)
+#ifdef SK_DEBUG
report_no_entries(__FUNCTION__);
#endif
const Pair* pairs = gPairs;
}
const char* SkFlattenable::FactoryToName(Factory fact) {
-#if !SK_ALLOW_STATIC_GLOBAL_INITIALIZERS && defined(SK_DEBUG)
+#ifdef SK_DEBUG
report_no_entries(__FUNCTION__);
#endif
const Pair* pairs = gPairs;
#endif
void SkGraphics::Init() {
-#if !SK_ALLOW_STATIC_GLOBAL_INITIALIZERS
SkFlattenable::InitializeFlattenables();
-#endif
#ifdef BUILD_EMBOSS_TABLE
SkEmbossMask_BuildTable();
#endif
this->setPreLocked(fStorage, fCTable);
}
-
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkMallocPixelRef)
// use bit-or so that we always call both, even if the first one succeeds
return fPE0->filterPath(dst, src, rec) | fPE1->filterPath(dst, src, rec);
}
-
-///////////////////////////////////////////////////////////////////////////////
-
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkComposePathEffect)
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkSumPathEffect)
-
return kColor_GradientType;
}
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkColorShader)
-
///////////////////////////////////////////////////////////////////////////////
#include "SkEmptyShader.h"
void SkEmptyShader::shadeSpanAlpha(int x, int y, uint8_t alpha[], int count) {
SkDEBUGFAIL("should never get called, since setContext() returned false");
}
-
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkEmptyShader)
}
return fAdvance;
}
-
-///////////////////////////////////////////////////////////////////////////////
-
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkPath1DPathEffect)
-
fMatrixIsInvertible = fMatrix.invert(&fInverse);
}
-SK_DEFINE_FLATTENABLE_REGISTRAR(Sk2DPathEffect)
-
///////////////////////////////////////////////////////////////////////////////
bool SkLine2DPathEffect::filterPath(SkPath *dst, const SkPath &src, SkStrokeRec *rec) {
buffer.writeScalar(fWidth);
}
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkLine2DPathEffect)
-
///////////////////////////////////////////////////////////////////////////////
SkPath2DPathEffect::SkPath2DPathEffect(const SkMatrix& m, const SkPath& p)
void SkPath2DPathEffect::next(const SkPoint& loc, int u, int v, SkPath* dst) {
dst->addPath(fPath, loc.fX, loc.fY);
}
-
-///////////////////////////////////////////////////////////////////////////////
-
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkPath2DPathEffect)
{
// override in subclass
}
-
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkAvoidXfermode)
*result = fBitmap;
return true;
}
-
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkBitmapSource)
return static_cast<const GrBlendEffect&>(s).mode();
}
#endif
-
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkBlendImageFilter)
return false;
}
}
-
-///////////////////////////////////////////////////////////////////////////////
-
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkBlurDrawLooper)
-
return NULL;
#endif
}
-
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkBlurImageFilter)
*result = device.get()->accessBitmap(false);
return true;
}
-
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkColorFilterImageFilter)
-
}
return true;
}
-
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkColorMatrixFilter)
SkCornerPathEffect::SkCornerPathEffect(SkFlattenableReadBuffer& buffer) {
fRadius = buffer.readScalar();
}
-
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkCornerPathEffect)
-
fIntervals = (SkScalar*)sk_malloc_throw(sizeof(SkScalar) * fCount);
buffer.readScalarArray(fIntervals);
}
-
-///////////////////////////////////////////////////////////////////////////////
-
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkDashPathEffect)
fSegLength = buffer.readScalar();
fPerterb = buffer.readScalar();
}
-
-///////////////////////////////////////////////////////////////////////////////
-
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkDiscretePathEffect)
-
buffer.writeByteArray(&tmpLight, sizeof(tmpLight));
buffer.writeScalar(fBlurRadius);
}
-
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkEmbossMaskFilter)
}
#endif
}
-
-///////////////////////////////////////////////////////////////////////////////
-
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkLayerDrawLooper)
buffer.writePoint(rec->fOffset);
}
}
-
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkLayerRasterizer)
-
}
return true;
}
-
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkMagnifierImageFilter)
filterBorderPixels(src, result, bottom);
return true;
}
-
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkMatrixConvolutionImageFilter)
}
#endif
-
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkDilateImageFilter)
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkErodeImageFilter)
: INHERITED(rb) {
fOpColor = rb.readColor();
}
-
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkPixelXorXfermode)
SkPaintShape::SkPaintShape(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) {
buffer.readPaint(&fPaint);
}
-
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkRectShape)
-
return resultTex;
}
#endif
-
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkSingleInputImageFilter)
return true;
}
-
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkStippleMaskFilter)
SkDownSampleImageFilter::SkDownSampleImageFilter(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) {
fScale = buffer.readScalar();
}
-
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkOffsetImageFilter)
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkComposeImageFilter)
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkMergeImageFilter)
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkDownSampleImageFilter)
memcpy(span, src, count << 1);
}
}
-
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkTransparentShader)
fData = (SkData*)buffer.readFlattenable();
this->setPreLocked(const_cast<void*>(fData->data()), NULL);
}
-
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkDataPixelRef)
buffer.readByteArray(fPage0);
}
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkFlipPixelRef)
-
///////////////////////////////////////////////////////////////////////////////
static void copyRect(const SkBitmap& dst, const SkIRect& rect,
this->mutex()->release();
}
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkImageRef_GlobalPool)
-
///////////////////////////////////////////////////////////////////////////////
// global imagerefpool wrappers
#include "SkTypes.h"
-#if !SK_ALLOW_STATIC_GLOBAL_INITIALIZERS
-
#include "SkBitmapProcShader.h"
#include "SkFlipPixelRef.h"
#include "SkImageRef_ashmem.h"
SkTableColorFilter::InitializeFlattenables();
SkXfermode::InitializeFlattenables();
}
-
-#endif
}
this->useDefaultMutex(); // we don't need/want the shared imageref mutex
}
-
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkImageRef_ashmem)
SkCosineMapper::SkCosineMapper(SkFlattenableReadBuffer& rb)
: SkUnitMapper(rb) {}
-
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkDiscreteMapper)
-SK_DEFINE_FLATTENABLE_REGISTRAR(SkCosineMapper)
return (int)(r->nextF() * count);
}
-// min is inclusive, max is exclusive
-int random_int(GrRandom* r, int min, int max) {
- return (int)(r->nextF() * (max-min)) + min;
-}
-
bool random_bool(GrRandom* r) {
return r->nextF() > .5f;
}