From 1930e23f5841dc1ce2e199fe931a0b83c0119e45 Mon Sep 17 00:00:00 2001 From: maxcodehack Date: Tue, 10 Nov 2020 18:53:57 +0000 Subject: [PATCH] Ktcc: - kos32sys1.h: Tcc dont support aliasing but support defines - boxlib sample: Update sample for upper fix - Rasterworks example: Fix 'bright' letters git-svn-id: svn://kolibrios.org@8171 a494cfbc-eb01-0410-851d-a64ba20cac60 --- .../ktcc/trunk/libc/include/kos32sys1.h | 24 +++++++++++++++++- .../ktcc/trunk/samples/clayer/boxlib.c | 25 ++++++++++++++++--- .../ktcc/trunk/samples/clayer/rasterworks.c | 2 +- 3 files changed, 45 insertions(+), 6 deletions(-) diff --git a/programs/develop/ktcc/trunk/libc/include/kos32sys1.h b/programs/develop/ktcc/trunk/libc/include/kos32sys1.h index 55c3f9d5a4..3eba0d7a2f 100644 --- a/programs/develop/ktcc/trunk/libc/include/kos32sys1.h +++ b/programs/develop/ktcc/trunk/libc/include/kos32sys1.h @@ -757,7 +757,7 @@ void __attribute__ ((noinline)) debug_board_printf(const char *format,...) -// TinyC don't support aliasing of static inline funcs +// TinyC don't support aliasing of static inline funcs, but support #define :) #ifndef __TINYC__ static inline void BeginDraw(void) __attribute__ ((alias ("begin_draw"))); static inline void EndDraw(void) __attribute__ ((alias ("end_draw"))); @@ -785,6 +785,28 @@ static inline void* UserRealloc(void *mem, size_t size) __attribute__ ((alias (" static inline int *UserUnmap(void *base, size_t offset, size_t size) __attribute__ ((alias ("user_unmap"))); static inline ufile_t LoadFile(const char *path) __attribute__ ((alias ("load_file"))); static inline void GetProcInfo(char *info) __attribute__ ((alias ("get_proc_info"))); +#else + #define BeginDraw begin_draw + #define EndDraw end_draw + #define DrawWindow sys_create_window + #define DefineButton define_button + #define DrawLine draw_line + #define DrawBar draw_bar + #define DrawBitmap draw_bitmap + #define GetSkinHeight get_skin_height + #define GetMousePos get_mouse_pos + #define GetMouseButtons get_mouse_buttons + #define GetMouseWheels get_mouse_wheels + #define LoadCursor load_cursor + #define SetCursor set_cursor + #define DestroyCursor destroy_cursor + #define GetOsEvent get_os_event + #define UserAlloc user_alloc + #define UserFree user_free + #define UserRealloc user_realloc + #define UserUnmap user_unmap + #define LoadFile load_file + #define GetProcInfo get_proc_info #endif #ifdef __cplusplus diff --git a/programs/develop/ktcc/trunk/samples/clayer/boxlib.c b/programs/develop/ktcc/trunk/samples/clayer/boxlib.c index 7f12ce2979..957dd1c9c6 100644 --- a/programs/develop/ktcc/trunk/samples/clayer/boxlib.c +++ b/programs/develop/ktcc/trunk/samples/clayer/boxlib.c @@ -17,17 +17,18 @@ #define WIN_W 640 #define WIN_H 563 +uint32_t wheels; char* title = "Boxlib example"; int win_bg_color = 0x858585; scrollbar scroll = {15, WIN_W - 26, WIN_H - 29, 0, 0, 2, 215, 15, 0,0x707070,0xD2CED0,0x555555,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1}; progressbar pg = {0, 10, 10, 270, 35, 1, 0, 200, 0xB4B4B4, 0x2728FF, 0xA9A9A9}; void draw_window(){ - begin_draw(); - sys_create_window(215,100,WIN_W,WIN_H,title,win_bg_color,0x34); + BeginDraw(); + DrawWindow(215,100,WIN_W,WIN_H,title,win_bg_color,0x34); scrollbar_v_draw(&scroll); progressbar_draw(&pg); - end_draw(); + EndDraw(); } //// EVENTMASK @@ -53,7 +54,7 @@ int main() set_event_mask(EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE + EVM_MOUSE_FILTER); while(1) { - switch(get_os_event()) + switch(GetOsEvent()) { case evButton: if (get_os_button() == 1) exit(0); @@ -68,6 +69,22 @@ int main() break; case evMouse: scrollbar_v_mouse(&scroll); + + // Wheel scrolling + // Quite unstable + /* + int scroll_strong = 40; + wheels = GetMouseWheels(); + if(wheels & 0xFFFF) + { + if((short)wheels > 0 && scroll.position < scroll.max_area - scroll_strong) + scroll.position += scroll_strong; + else if((short)wheels < 0 && scroll.position > 0) + scroll.position -= scroll_strong; + + scrollbar_v_draw(&scroll); + } + */ pg.value = scroll.position; progressbar_draw(&pg); break; diff --git a/programs/develop/ktcc/trunk/samples/clayer/rasterworks.c b/programs/develop/ktcc/trunk/samples/clayer/rasterworks.c index ccc186cb8d..44b6d91724 100644 --- a/programs/develop/ktcc/trunk/samples/clayer/rasterworks.c +++ b/programs/develop/ktcc/trunk/samples/clayer/rasterworks.c @@ -25,7 +25,7 @@ int main() case 1: begin_draw(); sys_create_window(50, 50, 800, 300, "rasterworks example" ,0x34f0f0f0, 0x14); - draw_bitmap(buffi, 5, 25, 768, 256); + draw_bitmap(buffi+8, 5, 25, 768, 256); end_draw(); break;