void onDraw(SkCanvas* canvas) override { this->drawBG(canvas); if (true) { SkRect r; r.set(SkIntToScalar(0), SkIntToScalar(0), SkIntToScalar(220), SkIntToScalar(120)); SkPaint p; canvas->saveLayer(&r, &p); canvas->drawColor(0xFFFF0000); p.setAlpha(0); // or 0 p.setXfermodeMode(SkXfermode::kSrc_Mode); canvas->drawOval(r, p); canvas->restore(); return; } if (false) { SkRect r; r.set(SkIntToScalar(0), SkIntToScalar(0), SkIntToScalar(220), SkIntToScalar(120)); SkPaint p; p.setAlpha(0x88); p.setAntiAlias(true); if (true) { canvas->saveLayer(&r, &p); p.setColor(0xFFFF0000); canvas->drawOval(r, p); canvas->restore(); } p.setColor(0xFF0000FF); r.offset(SkIntToScalar(20), SkIntToScalar(50)); canvas->drawOval(r, p); } if (false) { SkPaint p; p.setAlpha(0x88); p.setAntiAlias(true); canvas->translate(SkIntToScalar(300), 0); SkRect r; r.set(SkIntToScalar(0), SkIntToScalar(0), SkIntToScalar(220), SkIntToScalar(60)); canvas->saveLayer(&r, &p); r.set(SkIntToScalar(0), SkIntToScalar(0), SkIntToScalar(220), SkIntToScalar(120)); p.setColor(SK_ColorBLUE); canvas->drawOval(r, p); canvas->restore(); return; } test_fade(canvas); }
int main (int argc, char **argv) { GError *error = NULL; int op, event, err; #ifdef ENABLE_NLS bindtextdomain (GETTEXT_PACKAGE, GNOMELOCALEDIR); # ifdef HAVE_BIND_TEXTDOMAIN_CODESET bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); # endif textdomain (GETTEXT_PACKAGE); #endif if (error) { fprintf (stderr, "%s\n", error->message); exit (1); } if (! gtk_init_with_args (&argc, &argv, NULL, NULL, NULL, &error)) { fprintf (stderr, "%s", error->message); g_error_free (error); exit (1); } if (! XQueryExtension (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), XF86_VIDMODE_NAME, &op, &event, &err)) { g_message ("no " XF86_VIDMODE_NAME " extension"); } else { # ifdef HAVE_XF86VMODE_GAMMA int major; int minor; if (! XF86VidModeQueryVersion (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), &major, &minor)) { g_message ("unable to get " XF86_VIDMODE_NAME " version"); } else { g_message (XF86_VIDMODE_NAME " version %d.%d", major, minor); } # else /* !HAVE_XF86VMODE_GAMMA */ g_message ("no support for display's " XF86_VIDMODE_NAME " extension"); # endif /* !HAVE_XF86VMODE_GAMMA */ } gs_debug_init (TRUE, FALSE); test_fade (); gs_debug_shutdown (); return 0; }
static void test_fade(int max) { int i; static const struct timespec ts = { .tv_sec = 0, .tv_nsec = FADESPEED*1000000 }; /* Fade out, then in */ for (i = max; i > 0; i -= max / FADESTEPS) { test_and_verify(i); nanosleep(&ts, NULL); } for (i = 0; i <= max; i += max / FADESTEPS) { test_and_verify(i); nanosleep(&ts, NULL); } } igt_main { int max, old; igt_skip_on_simulation(); igt_fixture { /* Get the max value and skip the whole test if sysfs interface not available */ igt_skip_on(backlight_read(&old, "brightness")); igt_assert(backlight_read(&max, "max_brightness") > -1); } igt_subtest("basic-brightness") test_brightness(max); igt_subtest("bad-brightness") test_bad_brightness(max); igt_subtest("fade") test_fade(max); igt_fixture { /* Restore old brightness */ backlight_write(old, "brightness"); } }
virtual void onDraw(SkCanvas* canvas) { this->drawBG(canvas); if (true) { SkRect r; r.set(SkIntToScalar(0), SkIntToScalar(0), SkIntToScalar(220), SkIntToScalar(120)); SkPaint p; canvas->saveLayer(&r, &p); canvas->drawColor(0xFFFF0000); p.setAlpha(1); // or 0 p.setXfermodeMode(SkXfermode::kSrc_Mode); canvas->drawOval(r, p); canvas->restore(); return; } if (false) { SkRect r; r.set(SkIntToScalar(0), SkIntToScalar(0), SkIntToScalar(220), SkIntToScalar(120)); SkPaint p; p.setAlpha(0x88); p.setAntiAlias(true); if (true) { canvas->saveLayer(&r, &p); p.setColor(0xFFFF0000); canvas->drawOval(r, p); canvas->restore(); } p.setColor(0xFF0000FF); r.offset(SkIntToScalar(20), SkIntToScalar(50)); canvas->drawOval(r, p); } if (false) { SkPaint p; p.setAlpha(0x88); p.setAntiAlias(true); canvas->translate(SkIntToScalar(300), 0); SkRect r; r.set(SkIntToScalar(0), SkIntToScalar(0), SkIntToScalar(220), SkIntToScalar(60)); canvas->saveLayer(&r, &p, (SkCanvas::SaveFlags)(SkCanvas::kHasAlphaLayer_SaveFlag | SkCanvas::kFullColorLayer_SaveFlag)); // canvas->clipRect(r, SkRegion::kDifference_Op); // canvas->clipRect(r, SkRegion::kIntersect_Op); r.set(SkIntToScalar(0), SkIntToScalar(0), SkIntToScalar(220), SkIntToScalar(120)); p.setColor(SK_ColorBLUE); canvas->drawOval(r, p); canvas->restore(); return; } //canvas->translate(SkIntToScalar(20), SkIntToScalar(20)); test_fade(canvas); return; // canvas->setDrawFilter(new RedFilter)->unref(); SkRect r; SkPaint p; canvas->translate(SkIntToScalar(220), SkIntToScalar(20)); p.setAntiAlias(true); r.set(SkIntToScalar(20), SkIntToScalar(20), SkIntToScalar(220), SkIntToScalar(120)); p.setColor(SK_ColorBLUE); // p.setMaskFilter(SkBlurMaskFilter::Create(SkIntToScalar(8), SkBlurMaskFilter::kNormal_BlurStyle))->unref(); canvas->drawRect(r, p); p.setMaskFilter(NULL); SkRect bounds = r; bounds.fBottom = bounds.centerY(); canvas->saveLayer(&bounds, NULL, SkCanvas::kARGB_NoClipLayer_SaveFlag); p.setColor(SK_ColorRED); canvas->drawOval(r, p); p.setAlpha(0x80); p.setXfermodeMode(SkXfermode::kDstIn_Mode); canvas->drawRect(bounds, p); canvas->restore(); }