XenevaOS
Loading...
Searching...
No Matches
color.h
Go to the documentation of this file.
1
30#ifndef __COLOR_H__
31#define __COLOR_H__
32
33#include <stdint.h>
34#include <_xeneva.h>
35#include "chitralekha.h"
36
37#ifdef __cplusplus
39#endif
40
42#define WHITE 0xFFFFFFFF
43#define SILVER 0xFFC0C0C0
44#define GRAY 0xFF808080
45#define BLACK 0xFF000000
46#define RED 0xFFFF0000
47#define MAROON 0xFF800000
48#define YELLOW 0xFFFFFF00
49#define OLIVE 0xFF808000
50#define LIME 0xFF00FF00
51#define GREEN 0xFF008000
52#define AQUA 0xFF00FFFF
53#define TEAL 0xFF008080
54#define BLUE 0xFF0000FF
55#define NAVY 0xFF000080
56#define FUCHSIA 0xFFFF00FF
57#define PURPLE 0xFF800080
58
60#define DARKRED 0xFF8B0000
61#define BROWN 0xFFA52A2A
62#define FIREBRICK 0xFFB22222
63#define CRIMSON 0xFFDC143C
64#define TOMATO 0xFFFF6347
65#define CORAL 0xFFFF7F50
66#define INDIANRED 0xFFCD5C5C
67#define LIGHTCORAL 0xFFF08080
68#define DARKSALMON 0xFFE9967A
69#define SALMON 0xFFFA8072
70#define ORANGERED 0xFFFF4500
71#define DARKORANGE 0xFFFF8C00
72#define ORANGE 0xFFFFA500
73#define GOLD 0xFFFFD700
74#define DARKGOLDENROD 0xFFB8860B
75#define GOLDENROD 0xFFDAA520
76#define PALEGOLDENROD 0xFFEEE8AA
77#define DARKKHAKI 0xFFBDB76B
78#define KHAKI 0xFFF0E68C
79#define DARKGREEN 0xFF006400
80#define PALEGREEN 0xFF98FB98
81#define LIGHTSILVER 0xFFD9D9D9
82#define DESKBLUE 0xFF5B7492
83#define MENUCLICKBLUE 0xFF6A7298
84#define TITLEBAR_DARK 0xFF2F2F2F
85#define LIGHTBLACK 0xFF3E3E3E
86#define MAGENTA 0xFFFF00FF
87#define CYAN 0xFF00FFFF
88
89#define SET_ALPHA(color,alpha) (((color << 8) >> 8) | ((alpha << 24) & 0xff000000))
90
91#define _RED(color) ((color & 0x00FF0000) / 0x10000)
92#define _GRE(color) ((color & 0x0000FF00) / 0x100)
93#define _BLU(color) ((color & 0x000000FF) / 0x1)
94#define _ALP(color) ((color & 0xFF000000) / 0x1000000)
95
96#define GET_ALPHA(color) ((color >> 24) & 0x000000FF)
97#define GET_RED(color) ((color >> 16) & 0x000000FF)
98#define GET_GREEN(color) ((color >> 8) & 0x000000FF)
99#define GET_BLUE(color) ((color >> 0) & 0x000000FF)
100
101
102 /*
103 * ChColorAlphaBlend -- blend two color
104 * @param color1 -- color 1
105 * @param color2 -- color 2
106 * @param opacity -- opacity of alpha
107 */
108 XE_LIB uint32_t ChColorAlphaBlend(uint32_t oldColor, uint32_t color2, double opacity);
109
110 /*
111 * ChColorAlphaBlend2 -- blend two color
112 * @param color1 -- self explanatory
113 * @param color2 -- self explanatory
114 */
116
117 /*
118 * ChColorDrawVerticalGradient -- draws vertical linear gradient
119 * @param canv -- Pointer to canvas
120 * @param x -- X coord of the rect
121 * @param y -- Y coord of the rect
122 * @param w -- Width of the rect
123 * @param h -- Height of the rect
124 * @param color1 -- starting color
125 * @param color2 -- end color
126 */
127 XE_LIB void ChColorDrawVerticalGradient(ChCanvas* canv, int x, int y, int w, int h, uint32_t color1, uint32_t color2);
128
129 extern uint32_t make_col(uint8_t red, uint8_t green, uint8_t blue);
130 extern uint32_t make_col_a(uint8_t red, uint8_t green, uint8_t blue, uint8_t a);
131
132 /*
133 * ChColorDrawHorizontalGradient -- draws horizontal linear gradient
134 * @param canv -- Pointer to canvas
135 * @param x -- X coord of the rect
136 * @param y -- Y coord of the rect
137 * @param w -- Width of the rect
138 * @param h -- Height of the rect
139 * @param color1 -- starting color
140 * @param color2 -- end color
141 */
142 XE_LIB void ChColorDrawHorizontalGradient(ChCanvas *canv, int x, int y, int w, int h, uint32_t color1, uint32_t color2);
143
144 /*
145 * ChColorDrawVerticalGradient -- draws vertical linear gradient
146 * @param canv -- Pointer to canvas
147 * @param x -- X coord of the rect
148 * @param y -- Y coord of the rect
149 * @param w -- Width of the rect
150 * @param h -- Height of the rect
151 * @param color1 -- starting color
152 * @param color2 -- end color
153 */
154 XE_LIB void ChColorDrawVerticalGradient(ChCanvas *canv, int x, int y, int w, int h, uint32_t color1, uint32_t color2);
155
156 XE_LIB double clamp(double x, double upper, double lower);
157
158 /*
159 * ChColorRGBAtoBGRA -- convert RGBA pixels to BGRA888
160 * @param col -- Color to convert
161 */
163
164 /*
165 * ChDrawPixelRAW -- draws a pixel to canvas buffer
166 * @param canvas -- pointer to canvas
167 * @param x -- x position
168 * @param y -- y position
169 * @param color -- color of the pixel
170 */
171 XE_LIB void ChDrawPixelRAW(ChCanvas* canvas, int x, int y, uint32_t color);
172
173#ifdef __cplusplus
174}
175#endif
176
177#endif
#define XE_LIB
Definition _xeneva.h:55
#define XE_EXTERN
Definition _xeneva.h:50
unsigned int uint32_t
Definition acefiex.h:163
unsigned char uint8_t
Definition acefiex.h:161
XE_LIB void ChColorDrawHorizontalGradient(ChCanvas *canv, int x, int y, int w, int h, uint32_t color1, uint32_t color2)
Definition color.cpp:160
uint32_t make_col_a(uint8_t red, uint8_t green, uint8_t blue, uint8_t a)
Definition color.cpp:103
XE_LIB void ChColorDrawVerticalGradient(ChCanvas *canv, int x, int y, int w, int h, uint32_t color1, uint32_t color2)
Definition color.cpp:129
XE_LIB uint32_t ChColorAlphaBlend(uint32_t oldColor, uint32_t color2, double opacity)
Definition color.cpp:47
XE_LIB double clamp(double x, double upper, double lower)
Definition color.cpp:182
XE_LIB uint32_t ChColorAlphaBlend2(uint32_t color1, uint32_t color2)
Definition color.cpp:74
uint32_t make_col(uint8_t red, uint8_t green, uint8_t blue)
Definition color.cpp:90
XE_LIB void ChDrawPixelRAW(ChCanvas *canvas, int x, int y, uint32_t color)
ChDrawPixelRAW – draws a pixel to canvas buffer.
Definition chitralekha.cpp:223
XE_LIB uint32_t ChColorRGBAtoBGRA(uint32_t col)
Definition color.cpp:191
ChCanvas * canvas
Definition deomain.cpp:92
Definition chitralekha.h:43