Skip to content
Giorgos Michaelides edited this page Jan 18, 2021 · 28 revisions

Gem Gui

Gem Gui

A library to render GUI controls in Monogame applications.

The GemGui Class

To configure a GUI, you must first declare an instance of GemGui

         GemGui(Game game,
                int targetResolutionWidth,
                int targetResolutionHeight,
                AggregationTarget aggregationTarget = AggregationTarget.All,
                TargetPlatform controlTarget = TargetPlatform.Windows,
                IConfigurationResolver configuration = null)

You can use that instance of GemGui to initialize controls, configure GuiHosts, manage screens, and even customize how your GUI will scale when resolution changes.

The default scale calculator is

     gui.Settings.ScaleCalculator = resolution => 
                                    resolution / TargetResolution;

where TargetResolution is the resolution specified upon GemGui's initialization.

Controls

All controls inherit from AControl. That makes it easy to add custom behavior to a control.

There are several controls defined. They can be instantiated using the Control Factory.

The Fluent Builder is an easy and readable way to setup your controls

Gui Hosts

Controls can be grouped into GuiHosts and then organize them using the GemGui's internal screen management system.

Get Started

A get started Gist that previews some basic features.

Clone this wiki locally