mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 00:37:25 +01:00
[python] Change names: ColorParse::ParseColor --> Color::Parse
This commit is contained in:
@@ -31,7 +31,7 @@ mp_obj_t modkandinsky_color(size_t n_args, const mp_obj_t *args) {
|
||||
assert(n_args == 3);
|
||||
color = mp_obj_new_tuple(n_args, args);
|
||||
}
|
||||
return TupleForKDColor(MicroPython::ColorParser::ParseColor(color));
|
||||
return TupleForKDColor(MicroPython::Color::Parse(color));
|
||||
}
|
||||
|
||||
/* Calling ExecutionEnvironment::displaySandbox() hides the console and switches
|
||||
@@ -48,7 +48,7 @@ mp_obj_t modkandinsky_get_pixel(mp_obj_t x, mp_obj_t y) {
|
||||
|
||||
mp_obj_t modkandinsky_set_pixel(mp_obj_t x, mp_obj_t y, mp_obj_t input) {
|
||||
KDPoint point(mp_obj_get_int(x), mp_obj_get_int(y));
|
||||
KDColor kdColor = MicroPython::ColorParser::ParseColor(input);
|
||||
KDColor kdColor = MicroPython::Color::Parse(input);
|
||||
MicroPython::ExecutionEnvironment::currentExecutionEnvironment()->displaySandbox();
|
||||
KDIonContext::sharedContext()->setPixel(point, kdColor);
|
||||
return mp_const_none;
|
||||
@@ -58,8 +58,8 @@ mp_obj_t modkandinsky_set_pixel(mp_obj_t x, mp_obj_t y, mp_obj_t input) {
|
||||
mp_obj_t modkandinsky_draw_string(size_t n_args, const mp_obj_t * args) {
|
||||
const char * text = mp_obj_str_get_str(args[0]);
|
||||
KDPoint point(mp_obj_get_int(args[1]), mp_obj_get_int(args[2]));
|
||||
KDColor textColor = (n_args >= 4) ? MicroPython::ColorParser::ParseColor(args[3]) : KDColorBlack;
|
||||
KDColor backgroundColor = (n_args >= 5) ? MicroPython::ColorParser::ParseColor(args[4]) : KDColorWhite;
|
||||
KDColor textColor = (n_args >= 4) ? MicroPython::Color::Parse(args[3]) : KDColorBlack;
|
||||
KDColor backgroundColor = (n_args >= 5) ? MicroPython::Color::Parse(args[4]) : KDColorWhite;
|
||||
MicroPython::ExecutionEnvironment::currentExecutionEnvironment()->displaySandbox();
|
||||
KDIonContext::sharedContext()->drawString(text, point, KDFont::LargeFont, textColor, backgroundColor);
|
||||
/* Before and after execution of "modkandinsky_draw_string",
|
||||
@@ -89,7 +89,7 @@ mp_obj_t modkandinsky_fill_rect(size_t n_args, const mp_obj_t * args) {
|
||||
y = y - height;
|
||||
}
|
||||
KDRect rect(x, y, width, height);
|
||||
KDColor color = MicroPython::ColorParser::ParseColor(args[4]);
|
||||
KDColor color = MicroPython::Color::Parse(args[4]);
|
||||
MicroPython::ExecutionEnvironment::currentExecutionEnvironment()->displaySandbox();
|
||||
KDIonContext::sharedContext()->fillRect(rect, color);
|
||||
// Cf comment on modkandinsky_draw_string
|
||||
|
||||
@@ -139,7 +139,7 @@ mp_obj_t modturtle_pencolor(size_t n_args, const mp_obj_t *args) {
|
||||
// pencolor()
|
||||
KDColor c = sTurtle.color();
|
||||
mp_obj_t mp_col[3];
|
||||
if(sTurtle.colorMode() == MicroPython::ColorParser::ColorMode::MaxIntensity255){
|
||||
if(sTurtle.colorMode() == MicroPython::Color::Mode::MaxIntensity255){
|
||||
mp_col[0] = mp_obj_new_int_from_uint(c.red());
|
||||
mp_col[1] = mp_obj_new_int_from_uint(c.green());
|
||||
mp_col[2] = mp_obj_new_int_from_uint(c.blue());
|
||||
@@ -161,7 +161,7 @@ mp_obj_t modturtle_pencolor(size_t n_args, const mp_obj_t *args) {
|
||||
assert(n_args == 3);
|
||||
color = mp_obj_new_tuple(n_args, args);
|
||||
}
|
||||
sTurtle.setColor(MicroPython::ColorParser::ParseColor(color, sTurtle.colorMode()));
|
||||
sTurtle.setColor(MicroPython::Color::Parse(color, sTurtle.colorMode()));
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
@@ -170,12 +170,12 @@ mp_obj_t modturtle_colormode(size_t n_args, const mp_obj_t *args) {
|
||||
return mp_obj_new_int_from_uint(static_cast<int>(sTurtle.colorMode()));
|
||||
} else{
|
||||
int colorMode = mp_obj_get_int(args[0]);
|
||||
if (colorMode != static_cast<int>(MicroPython::ColorParser::ColorMode::MaxIntensity1) &&
|
||||
colorMode != static_cast<int>(MicroPython::ColorParser::ColorMode::MaxIntensity255)) {
|
||||
if (colorMode != static_cast<int>(MicroPython::Color::Mode::MaxIntensity1) &&
|
||||
colorMode != static_cast<int>(MicroPython::Color::Mode::MaxIntensity255)) {
|
||||
mp_raise_ValueError("Colormode can be 1 or 255");
|
||||
return mp_const_none;
|
||||
}
|
||||
sTurtle.setColorMode(static_cast<MicroPython::ColorParser::ColorMode>(colorMode));
|
||||
sTurtle.setColorMode(static_cast<MicroPython::Color::Mode>(colorMode));
|
||||
return mp_const_none;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ public:
|
||||
m_y(0),
|
||||
m_heading(0),
|
||||
m_color(k_defaultColor),
|
||||
m_colorMode(MicroPython::ColorParser::ColorMode::MaxIntensity255),
|
||||
m_colorMode(MicroPython::Color::Mode::MaxIntensity255),
|
||||
m_penDown(true),
|
||||
m_visible(true),
|
||||
m_speed(k_defaultSpeed),
|
||||
@@ -73,8 +73,8 @@ public:
|
||||
void setColor(uint8_t r, uint8_t g, uint8_t b) {
|
||||
m_color = KDColor::RGB888(r, g, b);
|
||||
}
|
||||
MicroPython::ColorParser::ColorMode colorMode() const {return m_colorMode; }
|
||||
void setColorMode(MicroPython::ColorParser::ColorMode colorMode){
|
||||
MicroPython::Color::Mode colorMode() const {return m_colorMode; }
|
||||
void setColorMode(MicroPython::Color::Mode colorMode){
|
||||
m_colorMode = colorMode;
|
||||
}
|
||||
|
||||
@@ -141,7 +141,7 @@ private:
|
||||
mp_float_t m_heading;
|
||||
|
||||
KDColor m_color;
|
||||
MicroPython::ColorParser::ColorMode m_colorMode;
|
||||
MicroPython::Color::Mode m_colorMode;
|
||||
bool m_penDown;
|
||||
bool m_visible;
|
||||
|
||||
|
||||
@@ -179,32 +179,32 @@ void MicroPython::collectRootsAtAddress(char * address, int byteLength) {
|
||||
gc_collect_root((void **)alignedAddress, byteLength / sizeof(uintptr_t));
|
||||
}
|
||||
|
||||
KDColor MicroPython::ColorParser::ParseColor(mp_obj_t input, ColorMode ColorMode){
|
||||
static constexpr int maxColorIntensity = static_cast<int>(ColorMode::MaxIntensity255);
|
||||
KDColor MicroPython::Color::Parse(mp_obj_t input, Mode mode){
|
||||
static constexpr int maxColorIntensity = static_cast<int>(Mode::MaxIntensity255);
|
||||
if (mp_obj_is_str(input)) {
|
||||
size_t l;
|
||||
const char * color = mp_obj_str_get_data(input, &l);
|
||||
// TODO add cyan
|
||||
constexpr NameColorPair pairs[] = {
|
||||
NameColorPair("blue", KDColorBlue),
|
||||
NameColorPair("b", KDColorBlue),
|
||||
NameColorPair("red", KDColorRed),
|
||||
NameColorPair("r", KDColorRed),
|
||||
NameColorPair("green", Palette::Green),
|
||||
NameColorPair("g", Palette::Green),
|
||||
NameColorPair("yellow", KDColorYellow),
|
||||
NameColorPair("y", KDColorYellow),
|
||||
NameColorPair("brown", Palette::Brown),
|
||||
NameColorPair("black", KDColorBlack),
|
||||
NameColorPair("k", KDColorBlack),
|
||||
NameColorPair("white", KDColorWhite),
|
||||
NameColorPair("w", KDColorWhite),
|
||||
NameColorPair("pink", Palette::Pink),
|
||||
NameColorPair("orange", Palette::Orange),
|
||||
NameColorPair("purple", Palette::Purple),
|
||||
NameColorPair("grey", Palette::GreyDark)
|
||||
constexpr NamedColor pairs[] = {
|
||||
NamedColor("blue", KDColorBlue),
|
||||
NamedColor("b", KDColorBlue),
|
||||
NamedColor("red", KDColorRed),
|
||||
NamedColor("r", KDColorRed),
|
||||
NamedColor("green", Palette::Green),
|
||||
NamedColor("g", Palette::Green),
|
||||
NamedColor("yellow", KDColorYellow),
|
||||
NamedColor("y", KDColorYellow),
|
||||
NamedColor("brown", Palette::Brown),
|
||||
NamedColor("black", KDColorBlack),
|
||||
NamedColor("k", KDColorBlack),
|
||||
NamedColor("white", KDColorWhite),
|
||||
NamedColor("w", KDColorWhite),
|
||||
NamedColor("pink", Palette::Pink),
|
||||
NamedColor("orange", Palette::Orange),
|
||||
NamedColor("purple", Palette::Purple),
|
||||
NamedColor("grey", Palette::GreyDark)
|
||||
};
|
||||
for (NameColorPair p : pairs) {
|
||||
for (NamedColor p : pairs) {
|
||||
if (strcmp(p.name(), color) == 0) {
|
||||
return p.color();
|
||||
}
|
||||
@@ -237,7 +237,7 @@ KDColor MicroPython::ColorParser::ParseColor(mp_obj_t input, ColorMode ColorMode
|
||||
if (len != 3) {
|
||||
mp_raise_TypeError("Color needs 3 components");
|
||||
}
|
||||
int intensityFactor = maxColorIntensity/static_cast<int>(ColorMode);
|
||||
int intensityFactor = maxColorIntensity/static_cast<int>(mode);
|
||||
return KDColor::RGB888(
|
||||
intensityFactor * mp_obj_get_float(elem[0]),
|
||||
intensityFactor * mp_obj_get_float(elem[1]),
|
||||
|
||||
@@ -42,11 +42,18 @@ void deinit();
|
||||
void registerScriptProvider(ScriptProvider * s);
|
||||
void collectRootsAtAddress(char * address, int len);
|
||||
|
||||
class ColorParser {
|
||||
private:
|
||||
class NameColorPair {
|
||||
class Color {
|
||||
public:
|
||||
enum class Mode {
|
||||
MaxIntensity1 = 1,
|
||||
MaxIntensity255 = 255,
|
||||
};
|
||||
|
||||
static KDColor Parse(mp_obj_t input, Mode Mode = Mode::MaxIntensity255);
|
||||
private:
|
||||
class NamedColor {
|
||||
public:
|
||||
constexpr NameColorPair(const char * name, KDColor color) :
|
||||
constexpr NamedColor(const char * name, KDColor color) :
|
||||
m_name(name),
|
||||
m_color(color)
|
||||
{}
|
||||
@@ -56,14 +63,6 @@ class ColorParser {
|
||||
const char * m_name;
|
||||
KDColor m_color;
|
||||
};
|
||||
|
||||
public:
|
||||
enum class ColorMode {
|
||||
MaxIntensity1 = 1,
|
||||
MaxIntensity255 = 255,
|
||||
};
|
||||
|
||||
static KDColor ParseColor(mp_obj_t input, ColorMode ColorMode = ColorMode::MaxIntensity255);
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user