static void test_alphagradients(SkCanvas* canvas) { SkRect r; r.set(SkIntToScalar(10), SkIntToScalar(10), SkIntToScalar(410), SkIntToScalar(30)); SkPaint p, p2; p2.setStyle(SkPaint::kStroke_Style); p.setShader(setgrad(r, 0xFF00FF00, 0x0000FF00))->unref(); canvas->drawRect(r, p); canvas->drawRect(r, p2); r.offset(0, r.height() + SkIntToScalar(4)); p.setShader(setgrad(r, 0xFF00FF00, 0x00000000))->unref(); canvas->drawRect(r, p); canvas->drawRect(r, p2); r.offset(0, r.height() + SkIntToScalar(4)); p.setShader(setgrad(r, 0xFF00FF00, 0x00FF0000))->unref(); canvas->drawRect(r, p); canvas->drawRect(r, p2); }
void SkSliderView::onDraw(SkCanvas* canvas) { this->INHERITED::onDraw(canvas); U16CPU value = SkMax32(0, SkMin32(fValue, fMax)); SkRect r; SkPaint p; r.set(0, 0, this->width(), this->height()); p.setAntiAliasOn(true); p.setStyle(SkPaint::kStroke_Style); p.setStrokeWidth(SK_Scalar1); r.inset(SK_Scalar1/2, SK_Scalar1/2); canvas->drawRect(r, p); if (fMax) { SkFixed percent = SkFixedDiv(value, fMax); r.inset(SK_Scalar1/2, SK_Scalar1/2); r.fRight = r.fLeft + SkScalarMul(r.width(), SkFixedToScalar(percent)); p.setStyle(SkPaint::kFill_Style); setgrad(&p, r); canvas->drawRect(r, p); } #if 0 r.set(0, 0, this->width(), this->height()); r.inset(SK_Scalar1, SK_Scalar1); r.inset(r.width()/2, 0); p.setColor(SK_ColorBLACK); canvas->drawLine(*(SkPoint*)&r.fLeft, *(SkPoint*)&r.fRight, p); #endif }