static PassRefPtr<CustomFilterProgram> createCustomFilterProgram(CSSShaderValue* vertexShader, CSSShaderValue* fragmentShader, CustomFilterProgramType programType, const CustomFilterProgramMixSettings& mixSettings, CustomFilterMeshType meshType, StyleResolverState& state) { ResourceFetcher* fetcher = state.document().fetcher(); KURL vertexShaderURL = vertexShader ? vertexShader->completeURL(fetcher) : KURL(); KURL fragmentShaderURL = fragmentShader ? fragmentShader->completeURL(fetcher) : KURL(); // We re-resolve the custom filter style after the shaders are loaded. // We always create a StyleCustomFilterProgram here, and later replace it with a program from the StyleCustomFilterProgramCache, if available. StyleShader* styleVertexShader = vertexShader ? styleShader(vertexShader) : 0; StyleShader* styleFragmentShader = fragmentShader ? styleShader(fragmentShader) : 0; RefPtr<StyleCustomFilterProgram> program = StyleCustomFilterProgram::create(vertexShaderURL, styleVertexShader, fragmentShaderURL, styleFragmentShader, programType, mixSettings, meshType); state.elementStyleResources().setHasNewCustomFilterProgram(true); return program.release(); }
static PassRefPtr<CustomFilterProgram> createCustomFilterProgram(CSSShaderValue* vertexShader, CSSShaderValue* fragmentShader, CustomFilterProgramType programType, const CustomFilterProgramMixSettings& mixSettings, CustomFilterMeshType meshType, StyleResolverState& state) { ResourceFetcher* fetcher = state.document()->fetcher(); KURL vertexShaderURL = vertexShader ? vertexShader->completeURL(fetcher) : KURL(); KURL fragmentShaderURL = fragmentShader ? fragmentShader->completeURL(fetcher) : KURL(); RefPtr<StyleCustomFilterProgram> program = StyleCustomFilterProgram::create(vertexShaderURL, vertexShader ? styleShader(vertexShader, state) : 0, fragmentShaderURL, fragmentShader ? styleShader(fragmentShader, state) : 0, programType, mixSettings, meshType); // FIXME // FIXME: Find out what the fixme above means. return program.release(); }