| OLD | NEW |
| (Empty) |
| 1 /* | |
| 2 * Copyright 2015 Google Inc. | |
| 3 * | |
| 4 * Use of this source code is governed by a BSD-style license that can be | |
| 5 * found in the LICENSE file. | |
| 6 */ | |
| 7 | |
| 8 #ifndef GrGLPathProgram_DEFINED | |
| 9 #define GrGLPathProgram_DEFINED | |
| 10 | |
| 11 #include "gl/GrGLProgram.h" | |
| 12 #include "gl/GrGLPathProgramDataManager.h" | |
| 13 | |
| 14 /* | |
| 15 * The default GrGL programs consist of at the very least a vertex and fragment
shader. | |
| 16 * 1.3+ Nvpr ignores the vertex shader, but both require | |
| 17 * specialized methods for setting transform data. NVPR also requires setting t
he | |
| 18 * projection matrix through a special function call. | |
| 19 */ | |
| 20 class GrGLPathProgram : public GrGLProgram { | |
| 21 protected: | |
| 22 typedef GrGLPathProgramDataManager::SeparableVaryingInfoArray SeparableVaryi
ngInfoArray; | |
| 23 GrGLPathProgram(GrGLGpu*, | |
| 24 const GrProgramDesc&, | |
| 25 const BuiltinUniformHandles&, | |
| 26 GrGLuint programID, | |
| 27 const UniformInfoArray&, | |
| 28 const SeparableVaryingInfoArray&, | |
| 29 GrGLInstalledGeoProc*, | |
| 30 GrGLInstalledXferProc* xferProcessor, | |
| 31 GrGLInstalledFragProcs* fragmentProcessors, | |
| 32 SkTArray<UniformHandle>* passSamplerUniforms); | |
| 33 | |
| 34 private: | |
| 35 void didSetData() override; | |
| 36 virtual void setTransformData(const GrPrimitiveProcessor&, | |
| 37 const GrFragmentProcessor&, | |
| 38 int index, | |
| 39 GrGLInstalledFragProc*) override; | |
| 40 void onSetRenderTargetState(const GrPrimitiveProcessor&, const GrPipeline&)
override; | |
| 41 | |
| 42 friend class GrGLPathProgramBuilder; | |
| 43 | |
| 44 GrGLPathProgramDataManager fPathProgramDataManager; | |
| 45 | |
| 46 typedef GrGLProgram INHERITED; | |
| 47 }; | |
| 48 | |
| 49 #endif | |
| OLD | NEW |