Skip to content

79483536

Marcel Härtel edited this page Aug 27, 2023 · 2 revisions

GameControl Class

This class mainly creates the [!:GraphicsDeviceControl.GraphicsDevice], the SwapChainRenderTarget and the game loop. It inherits from GraphicsDeviceControl, which makes its childs available as a tool box control.

Definition

Namespace: MonoGame.Forms.NET.Controls
Assembly: MonoGame.Forms.NET (in MonoGame.Forms.NET.dll) Version: 3.2.0

C#

public abstract class GameControl : GraphicsDeviceControl
Inheritance ObjectMarshalByRefObjectComponentControlGraphicsDeviceControl → GameControl
Derived MonoGame.Forms.NET.Controls.MonoGameControl

Constructors

GameControl Initializes a new instance of the GameControl class

Properties

AlwaysEnableKeyboardInput If enabled the Keyboard input will work even if the current control has no focus (mouse cursor is outside of the control).
(Inherited from GraphicsDeviceControl)
BackColor Set the background color of this Control in the designer.
(Inherited from GraphicsDeviceControl)
Components Get the GameComponentCollection.
(Inherited from GraphicsDeviceControl)
ForeColor Set the foreground color of this Control in the designer.
(Inherited from GraphicsDeviceControl)
GraphicsProfile Set the GraphicsProfile in the property grid during Design-Time (HiDef or Reach). You shouldn't change this during runtime!
(Inherited from GraphicsDeviceControl)
IsMouseInsideControl Returns true when the mouse cursor is inside the control.
(Inherited from GraphicsDeviceControl)
MouseHoverUpdatesOnly Set this to 'true' to only update this control when the mouse cursor is inside (OnMouseHover).

Remarks

This technique is useful when you only need to update this control temporarily or always on demand. Setting this property to 'true' will cause that this control will only consume CPU power to update its contents, when the mouse cursor is inside it or when you call 'RunOneFrame();' manually.

Services Get the GameServiceContainer.
(Inherited from GraphicsDeviceControl)
SwapChainRenderTarget A swap chain used for rendering to a secondary GameWindow. Note: When working with different RenderTarget2D, you need to set the current render target back to the SwapChainRenderTarget as this is the real 'Back Buffer'. 'GraphicsDevice.SetRenderTarget(null)' will NOT work as you are doing usally in MonoGame. Instead use 'GraphicsDevice.SetRenderTarget(SwapChainRenderTarget)'. Otherwise you will see only a black control window.
(Inherited from GraphicsDeviceControl)

Methods

Dispose
(Inherited from GraphicsDeviceControl)
IsMouseInsideControlArea Returns true when the mouse cursor is inside the specific area.
(Inherited from GraphicsDeviceControl)
OnClientSizeChanged
(Inherited from GraphicsDeviceControl)
OnCreateControl
(Inherited from GraphicsDeviceControl)
OnMouseEnter
(Inherited from GraphicsDeviceControl)
OnMouseLeave
(Inherited from GraphicsDeviceControl)
OnMouseWheel
(Inherited from GraphicsDeviceControl)
OnPaint
(Inherited from GraphicsDeviceControl)
OnPaintBackground
(Inherited from GraphicsDeviceControl)
PaintUsingSystemDrawing
(Inherited from GraphicsDeviceControl)
RunFrames Run a specific amount of frames before the game loop falls to sleep again. The bool MouseHoverUpdatesOnly must be set to 'true' before.

Remarks

This could be helpful if some update mechanics are needing longer to update but doesn't need to run continuously afterwards.

RunOneFrame Runs exactly one frame by internally calling 'Invalidate();' one single time. This will run the game loop only once and immediately shows the result.
SetMultiSampleCount Set the "MultiSampleCount" for Multi Sampled AntiAlising (MSAA). The input value will be automatically clamped to the nearest power of two in relation of what the users GraphicsDevice can handle.
(Inherited from GraphicsDeviceControl)

Events

ComponentState Subscribe to get Update and Draw event info for all GameComponents (IUpdatable, IDrawable).
(Inherited from GraphicsDeviceControl)
MultiSampleCountRefreshed Subscribe to this event to react to MultiSampleCount changes in your custom controls.
(Inherited from GraphicsDeviceControl)
OnMouseWheelDownwards Scroll the mouse wheel downwards to trigger this event.
(Inherited from GraphicsDeviceControl)
OnMouseWheelUpwards Scroll the mouse wheel upwards to trigger this event.
(Inherited from GraphicsDeviceControl)

See Also

Reference

MonoGame.Forms.NET.Controls Namespace

Clone this wiki locally