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;
}
Ejemplo n.º 2
0
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());
}