add fullscreen, enable input on focus, disable aplha
This commit is contained in:
parent
d54080c64e
commit
f37c01f08d
3 changed files with 84 additions and 4 deletions
|
@ -34,6 +34,8 @@ namespace Ryujinx.Ui
|
|||
|
||||
private bool _titleEvent;
|
||||
|
||||
private bool _toggleFullscreen;
|
||||
|
||||
private string _newTitle;
|
||||
|
||||
private readonly long _ticksPerFrame;
|
||||
|
@ -67,7 +69,11 @@ namespace Ryujinx.Ui
|
|||
|
||||
_primaryController = new Input.NpadController(ConfigurationState.Instance.Hid.JoystickControls);
|
||||
|
||||
AddEvents((int)(Gdk.EventMask.ButtonPressMask | Gdk.EventMask.ButtonReleaseMask | Gdk.EventMask.PointerMotionMask));
|
||||
AddEvents((int)(Gdk.EventMask.ButtonPressMask |
|
||||
Gdk.EventMask.ButtonReleaseMask |
|
||||
Gdk.EventMask.PointerMotionMask |
|
||||
Gdk.EventMask.KeyPressMask |
|
||||
Gdk.EventMask.KeyReleaseMask));
|
||||
}
|
||||
|
||||
private void Parent_FocusOutEvent(object o, Gtk.FocusOutEventArgs args)
|
||||
|
@ -87,6 +93,45 @@ namespace Ryujinx.Ui
|
|||
this.Dispose();
|
||||
}
|
||||
|
||||
public void HandleScreenState(KeyboardState keyboard)
|
||||
{
|
||||
bool toggleFullscreen = keyboard.IsKeyDown(OpenTK.Input.Key.F11) ||
|
||||
((keyboard.IsKeyDown(OpenTK.Input.Key.AltLeft) || keyboard.IsKeyDown(OpenTK.Input.Key.AltRight))
|
||||
&& keyboard.IsKeyDown(OpenTK.Input.Key.Enter));
|
||||
|
||||
if (toggleFullscreen == _toggleFullscreen)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_toggleFullscreen = toggleFullscreen;
|
||||
|
||||
if (IsFocussed)
|
||||
{
|
||||
if (this.ParentWindow.State.HasFlag(Gdk.WindowState.Fullscreen) )
|
||||
{
|
||||
if (keyboard.IsKeyDown(OpenTK.Input.Key.Escape) || _toggleFullscreen)
|
||||
{
|
||||
this.ParentWindow.Unfullscreen();
|
||||
(this.Toplevel as MainWindow)?.ToggleExtraWidgets(true);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (keyboard.IsKeyDown(OpenTK.Input.Key.Escape))
|
||||
{
|
||||
Exit();
|
||||
}
|
||||
|
||||
if (_toggleFullscreen)
|
||||
{
|
||||
this.ParentWindow.Fullscreen();
|
||||
(this.Toplevel as MainWindow)?.ToggleExtraWidgets(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void GLRenderer_Initialized(object sender, EventArgs e)
|
||||
{
|
||||
// Release the GL exclusivity that OpenTK gave us.
|
||||
|
@ -211,9 +256,17 @@ namespace Ryujinx.Ui
|
|||
return;
|
||||
}
|
||||
|
||||
<<<<<<< HEAD
|
||||
using (ScopedGLContext scopedGLContext = new ScopedGLContext(WindowInfo, GraphicsContext))
|
||||
{
|
||||
GL.ClearColor(Color4.Black);
|
||||
=======
|
||||
GraphicsContext.MakeCurrent(WindowInfo);
|
||||
|
||||
GL.Disable(EnableCap.AlphaTest);
|
||||
|
||||
SwapBuffers();
|
||||
>>>>>>> add fullscreen, enable input on focus, disable aplha
|
||||
|
||||
_ticks += _chrono.ElapsedTicks;
|
||||
|
||||
|
@ -272,7 +325,10 @@ namespace Ryujinx.Ui
|
|||
this.ParentWindow.Title = _newTitle;
|
||||
});
|
||||
}
|
||||
UpdateFrame();
|
||||
if (IsFocussed)
|
||||
{
|
||||
UpdateFrame();
|
||||
}
|
||||
|
||||
// Polling becomes expensive if it's not slept
|
||||
Thread.Sleep(1);
|
||||
|
@ -299,6 +355,11 @@ namespace Ryujinx.Ui
|
|||
|
||||
KeyboardState keyboard = OpenTK.Input.Keyboard.GetState();
|
||||
|
||||
Gtk.Application.Invoke(delegate
|
||||
{
|
||||
HandleScreenState(keyboard);
|
||||
});
|
||||
|
||||
int leftJoystickDx = 0;
|
||||
int leftJoystickDy = 0;
|
||||
int rightJoystickDx = 0;
|
||||
|
|
|
@ -49,6 +49,8 @@ namespace Ryujinx.Ui
|
|||
#pragma warning disable IDE0044
|
||||
|
||||
[GUI] Window _mainWin;
|
||||
[GUI] MenuBar _menuBar;
|
||||
[GUI] Box _footerBox;
|
||||
[GUI] CheckMenuItem _fullScreen;
|
||||
[GUI] MenuItem _stopEmulation;
|
||||
[GUI] CheckMenuItem _favToggle;
|
||||
|
@ -444,6 +446,23 @@ namespace Ryujinx.Ui
|
|||
_screenExitStatus.Set();
|
||||
}
|
||||
|
||||
public void ToggleExtraWidgets(bool show)
|
||||
{
|
||||
Gtk.Application.Invoke(delegate
|
||||
{
|
||||
if (show)
|
||||
{
|
||||
_menuBar.ShowAll();
|
||||
_footerBox.ShowAll();
|
||||
}
|
||||
else
|
||||
{
|
||||
_menuBar.Hide();
|
||||
_footerBox.Hide();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private static void UpdateGameMetadata(string titleId)
|
||||
{
|
||||
if (_gameLoaded)
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
<property name="can_focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkMenuBar" id="MenuBar">
|
||||
<object class="GtkMenuBar" id="_menuBar">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
|
@ -402,7 +402,7 @@
|
|||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox" id="FooterBox">
|
||||
<object class="GtkBox" id="_footerBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue