| #Topic Color4f |
| #Alias Color4f_Reference ## |
| |
| #Struct SkColor4f |
| |
| Each component is stored as a 32-bit single precision floating point float value. |
| All values are allowed, but only the range from zero to one is meaningful. |
| |
| Each component is independent of the others; fA Alpha is not Premultiplied |
| with fG green, fB blue, or fR red. |
| |
| Values smaller than zero or larger than one are allowed. Values out of range |
| may be used with Blend_Mode so that the final component is in range. |
| |
| #Subtopic Overview |
| #Populate |
| ## |
| |
| #Subtopic Operator |
| #Populate |
| ## |
| |
| #Subtopic Member_Function |
| #Populate |
| ## |
| |
| #Member float fR |
| #Line # red component ## |
| Single precision float for red ranges from no red (0.0) to full red (1.0). |
| ## |
| |
| #Member float fG |
| #Line # green component ## |
| Single precision float for green ranges from no green (0.0) to full green (1.0). |
| ## |
| |
| #Member float fB |
| #Line # blue component ## |
| Single precision float for blue ranges from no blue (0.0) to full blue (1.0). |
| ## |
| |
| #Member float fA |
| #Line # alpha component ## |
| Single precision float for Alpha ranges from no Alpha (0.0) to full Alpha (1.0). |
| ## |
| |
| # ------------------------------------------------------------------------------ |
| |
| #Method bool operator==(const SkColor4f& other)_const |
| #In Operator |
| #Line # compares Color4f for equality ## |
| |
| Compares Color4f with other, and returns true if all components are equivalent. |
| |
| #Param other Color4f to compare ## |
| |
| #Return true if Color4f equals other ## |
| |
| #Example |
| SkColor4f colorRed = { 1, 0, 0, 1 };
|
| SkColor4f colorNamedRed = SkColor4f::FromColor(SK_ColorRED);
|
| SkDebugf("colorRed %c= colorNamedRed", colorRed == colorNamedRed ? '=' : '!');
|
| #StdOut |
| colorRed == colorNamedRed |
| ## |
| ## |
| |
| #SeeAlso operator!=(const SkColor4f& other)_const |
| |
| #Method ## |
| |
| # ------------------------------------------------------------------------------ |
| |
| #Method bool operator!=(const SkColor4f& other)_const |
| #In Operator |
| #Line # compares colors for inequality ## |
| |
| Compares Color4f with other, and returns true if all components are not |
| equivalent. |
| |
| #Param other Color4f to compare ## |
| |
| #Return true if Color4f is not equal to other ## |
| |
| #Example |
| SkColor4f colorGray = { .5, .5, .5, 1 };
|
| SkColor4f colorNamedGray = SkColor4f::FromColor(SK_ColorGRAY);
|
| SkDebugf("colorGray %c= colorNamedGray ", colorGray != colorNamedGray ? '!' : '=');
|
| #StdOut |
| colorGray != colorNamedGray |
| ## |
| ## |
| |
| #SeeAlso operator==(const SkColor4f& other)_const |
| |
| #Method ## |
| |
| # ------------------------------------------------------------------------------ |
| |
| #Method const float* vec() const |
| #In Property |
| #Line # returns array of components ## |
| |
| Returns Color4f components as a read-only array. |
| |
| #Return components as read-only array ## |
| |
| #Example |
| SkColor4f color = SkColor4f::FromColor(0x884488CC);
|
| SkDebugf("red=%g green=%g blue=%g alpha=%g\n", color.fR, color.fG, color.fB, color.fA);
|
| const float* array = color.vec();
|
| SkDebugf("[0]=%g [1]=%g [2]=%g [3]=%g\n", array[0], array[1], array[2], array[3]);
|
| #StdOut |
| red=0.0578054 green=0.246201 blue=0.603827 alpha=0.533333
|
| [0]=0.0578054 [1]=0.246201 [2]=0.603827 [3]=0.533333 |
| ## |
| ## |
| |
| #SeeAlso SkColor4f |
| |
| #Method ## |
| |
| # ------------------------------------------------------------------------------ |
| |
| #Method float* vec() |
| #In Property |
| #Line # returns array of components ## |
| |
| Returns Color4f components as a writable array. |
| |
| #Return components as writable array ## |
| |
| #Example |
| SkColor4f color = SkColor4f::FromColor(0x884488CC);
|
| SkDebugf("red=%g green=%g blue=%g alpha=%g\n", color.fR, color.fG, color.fB, color.fA);
|
| float* array = color.vec();
|
| array[3] = 1;
|
| SkDebugf("[0]=%g [1]=%g [2]=%g [3]=%g\n", array[0], array[1], array[2], array[3]); |
| #StdOut |
| red=0.0578054 green=0.246201 blue=0.603827 alpha=0.533333
|
| [0]=0.0578054 [1]=0.246201 [2]=0.603827 [3]=1 |
| ## |
| ## |
| |
| #SeeAlso SkColor4f |
| |
| #Method ## |
| |
| # ------------------------------------------------------------------------------ |
| |
| #Method static SkColor4f Pin(float r, float g, float b, float a) |
| #In Utility |
| #Line # sets components to valid range ## |
| |
| Constructs and returns Color4f with each component pinned from zero to one. |
| |
| #Param r red component ## |
| #Param g green component ## |
| #Param b blue component ## |
| #Param a Alpha component ## |
| |
| #Return Color4f with valid components ## |
| |
| #Example |
| #Height 40 |
| uint32_t storage[8]; |
| SkImageInfo info = SkImageInfo::MakeN32Premul(8, 1); |
| SkPixmap pixmap(info, storage, info.minRowBytes()); |
| pixmap.erase(SK_ColorWHITE); |
| SkIRect bounds = {0, 0, 1, 1}; |
| SkColor4f colors[] = { SkColor4f::Pin(1.5, 0.45f, 0.0, 1), |
| SkColor4f::Pin(1, 0.45f, -0.25, 1), |
| {1.5, 0.45f, 0.0, 1}, |
| {1, 0.45f, -0.25, 1}, |
| }; |
| for (auto color4f : colors) { |
| pixmap.erase(color4f, &bounds); |
| bounds.offset(2, 0); |
| } |
| SkBitmap bitmap; |
| canvas->scale(20, 20); |
| bitmap.installPixels(pixmap); |
| canvas->drawBitmap(bitmap, 0, 0); |
| ## |
| |
| #SeeAlso pin() FromColor |
| |
| #Method ## |
| |
| # ------------------------------------------------------------------------------ |
| |
| #Method static SkColor4f FromColor(SkColor) |
| #In Utility |
| #Line # sets components from Color ## |
| |
| Converts to closest Color4f. |
| |
| #Param SkColor Color with Alpha, red, blue, and green components ## |
| |
| #Return Color4f equivalent ## |
| |
| #Example |
| uint8_t red = 77, green = 101, blue = 153, alpha = 43;
|
| SkColor argb = SkColorSetARGB(alpha, red, green, blue);
|
| SkColor4f color4f = SkColor4f::FromColor(argb);
|
| SkDebugf("red=%g green=%g blue=%g alpha=%g\n", color4f.fR, color4f.fG, color4f.fB, color4f.fA);
|
| SkColor fromColor4f = color4f.toSkColor();
|
| SkDebugf("red=%d green=%d blue=%d alpha=%d\n", SkColorGetR(fromColor4f),
|
| SkColorGetG(fromColor4f), SkColorGetB(fromColor4f), SkColorGetA(fromColor4f)); |
| #StdOut |
| red=0.0742136 green=0.130136 blue=0.318547 alpha=0.168627
|
| red=77 green=101 blue=153 alpha=43 |
| ## |
| ## |
| |
| #SeeAlso toSkColor |
| |
| #Method ## |
| |
| # ------------------------------------------------------------------------------ |
| |
| #Method SkColor toSkColor() const |
| #In Utility |
| #Line # returns closest Color ## |
| |
| Converts to closest SkColor. |
| |
| #Return closest Color ## |
| |
| #Example |
| float red = 0.07, green = 0.13, blue = 0.32, alpha = 0.17;
|
| SkColor4f color4f = { red, green, blue, alpha };
|
| SkColor argb = color4f.toSkColor();
|
| SkDebugf("red=%d green=%d blue=%d alpha=%d\n", SkColorGetR(argb),
|
| SkColorGetG(argb), SkColorGetB(argb), SkColorGetA(argb)); |
| SkColor4f fromSkColor = SkColor4f::FromColor(argb);
|
| SkDebugf("red=%g green=%g blue=%g alpha=%g\n", fromSkColor.fR, fromSkColor.fG,
|
| fromSkColor.fB, fromSkColor.fA);
|
| #StdOut
|
| red=75 green=101 blue=153 alpha=43
|
| red=0.0703601 green=0.130136 blue=0.318547 alpha=0.168627
|
| ##
|
| ## |
| |
| #SeeAlso FromColor |
| |
| #Method ## |
| |
| # ------------------------------------------------------------------------------ |
| |
| #Method SkColor4f pin() const |
| #In Utility |
| #Line # sets components to valid range ## |
| |
| Returns Color4f with all components in the range from zero to one. |
| |
| #Return Color4f with valid components ## |
| |
| #Example |
| #Height 40 |
| uint32_t storage[8]; |
| SkImageInfo info = SkImageInfo::MakeN32Premul(8, 1); |
| SkPixmap pixmap(info, storage, info.minRowBytes()); |
| pixmap.erase(SK_ColorWHITE); |
| SkIRect bounds = {0, 0, 1, 1}; |
| SkColor4f colors[] = { {1.5, 0.45f, 0.0, 1}, |
| {1, 0.45f, -0.25, 1}, |
| }; |
| for (auto color4f : colors) { |
| pixmap.erase(color4f, &bounds); |
| bounds.offset(2, 0); |
| pixmap.erase(color4f.pin(), &bounds); |
| bounds.offset(2, 0); |
| } |
| SkBitmap bitmap; |
| canvas->scale(20, 20); |
| bitmap.installPixels(pixmap); |
| canvas->drawBitmap(bitmap, 0, 0); |
| ## |
| |
| #SeeAlso Pin |
| |
| #Method ## |
| |
| # ------------------------------------------------------------------------------ |
| |
| #Method SkPM4f premul() const |
| #In Utility |
| #Line # returns Premultiplied color; internal use only ## |
| #Private |
| Internal use only. |
| ## |
| #Return Premultiplied color ## |
| #Method ## |
| |
| #Struct SkColor4f ## |
| |
| #Struct SkPM4f |
| #Private |
| Internal use only. |
| ## |
| ## |
| |
| #Topic Color4f ## |