daily uodate on 20231208 by nitload youmu, preparation for multi thread rendering

This commit is contained in:
Nitload
2023-12-08 05:36:04 +08:00
parent ae804553ce
commit ab85c1a9fe
297 changed files with 157896 additions and 5170 deletions
@@ -2,28 +2,13 @@
Info @ 2023-11-14T02:37:48.7343911+08:00
Info @ 2023-12-04T15:04:54.4964234+08:00
Program start
Info @ 2023-11-14T02:37:48.7633374+08:00
Info @ 2023-12-04T15:04:54.5359873+08:00
Successfully load GLFW APIs. StgSharp is now working on p/invoke mode
Info @ 2023-11-14T02:37:48.8851886+08:00
Successfully create a context binded to current form. Its ID is 1818270039616
Error @ 2023-11-14T02:37:48.9267693+08:00
Object reference not set to an instance of an object.
at StgSharp.Graphics.Shader..ctor() in D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\Graphics\GL\Buffer\Shader.cs:line 16
at StgSharp.Program.DebugMain(String[] args) in D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\Program.cs:line 34
at StgSharp.Program.Main(String[] args) in D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpDebug\Program.cs:line 129
Info @ 2023-11-14T02:45:18.8693338+08:00
Program start
Info @ 2023-11-14T02:45:18.9004651+08:00
Successfully load GLFW APIs. StgSharp is now working on p/invoke mode
Info @ 2023-11-14T02:45:19.0302489+08:00
Successfully create a context binded to current form. Its ID is 1935559252096
Info @ 2023-11-14T02:45:19.0530565+08:00
Info @ 2023-12-04T15:04:54.7176820+08:00
Successfully create a context binded to current form. Its ID is 2387008761424
Info @ 2023-12-04T15:04:54.7407462+08:00
Find core OpenGL version.
Successfully load all OpenGL 1.0 APIs
Successfully load all OpenGL 1.1 APIs
@@ -48,19 +33,19 @@ Successfully load all OpenGL 4.5 APIs
Cannot load OpenGL api called glMultiDrawArraysIndirectCount, this api may not exist or supported.
Cannot load OpenGL api called glMultiDrawElementsIndirectCount, this api may not exist or supported.
Successfully load all OpenGL 4.6 APIs
Info @ 2023-11-14T02:45:19.1203473+08:00
Info @ 2023-12-04T15:04:54.8123422+08:00
No supported OpenGL extensions are found.
Info @ 2023-11-14T02:46:07.2551309+08:00
Info @ 2023-12-04T16:43:48.0917401+08:00
Program start
Info @ 2023-11-14T02:46:07.2827034+08:00
Info @ 2023-12-04T16:43:48.1197947+08:00
Successfully load GLFW APIs. StgSharp is now working on p/invoke mode
Info @ 2023-11-14T02:46:07.3949286+08:00
Successfully create a context binded to current form. Its ID is 2011041170880
Info @ 2023-11-14T02:46:07.4163324+08:00
Info @ 2023-12-04T16:43:48.2607766+08:00
Successfully create a context binded to current form. Its ID is 1363303500720
Info @ 2023-12-04T16:43:48.2817961+08:00
Find core OpenGL version.
Successfully load all OpenGL 1.0 APIs
Successfully load all OpenGL 1.1 APIs
@@ -85,5 +70,5 @@ Successfully load all OpenGL 4.5 APIs
Cannot load OpenGL api called glMultiDrawArraysIndirectCount, this api may not exist or supported.
Cannot load OpenGL api called glMultiDrawElementsIndirectCount, this api may not exist or supported.
Successfully load all OpenGL 4.6 APIs
Info @ 2023-11-14T02:46:07.5006823+08:00
Info @ 2023-12-04T16:43:48.3459939+08:00
No supported OpenGL extensions are found.
Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

@@ -1,10 +1,17 @@
#version 330 core
in vec4 vertexColor;
in vec3 TexColor;
in vec2 TexCoord;
out vec4 FragColor;
uniform sampler2D ourTexture;
uniform sampler2D ourTexture2;
void main()
{
FragColor = vertexColor;
vec4 tex1 = texture(ourTexture, TexCoord);
vec4 tex2 = texture(ourTexture2,TexCoord);
FragColor = mix(tex1,tex2,0.2) /**/ *vec4( TexColor,1.0) /**/;
}
@@ -1,12 +1,19 @@
#version 330 core
layout(location=0)in vec3 aPos;
out vec4 vertexColor;
layout(location = 0) in vec3 aPos;
layout(location = 1) in vec3 aColor;
layout(location = 2) in vec2 aTextCoord;
out vec3 TexColor;
out vec2 TexCoord;
uniform vec3 color;
void main()
{
gl_Position=vec4(aPos.xyz,1.0);
vertexColor = vec4(0.1,0.003,0.665,1.0);
gl_Position = vec4(aPos.xyz,1.0);
TexColor = color;
TexCoord = aTextCoord;
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -25,7 +25,12 @@
<param name="funcname">the name of the Opengl function</param>
<returns>An intptr value representing the pointer to the function</returns>
</member>
<member name="M:StgSharp.Graphics.Form.#ctor(System.Int32,System.Int32,System.String,System.IntPtr,StgSharp.Graphics.Form)">
<member name="T:StgSharp.Graphics.Form">
<summary>
</summary>
</member>
<member name="M:StgSharp.Graphics.Form.InitForm(System.Int32,System.Int32,System.String,System.IntPtr,StgSharp.Graphics.Form)">
<summary>
Constructor of a Form, creats an instance of a form and
initilize all the customizing operations.
@@ -72,12 +77,20 @@
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.VertexBuffer.Unbind">
<member name="M:StgSharp.Graphics.Form.Texture.LoadTexture(System.Int32,System.String,StgSharp.Graphics.ImageLoader)">
<summary>
</summary>
<param name="name"></param>
<param name="index"></param>
<param name="loader"></param>
</member>
<member name="M:StgSharp.Graphics.Form.VertexBuffer.Unbind">
<summary>
</summary>
</member>
<member name="M:StgSharp.Graphics.VertexBuffer.SetData``1(System.Int32,``0,StgSharp.Graphics.BufferUsage)">
<member name="M:StgSharp.Graphics.Form.VertexBuffer.SetValue``1(System.Int32,``0,StgSharp.Graphics.BufferUsage)">
<summary>
</summary>
@@ -85,26 +98,31 @@
<param name="bufferData"></param>
<param name="readType"></param>
</member>
<member name="M:StgSharp.Graphics.GL.SetFrameBufferSizeCallback(StgSharp.Graphics.Form,StgSharp.Graphics.FrameBufferSizeHandler)">
<summary>
sets the framebuffer resize callback of the specified <see cref="T:StgSharp.Graphics.Form"/>,
which is called when the framebuffer of the specified <see cref="T:StgSharp.Graphics.Form"/> is resized.
</summary>
<param name="form">The Form instance to be controlled</param>
<param name="handler">Method hadler </param>
</member>
<member name="M:StgSharp.Graphics.GL.ClearColor(System.Single,System.Single,System.Single,System.Single)">
<member name="M:StgSharp.Graphics.Form.GLfunc.ClearColor(System.Single,System.Single,System.Single,System.Single)">
<summary>
Call glClearColor in OpenGL
specifies the red, green, blue, and alpha values used by glClear to clear the color buffers.
Values specified by glClearColor are clamped to the range [0,1]
Call apiClearColor in OpenGL
specifies the red, green, blue, and alpha values used by apiClear to clear the color buffers.
Values specified by apiClearColor are clamped to the range [0,1]
</summary>
<param name="R">Specify the red values used when the color buffers are cleared.</param>
<param name="G">Specify the red values used when the color buffers are cleared.</param>
<param name="B">Specify the red values used when the color buffers are cleared.</param>
<param name="A">Specify the red values used when the color buffers are cleared.</param>
</member>
<member name="M:StgSharp.Graphics.GL.CompileShader(System.String,StgSharp.Graphics.ShaderType)">
<member name="M:StgSharp.Graphics.Form.GLfunc.BindBuffer(StgSharp.Graphics.BufferType,System.UInt32)">
<summary>
Bind the indexed buffer object to certain type of buffer
</summary>
<param name="bufferType"></param>
<param name="index"></param>
</member>
<member name="M:StgSharp.Graphics.Form.GLfunc.Clear(StgSharp.Graphics.MaskBufferBit)">
<summary>
Clear buffers to preset values
</summary>
<param name="mask"></param>
</member>
<member name="M:StgSharp.Graphics.Form.GLfunc.CompileShader(System.String,StgSharp.Graphics.ShaderType)">
<summary>
Conpile the provided shader code in string form.
</summary>
@@ -113,7 +131,7 @@
conpile, including vertex shader and fragment shader.</param>
<returns>An uint value as the only mark of conpiled shader</returns>
</member>
<member name="M:StgSharp.Graphics.GL.CreateWindow(System.Int32,System.Int32,System.String,System.IntPtr,StgSharp.Graphics.Form)">
<member name="M:StgSharp.Graphics.Form.GLfunc.CreateWindowHandle(System.Int32,System.Int32,System.String,System.IntPtr,StgSharp.Graphics.Form)">
<summary>
Creates a form and its associated
</summary>
@@ -125,6 +143,140 @@
<returns>The instance of created form</returns>
<exception cref="T:System.Exception"></exception>
</member>
<member name="M:StgSharp.Graphics.Form.GLfunc.SetFrameBufferSizeCallback(System.IntPtr,StgSharp.Graphics.FrameBufferSizeHandler)">
<summary>
sets the framebuffer resize callback of the specified <see cref="T:StgSharp.Graphics.Form"/>,
which is called when the framebuffer of the specified <see cref="T:StgSharp.Graphics.Form"/> is resized.
</summary>
<param name="id">The only signiture stands for the <see cref="T:StgSharp.Graphics.Form"/> to be controlled</param>
<param name="handler">Method hadler </param>
</member>
<member name="M:StgSharp.Graphics.Form.GLfunc.SetVertexAttribute(System.UInt32,System.Int32,System.Type,System.Boolean,System.Int32,System.Int32)">
<summary>
Set how a shader parameter read data from a VBO.
</summary>
<param name="index">Serial number of the parameter</param>
<param name="size">Amount of data each elements contains</param>
<param name="t">Type of data read by shader</param>
<param name="normalized"></param>
<param name="stride">Pixels stride of each sets of data</param>
<param name="pointer"></param>
</member>
<member name="M:StgSharp.Graphics.Form.GLfunc.SetValue(StgSharp.Graphics.Form.Uniform{System.Single},System.Single)">
<summary>
Set data value to a float <see cref="T:StgSharp.Graphics.Form.Uniform`1"/>,
all types of parameters are float.
</summary>
<param name="uniform">The <see cref="T:StgSharp.Graphics.Form.Uniform`1"/> target</param>
<param name="v0">The value to be set</param>
</member>
<member name="M:StgSharp.Graphics.Form.GLfunc.SetValue(StgSharp.Graphics.Form.Uniform{System.Int32},System.Int32)">
<summary>
Set data value to a int <see cref="T:StgSharp.Graphics.Form.Uniform`1"/>,
all types of parameters are int.
</summary>
<param name="uniform">The <see cref="T:StgSharp.Graphics.Form.Uniform`1"/> target</param>
<param name="i0">The value to be set</param>
</member>
<member name="M:StgSharp.Graphics.Form.GLfunc.SetValue(StgSharp.Graphics.Form.Uniform{System.Single,System.Single},System.Single,System.Single)">
<summary>
Set data value to a float <see cref="T:StgSharp.Graphics.Form.Uniform`2"/>,
all types of parameters are float.
</summary>
<param name="uniform">The <see cref="T:StgSharp.Graphics.Form.Uniform`2"/> target</param>
<param name="v0">The first value to be set</param>
<param name="v1">The second value to be set</param>
</member>
<member name="M:StgSharp.Graphics.Form.GLfunc.SetValue(StgSharp.Graphics.Form.Uniform{System.Single,System.Single,System.Single},System.Single,System.Single,System.Single)">
<summary>
Set data value to a float <see cref="T:StgSharp.Graphics.Form.Uniform`3"/>,
all types of parameters are float.
</summary>
<param name="uniform">The <see cref="T:StgSharp.Graphics.Form.Uniform`3"/> target</param>
<param name="v0">The first value to be set</param>
<param name="v1">The second value to be set</param>
<param name="v2">The third value to be set</param>
</member>
<member name="M:StgSharp.Graphics.Form.GLfunc.SetValue(StgSharp.Graphics.Form.Uniform{System.Single,System.Single,System.Single,System.Single},System.Single,System.Single,System.Single,System.Single)">
<summary>
Set data value to a float <see cref="T:StgSharp.Graphics.Form.Uniform`4"/>,
all types of parameters are float.
</summary>
<param name="uniform">The <see cref="T:StgSharp.Graphics.Form.Uniform`4"/> target</param>
<param name="v0">The first value to be set</param>
<param name="v1">The second value to be set</param>
<param name="v2">The third value to be set</param>
<param name="v3">The forth value to be set</param>
</member>
<member name="M:StgSharp.Graphics.Form.GLfunc.SetValue(StgSharp.Graphics.Form.Uniform{System.Single,System.Single,System.Single,System.Single},StgSharp.Math.Vec4d)">
<summary>
Set data value to a float <see cref="T:StgSharp.Graphics.Form.Uniform`4"/>,
all types of parameters are float.
</summary>
<param name="uniform">The <see cref="T:StgSharp.Graphics.Form.Uniform`4"/> target</param>
<param name="vec">A <see cref="T:StgSharp.Math.Vec4d"/> packing four parameters of the uniform </param>
</member>
<member name="M:StgSharp.Graphics.Form.GLfunc.SetValue(StgSharp.Graphics.Form.Uniform{StgSharp.Math.Vec4d},StgSharp.Math.Vec4d)">
<summary>
Set data value to a float <see cref="T:StgSharp.Graphics.Form.Uniform`1"/>,
all types of parameters are <see cref="T:StgSharp.Math.Vec4d"/>.
</summary>
<param name="uniform">The <see cref="T:StgSharp.Graphics.Form.Uniform`1"/> target</param>
<param name="vec">A <see cref="T:StgSharp.Math.Vec4d"/> value of the uniform </param>
</member>
<member name="M:StgSharp.Graphics.Form.CreateShader">
<summary>
Create an instance of <see cref="T:StgSharp.Graphics.Form.Shader"/> program
</summary>
<returns>New instance of <see cref="T:StgSharp.Graphics.Form.Shader"/> instance. </returns>
</member>
<member name="F:StgSharp.Graphics.Form.Shader.programID">
<summary>
A <see cref="T:System.UInt32"/> value represent this shader.
</summary>
</member>
<member name="M:StgSharp.Graphics.Form.Shader.#ctor(StgSharp.Graphics.Form.GLfunc)">
<summary>
Inti a shader with no program attached.
</summary>
</member>
<member name="M:StgSharp.Graphics.Form.Shader.CompileVertexShader(System.String)">
<summary>
Compile the vertex shader to be attached to this shader.
</summary>
<param name="shaderCode">GLSL code of vertex shader.</param>
</member>
<member name="M:StgSharp.Graphics.Form.Shader.CompileFragmentShader(System.String)">
<summary>
Compile the fragment shader to be attached to this shader.
</summary>
<param name="shaderCode">GLSL code of fragment shader.</param>
</member>
<member name="M:StgSharp.Graphics.Form.Shader.Link">
<summary>
Link the shader to current context.
</summary>
</member>
<member name="M:StgSharp.Graphics.Form.Shader.GetUniform``1(System.String)">
<summary>
Get a uniform form current shader,
the value type of the uniform should be provided.
</summary>
<param name="name"></param>
<returns></returns>
</member>
<member name="M:StgSharp.Graphics.Form.Shader.Use">
<summary>
Let the current context use this shader.
</summary>
</member>
<member name="M:StgSharp.Graphics.glManager.LoadGLapi(StgSharp.Graphics.Form,StgSharp.Graphics.GLfuncLoader)">
<summary>
Load all aupportable OpenGL APIs and bind them to given <see cref="T:StgSharp.Graphics.Form"/> context.
</summary>
<param name="form">The <see cref="T:StgSharp.Graphics.Form"/> used as current OpenGL context</param>
<param name="loader">A delegate that can get o</param>
</member>
<member name="M:StgSharp.Graphics.glManager.LoadGLfunc(System.String)">
<summary>
Get the function pointer of given OpenGL api name
@@ -132,13 +284,6 @@
<param name="name">Name of the OpenGL api</param>
<returns>The funtion pointer of the api in form of <see cref="T:System.IntPtr"/></returns>
</member>
<member name="M:StgSharp.Graphics.Graphic.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="F:StgSharp.Controlling.TimeLine.tickCounter">
<summary>
Tick counter count the frames passed since the program start.
@@ -164,6 +309,37 @@
Y position of an enemy entity
</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)">
<summary>
Write a log message to log file, and mark the level of this message.
</summary>
<param name="message">A string contains information of how current evironment runs.</param>
<param name="logType">The severity of current message.</param>
</member>
<member name="F:StgSharp.Geometries.PartialPlainCoordinate.origin">
<summary>
The origin of this coordinate.
</summary>
</member>
<member name="P:StgSharp.Geometries.PartialPlainCoordinate.axis_H">
<summary>
The horizontial axis of the coordinate.
Point to the right direction.
</summary>
</member>
<member name="P:StgSharp.Geometries.PartialPlainCoordinate.axis_V">
<summary>
The vertical axis of the coordinate.
Point to the top direction.
</summary>
</member>
<member name="T:StgSharp.Geometries.UnusedVertexException">
<summary>
当几何体调用了过多的CalcVec方法时,产生UnusedVertexException异常
Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

