Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - Kitty Hello

#1
it's url_Str. The $ is replaced by _Str in C++.
#2
I copy the icon.png to the distribute folder.
I managed to get ASYNCIFY running. Now infinite loops with SHOWSCREEN will work - which makes DDGui's combo boxes etc. fully working. But also, all code should just run without any modifications. I don't think performance will be an issue anymore. Today's mobile phones are more powerfull than the computers we had when experimenting with emscripten/html5.

Here's what I did - but it does not beep on my Android mobile Firefox :(

https://www.glbasic.com/beep_timer/BeepTimer.html

I pushed my changes to git.
#3
Yes, that should work. Multithreadingbreaks, when you write to a memory address and another thread tries to read/write to the same memory address at the same time. Parallel reading is no problem. But internal GLBasic functions often use a "cache" for stuff to be quicker. That might get you into trouble. Just try, and if it breaks, add a critical section around that code.
#4
Oh. I think DDgui_msg uses an infinite loop to show the GUI. When you use SETLOOPSUB instead, DDgui works. My GACK (Gaming App Construction Kit) uses DDGui and runs perfectly.
#5
Oh. The GLBasic commands are not considered thread safe. Espeically graphics commands. Where is the bottleneck? Is it really the loading?
LOADSPRITE and X_LOADOBJ calls can't be multithreading. But drawing while loading other stuff might be - as long as you don't reload over existing channels.
#6
Can't you just change the texture instead of exporting the body parts separately? Or are there extras like super-muscles or Sonic/Hedgehog like legs?
#7
Did you find the library? If so, multithreading is realitively easy. When you only read data, everything is fine. Once you start writing bits, you must ensure, that no other thread tries to read or write to the same memory location at the very same time. You do this, by setting locks (critical section or mutex in HawkThreads). The main problem is to organize your work loops, so you don't have a lot of locks.
You will get used to it, when you start doing things in parallel. Often, I use separate lists for the result of each thread and merge the results after the parallel code part together to one result.
#8
So cool to see, you're holding on to this. I really can learn a lot from you. I have a folder with lots of projects that I started but never finished. When the hard part is coded, I tend to lose interest. Keep it up!
#9
did you push the GETNUMJOYSTICKS fix to the git repository?
#10
Hier ist die accelerator-table. Hilft das?

