Check out my shared drive for how to do the window thing ;-)
ah yup, its pretty much identical to how i had it, apart from i was using a seperate window timer and binding the event to it rather than using a thread.
ive tried your code, and for some reason it refuses to compile... i'll debug when i have time in attempt to get it functioning.
it keeps showing -> ERROR] StartDrawing(): The specified output is NULL (0 value) which refers to -> StartDrawing(SpriteOutput(#creds))
not sure if there is anything else to do in regards to threads. -shrugs-
[EDIT... 20241205]...
ok, so after some debugging with the window, timers and threads (so the screen refresh does not pause), i have found out the root cause of my LMB pause issue, and it was to do with the rendering system used.
by default PB now uses OpenGL at compile, where I was getting the LMB ~2 second timer/screen pause... but when using a thread, it would error on compile, timers would work but the screen wouldn't update (tested timers in thread and also main loop).
i changed the compile rendering subsystem to DirectX9 (either 9 or 11 can be used on my system), and huzzah, it fixed all the timer and thread issues, and everything just 'worked'. so its an OpenGL vs DirectX9 issue (glad that i finally found out the root cause of the LMB pause for ~2 seconds).
so now with the two timers, main repeat loop (for the lmb screen drag), and the thread (to repeat all the intro drawing on the backbuffer and flipping)... since they are now seperate, upon LMB on the intro window, the main repeat loop timer pauses (i see this in debug), but the threaded repeat loop continues to timer (in its own thread). inside the main repeat loop, the delay can be "Delay(1000/60)" 1000ms / 60fps... aka ~16.6ms delay (rather than 1ms), which seems to match the threaded loop timer, since everything is forced to 60fps, therefore both timers sync up properly.
i have also tested my wincallback and new timer + bind method to which the LMB click/drag still causes the window to pause for a split second... so the only option for zero pause is the DirectX9 + Thread.
whatever the case, im glad i debugged and figured it out. thanks for the thread code to mess around with.