From da743935fa0aba854a96654a474454b09e5488e8 Mon Sep 17 00:00:00 2001 From: egdaniel Date: Tue, 14 Jun 2016 15:30:05 -0700 Subject: Revert of Refactoring of GPU NormalMap handling out into its own class (patchset #7 id:120001 of https://codereview.chromium.org/2043393002/ ) Reason for revert: Breaking build and deps roll. Need to move include of SkBitmapProcShader in SkLightingShader.cpp from gpu include list to general list. Original issue's description: > Refactoring of GPU NormalMap handling out into its own class. > > The purpose of this change is to refactor the handling of normal maps out of SkLightingShader, laying the groundwork to eventually allow for multiple normal sources. > > What this CL includes: > > - Created a new 'NormalMapFP', out of the existing normal map reading behavior in LightingFP. > > - Encapsulates this new fragment processor on a new class NormalMapSource. > > - Created a NormalSource abstraction that will interface with SkLightingShader. > > - Adapted SkLightingShader to use the normals from its NormalSource field ON THE GPU SIDE. No changes done to the CPU side yet. > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2043393002 > > Committed: https://skia.googlesource.com/skia/+/87b0dd00cf9409c5fc990f5d0bb7c0df837f08da TBR=reed@google.com,dvonbeck@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review-Url: https://codereview.chromium.org/2062133004 --- src/core/SkLightingShader.h | 52 --------------------------------------------- 1 file changed, 52 deletions(-) (limited to 'src/core/SkLightingShader.h') diff --git a/src/core/SkLightingShader.h b/src/core/SkLightingShader.h index 6301eeeea1..f25b30342a 100644 --- a/src/core/SkLightingShader.h +++ b/src/core/SkLightingShader.h @@ -16,58 +16,6 @@ class SkMatrix; class SK_API SkLightingShader { public: - /** Abstract class that generates or reads in normals for use by SkLightingShader. Currently - implements the GPU side only. Not to be used as part of the API yet. Used internally by - SkLightingShader. - */ - class NormalSource : public SkFlattenable { - public: - virtual ~NormalSource(); - -#if SK_SUPPORT_GPU - - /** Returns a fragment processor that takes no input and outputs a normal (already rotated) - as its output color. To be used as a child fragment processor. - */ - virtual sk_sp asFragmentProcessor( - GrContext* context, - const SkMatrix& viewM, - const SkMatrix* localMatrix, - SkFilterQuality filterQuality, - SkSourceGammaTreatment gammaTreatment) const = 0; -#endif - - SK_DEFINE_FLATTENABLE_TYPE(NormalSource) - }; - - /** Returns a normal source that provides normals sourced from the the normal map argument. - Not to be used as part of the API yet. Used internally by SkLightingShader. - - @param normal the normal map - @param invNormRotation rotation applied to the normal map's normals - @param normLocalM the local matrix for the normal map - - nullptr will be returned if - 'normal' is empty - 'normal' too big (> 65535 on either side) - - The normal map is currently assumed to be an 8888 image where the normal at a texel - is retrieved by: - N.x = R-127; - N.y = G-127; - N.z = B-127; - N.normalize(); - The +Z axis is thus encoded in RGB as (127, 127, 255) while the -Z axis is - (127, 127, 0). - */ - class NormalMapSource { - public: - static sk_sp Make(const SkBitmap& normal, const SkVector& invNormRotation, - const SkMatrix* normLocalM); - - SK_DECLARE_FLATTENABLE_REGISTRAR_GROUP() - }; - /** Returns a shader that lights the diffuse and normal maps with a set of lights. It returns a shader with a reference count of 1. -- cgit v1.2.3