Pass the GrCustomStage and key to GrGLProgramStage emitCode.

The key computation may encode some analysis that emitCode may be able to skip by examining the key.
Review URL: https://codereview.appspot.com/6709075

git-svn-id: http://skia.googlecode.com/svn/trunk@6075 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
bsalomon@google.com 2012-10-24 17:34:46 +00:00
Родитель 985fa79141
Коммит 96182216f1
2 изменённых файлов: 14 добавлений и 1 удалений

Просмотреть файл

@ -955,7 +955,13 @@ GrGLProgramStage* GrGLProgram::GenStageCode(const GrCustomStage* stage,
// Enclose custom code in a block to avoid namespace conflicts // Enclose custom code in a block to avoid namespace conflicts
builder->fVSCode.appendf("\t{ // %s\n", glStage->name()); builder->fVSCode.appendf("\t{ // %s\n", glStage->name());
builder->fFSCode.appendf("\t{ // %s \n", glStage->name()); builder->fFSCode.appendf("\t{ // %s \n", glStage->name());
glStage->emitCode(builder, varyingVSName, fsOutColor, fsInColor, textureSamplers); glStage->emitCode(builder,
*stage,
desc.fCustomStageKey,
varyingVSName,
fsOutColor,
fsInColor,
textureSamplers);
builder->fVSCode.appendf("\t}\n"); builder->fVSCode.appendf("\t}\n");
builder->fFSCode.appendf("\t}\n"); builder->fFSCode.appendf("\t}\n");

Просмотреть файл

@ -50,6 +50,9 @@ public:
stages. stages.
@param builder Interface used to emit code in the shaders. @param builder Interface used to emit code in the shaders.
@param stage The custom stage that generated this program stage.
@param key The key that was computed by StageKey() from the generating
GrCustomStage.
@param vertexCoords A vec2 of texture coordinates in the VS, which may be altered. This will @param vertexCoords A vec2 of texture coordinates in the VS, which may be altered. This will
be removed soon and stages will be responsible for computing their own be removed soon and stages will be responsible for computing their own
coords. coords.
@ -66,6 +69,8 @@ public:
reads in the generated code. reads in the generated code.
*/ */
virtual void emitCode(GrGLShaderBuilder* builder, virtual void emitCode(GrGLShaderBuilder* builder,
const GrCustomStage& stage,
StageKey key,
const char* vertexCoords, const char* vertexCoords,
const char* outputColor, const char* outputColor,
const char* inputColor, const char* inputColor,
@ -103,6 +108,8 @@ public:
const TextureSamplerArray&) = 0; const TextureSamplerArray&) = 0;
virtual void emitCode(GrGLShaderBuilder* builder, virtual void emitCode(GrGLShaderBuilder* builder,
const GrCustomStage&,
StageKey,
const char* vertexCoords, const char* vertexCoords,
const char* outputColor, const char* outputColor,
const char* inputColor, const char* inputColor,