Home | History | Annotate | Download | only in effects

Lines Matching refs:fragBuilder

255     GrGLSLFPFragmentBuilder* fragBuilder = args.fFragBuilder;
257 fragBuilder->codeAppendf("vec4 color = %s;", args.fInputColor);
260 fragBuilder->codeAppendf("float nonZeroAlpha = max(color.a, 0.00001);");
261 fragBuilder->codeAppendf("color = vec4(color.rgb / nonZeroAlpha, nonZeroAlpha);");
265 fragBuilder->codeAppendf("float luma = dot(color, vec4(%f, %f, %f, 0));",
267 fragBuilder->codeAppendf("color = vec4(luma, luma, luma, 0);");
271 fragBuilder->codeAppendf("color = vec4(1, 1, 1, 1) - color;");
276 fragBuilder->codeAppendf("float fmax = max(color.r, max(color.g, color.b));");
277 fragBuilder->codeAppendf("float fmin = min(color.r, min(color.g, color.b));");
278 fragBuilder->codeAppendf("float l = (fmax + fmin) / 2;");
280 fragBuilder->codeAppendf("float h;");
281 fragBuilder->codeAppendf("float s;");
283 fragBuilder->codeAppendf("if (fmax == fmin) {");
284 fragBuilder->codeAppendf(" h = 0;");
285 fragBuilder->codeAppendf(" s = 0;");
286 fragBuilder->codeAppendf("} else {");
287 fragBuilder->codeAppendf(" float d = fmax - fmin;");
288 fragBuilder->codeAppendf(" s = l > 0.5 ?");
289 fragBuilder->codeAppendf(" d / (2 - fmax - fmin) :");
290 fragBuilder->codeAppendf(" d / (fmax + fmin);");
291 fragBuilder->codeAppendf(" if (fmax == color.r) {");
292 fragBuilder->codeAppendf(" h = (color.g - color.b) / d + ");
293 fragBuilder->codeAppendf(" (color.g < color.b ? 6 : 0);");
294 fragBuilder->codeAppendf(" } else if (fmax == color.g) {");
295 fragBuilder->codeAppendf(" h = (color.b - color.r) / d + 2;");
296 fragBuilder->codeAppendf(" } else {");
297 fragBuilder->codeAppendf(" h = (color.r - color.g) / d + 4;");
298 fragBuilder->codeAppendf(" }");
299 fragBuilder->codeAppendf("}");
300 fragBuilder->codeAppendf("h /= 6;");
301 fragBuilder->codeAppendf("l = 1.0 - l;");
309 fragBuilder->emitFunction(kFloat_GrSLType,
325 fragBuilder->codeAppendf("if (s == 0) {");
326 fragBuilder->codeAppendf(" color = vec4(l, l, l, 0);");
327 fragBuilder->codeAppendf("} else {");
328 fragBuilder->codeAppendf(" float q = l < 0.5 ? l * (1 + s) : l + s - l * s;");
329 fragBuilder->codeAppendf(" float p = 2 * l - q;");
330 fragBuilder->codeAppendf(" color.r = %s(p, q, h + 1/3.);", hue2rgbFuncName.c_str());
331 fragBuilder->codeAppendf(" color.g = %s(p, q, h);", hue2rgbFuncName.c_str());
332 fragBuilder->codeAppendf(" color.b = %s(p, q, h - 1/3.);", hue2rgbFuncName.c_str());
333 fragBuilder->codeAppendf("}");
337 fragBuilder->codeAppendf("if (%s != 0) {", contrast);
338 fragBuilder->codeAppendf(" float m = (1 + %s) / (1 - %s);", contrast, contrast);
339 fragBuilder->codeAppendf(" float off = (-0.5 * m + 0.5);");
340 fragBuilder->codeAppendf(" color = m * color + off;");
341 fragBuilder->codeAppendf("}");
344 fragBuilder->codeAppendf("color = clamp(color, 0, 1);");
347 fragBuilder->codeAppendf("color.a = %s.a;", args.fInputColor);
348 fragBuilder->codeAppendf("color.rgb *= color.a;");
351 fragBuilder->codeAppendf("%s = color;", args.fOutputColor);