[Internal] Seperate InternalIO into different static classes. [Matrix] Fix logic error of compute model.
This commit is contained in:
@@ -153,7 +153,7 @@ namespace StgSharp.MVVM
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public KeyStatus GetKeyStatus(KeyboardKey key)
|
||||
{
|
||||
return InternalIO.glfwGetKey(context.ViewPortHandle, (int)key);
|
||||
return GraphicFramework.glfwGetKey(context.ViewPortHandle, (int)key);
|
||||
}
|
||||
|
||||
public void InternalInitialize(string name, (int, int, int) cubeSize, [NotNull]ViewModelBase viewModelBinding)
|
||||
|
||||
@@ -116,7 +116,7 @@ namespace StgSharp.MVVM
|
||||
{
|
||||
foreach (KeyValuePair<IClickTrigger, Action> pair in keyCallbackIndex)
|
||||
{
|
||||
if (InternalIO.glfwGetKey(_binding.ViewHandle,
|
||||
if (GraphicFramework.glfwGetKey(_binding.ViewHandle,
|
||||
pair.Key.TargetKeyOrButtonID) == pair.Key.TriggeredStatus) {
|
||||
pair.Value();
|
||||
}
|
||||
|
||||
@@ -61,7 +61,7 @@ namespace StgSharp.MVVM.ViewModel
|
||||
fpsCountingToken.TimeSpanRefreshed += CountFps;
|
||||
fpsCountingToken.MissTimeSpanRefreshed += CountFps;
|
||||
if (_nextView != _currentView) {
|
||||
Interlocked.Exchange(ref _currentView, _nextView);
|
||||
_ = Interlocked.Exchange(ref _currentView, _nextView);
|
||||
}
|
||||
Thread renderThread = new Thread((token) => {
|
||||
try
|
||||
@@ -70,7 +70,7 @@ namespace StgSharp.MVVM.ViewModel
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
InternalIO.InternalWriteLog(
|
||||
DefaultLog.InternalWriteLog(
|
||||
$"Critical error when rendering:\n" + $"{ex}", LogType.Error);
|
||||
ShouldClose = true;
|
||||
throw;
|
||||
@@ -84,9 +84,9 @@ namespace StgSharp.MVVM.ViewModel
|
||||
while (_closed)
|
||||
{
|
||||
if (_nextView != _currentView) {
|
||||
Interlocked.Exchange(ref _currentView, _nextView);
|
||||
_ = Interlocked.Exchange(ref _currentView, _nextView);
|
||||
}
|
||||
InternalIO.glfwPollEvents();
|
||||
GraphicFramework.glfwPollEvents();
|
||||
eventAwaitingToken.WaitNextSpan();
|
||||
_closed = !ShouldClose;
|
||||
}
|
||||
@@ -115,7 +115,7 @@ namespace StgSharp.MVVM.ViewModel
|
||||
|
||||
private unsafe void PrivateShow()
|
||||
{
|
||||
if (0 == InternalIO.glfwWindowShouldClose(this.viewPortDisplay.ViewPortHandle))
|
||||
if (0 == GraphicFramework.glfwWindowShouldClose(this.viewPortDisplay.ViewPortHandle))
|
||||
{
|
||||
CurrentView.Use();
|
||||
RenderStream.PollEvents();
|
||||
|
||||
@@ -45,8 +45,6 @@ using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
using static StgSharp.Internal.InternalIO;
|
||||
|
||||
namespace StgSharp.MVVM.ViewModel
|
||||
{
|
||||
public abstract partial class ViewModelBase
|
||||
@@ -72,7 +70,7 @@ namespace StgSharp.MVVM.ViewModel
|
||||
_frameCount = 0;
|
||||
long frameLength = (FrameSpeed > 0) ? (1000L * 1000L / FrameSpeed) : 0;
|
||||
frameTimeProvider = new TimeSpanProvider(frameLength, TimeSpanProvider.DefaultProvider);
|
||||
SetFrameSizeCallback(DefaultFrameRewsizeCallback);
|
||||
SetFrameSizeCallback(DefaultFrameResizeCallback);
|
||||
}
|
||||
|
||||
protected ViewModelBase(float frameLength)
|
||||
@@ -85,7 +83,7 @@ namespace StgSharp.MVVM.ViewModel
|
||||
long _frameLength = (FrameSpeed > 0) ? ((long)(1000 * frameLength)) : 0;
|
||||
frameTimeProvider = new TimeSpanProvider(_frameLength,
|
||||
TimeSpanProvider.DefaultProvider);
|
||||
SetFrameSizeCallback(DefaultFrameRewsizeCallback);
|
||||
SetFrameSizeCallback(DefaultFrameResizeCallback);
|
||||
}
|
||||
|
||||
public ViewModelBase(ViewPort vBinding, int frameSpeed)
|
||||
@@ -97,7 +95,7 @@ namespace StgSharp.MVVM.ViewModel
|
||||
_frameCount = 0;
|
||||
long frameLength = (frameSpeed > 0) ? (1000L * 1000L / frameSpeed) : 0;
|
||||
frameTimeProvider = new TimeSpanProvider(frameLength, TimeSpanProvider.DefaultProvider);
|
||||
SetFrameSizeCallback(DefaultFrameRewsizeCallback);
|
||||
SetFrameSizeCallback(DefaultFrameResizeCallback);
|
||||
}
|
||||
|
||||
public ViewModelBase(ViewPort vBinding, float frameLength)
|
||||
@@ -110,7 +108,7 @@ namespace StgSharp.MVVM.ViewModel
|
||||
long _frameLength = (frameLength > 0) ? ((long)(1000 * frameLength)) : 0;
|
||||
frameTimeProvider = new TimeSpanProvider(_frameLength,
|
||||
TimeSpanProvider.DefaultProvider);
|
||||
SetFrameSizeCallback(DefaultFrameRewsizeCallback);
|
||||
SetFrameSizeCallback(DefaultFrameResizeCallback);
|
||||
}
|
||||
|
||||
public DataBindingEntry this[string name]
|
||||
@@ -126,8 +124,8 @@ namespace StgSharp.MVVM.ViewModel
|
||||
|
||||
public bool ShouldClose
|
||||
{
|
||||
get => InternalIO.glfwWindowShouldClose(viewPortDisplay.ViewPortHandle) != 0;
|
||||
set => InternalIO.glfwSetWindowShouldClose(
|
||||
get => GraphicFramework.glfwWindowShouldClose(viewPortDisplay.ViewPortHandle) != 0;
|
||||
set => GraphicFramework.glfwSetWindowShouldClose(
|
||||
viewPortDisplay.ViewPortHandle, value ? 1 : 0);
|
||||
}
|
||||
|
||||
@@ -195,7 +193,7 @@ namespace StgSharp.MVVM.ViewModel
|
||||
public void SetSizeLimit(Vec2 minSize, Vec2 maxSize)
|
||||
{
|
||||
ThreadHelper.MainThreadAssert();
|
||||
InternalIO.glfwSetWindowSizeLimits(
|
||||
GraphicFramework.glfwSetWindowSizeLimits(
|
||||
this.viewPortDisplay.ViewPortHandle, (int)minSize.X, (int)minSize.Y, (int)maxSize.X,
|
||||
(int)maxSize.Y);
|
||||
}
|
||||
@@ -219,7 +217,7 @@ namespace StgSharp.MVVM.ViewModel
|
||||
public void SetSizeLimit(int minWidth, int minHeight, int maxWidth, int maxHeight)
|
||||
{
|
||||
ThreadHelper.MainThreadAssert();
|
||||
InternalIO.glfwSetWindowSizeLimits(
|
||||
GraphicFramework.glfwSetWindowSizeLimits(
|
||||
this.viewPortDisplay.ViewPortHandle, minWidth, minHeight, maxWidth, maxHeight);
|
||||
}
|
||||
|
||||
@@ -229,11 +227,11 @@ namespace StgSharp.MVVM.ViewModel
|
||||
{
|
||||
_resizeCallback = callback;
|
||||
IntPtr handlerPtr = Marshal.GetFunctionPointerForDelegate(callback);
|
||||
InternalIO.glfwSetFrameBufferSizeCallback(
|
||||
viewPortDisplay.ViewPortHandle, (delegate* unmanaged[Cdecl]<IntPtr,int,int,void>)handlerPtr);
|
||||
_ = GraphicFramework.glfwSetFrameBufferSizeCallback(
|
||||
viewPortDisplay.ViewPortHandle, (delegate* unmanaged[Cdecl]<IntPtr, int, int, void>)handlerPtr);
|
||||
}
|
||||
|
||||
private void DefaultFrameRewsizeCallback(IntPtr windowHandle, int width, int height)
|
||||
private void DefaultFrameResizeCallback(IntPtr windowHandle, int width, int height)
|
||||
{
|
||||
ViewPort.GetExistedViewPort(windowHandle, out ViewPort vp);
|
||||
vp.RequestFlushSizeInNextFrame(width, height);
|
||||
|
||||
@@ -49,7 +49,7 @@ namespace StgSharp.MVVM
|
||||
Name = new StackFrame(1, false).
|
||||
GetMethod()!.DeclaringType!.Name;
|
||||
Monitor = IntPtr.Zero;
|
||||
ViewPortHandle = InternalIO.glfwCreateWindow(
|
||||
ViewPortHandle = GraphicFramework.glfwCreateWindow(
|
||||
_newWidth, _newHeight, Encoding.UTF8.GetBytes(Name), Monitor, IntPtr.Zero);
|
||||
if (ViewPortHandle == IntPtr.Zero) {
|
||||
throw new InvalidOperationException("Unable to create viewport handle.");
|
||||
@@ -64,7 +64,7 @@ namespace StgSharp.MVVM
|
||||
FlushSize();
|
||||
Name = name;
|
||||
Monitor = monitor;
|
||||
ViewPortHandle = InternalIO.glfwCreateWindow(
|
||||
ViewPortHandle = GraphicFramework.glfwCreateWindow(
|
||||
_newWidth, _newHeight, Encoding.UTF8.GetBytes(Name), Monitor, IntPtr.Zero);
|
||||
if (ViewPortHandle == IntPtr.Zero) {
|
||||
throw new InvalidOperationException("Unable to create viewport handle.");
|
||||
|
||||
Reference in New Issue
Block a user