From ac176507b3f2d11c6381b34656053422e1f5699d Mon Sep 17 00:00:00 2001 From: deuce <> Date: Sun, 9 Feb 2014 07:48:48 +0000 Subject: [PATCH] Add new wrapper functions to get/set the scaling factor. --- src/conio/CMakeLists.txt | 4 ---- src/conio/bitmap_con.c | 11 +++++++++++ src/conio/bitmap_con.h | 2 ++ src/conio/ciolib.c | 21 +++++++++++++++++++++ src/conio/ciolib.h | 6 ++++++ 5 files changed, 40 insertions(+), 4 deletions(-) diff --git a/src/conio/CMakeLists.txt b/src/conio/CMakeLists.txt index 2925f5c4b7..6f5b1068ac 100644 --- a/src/conio/CMakeLists.txt +++ b/src/conio/CMakeLists.txt @@ -61,10 +61,6 @@ if(SDL_FOUND) target_compile_definitions(ciolib PUBLIC WITH_SDL) endif() -if(NEED_BITMAP) - target_compile_definitions(ciolib PUBLIC HAS_VSTAT) -endif() - if(NOT WIN32) target_link_libraries(ciolib pthread) endif() diff --git a/src/conio/bitmap_con.c b/src/conio/bitmap_con.c index 147850a3c5..bb565b9f84 100644 --- a/src/conio/bitmap_con.c +++ b/src/conio/bitmap_con.c @@ -577,6 +577,17 @@ int bitmap_getfont(void) return(current_font); } +void bitmap_setscaling(int new_value) +{ + if(new_value > 0) + vstat.scaling = new_value; +} + +int bitmap_getscaling(void) +{ + return vstat.scaling; +} + /* Called from event thread only */ int bitmap_loadfont(char *filename) { diff --git a/src/conio/bitmap_con.h b/src/conio/bitmap_con.h index 599746316f..2a7bf2b0dd 100644 --- a/src/conio/bitmap_con.h +++ b/src/conio/bitmap_con.h @@ -28,5 +28,7 @@ void bitmap_getcustomcursor(int *s, int *e, int *r, int *b, int *v); void bitmap_setcustomcursor(int s, int e, int r, int b, int v); int bitmap_getvideoflags(void); void bitmap_setvideoflags(int flags); +void bitmap_setscaling(int new_value); +int bitmap_getscaling(void); #endif diff --git a/src/conio/ciolib.c b/src/conio/ciolib.c index 707e5803eb..7e91c8b8fa 100644 --- a/src/conio/ciolib.c +++ b/src/conio/ciolib.c @@ -113,6 +113,8 @@ CIOLIBEXPORT char * CIOLIBCALL ciolib_getpass(const char *prompt); CIOLIBEXPORT void CIOLIBCALL ciolib_copytext(const char *text, size_t buflen); CIOLIBEXPORT char * CIOLIBCALL ciolib_getcliptext(void); CIOLIBEXPORT int CIOLIBCALL ciolib_get_window_info(int *width, int *height, int *xpos, int *ypos); +CIOLIBEXPORT void CIOLIBCALL ciolib_setscaling(int new_value); +CIOLIBEXPORT int CIOLIBCALL ciolib_getscaling(void); #define CIOLIB_INIT() { if(initialized != 1) initciolib(CIOLIB_MODE_AUTO); } @@ -152,6 +154,8 @@ int try_sdl_init(int mode) cio_api.getcliptext=sdl_getcliptext; #endif cio_api.get_window_info=sdl_get_window_info; + cio_api.setscaling=bitmap_setscaling; + cio_api.getscaling=bitmap_getscaling; return(1); } return(0); @@ -189,6 +193,8 @@ int try_x_init(int mode) cio_api.copytext=x_copytext; cio_api.getcliptext=x_getcliptext; cio_api.get_window_info=x_get_window_info; + cio_api.setscaling=bitmap_setscaling; + cio_api.getscaling=bitmap_getscaling; return(1); } return(0); @@ -1321,3 +1327,18 @@ CIOLIBEXPORT int CIOLIBCALL ciolib_getvideoflags(void) return(cio_api.getvideoflags()); return(0); } + +/* Optional */ +CIOLIBEXPORT void CIOLIBCALL ciolib_setscaling(int new_value) +{ + if(cio_api.setscaling) + cio_api.setscaling(new_value); +} + +/* Optional */ +CIOLIBEXPORT int CIOLIBCALL ciolib_getscaling(void) +{ + if(cio_api.getscaling) + return(cio_api.getscaling()); + return(0); +} diff --git a/src/conio/ciolib.h b/src/conio/ciolib.h index 22b287bda3..f9ac3946df 100644 --- a/src/conio/ciolib.h +++ b/src/conio/ciolib.h @@ -295,6 +295,8 @@ typedef struct { void (*setcustomcursor) (int startline, int endline, int range, int blink, int visible); void (*setvideoflags) (int flags); int (*getvideoflags) (void); + void (*setscaling) (int new_value); + int (*getscaling) (void); int *ESCDELAY; } cioapi_t; @@ -360,6 +362,8 @@ CIOLIBEXPORT void CIOLIBCALL ciolib_getcustomcursor(int *startline, int *endline CIOLIBEXPORT void CIOLIBCALL ciolib_setcustomcursor(int startline, int endline, int range, int blink, int visible); CIOLIBEXPORT void CIOLIBCALL ciolib_setvideoflags(int flags); CIOLIBEXPORT int CIOLIBCALL ciolib_getvideoflags(void); +CIOLIBEXPORT void CIOLIBCALL ciolib_setscaling(int flags); +CIOLIBEXPORT int CIOLIBCALL ciolib_getscaling(void); /* DoorWay specific stuff that's only applicable to ANSI mode. */ CIOLIBEXPORT void CIOLIBCALL ansi_ciolib_setdoorway(int enable); @@ -419,6 +423,8 @@ CIOLIBEXPORT void CIOLIBCALL ansi_ciolib_setdoorway(int enable); #define setcustomcursor(a,b,c,d,e) ciolib_setcustomcursor(a,b,c,d,e) #define setvideoflags(a) ciolib_setvideoflags(a) #define getvideoflags() ciolib_getvideoflags() + #define setscaling(a) ciolib_setscaling(a) + #define getscaling() ciolib_getscaling() #endif #ifdef WITH_SDL -- GitLab