bool ArgumentCoder<WebCore::CustomFilterProgramInfo>::decode(ArgumentDecoder* decoder, CustomFilterProgramInfo& programInfo) { String vertexShaderString; String fragmentShaderString; CustomFilterProgramType programType; CustomFilterMeshType meshType; CustomFilterProgramMixSettings mixSettings; if (!decoder->decode(vertexShaderString)) return false; if (!decoder->decode(fragmentShaderString)) return false; if (!decoder->decodeEnum(programType)) return false; if (!decoder->decodeEnum(meshType)) return false; if (!decoder->decodeEnum(mixSettings.blendMode)) return false; if (!decoder->decodeEnum(mixSettings.compositeOperator)) return false; programInfo = CustomFilterProgramInfo(vertexShaderString, fragmentShaderString, programType, mixSettings, meshType); return true; }
CustomFilterProgramInfo CustomFilterProgram::programInfo() const { ASSERT(isLoaded()); return CustomFilterProgramInfo(vertexShaderString(), fragmentShaderString(), m_mixSettings); }
static CustomFilterProgramInfo programCacheKey(StyleCustomFilterProgram* program) { ASSERT(program->vertexShaderURL().isValid() || program->fragmentShaderURL().isValid()); return CustomFilterProgramInfo(program->vertexShaderURL(), program->fragmentShaderURL(), program->programType(), program->mixSettings(), program->meshType()); }