daily update on 20240610 by nitload youmu

This commit is contained in:
Nitload
2024-06-10 15:11:01 +08:00
parent c0093f7b5c
commit f6963b8e00
96 changed files with 2927 additions and 2290 deletions
+29 -60
View File
@@ -45,34 +45,41 @@ namespace StgSharp.Graphics
{
public abstract class RenderStream : IConvertableToBlueprintNode
{
private ViewPort primeArgs;
private protected (int x, int y, int z) _coordStretch;
private protected RenderStreamConstructArgs primeArgs;
private Camera nativeCamera;
private IntPtr canvasHandle;
private IntPtr contextHandle;
public ViewPort Port => primeArgs;
internal IntPtr CanvasHandle { get => primeArgs.ViewPortID; }
internal IntPtr ContextHandle
{
get => primeArgs.GraphicHandle;
private protected set => primeArgs.GraphicHandle = value;
}
private IntPtr monitor;
private IntPtr sharedCanvas;
internal TimeSpanProvider timeProvider;
protected RenderStream(RenderStreamConstructArgs args, bool isSharing)
/*
protected RenderStream(View v, bool isSharing)
{
if (args == null)
if (v == null)
{
throw new ArgumentNullException(nameof(args));
throw new ArgumentNullException(nameof(v));
}
if (isSharing)
{
primeArgs = args;
primeArgs = v;
}
else
{
RenderStreamConstructArgs? newArgs = args.Clone() as RenderStreamConstructArgs;
View? newArgs = args.Clone() as View;
primeArgs = newArgs;
}
@@ -80,32 +87,21 @@ namespace StgSharp.Graphics
_coordStretch = args.UnitCubeSize;
NativeCamera = new Camera();
}
/**/
public RenderStream(RenderStreamConstructArgs args)
public RenderStream(ViewPort v, (int,int,int) unitCubeSize)
{
if (args == null)
if (v == null)
{
throw new ArgumentNullException(nameof(args));
throw new ArgumentNullException(nameof(v));
}
RenderStreamConstructArgs? newArgs = args.Clone() as RenderStreamConstructArgs;
primeArgs = newArgs;
primeArgs = v;
monitor = newArgs!.Monitor;
_coordStretch = newArgs.UnitCubeSize;
monitor = v!.Monitor;
_coordStretch = unitCubeSize;
NativeCamera = new Camera();
}
public IntPtr CanvasHandle
{
get => canvasHandle;
internal set => canvasHandle = value;
}
public IntPtr ContextHandle
{
get => contextHandle;
internal set => contextHandle = value;
}
public FrameBufferSizeHandler FrameSizeCallback
{
@@ -124,7 +120,7 @@ namespace StgSharp.Graphics
internal set
{
primeArgs.Height = value;
InternalIO.glfwSetWindowSize(this.canvasHandle, Width, Height);
InternalIO.glfwSetWindowSize(this.CanvasHandle, Width, Height);
}
}
@@ -137,7 +133,6 @@ namespace StgSharp.Graphics
public string Name
{
get => primeArgs.Name;
internal set => primeArgs.Name = value;
}
public IntPtr SharedCanvas
@@ -153,7 +148,7 @@ namespace StgSharp.Graphics
{
primeArgs.Height = value.width;
primeArgs.Width = value.height;
InternalIO.glfwSetWindowSize(this.canvasHandle, Width, Height);
InternalIO.glfwSetWindowSize(this.CanvasHandle, Width, Height);
}
}
@@ -163,7 +158,7 @@ namespace StgSharp.Graphics
internal set
{
primeArgs.Width = value;
InternalIO.glfwSetWindowSize(this.canvasHandle, Width, Height);
InternalIO.glfwSetWindowSize(this.CanvasHandle, Width, Height);
}
}
@@ -205,7 +200,7 @@ namespace StgSharp.Graphics
where TSource : RenderStream
where TTarget : RenderStream
{
TTarget? target = Activator.CreateInstance(typeof(TTarget), source.primeArgs, true) as TTarget;
TTarget target = Activator.CreateInstance(typeof(TTarget), source.primeArgs, source._coordStretch) as TTarget;
if (target == null)
{
throw new InvalidOperationException(
@@ -213,16 +208,11 @@ namespace StgSharp.Graphics
);
}
target.timeProvider = source.timeProvider;
target.canvasHandle = source.canvasHandle;
target.contextHandle = source.contextHandle;
target.Init();
return target;
}
internal abstract void CreateCanvas();
string[] IConvertableToBlueprintNode.InputInterfacesName => InputPortsName;
BlueprintNodeAction IConvertableToBlueprintNode.MainExecution => InternalDraw;
@@ -239,7 +229,7 @@ namespace StgSharp.Graphics
/// so do not ignore return value of this method.
/// </summary>
/// <param name="source">Shader using this camera</param>
/// <param name="name">Name of projection camera named in shader</param>
/// <param name="name">ContextName of projection camera named in shader</param>
/// <returns>
/// <see cref="Uniform{T}"/>(T is <see cref="Matrix44"/>) representing
/// projection matrix in shader program.
@@ -277,25 +267,4 @@ namespace StgSharp.Graphics
}
public class RenderStreamConstructArgs : ICloneable
{
public int Height { get; set; }
public IntPtr Monitor { get; set; }
public string Name { get; set; }
public (int x, int y, int z) UnitCubeSize { get; set; }
public int Width { get; set; }
public object Clone()
{
RenderStreamConstructArgs ret = new RenderStreamConstructArgs();
ret.Height = Height;
ret.Width = Width;
ret.Monitor = Monitor;
ret.Name = Name;
ret.UnitCubeSize = UnitCubeSize;
return ret;
}
}
}