Minor cleanup of SkLightingShader

Fix:
  PM component swizzling on Macs
  Serialization

Review URL: https://codereview.chromium.org/1270533003
This commit is contained in:
robertphillips 2015-07-30 10:11:42 -07:00 committed by Commit bot
parent f684a78d9e
commit c3eb50cd9e
3 changed files with 17 additions and 5 deletions

View File

@ -15,7 +15,7 @@
#include "SkReadBuffer.h" #include "SkReadBuffer.h"
#include "SkWriteBuffer.h" #include "SkWriteBuffer.h"
/////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////
/* /*
SkLightingShader TODOs: SkLightingShader TODOs:
@ -93,7 +93,7 @@ public:
}; };
SK_TO_STRING_OVERRIDE() SK_TO_STRING_OVERRIDE()
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(LightingShader) SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkLightingShaderImpl)
protected: protected:
void flatten(SkWriteBuffer&) const override; void flatten(SkWriteBuffer&) const override;
@ -105,6 +105,8 @@ private:
SkLightingShader::Light fLight; SkLightingShader::Light fLight;
SkColor fAmbientColor; // linear (unpremul) color SkColor fAmbientColor; // linear (unpremul) color
friend class SkLightingShader;
typedef SkShader INHERITED; typedef SkShader INHERITED;
}; };
@ -447,9 +449,9 @@ void SkLightingShaderImpl::LightingShaderContext::shadeSpan(int x, int y,
for (int i = 0; i < n; ++i) { for (int i = 0; i < n; ++i) {
SkASSERT(0xFF == SkColorGetA(tmpNormal2[i])); // opaque -> unpremul SkASSERT(0xFF == SkColorGetA(tmpNormal2[i])); // opaque -> unpremul
norm.set(SkIntToScalar(SkColorGetR(tmpNormal2[i]))-127.0f, norm.set(SkIntToScalar(SkGetPackedR32(tmpNormal2[i]))-127.0f,
SkIntToScalar(SkColorGetG(tmpNormal2[i]))-127.0f, SkIntToScalar(SkGetPackedG32(tmpNormal2[i]))-127.0f,
SkIntToScalar(SkColorGetB(tmpNormal2[i]))-127.0f); SkIntToScalar(SkGetPackedB32(tmpNormal2[i]))-127.0f);
norm.normalize(); norm.normalize();
SkColor diffColor = SkUnPreMultiply::PMColorToColor(tmpColor2[i]); SkColor diffColor = SkUnPreMultiply::PMColorToColor(tmpColor2[i]);
@ -582,3 +584,9 @@ SkShader* SkLightingShader::Create(const SkBitmap& diffuse, const SkBitmap& norm
} }
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkLightingShader)
SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLightingShaderImpl)
SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END
///////////////////////////////////////////////////////////////////////////////

View File

@ -41,6 +41,7 @@
#include "SkLayerRasterizer.h" #include "SkLayerRasterizer.h"
#include "SkLerpXfermode.h" #include "SkLerpXfermode.h"
#include "SkLightingImageFilter.h" #include "SkLightingImageFilter.h"
#include "../effects/SkLightingShader.h"
#include "SkLocalMatrixShader.h" #include "SkLocalMatrixShader.h"
#include "SkLumaColorFilter.h" #include "SkLumaColorFilter.h"
#include "SkMagnifierImageFilter.h" #include "SkMagnifierImageFilter.h"
@ -132,6 +133,7 @@ public:
SkColorFilter::InitializeFlattenables(); SkColorFilter::InitializeFlattenables();
SkGradientShader::InitializeFlattenables(); SkGradientShader::InitializeFlattenables();
SkLightingImageFilter::InitializeFlattenables(); SkLightingImageFilter::InitializeFlattenables();
SkLightingShader::InitializeFlattenables();
SkTableColorFilter::InitializeFlattenables(); SkTableColorFilter::InitializeFlattenables();
SkXfermode::InitializeFlattenables(); SkXfermode::InitializeFlattenables();
} }

View File

@ -37,6 +37,7 @@
#include "SkLayerRasterizer.h" #include "SkLayerRasterizer.h"
#include "SkLerpXfermode.h" #include "SkLerpXfermode.h"
#include "SkLightingImageFilter.h" #include "SkLightingImageFilter.h"
#include "../effects/SkLightingShader.h"
#include "SkLocalMatrixShader.h" #include "SkLocalMatrixShader.h"
#include "SkLumaColorFilter.h" #include "SkLumaColorFilter.h"
#include "SkMagnifierImageFilter.h" #include "SkMagnifierImageFilter.h"
@ -111,6 +112,7 @@ public:
SkColorFilter::InitializeFlattenables(); SkColorFilter::InitializeFlattenables();
SkGradientShader::InitializeFlattenables(); SkGradientShader::InitializeFlattenables();
SkLightingImageFilter::InitializeFlattenables(); SkLightingImageFilter::InitializeFlattenables();
SkLightingShader::InitializeFlattenables();
SkTableColorFilter::InitializeFlattenables(); SkTableColorFilter::InitializeFlattenables();
SkXfermode::InitializeFlattenables(); SkXfermode::InitializeFlattenables();
} }