add SkVM_fwd.h
Tweaking SkVM.h requires ~550 build steps because SkShaderBase.h includes it. By switching that to forward declarations of the types using SkVM_fwd.h, it's down to ~15. Big deal for laptop productivity. Change-Id: Ide5cc776b8a0c6fa6473cf5f43acabdf566e8808 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/262860 Commit-Queue: Mike Klein <mtklein@google.com> Auto-Submit: Mike Klein <mtklein@google.com> Reviewed-by: Mike Reed <reed@google.com>
This commit is contained in:
parent
b1ff79aae8
commit
8e71744169
@ -400,6 +400,7 @@ skia_core_sources = [
|
||||
"$_src/core/SkUtils.h",
|
||||
"$_src/core/SkVM.cpp",
|
||||
"$_src/core/SkVM.h",
|
||||
"$_src/core/SkVM_fwd.h",
|
||||
"$_src/core/SkVMBlitter.cpp",
|
||||
"$_src/core/SkValidationUtils.h",
|
||||
"$_src/core/SkVertices.cpp",
|
||||
|
@ -14,6 +14,7 @@
|
||||
#include "src/core/SkColorFilter_Matrix.h"
|
||||
#include "src/core/SkRasterPipeline.h"
|
||||
#include "src/core/SkReadBuffer.h"
|
||||
#include "src/core/SkVM.h"
|
||||
#include "src/core/SkWriteBuffer.h"
|
||||
|
||||
static uint16_t ComputeFlags(const float matrix[20]) {
|
||||
|
@ -10,6 +10,7 @@
|
||||
|
||||
#include "include/core/SkTypes.h"
|
||||
#include "include/private/SkTHash.h"
|
||||
#include "src/core/SkVM_fwd.h"
|
||||
#include <vector> // std::vector
|
||||
|
||||
class SkWStream;
|
||||
@ -305,8 +306,6 @@ namespace skvm {
|
||||
|
||||
struct Color { skvm::F32 r,g,b,a; };
|
||||
|
||||
class Program;
|
||||
|
||||
class Builder {
|
||||
public:
|
||||
struct Instruction {
|
||||
|
22
src/core/SkVM_fwd.h
Normal file
22
src/core/SkVM_fwd.h
Normal file
@ -0,0 +1,22 @@
|
||||
/*
|
||||
* Copyright 2020 Google LLC
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license that can be
|
||||
* found in the LICENSE file.
|
||||
*/
|
||||
|
||||
#ifndef SkVM_fwd_DEFINED
|
||||
#define SkVM_fwd_DEFINED
|
||||
|
||||
namespace skvm {
|
||||
class Assembler;
|
||||
class Builder;
|
||||
class Program;
|
||||
struct Arg;
|
||||
struct I32;
|
||||
struct F32;
|
||||
struct Color;
|
||||
struct Uniforms;
|
||||
}
|
||||
|
||||
#endif//SkVM_fwd_DEFINED
|
@ -10,6 +10,7 @@
|
||||
#include "src/core/SkArenaAlloc.h"
|
||||
#include "src/core/SkRasterPipeline.h"
|
||||
#include "src/core/SkReadBuffer.h"
|
||||
#include "src/core/SkVM.h"
|
||||
#include "src/core/SkWriteBuffer.h"
|
||||
#include "src/shaders/SkColorFilterShader.h"
|
||||
|
||||
|
@ -12,6 +12,7 @@
|
||||
#include "src/core/SkRasterPipeline.h"
|
||||
#include "src/core/SkReadBuffer.h"
|
||||
#include "src/core/SkUtils.h"
|
||||
#include "src/core/SkVM.h"
|
||||
#include "src/shaders/SkColorShader.h"
|
||||
|
||||
SkColorShader::SkColorShader(SkColor c) : fColor(c) {}
|
||||
|
@ -12,6 +12,7 @@
|
||||
#include "src/core/SkOpts.h"
|
||||
#include "src/core/SkRasterPipeline.h"
|
||||
#include "src/core/SkReadBuffer.h"
|
||||
#include "src/core/SkVM.h"
|
||||
#include "src/core/SkWriteBuffer.h"
|
||||
#include "src/image/SkImage_Base.h"
|
||||
#include "src/shaders/SkBitmapProcShader.h"
|
||||
|
@ -15,6 +15,7 @@
|
||||
#include "src/core/SkRasterPipeline.h"
|
||||
#include "src/core/SkReadBuffer.h"
|
||||
#include "src/core/SkTLazy.h"
|
||||
#include "src/core/SkVM.h"
|
||||
#include "src/core/SkWriteBuffer.h"
|
||||
#include "src/shaders/SkBitmapProcShader.h"
|
||||
#include "src/shaders/SkColorShader.h"
|
||||
@ -224,6 +225,15 @@ bool SkShaderBase::program(skvm::Builder* p,
|
||||
return false;
|
||||
}
|
||||
|
||||
bool SkShaderBase::onProgram(skvm::Builder*,
|
||||
const SkMatrix& ctm, const SkMatrix* localM,
|
||||
SkFilterQuality quality, SkColorSpace* dstCS,
|
||||
skvm::Uniforms* uniforms, SkArenaAlloc* alloc,
|
||||
skvm::F32 x, skvm::F32 y,
|
||||
skvm::F32* r, skvm::F32* g, skvm::F32* b, skvm::F32* a) const {
|
||||
return false;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
sk_sp<SkFlattenable> SkEmptyShader::CreateProc(SkReadBuffer&) {
|
||||
|
@ -15,7 +15,7 @@
|
||||
#include "src/core/SkEffectPriv.h"
|
||||
#include "src/core/SkMask.h"
|
||||
#include "src/core/SkTLazy.h"
|
||||
#include "src/core/SkVM.h"
|
||||
#include "src/core/SkVM_fwd.h"
|
||||
|
||||
#if SK_SUPPORT_GPU
|
||||
#include "src/gpu/GrFPArgs.h"
|
||||
@ -214,15 +214,6 @@ public:
|
||||
skvm::F32 x, skvm::F32 y,
|
||||
skvm::F32* r, skvm::F32* g, skvm::F32* b, skvm::F32* a) const;
|
||||
|
||||
virtual bool onProgram(skvm::Builder*,
|
||||
const SkMatrix& ctm, const SkMatrix* localM,
|
||||
SkFilterQuality quality, SkColorSpace* dstCS,
|
||||
skvm::Uniforms* uniforms, SkArenaAlloc* alloc,
|
||||
skvm::F32 x, skvm::F32 y,
|
||||
skvm::F32* r, skvm::F32* g, skvm::F32* b, skvm::F32* a) const {
|
||||
return false;
|
||||
}
|
||||
|
||||
protected:
|
||||
SkShaderBase(const SkMatrix* localMatrix = nullptr);
|
||||
|
||||
@ -251,6 +242,13 @@ private:
|
||||
// This is essentially const, but not officially so it can be modified in constructors.
|
||||
SkMatrix fLocalMatrix;
|
||||
|
||||
virtual bool onProgram(skvm::Builder*,
|
||||
const SkMatrix& ctm, const SkMatrix* localM,
|
||||
SkFilterQuality quality, SkColorSpace* dstCS,
|
||||
skvm::Uniforms* uniforms, SkArenaAlloc* alloc,
|
||||
skvm::F32 x, skvm::F32 y,
|
||||
skvm::F32* r, skvm::F32* g, skvm::F32* b, skvm::F32* a) const;
|
||||
|
||||
typedef SkShader INHERITED;
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user