• Dear Cerberus X User!

    As we prepare to transition the forum ownership from Mike to Phil (TripleHead GmbH), we need your explicit consent to transfer your user data in accordance with our amended Terms and Rules in order to be compliant with data protection laws.

    Important: If you accept the amended Terms and Rules, you agree to the transfer of your user data to the future forum owner!

    Please read the new Terms and Rules below, check the box to agree, and click "Accept" to continue enjoying your Cerberus X Forum experience. The deadline for consent is April 5, 2024.

    Do not accept the amended Terms and Rules if you do not wish your personal data to be transferred to the future forum owner!

    Accepting ensures:

    - Continued access to your account with a short break for the actual transfer.

    - Retention of your data under the same terms.

    Without consent:

    - You don't have further access to your forum user account.

    - Your account and personal data will be deleted after April 5, 2024.

    - Public posts remain, but usernames indicating real identity will be anonymized. If you disagree with a fictitious name you have the option to contact us so we can find a name that is acceptable to you.

    We hope to keep you in our community and see you on the forum soon!

    All the best

    Your Cerberus X Team

Fullscreen that can be restored using the mouse?

Wingnut

Well-known member
3rd Party Module Dev
Tutorial Author
Joined
Jan 2, 2020
Messages
1,414
If you make fullscreen using your mouse, the hidden popup titlebar is preserved and it is all and well.
But when you give a fullscreen command the resize flag gets ignored so there's no way to go back (except a programmatical one).
Is there a way to give a fullscreen command and avoid that the titlebar avoids forever?

From the GLWF documentation :
"GLFW_RESIZABLE specifies whether the windowed mode window will be resizable by the user. The window will still be resizable using the glfwSetWindowSize function. Possible values are GLFW_TRUE and GLFW_FALSE. This hint is ignored for full screen and undecorated windows."

An example to demonstrated the behaviour (tested on macOS only so far but it should be consistent over all desktop platforms i believe)
Cerberus:
#GLFW_WINDOW_WIDTH = 128
#GLFW_WINDOW_HEIGHT = 128
#GLFW_WINDOW_RENDER_WHILE_RESIZING = True ' AVOID ugly window resize animaTION IN MACOS when YOU DO RESIZE USING THE MOUSE
#GLFW_WINDOW_RESIZABLE = True

Strict
Import mojo2

Function Main:Int()
    New myApp()
    Return 0
End

Class myApp Extends App

    Field myCanvas:Canvas
    Field fullscreen:Bool = True
    
    Method OnCreate:Int()
        myCanvas = New Canvas()           
        SetSwapInterval 1
        SetUpdateRate  0
        Return 0
    End
    
    Method OnUpdate:Int()
        If KeyHit(KEY_ESCAPE) Then OnClose() ' esc is Panic exit
     If KeyHit( KEY_A )  Then fullscreen = False ; ToggleFullscreen ' A for programmatic fullscreen (try resize using the mouse first)
        Return 0
   End
    
    Method OnRender:Int()
        myCanvas.Clear 0,1,0
        myCanvas.Flush
        Return 0
    End

    Method ToggleFullscreen:Void()
        Local desktop:DisplayMode = DesktopMode()
        Local awidth : Int = desktop.Width
        Local aheight : Int = desktop.Height
        fullscreen = Not fullscreen
        If Not fullscreen
            SetDeviceWindow 800,600, 4+2
            myCanvas.SetViewport 0,0,800,600
            myCanvas.SetScissor 0,0,800,600
            myCanvas.Clear 0,1,0           
        Else   
            SetDeviceWindow awidth,aheight, 1    + 2 + 4
            myCanvas.SetViewport 0,0,awidth,aheight
             myCanvas.SetScissor 0,0,awidth,aheight   
              myCanvas.Clear 0,1,0
        Endif
    End
    
End
 
Not solved, but the problem is understood now.

MacOS introduced a native fullscreen mode in later versions and GLFW3 does not handle it as e.g. SDL2 do.
 
Back
Top Bottom