Skip to content

Releases: BlizzCrafter/MonoGame.Forms

MonoGame.Forms 3.2.0

27 Aug 14:21
Compare
Choose a tag to compare

Added

Example

Globally apply an antialising render target:

protected override void Initialize()
{
    ControlState += ApplyAntialising;
}

private void ApplyAntialising(object? sender, ControlStateEventArgs e)
{
    if (e.ControlsState == NET.ControlState.StartDraw)
    {
        Editor.BeginAntialising();
    }
    else if (e.ControlsState == NET.ControlState.EndDraw)
    {
        Editor.EndAntialising();
    }
}

This is espacially useful when working with Components. Before this update it was only possible to have either a MonoGame.Forms.Control or one GameComponent at the same time on the antialising render target or rather on render targets in general.

Of course you can use this new event system for many more things!

Have fun :))

PS: This update is only available on the Net6.0 version of the library.

MonoGame.Forms 3.1.0

21 Aug 11:33
1e208d8
Compare
Choose a tag to compare

Added:

  • Implemented "GameComponentCollection" from original MonoGame "Game" class to enable adding "GameComponent"'s (IGameComponent, IDrawable, IUpdatable) to a MonoGame.Forms.Control.
    • Camera2D and FPSCounter are real GameComponent's now, so it's possible for the user to create their own corresponding components (for now there is only a ICamera2D interface).
  • Added methods for adding and removing default editor components like Camera2D and FPSCounter or remove all components at once.
  • Generated new documents file, which updates the Github-Wiki to a class library which points to the new 3.1.0 release dll.
  • Added comments on abstract usage for custom MonoGame.Forms.Controls.
  • Added new Templates via dotnet and nuget for MonoGame.Forms projects and items.
  • Added Blazor sample branch.

Changed:

  • Upgrade to .NET 6.0.
  • Renamed to MonoGame.Forms.NET.
  • Set "ClientSize" to 1 to easily initialize a MonoGameControl by code, so that it is not neccessary anymore to embed such a control directly using the designer.
  • Removed custom "IServiceContainer" and unified the service system by using the MonoGame built-in "GameServiceContainer" - getable with "Services" inside a MonoGame.Forms.Control.
  • Renamed GFXService to EditorService, so that it is more obvious to the user what this service is meant to be.
  • Easier and more obvious to use the EditorService class by distinguishing between internal and protected methods (Initialize, Update, Draw), which hides elements the user shouldn't use or call.
  • Modernized the Readme.md file with better visuals, instructions and info.
  • NET 6.0 lib, Net-Framework lib and Blazor samples are now on seperated branches.

Fixed:

  • Correctly checking for "DesignMode" to avoid exeptions when working with MonoGame.Forms.Controls during design time.

Removed:

  • Removed content folder and info.
  • Removed unnessecary draw call in a GameControl.
  • Removed old Visual Studio vsix style templates (added dotnet and nuget style ones).

Thanks to all your ongoing support! 🤜🤛

Without your input & suggestions the MonoGame.Forms library wouldn't be as feature-rich and good as it is today.

Take care and have a nice time!! 💖

MonoGame.Forms 3.0.0

22 Apr 16:48
ab6c986
Compare
Choose a tag to compare

Removed:

  • Dropped the GL project, because there are already much faster available alternatives like this Gtk one.
  • All nugets besides the MonoGame.Forms.DX one got deprecated - still available on the market, but not reccomended anymore.
  • Removed the Content.Builder project, because it is not needed anymore - With MonoGame.Forms 3 it is and stays an all-in-one-solution, which also automatically contains content compilation the classical way via a .mgcb file and PipelineTool-Support. Simply remove it if you don't need it!
  • Removed the customly compiled MonoGame.Framework library from the MonoGame.Forms project.

Changed:

  • Changed License from MIT to MS-PL to avoid mixed licenses in the project.
  • Setting the MonoGameContentReference property correctly, so that the compiled content gets copied to the output directory.
  • Better build configurations with updated nuget generation.

