Dark Bit Factory & Gravity
GENERAL => Projects => Topic started by: KrazyK on December 04, 2024
-
Trawling through my ST demos I came across this nice little screen by Newline from the Ecstasy Demo by Alliance from 1990.
A lot to work out as the central NL logo is a mask with the bendy scroller going between it and the small NL logos and the moving back tiles. Must get it correct!
Also the bottom scroller goes through the middle of the barrel credits scroller. Something I didn't notice until I had a proper look at it again several times.
Quite a bit going on and was nice to get the credits barrel scroller working eventually. I may have to use that effect in my future intro selectors somhow.....
-
hmm, this is an interesting one.
not sure how you init your windowed screen, but the last couple of intros have the same issue. the first menu pops up fine, press F2 for window mode, then the intro screen doesnt work (or partially works)... but then i close the intro and re-execute it, then the menu screen is bugged, i press F2 again for window mode, and the intro is fully working. -shrugs-
theres a conflict somewhere... where exactly, idk.
on execute, the mouse cursor seems to 'grab' the menu window too, so i am forever moving the mouse cursor to top-left of my monitor to center the menu window, then lmb to let go of it.
see screenshots.
-
It must be putting the main loop in a thread to have the window moveable I think. Not really done that before.
It did it once for me when testing then OK. Weird I know.
The window init is just the dpiaware code resized to 800x600 or using #PB_WINDOW_MAXIMIZE for fullscreen.
Do you think it might need a slight delay before calling the thread or using SetWindowCallback() instead?
I'm open to all suggestions to get this moveable window working 100% as it's a nice option to have.
Thanks for the feedback, appreciate it. ;)
-
It must be putting the main loop in a thread to have the window moveable I think. Not really done that before.
nah, the window lmb click/move is to do with the main repeat loop (and/or within a callback) which is the default window timer. the sendmessage calls should be within this, not the threaded repeat loop which is used with the separate timer (so the screen doesnt freeze).
The window init is just the dpiaware code resized to 800x600 or using #PB_WINDOW_MAXIMIZE for fullscreen.
ah k. that shouldnt be any issue then. i'll show/give you my code for a windowed screen switch between a window and a fullscreen window (via spacebar keypress)... its much nicer (imo) as then it doesnt mess with your desktop resolution like a fullscreen window does (openscreen). the only thing is that instead of rendering to screenoutput, render to sprites (use them as a canvas) so that scaling works properly (unless you want to do all the math scaling calculations in code yourself).
Do you think it might need a slight delay before calling the thread or using SetWindowCallback() instead?
nah, theres no need for a delay of any sort after the thread creation. whether using a window callback or having the same code within the main repeat loop shouldnt really change things tbh. in saying that, when compiling using DirectX9... using the window callback option seems to work better/smoother than having the same code within the main repeat loop (in my general testing/debugging).
I'm open to all suggestions to get this moveable window working 100% as it's a nice option to have.
with my testing using OpenGL, DirectX9 and DirectX11... it seems that OpenGL is the most stable rendering environment to use (i guess thats why PB changed to it as default?). DirectX9 is rather buggy, windows would bug out... then work properly, freeze, unfreeze, crash... and this was whilst doing testing/debugging on ~30 different window attempts. as for DirextX11, it half-works (some sprites dont render, nfi why atm... more debugging to be done), but the rendering window is much more reliable, similar/same as OpenGL.
Thanks for the feedback, appreciate it. ;)
np... this helps me also in squashing issues, as i intend on creating more prods, so if i can get a 'default' template/environment for prods and build off of it, it'll be much better imo. less bugs, more production.
the only thing that's been bothering me lately has been the main timer pausing when you lmb click/drag... so much so, that the latest prod i have done/released (an intro for a scene group), i left out the sub-timer/thread code (the window freezes upon lmb/drag) so i didnt have any crashes or compatibility issues between systems. compiled using OpenGL too, not DirectX9, as its more reliable.