IDR_MAINFRAME ACCELERATORS
BEGIN
    "0",            ID_EDIT_TOGGLE_BOOKMARK0, VIRTKEY, CONTROL, NOINVERT
    "0",            ID_EDIT_GO_BOOKMARK0,  VIRTKEY, ALT, NOINVERT
    "1",            ID_EDIT_TOGGLE_BOOKMARK1, VIRTKEY, CONTROL, NOINVERT
    "1",            ID_EDIT_GO_BOOKMARK1,  VIRTKEY, ALT, NOINVERT
    "2",            ID_EDIT_TOGGLE_BOOKMARK2, VIRTKEY, CONTROL, NOINVERT
    "2",            ID_EDIT_GO_BOOKMARK2,  VIRTKEY, ALT, NOINVERT
    "3",            ID_EDIT_TOGGLE_BOOKMARK3, VIRTKEY, CONTROL, NOINVERT
    "3",            ID_EDIT_GO_BOOKMARK3,  VIRTKEY, ALT, NOINVERT
    "4",            ID_EDIT_TOGGLE_BOOKMARK4, VIRTKEY, CONTROL, NOINVERT
    "4",            ID_EDIT_GO_BOOKMARK4,  VIRTKEY, ALT, NOINVERT
    "5",            ID_EDIT_TOGGLE_BOOKMARK5, VIRTKEY, CONTROL, NOINVERT
    "5",            ID_EDIT_GO_BOOKMARK5,  VIRTKEY, ALT, NOINVERT
    "6",            ID_EDIT_TOGGLE_BOOKMARK6, VIRTKEY, CONTROL, NOINVERT
    "6",            ID_EDIT_GO_BOOKMARK6,  VIRTKEY, ALT, NOINVERT
    "7",            ID_EDIT_TOGGLE_BOOKMARK7, VIRTKEY, CONTROL, NOINVERT
    "7",            ID_EDIT_GO_BOOKMARK7,  VIRTKEY, ALT, NOINVERT
    "8",            ID_EDIT_TOGGLE_BOOKMARK8, VIRTKEY, CONTROL, NOINVERT
    "8",            ID_EDIT_GO_BOOKMARK8,  VIRTKEY, ALT, NOINVERT
    "9",            ID_EDIT_TOGGLE_BOOKMARK9, VIRTKEY, CONTROL, NOINVERT
    "9",            ID_EDIT_GO_BOOKMARK9,  VIRTKEY, ALT, NOINVERT
    "A",            ID_EDIT_SELECT_ALL,    VIRTKEY, CONTROL, NOINVERT
    "C",            ID_EDIT_COPY,          VIRTKEY, CONTROL, NOINVERT
    "E",            ID_EDIT_FIND_MATCHING_BRACE, VIRTKEY, CONTROL, NOINVERT
    "F",            ID_EDIT_FIND,          VIRTKEY, CONTROL, NOINVERT
    "F",            ID_INSERT_FUNCTION,    VIRTKEY, CONTROL, ALT, NOINVERT
    "F",            ID_EDIT_FIND_IN_FILES,  VIRTKEY, SHIFT, CONTROL, NOINVERT
    "G",            ID_EDIT_GOTO_DEFINITION, VIRTKEY, CONTROL, NOINVERT
    "H",            ID_EDIT_REPLACE,        VIRTKEY, CONTROL, NOINVERT
    "K",            ID_EDIT_COMMENT_BLOCK,  VIRTKEY, CONTROL, NOINVERT
    "K",            ID_KEYCODE_TABLE,      VIRTKEY, ALT, NOINVERT
    "L",            ID_EDIT_GOTO_LINE,      VIRTKEY, CONTROL, NOINVERT
    "N",            ID_FILE_NEW,            VIRTKEY, CONTROL, NOINVERT
    "O",            ID_FILE_OPEN,          VIRTKEY, CONTROL, NOINVERT
    "P",            ID_FILE_PRINT,          VIRTKEY, CONTROL, NOINVERT
    "S",            ID_FILE_SAVE,          VIRTKEY, CONTROL, NOINVERT
    "S",            ID_INSERT_SUB,          VIRTKEY, CONTROL, ALT, NOINVERT
    "S",            ID_FILE_SAVE_ALL,      VIRTKEY, SHIFT, CONTROL, NOINVERT
    "T",            ID_EDIT_COMPLETE_WORD,  VIRTKEY, CONTROL, NOINVERT
    "U",            ID_EDIT_MAKE_LOWERCASE, VIRTKEY, CONTROL, NOINVERT
    "U",            ID_EDIT_MAKE_UPPERCASE, VIRTKEY, SHIFT, CONTROL, NOINVERT
    "V",            ID_EDIT_PASTE,          VIRTKEY, CONTROL, NOINVERT
    VK_BACK,        ID_EDIT_DELETE_BACK,    VIRTKEY, NOINVERT
    VK_BACK,        ID_EDIT_DELETE_WORD_BACK, VIRTKEY, CONTROL, NOINVERT
    VK_BACK,        ID_EDIT_UNDO,          VIRTKEY, ALT, NOINVERT
    VK_BACK,        ID_EDIT_DELETE_BACK,    VIRTKEY, SHIFT, NOINVERT
    VK_CANCEL,      ID_COMPILER_STOP,      VIRTKEY, CONTROL, NOINVERT
    VK_CANCEL,      ID_DEBUGGER_PAUSE,      VIRTKEY, CONTROL, ALT, NOINVERT
    VK_DELETE,      ID_EDIT_DELETE,        VIRTKEY, NOINVERT
    VK_DELETE,      ID_EDIT_CUT,            VIRTKEY, SHIFT, NOINVERT
    VK_DOWN,        ID_EDIT_LINE_DOWN,      VIRTKEY, NOINVERT
    VK_DOWN,        ID_EDIT_SCROLL_DOWN,    VIRTKEY, CONTROL, NOINVERT
    VK_DOWN,        ID_EDIT_EXT_LINE_DOWN,  VIRTKEY, SHIFT, NOINVERT
    VK_END,        ID_EDIT_LINE_END,      VIRTKEY, NOINVERT
    VK_END,        ID_EDIT_TEXT_END,      VIRTKEY, CONTROL, NOINVERT
    VK_END,        ID_EDIT_EXT_LINE_END,  VIRTKEY, SHIFT, NOINVERT
    VK_END,        ID_EDIT_EXT_TEXT_END,  VIRTKEY, SHIFT, CONTROL, NOINVERT
    VK_F1,          ID_HELP_INDEX,          VIRTKEY, NOINVERT
    VK_F10,        ID_DEBUG_NEXTLINE,      VIRTKEY, NOINVERT
    VK_F10,        ID_DEBUGGER_STEP_INTO,  VIRTKEY, CONTROL, NOINVERT
    VK_F10,        ID_DEBUGGER_STEP_UP,    VIRTKEY, SHIFT, NOINVERT
    VK_F11,        ID_CALCULATOR,          VIRTKEY, NOINVERT
    VK_F12,        ID_TOGGLE_OUTPUT,      VIRTKEY, NOINVERT
    VK_F2,          ID_EDIT_GOTO_NEXT_BOOKMARK, VIRTKEY, NOINVERT
    VK_F2,          ID_EDIT_TOGGLE_BOOKMARK, VIRTKEY, CONTROL, NOINVERT
    VK_F2,          ID_EDIT_GOTO_PREV_BOOKMARK, VIRTKEY, SHIFT, NOINVERT
    VK_F2,          ID_EDIT_CLEAR_ALL_BOOKMARKS, VIRTKEY, SHIFT, CONTROL, NOINVERT
    VK_F3,          ID_EDIT_REPEAT,        VIRTKEY, NOINVERT
    VK_F3,          ID_EDIT_FIND_SELECTED,  VIRTKEY, CONTROL, NOINVERT
    VK_F3,          ID_EDIT_FIND_PREVIOUS,  VIRTKEY, SHIFT, NOINVERT
    VK_F4,          ID_BROWSE_FOR_SUB,      VIRTKEY, NOINVERT
    VK_F5,          ID_COMPILER_RUN,        VIRTKEY, NOINVERT
    VK_F5,          ID_COMPILER_RUN,        VIRTKEY, CONTROL, NOINVERT
    VK_F5,          ID_DEBUG_STOP,          VIRTKEY, SHIFT, NOINVERT
    VK_F8,          ID_COMPILER_GPC,        VIRTKEY, NOINVERT
    VK_F8,          ID_COMPILE_MULTIPLATFORM, VIRTKEY, SHIFT, NOINVERT
    VK_F9,          ID_EDIT_TOGGLE_BREAKPOINT, VIRTKEY, NOINVERT
    VK_HOME,        ID_EDIT_HOME,          VIRTKEY, NOINVERT
    VK_HOME,        ID_EDIT_TEXT_BEGIN,    VIRTKEY, CONTROL, NOINVERT
    VK_HOME,        ID_EDIT_EXT_HOME,      VIRTKEY, SHIFT, NOINVERT
    VK_HOME,        ID_EDIT_EXT_TEXT_BEGIN, VIRTKEY, SHIFT, CONTROL, NOINVERT
    VK_INSERT,      ID_EDIT_SWITCH_OVRMODE, VIRTKEY, NOINVERT
    VK_INSERT,      ID_EDIT_COPY,          VIRTKEY, CONTROL, NOINVERT
    VK_INSERT,      ID_EDIT_PASTE,          VIRTKEY, SHIFT, NOINVERT
    VK_LEFT,        ID_EDIT_CHAR_LEFT,      VIRTKEY, NOINVERT
    VK_LEFT,        ID_EDIT_WORD_LEFT,      VIRTKEY, CONTROL, NOINVERT
    VK_LEFT,        ID_EDIT_NAVIGATE_BACK,  VIRTKEY, ALT, NOINVERT
    VK_LEFT,        ID_EDIT_EXT_CHAR_LEFT,  VIRTKEY, SHIFT, NOINVERT
    VK_LEFT,        ID_EDIT_EXT_WORD_LEFT,  VIRTKEY, SHIFT, CONTROL, NOINVERT
    VK_NEXT,        ID_EDIT_PAGE_DOWN,      VIRTKEY, NOINVERT
    VK_NEXT,        ID_EDIT_EXT_PAGE_DOWN,  VIRTKEY, SHIFT, NOINVERT
    VK_PAUSE,      ID_COMPILER_STOP,      VIRTKEY, CONTROL, NOINVERT
    VK_PRIOR,      ID_EDIT_PAGE_UP,        VIRTKEY, NOINVERT
    VK_PRIOR,      ID_EDIT_EXT_PAGE_UP,    VIRTKEY, SHIFT, NOINVERT
    VK_RIGHT,      ID_EDIT_CHAR_RIGHT,    VIRTKEY, NOINVERT
    VK_RIGHT,      ID_EDIT_WORD_RIGHT,    VIRTKEY, CONTROL, NOINVERT
    VK_RIGHT,      ID_EDIT_NAVIGATE_FORWARD, VIRTKEY, ALT, NOINVERT
    VK_RIGHT,      ID_EDIT_EXT_CHAR_RIGHT, VIRTKEY, SHIFT, NOINVERT
    VK_RIGHT,      ID_EDIT_EXT_WORD_RIGHT, VIRTKEY, SHIFT, CONTROL, NOINVERT
    VK_SPACE,      ID_EDIT_COMPLETE_WORD,  VIRTKEY, CONTROL, NOINVERT
    VK_UP,          ID_EDIT_LINE_UP,        VIRTKEY, NOINVERT
    VK_UP,          ID_EDIT_SCROLL_UP,      VIRTKEY, CONTROL, NOINVERT
    VK_UP,          ID_EDIT_EXT_LINE_UP,    VIRTKEY, SHIFT, NOINVERT
    "X",            ID_EDIT_CUT,            VIRTKEY, CONTROL, NOINVERT
    "Y",            ID_EDIT_REDO,          VIRTKEY, CONTROL, NOINVERT
    "Z",            ID_EDIT_UNDO,          VIRTKEY, CONTROL, NOINVERT
END
#11
Try to run the code in parallel, when you have 10000 units. Search for "hawkthreads". It's built into GLBasic, and there's a wrapper for the API.
#12
Yes, there's only the option to change the font size. But there might be alternative fonts to use, that suit your eyes better? We're getting old, eh? :) I need new glasses every two years, myself.
#13
This is so awesome. When you want to "flood fill" a polygonal area, search the forum for "Delaunay". It's a triangulation method for polygons. Maybe that helps? For convex polygons, "ear clipping" is the algorithm you want. GPT is likely to provide code for you.
#14
inline C++ is fully supported in HTML5. If you have the source for libraries, they might work, propably, too.
#15
Can't reproduce it. :|