Bug 453726 - thebes does an unnecessary float->byte->float conversion on the alpha channel when color management is turned on. r=vlad

This commit is contained in:
Bobby Holley 2008-09-08 14:41:26 -07:00
Родитель 0e8056950e
Коммит 8c04d70d74
2 изменённых файлов: 6 добавлений и 2 удалений

Просмотреть файл

@ -637,7 +637,9 @@ gfxContext::SetColor(const gfxRGBA& c)
1); 1);
gfxRGBA cms(packed, gfxRGBA::PACKED_ARGB); gfxRGBA cms(packed, gfxRGBA::PACKED_ARGB);
#endif #endif
cairo_set_source_rgba(mCairo, cms.r, cms.g, cms.b, cms.a); // Use the original alpha to avoid unnecessary float->byte->float
// conversion errors
cairo_set_source_rgba(mCairo, cms.r, cms.g, cms.b, c.a);
return; return;
} }
} }

Просмотреть файл

@ -103,8 +103,10 @@ gfxPattern::AddColorStop(gfxFloat offset, const gfxRGBA& c)
1); 1);
gfxRGBA cms(packed, gfxRGBA::PACKED_ARGB); gfxRGBA cms(packed, gfxRGBA::PACKED_ARGB);
#endif #endif
// Use the original alpha to avoid unnecessary float->byte->float
// conversion errors
cairo_pattern_add_color_stop_rgba(mPattern, offset, cairo_pattern_add_color_stop_rgba(mPattern, offset,
cms.r, cms.g, cms.b, cms.a); cms.r, cms.g, cms.b, c.a);
return; return;
} }
} }