MoonWorks-docs/content/Window/_index.md

1.8 KiB

title date weight
Window 2021-01-24T20:43:17-08:00 1

Window management in MoonWorks is implemented using the SDL2 library. All window management is handled through the Window class. A reference to this class named MainWindow is automatically created on startup and can be retrieved from your Game subclass.

Your game is assumed to have a window and you must pass a WindowCreateInfo struct when creating your Game.

  • WindowTitle is the name of the window that will be displayed in the operating system.
  • WindowWidth is how wide the window will be.
  • WindowHeight is how tall the window will be.
  • ScreenMode determines whether the window will be created in windowed mode, fullscreen, or borderless fullscreen.
  • SystemResizable specifies if the user will be able to resize the window by clicking and dragging the corners.
  • StartMaximized specifies if the window will open at the maximum desktop resolution.

You can change the screen mode at runtime with the SetScreenMode method:

Window.SetScreenMode(ScreenMode.Fullscreen);

You can change the window size at runtime with the SetWindowSize method.

Window.SetWindowSize(1280, 720);

Note that if you change the screen resolution, it is your responsibility to manage any graphics state that may need to change as a result of this change.

You may specify a method to be called when the window size changes by calling RegisterSizeChangeCallback.

Window.RegisterSizeChangeCallback(MySizeChangeCallback);

MoonWorks does support your application having multiple windows. To create a new Window, you can call the Window class's constructor. To make it renderable you will need to call ClaimWindow from the GraphicsDevice, which we will get to later.