Huge Cleaning - NW modules on fxCG50 - Ready for PR - Phase II
This commit is contained in:
parent
12565ba8d2
commit
e3fd785200
|
@ -347,6 +347,13 @@ int main(int argc, char **argv)
|
|||
|
||||
keydev_set_async_filter(keydev_std(), async_filter);
|
||||
|
||||
/* Make delayed shift/alpha permanent so the stay between calls to
|
||||
jscene_run() and can be used for delayed key combos */
|
||||
keydev_transform_t tr = keydev_transform(keydev_std());
|
||||
tr.enabled |= KEYDEV_TR_DELAYED_SHIFT;
|
||||
tr.enabled |= KEYDEV_TR_DELAYED_ALPHA;
|
||||
keydev_set_transform(keydev_std(), tr);
|
||||
|
||||
PE.console = console_create(8192, 200);
|
||||
|
||||
/* Set up standard streams */
|
||||
|
|
|
@ -9,120 +9,138 @@
|
|||
// considered relevant for high-level Python development).
|
||||
//---
|
||||
|
||||
#include "console.h"
|
||||
#include "py/objtuple.h"
|
||||
#include "py/runtime.h"
|
||||
#include "py/objtuple.h"
|
||||
#include <gint/display.h>
|
||||
#include <gint/keyboard.h>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
void pe_enter_graphics_mode(void);
|
||||
|
||||
#define FUN_0(NAME) \
|
||||
MP_DEFINE_CONST_FUN_OBJ_0(modgint_##NAME##_obj, modgint_##NAME)
|
||||
#define FUN_1(NAME) \
|
||||
MP_DEFINE_CONST_FUN_OBJ_1(modgint_##NAME##_obj, modgint_##NAME)
|
||||
#define FUN_2(NAME) \
|
||||
MP_DEFINE_CONST_FUN_OBJ_2(modgint_##NAME##_obj, modgint_##NAME)
|
||||
#define FUN_3(NAME) \
|
||||
MP_DEFINE_CONST_FUN_OBJ_3(modgint_##NAME##_obj, modgint_##NAME)
|
||||
#define FUN_VAR(NAME, MIN) \
|
||||
MP_DEFINE_CONST_FUN_OBJ_VAR(modgint_##NAME##_obj, MIN, modgint_##NAME)
|
||||
#define FUN_BETWEEN(NAME, MIN, MAX) \
|
||||
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(modgint_##NAME##_obj, MIN, MAX, \
|
||||
modgint_##NAME)
|
||||
#define FUN_0(NAME) \
|
||||
MP_DEFINE_CONST_FUN_OBJ_0(modgint_ ## NAME ## _obj, modgint_ ## NAME)
|
||||
#define FUN_1(NAME) \
|
||||
MP_DEFINE_CONST_FUN_OBJ_1(modgint_ ## NAME ## _obj, modgint_ ## NAME)
|
||||
#define FUN_2(NAME) \
|
||||
MP_DEFINE_CONST_FUN_OBJ_2(modgint_ ## NAME ## _obj, modgint_ ## NAME)
|
||||
#define FUN_3(NAME) \
|
||||
MP_DEFINE_CONST_FUN_OBJ_3(modgint_ ## NAME ## _obj, modgint_ ## NAME)
|
||||
#define FUN_VAR(NAME, MIN) \
|
||||
MP_DEFINE_CONST_FUN_OBJ_VAR(modgint_ ## NAME ## _obj, MIN, \
|
||||
modgint_ ## NAME)
|
||||
#define FUN_BETWEEN(NAME, MIN, MAX) \
|
||||
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(modgint_ ## NAME ## _obj, MIN, MAX, \
|
||||
modgint_ ## NAME)
|
||||
|
||||
STATIC mp_obj_t modgint___init__(void) {
|
||||
pe_enter_graphics_mode();
|
||||
dclear(C_WHITE);
|
||||
return mp_const_none;
|
||||
STATIC mp_obj_t modgint___init__(void)
|
||||
{
|
||||
pe_enter_graphics_mode();
|
||||
dclear(C_WHITE);
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
/* <gint/keyboard.h> */
|
||||
|
||||
STATIC qstr const key_event_fields[] = {
|
||||
MP_QSTR_time, MP_QSTR_mod, MP_QSTR_shift,
|
||||
MP_QSTR_alpha, MP_QSTR_type, MP_QSTR_key,
|
||||
MP_QSTR_time,
|
||||
MP_QSTR_mod,
|
||||
MP_QSTR_shift,
|
||||
MP_QSTR_alpha,
|
||||
MP_QSTR_type,
|
||||
MP_QSTR_key,
|
||||
};
|
||||
|
||||
STATIC mp_obj_t mk_key_event(key_event_t ev) {
|
||||
mp_obj_t items[] = {
|
||||
mp_obj_new_int(ev.time), mp_obj_new_bool(ev.mod),
|
||||
mp_obj_new_bool(ev.shift), mp_obj_new_bool(ev.alpha),
|
||||
mp_obj_new_int(ev.type), mp_obj_new_int(ev.key),
|
||||
};
|
||||
return mp_obj_new_attrtuple(key_event_fields, 6, items);
|
||||
STATIC mp_obj_t mk_key_event(key_event_t ev)
|
||||
{
|
||||
mp_obj_t items[] = {
|
||||
mp_obj_new_int(ev.time),
|
||||
mp_obj_new_bool(ev.mod),
|
||||
mp_obj_new_bool(ev.shift),
|
||||
mp_obj_new_bool(ev.alpha),
|
||||
mp_obj_new_int(ev.type),
|
||||
mp_obj_new_int(ev.key),
|
||||
};
|
||||
return mp_obj_new_attrtuple(key_event_fields, 6, items);
|
||||
}
|
||||
|
||||
STATIC mp_obj_t modgint_pollevent(void) {
|
||||
key_event_t ev = pollevent();
|
||||
return mk_key_event(ev);
|
||||
STATIC mp_obj_t modgint_pollevent(void)
|
||||
{
|
||||
key_event_t ev = pollevent();
|
||||
return mk_key_event(ev);
|
||||
}
|
||||
|
||||
// TODO: waitevent: timeout parameter?
|
||||
|
||||
STATIC mp_obj_t modgint_clearevents(void) {
|
||||
clearevents();
|
||||
return mp_const_none;
|
||||
STATIC mp_obj_t modgint_clearevents(void)
|
||||
{
|
||||
clearevents();
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
STATIC mp_obj_t modgint_cleareventflips(void) {
|
||||
cleareventflips();
|
||||
return mp_const_none;
|
||||
STATIC mp_obj_t modgint_cleareventflips(void)
|
||||
{
|
||||
cleareventflips();
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
STATIC mp_obj_t modgint_keydown(mp_obj_t arg1) {
|
||||
mp_int_t key = mp_obj_get_int(arg1);
|
||||
bool down = keydown(key) != 0;
|
||||
return mp_obj_new_bool(down);
|
||||
STATIC mp_obj_t modgint_keydown(mp_obj_t arg1)
|
||||
{
|
||||
mp_int_t key = mp_obj_get_int(arg1);
|
||||
bool down = keydown(key) != 0;
|
||||
return mp_obj_new_bool(down);
|
||||
}
|
||||
|
||||
STATIC mp_obj_t modgint_keydown_all(size_t n, mp_obj_t const *args) {
|
||||
bool down = true;
|
||||
for (size_t i = 0; i < n; i++)
|
||||
down &= keydown(mp_obj_get_int(args[i])) != 0;
|
||||
return mp_obj_new_bool(down);
|
||||
STATIC mp_obj_t modgint_keydown_all(size_t n, mp_obj_t const *args)
|
||||
{
|
||||
bool down = true;
|
||||
for(size_t i = 0; i < n; i++)
|
||||
down &= keydown(mp_obj_get_int(args[i])) != 0;
|
||||
return mp_obj_new_bool(down);
|
||||
}
|
||||
|
||||
STATIC mp_obj_t modgint_keydown_any(size_t n, mp_obj_t const *args) {
|
||||
bool down = false;
|
||||
for (size_t i = 0; i < n; i++)
|
||||
down |= keydown(mp_obj_get_int(args[i])) != 0;
|
||||
return mp_obj_new_bool(down);
|
||||
STATIC mp_obj_t modgint_keydown_any(size_t n, mp_obj_t const *args)
|
||||
{
|
||||
bool down = false;
|
||||
for(size_t i = 0; i < n; i++)
|
||||
down |= keydown(mp_obj_get_int(args[i])) != 0;
|
||||
return mp_obj_new_bool(down);
|
||||
}
|
||||
|
||||
STATIC mp_obj_t modgint_keypressed(mp_obj_t arg1) {
|
||||
mp_int_t key = mp_obj_get_int(arg1);
|
||||
return mp_obj_new_bool(keypressed(key) != 0);
|
||||
STATIC mp_obj_t modgint_keypressed(mp_obj_t arg1)
|
||||
{
|
||||
mp_int_t key = mp_obj_get_int(arg1);
|
||||
return mp_obj_new_bool(keypressed(key) != 0);
|
||||
}
|
||||
|
||||
STATIC mp_obj_t modgint_keyreleased(mp_obj_t arg1) {
|
||||
mp_int_t key = mp_obj_get_int(arg1);
|
||||
return mp_obj_new_bool(keyreleased(key) != 0);
|
||||
STATIC mp_obj_t modgint_keyreleased(mp_obj_t arg1)
|
||||
{
|
||||
mp_int_t key = mp_obj_get_int(arg1);
|
||||
return mp_obj_new_bool(keyreleased(key) != 0);
|
||||
}
|
||||
|
||||
STATIC mp_obj_t modgint_getkey(void) {
|
||||
key_event_t ev = getkey();
|
||||
return mk_key_event(ev);
|
||||
STATIC mp_obj_t modgint_getkey(void)
|
||||
{
|
||||
key_event_t ev = getkey();
|
||||
return mk_key_event(ev);
|
||||
}
|
||||
|
||||
// TODO: getkey_opt: timeout parameter?
|
||||
STATIC mp_obj_t modgint_getkey_opt(mp_obj_t arg1) {
|
||||
int options = mp_obj_get_int(arg1);
|
||||
key_event_t ev = getkey_opt(options, NULL);
|
||||
return mk_key_event(ev);
|
||||
STATIC mp_obj_t modgint_getkey_opt(mp_obj_t arg1)
|
||||
{
|
||||
int options = mp_obj_get_int(arg1);
|
||||
key_event_t ev = getkey_opt(options, NULL);
|
||||
return mk_key_event(ev);
|
||||
}
|
||||
|
||||
STATIC mp_obj_t modgint_keycode_function(mp_obj_t arg1) {
|
||||
int keycode = mp_obj_get_int(arg1);
|
||||
return MP_OBJ_NEW_SMALL_INT(keycode_function(keycode));
|
||||
STATIC mp_obj_t modgint_keycode_function(mp_obj_t arg1)
|
||||
{
|
||||
int keycode = mp_obj_get_int(arg1);
|
||||
return MP_OBJ_NEW_SMALL_INT(keycode_function(keycode));
|
||||
}
|
||||
|
||||
STATIC mp_obj_t modgint_keycode_digit(mp_obj_t arg1) {
|
||||
int keycode = mp_obj_get_int(arg1);
|
||||
return MP_OBJ_NEW_SMALL_INT(keycode_digit(keycode));
|
||||
STATIC mp_obj_t modgint_keycode_digit(mp_obj_t arg1)
|
||||
{
|
||||
int keycode = mp_obj_get_int(arg1);
|
||||
return MP_OBJ_NEW_SMALL_INT(keycode_digit(keycode));
|
||||
}
|
||||
|
||||
FUN_0(clearevents);
|
||||
|
@ -134,168 +152,152 @@ FUN_VAR(keydown_any, 0);
|
|||
FUN_1(keypressed);
|
||||
FUN_1(keyreleased);
|
||||
FUN_0(getkey);
|
||||
FUN_1 /*2*/ (getkey_opt);
|
||||
FUN_1/*2*/(getkey_opt);
|
||||
FUN_1(keycode_function);
|
||||
FUN_1(keycode_digit);
|
||||
|
||||
/* <gint/display.h> */
|
||||
|
||||
#ifdef FXCG50
|
||||
STATIC mp_obj_t modgint_C_RGB(mp_obj_t arg1, mp_obj_t arg2, mp_obj_t arg3) {
|
||||
mp_int_t r = mp_obj_get_int(arg1);
|
||||
mp_int_t g = mp_obj_get_int(arg2);
|
||||
mp_int_t b = mp_obj_get_int(arg3);
|
||||
return MP_OBJ_NEW_SMALL_INT(C_RGB(r, g, b));
|
||||
STATIC mp_obj_t modgint_C_RGB(mp_obj_t arg1, mp_obj_t arg2, mp_obj_t arg3)
|
||||
{
|
||||
mp_int_t r = mp_obj_get_int(arg1);
|
||||
mp_int_t g = mp_obj_get_int(arg2);
|
||||
mp_int_t b = mp_obj_get_int(arg3);
|
||||
return MP_OBJ_NEW_SMALL_INT(C_RGB(r, g, b));
|
||||
}
|
||||
#endif
|
||||
|
||||
STATIC mp_obj_t modgint_dclear(mp_obj_t arg1) {
|
||||
mp_int_t color = mp_obj_get_int(arg1);
|
||||
dclear(color);
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
STATIC mp_obj_t modgint_dupdate(void) {
|
||||
pe_enter_graphics_mode();
|
||||
dupdate();
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
STATIC mp_obj_t modgint_drect(size_t n, mp_obj_t const *args) {
|
||||
mp_int_t x1 = mp_obj_get_int(args[0]);
|
||||
mp_int_t y1 = mp_obj_get_int(args[1]);
|
||||
mp_int_t x2 = mp_obj_get_int(args[2]);
|
||||
mp_int_t y2 = mp_obj_get_int(args[3]);
|
||||
mp_int_t color = mp_obj_get_int(args[4]);
|
||||
drect(x1, y1, x2, y2, color);
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
STATIC mp_obj_t modgint_drect_border(size_t n, mp_obj_t const *args) {
|
||||
mp_int_t x1 = mp_obj_get_int(args[0]);
|
||||
mp_int_t y1 = mp_obj_get_int(args[1]);
|
||||
mp_int_t x2 = mp_obj_get_int(args[2]);
|
||||
mp_int_t y2 = mp_obj_get_int(args[3]);
|
||||
mp_int_t fill_color = mp_obj_get_int(args[4]);
|
||||
mp_int_t border_width = mp_obj_get_int(args[5]);
|
||||
mp_int_t border_color = mp_obj_get_int(args[6]);
|
||||
drect_border(x1, y1, x2, y2, fill_color, border_width, border_color);
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
STATIC mp_obj_t modgint_dpixel(mp_obj_t arg1, mp_obj_t arg2, mp_obj_t arg3) {
|
||||
mp_int_t x = mp_obj_get_int(arg1);
|
||||
mp_int_t y = mp_obj_get_int(arg2);
|
||||
mp_int_t color = mp_obj_get_int(arg3);
|
||||
dpixel(x, y, color);
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
STATIC mp_obj_t modgint_dgetpixel(mp_obj_t arg1, mp_obj_t arg2) {
|
||||
mp_int_t x = mp_obj_get_int(arg1);
|
||||
mp_int_t y = mp_obj_get_int(arg2);
|
||||
return MP_OBJ_NEW_SMALL_INT(dgetpixel(x, y));
|
||||
}
|
||||
|
||||
STATIC mp_obj_t modgint_dline(size_t n, mp_obj_t const *args) {
|
||||
mp_int_t x1 = mp_obj_get_int(args[0]);
|
||||
mp_int_t y1 = mp_obj_get_int(args[1]);
|
||||
mp_int_t x2 = mp_obj_get_int(args[2]);
|
||||
mp_int_t y2 = mp_obj_get_int(args[3]);
|
||||
mp_int_t color = mp_obj_get_int(args[4]);
|
||||
dline(x1, y1, x2, y2, color);
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
STATIC mp_obj_t modgint_dhline(mp_obj_t arg1, mp_obj_t arg2) {
|
||||
mp_int_t y = mp_obj_get_int(arg1);
|
||||
mp_int_t color = mp_obj_get_int(arg2);
|
||||
dhline(y, color);
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
STATIC mp_obj_t modgint_dvline(mp_obj_t arg1, mp_obj_t arg2) {
|
||||
mp_int_t x = mp_obj_get_int(arg1);
|
||||
mp_int_t color = mp_obj_get_int(arg2);
|
||||
dvline(x, color);
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
STATIC mp_obj_t modgint_dpoly(mp_obj_t points, mp_obj_t fill, mp_obj_t border) {
|
||||
|
||||
mp_uint_t nbitems;
|
||||
mp_obj_t *items;
|
||||
|
||||
mp_obj_list_get(points, &nbitems, &items);
|
||||
|
||||
unsigned int len = nbitems / 2;
|
||||
int *x = (int *)malloc(len * sizeof(int));
|
||||
int *y = (int *)malloc(len * sizeof(int));
|
||||
|
||||
if (!x || !y)
|
||||
STATIC mp_obj_t modgint_dclear(mp_obj_t arg1)
|
||||
{
|
||||
mp_int_t color = mp_obj_get_int(arg1);
|
||||
dclear(color);
|
||||
return mp_const_none;
|
||||
|
||||
for (unsigned int u = 0; u < len; u++) {
|
||||
x[u] = mp_obj_get_int(items[u * 2]);
|
||||
y[u] = mp_obj_get_int(items[u * 2 + 1]);
|
||||
}
|
||||
|
||||
mp_int_t fillcolor = mp_obj_get_int(fill);
|
||||
mp_int_t bordercolor = mp_obj_get_int(border);
|
||||
|
||||
dpoly(x, y, len, fillcolor, bordercolor);
|
||||
|
||||
free(x);
|
||||
free(y);
|
||||
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
STATIC mp_obj_t modgint_dcircle(size_t n_args, const mp_obj_t *args) {
|
||||
mp_int_t x = mp_obj_get_int(args[0]);
|
||||
mp_int_t y = mp_obj_get_int(args[1]);
|
||||
mp_int_t r = mp_obj_get_int(args[2]);
|
||||
mp_int_t fill = mp_obj_get_int(args[3]);
|
||||
mp_int_t border = mp_obj_get_int(args[4]);
|
||||
|
||||
dcircle(x, y, r, fill, border);
|
||||
return mp_const_none;
|
||||
STATIC mp_obj_t modgint_dupdate(void)
|
||||
{
|
||||
pe_enter_graphics_mode();
|
||||
dupdate();
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
STATIC mp_obj_t modgint_dellipse(size_t n_args, const mp_obj_t *args) {
|
||||
mp_int_t x1 = mp_obj_get_int(args[0]);
|
||||
mp_int_t y1 = mp_obj_get_int(args[1]);
|
||||
mp_int_t x2 = mp_obj_get_int(args[2]);
|
||||
mp_int_t y2 = mp_obj_get_int(args[3]);
|
||||
mp_int_t fill = mp_obj_get_int(args[4]);
|
||||
mp_int_t border = mp_obj_get_int(args[5]);
|
||||
STATIC mp_obj_t modgint_drect(size_t n, mp_obj_t const *args)
|
||||
{
|
||||
mp_int_t x1 = mp_obj_get_int(args[0]);
|
||||
mp_int_t y1 = mp_obj_get_int(args[1]);
|
||||
mp_int_t x2 = mp_obj_get_int(args[2]);
|
||||
mp_int_t y2 = mp_obj_get_int(args[3]);
|
||||
mp_int_t color = mp_obj_get_int(args[4]);
|
||||
drect(x1, y1, x2, y2, color);
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
dellipse(x1, y1, x2, y2, fill, border);
|
||||
return mp_const_none;
|
||||
STATIC mp_obj_t modgint_drect_border(size_t n, mp_obj_t const *args)
|
||||
{
|
||||
mp_int_t x1 = mp_obj_get_int(args[0]);
|
||||
mp_int_t y1 = mp_obj_get_int(args[1]);
|
||||
mp_int_t x2 = mp_obj_get_int(args[2]);
|
||||
mp_int_t y2 = mp_obj_get_int(args[3]);
|
||||
mp_int_t fill_color = mp_obj_get_int(args[4]);
|
||||
mp_int_t border_width = mp_obj_get_int(args[5]);
|
||||
mp_int_t border_color = mp_obj_get_int(args[6]);
|
||||
drect_border(x1, y1, x2, y2, fill_color, border_width, border_color);
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
STATIC mp_obj_t modgint_dpixel(mp_obj_t arg1, mp_obj_t arg2, mp_obj_t arg3)
|
||||
{
|
||||
mp_int_t x = mp_obj_get_int(arg1);
|
||||
mp_int_t y = mp_obj_get_int(arg2);
|
||||
mp_int_t color = mp_obj_get_int(arg3);
|
||||
dpixel(x, y, color);
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
STATIC mp_obj_t modgint_dgetpixel(mp_obj_t arg1, mp_obj_t arg2)
|
||||
{
|
||||
mp_int_t x = mp_obj_get_int(arg1);
|
||||
mp_int_t y = mp_obj_get_int(arg2);
|
||||
return MP_OBJ_NEW_SMALL_INT(dgetpixel(x, y));
|
||||
}
|
||||
|
||||
STATIC mp_obj_t modgint_dline(size_t n, mp_obj_t const *args)
|
||||
{
|
||||
mp_int_t x1 = mp_obj_get_int(args[0]);
|
||||
mp_int_t y1 = mp_obj_get_int(args[1]);
|
||||
mp_int_t x2 = mp_obj_get_int(args[2]);
|
||||
mp_int_t y2 = mp_obj_get_int(args[3]);
|
||||
mp_int_t color = mp_obj_get_int(args[4]);
|
||||
dline(x1, y1, x2, y2, color);
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
STATIC mp_obj_t modgint_dhline(mp_obj_t arg1, mp_obj_t arg2)
|
||||
{
|
||||
mp_int_t y = mp_obj_get_int(arg1);
|
||||
mp_int_t color = mp_obj_get_int(arg2);
|
||||
dhline(y, color);
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
STATIC mp_obj_t modgint_dvline(mp_obj_t arg1, mp_obj_t arg2)
|
||||
{
|
||||
mp_int_t x = mp_obj_get_int(arg1);
|
||||
mp_int_t color = mp_obj_get_int(arg2);
|
||||
dvline(x, color);
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
STATIC mp_obj_t modgint_dcircle(size_t n_args, const mp_obj_t *args)
|
||||
{
|
||||
mp_int_t x = mp_obj_get_int(args[0]);
|
||||
mp_int_t y = mp_obj_get_int(args[1]);
|
||||
mp_int_t r = mp_obj_get_int(args[2]);
|
||||
mp_int_t fill = mp_obj_get_int(args[3]);
|
||||
mp_int_t border = mp_obj_get_int(args[4]);
|
||||
|
||||
dcircle(x, y, r, fill, border);
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
STATIC mp_obj_t modgint_dellipse(size_t n_args, const mp_obj_t *args)
|
||||
{
|
||||
mp_int_t x1 = mp_obj_get_int(args[0]);
|
||||
mp_int_t y1 = mp_obj_get_int(args[1]);
|
||||
mp_int_t x2 = mp_obj_get_int(args[2]);
|
||||
mp_int_t y2 = mp_obj_get_int(args[3]);
|
||||
mp_int_t fill = mp_obj_get_int(args[4]);
|
||||
mp_int_t border = mp_obj_get_int(args[5]);
|
||||
|
||||
dellipse(x1, y1, x2, y2, fill, border);
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
// TODO: modgint: Font management?
|
||||
|
||||
STATIC mp_obj_t modgint_dtext_opt(size_t n, mp_obj_t const *args) {
|
||||
mp_int_t x = mp_obj_get_int(args[0]);
|
||||
mp_int_t y = mp_obj_get_int(args[1]);
|
||||
mp_int_t fg = mp_obj_get_int(args[2]);
|
||||
mp_int_t bg = mp_obj_get_int(args[3]);
|
||||
mp_int_t halign = mp_obj_get_int(args[4]);
|
||||
mp_int_t valign = mp_obj_get_int(args[5]);
|
||||
char const *str = mp_obj_str_get_str(args[6]);
|
||||
mp_int_t size = mp_obj_get_int(args[7]);
|
||||
dtext_opt(x, y, fg, bg, halign, valign, str, size);
|
||||
return mp_const_none;
|
||||
STATIC mp_obj_t modgint_dtext_opt(size_t n, mp_obj_t const *args)
|
||||
{
|
||||
mp_int_t x = mp_obj_get_int(args[0]);
|
||||
mp_int_t y = mp_obj_get_int(args[1]);
|
||||
mp_int_t fg = mp_obj_get_int(args[2]);
|
||||
mp_int_t bg = mp_obj_get_int(args[3]);
|
||||
mp_int_t halign = mp_obj_get_int(args[4]);
|
||||
mp_int_t valign = mp_obj_get_int(args[5]);
|
||||
char const *str = mp_obj_str_get_str(args[6]);
|
||||
mp_int_t size = mp_obj_get_int(args[7]);
|
||||
dtext_opt(x, y, fg, bg, halign, valign, str, size);
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
STATIC mp_obj_t modgint_dtext(size_t n, mp_obj_t const *args) {
|
||||
mp_int_t x = mp_obj_get_int(args[0]);
|
||||
mp_int_t y = mp_obj_get_int(args[1]);
|
||||
mp_int_t fg = mp_obj_get_int(args[2]);
|
||||
char const *str = mp_obj_str_get_str(args[3]);
|
||||
dtext(x, y, fg, str);
|
||||
return mp_const_none;
|
||||
STATIC mp_obj_t modgint_dtext(size_t n, mp_obj_t const *args)
|
||||
{
|
||||
mp_int_t x = mp_obj_get_int(args[0]);
|
||||
mp_int_t y = mp_obj_get_int(args[1]);
|
||||
mp_int_t fg = mp_obj_get_int(args[2]);
|
||||
char const *str = mp_obj_str_get_str(args[3]);
|
||||
dtext(x, y, fg, str);
|
||||
return mp_const_none;
|
||||
}
|
||||
|
||||
FUN_0(__init__);
|
||||
|
@ -312,7 +314,6 @@ FUN_2(dgetpixel);
|
|||
FUN_BETWEEN(dline, 5, 5);
|
||||
FUN_2(dhline);
|
||||
FUN_2(dvline);
|
||||
FUN_3(dpoly);
|
||||
FUN_BETWEEN(dcircle, 5, 5);
|
||||
FUN_BETWEEN(dellipse, 6, 6);
|
||||
FUN_BETWEEN(dtext_opt, 8, 8);
|
||||
|
@ -321,15 +322,13 @@ FUN_BETWEEN(dtext, 4, 4);
|
|||
/* Module definition */
|
||||
|
||||
// Helper: define object "modgint_F_obj" as object "F" in the module
|
||||
#define OBJ(F) \
|
||||
{ MP_ROM_QSTR(MP_QSTR_##F), MP_ROM_PTR(&modgint_##F##_obj) }
|
||||
#define OBJ(F) {MP_ROM_QSTR(MP_QSTR_ ## F), MP_ROM_PTR(&modgint_ ## F ## _obj)}
|
||||
|
||||
// Helper: define small integer constant "I" as "I" in the module
|
||||
#define INT(I) \
|
||||
{ MP_ROM_QSTR(MP_QSTR_##I), MP_OBJ_NEW_SMALL_INT(I) }
|
||||
#define INT(I) {MP_ROM_QSTR(MP_QSTR_ ## I), MP_OBJ_NEW_SMALL_INT(I)}
|
||||
|
||||
STATIC const mp_rom_map_elem_t modgint_module_globals_table[] = {
|
||||
{MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR_gint)},
|
||||
{ MP_OBJ_NEW_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR_gint) },
|
||||
OBJ(__init__),
|
||||
|
||||
/* <gint/keycodes.h> */
|
||||
|
@ -470,17 +469,16 @@ STATIC const mp_rom_map_elem_t modgint_module_globals_table[] = {
|
|||
OBJ(dline),
|
||||
OBJ(dhline),
|
||||
OBJ(dvline),
|
||||
OBJ(dpoly),
|
||||
OBJ(dcircle),
|
||||
OBJ(dellipse),
|
||||
OBJ(dtext_opt),
|
||||
OBJ(dtext),
|
||||
};
|
||||
STATIC MP_DEFINE_CONST_DICT(modgint_module_globals,
|
||||
modgint_module_globals_table);
|
||||
STATIC MP_DEFINE_CONST_DICT(
|
||||
modgint_module_globals, modgint_module_globals_table);
|
||||
|
||||
const mp_obj_module_t modgint_module = {
|
||||
.base = {&mp_type_module},
|
||||
.base = { &mp_type_module },
|
||||
.globals = (mp_obj_dict_t *)&modgint_module_globals,
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue