daily update on 20240213 by nitload youmu. 逐步弃用GLFW,正在使用wgl重写glfw底层,相关实现转移到C#实现,SSC彻底变成线性代数计算器。

This commit is contained in:
Nitload
2024-02-13 23:42:22 +08:00
parent 8391569482
commit a2241a5a58
307 changed files with 16701 additions and 10296 deletions
@@ -1,13 +1,26 @@
using StgSharp.Graphics;
using StgSharp.Envitronment;
using StgSharp.Envitronment.Win32;
using StgSharp.Graphics;
using StgSharp.Math;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using Windows.Win32.UI.WindowsAndMessaging;
#if Windows
using Windows.Win32;
using Windows.Win32.Foundation;
using Windows.Win32.Graphics.OpenGL;
using Windows.Win32.Graphics.Gdi;
using Windows.Win32.UI;
#endif
namespace StgSharp
{
internal enum GraphicAPI : byte
@@ -17,10 +30,21 @@ namespace StgSharp
VK
}
public static class Platform
public static partial class Platform
{
internal static GraphicAPI API;
internal static GraphicAPI API = default;
private static uint markCount = 0;
public static void Mark(bool needConsole)
{
markCount++;
if (needConsole)
{
Console.WriteLine(markCount);
}
}
/// <summary>
/// Version of current StgSharp platform.
@@ -37,6 +61,11 @@ namespace StgSharp
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static void InitGL(int majorVersion, int minorVersion)
{
if (API != default)
{
return;
}
InternalIO.InternalInitGL(majorVersion, minorVersion);
}
@@ -86,5 +115,26 @@ namespace StgSharp
}
}
public static void Track(
object target,
string message,
[CallerFilePath] string filePath = "",
[CallerMemberName] string callerName = "",
[CallerLineNumber] int lineNumber = 0
)
{
string log = $"Tracked object: {nameof(target)}\n";
Type t = target.GetType();
FieldInfo[] fieldInfo = t.GetFields(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance);
log += "|\tFieldName\t|\tFieldType\t|\tFieldValue\t|\n";
foreach (FieldInfo field in fieldInfo)
{
log += $"|{field.Name}\t\t|{field.FieldType}\t\t|{field.GetValue(target)}\t\t|\n";
}
log += $"Tracking at:\n{filePath}\t{callerName}\tline {lineNumber}\n";
log += $"Additional information:\n{message}\n";
InternalIO.InternalWriteLog(log, LogType.Info);
}
}
}
@@ -0,0 +1,199 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.CompilerServices;
using Windows.Win32.Foundation;
using System.Runtime.InteropServices;
using System.Reflection;
using StgSharpDebug.Environment;
using StgSharp.Math;
#if Windows
#pragma warning disable CA1416 // 验证平台兼容性
using Microsoft.Win32.SafeHandles;
using StgSharp.Envitronment.Win32;
using Windows.Win32;
using Windows.Win32.Graphics.OpenGL;
using Windows.Win32.Graphics.Gdi;
using Windows.Win32.UI.WindowsAndMessaging;
namespace StgSharp
{
public unsafe static partial class Platform
{
internal static unsafe void CreatDummyContext()
{
string winclass_name = "Dummy_WGL_context";
WNDCLASSW window_class = new WNDCLASSW()
{
style = WNDCLASS_STYLES.CS_HREDRAW | WNDCLASS_STYLES.CS_VREDRAW | WNDCLASS_STYLES.CS_OWNDC,
lpfnWndProc = PInvoke.DefWindowProc,
hInstance = new HINSTANCE(PInvoke.GetModuleHandle("").DangerousGetHandle()),
lpszClassName = new PCWSTR((char*)Marshal.StringToHGlobalUni(winclass_name))
};
if (PInvoke.RegisterClass(window_class) != 0)
{
throw new Exception("Failed in registing OpenGL window.");
}
HWND h = PInvoke.CreateWindowEx(
Windows.Win32.UI.WindowsAndMessaging.WINDOW_EX_STYLE.WS_EX_LTRREADING,
winclass_name,
"Dummy OpenGL window",
Windows.Win32.UI.WindowsAndMessaging.WINDOW_STYLE.WS_OVERLAPPED,
0,
0,
0,
0,
default,
default,
new LibHandle(window_class.hInstance.Value, false),
default
);
if (h == default)
{
throw new Exception("Failed in registing OpenGL window.");
}
HDC hdc = PInvoke.GetDC(h);
PIXELFORMATDESCRIPTOR pfd = new PIXELFORMATDESCRIPTOR();
pfd.nSize = (ushort)Marshal.SizeOf(pfd);
pfd.nVersion = 1;
pfd.dwFlags = PFD_FLAGS.PFD_DRAW_TO_WINDOW | PFD_FLAGS.PFD_SUPPORT_OPENGL
| PFD_FLAGS.PFD_DOUBLEBUFFER;
pfd.iPixelType = PFD_PIXEL_TYPE.PFD_TYPE_RGBA;
pfd.cColorBits = 32;
pfd.cDepthBits = 24;
pfd.cStencilBits = 8;
pfd.iLayerType = PFD_LAYER_TYPE.PFD_MAIN_PLANE;
int pixelFormat = PInvoke.ChoosePixelFormat(hdc, &pfd);
if (pixelFormat == 0)
{
throw new Exception("Failed in registing OpenGL window.");
}
if (PInvoke.SetPixelFormat(hdc, pixelFormat, &pfd))
{
throw new Exception("Failed in registing OpenGL window.");
}
HGLRC hglrc = PInvoke.wglCreateContext(hdc);
PInvoke.wglMakeCurrent(hdc, hglrc);
wglEx.LoadWGLex();
PInvoke.wglMakeCurrent(hdc, HGLRC.Null);
PInvoke.wglDeleteContext(hglrc);
PInvoke.ReleaseDC(h, hdc);
PInvoke.DestroyWindow(h);
}
internal static unsafe HGLRC InitGL(HDC realHDC)
{
CreatDummyContext();
int[] pixelFormatAttribute = new int[] {
WGLconst.DRAW_TO_WINDOW_ARB, 1,
WGLconst.SUPPORT_OPENGL_ARB, 1,
WGLconst.DOUBLE_BUFFER_ARB, 1,
WGLconst.ACCELERATION_ARB, WGLconst.FULL_ACCELERATION_ARB,
WGLconst.PIXEL_TYPE_ARB, WGLconst.TYPE_RGBA_ARB,
WGLconst.COLOR_BITS_ARB, 32,
WGLconst.DEPTH_BITS_ARB, 24,
WGLconst.STENCIL_BITS_ARB,8
};
int piFormat;
uint length;
wglEx.glChoosePixelFormatARB(new DeviceContextHandle(realHDC), pixelFormatAttribute, out piFormat, out length);
if (length == 0)
{
throw new Exception("Failed in creating OpenGL core profile.");
}
PIXELFORMATDESCRIPTOR pfd = default;
PInvoke.DescribePixelFormat(realHDC, piFormat, (uint)Marshal.SizeOf(pfd), &pfd);
if (PInvoke.SetPixelFormat(realHDC, piFormat, in pfd))
{
throw new Exception("Failed in creating OpenGL core profile.");
}
int[] glVersionAttribute = new int[] {
WGLconst.CONTEXT_MAJOR_VERSION_ARB,4,
WGLconst.CONTEXT_MINOR_VERSION_ARB,6,
WGLconst.CONTEXT_PROFILE_MASK_ARB, WGLconst.CONTEXT_CORE_PROFILE_BIT_ARB
};
HGLRC coreGL = new(wglEx.wglCreateContextAttribsARB(
new DeviceContextHandle(realHDC), GlRenderContextHandle.Null, glVersionAttribute).Value);
if (coreGL.Value == IntPtr.Zero)
{
throw new Exception("Failed in creating OpenGL core profile.");
}
return coreGL;
}
internal static unsafe LRESULT window_callback(
HWND window, uint msg, WPARAM wparam, LPARAM lparam)
{
LRESULT ret = new LRESULT(0);
switch (msg)
{
case 0x0010: break;
case 0x0002:
PInvoke.PostQuitMessage(0);
break;
default:
ret = PInvoke.DefWindowProc(window, msg, wparam, lparam);
break;
}
return ret;
}
internal static unsafe IntPtr CreateForm(HINSTANCE inst)
{
string formName = "Hello Stg#!";
WNDCLASSW window_class = new WNDCLASSW()
{
style = WNDCLASS_STYLES.CS_VREDRAW | WNDCLASS_STYLES.CS_HREDRAW | WNDCLASS_STYLES.CS_OWNDC,
lpfnWndProc = window_callback,
hInstance = inst,
hCursor = new HCURSOR(PInvoke.LoadCursor(default, "IDC_ARROW").DangerousGetHandle()),
hbrBackground = HBRUSH.Null,
lpszClassName = new PCWSTR((char*)Marshal.StringToHGlobalUni(formName))
};
if (PInvoke.RegisterClass(in window_class) == 0)
{
throw new Exception("Failed to create window instace.");
}
RECT rect = default;
rect.right = 1024;
rect.bottom = 576;
uint window_style = WGLconst.WS_OVERLAPPEDWINDOW;
PInvoke.AdjustWindowRect(ref rect, (WINDOW_STYLE)window_style, false);
}
}
}
#pragma warning restore CA1416 // 验证平台兼容性
#endif
@@ -0,0 +1,279 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
#if Windows
using Microsoft.Win32.SafeHandles;
using Windows.Win32;
using Windows.Win32.Graphics.OpenGL;
using Windows.Win32.Graphics.Gdi;
namespace StgSharp.Envitronment.Win32
{
public readonly partial struct DeviceContextHandle
: IEquatable<DeviceContextHandle>
{
internal readonly IntPtr Value;
internal DeviceContextHandle(nint value) => this.Value = value;
public static explicit operator DeviceContextHandle(IntPtr value) => new DeviceContextHandle(value);
public static implicit operator IntPtr(DeviceContextHandle value) => value.Value;
public static bool operator !=(DeviceContextHandle left, DeviceContextHandle right) => !(left == right);
public static bool operator ==(DeviceContextHandle left, DeviceContextHandle right) => left.Value == right.Value;
public bool Equals(DeviceContextHandle other) => this.Value == other.Value;
public override bool Equals(object obj) => obj is DeviceContextHandle other && this.Equals(other);
public override int GetHashCode() => this.Value.GetHashCode();
public override string ToString() => $"0x{this.Value:x}";
}
public readonly partial struct GlRenderContextHandle
: IEquatable<GlRenderContextHandle>
{
internal readonly IntPtr Value;
internal GlRenderContextHandle(IntPtr value) => this.Value = value;
internal static GlRenderContextHandle Null => default;
internal bool IsNull => Value == default;
public static explicit operator GlRenderContextHandle(IntPtr value) => new GlRenderContextHandle(value);
public static implicit operator IntPtr(GlRenderContextHandle value) => value.Value;
public static bool operator !=(GlRenderContextHandle left, GlRenderContextHandle right) => !(left == right);
public static bool operator ==(GlRenderContextHandle left, GlRenderContextHandle right) => left.Value == right.Value;
public bool Equals(GlRenderContextHandle other) => this.Value == other.Value;
public override bool Equals(object obj) => obj is GlRenderContextHandle other && this.Equals(other);
public override int GetHashCode() => this.Value.GetHashCode();
public override string ToString() => $"0x{this.Value:x}";
}
public struct WGLconst
{
#region Attribute
public const int ACCELERATION_ARB = 0x2003;
public const int ACCUM_ALPHA_BITS_ARB = 0x2021;
public const int ACCUM_BITS_ARB = 0x201D;
public const int ACCUM_BLUE_BITS_ARB = 0x2020;
public const int ACCUM_GREEN_BITS_ARB = 0x201F;
public const int ACCUM_RED_BITS_ARB = 0x201E;
public const int ALPHA_BITS_ARB = 0x201B;
public const int ALPHA_SHIFT_ARB = 0x201C;
public const int AUX_BUFFERS_ARB = 0x2024;
public const int BLUE_BITS_ARB = 0x2019;
public const int BLUE_SHIFT_ARB = 0x201A;
public const int COLOR_BITS_ARB = 0x2014;
public const int DEPTH_BITS_ARB = 0x2022;
public const int DOUBLE_BUFFER_ARB = 0x2011;
public const int DRAW_TO_BITMAP_ARB = 0x2002;
public const int DRAW_TO_WINDOW_ARB = 0x2001;
public const int FULL_ACCELERATION_ARB = 0x2027;
public const int GENERIC_ACCELERATION_ARB = 0x2026;
public const int GREEN_BITS_ARB = 0x2017;
public const int GREEN_SHIFT_ARB = 0x2018;
public const int NEED_PALETTE_ARB = 0x2004;
public const int NEED_SYSTEM_PALETTE_ARB = 0x2005;
public const int NO_ACCELERATION_ARB = 0x2025;
public const int NUMBER_OVERLAYS_ARB = 0x2008;
public const int NUMBER_PIXEL_FORMATS_ARB = 0x2000;
public const int NUMBER_UNDERLAYS_ARB = 0x2009;
public const int PIXEL_TYPE_ARB = 0x2013;
public const int RED_BITS_ARB = 0x2015;
public const int RED_SHIFT_ARB = 0x2016;
public const int SHARE_ACCUM_ARB = 0x200E;
public const int SHARE_DEPTH_ARB = 0x200C;
public const int SHARE_STENCIL_ARB = 0x200D;
public const int STENCIL_BITS_ARB = 0x2023;
public const int STEREO_ARB = 0x2012;
public const int SUPPORT_GDI_ARB = 0x200F;
public const int SUPPORT_OPENGL_ARB = 0x2010;
public const int SWAP_COPY_ARB = 0x2029;
public const int SWAP_EXCHANGE_ARB = 0x2028;
public const int SWAP_LAYER_BUFFERS_ARB = 0x2006;
public const int SWAP_METHOD_ARB = 0x2007;
public const int SWAP_UNDEFINED_ARB = 0x202A;
public const int TRANSPARENT_ALPHA_VALUE_ARB = 0x203A;
public const int TRANSPARENT_ARB = 0x200A;
public const int TRANSPARENT_BLUE_VALUE_ARB = 0x2039;
public const int TRANSPARENT_GREEN_VALUE_ARB = 0x2038;
public const int TRANSPARENT_INDEX_VALUE_ARB = 0x203B;
public const int TRANSPARENT_RED_VALUE_ARB = 0x2037;
public const int TYPE_COLORINDEX_ARB = 0x202C;
public const int TYPE_RGBA_ARB = 0x202B;
#endregion
#region context
public const int CONTEXT_MAJOR_VERSION_ARB = 0x2091;
public const int CONTEXT_MINOR_VERSION_ARB = 0x2092;
public const int CONTEXT_LAYER_PLANE_ARB = 0x2093;
public const int CONTEXT_FLAGS_ARB = 0x2094;
public const int CONTEXT_PROFILE_MASK_ARB = 0x9126;
public const int CONTEXT_DEBUG_BIT_ARB = 0x0001;
public const int CONTEXT_FORWARD_COMPATIBLE_BIT_ARB = 0x0002;
public const int CONTEXT_CORE_PROFILE_BIT_ARB = 0x00000001;
public const int CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB = 0x00000002;
public const int ERROR_INVALID_VERSION_ARB = 0x2095;
public const int ERROR_INVALID_PROFILE_ARB = 0x2096;
#endregion
#region
public const uint WS_OVERLAPPED = 0x00000000;
public const uint WS_POPUP = 0x80000000;
public const uint WS_CHILD = 0x40000000;
public const uint WS_MINIMIZE = 0x20000000;
public const uint WS_VISIBLE = 0x10000000;
public const uint WS_DISABLED = 0x08000000;
public const uint WS_CLIPSIBLINGS = 0x04000000;
public const uint WS_CLIPCHILDREN = 0x02000000;
public const uint WS_MAXIMIZE = 0x01000000;
public const uint WS_CAPTION = 0x00C00000; /* WS_BORDER | WS_DLGFRAME */
public const uint WS_BORDER = 0x00800000;
public const uint WS_DLGFRAME = 0x00400000;
public const uint WS_VSCROLL = 0x00200000;
public const uint WS_HSCROLL = 0x00100000;
public const uint WS_SYSMENU = 0x00080000;
public const uint WS_THICKFRAME = 0x00040000;
public const uint WS_GROUP = 0x00020000;
public const uint WS_TABSTOP = 0x00010000;
public const uint WS_MINIMIZEBOX = 0x00020000;
public const uint WS_MAXIMIZEBOX = 0x00010000;
public const uint WS_OVERLAPPEDWINDOW = WS_OVERLAPPED |
WS_CAPTION |
WS_SYSMENU |
WS_THICKFRAME |
WS_MINIMIZEBOX |
WS_MAXIMIZEBOX;
#endregion
}
public readonly partial struct WindowHandle
: IEquatable<WindowHandle>
{
internal readonly IntPtr Value;
internal WindowHandle(IntPtr value) => this.Value = value;
internal static WindowHandle Null => default;
internal bool IsNull => Value == default;
public static explicit operator WindowHandle(IntPtr value) => new WindowHandle(value);
public static implicit operator IntPtr(WindowHandle value) => value.Value;
public static bool operator !=(WindowHandle left, WindowHandle right) => !(left == right);
public static bool operator ==(WindowHandle left, WindowHandle right) => left.Value == right.Value;
public bool Equals(WindowHandle other) => this.Value == other.Value;
public override bool Equals(object obj) => obj is WindowHandle other && this.Equals(other);
public override int GetHashCode() => this.Value.GetHashCode();
public override string ToString() => $"0x{this.Value:x}";
//public static implicit operator HANDLE(WindowHandle value) => new HANDLE(value.Value);
}
[StructLayout(LayoutKind.Sequential)]
public class PixelFormatDescriptor
{
// 定义类的成员变量,使用与 C/C++ 中相同的数据类型
public ushort nSize;
public ushort nVersion;
public uint dwFlags;
[MarshalAs(UnmanagedType.U1)]
public byte iPixelType;
[MarshalAs(UnmanagedType.U1)]
public byte cColorBits;
[MarshalAs(UnmanagedType.U1)]
public byte cRedBits;
[MarshalAs(UnmanagedType.U1)]
public byte cRedShift;
[MarshalAs(UnmanagedType.U1)]
public byte cGreenBits;
[MarshalAs(UnmanagedType.U1)]
public byte cGreenShift;
[MarshalAs(UnmanagedType.U1)]
public byte cBlueBits;
[MarshalAs(UnmanagedType.U1)]
public byte cBlueShift;
[MarshalAs(UnmanagedType.U1)]
public byte cAlphaBits;
[MarshalAs(UnmanagedType.U1)]
public byte cAlphaShift;
[MarshalAs(UnmanagedType.U1)]
public byte cAccumBits;
[MarshalAs(UnmanagedType.U1)]
public byte cAccumRedBits;
[MarshalAs(UnmanagedType.U1)]
public byte cAccumGreenBits;
[MarshalAs(UnmanagedType.U1)]
public byte cAccumBlueBits;
[MarshalAs(UnmanagedType.U1)]
public byte cAccumAlphaBits;
[MarshalAs(UnmanagedType.U1)]
public byte cDepthBits;
[MarshalAs(UnmanagedType.U1)]
public byte cStencilBits;
[MarshalAs(UnmanagedType.U1)]
public byte cAuxBuffers;
[MarshalAs(UnmanagedType.U1)]
public byte iLayerType;
[MarshalAs(UnmanagedType.U1)]
public byte bReserved;
public uint dwLayerMask;
public uint dwVisibleMask;
public uint dwDamageMask;
// 定义一个构造函数,用于设置类的成员变量的默认值
public PixelFormatDescriptor()
{
nSize = (ushort)Marshal.SizeOf(this); // 设置 nSize 为类的大小
nVersion = 1; // 设置 nVersion 为 1
dwFlags = 0; // 设置 dwFlags 为 0
iPixelType = 0; // 设置 iPixelType 为 0
cColorBits = 0; // 设置 cColorBits 为 0
cRedBits = 0; // 设置 cRedBits 为 0
cRedShift = 0; // 设置 cRedShift 为 0
cGreenBits = 0; // 设置 cGreenBits 为 0
cGreenShift = 0; // 设置 cGreenShift 为 0
cBlueBits = 0; // 设置 cBlueBits 为 0
cBlueShift = 0; // 设置 cBlueShift 为 0
cAlphaBits = 0; // 设置 cAlphaBits 为 0
cAlphaShift = 0; // 设置 cAlphaShift 为 0
cAccumBits = 0; // 设置 cAccumBits 为 0
cAccumRedBits = 0; // 设置 cAccumRedBits 为 0
cAccumGreenBits = 0; // 设置 cAccumGreenBits 为 0
cAccumBlueBits = 0; // 设置 cAccumBlueBits 为 0
cAccumAlphaBits = 0; // 设置 cAccumAlphaBits 为 0
cDepthBits = 0; // 设置 cDepthBits 为 0
cStencilBits = 0; // 设置 cStencilBits 为 0
cAuxBuffers = 0; // 设置 cAuxBuffers 为 0
iLayerType = 0; // 设置 iLayerType 为 0
bReserved = 0; // 设置 bReserved 为 0
dwLayerMask = 0; // 设置 dwLayerMask 为 0
dwVisibleMask = 0; // 设置 dwVisibleMask 为 0
dwDamageMask = 0; // 设置 dwDamageMask 为 0
}
}
}
#endif
@@ -0,0 +1,31 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.CompilerServices;
using Windows.Win32.Foundation;
#if Windows
using Microsoft.Win32.SafeHandles;
using Windows.Win32;
using Windows.Win32.Graphics.OpenGL;
using Windows.Win32.Graphics.Gdi;
namespace StgSharp.Envitronment.Win32
{
public class WGL
{
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static GlRenderContextHandle CreateContext(DeviceContextHandle param0)
{
return new(PInvoke.wglCreateContext(new HDC(param0.Value)).Value);
}
}
}
#endif
@@ -0,0 +1,78 @@
using StgSharp.Envitronment.Win32;
using StgSharp.Graphics;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http.Headers;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
#if Windows
#pragma warning disable CA1416
using Windows.Win32.Graphics.Gdi;
using Windows.Win32.Graphics.OpenGL;
namespace StgSharpDebug.Environment
{
public static unsafe class wglEx
{
private static delegate* unmanaged[Stdcall]<HDC, int*, float*, uint, int*, uint*, bool> wglChoosePixelFormatARBpointer;
private static delegate* unmanaged[Stdcall]<HDC, HGLRC, int*, HGLRC> wglCreateContextAttribsARBpointer;
public static unsafe bool glChoosePixelFormatARB(
DeviceContextHandle hdc,
int[] pixelIntAttributeList,
out int piFormats,
out uint piFormatCount)
{
if ((ulong)wglChoosePixelFormatARBpointer < 10)
{
piFormats = 0;
piFormatCount = 0;
return false;
}
pixelIntAttributeList = pixelIntAttributeList.Concat([0]).ToArray();
int pf;
uint nf;
fixed (int* pial = pixelIntAttributeList)
{
bool ret = wglChoosePixelFormatARBpointer(new HDC(hdc.Value), pial, (float*)0, 1, &pf, &nf);
piFormats = pf;
piFormatCount = nf;
return ret;
}
}
public static unsafe GlRenderContextHandle wglCreateContextAttribsARB(
DeviceContextHandle hdc,
GlRenderContextHandle hglrc,
int[] pixelFormat)
{
if ((ulong)wglCreateContextAttribsARBpointer < 10)
{
return default;
}
HGLRC h, h_share = new HGLRC(hglrc.Value);
HDC h_dc = new HDC(hdc.Value);
fixed (int* format = pixelFormat)
{
h = wglCreateContextAttribsARBpointer(h_dc, h_share, format);
return new GlRenderContextHandle(h);
}
}
internal static void LoadWGLex()
{
wglChoosePixelFormatARBpointer = (delegate* unmanaged[Stdcall]<HDC, int*, float*, uint, int*, uint*, bool>)glManager.LoadGLfunc("wglChoosePixelFormatARB");
wglCreateContextAttribsARBpointer = (delegate* unmanaged[Stdcall]<HDC, HGLRC, int*, HGLRC>)glManager.LoadGLfunc("wglCreateContextAttribsARB");
}
}
}
#pragma warning restore CA1416 // 验证平台兼容性
#endif
+38
View File
@@ -0,0 +1,38 @@
WNDCLASSA
AdjustWindowRect
ChoosePixelFormat
CreateWindowEx
DefWindowProc
DescribePixelFormat
DestroyWindow
FreeLibrary
GetDC
GetEnhMetaFilePixelFormat
GetModuleHandle
GetPixelFormat
GetProcAddress
LoadCursor
LoadLibrary
PostQuitMessage
RegisterClass
RegisterClassA
ReleaseDC
SetPixelFormat
SwapBuffers
wglGetProcAddress
wglCreateContext
wglCreateLayerContext
wglCopyContext
wglDeleteContext
wglDescribeLayerPlane
wglGetCurrentContext
wglGetCurrentDC
wglGetLayerPaletteEntries
wglGetProcAddress
wglMakeCurrent
wglRealizeLayerPalette
wglSetLayerPaletteEntries
wglShareLists
wglSwapLayerBuffers
wglUseFontBitmaps
wglUseFontOutlines
+11 -7
View File
@@ -51,7 +51,6 @@ namespace StgSharp
public override void Init(object[] args)
{
InternalIO.InternalWriteLog("\n\n\n", "Program start", LogType.Info);
Platform.InitGL(4, 6);
@@ -64,19 +63,22 @@ namespace StgSharp
(IntPtr id, uint width, uint height)
=>
{
GL.Viewport(0, 0, width, height);
gl.Viewport(0, 0, width, height);
};
this.LoadGLapi(null);
Console.WriteLine(gl);
shader = CreateShaderProgram();
var vertex = CreateShader(ShaderType.Vertex, 1);
var fragment = CreateShader(ShaderType.Fragment, 1);
vertex.Compile(ShaderType.Vertex, File.ReadAllText("Shader\\vertex.vert"));
vertex.Compile(File.ReadAllText("Shader\\vertex.vert"));
vertex.AttachTo(0, shader);
fragment.Compile(ShaderType.Fragment, File.ReadAllText("Shader\\fragment.frag"));
fragment.Compile(File.ReadAllText("Shader\\fragment.frag"));
fragment.AttachTo(0, shader);
Console.WriteLine(vertex);
shader.Link();
Triangle tri = new Triangle(
@@ -100,12 +102,12 @@ namespace StgSharp
-0.7f, -0.5f, 0.0f
);
vao = CreateVertexArray(1);
vbo = CreateVertexBuffer(2);
ebo = CreateElementBuffer(1);
texture = CreateTexture(2);
Console.WriteLine(texture);
float[] texCoord = {
0.0f, 0.0f,
@@ -128,9 +130,12 @@ namespace StgSharp
vao.BindNull();
/**/
Console.WriteLine(vao);
texture.Bind2D(0);
texture.Set2dWrapProperty(Wrap.Repeat, Wrap.Repeat);
texture.Set2dFilterProperty(Filter.Nearest, Filter.Nearest);
Console.WriteLine(texture);
texture.LoadTexture(0, "Shader\\Image1.png", null);
texture.Bind2D(1);
@@ -138,7 +143,6 @@ namespace StgSharp
texture.Set2dFilterProperty(Filter.Nearest, Filter.Nearest);
texture.LoadTexture(1, "Shader\\awesomeface.png", null);
//color = GetUniform<float, float, float>(shader, "color");
shader.Use();
@@ -149,7 +153,7 @@ namespace StgSharp
ourTexture2 = shader.GetUniform<int>("ourTexture2");
gl.SetValue(ourTexture2, 1);
/**/
Console.WriteLine(this);
}
public override void Main(params object[] args)
+55 -25
View File
@@ -12,53 +12,77 @@
<GenerateDocumentationFile>True</GenerateDocumentationFile>
<ErrorReport>prompt</ErrorReport>
<SignAssembly>False</SignAssembly>
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
<ProduceReferenceAssembly>True</ProduceReferenceAssembly>
<PackageLicenseExpression> MIT</PackageLicenseExpression>
<IncludeSymbols>False</IncludeSymbols>
<Platforms>AnyCPU;x64</Platforms>
<BaseOutputPath>$(SolutionDir)Output</BaseOutputPath>
<RunPostBuildEvent>Always</RunPostBuildEvent>
<Configurations>Debug;Release;RealDebug;Benchmark</Configurations>
<Configurations>Debug;Release;RealDebug;Benchmark;Toollist</Configurations>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<Optimize>False</Optimize>
<Optimize>False</Optimize>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Benchmark|AnyCPU'">
<Optimize>False</Optimize>
<Optimize>False</Optimize>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Toollist|AnyCPU'">
<Optimize>False</Optimize>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RealDebug|AnyCPU'">
<Optimize>False</Optimize>
<Optimize>False</Optimize>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Optimize>False</Optimize>
<Optimize>False</Optimize>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Benchmark|x64'">
<Optimize>False</Optimize>
<Optimize>False</Optimize>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Toollist|x64'">
<Optimize>False</Optimize>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RealDebug|x64'">
<Optimize>False</Optimize>
<Optimize>False</Optimize>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<Optimize>False</Optimize>
<Optimize>False</Optimize>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Optimize>False</Optimize>
<Optimize>False</Optimize>
</PropertyGroup>
<PropertyGroup>
<IsWindows Condition="'$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::Windows)))' == 'true'">true</IsWindows>
<IsOSX Condition="'$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::OSX)))' == 'true'">true</IsOSX>
<IsLinux Condition="'$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::Linux)))' == 'true'">true</IsLinux>
</PropertyGroup>
<PropertyGroup Condition="'$(IsWindows)'=='true'">
<DefineConstants>Windows</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition="'$(IsOSX)'=='true'">
<DefineConstants>OSX</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition="'$(IsLinux)'=='true'">
<DefineConstants>Linux</DefineConstants>
</PropertyGroup>
<ItemGroup>
<Compile Remove="Graphics\GL\ShaderEdit\ShaderParameter.cs" />
<Compile Remove="Graphics\GL\ShaderEdit\ShaderParameter.cs" />
</ItemGroup>
<ItemGroup>
<None Remove="SSG_errorlog.log" />
<None Remove="SSG_errorlog.log" />
</ItemGroup>
<ItemGroup>
@@ -66,22 +90,28 @@
</ItemGroup>
<ItemGroup>
<None Update="Shader\awesomeface.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Shader\fragment.frag">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Shader\Image1.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Shader\vertex.vert">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<PackageReference Include="Microsoft.Windows.CsWin32" Version="0.3.49-beta">
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<None Update="Shader\awesomeface.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Shader\fragment.frag">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Shader\Image1.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Shader\vertex.vert">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
<Target Name="PostBuild" AfterTargets="PostBuildEvent">
<Exec Command="copy $(SolutionDir)StgSharpC.dll $(OutDir)StgSharpC.dll" />
<Exec Command="copy $(SolutionDir)StgSharpC.dll $(OutDir)StgSharpC.dll" />
</Target>
</Project>
@@ -1 +1 @@
c240d4b9dd7134ccd2554a8eb3a5407fd9a8d4f8
c10be108f46b065c19ec8e7bfe96ea5af08b76ca6ab3228bd84f4f2d953e88a9
@@ -9,3 +9,5 @@ build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = StgSharpDebug
build_property.ProjectDir = D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =
@@ -44,6 +44,13 @@
"frameworks": {
"net6.0": {
"targetAlias": "net6.0",
"dependencies": {
"Microsoft.Windows.CsWin32": {
"suppressParent": "All",
"target": "Package",
"version": "[0.3.49-beta, )"
}
},
"imports": [
"net461",
"net462",
@@ -13,4 +13,13 @@
<SourceRoot Include="C:\Users\Nitlo\.nuget\packages\" />
<SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" />
</ItemGroup>
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<Import Project="$(NuGetPackageRoot)microsoft.windows.sdk.win32metadata\55.0.45-preview\buildTransitive\netstandard1.0\Microsoft.Windows.SDK.Win32Metadata.props" Condition="Exists('$(NuGetPackageRoot)microsoft.windows.sdk.win32metadata\55.0.45-preview\buildTransitive\netstandard1.0\Microsoft.Windows.SDK.Win32Metadata.props')" />
<Import Project="$(NuGetPackageRoot)microsoft.windows.wdk.win32metadata\0.9.9-experimental\buildTransitive\netstandard1.0\Microsoft.Windows.WDK.Win32Metadata.props" Condition="Exists('$(NuGetPackageRoot)microsoft.windows.wdk.win32metadata\0.9.9-experimental\buildTransitive\netstandard1.0\Microsoft.Windows.WDK.Win32Metadata.props')" />
<Import Project="$(NuGetPackageRoot)microsoft.windows.sdk.win32docs\0.1.42-alpha\buildTransitive\netstandard1.0\Microsoft.Windows.SDK.Win32Docs.props" Condition="Exists('$(NuGetPackageRoot)microsoft.windows.sdk.win32docs\0.1.42-alpha\buildTransitive\netstandard1.0\Microsoft.Windows.SDK.Win32Docs.props')" />
<Import Project="$(NuGetPackageRoot)microsoft.windows.cswin32\0.3.49-beta\build\netstandard1.0\Microsoft.Windows.CsWin32.props" Condition="Exists('$(NuGetPackageRoot)microsoft.windows.cswin32\0.3.49-beta\build\netstandard1.0\Microsoft.Windows.CsWin32.props')" />
</ImportGroup>
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<PkgMicrosoft_Windows_CsWin32 Condition=" '$(PkgMicrosoft_Windows_CsWin32)' == '' ">C:\Users\Nitlo\.nuget\packages\microsoft.windows.cswin32\0.3.49-beta</PkgMicrosoft_Windows_CsWin32>
</PropertyGroup>
</Project>
+216 -3
View File
@@ -1,11 +1,217 @@
{
"version": 3,
"targets": {
"net6.0": {}
"net6.0": {
"Microsoft.Windows.CsWin32/0.3.49-beta": {
"type": "package",
"dependencies": {
"Microsoft.Windows.SDK.Win32Docs": "0.1.42-alpha",
"Microsoft.Windows.SDK.Win32Metadata": "55.0.45-preview",
"Microsoft.Windows.WDK.Win32Metadata": "0.9.9-experimental",
"System.Memory": "4.5.5",
"System.Runtime.CompilerServices.Unsafe": "6.0.0"
},
"build": {
"build/netstandard1.0/Microsoft.Windows.CsWin32.props": {}
}
},
"Microsoft.Windows.SDK.Win32Docs/0.1.42-alpha": {
"type": "package",
"compile": {
"lib/netstandard2.0/_._": {
"related": ".xml"
}
},
"runtime": {
"lib/netstandard2.0/_._": {
"related": ".xml"
}
},
"build": {
"buildTransitive/netstandard1.0/Microsoft.Windows.SDK.Win32Docs.props": {}
}
},
"Microsoft.Windows.SDK.Win32Metadata/55.0.45-preview": {
"type": "package",
"build": {
"buildTransitive/netstandard1.0/Microsoft.Windows.SDK.Win32Metadata.props": {}
}
},
"Microsoft.Windows.WDK.Win32Metadata/0.9.9-experimental": {
"type": "package",
"dependencies": {
"Microsoft.Windows.SDK.Win32Metadata": "55.0.45-preview"
},
"build": {
"buildTransitive/netstandard1.0/Microsoft.Windows.WDK.Win32Metadata.props": {}
}
},
"System.Memory/4.5.5": {
"type": "package",
"compile": {
"ref/netcoreapp2.1/_._": {}
},
"runtime": {
"lib/netcoreapp2.1/_._": {}
}
},
"System.Runtime.CompilerServices.Unsafe/6.0.0": {
"type": "package",
"compile": {
"lib/net6.0/System.Runtime.CompilerServices.Unsafe.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net6.0/System.Runtime.CompilerServices.Unsafe.dll": {
"related": ".xml"
}
},
"build": {
"buildTransitive/netcoreapp3.1/_._": {}
}
}
}
},
"libraries": {
"Microsoft.Windows.CsWin32/0.3.49-beta": {
"sha512": "/iAXplVDKESFyLz/MShuVYVx62YFvFePpq3qrzREl8KScQqG6Z2kV7r9UJTjQS1g+hfy3V+e4m1x9lsu24YNSg==",
"type": "package",
"path": "microsoft.windows.cswin32/0.3.49-beta",
"hasTools": true,
"files": [
".nupkg.metadata",
".signature.p7s",
"NOTICE.txt",
"README.md",
"analyzers/cs/MessagePack.Annotations.dll",
"analyzers/cs/MessagePack.dll",
"analyzers/cs/Microsoft.Bcl.AsyncInterfaces.dll",
"analyzers/cs/Microsoft.Windows.CsWin32.dll",
"analyzers/cs/Microsoft.Windows.SDK.Win32Docs.dll",
"analyzers/cs/System.Text.Encodings.Web.dll",
"analyzers/cs/System.Text.Json.dll",
"build/Microsoft.Windows.CsWin32.props",
"build/net20/Microsoft.Windows.CsWin32.props",
"build/netstandard1.0/Microsoft.Windows.CsWin32.props",
"microsoft.windows.cswin32.0.3.49-beta.nupkg.sha512",
"microsoft.windows.cswin32.nuspec",
"readme.txt",
"tools/install.ps1",
"tools/uninstall.ps1"
]
},
"Microsoft.Windows.SDK.Win32Docs/0.1.42-alpha": {
"sha512": "Z/9po23gUA9aoukirh2ItMU2ZS9++Js9Gdds9fu5yuMojDrmArvY2y+tq9985tR3cxFxpZO1O35Wjfo0khj5HA==",
"type": "package",
"path": "microsoft.windows.sdk.win32docs/0.1.42-alpha",
"files": [
".nupkg.metadata",
".signature.p7s",
"apidocs.msgpack",
"buildTransitive/Microsoft.Windows.SDK.Win32Docs.props",
"buildTransitive/net20/Microsoft.Windows.SDK.Win32Docs.props",
"buildTransitive/netstandard1.0/Microsoft.Windows.SDK.Win32Docs.props",
"images/windows.png",
"lib/netstandard2.0/Microsoft.Windows.SDK.Win32Docs.dll",
"lib/netstandard2.0/Microsoft.Windows.SDK.Win32Docs.xml",
"microsoft.windows.sdk.win32docs.0.1.42-alpha.nupkg.sha512",
"microsoft.windows.sdk.win32docs.nuspec"
]
},
"Microsoft.Windows.SDK.Win32Metadata/55.0.45-preview": {
"sha512": "2i1kVIk8rMuMCYtoeYeWbmCRLqNgb63Berac3Gv+J/pjp0oucopasKgLQNslryhsgBl4xex9ENhJX2MXEW5vdA==",
"type": "package",
"path": "microsoft.windows.sdk.win32metadata/55.0.45-preview",
"files": [
".nupkg.metadata",
".signature.p7s",
"Windows.Win32.winmd",
"build/Microsoft.Windows.SDK.Win32Metadata.props",
"build/net20/Microsoft.Windows.SDK.Win32Metadata.props",
"build/netstandard1.0/Microsoft.Windows.SDK.Win32Metadata.props",
"buildTransitive/Microsoft.Windows.SDK.Win32Metadata.props",
"buildTransitive/net20/Microsoft.Windows.SDK.Win32Metadata.props",
"buildTransitive/netstandard1.0/Microsoft.Windows.SDK.Win32Metadata.props",
"images/windows.png",
"microsoft.windows.sdk.win32metadata.55.0.45-preview.nupkg.sha512",
"microsoft.windows.sdk.win32metadata.nuspec",
"sdk_license.txt"
]
},
"Microsoft.Windows.WDK.Win32Metadata/0.9.9-experimental": {
"sha512": "cncPlxLqR25mFOuvpxZPgXgJqRmXyV5eTULj/9w8AQvO/c1xJDEapohRsWkYaia7hCR/EwEzBHr7RU9u93T03w==",
"type": "package",
"path": "microsoft.windows.wdk.win32metadata/0.9.9-experimental",
"files": [
".nupkg.metadata",
".signature.p7s",
"Windows.Wdk.winmd",
"build/Microsoft.Windows.WDK.Win32Metadata.props",
"build/net20/Microsoft.Windows.WDK.Win32Metadata.props",
"build/netstandard1.0/Microsoft.Windows.WDK.Win32Metadata.props",
"buildTransitive/Microsoft.Windows.WDK.Win32Metadata.props",
"buildTransitive/net20/Microsoft.Windows.WDK.Win32Metadata.props",
"buildTransitive/netstandard1.0/Microsoft.Windows.WDK.Win32Metadata.props",
"images/windows.png",
"microsoft.windows.wdk.win32metadata.0.9.9-experimental.nupkg.sha512",
"microsoft.windows.wdk.win32metadata.nuspec",
"sdk_license.txt"
]
},
"System.Memory/4.5.5": {
"sha512": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==",
"type": "package",
"path": "system.memory/4.5.5",
"files": [
".nupkg.metadata",
".signature.p7s",
"LICENSE.TXT",
"THIRD-PARTY-NOTICES.TXT",
"lib/net461/System.Memory.dll",
"lib/net461/System.Memory.xml",
"lib/netcoreapp2.1/_._",
"lib/netstandard1.1/System.Memory.dll",
"lib/netstandard1.1/System.Memory.xml",
"lib/netstandard2.0/System.Memory.dll",
"lib/netstandard2.0/System.Memory.xml",
"ref/netcoreapp2.1/_._",
"system.memory.4.5.5.nupkg.sha512",
"system.memory.nuspec",
"useSharedDesignerContext.txt",
"version.txt"
]
},
"System.Runtime.CompilerServices.Unsafe/6.0.0": {
"sha512": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==",
"type": "package",
"path": "system.runtime.compilerservices.unsafe/6.0.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"Icon.png",
"LICENSE.TXT",
"THIRD-PARTY-NOTICES.TXT",
"buildTransitive/netcoreapp2.0/System.Runtime.CompilerServices.Unsafe.targets",
"buildTransitive/netcoreapp3.1/_._",
"lib/net461/System.Runtime.CompilerServices.Unsafe.dll",
"lib/net461/System.Runtime.CompilerServices.Unsafe.xml",
"lib/net6.0/System.Runtime.CompilerServices.Unsafe.dll",
"lib/net6.0/System.Runtime.CompilerServices.Unsafe.xml",
"lib/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.dll",
"lib/netcoreapp3.1/System.Runtime.CompilerServices.Unsafe.xml",
"lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll",
"lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.xml",
"system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512",
"system.runtime.compilerservices.unsafe.nuspec",
"useSharedDesignerContext.txt"
]
}
},
"libraries": {},
"projectFileDependencyGroups": {
"net6.0": []
"net6.0": [
"Microsoft.Windows.CsWin32 >= 0.3.49-beta"
]
},
"packageFolders": {
"C:\\Users\\Nitlo\\.nuget\\packages\\": {},
@@ -51,6 +257,13 @@
"frameworks": {
"net6.0": {
"targetAlias": "net6.0",
"dependencies": {
"Microsoft.Windows.CsWin32": {
"suppressParent": "All",
"target": "Package",
"version": "[0.3.49-beta, )"
}
},
"imports": [
"net461",
"net462",
@@ -1,8 +1,15 @@
{
"version": 2,
"dgSpecHash": "1nqa9hyE9X+jqyZlRuQCjBTL8MKTTgUfYf2sfonyHllnRQAA71O6a8K8DrjOqAQvuEaLDdfS/m1mxyfRDQg0zg==",
"dgSpecHash": "84WrCu/hdh50wiBeP0zSAmXlJSxVZVcbmMrOYOkm8tQy5/+Tjvf2Dpa+41PoFKcm7+EFWGE+qB480ApAKjKwfg==",
"success": true,
"projectFilePath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\源代码\\StgSharpDebug\\StgSharpDebug.csproj",
"expectedPackageFiles": [],
"expectedPackageFiles": [
"C:\\Users\\Nitlo\\.nuget\\packages\\microsoft.windows.cswin32\\0.3.49-beta\\microsoft.windows.cswin32.0.3.49-beta.nupkg.sha512",
"C:\\Users\\Nitlo\\.nuget\\packages\\microsoft.windows.sdk.win32docs\\0.1.42-alpha\\microsoft.windows.sdk.win32docs.0.1.42-alpha.nupkg.sha512",
"C:\\Users\\Nitlo\\.nuget\\packages\\microsoft.windows.sdk.win32metadata\\55.0.45-preview\\microsoft.windows.sdk.win32metadata.55.0.45-preview.nupkg.sha512",
"C:\\Users\\Nitlo\\.nuget\\packages\\microsoft.windows.wdk.win32metadata\\0.9.9-experimental\\microsoft.windows.wdk.win32metadata.0.9.9-experimental.nupkg.sha512",
"C:\\Users\\Nitlo\\.nuget\\packages\\system.memory\\4.5.5\\system.memory.4.5.5.nupkg.sha512",
"C:\\Users\\Nitlo\\.nuget\\packages\\system.runtime.compilerservices.unsafe\\6.0.0\\system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512"
],
"logs": []
}
@@ -14,7 +14,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("StgSharpDebug")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Benchmark")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+6fe6b3b3cf0f9c3e9661a85bbe9b084eae6439cd")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("StgSharpDebug")]
[assembly: System.Reflection.AssemblyTitleAttribute("StgSharpDebug")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
@@ -1 +1 @@
48dfbe97284dd3ebda2da46302a4529fe78a17c51349d96e6c0652ee5a8bf5f0
e340c06b75b4a2ce53efde5f4632c7a375a08a6b1987e3663da0e443a4eb16a3
@@ -1,4 +1,6 @@
is_global = true
build_property.CsWin32InputMetadataPaths = C:\Users\Nitlo\.nuget\packages\microsoft.windows.sdk.win32metadata\55.0.45-preview\Windows.Win32.winmd|C:\Users\Nitlo\.nuget\packages\microsoft.windows.wdk.win32metadata\0.9.9-experimental\Windows.Wdk.winmd
build_property.CsWin32InputDocPaths = C:\Users\Nitlo\.nuget\packages\microsoft.windows.sdk.win32docs\0.1.42-alpha\apidocs.msgpack
build_property.TargetFramework = net6.0
build_property.TargetPlatformMinVersion =
build_property.UsingMicrosoftNETSdkWeb =
@@ -1 +1 @@
b0555e8bc2f4cecb5b9bba733e29ea69c5f126238a90078e0acf358b82ccc732
b7447d9f42f748768ec2587b88b8ed4bce54f8745553420be3c862e6a856c127
@@ -7,8 +7,24 @@ D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharp
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\bin\x64\Debug\net6.0\StgSharpDebug.dll
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\bin\x64\Debug\net6.0\StgSharpDebug.pdb
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\bin\x64\Debug\net6.0\StgSharpDebug.xml
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\Output\x64\Debug\net6.0\StgSharpDebug.exe
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\Output\x64\Debug\net6.0\Shader\awesomeface.png
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\Output\x64\Debug\net6.0\Shader\fragment.frag
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\Output\x64\Debug\net6.0\Shader\Image1.png
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\Output\x64\Debug\net6.0\Shader\vertex.vert
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\Output\x64\Debug\net6.0\StgSharpDebug.deps.json
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\Output\x64\Debug\net6.0\StgSharpDebug.runtimeconfig.json
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\Output\x64\Debug\net6.0\StgSharpDebug.dll
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\Output\x64\Debug\net6.0\StgSharpDebug.pdb
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\Output\x64\Debug\net6.0\StgSharpDebug.xml
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\obj\x64\Debug\net6.0\StgSharpDebug.GeneratedMSBuildEditorConfig.editorconfig
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\obj\x64\Debug\net6.0\StgSharpDebug.AssemblyInfoInputs.cache
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\obj\x64\Debug\net6.0\StgSharpDebug.AssemblyInfo.cs
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\obj\x64\Debug\net6.0\StgSharpDebug.csproj.CoreCompileInputs.cache
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\obj\x64\Debug\net6.0\StgSharpDebug.sourcelink.json
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\obj\x64\Debug\net6.0\StgSharpDebug.dll
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\obj\x64\Debug\net6.0\refint\StgSharpDebug.dll
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\obj\x64\Debug\net6.0\StgSharpDebug.xml
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\obj\x64\Debug\net6.0\StgSharpDebug.pdb
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\obj\x64\Debug\net6.0\StgSharpDebug.genruntimeconfig.cache
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\obj\x64\Debug\net6.0\ref\StgSharpDebug.dll
@@ -0,0 +1 @@
ea0ebfd1cd59c5700d207915aa4401613d3e32652ccbcca32e347ba391485f3e
@@ -1 +1 @@
{"documents":{"D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\*":"https://raw.githubusercontent.com/Nitload-NSI/CCD_Github/5d778e0f2f6e677453cebc990919697968c771f9/*"}}
{"documents":{"D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\*":"https://raw.githubusercontent.com/Nitload-NSI/CCD_Github/839156948261837c173ee878d930fc868fce223e/*"}}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v6.0", FrameworkDisplayName = ".NET 6.0")]
@@ -0,0 +1,23 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("StgSharpDebug")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Toollist")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("StgSharpDebug")]
[assembly: System.Reflection.AssemblyTitleAttribute("StgSharpDebug")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// 由 MSBuild WriteCodeFragment 类生成。
@@ -0,0 +1 @@
748a1506c2c3b3b7311a192ec610044c32c289a5d7f16314d591589d297d061c
@@ -0,0 +1,13 @@
is_global = true
build_property.TargetFramework = net6.0
build_property.TargetPlatformMinVersion =
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = StgSharpDebug
build_property.ProjectDir = D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =
@@ -0,0 +1,8 @@
// <auto-generated/>
global using global::System;
global using global::System.Collections.Generic;
global using global::System.IO;
global using global::System.Linq;
global using global::System.Net.Http;
global using global::System.Threading;
global using global::System.Threading.Tasks;