@@ -0,0 +1,17 @@
#version 330 core
in vec3 TexColor;
in vec2 TexCoord;
out vec4 FragColor;
uniform sampler2D ourTexture;
uniform sampler2D ourTexture2;
void main()
{
vec4 tex1 = texture(ourTexture, TexCoord);
vec4 tex2 = texture(ourTexture2,TexCoord);
FragColor = mix(tex1,tex2,0.2) /**/ *vec4( TexColor,1.0) /**/;
}
@@ -0,0 +1,20 @@
#version 330 core
layout(location = 0) in vec3 aPos;
layout(location = 1) in vec3 aColor;
layout(location = 2) in vec2 aTextCoord;
out vec3 TexColor;
out vec2 TexCoord;
uniform vec3 color;
void main()
{
gl_Position = vec4(aPos.xyz,1.0);
TexColor = color;
TexCoord = aTextCoord;
}
Binary file not shown.
@@ -0,0 +1,23 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v6.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v6.0": {
"StgSharpDebug/1.0.0": {
"runtime": {
"StgSharpDebug.dll": {}
}
}
}
},
"libraries": {
"StgSharpDebug/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
}
}
}
@@ -0,0 +1,12 @@
{
"runtimeOptions": {
"tfm": "net6.0",
"framework": {
"name": "Microsoft.NETCore.App",
"version": "6.0.0"
},
"configProperties": {
"System.Reflection.Metadata.MetadataUpdater.IsSupported": false
}
}
}
@@ -0,0 +1,453 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>StgSharpDebug</name>
</assembly>
<members>
<member name="M:StgSharp.Control.InitPool">
<summary>
Add a pool to timeline controller, and return the instance of the pool.
</summary>
<returns></returns>
</member>
<member name="M:StgSharp.Control.GetKeyStatus(StgSharp.Graphics.Form,StgSharp.Control.Key)">
<summary>
Get the status of a certain key on the keyboard.
</summary>
<param name="form"></param>
<param name="key"></param>
<returns></returns>
</member>
<member name="T:StgSharp.Graphics.glLoader">
<summary>
Function handler to load an opengl function by serching its name.
</summary>
<param name="funcname">the name of the Opengl function</param>
<returns>An intptr value representing the pointer to the function</returns>
</member>
<member name="T:StgSharp.Graphics.Form">
<summary>
</summary>
</member>
<member name="M:StgSharp.Graphics.Form.InitForm(System.Int32,System.Int32,System.String,System.IntPtr,StgSharp.Graphics.Form)">
<summary>
Constructor of a Form, creats an instance of a form and
initilize all the customizing operations.
</summary>
</member>
<member name="M:StgSharp.Graphics.Form.MakeAsCurrentContext">
<summary>
</summary>
<exception cref="T:System.Exception"></exception>
</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
</summary>
<param name="size">
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)">
<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.SetSizeLimit(StgSharp.Math.Vec2d,StgSharp.Math.Vec2d)">
<summary>
Set the size limit of current form
</summary>
<param name="minSize">
Minimun size of current form. In form of a <see cref="T:StgSharp.Math.Vec2d"/> of (width,height)
</param>
<param name="maxSize">
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.Texture.LoadTexture(System.Int32,System.String,StgSharp.Graphics.ImageLoader)">
<summary>
</summary>
<param name="name"></param>
<param name="index"></param>
<param name="loader"></param>
</member>
<member name="M:StgSharp.Graphics.Form.VertexBuffer.Unbind">
<summary>
</summary>
</member>
<member name="M:StgSharp.Graphics.Form.VertexBuffer.SetValue``1(System.Int32,``0,StgSharp.Graphics.BufferUsage)">
<summary>
</summary>
<typeparam name="T"></typeparam>
<param name="bufferData"></param>
<param name="readType"></param>
</member>
<member name="M:StgSharp.Graphics.Form.GLfunc.ClearColor(System.Single,System.Single,System.Single,System.Single)">
<summary>
Call apiClearColor in OpenGL
specifies the red, green, blue, and alpha values used by apiClear to clear the color buffers.
Values specified by apiClearColor are clamped to the range [0,1]
</summary>
<param name="R">Specify the red values used when the color buffers are cleared.</param>
<param name="G">Specify the red values used when the color buffers are cleared.</param>
<param name="B">Specify the red values used when the color buffers are cleared.</param>
<param name="A">Specify the red values used when the color buffers are cleared.</param>
</member>
<member name="M:StgSharp.Graphics.Form.GLfunc.BindBuffer(StgSharp.Graphics.BufferType,System.UInt32)">
<summary>
Bind the indexed buffer object to certain type of buffer
</summary>
<param name="bufferType"></param>
<param name="index"></param>
</member>
<member name="M:StgSharp.Graphics.Form.GLfunc.Clear(StgSharp.Graphics.MaskBufferBit)">
<summary>
Clear buffers to preset values
</summary>
<param name="mask"></param>
</member>
<member name="M:StgSharp.Graphics.Form.GLfunc.CompileShader(System.String,StgSharp.Graphics.ShaderType)">
<summary>
Conpile the provided shader code in string form.
</summary>
<param name="shaderCode">A string represent the shader's code</param>
<param name="shaderType">An <see cref="T:StgSharp.Graphics.ShaderType"/> enum represent the type of the shader to
conpile, including vertex shader and fragment shader.</param>
<returns>An uint value as the only mark of conpiled shader</returns>
</member>
<member name="M:StgSharp.Graphics.Form.GLfunc.CreateWindowHandle(System.Int32,System.Int32,System.String,System.IntPtr,StgSharp.Graphics.Form)">
<summary>
Creates a form and its associated
</summary>
<param name="width">Required width</param>
<param name="height">Required width</param>
<param name="tittle">Tittle of the window </param>
<param name="monitor"></param>
<param name="share"></param>
<returns>The instance of created form</returns>
<exception cref="T:System.Exception"></exception>
</member>
<member name="M:StgSharp.Graphics.Form.GLfunc.SetFrameBufferSizeCallback(System.IntPtr,StgSharp.Graphics.FrameBufferSizeHandler)">
<summary>
sets the framebuffer resize callback of the specified <see cref="T:StgSharp.Graphics.Form"/>,
which is called when the framebuffer of the specified <see cref="T:StgSharp.Graphics.Form"/> is resized.
</summary>
<param name="id">The only signiture stands for the <see cref="T:StgSharp.Graphics.Form"/> to be controlled</param>
<param name="handler">Method hadler </param>
</member>
<member name="M:StgSharp.Graphics.Form.GLfunc.SetVertexAttribute(System.UInt32,System.Int32,System.Type,System.Boolean,System.Int32,System.Int32)">
<summary>
Set how a shader parameter read data from a VBO.
</summary>
<param name="index">Serial number of the parameter</param>
<param name="size">Amount of data each elements contains</param>
<param name="t">Type of data read by shader</param>
<param name="normalized"></param>
<param name="stride">Pixels stride of each sets of data</param>
<param name="pointer"></param>
</member>
<member name="M:StgSharp.Graphics.Form.GLfunc.SetValue(StgSharp.Graphics.Form.Uniform{System.Single},System.Single)">
<summary>
Set data value to a float <see cref="T:StgSharp.Graphics.Form.Uniform`1"/>,
all types of parameters are float.
</summary>
<param name="uniform">The <see cref="T:StgSharp.Graphics.Form.Uniform`1"/> target</param>
<param name="v0">The value to be set</param>
</member>
<member name="M:StgSharp.Graphics.Form.GLfunc.SetValue(StgSharp.Graphics.Form.Uniform{System.Int32},System.Int32)">
<summary>
Set data value to a int <see cref="T:StgSharp.Graphics.Form.Uniform`1"/>,
all types of parameters are int.
</summary>
<param name="uniform">The <see cref="T:StgSharp.Graphics.Form.Uniform`1"/> target</param>
<param name="i0">The value to be set</param>
</member>
<member name="M:StgSharp.Graphics.Form.GLfunc.SetValue(StgSharp.Graphics.Form.Uniform{System.Single,System.Single},System.Single,System.Single)">
<summary>
Set data value to a float <see cref="T:StgSharp.Graphics.Form.Uniform`2"/>,
all types of parameters are float.
</summary>
<param name="uniform">The <see cref="T:StgSharp.Graphics.Form.Uniform`2"/> target</param>
<param name="v0">The first value to be set</param>
<param name="v1">The second value to be set</param>
</member>
<member name="M:StgSharp.Graphics.Form.GLfunc.SetValue(StgSharp.Graphics.Form.Uniform{System.Single,System.Single,System.Single},System.Single,System.Single,System.Single)">
<summary>
Set data value to a float <see cref="T:StgSharp.Graphics.Form.Uniform`3"/>,
all types of parameters are float.
</summary>
<param name="uniform">The <see cref="T:StgSharp.Graphics.Form.Uniform`3"/> target</param>
<param name="v0">The first value to be set</param>
<param name="v1">The second value to be set</param>
<param name="v2">The third value to be set</param>
</member>
<member name="M:StgSharp.Graphics.Form.GLfunc.SetValue(StgSharp.Graphics.Form.Uniform{System.Single,System.Single,System.Single,System.Single},System.Single,System.Single,System.Single,System.Single)">
<summary>
Set data value to a float <see cref="T:StgSharp.Graphics.Form.Uniform`4"/>,
all types of parameters are float.
</summary>
<param name="uniform">The <see cref="T:StgSharp.Graphics.Form.Uniform`4"/> target</param>
<param name="v0">The first value to be set</param>
<param name="v1">The second value to be set</param>
<param name="v2">The third value to be set</param>
<param name="v3">The forth value to be set</param>
</member>
<member name="M:StgSharp.Graphics.Form.GLfunc.SetValue(StgSharp.Graphics.Form.Uniform{System.Single,System.Single,System.Single,System.Single},StgSharp.Math.Vec4d)">
<summary>
Set data value to a float <see cref="T:StgSharp.Graphics.Form.Uniform`4"/>,
all types of parameters are float.
</summary>
<param name="uniform">The <see cref="T:StgSharp.Graphics.Form.Uniform`4"/> target</param>
<param name="vec">A <see cref="T:StgSharp.Math.Vec4d"/> packing four parameters of the uniform </param>
</member>
<member name="M:StgSharp.Graphics.Form.GLfunc.SetValue(StgSharp.Graphics.Form.Uniform{StgSharp.Math.Vec4d},StgSharp.Math.Vec4d)">
<summary>
Set data value to a float <see cref="T:StgSharp.Graphics.Form.Uniform`1"/>,
all types of parameters are <see cref="T:StgSharp.Math.Vec4d"/>.
</summary>
<param name="uniform">The <see cref="T:StgSharp.Graphics.Form.Uniform`1"/> target</param>
<param name="vec">A <see cref="T:StgSharp.Math.Vec4d"/> value of the uniform </param>
</member>
<member name="M:StgSharp.Graphics.Form.CreateShader">
<summary>
Create an instance of <see cref="T:StgSharp.Graphics.Form.Shader"/> program
</summary>
<returns>New instance of <see cref="T:StgSharp.Graphics.Form.Shader"/> instance. </returns>
</member>
<member name="F:StgSharp.Graphics.Form.Shader.programID">
<summary>
A <see cref="T:System.UInt32"/> value represent this shader.
</summary>
</member>
<member name="M:StgSharp.Graphics.Form.Shader.#ctor(StgSharp.Graphics.Form.GLfunc)">
<summary>
Inti a shader with no program attached.
</summary>
</member>
<member name="M:StgSharp.Graphics.Form.Shader.CompileVertexShader(System.String)">
<summary>
Compile the vertex shader to be attached to this shader.
</summary>
<param name="shaderCode">GLSL code of vertex shader.</param>
</member>
<member name="M:StgSharp.Graphics.Form.Shader.CompileFragmentShader(System.String)">
<summary>
Compile the fragment shader to be attached to this shader.
</summary>
<param name="shaderCode">GLSL code of fragment shader.</param>
</member>
<member name="M:StgSharp.Graphics.Form.Shader.Link">
<summary>
Link the shader to current context.
</summary>
</member>
<member name="M:StgSharp.Graphics.Form.Shader.GetUniform``1(System.String)">
<summary>
Get a uniform form current shader,
the value type of the uniform should be provided.
</summary>
<param name="name"></param>
<returns></returns>
</member>
<member name="M:StgSharp.Graphics.Form.Shader.Use">
<summary>
Let the current context use this shader.
</summary>
</member>
<member name="M:StgSharp.Graphics.glManager.LoadGLapi(StgSharp.Graphics.Form,StgSharp.Graphics.GLfuncLoader)">
<summary>
Load all aupportable OpenGL APIs and bind them to given <see cref="T:StgSharp.Graphics.Form"/> context.
</summary>
<param name="form">The <see cref="T:StgSharp.Graphics.Form"/> used as current OpenGL context</param>
<param name="loader">A delegate that can get o</param>
</member>
<member name="M:StgSharp.Graphics.glManager.LoadGLfunc(System.String)">
<summary>
Get the function pointer of given OpenGL api name
</summary>
<param name="name">Name of the OpenGL api</param>
<returns>The funtion pointer of the api in form of <see cref="T:System.IntPtr"/></returns>
</member>
<member name="M:StgSharp.Graphics.Graphic.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="F:StgSharp.Controlling.TimeLine.tickCounter">
<summary>
Tick counter count the frames passed since the program start.
</summary>
</member>
<member name="P:StgSharp.IEntity.CollisionSensor">
<summary>
A sensor used for cheking out if a bullet hit a player or something else
</summary>
</member>
<member name="P:StgSharp.IEntity.Location">
<summary>
A 2D vector presenting the position of an enemy entity, position can also be visited by X, Y
</summary>
</member>
<member name="P:StgSharp.IEntity.X">
<summary>
X position of an enenmy entity
</summary>
</member>
<member name="P:StgSharp.IEntity.Y">
<summary>
Y position of an enemy entity
</summary>
</member>
<member name="M:StgSharp.Platform.WriteLog(System.String,StgSharp.LogType)">
<summary>
Write a log message to log file, and mark the level of this message.
</summary>
<param name="message">A string contains information of how current evironment runs.</param>
<param name="logType">The severity of current message.</param>
</member>
<member name="F:StgSharp.Geometries.PartialPlainCoordinate.origin">
<summary>
The origin of this coordinate.
</summary>
</member>
<member name="P:StgSharp.Geometries.PartialPlainCoordinate.axis_H">
<summary>
The horizontial axis of the coordinate.
Point to the right direction.
</summary>
</member>
<member name="P:StgSharp.Geometries.PartialPlainCoordinate.axis_V">
<summary>
The vertical axis of the coordinate.
Point to the top direction.
</summary>
</member>
<member name="T:StgSharp.Geometries.UnusedVertexException">
<summary>
当几何体调用了过多的CalcVec方法时,产生UnusedVertexException异常
</summary>
</member>
<member name="T:StgSharp.Geometries.GetLocationHandler">
<summary>
Caculate the movement of a point.
</summary>
<param name="tick">The game tick represent time passed by</param>
<returns>A 3d vector representing movement</returns>
</member>
<member name="M:StgSharp.Geometries.Parallelogram.MoveVertex2(System.UInt32)">
<summary>
Move the third vertix. this is a useless method for Parallelograms.
</summary>
<param name="tick">Current time tick</param>
<returns></returns>
<exception cref="T:StgSharp.Geometries.UnusedVertexException">Geometry overdefined</exception>
</member>
<member name="M:StgSharp.Geometries.Parallelogram.MoveVertex3(System.UInt32)">
<summary>
Move the third vertix. This method is useless for Parallelograms.
</summary>
<param name="tick">Current time tick</param>
<returns></returns>
<exception cref="T:StgSharp.Geometries.UnusedVertexException">Geometry overdefined</exception>
</member>
<member name="T:StgSharp.Geometries.PlainGeometry">
<summary>
平面几何体。包含三角形,对称四边形,自由多边形等。最多可由16个点参数定义。
</summary>
</member>
<member name="M:StgSharp.Geometries.Point.Update(System.UInt32)">
<summary>
Update the coordinate of the point. If this is a moving point,
(Points on sides or surface if other geometry items)
please do not define any motion here, codes will be ignored by program
</summary>
<param name="tick">Time passes since the program begin, counted by frames</param>
</member>
<member name="M:StgSharp.Geometries.Rectangle.MovCenter(System.UInt32)">
<summary>
计算中心点相对于参考原点的位移
</summary>
<param name="tick">当前游戏刻</param>
<returns></returns>
</member>
<member name="T:StgSharp.Geometries.Square">
<summary>
A square
</summary>
</member>
<member name="M:StgSharp.LinkedList`1.Add(`0)">
<summary>
Add an item to the tail of linked list.
</summary>
<param name="t">The item ready to add to the list</param>
</member>
<member name="T:StgSharp.Math.Vec2d">
<summary>
A two dimension vector defined by two elements.
Vec2Ds in StgSharp are defaultly usaed as colum vector.
</summary>
</member>
<member name="M:StgSharp.Math.Calc.ASin(System.Single)">
<summary>
Reurns the value of ArcSin(x)
</summary>
<param name="x">The sine value of the angle</param>
<returns></returns>
<exception cref="T:System.ArgumentException"></exception>
</member>
<member name="M:StgSharp.Math.Calc.Exp(System.Single)">
<summary>
Get the value of E ^ x;
</summary>
<param name="x"></param>
<returns></returns>
</member>
<member name="M:StgSharp.Math.Calc.Log(System.Single)">
<summary>
</summary>
<param name="x"></param>
<returns>
Returns the value of ln(x).
</returns>
</member>
<member name="M:StgSharp.Math.Calc.Pow(System.Single,System.Single)">
<summary>
calculate the value of x^y
</summary>
<param name="x"></param>
<param name="y"></param>
<returns>Returns the value of x^y</returns>
</member>
<member name="M:StgSharp.Math.Calc.Random">
<summary>
returns a random float number between 0 and 1.
</summary>
<returns></returns>
</member>
<member name="M:StgSharp.Math.Calc.RandomSeed">
<summary>
Generates a random seed in int value.
</summary>
<returns></returns>
</member>
</members>
</doc>