Added:

  • [#22] Added a new template project to the Visual Studio Marketplace which contains templates for Visual Studio 2017, 2019 & 2022!. I removed the old one (with 6700 downloads) from the market, because it was not possible to update it. Thanks for all your support!
    -- This template also contains item templates for the MonoGameControl and InvalidationControl now! This should boost your editor workflow by alot.
  • [#39] Added MonoGame.Framework.WindowsDX.9000 to the project which is faster, memory optimized, bugfixed and supports full mouse & keyboard input within WindowsForms. You can also update MonoGame.Forms to a new MonoGame version very easily from now on - just by updating the MonoGame.Framework.WindowsDX.9000 nuget package! It's not neccessary anymore to do your own from-source-compilation-and-modification-experiments - just update and be happy :)

MonoGame.Forms 2.4.0

04 Aug 18:49
Compare
Choose a tag to compare
  • Added DX targets file to the DX nuspec.
  • Now importing the MonoGame.Content.Builder.targets and MonoGame.Common.props file and setting the MonoGamePlatform property in all MonoGame.Forms.target files (DX, GL).
  • Added MonoGame.Content.Builder content/libs/nuspecs/targets for DX and GL platform.
  • Added MonoGamePlatform property and importing MonoGame specific targets.
  • Correctly using the NativeLibs directory when including files.
  • Added MonoGame.Framework source code for the Windows platform to allow users to recompile it with custom modifications.
  • Updated post build events.
  • Register keystrokes immediately after setting AlwaysEnableKeyboardInput to true.
  • Always setting the KeyboardInput when the meta value changes.
  • Added additional NullReferenceException checks regarding the Editor service class.
  • It's now possible to define custom clear options when using BeginAntialising, EndAntialising, BeginRenderTarget and EndRenderTarget (graphics.Clear(custom parameters)).
  • Changed the depth of the clear options to 1f as the default.
  • Added real disposing checks in all controls.

MonoGame.Forms 2.3.7

06 Jul 08:57
ed1ee33
Compare
Choose a tag to compare
  • Refactored Camera2D component.
  • Added public float DefaultZoom/DefaultRotation/DefaultPosition property, so that it's possible to reset these values to specific default values.
  • Added overloads to the ResetCam method, so that it is possible to reset specific camera values like Position, Zoom and Rotation.
  • It's now possible to quickly set the default values of the camera to the current ones with SetDefaultsFromCurrent().
  • Added Buy me a Cola-Light support button!
  • Added a GitHub Sponsor button.

MonoGame.Forms 2.3.5

14 Apr 09:51
Compare
Choose a tag to compare
  • Added void RunFrames(int) to run a specific amount of frames of a MonoGameControl, when the bool MouseHoverUpdatesOnly was set to true.
  • Open up the ResourceContentManager to enable content loading from a resource file .
  • Using void ResourceContentManagerInitialize(ResourceManager) to initialize the ResourceContentManager, which is available for the user to load custom content from a resource file (.resource).
  • Property bool IsMouseInsideControl is now directly accessible through the GraphicsDeviceControl, so there is no need of using the editor service class for this.
  • Added protected bool IsMouseInsideControlArea(int, int, int, int), so the user can check if the mouse cursor is inside a specific control area.
  • Reattaching the Mouse.WindowHandle when entering a different GraphicsDeviceControl in case it gets lost.

MonoGame.Forms 2.3.0 - Video Support & OnMouseHoverUpdatesOnly

19 Jan 23:26
d4e16a8
Compare
Choose a tag to compare
  • Added public GameTime to easily get the current game time of the game loop in a custom MonoGameControl.
  • Added public bool MouseHoverUpdatesOnly to enable controls updates when the mouse cursor is inside a custom MonoGameControl to save CPU power.
  • Added public void RunOneFrame() to run exactly one frame of a MonoGameControl to update its contents and immediately show the result to the user.
  • Updated the MonoGame.Framework to 3.8.0.270 and modified the VideoPlayer class to support video playback. [DX]

Video Example:

//Field
VideoPlayer _VideoPlayer;

//Loading
Video video = Editor.Content.Load<Video>("MyVideo");

//Instantiating
_VideoPlayer = new VideoPlayer(GraphicsDevice); //GraphicsDevice
_VideoPlayer.Play(video);

//Drawing
Editor.spriteBatch.Begin();
Editor.spriteBatch.Draw(_VideoPlayer.GetTexture(), new Vector2(0, 0), Color.White);
Editor.spriteBatch.End();

As you can see, you just need to give the new ctor of the VideoPlayer class the current GraphicsDevice.

MonoGame.Forms 2.2.0 - Renaming Classes and Bugfixes

04 Jan 19:38
Compare
Choose a tag to compare
  • Renamed DrawWindow to InvalidationControl.
  • Renamed DrawService to InvalidationService.
  • Renamed UpdateWindow to MonoGameControl.
  • Renamed UpdateService to MonoGameService.
  • Removed protected bool AutomaticInvalidation from GraphicsDeviceControl.
  • Fixed a bug which caused a crash when creating a new RenderTarget and the BackBufferWidth / -Height had a size of 0.
  • Ensures that a MonoGameControl invalidates automatically when using the GL library.

MonoGame.Forms 2.1.0 - Audio Support

22 Aug 09:40
54b6f63
Compare
Choose a tag to compare
  • Now updating the FrameworkDispatcher to enable Audio in MonoGame.Forms [DX; GL].
    • Create SoundEffects, SoundEffectInstances and Songs, and play them using the MonoGame.Framework.
  • RenderTargets created with the RenderTargetManager are now enabled on creation, so they are becoming available without the need of resizing a control first [DX].

MonoGame.Forms 2.0 - DirectX and OpenGL

16 Jul 12:52
fafc3ce
Compare
Choose a tag to compare

The next big major release:

  • 60 commits
  • 116 files changed

To sum this release up:

  • Created the SwapChainRenderTarget_GL to enable drawing of the BackBufferData in DesktopGL projects.
  • It's now possible to change the BackColor and the ForeColor of custom controls.
  • Using the MonoGame Logo as GraphicsDeviceControl Image.
  • The Documentation (Wiki) now differentiates between the MonoGame.Forms.DX.dll and the MonoGame.Forms.GL.dll.

Dev Notes:

  • Updated nuspec files for DX and GL projects.
  • Added .target file to the GL project to automatically include and copy neccessary libs and files.
  • Automatically building nuget packages on Release builds.
  • Created .batch file to push all NuGet packages with one double click.