BlitzmaxNG fullscreen virtual resolution issues macOS Catalina

Started by Ashmoor, July 05, 2020, 11:21:34

Previous topic - Next topic

Ashmoor

Yes, I do use a mac. I have a 2014 macbook pro running MacOS Catalina and yes, I did compile the game on the mac.

"A mac is NOT windows. they use completely different commands and have different ways of doing things."

Of course. I use different functions for the system tasks.

"- Is when a window covers the entire screen including the menu and taskbar." - Check

"- Putting the mouse at the top of the screen in this mode will show the menu and the title bar and allow you to switch mode back to window or OTHER screens - the mac can have multiple screens even on a mac with one monitor!"

I don't know what other screens is. My game has no menu bar, maybe one has to exist in order to display it when moving the mouse to the top of the screen? I have set hot corners in mission control so if I go to bottom right corner with the mouse and my game zooms out to a small rectangle in "spaces" bar at the top of the screen. This behavior is similar to Fishdom, a popular m3 game I got from the app store. If this works for them, should work for me as well. I don't have much experience as a mac user so I can't tell if other games behave in the same way and I'm not saying it's "proper" but it works.

Putting the mouse at the bottom of the screen shows the dock.

"- a mac app which has TRUE fullscreen ability (see above) has a green top left button. this can be pressed to go into fullscreen"
Hmm, this would be nice to have, I don't know how to set it. However, maximizing in this way would mess up the virtual resolution, I have to look further into that. I have not seen many games that allow window resize on the fly.

"- ctrl+cmd+f will switch from window to fullscreen. the window will usually animate when it does this."

This can be implemented but the window will not animate because of the "Graphics" call. I could do a smoother transition like having the window animate to window/full screen size then resetting "graphics" and virtual resolution.

"- cmd+tab will also function normally"

This does function normally.

"- the app will  'window' as a menu item with sometimes minimise, zoom, fullscreen added."

I don't understand what this is. When I minimize the game window, it zooms to dock.





iWasAdam

menu bar / app bar - come on you know what I mean!

I only asked about you having a mac, as you seem not to have observed how the apps work!

The key here is it need to LOOK and BEHAVE EXACTLY as a mac app

resolutions are your task to figure out what is going on. but for it to be a true app - it MUST work like every other 'proper' app


To clarify - use safari. click to green traffic light icon - watch the screen - use you mouse to go to the top of the screen - the app/menu bar will appear - you can now click the green button again...
click and hold the mouse/trackpad and a menu will pop up with fellscreen/left and right screen docking options - does yours?
ctrl+cmd+f will switch from window to fullscreen - DO IT....
Check the app menu for the 'window' item. click it you will find zoom and minimize. does your app have the windows entry with the fullscreen option?

does your app follow these basic app specs shown above? if the answer is no. then your app is NOT a true mac app. It doesn't matter if you have programmed the qwfhn keys to make it DO fullscreen - it's NOT.

It really couldn't be simpler :)


Ashmoor

@iWasAdam

"menu bar / app bar - come on you know what I mean!"

I'm sorry, I am really new to the MacOS. I have maybe 2 months of usage. I am guessing the app bar is the top bar, right?

"The key here is it need to LOOK and BEHAVE EXACTLY as a mac app"

Even if other games do not look or behave like regular apps? I will download more games and will see how they handle stuff. Can you recommend any? Are you a long time mac user? I appreciate your input.

"click and hold the mouse/trackpad and a menu will pop up with fellscreen/left and right screen docking options - does yours?"

I don't see how this would work for a game, it does not scale properly to dock it on a side. Do other games have this?

"Check the app menu for the 'window' item. click it you will find zoom and minimize. does your app have the windows entry with the fullscreen option?"

Ok, I see that. My app does not have the "window", will investigate further.

@GFK I'll look into that. Thanks.





iWasAdam

@Ashmoor
I do have a solution, but it is not straightforward and requires modifying and adding commands. It was something I did long before NG and I was very disappointed when you mentioned the issues initially as I would have thought that these issues would have been found and fixed.

Monkey2 does not have these issues as Mark wrote some very in-depth SDL code to handle it all correctly.

This led me down a code rabbit hole and also needed some in-depth objectiveC to make it fully work.
But...
It currently only works if the windows are initially set up in a very specific way. I have been reporting my finding back to Derron who is reporting back to Brucey about this.

I don't run many commercial games on the mac (i usually use a console for gaming). Xerras recent boulderdash clone does have this function perfectly:https://xerra.itch.io/Boulderdash
A few games I have looked at have variying amounts of ability
- Fidel Dungeon Rescue - looks fine and responds to ctrl+cmd+f but when you fullscreen it takes over everything apart from cmd+tab - there is no way to exit, etc - so it's very poorly programmed (for the mac)
- voice basterds is fullscreen only - with no option to turn it off
- kingdom and castles - has the menu and goes into fullscreen and back again but lacks the system ctrl+cmd+f to do it - it must be done by clicking the icons
- all my games are resolution and fullscreen compatible - give bloom a go https://adamstrange.itch.io/bloom
- quake does not have 'true' fullscreen mode enabled
- gzdoom had fullscreen - but it is not 'true' as it only allows it ingame and not via system commands

So from the above you can gather that there are many different approaches - but you should start and work from the 'true' fullscreen :)


Ashmoor

"It currently only works if the windows are initially set up in a very specific way. I have been reporting my finding back to Derron who is reporting back to Brucey about this."

Thanks, it would be nice if things get fixed and noobs like me can use them.


"Xerras recent boulderdash clone"

Yes, I tested that as well and messaged him but he uses Gamemaker studio 2.


"So from the above you can gather that there are many different approaches - but you should start and work from the 'true' fullscreen"

Yes, that's what I thought. The same is true for windows.

Ashmoor

I gave bloom a try and it does not work properly :( see attached screenshot. Sometimes it starts well in windowed mode but everytime I switch to full screen it gets wildly offset like you can see in the attached image. Looks like a retina display issue.


iWasAdam

nope - it's working completely normal - it has a defined aspect ration that is always the same regardless of what resolution the window is - so you might get black bars at the top if its a tall window and bars at the side if it is a wide window :)

Vivamortis uses a different approach: the window is a taxture that is always stretched to fit the window. it's the opposite of Bloom.

But both are true fullscreen apps as they have the correct icons/menus and keyboard operations :)


iWasAdam

I've been updating NG with Bruceys event and sdl changes and can confirm that true fullscreen on MacOS is available through sdl :)