diff --git a/BizHawk.Client.EmuHawk/DisplayManager/RenderTargetFrugalizer.cs b/BizHawk.Client.EmuHawk/DisplayManager/RenderTargetFrugalizer.cs
index 693424ff73..d19e6e755f 100644
--- a/BizHawk.Client.EmuHawk/DisplayManager/RenderTargetFrugalizer.cs
+++ b/BizHawk.Client.EmuHawk/DisplayManager/RenderTargetFrugalizer.cs
@@ -1,10 +1,6 @@
using System;
using System.Collections.Generic;
-using BizHawk.Common;
-using BizHawk.Emulation.Common;
-using BizHawk.Client.Common;
-
using BizHawk.Bizware.BizwareGL;
namespace BizHawk.Client.EmuHawk
@@ -13,7 +9,7 @@ namespace BizHawk.Client.EmuHawk
/// Recycles a pair of temporary render targets, as long as the dimensions match.
/// When the dimensions dont match, a new one will be allocated
///
- class RenderTargetFrugalizer : IDisposable
+ public class RenderTargetFrugalizer : IDisposable
{
public RenderTargetFrugalizer(IGL gl)
{
diff --git a/BizHawk.Client.MultiHawk/BizHawk.Client.MultiHawk.csproj b/BizHawk.Client.MultiHawk/BizHawk.Client.MultiHawk.csproj
index 6e84298e39..64ecceeab8 100644
--- a/BizHawk.Client.MultiHawk/BizHawk.Client.MultiHawk.csproj
+++ b/BizHawk.Client.MultiHawk/BizHawk.Client.MultiHawk.csproj
@@ -104,15 +104,12 @@
RecordMovie.cs
-
Form
EmulatorWindow.cs
-
-
diff --git a/BizHawk.Client.MultiHawk/DisplayManager/RenderTargetFrugalizer.cs b/BizHawk.Client.MultiHawk/DisplayManager/RenderTargetFrugalizer.cs
deleted file mode 100644
index 9587bc6fa1..0000000000
--- a/BizHawk.Client.MultiHawk/DisplayManager/RenderTargetFrugalizer.cs
+++ /dev/null
@@ -1,69 +0,0 @@
-using System;
-using System.Collections.Generic;
-
-using BizHawk.Common;
-using BizHawk.Emulation.Common;
-using BizHawk.Client.Common;
-
-using BizHawk.Bizware.BizwareGL;
-
-namespace BizHawk.Client.MultiHawk
-{
- ///
- /// Recycles a pair of temporary render targets, as long as the dimensions match.
- /// When the dimensions dont match, a new one will be allocated
- ///
- class RenderTargetFrugalizer : IDisposable
- {
- public RenderTargetFrugalizer(IGL gl)
- {
- GL = gl;
- ResetList();
- }
-
- public void Dispose()
- {
- foreach (var ct in CurrentRenderTargets)
- if (ct != null)
- ct.Dispose();
- ResetList();
- }
-
- void ResetList()
- {
- CurrentRenderTargets = new List();
- CurrentRenderTargets.Add(null);
- CurrentRenderTargets.Add(null);
- }
-
- IGL GL;
- List CurrentRenderTargets;
-
- public RenderTarget Get(System.Drawing.Size dimensions) { return Get(dimensions.Width, dimensions.Height); }
- public RenderTarget Get(int width, int height)
- {
- //get the current entry
- RenderTarget CurrentRenderTarget = CurrentRenderTargets[0];
-
- //check if its rotten and needs recreating
- if (CurrentRenderTarget == null || CurrentRenderTarget.Texture2d.IntWidth != width || CurrentRenderTarget.Texture2d.IntHeight != height)
- {
- //needs recreating. be sure to kill the old one...
- if (CurrentRenderTarget != null)
- CurrentRenderTarget.Dispose();
- //and make a new one
- CurrentRenderTarget = GL.CreateRenderTarget(width, height);
- }
- else
- {
- //its good! nothing more to do
- }
-
- //now shuffle the buffers
- CurrentRenderTargets[0] = CurrentRenderTargets[1];
- CurrentRenderTargets[1] = CurrentRenderTarget;
-
- return CurrentRenderTarget;
- }
- }
-}
\ No newline at end of file
diff --git a/BizHawk.Client.MultiHawk/DisplayManager/SwappableDisplaySurfaceSet.cs b/BizHawk.Client.MultiHawk/DisplayManager/SwappableDisplaySurfaceSet.cs
deleted file mode 100644
index 5734d055c6..0000000000
--- a/BizHawk.Client.MultiHawk/DisplayManager/SwappableDisplaySurfaceSet.cs
+++ /dev/null
@@ -1,82 +0,0 @@
-using System;
-using System.Drawing;
-using System.Drawing.Imaging;
-using System.Collections.Generic;
-using System.Runtime.InteropServices;
-
-using BizHawk.Common;
-using BizHawk.Client.Common;
-
-namespace BizHawk.Client.MultiHawk
-{
- ///
- /// encapsulates thread-safe concept of pending/current display surfaces, reusing buffers where matching
- /// sizes are available and keeping them cleaned up when they dont seem like theyll need to be used anymore
- ///
- class SwappableDisplaySurfaceSet
- {
- DisplaySurface Pending, Current;
- bool IsPending;
- Queue ReleasedSurfaces = new Queue();
-
- ///
- /// retrieves a surface with the specified size, reusing an old buffer if available and clearing if requested
- ///
- public DisplaySurface AllocateSurface(int width, int height, bool needsClear = true)
- {
- for (; ; )
- {
- DisplaySurface trial;
- lock (this)
- {
- if (ReleasedSurfaces.Count == 0) break;
- trial = ReleasedSurfaces.Dequeue();
- }
- if (trial.Width == width && trial.Height == height)
- {
- if (needsClear) trial.Clear();
- return trial;
- }
- trial.Dispose();
- }
- return new DisplaySurface(width, height);
- }
-
- ///
- /// sets the provided buffer as pending. takes control of the supplied buffer
- ///
- public void SetPending(DisplaySurface newPending)
- {
- lock (this)
- {
- if (Pending != null) ReleasedSurfaces.Enqueue(Pending);
- Pending = newPending;
- IsPending = true;
- }
- }
-
- public void ReleaseSurface(DisplaySurface surface)
- {
- lock (this) ReleasedSurfaces.Enqueue(surface);
- }
-
- ///
- /// returns the current buffer, making the most recent pending buffer (if there is such) as the new current first.
- ///
- public DisplaySurface GetCurrent()
- {
- lock (this)
- {
- if (IsPending)
- {
- if (Current != null) ReleasedSurfaces.Enqueue(Current);
- Current = Pending;
- Pending = null;
- IsPending = false;
- }
- }
- return Current;
- }
- }
-
-}
\ No newline at end of file
diff --git a/BizHawk.Client.MultiHawk/Extensions/ControlExtensions.cs b/BizHawk.Client.MultiHawk/Extensions/ControlExtensions.cs
deleted file mode 100644
index 897a279b0f..0000000000
--- a/BizHawk.Client.MultiHawk/Extensions/ControlExtensions.cs
+++ /dev/null
@@ -1,283 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Linq;
-using System.Runtime.InteropServices;
-using System.Text;
-using System.Windows.Forms;
-
-using BizHawk.Common;
-using BizHawk.Common.ReflectionExtensions;
-using BizHawk.Client.Common;
-
-
-namespace BizHawk.Client.MultiHawk.WinFormExtensions
-{
- public static class ControlExtensions
- {
- public static void PopulateFromEnum(this ComboBox box, object enumVal)
- where T : struct, IConvertible
- {
- if (!typeof(T).IsEnum)
- {
- throw new ArgumentException("T must be an enumerated type");
- }
-
- box.Items.Clear();
- box.Items.AddRange(
- typeof(T).GetEnumDescriptions()
- .ToArray());
- box.SelectedItem = enumVal.GetDescription();
- }
-
- // extension method to make Control.Invoke easier to use
- public static object Invoke(this Control control, Action action)
- {
- return control.Invoke(action);
- }
-
- // extension method to make Control.BeginInvoke easier to use
- public static IAsyncResult BeginInvoke(this Control control, Action action)
- {
- return control.BeginInvoke(action);
- }
-
- public static void AddColumn(this ListView listView, string columnName, bool enabled, int columnWidth)
- {
- if (enabled)
- {
- if (listView.Columns[columnName] == null)
- {
- var column = new ColumnHeader
- {
- Name = columnName,
- Text = columnName.Replace("Column", string.Empty),
- Width = columnWidth,
- };
-
- listView.Columns.Add(column);
- }
- }
- }
-
- public static void AddColumn(this ListView listView, ToolDialogSettings.Column column)
- {
- if (column.Visible)
- {
- if (listView.Columns[column.Name] == null)
- {
- var lsstViewColumn = new ColumnHeader
- {
- Name = column.Name,
- Text = column.Name.Replace("Column", string.Empty),
- Width = column.Width,
- DisplayIndex = column.Index
- };
-
- listView.Columns.Add(lsstViewColumn);
- }
- }
- }
-
- public static ToolStripMenuItem GenerateColumnsMenu(this ToolDialogSettings.ColumnList list, Action changeCallback)
- {
- var menu = new ToolStripMenuItem
- {
- Name = "GeneratedColumnsSubMenu",
- Text = "Columns"
- };
-
- var dummyList = list;
-
- foreach (var column in dummyList)
- {
- var menuItem = new ToolStripMenuItem
- {
- Name = column.Name,
- Text = column.Name.Replace("Column", string.Empty)
- };
-
- menuItem.Click += (o, ev) =>
- {
- dummyList[menuItem.Name].Visible ^= true;
- changeCallback();
- };
-
- menu.DropDownItems.Add(menuItem);
- }
-
- menu.DropDownOpened += (o, e) =>
- {
- foreach (var column in dummyList)
- {
- (menu.DropDownItems[column.Name] as ToolStripMenuItem).Checked = column.Visible;
- }
- };
-
- return menu;
- }
-
- public static Point ChildPointToScreen(this Control control, Control child)
- {
- return control.PointToScreen(new Point(child.Location.X, child.Location.Y));
- }
-
- #region Enumerable to Enumerable
-
- ///
- /// Converts the outdated IEnumerable Controls property to a IEnumerable like .NET should have done a long time ago
- ///
- public static IEnumerable Controls(this Control control)
- {
- return control.Controls
- .OfType();
- }
-
- public static IEnumerable TabPages(this TabControl tabControl)
- {
- return tabControl.TabPages.Cast();
- }
-
- public static IEnumerable SelectedIndices(this ListView listView)
- {
- return listView.SelectedIndices.Cast();
- }
-
- public static IEnumerable ColumnHeaders(this ListView listView)
- {
- return listView.Columns.OfType();
- }
-
- #endregion
- }
-
- public static class ListViewExtensions
- {
- [StructLayout(LayoutKind.Sequential)]
- public struct HDITEM
- {
- public Mask mask;
- public int cxy;
- [MarshalAs(UnmanagedType.LPTStr)]
- public string pszText;
- public IntPtr hbm;
- public int cchTextMax;
- public Format fmt;
- public IntPtr lParam;
- // _WIN32_IE >= 0x0300
- public int iImage;
- public int iOrder;
- // _WIN32_IE >= 0x0500
- public uint type;
- public IntPtr pvFilter;
- // _WIN32_WINNT >= 0x0600
- public uint state;
-
- [Flags]
- public enum Mask
- {
- Format = 0x4, // HDI_FORMAT
- };
-
- [Flags]
- public enum Format
- {
- SortDown = 0x200, // HDF_SORTDOWN
- SortUp = 0x400, // HDF_SORTUP
- };
- };
-
- public const int LVM_FIRST = 0x1000;
- public const int LVM_GETHEADER = LVM_FIRST + 31;
-
- public const int HDM_FIRST = 0x1200;
- public const int HDM_GETITEM = HDM_FIRST + 11;
- public const int HDM_SETITEM = HDM_FIRST + 12;
-
- [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
- static extern IntPtr SendMessage(IntPtr hWnd, UInt32 msg, IntPtr wParam, IntPtr lParam);
-
- [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
- static extern IntPtr SendMessage(IntPtr hWnd, UInt32 msg, IntPtr wParam, ref HDITEM lParam);
-
- ///
- /// Dumps the contents of the ListView into a tab separated list of lines
- ///
- public static string CopyItemsAsText(this ListView listViewControl)
- {
- var indexes = listViewControl.SelectedIndices;
- if (indexes.Count <= 0)
- {
- return String.Empty;
- }
-
- var sb = new StringBuilder();
-
- // walk over each selected item and subitem within it to generate a string from it
- foreach (int index in indexes)
- {
- foreach (ListViewItem.ListViewSubItem item in listViewControl.Items[index].SubItems)
- {
- if (!String.IsNullOrWhiteSpace(item.Text))
- {
- sb.Append(item.Text).Append('\t');
- }
- }
-
- // remove the last tab
- sb.Remove(sb.Length - 1, 1);
-
- sb.Append("\r\n");
- }
-
- // remove last newline
- sb.Length -= 2;
-
-
- return sb.ToString();
- }
-
- public static void SetSortIcon(this ListView listViewControl, int columnIndex, SortOrder order)
- {
- IntPtr columnHeader = SendMessage(listViewControl.Handle, LVM_GETHEADER, IntPtr.Zero, IntPtr.Zero);
- for (int columnNumber = 0; columnNumber <= listViewControl.Columns.Count - 1; columnNumber++)
- {
- var columnPtr = new IntPtr(columnNumber);
- var item = new HDITEM
- {
- mask = HDITEM.Mask.Format
- };
-
- if (SendMessage(columnHeader, HDM_GETITEM, columnPtr, ref item) == IntPtr.Zero)
- {
- throw new Win32Exception();
- }
-
- if (order != SortOrder.None && columnNumber == columnIndex)
- {
- switch (order)
- {
- case SortOrder.Ascending:
- item.fmt &= ~HDITEM.Format.SortDown;
- item.fmt |= HDITEM.Format.SortUp;
- break;
- case SortOrder.Descending:
- item.fmt &= ~HDITEM.Format.SortUp;
- item.fmt |= HDITEM.Format.SortDown;
- break;
- }
- }
- else
- {
- item.fmt &= ~HDITEM.Format.SortDown & ~HDITEM.Format.SortUp;
- }
-
- if (SendMessage(columnHeader, HDM_SETITEM, columnPtr, ref item) == IntPtr.Zero)
- {
- throw new Win32Exception();
- }
- }
- }
- }
-}
diff --git a/BizHawk.Client.MultiHawk/Extensions/CoreExtensions.cs b/BizHawk.Client.MultiHawk/Extensions/CoreExtensions.cs
deleted file mode 100644
index b48c795836..0000000000
--- a/BizHawk.Client.MultiHawk/Extensions/CoreExtensions.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-using BizHawk.Emulation.Common;
-using BizHawk.Emulation.Common.IEmulatorExtensions;
-using BizHawk.Emulation.Cores.Nintendo.SNES;
-using BizHawk.Client.Common;
-
-namespace BizHawk.Client.MultiHawk.CoreExtensions
-{
- public static class CoreExtensions
- {
- public static string DisplayName(this IEmulator core)
- {
- var attributes = core.Attributes();
-
- var str = (!attributes.Released ? "(Experimental) " : string.Empty) +
- attributes.CoreName;
-
- if (core is LibsnesCore)
- {
- str += " (" + ((LibsnesCore)core).CurrentProfile + ")";
- }
-
- return str;
- }
- }
-}