00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00024
00026
00028 #include <SFML/Graphics/Color.h>
00029 #include <SFML/Internal.h>
00030 #include <algorithm>
00031
00032
00036 sfColor sfBlack = { 0, 0, 0, 255};
00037 sfColor sfWhite = {255, 255, 255, 255};
00038 sfColor sfRed = {255, 0, 0, 255};
00039 sfColor sfGreen = { 0, 255, 0, 255};
00040 sfColor sfBlue = { 0, 0, 255, 255};
00041 sfColor sfYellow = {255, 255, 0, 255};
00042 sfColor sfMagenta = {255, 0, 255, 255};
00043 sfColor sfCyan = { 0, 255, 255, 255};
00044
00045
00049 sfColor sfColor_FromRGB(sfUint8 R, sfUint8 G, sfUint8 B)
00050 {
00051 return sfColor_FromRGBA(R, G, B, 255);
00052 }
00053
00054
00058 sfColor sfColor_FromRGBA(sfUint8 R, sfUint8 G, sfUint8 B, sfUint8 A)
00059 {
00060 sfColor Color;
00061
00062 Color.r = R;
00063 Color.g = G;
00064 Color.b = B;
00065 Color.a = A;
00066
00067 return Color;
00068 }
00069
00070
00074 sfColor sfColor_Add(sfColor Color1, sfColor Color2)
00075 {
00076 int R = std::min(Color1.r + Color2.r, 255);
00077 int G = std::min(Color1.g + Color2.g, 255);
00078 int B = std::min(Color1.b + Color2.b, 255);
00079 int A = std::min(Color1.a + Color2.a, 255);
00080
00081 return sfColor_FromRGBA(static_cast<sfUint8>(R), static_cast<sfUint8>(G), static_cast<sfUint8>(B), static_cast<sfUint8>(A));
00082 }
00083
00084
00088 sfColor sfColor_Modulate(sfColor Color1, sfColor Color2)
00089 {
00090 int R = Color1.r * Color2.r / 255;
00091 int G = Color1.g * Color2.g / 255;
00092 int B = Color1.b * Color2.b / 255;
00093 int A = Color1.a * Color2.a / 255;
00094
00095 return sfColor_FromRGBA(static_cast<sfUint8>(R), static_cast<sfUint8>(G), static_cast<sfUint8>(B), static_cast<sfUint8>(A));
00096 }