MonoGame.Forms - Create your Editor Environment!

@SpiceyWolf Can you give me the MonoGame.Framework.Gtk id? Proper Gtk widget support incoming…

1 Like

Basically I need to agree with @craftworkgames that we are about to lose the overview in this thread.

Think of people discovering this topic which contains “MonoGame.Forms” in the headline and experiencing a stream of Gtk issues and they don’t really know what’s happening or why this topic is listed in the “Showcase” category.

So, when having a bigger feature idea and needing to discuss it more deeply (issues etc), then here is a much more elegant solution for the future:

  1. Small discussion about the new feature here in this thread.
  2. Creating a new topic about the new feature in the MonoGame forum (Community Area)
  3. In the first post of the newly created topic place a link to this thread, which connects the two topics internally and makes them visible in each topic (scroll to the top of this thread to see an example of already connected topics [on the right hand side of the first post]).
  4. When you are done with the new feature from the new topic, share the result by creating a reply in this thread with a link to the corresponding post showing the milestone (also GitHub links are very welcome).

This should make everthing clearer for us and new or returning visitors.

Don’t get me wrong: I’m very happy about your effort in making the library better and it makes me proud that we are gathered here to create something awesome!

Further more it’s still allowed to have small discussions or requests here as long as they are have something to do with MonoGame.Forms (respectivly parts of the MonoGame.Framwork itself).

(I wish I could somehow pin this rules here)


I will also take a look at the Gtk implementations but in the moment my time is very limited. So don’t expect it to soon.

Until then: Thank you all for your effort!


Just placing a link to the GitHub repo here for new users to make it easier for them to find the library:

Keep up the good work and have a nice weekend!

1 Like

Also just delete ur past posts relating to the issues -> They are non issues now and irrelevant to the thread :open_mouth: in 12 hours the thread could be cleared up of our mess :smiley: well myne is already gone anyhow >.>

Edit: Oops thought that i hit that reply to Jens – @Jens_Eckervogt do what i said above lol

Edit: Since ur probably seeing this Sqr… I has myself a theory on how to possibly correct the solution with the bitmap to something a little less gross >.> Ill get back with you probably tomorrow on if it works out…

Because you can’t grab nuget ids unless you upload something.

Just FYI, I have Gtk version working locally, don’t think I’ve mentioned it above:

Its directly rendering to Gtk GLArea, plus custom implementations for Input/Window and some other stuff.

3 Likes

PR 2 of 3 is up: https://github.com/MonoGame/MonoGame/pull/6378

Wow your great implementer how did you get successful with GLArea i already tried before but it doesn’t see sprites? How did you implement?

Full source code is available at the link above.

Hello @harry-cpp where is full source . I don’t see where is link. You mean Post: 118

But It looks only github’s issue.

// EDIT You are right.

How do I add renderWindow? Why do you call RenderWindow? What does it mean? I thought you add Gtk Button like I saw your picture. How did you? I want know. Why do you say my net framework horrible? But It is as “Area” not “Window”.

MonoGame.Forms 2.1.0 - Audio Support

  • 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].

I remembering that someone here wanted to create a GameBoy Emulator with MonoGame.Forms. This audio update should be very useful :wink:

You could also create a MediaPlayer now or load and preview audio fles in your editor.

Happy Coding! :smiley:

And where is other method by @harry-cpp ?

I wait longer 2 months …

I will take a closer look when the PR got merged.

Further I need to implement it differently, because MonoGame.Forms does not make use of the game class.

I’m also busy with a different project, which I will reveal soon.

Thanks for understanding.

I’m having an issue where whenever I move my mouse over a DrawWindow in my project, the scroll bar for the form containing it automatically resets. I was able to find that somebody on stackoverflow had the same issue but the thread was deleted. Is this a common issue with an easy solution?

Do you placed the DrawWindow control on a Panel with scroll bars enabled?

Because normally you wouldn’t have scroll bars on a MonoGame.Forms control.

Yeah, the DrawWindow is inside a smaller panel, which is what’s being scrolled around.

I’ve not tested this with MonoGame.Forms but i’m pretty sure it’s a bug in WindowsForms.

I once had a simular issue with a different library and scrollable panels.

You can fix this issue by creating your own Panel class like this:

public class PanelNoScrollOnFocus : Panel
{
    protected override System.Drawing.Point ScrollToControl(Control activeControl)
    {
        return DisplayRectangle.Location;
    }
}

And place the MonoGame.Forms control onto this new Panel.

I hope this also fixes your issue.

Yup, that works. Thank you!

1 Like

Created an issue for it together with the solution to inform other users:

Test: MonoGame.Framework + Libretro + MonoGame.Forms


In my last post I talked about the guy who wanted to create a GameBoy Emulator with MonoGame.Forms and - coincidentally (hacked my SNES MINI and installed RetroArch on it) - I just played around a little - literally:

There are no P/Invokes for embding a window of a different emulator application or such tricks; an original Super Mario World.sfc rom was natively loaded using the snes9x_libretro.dll core.

Using the LibretroAPI it was possible to get the Framebuffer and process this data to a Texture2D which I then draw using the SpriteBatch of MonoGame.

I also converted the GamePadState to be used with Libretro, so that I can use my Xbox360 gamepad to control the SNES rom.

With Libretro it’s also possible to load different cores such as for a GameBoy, Playstation and so on, so that it would become possible to create an application like RetroArch.

RetroArch is - by the way - the official frontend of Libretro. With that in mind MonoGame would be the frontend of Libretro using a c# wrapper of Libretro. You can find one here (the one which inspired me).

I just thought to share this with you because it’s interesting and fun, isn’t it? :wink:

3 Likes

I tried the demo latest version from github. but why it’s flickering? (Solved with latest version)