Skip to content

Commit f4b0434

Browse files
committed
PicoGraphics: Add create_pen_hsv to p4, p8 and rgb332 pens.
1 parent bbeac41 commit f4b0434

File tree

4 files changed

+24
-0
lines changed

4 files changed

+24
-0
lines changed

libraries/pico_graphics/pico_graphics.hpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -372,6 +372,7 @@ namespace pimoroni {
372372
void set_thickness(uint t) override {};
373373
int update_pen(uint8_t i, uint8_t r, uint8_t g, uint8_t b) override;
374374
int create_pen(uint8_t r, uint8_t g, uint8_t b) override;
375+
int create_pen_hsv(float h, float s, float v) override;
375376
int reset_pen(uint8_t i) override;
376377

377378
void set_pixel(const Point &p) override;
@@ -402,6 +403,7 @@ namespace pimoroni {
402403
void set_thickness(uint t) override {};
403404
int update_pen(uint8_t i, uint8_t r, uint8_t g, uint8_t b) override;
404405
int create_pen(uint8_t r, uint8_t g, uint8_t b) override;
406+
int create_pen_hsv(float h, float s, float v) override;
405407
int reset_pen(uint8_t i) override;
406408

407409
void set_pixel(const Point &p) override;
@@ -423,6 +425,7 @@ namespace pimoroni {
423425
void set_pen(uint8_t r, uint8_t g, uint8_t b) override;
424426
void set_thickness(uint t) override {};
425427
int create_pen(uint8_t r, uint8_t g, uint8_t b) override;
428+
int create_pen_hsv(float h, float s, float v) override;
426429
void set_pixel(const Point &p) override;
427430
void set_pixel_span(const Point &p, uint l) override;
428431
void set_pixel_dither(const Point &p, const RGB &c) override;

libraries/pico_graphics/pico_graphics_pen_p4.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,13 @@ namespace pimoroni {
4444
}
4545
return -1;
4646
}
47+
int PicoGraphics_PenP4::create_pen_hsv(float h, float s, float v) {
48+
uint8_t r;
49+
uint8_t g;
50+
uint8_t b;
51+
from_hsv(h, s, v, r, g, b);
52+
return create_pen(r, g, b);
53+
}
4754
int PicoGraphics_PenP4::reset_pen(uint8_t i) {
4855
palette[i] = {0, 0, 0};
4956
used[i] = false;

libraries/pico_graphics/pico_graphics_pen_p8.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,13 @@ namespace pimoroni {
3939
}
4040
return -1;
4141
}
42+
int PicoGraphics_PenP8::create_pen_hsv(float h, float s, float v) {
43+
uint8_t r;
44+
uint8_t g;
45+
uint8_t b;
46+
from_hsv(h, s, v, r, g, b);
47+
return create_pen(r, g, b);
48+
}
4249
int PicoGraphics_PenP8::reset_pen(uint8_t i) {
4350
palette[i] = {0, 0, 0};
4451
used[i] = false;

libraries/pico_graphics/pico_graphics_pen_rgb332.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,13 @@ namespace pimoroni {
1818
int PicoGraphics_PenRGB332::create_pen(uint8_t r, uint8_t g, uint8_t b) {
1919
return rgb_to_rgb332(r, g, b);
2020
}
21+
int PicoGraphics_PenRGB332::create_pen_hsv(float h, float s, float v) {
22+
uint8_t r;
23+
uint8_t g;
24+
uint8_t b;
25+
from_hsv(h, s, v, r, g, b);
26+
return rgb_to_rgb332(r, g, b);
27+
}
2128
void PicoGraphics_PenRGB332::set_pixel(const Point &p) {
2229
uint8_t *buf = (uint8_t *)frame_buffer;
2330
buf[p.y * bounds.w + p.x] = color;

0 commit comments

Comments
 (0)