embed renderer into main window

This commit is contained in:
emmaus 2020-02-02 21:27:31 +00:00 committed by emmauss
parent 2db774be33
commit e3d0fe4df1
4 changed files with 68 additions and 39 deletions

View file

@ -4,7 +4,9 @@ using System.Threading;
using Ryujinx.HLE;
using Ryujinx.Graphics.OpenGL;
using System.Text;
using OpenTK.Input;
using OpenTK.Graphics;
using OpenTK.Graphics.OpenGL;
using Gdk;
namespace Ryujinx.Ui
@ -73,7 +75,7 @@ namespace Ryujinx.Ui
IsActive = true;
GLib.Idle.Add(Render, GLib.Priority.HighIdle);
GLib.Idle.Add(Render, GLib.Priority.DefaultIdle);
}
public void Exit()
@ -107,6 +109,8 @@ namespace Ryujinx.Ui
return false;
}
GL.ClearColor(Color4.Black);
_ticks += _chrono.ElapsedTicks;
_chrono.Restart();

View file

@ -138,7 +138,13 @@ namespace Ryujinx.Ui
{
if (disposing)
{
_graphicsContext.MakeCurrent(_windowInfo);
try
{
_graphicsContext.MakeCurrent(_windowInfo);
}catch(Exception ex)
{
}
OnShuttingDown();

View file

@ -48,28 +48,29 @@ namespace Ryujinx.Ui
#pragma warning disable CS0649
#pragma warning disable IDE0044
[GUI] Window _mainWin;
[GUI] CheckMenuItem _fullScreen;
[GUI] MenuItem _stopEmulation;
[GUI] CheckMenuItem _favToggle;
[GUI] MenuItem _firmwareInstallFile;
[GUI] MenuItem _firmwareInstallDirectory;
[GUI] CheckMenuItem _iconToggle;
[GUI] CheckMenuItem _appToggle;
[GUI] CheckMenuItem _developerToggle;
[GUI] CheckMenuItem _versionToggle;
[GUI] CheckMenuItem _timePlayedToggle;
[GUI] CheckMenuItem _lastPlayedToggle;
[GUI] CheckMenuItem _fileExtToggle;
[GUI] CheckMenuItem _fileSizeToggle;
[GUI] CheckMenuItem _pathToggle;
[GUI] TreeView _gameTable;
[GUI] TreeSelection _gameTableSelection;
[GUI] Label _progressLabel;
[GUI] Label _firmwareVersionLabel;
[GUI] LevelBar _progressBar;
[GUI] MenuItem _openDebugger;
[GUI] MenuItem _toolsMenu;
[GUI] Window _mainWin;
[GUI] CheckMenuItem _fullScreen;
[GUI] MenuItem _stopEmulation;
[GUI] CheckMenuItem _favToggle;
[GUI] MenuItem _firmwareInstallFile;
[GUI] MenuItem _firmwareInstallDirectory;
[GUI] CheckMenuItem _iconToggle;
[GUI] CheckMenuItem _appToggle;
[GUI] CheckMenuItem _developerToggle;
[GUI] CheckMenuItem _versionToggle;
[GUI] CheckMenuItem _timePlayedToggle;
[GUI] CheckMenuItem _lastPlayedToggle;
[GUI] CheckMenuItem _fileExtToggle;
[GUI] CheckMenuItem _fileSizeToggle;
[GUI] CheckMenuItem _pathToggle;
[GUI] TreeView _gameTable;
[GUI] ScrolledWindow _gameTableWindow;
[GUI] TreeSelection _gameTableSelection;
[GUI] Label _progressLabel;
[GUI] Label _firmwareVersionLabel;
[GUI] LevelBar _progressBar;
[GUI] Box _viewBox;
#pragma warning restore CS0649
#pragma warning restore IDE0044
@ -391,26 +392,30 @@ namespace Ryujinx.Ui
Application.Invoke(delegate
{
Window window = new Window("Test");
window.HeightRequest = 720;
window.WidthRequest = 1280;
_viewBox.Remove(_gameTableWindow);
_gLWigdet.Expand = true;
window.Child = _gLWigdet;
_viewBox.Child = _gLWigdet;
window.ShowAll();
_gLWigdet.ShowAll();
});
_gLWigdet.waitEvent.WaitOne();
Application.Invoke(delegate
{
_viewBox.Remove(_gLWigdet);
_gLWigdet.Dispose();
if(_gLWigdet.Window != this.Window && _gLWigdet.Window != null)
{
_gLWigdet.Window.Dispose();
}
_viewBox.Add(_gameTableWindow);
_gameTableWindow.Expand = true;
this.Window.Title = "Ryujinx";
});
device.Dispose();

View file

@ -364,21 +364,35 @@
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkScrolledWindow" id="_gameTableWindow">
<object class="GtkBox" id="_viewBox">
<property name="width_request">1280</property>
<property name="height_request">720</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="shadow_type">in</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkTreeView" id="_gameTable">
<object class="GtkScrolledWindow" id="_gameTableWindow">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="reorderable">True</property>
<property name="hover_selection">True</property>
<signal name="row-activated" handler="Row_Activated" swapped="no"/>
<child internal-child="selection">
<object class="GtkTreeSelection" id="_gameTableSelection"/>
<property name="shadow_type">in</property>
<child>
<object class="GtkTreeView" id="_gameTable">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="reorderable">True</property>
<property name="hover_selection">True</property>
<signal name="row-activated" handler="Row_Activated" swapped="no"/>
<child internal-child="selection">
<object class="GtkTreeSelection" id="_gameTableSelection"/>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>