Essgee.Unity/Assets/Plugins/Essgee/Graphics/RenderControl.cs

109 lines
3.1 KiB
C#
Raw Normal View History

2025-01-02 17:55:16 +08:00
//using System;
//using System.ComponentModel;
//using System.Diagnostics;
//using System.Diagnostics.CodeAnalysis;
//using System.Drawing;
//using System.Runtime.InteropServices;
//namespace Essgee.Graphics
//{
// [DesignTimeVisible(true), ToolboxItem(true)]
// [SuppressMessage("Microsoft.Design", "CA1063:ImplementIDisposableCorrectly",
// Justification = "False positive. IDisposable is inherited via IFunctionality. See http://stackoverflow.com/questions/8925925/code-analysis-ca1063-fires-when-deriving-from-idisposable-and-providing-implemen for details.")]
// public class RenderControl : GLControl, IComponent
// {
// public event EventHandler<EventArgs> Render;
// bool isRuntime => (LicenseManager.UsageMode != LicenseUsageMode.Designtime);
// bool isReady => (isRuntime && GraphicsContext.CurrentContext != null);
// DebugProc debugCallback;
// bool wasShown = false;
// public RenderControl() : base(GraphicsMode.Default, 3, 0, GraphicsContextFlags.Default)
// {
// if (!isRuntime) return;
// Application.Idle += ((s, e) => { if (isReady) Invalidate(); });
// }
// protected override bool IsInputKey(Keys keyData)
// {
// switch (keyData)
// {
// case Keys.Right:
// case Keys.Left:
// case Keys.Up:
// case Keys.Down:
// case (Keys.Shift | Keys.Right):
// case (Keys.Shift | Keys.Left):
// case (Keys.Shift | Keys.Up):
// case (Keys.Shift | Keys.Down):
// return true;
// default:
// return base.IsInputKey(keyData);
// }
// }
// protected override void OnPaint(PaintEventArgs e)
// {
// if (!isReady)
// {
// e.Graphics.Clear(BackColor);
// using (Pen pen = new Pen(Color.Red, 3.0f))
// {
// e.Graphics.InterpolationMode = InterpolationMode.HighQualityBilinear;
// e.Graphics.PixelOffsetMode = PixelOffsetMode.HighQuality;
// e.Graphics.SmoothingMode = SmoothingMode.HighQuality;
// e.Graphics.DrawLine(pen, Point.Empty, new Point(ClientRectangle.Right, ClientRectangle.Bottom));
// e.Graphics.DrawLine(pen, new Point(0, ClientRectangle.Bottom), new Point(ClientRectangle.Right, 0));
// }
// return;
// }
// if (!wasShown)
// {
// OnResize(EventArgs.Empty);
// wasShown = true;
// }
// OnRender(EventArgs.Empty);
// SwapBuffers();
// }
// protected virtual void OnRender(EventArgs e)
// {
// if (!isReady) return;
// Render?.Invoke(this, e);
// }
// protected override void OnLoad(EventArgs e)
// {
// if (!isReady) return;
// if (Program.AppEnvironment.EnableOpenGLDebug)
// {
// debugCallback = new DebugProc(GLDebugCallback);
// GL.DebugMessageCallback(debugCallback, IntPtr.Zero);
// }
// GL.ClearColor(BackColor);
// base.OnLoad(e);
// }
// protected override void OnResize(EventArgs e)
// {
// if (!isReady) return;
// base.OnResize(e);
// }
// private void GLDebugCallback(DebugSource source, DebugType type, int id, DebugSeverity severity, int length, IntPtr message, IntPtr userParam)
// {
// Debug.Print($"{(type == DebugType.DebugTypeError ? "GL ERROR!" : "GL callback")} - source={source}, type={type}, severity={severity}, message={Marshal.PtrToStringAnsi(message)}");
// }
// }
//}