Skip to content

Commit ba508cb

Browse files
committed
CONSOLE: update for graphics plugins
1 parent b74ec59 commit ba508cb

File tree

4 files changed

+22
-16
lines changed

4 files changed

+22
-16
lines changed

src/include/module.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ void sblib_close(void);
5454
*
5555
* plugin based event handling
5656
*/
57-
int sblib_events(int wait_flag);
57+
int sblib_events(int wait_flag, int *w, int *h);
5858

5959
/**
6060
* @ingroup modlib
@@ -130,7 +130,6 @@ int sblib_func_exec(int index, int param_count, slib_par_t *params, var_t *retva
130130
*
131131
* overrides for osd_xx functions
132132
*/
133-
int sblib_events(int);
134133
int sblib_getpen(int code);
135134
int sblib_getx();
136135
int sblib_gety();

src/platform/console/Makefile.am

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ bin_PROGRAMS = sbasic
1111

1212
sbasic_SOURCES = \
1313
../../lib/lodepng/lodepng.cpp ../../lib/lodepng/lodepng.h \
14-
../console/main.cpp \
15-
../console/device.cpp \
16-
../console/image.cpp \
17-
../console/decomp.c
14+
main.cpp \
15+
device.cpp \
16+
image.cpp \
17+
decomp.c
1818

1919
sbasic_LDADD = -L$(top_srcdir)/src/common -lsb_common @PACKAGE_LIBS@
2020

src/platform/console/device.cpp

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ typedef int (*getx_fn)();
2121
typedef int (*gety_fn)();
2222
typedef void (*setxy_fn)(int x, int y);
2323
typedef void (*write_fn)(const char *str);
24-
typedef int (*events_fn)(int);
24+
typedef int (*events_fn)(int, int*, int*);
2525
typedef void (*setcolor_fn)(long color);
2626
typedef void (*line_fn)(int x1, int y1, int x2, int y2);
2727
typedef void (*ellipse_fn)(int xc, int yc, int xr, int yr, int fill);
@@ -117,19 +117,14 @@ int osd_devinit() {
117117
init_fn devinit = (init_fn)slib_get_func("sblib_devinit");
118118
if (devinit) {
119119
devinit(prog_file, opt_pref_width, opt_pref_height);
120-
os_graf_mx = opt_pref_width;
121-
os_graf_my = opt_pref_height;
122-
} else {
123-
os_graf_mx = 80;
124-
os_graf_my = 25;
125120
}
121+
os_graf_mx = opt_pref_width;
122+
os_graf_my = opt_pref_height;
126123

127124
if (p_write == NULL) {
128125
p_write = default_write;
129126
}
130127

131-
os_color_depth = 1;
132-
osd_cls();
133128
return 1;
134129
}
135130

@@ -209,7 +204,17 @@ void osd_write(const char *str) {
209204
int osd_events(int wait_flag) {
210205
int result = 0;
211206
if (p_events) {
212-
result = p_events(wait_flag);
207+
int x = os_graf_mx;
208+
int y = os_graf_my;
209+
result = p_events(wait_flag, &x, &y);
210+
if (x != os_graf_mx || y != os_graf_my) {
211+
os_graf_mx = x;
212+
os_graf_my = y;
213+
dev_viewport(0, 0, 0, 0);
214+
dev_window(0, 0, 0, 0);
215+
setsysvar_int(SYSVAR_XMAX, os_graf_mx);
216+
setsysvar_int(SYSVAR_YMAX, os_graf_my);
217+
}
213218
}
214219
return result;
215220
}

src/platform/console/main.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,6 @@ int main(int argc, char *argv[]) {
340340
opt_autolocal = 0;
341341
opt_command[0] = '\0';
342342
opt_file_permitted = 1;
343-
opt_graphics = 0;
344343
opt_ide = 0;
345344
opt_loadmod = 0;
346345
opt_modpath[0] = 0;
@@ -349,6 +348,9 @@ int main(int argc, char *argv[]) {
349348
opt_pref_width = 0;
350349
opt_quiet = 1;
351350
opt_verbose = 0;
351+
opt_graphics = 1;
352+
os_graphics = 1;
353+
os_color_depth = 16;
352354

353355
console_init();
354356

0 commit comments

Comments
 (0)