void CanvasStyle::applyFillColor(GraphicsContext* context) const { if (!context) return; switch (m_type) { case RGBA: context->setFillColor(m_rgba, ColorSpaceDeviceRGB); break; case CMYKA: { // FIXME: Do this through platform-independent GraphicsContext API. // We'll need a fancier Color abstraction to support CMYKA correctly #if USE(CG) CGContextSetCMYKFillColor(context->platformContext(), m_cmyka->c, m_cmyka->m, m_cmyka->y, m_cmyka->k, m_cmyka->a); #else context->setFillColor(m_cmyka->rgba, ColorSpaceDeviceRGB); #endif break; } case Gradient: context->setFillGradient(canvasGradient()->gradient()); break; case ImagePattern: context->setFillPattern(canvasPattern()->pattern()); break; case CurrentColor: case CurrentColorWithOverrideAlpha: case Invalid: ASSERT_NOT_REACHED(); break; } }
void CanvasStyle::applyFillColor(GraphicsContext* context) { if (!context) return; switch (m_type) { case ColorString: { RGBA32 rgba = 0; // default is transparant black if (CSSParser::parseColor(rgba, m_color)) context->setFillColor(rgba); break; } case ColorStringWithAlpha: { RGBA32 color = 0; // default is transparant black if (CSSParser::parseColor(color, m_color)) context->setFillColor(colorWithOverrideAlpha(color, m_alpha)); break; } case GrayLevel: // We're only supporting 255 levels of gray here. Since this isn't // even part of HTML5, I don't expect anyone will care. If they do // we'll make a fancier Color abstraction. context->setFillColor(Color(m_grayLevel, m_grayLevel, m_grayLevel, m_alpha)); break; case RGBA: context->setFillColor(Color(m_red, m_green, m_blue, m_alpha)); break; case CMYKA: { // FIXME: Do this through platform-independent GraphicsContext API. // We'll need a fancier Color abstraction to support CYMKA correctly #if PLATFORM(CG) CGContextSetCMYKFillColor(context->platformContext(), m_cyan, m_magenta, m_yellow, m_black, m_alpha); #elif PLATFORM(QT) QBrush currentBrush = context->platformContext()->brush(); QColor clr; clr.setCmykF(m_cyan, m_magenta, m_yellow, m_black, m_alpha); currentBrush.setColor(clr); context->platformContext()->setBrush(currentBrush); #elif PLATFORM(SGL) context->setCMYKAFillColor(m_cyan, m_magenta, m_yellow, m_black, m_alpha); #endif break; } case Gradient: context->setFillGradient(canvasGradient()->gradient()); break; case ImagePattern: context->setFillPattern(canvasPattern()->pattern()); break; } }
void CanvasStyle::applyFillColor(GraphicsContext* context) { if (!context) return; switch (m_type) { case RGBA: context->setFillColor(m_rgba, ColorSpaceDeviceRGB); break; case CMYKA: { // FIXME: Do this through platform-independent GraphicsContext API. // We'll need a fancier Color abstraction to support CMYKA correctly #if PLATFORM(CG) CGContextSetCMYKFillColor(context->platformContext(), m_cmyka.c, m_cmyka.m, m_cmyka.y, m_cmyka.k, m_cmyka.a); #elif PLATFORM(QT) QBrush currentBrush = context->platformContext()->brush(); QColor clr; clr.setCmykF(m_cmyka.c, m_cmyka.m, m_cmyka.y, m_cmyka.k, m_cmyka.a); currentBrush.setColor(clr); context->platformContext()->setBrush(currentBrush); #else context->setFillColor(m_rgba, ColorSpaceDeviceRGB); #endif break; } case Gradient: context->setFillGradient(canvasGradient()->gradient()); break; case ImagePattern: context->setFillPattern(canvasPattern()->pattern()); break; case CurrentColor: case CurrentColorWithOverrideAlpha: ASSERT_NOT_REACHED(); break; } }