daily update on 2024.03.18 by itload youmu

This commit is contained in:
YoumuLiu
2024-03-19 02:41:04 +08:00
parent 15bf989285
commit 0c50c6282e
200 changed files with 7663 additions and 3455 deletions
@@ -1,4 +1,34 @@
using System;
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
// file="GlobalSetting.cs"
// Project: StgSharp
// AuthorGroup: Nitload Space
// Copyright (c) Nitload Space. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation
// files (the “Software”), to deal in the Software without restriction,
// including without limitation the rights to use, copy, modify, merge,
// publish, distribute, sublicense, and/or sell copies of the Software,
// and to permit persons to whom the Software is furnished to do so,
// subject to the following conditions:
//
// The above copyright notice and
// this permission notice shall be included in all copies
// or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED “AS IS”,
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
@@ -9,6 +39,7 @@ namespace StgSharp
{
public static unsafe partial class StgSharp
{
/// <summary>
/// Init an instance of OpenGL program,
/// This method should be called before any other StgSharp api.
@@ -28,17 +59,20 @@ namespace StgSharp
public static class GlobalSetting
{
private static bool vSyncActivated;
public static bool VSyncActivated
{
get { return vsyncActivated; }
get => vsyncActivated;
set
{
InternalIO.glfwSwapInterval(value ? 1 : 0);
vsyncActivated = value;
}
}
}
}
}
+69 -37
View File
@@ -1,4 +1,34 @@
// using StgSharp.Envitronment;
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
// file="Platform.cs"
// Project: StgSharp
// AuthorGroup: Nitload Space
// Copyright (c) Nitload Space. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation
// files (the “Software”), to deal in the Software without restriction,
// including without limitation the rights to use, copy, modify, merge,
// publish, distribute, sublicense, and/or sell copies of the Software,
// and to permit persons to whom the Software is furnished to do so,
// subject to the following conditions:
//
// The above copyright notice and
// this permission notice shall be included in all copies
// or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED “AS IS”,
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
// using StgSharp.Envitronment;
// using StgSharp.Envitronment.Win32;
// using StgSharp.Graphics;
// using StgSharp.Math;
@@ -36,9 +66,17 @@ namespace StgSharp
public static partial class StgSharp
{
internal static GraphicAPI API = default;
private static bool vsyncActivated;
/// <summary>
/// Version of current StgSharp platform.
/// Main version represent in hundred's digit,
/// and sub version represent in ten's digit.
/// </summary>
public const long version = 430;
private static uint markCount = 0;
private static bool vsyncActivated;
internal static GraphicAPI API = default;
public static void Mark(bool needConsole)
{
@@ -49,12 +87,34 @@ namespace StgSharp
}
}
/// <summary>
/// Version of current StgSharp platform.
/// Main version represent in hundred's digit,
/// and sub version represent in ten's digit.
/// </summary>
public const long version = 430;
public static void Track(
object target,
string message,
bool isConsole,
[CallerFilePath] string filePath = "",
[CallerMemberName] string callerName = "",
[CallerLineNumber] int lineNumber = 0
)
{
Type t = target.GetType();
string log = $"Tracked object: {nameof(target)}\t\tType:{t.Name}\n";
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";
if (isConsole)
{
Console.WriteLine(log);
}
else
{
InternalIO.InternalWriteLog(log, LogType.Info);
}
}
/// <summary>
/// Write a log message to log file, and mark the level of this message.
@@ -99,33 +159,5 @@ namespace StgSharp
}
}
public static void Track(
object target,
string message,
bool isConsole,
[CallerFilePath] string filePath = "",
[CallerMemberName] string callerName = "",
[CallerLineNumber] int lineNumber = 0
)
{
Type t = target.GetType();
string log = $"Tracked object: {nameof(target)}\t\tType:{t.Name}\n";
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";
if (isConsole)
{
Console.WriteLine(log);
}
else
{
InternalIO.InternalWriteLog(log, LogType.Info);
}
}
}
}
@@ -1,79 +0,0 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace StgSharp
{
public static partial class StgSharp
{
private static Stopwatch mainProvider = new Stopwatch();
private static List<TimeProvider> subscriberList = new List<TimeProvider>();
private static Thread timeProvideThread;
private static long accuracy;
private static void ProvideTime()
{
long totalMS, previousFrameMS = 0,
internalFrequncy = Stopwatch.Frequency;
lock (mainProvider)
{
mainProvider.Restart();
}
while (mainProvider.IsRunning)
{
totalMS = mainProvider.ElapsedTicks / (internalFrequncy / (1000L * 1000L));
foreach (TimeProvider subscriber in subscriberList)
{
subscriber.CheckTime(totalMS);
}
}
}
[MethodImpl(MethodImplOptions.NoOptimization)]
public static void TimerActivate(int maxFrameUpdateSensitiveTimeProviderCount)
{
if (!mainProvider.IsRunning)
{
mainProvider.Start();
//speed test
long totalMS, previousSecondMS = 0,
internalFrequncy = Stopwatch.Frequency;
for (int i = 0; i < 100; i++)
{
totalMS = mainProvider.ElapsedTicks / (internalFrequncy / (1000L * 1000L));
for (int t = 0; t < 10; t++)
{
if (totalMS < 1000)
{
subscriberList.Add(new TimeProvider(100L));
}
}
}
mainProvider.Stop();
subscriberList.Clear();
totalMS = (mainProvider.ElapsedTicks / (internalFrequncy / (1000L * 1000L))) / 100L;
accuracy = totalMS * 2 / 3;
mainProvider.Reset();
timeProvideThread = new Thread(new ThreadStart(ProvideTime));
timeProvideThread.Start();
}
}
public static void SubscribeTimeProvider(TimeProvider provider)
{
}
public static void TimerDeactivate()
{
lock (mainProvider)
{
mainProvider.Stop();
}
}
}
}
@@ -0,0 +1,129 @@
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
// file="TimeProvider.cs"
// Project: StgSharp
// AuthorGroup: Nitload Space
// Copyright (c) Nitload Space. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation
// files (the “Software”), to deal in the Software without restriction,
// including without limitation the rights to use, copy, modify, merge,
// publish, distribute, sublicense, and/or sell copies of the Software,
// and to permit persons to whom the Software is furnished to do so,
// subject to the following conditions:
//
// The above copyright notice and
// this permission notice shall be included in all copies
// or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED “AS IS”,
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
using StgSharpDebug.Logic;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Threading;
namespace StgSharp
{
public partial class StgSharp
{
internal static StgSharpTime mainTimeProvider;
}
public sealed class StgSharpTime : TimeSourceProviderBase
{
private static long accuracy;
private static Stopwatch mainProvider = new Stopwatch();
private static List<TimeSpanProvider> subscriberList = new List<TimeSpanProvider>();
private static Thread timeProvideThread;
internal StgSharpTime()
{
}
public static StgSharpTime OnlyInstance
=> StgSharp.mainTimeProvider;
public override sealed void StartProvidingTime()
{
if (mainProvider.IsRunning)
{
return;
}
mainProvider.Start();
//speed test
long totalMS, internalFrequncy = Stopwatch.Frequency;
for (int i = 0; i < 100; i++)
{
totalMS = mainProvider.ElapsedTicks / (internalFrequncy / (1000L * 1000L));
for (int t = 0; t < 10; t++)
{
if (totalMS < 1000)
{
subscriberList.Add(new TimeSpanProvider(100L, TimeSpanProvider.DefaultProvider));
}
}
}
mainProvider.Stop();
subscriberList.Clear();
totalMS = mainProvider.ElapsedTicks / (internalFrequncy / (1000L * 1000L)) / 100L;
accuracy = (totalMS * 2) / 3;
mainProvider.Reset();
timeProvideThread = new Thread(new ThreadStart(ProvideTime));
timeProvideThread.Start();
}
[MethodImpl(MethodImplOptions.NoOptimization)]
public static void TimerActivate(int maxFrameUpdateSensitiveTimeProviderCount)
{
}
protected override sealed void AddSubscriberUnsynced(TimeSpanProvider subscriber)
{
subscriberList.Add(subscriber);
}
protected override sealed void RemoveSubscriberUnsynced(TimeSpanProvider subscriber)
{
subscriberList.Remove(subscriber);
}
private void ProvideTime()
{
long totalMS, internalFrequncy = Stopwatch.Frequency;
lock (mainProvider)
{
mainProvider.Restart();
}
while (mainProvider.IsRunning)
{
totalMS = mainProvider.ElapsedTicks / (internalFrequncy / (1000L * 1000L));
foreach (TimeSpanProvider subscriber in subscriberList)
{
if (subscriber.CheckTime(totalMS))
{
};
}
}
}
}
}
+6 -16
View File
@@ -1,17 +1,8 @@
//using StgSharp.Envitronment.Win32;
using StgSharp.Geometries;
using StgSharp.Graphics;
using StgSharp.Logic;
using StgSharp.Math;
using StgSharp.Math.Linear;
using System;
using System.Collections.Concurrent;
using System.Diagnostics;
using System.IO;
using System.Numerics;
using System.Runtime.InteropServices;
using System.Text;
namespace StgSharp
{
@@ -28,10 +19,10 @@ namespace StgSharp
public static unsafe void ProcessInput(IntPtr windowPtr)
{
if (InternalIO.glfwGetKey(windowPtr, (int)Operation.Key.ESCAPE)
if (InternalIO.glfwGetKey((GLFWwindow*)windowPtr, (int)Operation.Key.ESCAPE)
== KeyStatus.PRESS)
{
InternalIO.glfwSetWindowShouldClose(windowPtr, 1);
InternalIO.glfwSetWindowShouldClose((GLFWwindow*)windowPtr, 1);
}
}
@@ -55,7 +46,7 @@ namespace StgSharp
{
InternalIO.InternalWriteLog("\n\n\n", "Program start", LogType.Info);
SetRenderThreads(2);
SetRenderThreads(1);
SetMetadata(800, 600, "Hello, STG#!", IntPtr.Zero, null);
MakeAsCurrentContext();
@@ -145,7 +136,7 @@ namespace StgSharp
public override void Main(params object[] args)
{
ProcessInput(windowID);
ProcessInput(WindowID);
gl.ClearColor(0.333f, 0.555f, 0.555f, 1.0f);
//GL.api.Clear(GLconst.COLOR_BUFFER_BIT);
@@ -162,9 +153,10 @@ namespace StgSharp
/**/
float time = (float)InternalIO.glfwGetTime();
gl.SetValue(color,
0.5f + MathF.Sin(time),
0.5f + MathF.Sin(time/* + 0.667f * 3.14f/**/),
0.5f + MathF.Sin(time * 0.1f),
0.5f + MathF.Sin(time/* - 0.667f * 3.14f/**/)
);
@@ -174,8 +166,6 @@ namespace StgSharp
vao.BindNull();
SwapBuffers();
PollEvents();
}
}
+1 -1
View File
@@ -12,6 +12,6 @@ void main()
{
vec4 tex1 = texture(ourTexture, TexCoord);
vec4 tex2 = texture(ourTexture2,TexCoord);
FragColor = mix(tex1,tex2,0.2) /**/ *vec4( TexColor,1.0) /**/;
FragColor = mix(tex1 * vec4( TexColor,1.0),tex2,0.2) /* *vec4( TexColor,1.0) /**/;
}
@@ -14,7 +14,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("StgSharpDebug")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+a770bbe68567b43385bb30c9c86eb80e5b1e23e8")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+15bf989285b01c5617b5f5612667e0da6a2b1781")]
[assembly: System.Reflection.AssemblyProductAttribute("StgSharpDebug")]
[assembly: System.Reflection.AssemblyTitleAttribute("StgSharpDebug")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
@@ -1 +1 @@
a30a9fd1462f450229b650c6f00eadf2b5bbe11b75c90e2b6d0f6e8aab7ab56e
3aa7da67b6813f3947d097a5f157a32e0cc91617596bb9e7a8770735ee78e02b
@@ -1 +1 @@
d0739f6dcc2b7c56b30c8bf5da3b96332ce6e8031f525daae9acdf819b2e29b3
c392364d0fdf9f80d34fdb655daec7662e4a9944698e668e912c170812c83950
@@ -1 +1 @@
{"documents":{"D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\*":"https://raw.githubusercontent.com/Nitload-NSI/CCD_Github/a770bbe68567b43385bb30c9c86eb80e5b1e23e8/*"}}
{"documents":{"D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\*":"https://raw.githubusercontent.com/Nitload-NSI/CCD_Github/15bf989285b01c5617b5f5612667e0da6a2b1781/*"}}
@@ -26,7 +26,8 @@
</member>
<member name="P:StgSharp.Graphics.Form.GL">
<summary>
OpenGL package used by current form context.
OpenGL package binded to current form context.
A OpenGL context is only binded to current form.
</summary>
</member>
<member name="P:StgSharp.Graphics.Form.Height">
@@ -51,24 +52,18 @@
</member>
<member name="M:StgSharp.Graphics.Form.MakeAsCurrentContext">
<summary>
Init an OpenGl context if current form has not been binded to any context.
and set the context binded to current form as current OpenGL context.
Init an OpenGl context if current form has not been binded to any context. and set the context binded to
current form as current OpenGL context.
</summary>
<exception cref="T:System.Exception">Something goes wrong and
StgSharp fails in creating a new OpenGL context. </exception>
<exception cref="T:System.Exception">
Something goes wrong and StgSharp fails in creating a new OpenGL context.
</exception>
</member>
<member name="M:StgSharp.Graphics.Form.SetMetadata(System.Int32,System.Int32,System.String,System.IntPtr,StgSharp.Graphics.Form)">
<summary>
Set all necessary metadata to current form instance
</summary>
</member>
<member name="M:StgSharp.Graphics.Form.SetSize(System.Int32,System.Int32)">
<summary>
Resize the current form
</summary>
<param name="width">New width of the window</param>
<param name="height">New height of the window</param>
</member>
<member name="M:StgSharp.Graphics.Form.SetSize(StgSharp.Math.Vec2d)">
<summary>
Resize the current form
@@ -77,14 +72,12 @@
A <see cref="T:StgSharp.Math.Vec2d"/> (width,height) representing the new size of current form
</param>
</member>
<member name="M:StgSharp.Graphics.Form.SetSizeLimit(System.Int32,System.Int32,System.Int32,System.Int32)">
<member name="M:StgSharp.Graphics.Form.SetSize(System.Int32,System.Int32)">
<summary>
Set the size limit of current form
Resize the current form
</summary>
<param name="minWidth">Minimum width of current form </param>
<param name="minHeight">Minimum height of current form</param>
<param name="maxWidth">Maximum width of curent form</param>
<param name="maxHeight">Maximum height of current form</param>
<param name="width">New width of the window</param>
<param name="height">New height of the window</param>
</member>
<member name="M:StgSharp.Graphics.Form.SetSizeLimit(StgSharp.Math.Vec2d,StgSharp.Math.Vec2d)">
<summary>
@@ -97,6 +90,15 @@
Maximum size of current form. In form of a <see cref="T:StgSharp.Math.Vec2d"/> of (width,height)
</param>
</member>
<member name="M:StgSharp.Graphics.Form.SetSizeLimit(System.Int32,System.Int32,System.Int32,System.Int32)">
<summary>
Set the size limit of current form
</summary>
<param name="minWidth">Minimum width of current form</param>
<param name="minHeight">Minimum height of current form</param>
<param name="maxWidth">Maximum width of curent form</param>
<param name="maxHeight">Maximum height of current form</param>
</member>
<member name="M:StgSharp.Graphics.Form.Init(System.Object[])">
<summary>
Necessary operation to init this form.
@@ -105,8 +107,7 @@
</member>
<member name="M:StgSharp.Graphics.Form.Main(System.Object[])">
<summary>
Behaviour of current form when in a render cycle.
When this form
Behaviour of current form when in a render cycle. When this form
</summary>
<param name="args"></param>
</member>
@@ -119,7 +120,7 @@
<summary>
Get OpenGL library of this form's context.
</summary>
<returns>A <see cref="T:StgSharp.Graphics.IglFunc"/> package contains all opengl APIs </returns>
<returns>A <see cref="T:StgSharp.Graphics.IglFunc"/> package contains all opengl APIs</returns>
</member>
<member name="M:StgSharp.Graphics.Form.SetRenderThreads(System.Int32)">
<summary>
@@ -163,23 +164,6 @@
</summary>
<returns>New instance of <see cref="T:StgSharp.Graphics.Shader"/> instance. </returns>
</member>
<member name="T:StgSharp.Graphics.FrameTimer">
<summary>
A timer counting frames after its construction.
</summary>
</member>
<member name="P:StgSharp.Graphics.FrameTimer.Time">
<summary>
Frames after this timer created.
</summary>
</member>
<member name="M:StgSharp.Graphics.FrameTimer.op_Implicit(StgSharp.Graphics.FrameTimer)~System.UInt32">
<summary>
Convert a <see cref="T:StgSharp.Graphics.FrameTimer"/> into uint value.
this will get total frames since the timer was created.
</summary>
<param name="timer"><see cref="T:StgSharp.Graphics.FrameTimer"/> to be converted</param>
</member>
<member name="T:StgSharp.Graphics.BufferObjectBase">
<summary>
Interface of all kinds OpenGL buffer onjects
@@ -611,21 +595,20 @@
Y position of an enemy entity
</summary>
</member>
<member name="F:StgSharp.Platform.version">
<member name="M:StgSharp.StgSharp.InitGL(System.Int32,System.Int32)">
<summary>
Init an instance of OpenGL program,
This method should be called before any other StgSharp api.
</summary>
</member>
<member name="F:StgSharp.StgSharp.version">
<summary>
Version of current StgSharp platform.
Main version represent in hundred's digit,
and sub version represent in ten's digit.
</summary>
</member>
<member name="M:StgSharp.Platform.InitGL(System.Int32,System.Int32)">
<summary>
Init an instance of OpenGL program,
This method should be called before other
graphic methods, after LoadGL method.
</summary>
</member>
<member name="M:StgSharp.Platform.WriteLog(System.String,StgSharp.LogType)">
<member name="M:StgSharp.StgSharp.WriteLog(System.String,StgSharp.LogType)">
<summary>
Write a log message to log file, and mark the level of this message.
</summary>
@@ -709,11 +692,6 @@
平面几何体。包含三角形,对称四边形,自由多边形等。最多可由16个点参数定义。
</summary>
</member>
<member name="P:StgSharp.Geometries.PlainGeometry.BornTime">
<summary>
Tick time this geometry eas crested
</summary>
</member>
<member name="M:StgSharp.Geometries.PlainGeometry.GetAllSides">
<summary>
Get all sides of this <see cref="T:StgSharp.Geometries.PlainGeometry"/>.
@@ -726,6 +704,11 @@
</summary>
<returns></returns>
</member>
<member name="P:StgSharp.Geometries.PlainGeometry.BornTime">
<summary>
Tick time this geometry eas crested
</summary>
</member>
<member name="M:StgSharp.Geometries.Point.Update(System.UInt32)">
<summary>
Update the coordinate of the point. If this is a moving point,
@@ -795,6 +778,27 @@
The second <see cref="T:System.Boolean"/> value.
</summary>
</member>
<member name="T:StgSharp.TimeProvider">
<summary>
A microsecond-accuracy timer. It will refresh every a certain time span.
</summary>
</member>
<member name="M:StgSharp.TimeProvider.#ctor(System.Int64,StgSharp.TimeSourceProvider)">
<summary>
Create a new <see cref="T:StgSharp.TimeProvider"/> and define the length of time span. Length of a single time span is defined in microseconds.
</summary>
<param name="spanLength"></param>
</member>
<member name="P:StgSharp.TimeProvider.DefaultProvider">
<summary>
Time source provider provided in <see cref="T:StgSharp.StgSharp"/> internal framework.
</summary>
</member>
<member name="P:StgSharp.TimeProvider.SpanRefreshCallback">
<summary>
The method this <see cref="T:StgSharp.TimeProvider"/> will call every time a new time span started.
</summary>
</member>
<member name="T:StgSharp.Math.GLclampf">
<summary>
OpenGL numeric type.