daily update on 20240413 by nitload youmu, camera complete

This commit is contained in:
YoumuLiu
2024-04-13 04:04:14 +08:00
parent f0f80f72f1
commit 7c755fe1e2
99 changed files with 1351 additions and 1119 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
+291 -30
View File
@@ -2,9 +2,9 @@
Info @ 2024-04-10T17:31:18.5750842+08:00 Info @ 2024-04-13T02:52:48.7521438+08:00
Program start Program start
Info @ 2024-04-10T17:31:18.6873832+08:00 Info @ 2024-04-13T02:52:48.8697616+08:00
Find core OpenGL version. Find core OpenGL version.
Successfully load all OpenGL 1.0 APIs Successfully load all OpenGL 1.0 APIs
Successfully load all OpenGL 1.1 APIs Successfully load all OpenGL 1.1 APIs
@@ -25,15 +25,15 @@ Successfully load all OpenGL 4.3 APIs
Successfully load all OpenGL 4.4 APIs Successfully load all OpenGL 4.4 APIs
Successfully load all OpenGL 4.5 APIs Successfully load all OpenGL 4.5 APIs
Successfully load all OpenGL 4.6 APIs Successfully load all OpenGL 4.6 APIs
Info @ 2024-04-10T17:31:18.6971576+08:00 Info @ 2024-04-13T02:52:48.8788256+08:00
No supported OpenGL extensions are found. No supported OpenGL extensions are found.
Info @ 2024-04-10T17:34:29.5675686+08:00 Info @ 2024-04-13T02:52:59.2185185+08:00
Program start Program start
Info @ 2024-04-10T17:34:31.0505972+08:00 Info @ 2024-04-13T02:52:59.3330778+08:00
Find core OpenGL version. Find core OpenGL version.
Successfully load all OpenGL 1.0 APIs Successfully load all OpenGL 1.0 APIs
Successfully load all OpenGL 1.1 APIs Successfully load all OpenGL 1.1 APIs
@@ -54,15 +54,15 @@ Successfully load all OpenGL 4.3 APIs
Successfully load all OpenGL 4.4 APIs Successfully load all OpenGL 4.4 APIs
Successfully load all OpenGL 4.5 APIs Successfully load all OpenGL 4.5 APIs
Successfully load all OpenGL 4.6 APIs Successfully load all OpenGL 4.6 APIs
Info @ 2024-04-10T17:34:31.0747380+08:00 Info @ 2024-04-13T02:52:59.3425036+08:00
No supported OpenGL extensions are found. No supported OpenGL extensions are found.
Info @ 2024-04-10T17:35:49.1709482+08:00 Info @ 2024-04-13T02:54:08.7419490+08:00
Program start Program start
Info @ 2024-04-10T17:35:49.7879359+08:00 Info @ 2024-04-13T02:54:08.8526510+08:00
Find core OpenGL version. Find core OpenGL version.
Successfully load all OpenGL 1.0 APIs Successfully load all OpenGL 1.0 APIs
Successfully load all OpenGL 1.1 APIs Successfully load all OpenGL 1.1 APIs
@@ -83,15 +83,15 @@ Successfully load all OpenGL 4.3 APIs
Successfully load all OpenGL 4.4 APIs Successfully load all OpenGL 4.4 APIs
Successfully load all OpenGL 4.5 APIs Successfully load all OpenGL 4.5 APIs
Successfully load all OpenGL 4.6 APIs Successfully load all OpenGL 4.6 APIs
Info @ 2024-04-10T17:35:49.8002369+08:00 Info @ 2024-04-13T02:54:08.8635945+08:00
No supported OpenGL extensions are found. No supported OpenGL extensions are found.
Info @ 2024-04-10T17:55:03.8553506+08:00 Info @ 2024-04-13T02:55:07.9130422+08:00
Program start Program start
Info @ 2024-04-10T17:55:03.9730411+08:00 Info @ 2024-04-13T02:55:08.0192427+08:00
Find core OpenGL version. Find core OpenGL version.
Successfully load all OpenGL 1.0 APIs Successfully load all OpenGL 1.0 APIs
Successfully load all OpenGL 1.1 APIs Successfully load all OpenGL 1.1 APIs
@@ -112,15 +112,15 @@ Successfully load all OpenGL 4.3 APIs
Successfully load all OpenGL 4.4 APIs Successfully load all OpenGL 4.4 APIs
Successfully load all OpenGL 4.5 APIs Successfully load all OpenGL 4.5 APIs
Successfully load all OpenGL 4.6 APIs Successfully load all OpenGL 4.6 APIs
Info @ 2024-04-10T17:55:03.9819986+08:00 Info @ 2024-04-13T02:55:08.0278843+08:00
No supported OpenGL extensions are found. No supported OpenGL extensions are found.
Info @ 2024-04-10T20:32:49.0545894+08:00 Info @ 2024-04-13T02:55:53.1402835+08:00
Program start Program start
Info @ 2024-04-10T20:32:49.2783385+08:00 Info @ 2024-04-13T02:55:53.2452824+08:00
Find core OpenGL version. Find core OpenGL version.
Successfully load all OpenGL 1.0 APIs Successfully load all OpenGL 1.0 APIs
Successfully load all OpenGL 1.1 APIs Successfully load all OpenGL 1.1 APIs
@@ -141,15 +141,15 @@ Successfully load all OpenGL 4.3 APIs
Successfully load all OpenGL 4.4 APIs Successfully load all OpenGL 4.4 APIs
Successfully load all OpenGL 4.5 APIs Successfully load all OpenGL 4.5 APIs
Successfully load all OpenGL 4.6 APIs Successfully load all OpenGL 4.6 APIs
Info @ 2024-04-10T20:32:49.2895609+08:00 Info @ 2024-04-13T02:55:53.2553702+08:00
No supported OpenGL extensions are found. No supported OpenGL extensions are found.
Info @ 2024-04-10T20:33:08.6687250+08:00 Info @ 2024-04-13T02:56:12.6623320+08:00
Program start Program start
Info @ 2024-04-10T20:33:08.7880384+08:00 Info @ 2024-04-13T02:56:13.2334858+08:00
Find core OpenGL version. Find core OpenGL version.
Successfully load all OpenGL 1.0 APIs Successfully load all OpenGL 1.0 APIs
Successfully load all OpenGL 1.1 APIs Successfully load all OpenGL 1.1 APIs
@@ -170,15 +170,15 @@ Successfully load all OpenGL 4.3 APIs
Successfully load all OpenGL 4.4 APIs Successfully load all OpenGL 4.4 APIs
Successfully load all OpenGL 4.5 APIs Successfully load all OpenGL 4.5 APIs
Successfully load all OpenGL 4.6 APIs Successfully load all OpenGL 4.6 APIs
Info @ 2024-04-10T20:33:08.7966554+08:00 Info @ 2024-04-13T02:56:13.2467090+08:00
No supported OpenGL extensions are found. No supported OpenGL extensions are found.
Info @ 2024-04-10T20:35:12.8904986+08:00 Info @ 2024-04-13T02:56:39.7380286+08:00
Program start Program start
Info @ 2024-04-10T20:35:13.0053044+08:00 Info @ 2024-04-13T02:56:40.3303218+08:00
Find core OpenGL version. Find core OpenGL version.
Successfully load all OpenGL 1.0 APIs Successfully load all OpenGL 1.0 APIs
Successfully load all OpenGL 1.1 APIs Successfully load all OpenGL 1.1 APIs
@@ -199,15 +199,15 @@ Successfully load all OpenGL 4.3 APIs
Successfully load all OpenGL 4.4 APIs Successfully load all OpenGL 4.4 APIs
Successfully load all OpenGL 4.5 APIs Successfully load all OpenGL 4.5 APIs
Successfully load all OpenGL 4.6 APIs Successfully load all OpenGL 4.6 APIs
Info @ 2024-04-10T20:35:13.0157656+08:00 Info @ 2024-04-13T02:56:40.3413755+08:00
No supported OpenGL extensions are found. No supported OpenGL extensions are found.
Info @ 2024-04-10T20:35:50.4187466+08:00 Info @ 2024-04-13T02:58:49.7721882+08:00
Program start Program start
Info @ 2024-04-10T20:35:50.5406890+08:00 Info @ 2024-04-13T02:58:50.3308199+08:00
Find core OpenGL version. Find core OpenGL version.
Successfully load all OpenGL 1.0 APIs Successfully load all OpenGL 1.0 APIs
Successfully load all OpenGL 1.1 APIs Successfully load all OpenGL 1.1 APIs
@@ -228,15 +228,15 @@ Successfully load all OpenGL 4.3 APIs
Successfully load all OpenGL 4.4 APIs Successfully load all OpenGL 4.4 APIs
Successfully load all OpenGL 4.5 APIs Successfully load all OpenGL 4.5 APIs
Successfully load all OpenGL 4.6 APIs Successfully load all OpenGL 4.6 APIs
Info @ 2024-04-10T20:35:50.5494842+08:00 Info @ 2024-04-13T02:58:50.3449039+08:00
No supported OpenGL extensions are found. No supported OpenGL extensions are found.
Info @ 2024-04-10T20:36:11.1335696+08:00 Info @ 2024-04-13T03:00:24.9239677+08:00
Program start Program start
Info @ 2024-04-10T20:36:11.2421395+08:00 Info @ 2024-04-13T03:00:25.5254989+08:00
Find core OpenGL version. Find core OpenGL version.
Successfully load all OpenGL 1.0 APIs Successfully load all OpenGL 1.0 APIs
Successfully load all OpenGL 1.1 APIs Successfully load all OpenGL 1.1 APIs
@@ -257,15 +257,15 @@ Successfully load all OpenGL 4.3 APIs
Successfully load all OpenGL 4.4 APIs Successfully load all OpenGL 4.4 APIs
Successfully load all OpenGL 4.5 APIs Successfully load all OpenGL 4.5 APIs
Successfully load all OpenGL 4.6 APIs Successfully load all OpenGL 4.6 APIs
Info @ 2024-04-10T20:36:11.2510348+08:00 Info @ 2024-04-13T03:00:25.5361593+08:00
No supported OpenGL extensions are found. No supported OpenGL extensions are found.
Info @ 2024-04-10T20:37:28.5656935+08:00 Info @ 2024-04-13T03:01:32.8809509+08:00
Program start Program start
Info @ 2024-04-10T20:37:28.6826337+08:00 Info @ 2024-04-13T03:01:33.5108932+08:00
Find core OpenGL version. Find core OpenGL version.
Successfully load all OpenGL 1.0 APIs Successfully load all OpenGL 1.0 APIs
Successfully load all OpenGL 1.1 APIs Successfully load all OpenGL 1.1 APIs
@@ -286,5 +286,266 @@ Successfully load all OpenGL 4.3 APIs
Successfully load all OpenGL 4.4 APIs Successfully load all OpenGL 4.4 APIs
Successfully load all OpenGL 4.5 APIs Successfully load all OpenGL 4.5 APIs
Successfully load all OpenGL 4.6 APIs Successfully load all OpenGL 4.6 APIs
Info @ 2024-04-10T20:37:28.6917855+08:00 Info @ 2024-04-13T03:01:33.5239470+08:00
No supported OpenGL extensions are found.
Info @ 2024-04-13T03:02:19.8654976+08:00
Program start
Info @ 2024-04-13T03:02:20.4252932+08:00
Find core OpenGL version.
Successfully load all OpenGL 1.0 APIs
Successfully load all OpenGL 1.1 APIs
Successfully load all OpenGL 1.2 APIs
Successfully load all OpenGL 1.3 APIs
Successfully load all OpenGL 1.4 APIs
Successfully load all OpenGL 1.5 APIs
Successfully load all OpenGL 2.0 APIs
Successfully load all OpenGL 2.1 APIs
Successfully load all OpenGL 3.0 APIs
Successfully load all OpenGL 3.1 APIs
Successfully load all OpenGL 3.2 APIs
Successfully load all OpenGL 3.3 APIs
Successfully load all OpenGL 4.0 APIs
Successfully load all OpenGL 4.1 APIs
Successfully load all OpenGL 4.2 APIs
Successfully load all OpenGL 4.3 APIs
Successfully load all OpenGL 4.4 APIs
Successfully load all OpenGL 4.5 APIs
Successfully load all OpenGL 4.6 APIs
Info @ 2024-04-13T03:02:20.4361538+08:00
No supported OpenGL extensions are found.
Info @ 2024-04-13T03:04:22.5428745+08:00
Program start
Info @ 2024-04-13T03:04:22.6439014+08:00
Find core OpenGL version.
Successfully load all OpenGL 1.0 APIs
Successfully load all OpenGL 1.1 APIs
Successfully load all OpenGL 1.2 APIs
Successfully load all OpenGL 1.3 APIs
Successfully load all OpenGL 1.4 APIs
Successfully load all OpenGL 1.5 APIs
Successfully load all OpenGL 2.0 APIs
Successfully load all OpenGL 2.1 APIs
Successfully load all OpenGL 3.0 APIs
Successfully load all OpenGL 3.1 APIs
Successfully load all OpenGL 3.2 APIs
Successfully load all OpenGL 3.3 APIs
Successfully load all OpenGL 4.0 APIs
Successfully load all OpenGL 4.1 APIs
Successfully load all OpenGL 4.2 APIs
Successfully load all OpenGL 4.3 APIs
Successfully load all OpenGL 4.4 APIs
Successfully load all OpenGL 4.5 APIs
Successfully load all OpenGL 4.6 APIs
Info @ 2024-04-13T03:04:22.6525133+08:00
No supported OpenGL extensions are found.
Info @ 2024-04-13T03:04:44.5704728+08:00
Program start
Info @ 2024-04-13T03:04:44.6748419+08:00
Find core OpenGL version.
Successfully load all OpenGL 1.0 APIs
Successfully load all OpenGL 1.1 APIs
Successfully load all OpenGL 1.2 APIs
Successfully load all OpenGL 1.3 APIs
Successfully load all OpenGL 1.4 APIs
Successfully load all OpenGL 1.5 APIs
Successfully load all OpenGL 2.0 APIs
Successfully load all OpenGL 2.1 APIs
Successfully load all OpenGL 3.0 APIs
Successfully load all OpenGL 3.1 APIs
Successfully load all OpenGL 3.2 APIs
Successfully load all OpenGL 3.3 APIs
Successfully load all OpenGL 4.0 APIs
Successfully load all OpenGL 4.1 APIs
Successfully load all OpenGL 4.2 APIs
Successfully load all OpenGL 4.3 APIs
Successfully load all OpenGL 4.4 APIs
Successfully load all OpenGL 4.5 APIs
Successfully load all OpenGL 4.6 APIs
Info @ 2024-04-13T03:04:44.6833998+08:00
No supported OpenGL extensions are found.
Info @ 2024-04-13T03:07:59.3402835+08:00
Program start
Info @ 2024-04-13T03:07:59.4471354+08:00
Find core OpenGL version.
Successfully load all OpenGL 1.0 APIs
Successfully load all OpenGL 1.1 APIs
Successfully load all OpenGL 1.2 APIs
Successfully load all OpenGL 1.3 APIs
Successfully load all OpenGL 1.4 APIs
Successfully load all OpenGL 1.5 APIs
Successfully load all OpenGL 2.0 APIs
Successfully load all OpenGL 2.1 APIs
Successfully load all OpenGL 3.0 APIs
Successfully load all OpenGL 3.1 APIs
Successfully load all OpenGL 3.2 APIs
Successfully load all OpenGL 3.3 APIs
Successfully load all OpenGL 4.0 APIs
Successfully load all OpenGL 4.1 APIs
Successfully load all OpenGL 4.2 APIs
Successfully load all OpenGL 4.3 APIs
Successfully load all OpenGL 4.4 APIs
Successfully load all OpenGL 4.5 APIs
Successfully load all OpenGL 4.6 APIs
Info @ 2024-04-13T03:07:59.4562065+08:00
No supported OpenGL extensions are found.
Info @ 2024-04-13T03:09:09.4964707+08:00
Program start
Info @ 2024-04-13T03:09:09.6158168+08:00
Find core OpenGL version.
Successfully load all OpenGL 1.0 APIs
Successfully load all OpenGL 1.1 APIs
Successfully load all OpenGL 1.2 APIs
Successfully load all OpenGL 1.3 APIs
Successfully load all OpenGL 1.4 APIs
Successfully load all OpenGL 1.5 APIs
Successfully load all OpenGL 2.0 APIs
Successfully load all OpenGL 2.1 APIs
Successfully load all OpenGL 3.0 APIs
Successfully load all OpenGL 3.1 APIs
Successfully load all OpenGL 3.2 APIs
Successfully load all OpenGL 3.3 APIs
Successfully load all OpenGL 4.0 APIs
Successfully load all OpenGL 4.1 APIs
Successfully load all OpenGL 4.2 APIs
Successfully load all OpenGL 4.3 APIs
Successfully load all OpenGL 4.4 APIs
Successfully load all OpenGL 4.5 APIs
Successfully load all OpenGL 4.6 APIs
Info @ 2024-04-13T03:09:09.6250462+08:00
No supported OpenGL extensions are found.
Info @ 2024-04-13T03:12:22.0284867+08:00
Program start
Info @ 2024-04-13T03:12:22.1393133+08:00
Find core OpenGL version.
Successfully load all OpenGL 1.0 APIs
Successfully load all OpenGL 1.1 APIs
Successfully load all OpenGL 1.2 APIs
Successfully load all OpenGL 1.3 APIs
Successfully load all OpenGL 1.4 APIs
Successfully load all OpenGL 1.5 APIs
Successfully load all OpenGL 2.0 APIs
Successfully load all OpenGL 2.1 APIs
Successfully load all OpenGL 3.0 APIs
Successfully load all OpenGL 3.1 APIs
Successfully load all OpenGL 3.2 APIs
Successfully load all OpenGL 3.3 APIs
Successfully load all OpenGL 4.0 APIs
Successfully load all OpenGL 4.1 APIs
Successfully load all OpenGL 4.2 APIs
Successfully load all OpenGL 4.3 APIs
Successfully load all OpenGL 4.4 APIs
Successfully load all OpenGL 4.5 APIs
Successfully load all OpenGL 4.6 APIs
Info @ 2024-04-13T03:12:22.1482595+08:00
No supported OpenGL extensions are found.
Info @ 2024-04-13T03:13:14.6103713+08:00
Program start
Info @ 2024-04-13T03:13:14.7181688+08:00
Find core OpenGL version.
Successfully load all OpenGL 1.0 APIs
Successfully load all OpenGL 1.1 APIs
Successfully load all OpenGL 1.2 APIs
Successfully load all OpenGL 1.3 APIs
Successfully load all OpenGL 1.4 APIs
Successfully load all OpenGL 1.5 APIs
Successfully load all OpenGL 2.0 APIs
Successfully load all OpenGL 2.1 APIs
Successfully load all OpenGL 3.0 APIs
Successfully load all OpenGL 3.1 APIs
Successfully load all OpenGL 3.2 APIs
Successfully load all OpenGL 3.3 APIs
Successfully load all OpenGL 4.0 APIs
Successfully load all OpenGL 4.1 APIs
Successfully load all OpenGL 4.2 APIs
Successfully load all OpenGL 4.3 APIs
Successfully load all OpenGL 4.4 APIs
Successfully load all OpenGL 4.5 APIs
Successfully load all OpenGL 4.6 APIs
Info @ 2024-04-13T03:13:14.7273602+08:00
No supported OpenGL extensions are found.
Info @ 2024-04-13T03:13:58.4941103+08:00
Program start
Info @ 2024-04-13T03:13:58.6021716+08:00
Find core OpenGL version.
Successfully load all OpenGL 1.0 APIs
Successfully load all OpenGL 1.1 APIs
Successfully load all OpenGL 1.2 APIs
Successfully load all OpenGL 1.3 APIs
Successfully load all OpenGL 1.4 APIs
Successfully load all OpenGL 1.5 APIs
Successfully load all OpenGL 2.0 APIs
Successfully load all OpenGL 2.1 APIs
Successfully load all OpenGL 3.0 APIs
Successfully load all OpenGL 3.1 APIs
Successfully load all OpenGL 3.2 APIs
Successfully load all OpenGL 3.3 APIs
Successfully load all OpenGL 4.0 APIs
Successfully load all OpenGL 4.1 APIs
Successfully load all OpenGL 4.2 APIs
Successfully load all OpenGL 4.3 APIs
Successfully load all OpenGL 4.4 APIs
Successfully load all OpenGL 4.5 APIs
Successfully load all OpenGL 4.6 APIs
Info @ 2024-04-13T03:13:58.6110611+08:00
No supported OpenGL extensions are found.
Info @ 2024-04-13T03:15:17.8566685+08:00
Program start
Info @ 2024-04-13T03:15:17.9644144+08:00
Find core OpenGL version.
Successfully load all OpenGL 1.0 APIs
Successfully load all OpenGL 1.1 APIs
Successfully load all OpenGL 1.2 APIs
Successfully load all OpenGL 1.3 APIs
Successfully load all OpenGL 1.4 APIs
Successfully load all OpenGL 1.5 APIs
Successfully load all OpenGL 2.0 APIs
Successfully load all OpenGL 2.1 APIs
Successfully load all OpenGL 3.0 APIs
Successfully load all OpenGL 3.1 APIs
Successfully load all OpenGL 3.2 APIs
Successfully load all OpenGL 3.3 APIs
Successfully load all OpenGL 4.0 APIs
Successfully load all OpenGL 4.1 APIs
Successfully load all OpenGL 4.2 APIs
Successfully load all OpenGL 4.3 APIs
Successfully load all OpenGL 4.4 APIs
Successfully load all OpenGL 4.5 APIs
Successfully load all OpenGL 4.6 APIs
Info @ 2024-04-13T03:15:17.9738674+08:00
No supported OpenGL extensions are found. No supported OpenGL extensions are found.
@@ -22,7 +22,7 @@ void main()
); );
TexColor = color; TexColor = color;
TexCoord = aTextCoord; TexCoord = aTextCoord;
vec4 temp = (vec4(aPos.xyz,1.0) + vec4(color.yz-vec2(0.5,0.5),0.0,0.0)) * rotation; vec4 temp = vec4(aPos.xyz,1.0);
gl_Position = /**/ camera * /**/ temp; gl_Position = /**/ camera * /**/ temp;
} }
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -217,11 +217,26 @@
</member> </member>
<member name="T:StgSharp.Graphics.ElementBuffer"> <member name="T:StgSharp.Graphics.ElementBuffer">
<summary> <summary>
A collecion of handle to Element Buffer Object in OpenGL. A collection of handle to Element Buffer Object in OpenGL.
Each <see langword="uint"/> value indexed from instance of this class this Each <see langword="uint"/> value indexed from instance of this class this
is the only handle to one Element Buffer Object. is the only handle to one Element Buffer Object.
</summary> </summary>
</member> </member>
<member name="M:StgSharp.Graphics.FrameBuffer.Bind(System.Int32)">
<summary>
Bind the frame buffer object with name frame buffer to the frame buffer target specified by target.
<see langword="FrameBufferTarget.All"/> will be set as default target.
</summary>
<param name="index">Index of object to be binded in handle set</param>
</member>
<member name="M:StgSharp.Graphics.FrameBuffer.Bind(StgSharp.Graphics.FrameBufferTarget,System.Int32)">
<summary>
Bind the frame buffer object with name frame buffer to the frame buffer target specified by target.
Target of this frame buffer should be set manually.
</summary>
<param name="target">The frame buffer target of the binding operation.</param>
<param name="index">Index of object to be binded in handle set</param>
</member>
<member name="M:StgSharp.Graphics.Texture.LoadTexture(System.Int32,System.String,StgSharp.Graphics.ImageLoader)"> <member name="M:StgSharp.Graphics.Texture.LoadTexture(System.Int32,System.String,StgSharp.Graphics.ImageLoader)">
<summary> <summary>
</summary> </summary>
@@ -285,6 +300,14 @@
This <see langword="glHandle"/> will be not usable. This <see langword="glHandle"/> will be not usable.
</summary> </summary>
</member> </member>
<member name="M:StgSharp.Graphics.GL.BindFrameBuffer(StgSharp.Graphics.FrameBufferTarget,StgSharp.Graphics.glHandle)">
<summary>
Bind a frame buffer to a frame buffer target
Same function as <see href="https://docs.gl/gl3/glBindFramebuffer">glBindFramebuffer</see>.
</summary>
<param name="target"> The frame buffer target of the binding operation.</param>
<param name="handle"> The handle of the frame buffer object to bind.</param>
</member>
<member name="M:StgSharp.Graphics.ShaderEdit.IglConvertable.SetAllUniforms"> <member name="M:StgSharp.Graphics.ShaderEdit.IglConvertable.SetAllUniforms">
<summary> <summary>
@@ -641,7 +664,7 @@
Create a new <see cref="T:StgSharp.TimeSpanProvider"/> and define the length of time span. Length of a single time span is defined in microseconds. Create a new <see cref="T:StgSharp.TimeSpanProvider"/> and define the length of time span. Length of a single time span is defined in microseconds.
</summary> </summary>
<param name="spanLength"></param> <param name="spanLength"></param>
<parma name="provider"></parma> <param name="provider"></param>
</member> </member>
<member name="M:StgSharp.TimeSpanProvider.#ctor(System.Double,StgSharpDebug.Logic.TimeSourceProviderBase)"> <member name="M:StgSharp.TimeSpanProvider.#ctor(System.Double,StgSharpDebug.Logic.TimeSourceProviderBase)">
<summary> <summary>
@@ -649,14 +672,14 @@
Length of a single time span is defined in seconds. Length of a single time span is defined in seconds.
</summary> </summary>
<param name="spanLength"></param> <param name="spanLength"></param>
<parma name="provider"></parma> <param name="provider"></param>
</member> </member>
<member name="M:StgSharp.TimeSpanProvider.#ctor(System.Int64,System.Int32,StgSharpDebug.Logic.TimeSourceProviderBase)"> <member name="M:StgSharp.TimeSpanProvider.#ctor(System.Int64,System.Int32,StgSharpDebug.Logic.TimeSourceProviderBase)">
<summary> <summary>
Create a new <see cref="T:StgSharp.TimeSpanProvider"/> and define the length of time span. Length of a single time span is defined in microseconds. Create a new <see cref="T:StgSharp.TimeSpanProvider"/> and define the length of time span. Length of a single time span is defined in microseconds.
</summary> </summary>
<param name="spanLength"></param> <param name="spanLength"></param>
<parma name="provider"></parma> <param name="provider"></param>
</member> </member>
<member name="P:StgSharp.TimeSpanProvider.DefaultProvider"> <member name="P:StgSharp.TimeSpanProvider.DefaultProvider">
<summary> <summary>
@@ -11,38 +11,46 @@ namespace StgSharp.Math
{ {
internal const float DegToRad = 180 / Scaler.Pi; internal const float DegToRad = 180 / Scaler.Pi;
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Degree ToDegree(float value) public static Degree ToDegree(float value)
{ {
return new Degree(value); return new Degree(value);
} }
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static float Sin(Radius r) public static float Sin(Radius r)
{ {
return MathF.Sin(r._radius); return MathF.Sin(r._radius);
} }
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static float Tan(Radius r) public static float Tan(Radius r)
{ {
return MathF.Tan(r._radius); return MathF.Tan(r._radius);
} }
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static float Cos(Radius r) public static float Cos(Radius r)
{ {
return MathF.Cos(r._radius); return MathF.Cos(r._radius);
} }
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static float Sin(Degree r) public static float Sin(Degree r)
{ {
return MathF.Sin(r._degree); return MathF.Sin(r._degree/DegToRad);
} }
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static float Tan(Degree r) public static float Tan(Degree r)
{ {
return MathF.Tan(r._degree); return MathF.Tan(r._degree / DegToRad);
} }
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static float Cos(Degree r) public static float Cos(Degree r)
{ {
return MathF.Cos(r._degree); return MathF.Cos(r._degree / DegToRad);
} }
} }
@@ -56,9 +64,9 @@ namespace StgSharp.Math
_degree = dgree; _degree = dgree;
} }
public Radius ToRadius() public static implicit operator Radius(Degree d)
{ {
return new Radius(_degree / GeometryScaler.DegToRad); return new Radius(d._degree / GeometryScaler.DegToRad);
} }
} }
@@ -79,9 +87,9 @@ namespace StgSharp.Math
[Obsolete("Unsafe, you may forget this is radius.",true)] [Obsolete("Unsafe, you may forget this is radius.",true)]
public Radius() { } public Radius() { }
public Degree ToDegree() public static implicit operator Degree(Radius r)
{ {
return new Degree(_radius * 180 / Scaler.Pi); return new Degree(r._radius * 180 / Scaler.Pi);
} }
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
+2
View File
@@ -80,6 +80,8 @@ namespace StgSharp.Graphics
api->glBindFramebuffer((uint)target,handle.Value); api->glBindFramebuffer((uint)target,handle.Value);
} }
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static void BindVertexArray(glHandle handle) public static void BindVertexArray(glHandle handle)
{ {
+5 -4
View File
@@ -59,7 +59,7 @@ namespace StgSharp
/// Create a new <see cref="TimeSpanProvider"/> and define the length of time span. Length of a single time span is defined in microseconds. /// Create a new <see cref="TimeSpanProvider"/> and define the length of time span. Length of a single time span is defined in microseconds.
/// </summary> /// </summary>
/// <param name="spanLength"></param> /// <param name="spanLength"></param>
/// <parma name="provider"></parma> /// <param name="provider"></param>
public TimeSpanProvider(long spanLength, TimeSourceProviderBase provider) public TimeSpanProvider(long spanLength, TimeSourceProviderBase provider)
{ {
_spanLength = spanLength; _spanLength = spanLength;
@@ -74,7 +74,7 @@ namespace StgSharp
/// Length of a single time span is defined in seconds. /// Length of a single time span is defined in seconds.
/// </summary> /// </summary>
/// <param name="spanLength"></param> /// <param name="spanLength"></param>
/// <parma name="provider"></parma> /// <param name="provider"></param>
public TimeSpanProvider(double spanLength, TimeSourceProviderBase provider) public TimeSpanProvider(double spanLength, TimeSourceProviderBase provider)
{ {
_spanLength = (long)(spanLength * 1000L * 1000L); _spanLength = (long)(spanLength * 1000L * 1000L);
@@ -89,7 +89,7 @@ namespace StgSharp
/// Create a new <see cref="TimeSpanProvider"/> and define the length of time span. Length of a single time span is defined in microseconds. /// Create a new <see cref="TimeSpanProvider"/> and define the length of time span. Length of a single time span is defined in microseconds.
/// </summary> /// </summary>
/// <param name="spanLength"></param> /// <param name="spanLength"></param>
/// <parma name="provider"></parma> /// <param name="provider"></param>
public TimeSpanProvider(long spanLength, int maxSpan, TimeSourceProviderBase provider) public TimeSpanProvider(long spanLength, int maxSpan, TimeSourceProviderBase provider)
{ {
if (maxSpan <= 0) if (maxSpan <= 0)
@@ -103,6 +103,7 @@ namespace StgSharp
public int CurrentSpan public int CurrentSpan
=> timeSpanCount.Value; => timeSpanCount.Value;
/// <summary> /// <summary>
/// Time source provider provided in <see cref="StgSharp"/> internal framework. /// Time source provider provided in <see cref="StgSharp"/> internal framework.
/// </summary> /// </summary>
@@ -123,7 +124,7 @@ namespace StgSharp
set => _refeshCallback = value; set => _refeshCallback = value;
} }
public void SubcsribeToTimeSource(TimeSourceProviderBase serviceHandler) public void SubscribeToTimeSource(TimeSourceProviderBase serviceHandler)
{ {
if (_subscribed) if (_subscribed)
{ {
+66 -19
View File
@@ -76,7 +76,7 @@ namespace StgSharp.Graphic
return _lookAt; return _lookAt;
} }
Matrix44 move = Matrix44.Unit; Matrix44 move = Matrix44.Unit;
move.Colum3.vec -= cameraCoord.vec; move.colum3.vec -= cameraCoord.vec;
_lookAt = cameraAtt.Transpose * move; _lookAt = cameraAtt.Transpose * move;
_isLookAtAvailable = true; _isLookAtAvailable = true;
return _lookAt; return _lookAt;
@@ -112,13 +112,13 @@ namespace StgSharp.Graphic
width = Scaler.Abs(GeometryScaler.Tan(fovRadius / 2) * near *2), width = Scaler.Abs(GeometryScaler.Tan(fovRadius / 2) * near *2),
height = width * size.Y / size.X; height = width * size.Y / size.X;
_projection.Colum0.X = 2 * near / width; _projection.colum0.X = 2 * near / width;
_projection.Colum1.Y = 2 * near / height; _projection.colum1.Y = 2 * near / height;
_projection.Colum2.X = 2 * offsetX / width; _projection.colum2.X = 2 * offsetX / width;
_projection.Colum2.Y = 2 * offsetY / height; _projection.colum2.Y = 2 * offsetY / height;
_projection.Colum2.Z = (far + near) / (near - far); _projection.colum2.Z = (far + near) / (near - far);
_projection.Colum2.W = -1; _projection.colum2.W = -1;
_projection.Colum3.Z = 2 * near * far / (near - far); _projection.colum3.Z = 2 * near * far / (near - far);
} }
@@ -135,24 +135,71 @@ namespace StgSharp.Graphic
public void Pitch(Radius r) public void Pitch(Radius r)
{ {
_isLookAtAvailable = false;
Matrix32 partialCoord = new Matrix32( Matrix32 partialCoord = new Matrix32(
cameraAtt.Colum1.vec, cameraAtt.colum1.vec,
cameraAtt.Colum2.vec cameraAtt.colum2.vec
); );
float angle = -r._radius;
Console.WriteLine(angle);
Matrix22 rotation = new Matrix22( Matrix22 rotation = new Matrix22(
GeometryScaler.Cos(r), -GeometryScaler.Sin(r), Scaler.Cos(angle), -Scaler.Sin(angle),
GeometryScaler.Sin(r), -GeometryScaler.Cos(r) Scaler.Sin(angle), Scaler.Cos( angle)
); );
partialCoord *= rotation; partialCoord *= rotation;
cameraAtt.Colum1.vec = partialCoord.colum0.vec; cameraAtt.colum1.vec = partialCoord.colum0.vec;
cameraAtt.Colum2.vec = partialCoord.colum1.vec; cameraAtt.colum2.vec = partialCoord.colum1.vec;
cameraAtt.isTransposed = false;
}
public void Row(Radius r)
{
_isLookAtAvailable = false;
Matrix32 partialCoord = new Matrix32(
cameraAtt.colum0.vec,
cameraAtt.colum1.vec
);
float angle = -r._radius;
Console.WriteLine(angle);
Matrix22 rotation = new Matrix22(
Scaler.Cos(angle), -Scaler.Sin(angle),
Scaler.Sin(angle), Scaler.Cos(angle)
);
partialCoord *= rotation;
cameraAtt.colum0.vec = partialCoord.colum0.vec;
cameraAtt.colum1.vec = partialCoord.colum1.vec;
cameraAtt.isTransposed = false;
}
public void Yaw(Radius r)
{
_isLookAtAvailable = false;
Matrix32 partialCoord = new Matrix32(
cameraAtt.colum0.vec,
cameraAtt.colum2.vec
);
float angle = -r._radius;
Console.WriteLine(angle);
Matrix22 rotation = new Matrix22(
Scaler.Cos(angle), -Scaler.Sin(angle),
Scaler.Sin(angle), Scaler.Cos(angle)
);
partialCoord *= rotation;
cameraAtt.colum0.vec = partialCoord.colum0.vec;
cameraAtt.colum2.vec = partialCoord.colum1.vec;
cameraAtt.isTransposed = false;
} }
public void SetViewDirection(vec3d position, vec3d target, vec3d up) public void SetViewDirection(vec3d position, vec3d target, vec3d up)
{ {
vec3d direction = position - target; vec3d direction = position - target;
if (position == cameraCoord && this.up == up && cameraAtt.Colum2.vec == direction.vec) if (position == cameraCoord && this.up == up && cameraAtt.colum2.vec == direction.vec)
{ {
//no difference with precious value //no difference with precious value
return; return;
@@ -176,10 +223,10 @@ namespace StgSharp.Graphic
vec3d right = Linear.Normalize(Linear.Cross(up,direction)); vec3d right = Linear.Normalize(Linear.Cross(up,direction));
cameraAtt.Colum0.vec = right.vec; cameraAtt.colum0.vec = right.vec;
cameraAtt.Colum1.vec = up.vec; cameraAtt.colum1.vec = up.vec;
cameraAtt.Colum2.vec = direction.vec; cameraAtt.colum2.vec = direction.vec;
cameraAtt.isTransposed = false;
} }
public void DisplayGLtypeDefinition() public void DisplayGLtypeDefinition()
+1 -1
View File
@@ -36,7 +36,7 @@ using System.Runtime.InteropServices;
namespace StgSharp.Math namespace StgSharp.Math
{ {
[StructLayout(LayoutKind.Explicit, Size = ((3 + 2) * 4 * sizeof(float)) + sizeof(bool), Pack = 16)] [StructLayout(LayoutKind.Explicit, Size = ((3 + 2) * 4 * sizeof(float)) + sizeof(bool), Pack = 16)]
public struct Matrix23 public struct Matrix23:IMat
{ {
[FieldOffset(5 * 4 * sizeof(float))] internal bool isTransposed; [FieldOffset(5 * 4 * sizeof(float))] internal bool isTransposed;
+1 -1
View File
@@ -36,7 +36,7 @@ using System.Runtime.InteropServices;
namespace StgSharp.Math namespace StgSharp.Math
{ {
[StructLayout(LayoutKind.Explicit, Size = ((4 + 2) * 4 * sizeof(float)) + sizeof(bool), Pack = 16)] [StructLayout(LayoutKind.Explicit, Size = ((4 + 2) * 4 * sizeof(float)) + sizeof(bool), Pack = 16)]
public struct Matrix24 public struct Matrix24:IMat
{ {
[FieldOffset(6 * 4 * sizeof(float))] internal bool isTransposed; [FieldOffset(6 * 4 * sizeof(float))] internal bool isTransposed;
+3 -3
View File
@@ -36,7 +36,7 @@ using System.Runtime.InteropServices;
namespace StgSharp.Math namespace StgSharp.Math
{ {
[StructLayout(LayoutKind.Explicit, Size = (5 * 4 * sizeof(float)) + sizeof(bool), Pack = 16)] [StructLayout(LayoutKind.Explicit, Size = (5 * 4 * sizeof(float)) + sizeof(bool), Pack = 16)]
public struct Matrix32 public struct Matrix32:IMat
{ {
[FieldOffset(0)] internal vec3d colum0; [FieldOffset(0)] internal vec3d colum0;
@@ -62,13 +62,13 @@ namespace StgSharp.Math
float a20, float a21 float a20, float a21
) )
{ {
mat.colum0 = new Vector4(a00, a10, a20, 0);
mat.colum0 = new Vector4(a01, a11, a21, 0);
#if NET5_0_OR_GREATER #if NET5_0_OR_GREATER
Unsafe.SkipInit(out colum0); Unsafe.SkipInit(out colum0);
Unsafe.SkipInit(out colum1); Unsafe.SkipInit(out colum1);
Unsafe.SkipInit(out transpose); Unsafe.SkipInit(out transpose);
#endif #endif
mat.colum0 = new Vector4(a00, a10, a20, 0);
mat.colum1 = new Vector4(a01, a11, a21, 0);
} }
public unsafe float this[int rowNum, int columNum] public unsafe float this[int rowNum, int columNum]
+1 -1
View File
@@ -36,7 +36,7 @@ using System.Runtime.InteropServices;
namespace StgSharp.Math namespace StgSharp.Math
{ {
[StructLayout(LayoutKind.Explicit, Size = (6 * 4 * sizeof(float)) + sizeof(bool), Pack = 16)] [StructLayout(LayoutKind.Explicit, Size = (6 * 4 * sizeof(float)) + sizeof(bool), Pack = 16)]
public struct Matrix33 public struct Matrix33:IMat
{ {
[FieldOffset(6 * 4 * sizeof(float))] internal bool isTransposed; [FieldOffset(6 * 4 * sizeof(float))] internal bool isTransposed;
+1 -1
View File
@@ -38,7 +38,7 @@ namespace StgSharp.Math
{ {
[StructLayout(LayoutKind.Explicit, Size = (7 * 4 * sizeof(float)) + sizeof(bool), Pack = 16)] [StructLayout(LayoutKind.Explicit, Size = (7 * 4 * sizeof(float)) + sizeof(bool), Pack = 16)]
public struct Matrix34 public struct Matrix34:IMat
{ {
[FieldOffset(7 * 4 * sizeof(float))] internal bool isTransposed; [FieldOffset(7 * 4 * sizeof(float))] internal bool isTransposed;
+1 -1
View File
@@ -39,7 +39,7 @@ namespace StgSharp.Math
[StructLayout(LayoutKind.Explicit, Size = ((16 + 8) * sizeof(float)) + sizeof(bool), Pack = 16)] [StructLayout(LayoutKind.Explicit, Size = ((16 + 8) * sizeof(float)) + sizeof(bool), Pack = 16)]
public struct Matrix42 public struct Matrix42:IMat
{ {
[FieldOffset((16 + 8) * sizeof(float))] internal bool isTransposed; [FieldOffset((16 + 8) * sizeof(float))] internal bool isTransposed;
+1 -1
View File
@@ -37,7 +37,7 @@ using System.Runtime.InteropServices;
namespace StgSharp.Math namespace StgSharp.Math
{ {
[StructLayout(LayoutKind.Explicit, Size = (7 * 4 * sizeof(float)) + sizeof(bool), Pack = 16)] [StructLayout(LayoutKind.Explicit, Size = (7 * 4 * sizeof(float)) + sizeof(bool), Pack = 16)]
public struct Matrix43 : IEquatable<Matrix43> public struct Matrix43 : IEquatable<Matrix43>,IMat
{ {
[FieldOffset(7 * 4 * sizeof(float))] [FieldOffset(7 * 4 * sizeof(float))]
+5 -5
View File
@@ -49,10 +49,10 @@ namespace StgSharp.Math
[FieldOffset(0)] internal Mat4 mat; [FieldOffset(0)] internal Mat4 mat;
[FieldOffset(16 * sizeof(float))] internal Mat4 transpose; [FieldOffset(16 * sizeof(float))] internal Mat4 transpose;
[FieldOffset(0 * sizeof(float))] public vec4d Colum0; [FieldOffset(0 * sizeof(float))] internal vec4d colum0;
[FieldOffset(4 * sizeof(float))] public vec4d Colum1; [FieldOffset(4 * sizeof(float))] internal vec4d colum1;
[FieldOffset(8 * sizeof(float))] public vec4d Colum2; [FieldOffset(8 * sizeof(float))] internal vec4d colum2;
[FieldOffset(12 * sizeof(float))] public vec4d Colum3; [FieldOffset(12 * sizeof(float))] internal vec4d colum3;
internal Matrix44(Mat4 mat) internal Matrix44(Mat4 mat)
{ {
@@ -223,7 +223,7 @@ namespace StgSharp.Math
{ {
if (!isTransposed) if (!isTransposed)
{ {
fixed (Mat4* source = &this.mat, target = &this.transpose) fixed (Mat4* source = &mat, target = &transpose)
{ {
InternalIO.Transpose4to4_internal(source, target); InternalIO.Transpose4to4_internal(source, target);
} }
+2 -3
View File
@@ -71,12 +71,12 @@ namespace StgSharp
#region transpose #region transpose
[DllImport(InternalIO.SSC_libname, EntryPoint = "transmpose2to4", [DllImport(InternalIO.SSC_libname, EntryPoint = "transpose2to4",
CallingConvention = CallingConvention.Cdecl)] CallingConvention = CallingConvention.Cdecl)]
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
internal static extern unsafe void Transpose2to4_internal(Mat2* source, Mat4* target); internal static extern unsafe void Transpose2to4_internal(Mat2* source, Mat4* target);
[DllImport(InternalIO.SSC_libname, EntryPoint = "transmpose2to3", [DllImport(InternalIO.SSC_libname, EntryPoint = "transpose2to3",
CallingConvention = CallingConvention.Cdecl)] CallingConvention = CallingConvention.Cdecl)]
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
internal static extern unsafe void Transpose2to3_internal(Mat2* source, Mat3* target); internal static extern unsafe void Transpose2to3_internal(Mat2* source, Mat3* target);
@@ -97,7 +97,6 @@ namespace StgSharp.Math
[FieldOffset(4 * sizeof(float))] internal Vector4 colum1; [FieldOffset(4 * sizeof(float))] internal Vector4 colum1;
[FieldOffset(0 * sizeof(float))] internal float m00; [FieldOffset(0 * sizeof(float))] internal float m00;
[FieldOffset(4 * sizeof(float))] internal float m01; [FieldOffset(4 * sizeof(float))] internal float m01;
[FieldOffset(1 * sizeof(float))] internal float m10; [FieldOffset(1 * sizeof(float))] internal float m10;
[FieldOffset(5 * sizeof(float))] internal float m11; [FieldOffset(5 * sizeof(float))] internal float m11;
+3 -3
View File
@@ -51,15 +51,15 @@ namespace StgSharp
#region transpose #region transpose
[DllImport(InternalIO.SSC_libname, EntryPoint = "transpose3to4", [DllImport(SSC_libname, EntryPoint = "transpose3to4",
CallingConvention = CallingConvention.Cdecl)] CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void Transpose3to4_internal(Mat3* source, Mat4* target); internal static extern unsafe void Transpose3to4_internal(Mat3* source, Mat4* target);
[DllImport("StgsharpGra[hic", EntryPoint = "transpose3to4", [DllImport(SSC_libname, EntryPoint = "transpose3to3",
CallingConvention = CallingConvention.Cdecl)] CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void Transpose3to3_internal(Mat3* source, Mat3* target); internal static extern unsafe void Transpose3to3_internal(Mat3* source, Mat3* target);
[DllImport("StgsharpGra[hic", EntryPoint = "transpose3to2", [DllImport(SSC_libname, EntryPoint = "transpose3to2",
CallingConvention = CallingConvention.Cdecl)] CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void Transpose3to2_internal(Mat3* source, Mat2* target); internal static extern unsafe void Transpose3to2_internal(Mat3* source, Mat2* target);
+5 -5
View File
@@ -44,7 +44,7 @@ namespace StgSharp
#region deinit_mat4 #region deinit_mat4
[DllImport(InternalIO.SSC_libname, EntryPoint = "deinit_mat4", [DllImport(SSC_libname, EntryPoint = "deinit_mat4",
CallingConvention = CallingConvention.Cdecl)] CallingConvention = CallingConvention.Cdecl)]
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
internal static extern void deinit_mat4(Mat4* mat); internal static extern void deinit_mat4(Mat4* mat);
@@ -53,7 +53,7 @@ namespace StgSharp
#region det #region det
[DllImport(InternalIO.SSC_libname, EntryPoint = "det_mat4", [DllImport(SSC_libname, EntryPoint = "det_mat4",
CallingConvention = CallingConvention.Cdecl)] CallingConvention = CallingConvention.Cdecl)]
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
internal static extern unsafe float det_mat4(Mat4* matPtr, Mat4* transpose); internal static extern unsafe float det_mat4(Mat4* matPtr, Mat4* transpose);
@@ -63,15 +63,15 @@ namespace StgSharp
#region transpose #region transpose
[DllImport(InternalIO.SSC_libname, EntryPoint = "transpose4to4", [DllImport(SSC_libname, EntryPoint = "transpose4to4",
CallingConvention = CallingConvention.Cdecl)] CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void Transpose4to4_internal(Mat4* source, Mat4* target); internal static extern unsafe void Transpose4to4_internal(Mat4* source, Mat4* target);
[DllImport(InternalIO.SSC_libname, EntryPoint = "transpose4to3", [DllImport(SSC_libname, EntryPoint = "transpose4to3",
CallingConvention = CallingConvention.Cdecl)] CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void Transpose4to3_internal(Mat4* source, Mat3* target); internal static extern unsafe void Transpose4to3_internal(Mat4* source, Mat3* target);
[DllImport(InternalIO.SSC_libname, EntryPoint = "transpose4to2", [DllImport(SSC_libname, EntryPoint = "transpose4to2",
CallingConvention = CallingConvention.Cdecl)] CallingConvention = CallingConvention.Cdecl)]
internal static extern unsafe void Transpose4to2_internal(Mat4* source, Mat2* target); internal static extern unsafe void Transpose4to2_internal(Mat4* source, Mat2* target);
+7 -1
View File
@@ -28,13 +28,17 @@
// //
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
using System;
using System.Runtime.CompilerServices;
namespace StgSharp.Math namespace StgSharp.Math
{ {
public static partial class Scaler public static partial class Scaler
{ {
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static float Cos(float x) public static float Cos(float x)
{ {
/*
float refer = x / 360.0f; float refer = x / 360.0f;
refer -= (int)refer; refer -= (int)refer;
@@ -47,6 +51,8 @@ namespace StgSharp.Math
return ((-sinData[a]) * ((0.1570796327f * refer) - (6.459640975e-4f * refer * refer2))) return ((-sinData[a]) * ((0.1570796327f * refer) - (6.459640975e-4f * refer * refer2)))
+ (cosData[a] * ((1 - (0.0123370055f * refer2)) + (2.536695709e-5f * refer2 * refer2))); + (cosData[a] * ((1 - (0.0123370055f * refer2)) + (2.536695709e-5f * refer2 * refer2)));
*/
return MathF.Cos(x);
} }
} }
+6
View File
@@ -28,7 +28,9 @@
// //
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
using System;
using System.Net.NetworkInformation; using System.Net.NetworkInformation;
using System.Runtime.CompilerServices;
namespace StgSharp.Math namespace StgSharp.Math
{ {
@@ -65,8 +67,10 @@ namespace StgSharp.Math
}; };
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static unsafe float Sin(float x) public static unsafe float Sin(float x)
{ {
/*
float refer = x / 360.0f; float refer = x / 360.0f;
refer -= (int)refer; refer -= (int)refer;
@@ -79,6 +83,8 @@ namespace StgSharp.Math
return (sinData[a] * ((1 - (0.0123370055f * refer2)) + (2.536695709e-5f * refer2 * refer2))) return (sinData[a] * ((1 - (0.0123370055f * refer2)) + (2.536695709e-5f * refer2 * refer2)))
+ (cosData[a] * ((0.1570796327f * refer) - (6.459640975e-4f * refer * refer2))); + (cosData[a] * ((0.1570796327f * refer) - (6.459640975e-4f * refer * refer2)));
*/
return MathF.Sin(x);
} }
} }
@@ -217,11 +217,26 @@
</member> </member>
<member name="T:StgSharp.Graphics.ElementBuffer"> <member name="T:StgSharp.Graphics.ElementBuffer">
<summary> <summary>
A collecion of handle to Element Buffer Object in OpenGL. A collection of handle to Element Buffer Object in OpenGL.
Each <see langword="uint"/> value indexed from instance of this class this Each <see langword="uint"/> value indexed from instance of this class this
is the only handle to one Element Buffer Object. is the only handle to one Element Buffer Object.
</summary> </summary>
</member> </member>
<member name="M:StgSharp.Graphics.FrameBuffer.Bind(System.Int32)">
<summary>
Bind the frame buffer object with name frame buffer to the frame buffer target specified by target.
<see langword="FrameBufferTarget.All"/> will be set as default target.
</summary>
<param name="index">Index of object to be binded in handle set</param>
</member>
<member name="M:StgSharp.Graphics.FrameBuffer.Bind(StgSharp.Graphics.FrameBufferTarget,System.Int32)">
<summary>
Bind the frame buffer object with name frame buffer to the frame buffer target specified by target.
Target of this frame buffer should be set manually.
</summary>
<param name="target">The frame buffer target of the binding operation.</param>
<param name="index">Index of object to be binded in handle set</param>
</member>
<member name="M:StgSharp.Graphics.Texture.LoadTexture(System.Int32,System.String,StgSharp.Graphics.ImageLoader)"> <member name="M:StgSharp.Graphics.Texture.LoadTexture(System.Int32,System.String,StgSharp.Graphics.ImageLoader)">
<summary> <summary>
</summary> </summary>
@@ -285,6 +300,14 @@
This <see langword="glHandle"/> will be not usable. This <see langword="glHandle"/> will be not usable.
</summary> </summary>
</member> </member>
<member name="M:StgSharp.Graphics.GL.BindFrameBuffer(StgSharp.Graphics.FrameBufferTarget,StgSharp.Graphics.glHandle)">
<summary>
Bind a frame buffer to a frame buffer target
Same function as <see href="https://docs.gl/gl3/glBindFramebuffer">glBindFramebuffer</see>.
</summary>
<param name="target"> The frame buffer target of the binding operation.</param>
<param name="handle"> The handle of the frame buffer object to bind.</param>
</member>
<member name="M:StgSharp.Graphics.ShaderEdit.IglConvertable.SetAllUniforms"> <member name="M:StgSharp.Graphics.ShaderEdit.IglConvertable.SetAllUniforms">
<summary> <summary>
@@ -641,7 +664,7 @@
Create a new <see cref="T:StgSharp.TimeSpanProvider"/> and define the length of time span. Length of a single time span is defined in microseconds. Create a new <see cref="T:StgSharp.TimeSpanProvider"/> and define the length of time span. Length of a single time span is defined in microseconds.
</summary> </summary>
<param name="spanLength"></param> <param name="spanLength"></param>
<parma name="provider"></parma> <param name="provider"></param>
</member> </member>
<member name="M:StgSharp.TimeSpanProvider.#ctor(System.Double,StgSharpDebug.Logic.TimeSourceProviderBase)"> <member name="M:StgSharp.TimeSpanProvider.#ctor(System.Double,StgSharpDebug.Logic.TimeSourceProviderBase)">
<summary> <summary>
@@ -649,14 +672,14 @@
Length of a single time span is defined in seconds. Length of a single time span is defined in seconds.
</summary> </summary>
<param name="spanLength"></param> <param name="spanLength"></param>
<parma name="provider"></parma> <param name="provider"></param>
</member> </member>
<member name="M:StgSharp.TimeSpanProvider.#ctor(System.Int64,System.Int32,StgSharpDebug.Logic.TimeSourceProviderBase)"> <member name="M:StgSharp.TimeSpanProvider.#ctor(System.Int64,System.Int32,StgSharpDebug.Logic.TimeSourceProviderBase)">
<summary> <summary>
Create a new <see cref="T:StgSharp.TimeSpanProvider"/> and define the length of time span. Length of a single time span is defined in microseconds. Create a new <see cref="T:StgSharp.TimeSpanProvider"/> and define the length of time span. Length of a single time span is defined in microseconds.
</summary> </summary>
<param name="spanLength"></param> <param name="spanLength"></param>
<parma name="provider"></parma> <param name="provider"></param>
</member> </member>
<member name="P:StgSharp.TimeSpanProvider.DefaultProvider"> <member name="P:StgSharp.TimeSpanProvider.DefaultProvider">
<summary> <summary>
@@ -14,7 +14,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("StgSharp")] [assembly: System.Reflection.AssemblyCompanyAttribute("StgSharp")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+e1e416bb41a7e16ddec5e7c16d64c72d6aa380e1")] [assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+f0f80f72f14d191bade9e1e542454d72f0d304a6")]
[assembly: System.Reflection.AssemblyProductAttribute("StgSharp")] [assembly: System.Reflection.AssemblyProductAttribute("StgSharp")]
[assembly: System.Reflection.AssemblyTitleAttribute("StgSharp")] [assembly: System.Reflection.AssemblyTitleAttribute("StgSharp")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
@@ -1 +1 @@
2ada11ce10f85a06de358a4bce8f696ee557358f3cc0800e7c9895081adaf694 30c7eaeacc2c3f8ad15e774016a7d358194480d922ee1ddc0179461a26d1d3f4
@@ -1 +1 @@
22685e6e651dc0dffa71da397e1fde84f3b8a45e5faf79b0982e58cbaad38609 250072786423ed5ed10358dc20260df511bfddc1ecacb043b419685cfa56cebe
@@ -1 +1 @@
{"documents":{"D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\*":"https://raw.githubusercontent.com/Nitload-NSI/CCD_Github/e1e416bb41a7e16ddec5e7c16d64c72d6aa380e1/*"}} {"documents":{"D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\*":"https://raw.githubusercontent.com/Nitload-NSI/CCD_Github/f0f80f72f14d191bade9e1e542454d72f0d304a6/*"}}
@@ -217,11 +217,26 @@
</member> </member>
<member name="T:StgSharp.Graphics.ElementBuffer"> <member name="T:StgSharp.Graphics.ElementBuffer">
<summary> <summary>
A collecion of handle to Element Buffer Object in OpenGL. A collection of handle to Element Buffer Object in OpenGL.
Each <see langword="uint"/> value indexed from instance of this class this Each <see langword="uint"/> value indexed from instance of this class this
is the only handle to one Element Buffer Object. is the only handle to one Element Buffer Object.
</summary> </summary>
</member> </member>
<member name="M:StgSharp.Graphics.FrameBuffer.Bind(System.Int32)">
<summary>
Bind the frame buffer object with name frame buffer to the frame buffer target specified by target.
<see langword="FrameBufferTarget.All"/> will be set as default target.
</summary>
<param name="index">Index of object to be binded in handle set</param>
</member>
<member name="M:StgSharp.Graphics.FrameBuffer.Bind(StgSharp.Graphics.FrameBufferTarget,System.Int32)">
<summary>
Bind the frame buffer object with name frame buffer to the frame buffer target specified by target.
Target of this frame buffer should be set manually.
</summary>
<param name="target">The frame buffer target of the binding operation.</param>
<param name="index">Index of object to be binded in handle set</param>
</member>
<member name="M:StgSharp.Graphics.Texture.LoadTexture(System.Int32,System.String,StgSharp.Graphics.ImageLoader)"> <member name="M:StgSharp.Graphics.Texture.LoadTexture(System.Int32,System.String,StgSharp.Graphics.ImageLoader)">
<summary> <summary>
</summary> </summary>
@@ -285,6 +300,14 @@
This <see langword="glHandle"/> will be not usable. This <see langword="glHandle"/> will be not usable.
</summary> </summary>
</member> </member>
<member name="M:StgSharp.Graphics.GL.BindFrameBuffer(StgSharp.Graphics.FrameBufferTarget,StgSharp.Graphics.glHandle)">
<summary>
Bind a frame buffer to a frame buffer target
Same function as <see href="https://docs.gl/gl3/glBindFramebuffer">glBindFramebuffer</see>.
</summary>
<param name="target"> The frame buffer target of the binding operation.</param>
<param name="handle"> The handle of the frame buffer object to bind.</param>
</member>
<member name="M:StgSharp.Graphics.ShaderEdit.IglConvertable.SetAllUniforms"> <member name="M:StgSharp.Graphics.ShaderEdit.IglConvertable.SetAllUniforms">
<summary> <summary>
@@ -641,7 +664,7 @@
Create a new <see cref="T:StgSharp.TimeSpanProvider"/> and define the length of time span. Length of a single time span is defined in microseconds. Create a new <see cref="T:StgSharp.TimeSpanProvider"/> and define the length of time span. Length of a single time span is defined in microseconds.
</summary> </summary>
<param name="spanLength"></param> <param name="spanLength"></param>
<parma name="provider"></parma> <param name="provider"></param>
</member> </member>
<member name="M:StgSharp.TimeSpanProvider.#ctor(System.Double,StgSharpDebug.Logic.TimeSourceProviderBase)"> <member name="M:StgSharp.TimeSpanProvider.#ctor(System.Double,StgSharpDebug.Logic.TimeSourceProviderBase)">
<summary> <summary>
@@ -649,14 +672,14 @@
Length of a single time span is defined in seconds. Length of a single time span is defined in seconds.
</summary> </summary>
<param name="spanLength"></param> <param name="spanLength"></param>
<parma name="provider"></parma> <param name="provider"></param>
</member> </member>
<member name="M:StgSharp.TimeSpanProvider.#ctor(System.Int64,System.Int32,StgSharpDebug.Logic.TimeSourceProviderBase)"> <member name="M:StgSharp.TimeSpanProvider.#ctor(System.Int64,System.Int32,StgSharpDebug.Logic.TimeSourceProviderBase)">
<summary> <summary>
Create a new <see cref="T:StgSharp.TimeSpanProvider"/> and define the length of time span. Length of a single time span is defined in microseconds. Create a new <see cref="T:StgSharp.TimeSpanProvider"/> and define the length of time span. Length of a single time span is defined in microseconds.
</summary> </summary>
<param name="spanLength"></param> <param name="spanLength"></param>
<parma name="provider"></parma> <param name="provider"></param>
</member> </member>
<member name="P:StgSharp.TimeSpanProvider.DefaultProvider"> <member name="P:StgSharp.TimeSpanProvider.DefaultProvider">
<summary> <summary>
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+2 -1
View File
@@ -44,12 +44,13 @@
<UseDebugLibraries>true</UseDebugLibraries> <UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset> <PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>false</WholeProgramOptimization>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType> <ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries> <UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset> <PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization> <WholeProgramOptimization>PGOptimize</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+4 -4
View File
@@ -3,8 +3,8 @@
SSCAPI _inline void __cdecl transpose2to3(matrix2map* source, matrix3map* target) SSCAPI _inline void __cdecl transpose2to3(matrix2map* source, matrix3map* target)
{ {
__m128 t0 = _mm_shuffle_ps(ALIGN(source->m[0][0]), ALIGN(source->m[0][1]), _MM_SHUFFLE(1, 0, 1, 0)); __m128 t0 = _mm_shuffle_ps(ALIGN(source->colum[0]), ALIGN(source->colum[1]), _MM_SHUFFLE(1, 0, 1, 0));
__m128 t1 = _mm_shuffle_ps(ALIGN(source->m[0][0]), ALIGN(source->m[0][1]), _MM_SHUFFLE(3, 2, 3, 2)); __m128 t1 = _mm_shuffle_ps(ALIGN(source->colum[0]), ALIGN(source->colum[1]), _MM_SHUFFLE(3, 2, 3, 2));
target->colum[0] = _mm_shuffle_ps(t0, zeroVec, _MM_SHUFFLE(2, 0, 2, 0)); target->colum[0] = _mm_shuffle_ps(t0, zeroVec, _MM_SHUFFLE(2, 0, 2, 0));
target->colum[1] = _mm_shuffle_ps(t0, zeroVec, _MM_SHUFFLE(3, 1, 3, 1)); target->colum[1] = _mm_shuffle_ps(t0, zeroVec, _MM_SHUFFLE(3, 1, 3, 1));
@@ -13,8 +13,8 @@ SSCAPI _inline void __cdecl transpose2to3(matrix2map* source, matrix3map* target
SSCAPI _inline void __cdecl transpose2to4(matrix2map* source, matrix4map* target) SSCAPI _inline void __cdecl transpose2to4(matrix2map* source, matrix4map* target)
{ {
__m128 t0 = _mm_shuffle_ps(ALIGN(source->m[0][0]), ALIGN(source->m[0][1]), _MM_SHUFFLE(1, 0, 1, 0)); __m128 t0 = _mm_shuffle_ps(ALIGN(source->colum[0]), ALIGN(source->colum[1]), _MM_SHUFFLE(1, 0, 1, 0));
__m128 t1 = _mm_shuffle_ps(ALIGN(source->m[0][0]), ALIGN(source->m[0][1]), _MM_SHUFFLE(3, 2, 3, 2)); __m128 t1 = _mm_shuffle_ps(ALIGN(source->colum[0]), ALIGN(source->colum[1]), _MM_SHUFFLE(3, 2, 3, 2));
target->colum[0] = _mm_shuffle_ps(t0, zeroVec, _MM_SHUFFLE(2, 0, 2, 0)); target->colum[0] = _mm_shuffle_ps(t0, zeroVec, _MM_SHUFFLE(2, 0, 2, 0));
target->colum[1] = _mm_shuffle_ps(t0, zeroVec, _MM_SHUFFLE(3, 1, 3, 1)); target->colum[1] = _mm_shuffle_ps(t0, zeroVec, _MM_SHUFFLE(3, 1, 3, 1));
+10 -10
View File
@@ -4,8 +4,8 @@
SSCAPI __inline void _cdecl transpose3to2(matrix3map* source, matrix2map* target) SSCAPI __inline void _cdecl transpose3to2(matrix3map* source, matrix2map* target)
{ {
__m128 t0 = _mm_shuffle_ps(ALIGN(source->m[0][0]), ALIGN(source->m[0][1]), _MM_SHUFFLE(1, 0, 1, 0)); __m128 t0 = _mm_shuffle_ps(ALIGN(source->colum[0]), ALIGN(source->colum[1]), _MM_SHUFFLE(1, 0, 1, 0));
__m128 t2 = _mm_shuffle_ps(ALIGN(source->m[0][2]), zeroVec, _MM_SHUFFLE(1, 0, 1, 0)); __m128 t2 = _mm_shuffle_ps(ALIGN(source->colum[2]), zeroVec, _MM_SHUFFLE(1, 0, 1, 0));
target->colum[0] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(2, 0, 2, 0)); target->colum[0] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(2, 0, 2, 0));
target->colum[1] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(3, 1, 3, 1)); target->colum[1] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(3, 1, 3, 1));
@@ -13,10 +13,10 @@ SSCAPI __inline void _cdecl transpose3to2(matrix3map* source, matrix2map* target
SSCAPI __inline void _cdecl transpose3to3(matrix3map* source, matrix3map* target) SSCAPI __inline void _cdecl transpose3to3(matrix3map* source, matrix3map* target)
{ {
__m128 t0 = _mm_shuffle_ps(ALIGN(source->m[0][0]), ALIGN(source->m[0][1]), _MM_SHUFFLE(1, 0, 1, 0)); __m128 t0 = _mm_shuffle_ps(ALIGN(source->colum[0]), ALIGN(source->colum[1]), _MM_SHUFFLE(1, 0, 1, 0));
__m128 t1 = _mm_shuffle_ps(ALIGN(source->m[0][0]), ALIGN(source->m[0][1]), _MM_SHUFFLE(3, 2, 3, 2)); __m128 t1 = _mm_shuffle_ps(ALIGN(source->colum[0]), ALIGN(source->colum[1]), _MM_SHUFFLE(3, 2, 3, 2));
__m128 t2 = _mm_shuffle_ps(ALIGN(source->m[0][2]), zeroVec, _MM_SHUFFLE(1, 0, 1, 0)); __m128 t2 = _mm_shuffle_ps(ALIGN(source->colum[2]), zeroVec, _MM_SHUFFLE(1, 0, 1, 0));
__m128 t3 = _mm_shuffle_ps(ALIGN(source->m[0][2]), zeroVec, _MM_SHUFFLE(3, 2, 3, 2)); __m128 t3 = _mm_shuffle_ps(ALIGN(source->colum[2]), zeroVec, _MM_SHUFFLE(3, 2, 3, 2));
target->colum[0] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(2, 0, 2, 0)); target->colum[0] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(2, 0, 2, 0));
target->colum[1] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(3, 1, 3, 1)); target->colum[1] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(3, 1, 3, 1));
@@ -25,10 +25,10 @@ SSCAPI __inline void _cdecl transpose3to3(matrix3map* source, matrix3map* target
SSCAPI __inline void _cdecl transpose3to4(matrix3map* source, matrix4map* target) SSCAPI __inline void _cdecl transpose3to4(matrix3map* source, matrix4map* target)
{ {
__m128 t0 = _mm_shuffle_ps(ALIGN(source->m[0][0]), ALIGN(source->m[0][1]), _MM_SHUFFLE(1, 0, 1, 0)); __m128 t0 = _mm_shuffle_ps(ALIGN(source->colum[0]), ALIGN(source->colum[1]), _MM_SHUFFLE(1, 0, 1, 0));
__m128 t1 = _mm_shuffle_ps(ALIGN(source->m[0][0]), ALIGN(source->m[0][1]), _MM_SHUFFLE(3, 2, 3, 2)); __m128 t1 = _mm_shuffle_ps(ALIGN(source->colum[0]), ALIGN(source->colum[1]), _MM_SHUFFLE(3, 2, 3, 2));
__m128 t2 = _mm_shuffle_ps(ALIGN(source->m[0][2]), zeroVec, _MM_SHUFFLE(1, 0, 1, 0)); __m128 t2 = _mm_shuffle_ps(ALIGN(source->colum[2]), zeroVec, _MM_SHUFFLE(1, 0, 1, 0));
__m128 t3 = _mm_shuffle_ps(ALIGN(source->m[0][2]), zeroVec, _MM_SHUFFLE(3, 2, 3, 2)); __m128 t3 = _mm_shuffle_ps(ALIGN(source->colum[2]), zeroVec, _MM_SHUFFLE(3, 2, 3, 2));
target->colum[0] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(2, 0, 2, 0)); target->colum[0] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(2, 0, 2, 0));
target->colum[1] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(3, 1, 3, 1)); target->colum[1] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(3, 1, 3, 1));
+1 -1
View File
@@ -30,6 +30,6 @@
#define SSCDECL __cdecl #define SSCDECL __cdecl
#define zeroVec (__m128){0,0,0,0} #define zeroVec _mm_setzero_ps()
#endif // #endif //
@@ -1,40 +1 @@
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc.bsc
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\vc143.pdb
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\vc143.idb
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\dllmain.sbr
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\mat2.sbr
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\mat3.sbr
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\mat4.sbr
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\stb_image.sbr
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\stgsharpc.sbr
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\stgsharpc.obj
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\stgsharpc.cod
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\stb_image.obj
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\stb_image.cod
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\mat4.obj
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\mat4.cod
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\mat3.obj
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\mat3.cod
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\mat2.obj
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\mat2.cod
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\dllmain.obj
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\dllmain.cod
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\vector.sbr
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\vector.obj
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\vector.cod
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc.dll
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc.pdb
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc.lib
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc.exp
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\stgsharpc.ilk
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\stgsharpc.tlog\bscmake.command.1.tlog
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\stgsharpc.tlog\bscmake.read.1.tlog
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\stgsharpc.tlog\bscmake.write.1.tlog
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\stgsharpc.tlog\cl.command.1.tlog d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\stgsharpc.tlog\cl.command.1.tlog
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\stgsharpc.tlog\cl.items.tlog
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\stgsharpc.tlog\cl.read.1.tlog
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\stgsharpc.tlog\cl.write.1.tlog
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\stgsharpc.tlog\link.command.1.tlog
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\stgsharpc.tlog\link.read.1.tlog
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\stgsharpc.tlog\link.secondary.1.tlog
d:\nitloadindustry\研究项目\1-flagship\th2020\projectfile\源代码\stgsharpc\x64\debug\stgsharpc.tlog\link.write.1.tlog
Binary file not shown.
+9 -48
View File
@@ -1,49 +1,10 @@
dllmain.c mat2.c
mat2.c D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat2.c(6,32): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
mat3.c D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat2.c(6,57): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
mat4.c D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat2.c(7,32): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(8,32): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat2.c(7,57): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(8,57): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat2.c(16,32): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(9,32): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat2.c(16,57): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(9,57): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat2.c(17,32): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(17,32): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容 D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat2.c(17,57): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(17,57): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(18,32): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(18,57): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(19,32): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(19,57): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(20,32): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(20,57): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(30,32): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(30,57): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(31,32): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(31,57): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(32,32): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(32,57): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(33,32): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(33,57): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(42,18): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(43,18): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(44,18): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(45,18): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\mat4.c(53,32): warning C4133: “函数”: 从“__m128 *”到“const float *”的类型不兼容
stb_image.c
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\stb_image.c(832,17): warning C4047: “=”:“stbi_uc”与“char [33]”的间接级别不同
StgSharpC.c
C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\shared\minwindef.h(130,1): warning C4005: “APIENTRY”: 宏重定义
(编译源文件“StgSharpC.c”)
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\glfw3.h(123,1):
参见“APIENTRY”的前一个定义
C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\um\wingdi.h(36,1): warning C4005: “WINGDIAPI”: 宏重定义
(编译源文件“StgSharpC.c”)
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\glfw3.h(133,1):
参见“WINGDIAPI”的前一个定义
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\StgSharpC.c(23,18): warning C4047: “=”:“char”与“char [27]”的间接级别不同
D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC\StgSharpC.c(67,5): warning C4047: “return”:“char *”与“char (*)[512]”的间接级别不同
vector.c
正在生成代码...
正在创建库 D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC.lib 和对象 D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC.exp
LINK : warning LNK4098: 默认库“MSVCRT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
StgSharpC.vcxproj -> D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC.dll StgSharpC.vcxproj -> D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\StgSharpC.dll
Binary file not shown.
Binary file not shown.
+148 -284
View File
@@ -143,20 +143,16 @@ EXTRN __imp__aligned_free:PROC
EXTRN _RTC_InitBase:PROC EXTRN _RTC_InitBase:PROC
EXTRN _RTC_Shutdown:PROC EXTRN _RTC_Shutdown:PROC
EXTRN __CheckForDebuggerJustMyCode:PROC EXTRN __CheckForDebuggerJustMyCode:PROC
EXTRN __GSHandlerCheck:PROC
EXTRN __security_check_cookie:PROC
EXTRN __security_cookie:QWORD
EXTRN _fltused:DWORD
; COMDAT pdata ; COMDAT pdata
pdata SEGMENT pdata SEGMENT
$pdata$transpose2to3 DD imagerel $LN3 $pdata$transpose2to3 DD imagerel $LN3
DD imagerel $LN3+461 DD imagerel $LN3+270
DD imagerel $unwind$transpose2to3 DD imagerel $unwind$transpose2to3
pdata ENDS pdata ENDS
; COMDAT pdata ; COMDAT pdata
pdata SEGMENT pdata SEGMENT
$pdata$transpose2to4 DD imagerel $LN3 $pdata$transpose2to4 DD imagerel $LN3
DD imagerel $LN3+537 DD imagerel $LN3+304
DD imagerel $unwind$transpose2to4 DD imagerel $unwind$transpose2to4
pdata ENDS pdata ENDS
; COMDAT pdata ; COMDAT pdata
@@ -180,33 +176,19 @@ $unwind$deinit_mat2 DD 025051301H
DD 07007001dH DD 07007001dH
DD 05006H DD 05006H
xdata ENDS xdata ENDS
; COMDAT voltbl
voltbl SEGMENT
_volmd DW 022H
DW 0200H
voltbl ENDS
; COMDAT xdata ; COMDAT xdata
xdata SEGMENT xdata SEGMENT
$unwind$transpose2to4 DD 025052919H $unwind$transpose2to4 DD 025051801H
DD 01132318H DD 01132318H
DD 0700c0041H DD 0700c0029H
DD 0500bH DD 0500bH
DD imagerel __GSHandlerCheck
DD 01f8H
xdata ENDS xdata ENDS
; COMDAT voltbl
voltbl SEGMENT
_volmd DW 022H
DW 01b4H
voltbl ENDS
; COMDAT xdata ; COMDAT xdata
xdata SEGMENT xdata SEGMENT
$unwind$transpose2to3 DD 025052919H $unwind$transpose2to3 DD 025051801H
DD 01132318H DD 01132318H
DD 0700c003bH DD 0700c0029H
DD 0500bH DD 0500bH
DD imagerel __GSHandlerCheck
DD 01c8H
xdata ENDS xdata ENDS
; Function compile flags: /Odt ; Function compile flags: /Odt
; COMDAT __JustMyCode_Default ; COMDAT __JustMyCode_Default
@@ -257,13 +239,8 @@ _TEXT ENDS
_TEXT SEGMENT _TEXT SEGMENT
t0$ = 16 t0$ = 16
t1$ = 64 t1$ = 64
$S4$ = 112 source$ = 320
$S5$ = 160 target$ = 328
$S6$ = 208
$S7$ = 256
__$ArrayPad$ = 472
source$ = 512
target$ = 520
transpose2to4 PROC ; COMDAT transpose2to4 PROC ; COMDAT
; 15 : { ; 15 : {
@@ -273,169 +250,109 @@ $LN3:
00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
0000a 55 push rbp 0000a 55 push rbp
0000b 57 push rdi 0000b 57 push rdi
0000c 48 81 ec 08 02 0000c 48 81 ec 48 01
00 00 sub rsp, 520 ; 00000208H 00 00 sub rsp, 328 ; 00000148H
00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
00018 48 8b 05 00 00 00018 48 8d 0d 00 00
00 00 mov rax, QWORD PTR __security_cookie
0001f 48 33 c5 xor rax, rbp
00022 48 89 85 d8 01
00 00 mov QWORD PTR __$ArrayPad$[rbp], rax
00029 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:__54E5184D_mat2@c 00 00 lea rcx, OFFSET FLAT:__54E5184D_mat2@c
00030 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
; 16 : __m128 t0 = _mm_shuffle_ps(ALIGN(source->m[0][0]), ALIGN(source->m[0][1]), _MM_SHUFFLE(1, 0, 1, 0)); ; 16 : __m128 t0 = _mm_shuffle_ps(ALIGN(source->colum[0]), ALIGN(source->colum[1]), _MM_SHUFFLE(1, 0, 1, 0));
00035 b8 08 00 00 00 mov eax, 8 00024 b8 10 00 00 00 mov eax, 16
0003a 48 6b c0 00 imul rax, rax, 0 00029 48 6b c0 01 imul rax, rax, 1
0003e 48 8b 8d 00 02 0002d 48 8b 8d 40 01
00 00 mov rcx, QWORD PTR source$[rbp] 00 00 mov rcx, QWORD PTR source$[rbp]
00045 48 03 c8 add rcx, rax 00034 48 03 c8 add rcx, rax
00048 48 8b c1 mov rax, rcx 00037 48 8b c1 mov rax, rcx
0004b b9 04 00 00 00 mov ecx, 4 0003a 0f 10 00 movups xmm0, XMMWORD PTR [rax]
00050 48 6b c9 01 imul rcx, rcx, 1 0003d b8 10 00 00 00 mov eax, 16
00054 48 03 c1 add rax, rcx 00042 48 6b c0 00 imul rax, rax, 0
00057 0f 10 00 movups xmm0, XMMWORD PTR [rax] 00046 48 8b 8d 40 01
0005a b8 08 00 00 00 mov eax, 8
0005f 48 6b c0 00 imul rax, rax, 0
00063 48 8b 8d 00 02
00 00 mov rcx, QWORD PTR source$[rbp] 00 00 mov rcx, QWORD PTR source$[rbp]
0006a 48 03 c8 add rcx, rax 0004d 48 03 c8 add rcx, rax
0006d 48 8b c1 mov rax, rcx 00050 48 8b c1 mov rax, rcx
00070 b9 04 00 00 00 mov ecx, 4 00053 0f 10 08 movups xmm1, XMMWORD PTR [rax]
00075 48 6b c9 00 imul rcx, rcx, 0 00056 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H
00079 48 03 c1 add rax, rcx 0005a 0f 28 c1 movaps xmm0, xmm1
0007c 0f 10 08 movups xmm1, XMMWORD PTR [rax] 0005d 0f 29 45 10 movaps XMMWORD PTR t0$[rbp], xmm0
0007f 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H
00083 0f 28 c1 movaps xmm0, xmm1
00086 0f 29 45 10 movaps XMMWORD PTR t0$[rbp], xmm0
; 17 : __m128 t1 = _mm_shuffle_ps(ALIGN(source->m[0][0]), ALIGN(source->m[0][1]), _MM_SHUFFLE(3, 2, 3, 2)); ; 17 : __m128 t1 = _mm_shuffle_ps(ALIGN(source->colum[0]), ALIGN(source->colum[1]), _MM_SHUFFLE(3, 2, 3, 2));
0008a b8 08 00 00 00 mov eax, 8 00061 b8 10 00 00 00 mov eax, 16
0008f 48 6b c0 00 imul rax, rax, 0 00066 48 6b c0 01 imul rax, rax, 1
00093 48 8b 8d 00 02 0006a 48 8b 8d 40 01
00 00 mov rcx, QWORD PTR source$[rbp] 00 00 mov rcx, QWORD PTR source$[rbp]
0009a 48 03 c8 add rcx, rax 00071 48 03 c8 add rcx, rax
0009d 48 8b c1 mov rax, rcx 00074 48 8b c1 mov rax, rcx
000a0 b9 04 00 00 00 mov ecx, 4 00077 0f 10 00 movups xmm0, XMMWORD PTR [rax]
000a5 48 6b c9 01 imul rcx, rcx, 1 0007a b8 10 00 00 00 mov eax, 16
000a9 48 03 c1 add rax, rcx 0007f 48 6b c0 00 imul rax, rax, 0
000ac 0f 10 00 movups xmm0, XMMWORD PTR [rax] 00083 48 8b 8d 40 01
000af b8 08 00 00 00 mov eax, 8
000b4 48 6b c0 00 imul rax, rax, 0
000b8 48 8b 8d 00 02
00 00 mov rcx, QWORD PTR source$[rbp] 00 00 mov rcx, QWORD PTR source$[rbp]
000bf 48 03 c8 add rcx, rax 0008a 48 03 c8 add rcx, rax
000c2 48 8b c1 mov rax, rcx 0008d 48 8b c1 mov rax, rcx
000c5 b9 04 00 00 00 mov ecx, 4 00090 0f 10 08 movups xmm1, XMMWORD PTR [rax]
000ca 48 6b c9 00 imul rcx, rcx, 0 00093 0f c6 c8 ee shufps xmm1, xmm0, 238 ; 000000eeH
000ce 48 03 c1 add rax, rcx 00097 0f 28 c1 movaps xmm0, xmm1
000d1 0f 10 08 movups xmm1, XMMWORD PTR [rax] 0009a 0f 29 45 40 movaps XMMWORD PTR t1$[rbp], xmm0
000d4 0f c6 c8 ee shufps xmm1, xmm0, 238 ; 000000eeH
000d8 0f 28 c1 movaps xmm0, xmm1
000db 0f 29 45 40 movaps XMMWORD PTR t1$[rbp], xmm0
; 18 : ; 18 :
; 19 : target->colum[0] = _mm_shuffle_ps(t0, zeroVec, _MM_SHUFFLE(2, 0, 2, 0)); ; 19 : target->colum[0] = _mm_shuffle_ps(t0, zeroVec, _MM_SHUFFLE(2, 0, 2, 0));
000df 0f 57 c0 xorps xmm0, xmm0 0009e 0f 57 c0 xorps xmm0, xmm0
000e2 f3 0f 11 45 70 movss DWORD PTR $S4$[rbp], xmm0 000a1 0f 28 4d 10 movaps xmm1, XMMWORD PTR t0$[rbp]
000e7 0f 57 c0 xorps xmm0, xmm0 000a5 0f c6 c8 88 shufps xmm1, xmm0, 136 ; 00000088H
000ea f3 0f 11 45 74 movss DWORD PTR $S4$[rbp+4], xmm0 000a9 0f 28 c1 movaps xmm0, xmm1
000ef 0f 57 c0 xorps xmm0, xmm0 000ac b8 10 00 00 00 mov eax, 16
000f2 f3 0f 11 45 78 movss DWORD PTR $S4$[rbp+8], xmm0 000b1 48 6b c0 00 imul rax, rax, 0
000f7 0f 57 c0 xorps xmm0, xmm0 000b5 48 8b 8d 48 01
000fa f3 0f 11 45 7c movss DWORD PTR $S4$[rbp+12], xmm0
000ff 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp]
00103 0f c6 45 70 88 shufps xmm0, XMMWORD PTR $S4$[rbp], 136 ; 00000088H
00108 b8 10 00 00 00 mov eax, 16
0010d 48 6b c0 00 imul rax, rax, 0
00111 48 8b 8d 08 02
00 00 mov rcx, QWORD PTR target$[rbp] 00 00 mov rcx, QWORD PTR target$[rbp]
00118 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 000bc 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
; 20 : target->colum[1] = _mm_shuffle_ps(t0, zeroVec, _MM_SHUFFLE(3, 1, 3, 1)); ; 20 : target->colum[1] = _mm_shuffle_ps(t0, zeroVec, _MM_SHUFFLE(3, 1, 3, 1));
0011c 0f 57 c0 xorps xmm0, xmm0 000c0 0f 57 c0 xorps xmm0, xmm0
0011f f3 0f 11 85 a0 000c3 0f 28 4d 10 movaps xmm1, XMMWORD PTR t0$[rbp]
00 00 00 movss DWORD PTR $S5$[rbp], xmm0 000c7 0f c6 c8 dd shufps xmm1, xmm0, 221 ; 000000ddH
00127 0f 57 c0 xorps xmm0, xmm0 000cb 0f 28 c1 movaps xmm0, xmm1
0012a f3 0f 11 85 a4 000ce b8 10 00 00 00 mov eax, 16
00 00 00 movss DWORD PTR $S5$[rbp+4], xmm0 000d3 48 6b c0 01 imul rax, rax, 1
00132 0f 57 c0 xorps xmm0, xmm0 000d7 48 8b 8d 48 01
00135 f3 0f 11 85 a8
00 00 00 movss DWORD PTR $S5$[rbp+8], xmm0
0013d 0f 57 c0 xorps xmm0, xmm0
00140 f3 0f 11 85 ac
00 00 00 movss DWORD PTR $S5$[rbp+12], xmm0
00148 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp]
0014c 0f c6 85 a0 00
00 00 dd shufps xmm0, XMMWORD PTR $S5$[rbp], 221 ; 000000ddH
00154 b8 10 00 00 00 mov eax, 16
00159 48 6b c0 01 imul rax, rax, 1
0015d 48 8b 8d 08 02
00 00 mov rcx, QWORD PTR target$[rbp] 00 00 mov rcx, QWORD PTR target$[rbp]
00164 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 000de 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
; 21 : target->colum[2] = _mm_shuffle_ps(t1, zeroVec, _MM_SHUFFLE(2, 0, 2, 0)); ; 21 : target->colum[2] = _mm_shuffle_ps(t1, zeroVec, _MM_SHUFFLE(2, 0, 2, 0));
00168 0f 57 c0 xorps xmm0, xmm0 000e2 0f 57 c0 xorps xmm0, xmm0
0016b f3 0f 11 85 d0 000e5 0f 28 4d 40 movaps xmm1, XMMWORD PTR t1$[rbp]
00 00 00 movss DWORD PTR $S6$[rbp], xmm0 000e9 0f c6 c8 88 shufps xmm1, xmm0, 136 ; 00000088H
00173 0f 57 c0 xorps xmm0, xmm0 000ed 0f 28 c1 movaps xmm0, xmm1
00176 f3 0f 11 85 d4 000f0 b8 10 00 00 00 mov eax, 16
00 00 00 movss DWORD PTR $S6$[rbp+4], xmm0 000f5 48 6b c0 02 imul rax, rax, 2
0017e 0f 57 c0 xorps xmm0, xmm0 000f9 48 8b 8d 48 01
00181 f3 0f 11 85 d8
00 00 00 movss DWORD PTR $S6$[rbp+8], xmm0
00189 0f 57 c0 xorps xmm0, xmm0
0018c f3 0f 11 85 dc
00 00 00 movss DWORD PTR $S6$[rbp+12], xmm0
00194 0f 28 45 40 movaps xmm0, XMMWORD PTR t1$[rbp]
00198 0f c6 85 d0 00
00 00 88 shufps xmm0, XMMWORD PTR $S6$[rbp], 136 ; 00000088H
001a0 b8 10 00 00 00 mov eax, 16
001a5 48 6b c0 02 imul rax, rax, 2
001a9 48 8b 8d 08 02
00 00 mov rcx, QWORD PTR target$[rbp] 00 00 mov rcx, QWORD PTR target$[rbp]
001b0 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 00100 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
; 22 : target->colum[3] = _mm_shuffle_ps(t1, zeroVec, _MM_SHUFFLE(3, 1, 3, 1)); ; 22 : target->colum[3] = _mm_shuffle_ps(t1, zeroVec, _MM_SHUFFLE(3, 1, 3, 1));
001b4 0f 57 c0 xorps xmm0, xmm0 00104 0f 57 c0 xorps xmm0, xmm0
001b7 f3 0f 11 85 00 00107 0f 28 4d 40 movaps xmm1, XMMWORD PTR t1$[rbp]
01 00 00 movss DWORD PTR $S7$[rbp], xmm0 0010b 0f c6 c8 dd shufps xmm1, xmm0, 221 ; 000000ddH
001bf 0f 57 c0 xorps xmm0, xmm0 0010f 0f 28 c1 movaps xmm0, xmm1
001c2 f3 0f 11 85 04 00112 b8 10 00 00 00 mov eax, 16
01 00 00 movss DWORD PTR $S7$[rbp+4], xmm0 00117 48 6b c0 03 imul rax, rax, 3
001ca 0f 57 c0 xorps xmm0, xmm0 0011b 48 8b 8d 48 01
001cd f3 0f 11 85 08
01 00 00 movss DWORD PTR $S7$[rbp+8], xmm0
001d5 0f 57 c0 xorps xmm0, xmm0
001d8 f3 0f 11 85 0c
01 00 00 movss DWORD PTR $S7$[rbp+12], xmm0
001e0 0f 28 45 40 movaps xmm0, XMMWORD PTR t1$[rbp]
001e4 0f c6 85 00 01
00 00 dd shufps xmm0, XMMWORD PTR $S7$[rbp], 221 ; 000000ddH
001ec b8 10 00 00 00 mov eax, 16
001f1 48 6b c0 03 imul rax, rax, 3
001f5 48 8b 8d 08 02
00 00 mov rcx, QWORD PTR target$[rbp] 00 00 mov rcx, QWORD PTR target$[rbp]
001fc 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 00122 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
; 23 : } ; 23 : }
00200 48 8b 8d d8 01 00126 48 8d a5 28 01
00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 00 00 lea rsp, QWORD PTR [rbp+296]
00207 48 33 cd xor rcx, rbp 0012d 5f pop rdi
0020a e8 00 00 00 00 call __security_check_cookie 0012e 5d pop rbp
0020f 48 8d a5 e8 01 0012f c3 ret 0
00 00 lea rsp, QWORD PTR [rbp+488]
00216 5f pop rdi
00217 5d pop rbp
00218 c3 ret 0
transpose2to4 ENDP transpose2to4 ENDP
_TEXT ENDS _TEXT ENDS
; Function compile flags: /Odtp /RTCsu /ZI ; Function compile flags: /Odtp /RTCsu /ZI
@@ -444,12 +361,8 @@ _TEXT ENDS
_TEXT SEGMENT _TEXT SEGMENT
t0$ = 16 t0$ = 16
t1$ = 64 t1$ = 64
$S1$ = 112 source$ = 320
$S2$ = 160 target$ = 328
$S3$ = 208
__$ArrayPad$ = 424
source$ = 464
target$ = 472
transpose2to3 PROC ; COMDAT transpose2to3 PROC ; COMDAT
; 5 : { ; 5 : {
@@ -459,146 +372,97 @@ $LN3:
00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
0000a 55 push rbp 0000a 55 push rbp
0000b 57 push rdi 0000b 57 push rdi
0000c 48 81 ec d8 01 0000c 48 81 ec 48 01
00 00 sub rsp, 472 ; 000001d8H 00 00 sub rsp, 328 ; 00000148H
00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
00018 48 8b 05 00 00 00018 48 8d 0d 00 00
00 00 mov rax, QWORD PTR __security_cookie
0001f 48 33 c5 xor rax, rbp
00022 48 89 85 a8 01
00 00 mov QWORD PTR __$ArrayPad$[rbp], rax
00029 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:__54E5184D_mat2@c 00 00 lea rcx, OFFSET FLAT:__54E5184D_mat2@c
00030 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
; 6 : __m128 t0 = _mm_shuffle_ps(ALIGN(source->m[0][0]), ALIGN(source->m[0][1]), _MM_SHUFFLE(1, 0, 1, 0)); ; 6 : __m128 t0 = _mm_shuffle_ps(ALIGN(source->colum[0]), ALIGN(source->colum[1]), _MM_SHUFFLE(1, 0, 1, 0));
00035 b8 08 00 00 00 mov eax, 8 00024 b8 10 00 00 00 mov eax, 16
0003a 48 6b c0 00 imul rax, rax, 0 00029 48 6b c0 01 imul rax, rax, 1
0003e 48 8b 8d d0 01 0002d 48 8b 8d 40 01
00 00 mov rcx, QWORD PTR source$[rbp] 00 00 mov rcx, QWORD PTR source$[rbp]
00045 48 03 c8 add rcx, rax 00034 48 03 c8 add rcx, rax
00048 48 8b c1 mov rax, rcx 00037 48 8b c1 mov rax, rcx
0004b b9 04 00 00 00 mov ecx, 4 0003a 0f 10 00 movups xmm0, XMMWORD PTR [rax]
00050 48 6b c9 01 imul rcx, rcx, 1 0003d b8 10 00 00 00 mov eax, 16
00054 48 03 c1 add rax, rcx 00042 48 6b c0 00 imul rax, rax, 0
00057 0f 10 00 movups xmm0, XMMWORD PTR [rax] 00046 48 8b 8d 40 01
0005a b8 08 00 00 00 mov eax, 8
0005f 48 6b c0 00 imul rax, rax, 0
00063 48 8b 8d d0 01
00 00 mov rcx, QWORD PTR source$[rbp] 00 00 mov rcx, QWORD PTR source$[rbp]
0006a 48 03 c8 add rcx, rax 0004d 48 03 c8 add rcx, rax
0006d 48 8b c1 mov rax, rcx 00050 48 8b c1 mov rax, rcx
00070 b9 04 00 00 00 mov ecx, 4 00053 0f 10 08 movups xmm1, XMMWORD PTR [rax]
00075 48 6b c9 00 imul rcx, rcx, 0 00056 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H
00079 48 03 c1 add rax, rcx 0005a 0f 28 c1 movaps xmm0, xmm1
0007c 0f 10 08 movups xmm1, XMMWORD PTR [rax] 0005d 0f 29 45 10 movaps XMMWORD PTR t0$[rbp], xmm0
0007f 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H
00083 0f 28 c1 movaps xmm0, xmm1
00086 0f 29 45 10 movaps XMMWORD PTR t0$[rbp], xmm0
; 7 : __m128 t1 = _mm_shuffle_ps(ALIGN(source->m[0][0]), ALIGN(source->m[0][1]), _MM_SHUFFLE(3, 2, 3, 2)); ; 7 : __m128 t1 = _mm_shuffle_ps(ALIGN(source->colum[0]), ALIGN(source->colum[1]), _MM_SHUFFLE(3, 2, 3, 2));
0008a b8 08 00 00 00 mov eax, 8 00061 b8 10 00 00 00 mov eax, 16
0008f 48 6b c0 00 imul rax, rax, 0 00066 48 6b c0 01 imul rax, rax, 1
00093 48 8b 8d d0 01 0006a 48 8b 8d 40 01
00 00 mov rcx, QWORD PTR source$[rbp] 00 00 mov rcx, QWORD PTR source$[rbp]
0009a 48 03 c8 add rcx, rax 00071 48 03 c8 add rcx, rax
0009d 48 8b c1 mov rax, rcx 00074 48 8b c1 mov rax, rcx
000a0 b9 04 00 00 00 mov ecx, 4 00077 0f 10 00 movups xmm0, XMMWORD PTR [rax]
000a5 48 6b c9 01 imul rcx, rcx, 1 0007a b8 10 00 00 00 mov eax, 16
000a9 48 03 c1 add rax, rcx 0007f 48 6b c0 00 imul rax, rax, 0
000ac 0f 10 00 movups xmm0, XMMWORD PTR [rax] 00083 48 8b 8d 40 01
000af b8 08 00 00 00 mov eax, 8
000b4 48 6b c0 00 imul rax, rax, 0
000b8 48 8b 8d d0 01
00 00 mov rcx, QWORD PTR source$[rbp] 00 00 mov rcx, QWORD PTR source$[rbp]
000bf 48 03 c8 add rcx, rax 0008a 48 03 c8 add rcx, rax
000c2 48 8b c1 mov rax, rcx 0008d 48 8b c1 mov rax, rcx
000c5 b9 04 00 00 00 mov ecx, 4 00090 0f 10 08 movups xmm1, XMMWORD PTR [rax]
000ca 48 6b c9 00 imul rcx, rcx, 0 00093 0f c6 c8 ee shufps xmm1, xmm0, 238 ; 000000eeH
000ce 48 03 c1 add rax, rcx 00097 0f 28 c1 movaps xmm0, xmm1
000d1 0f 10 08 movups xmm1, XMMWORD PTR [rax] 0009a 0f 29 45 40 movaps XMMWORD PTR t1$[rbp], xmm0
000d4 0f c6 c8 ee shufps xmm1, xmm0, 238 ; 000000eeH
000d8 0f 28 c1 movaps xmm0, xmm1
000db 0f 29 45 40 movaps XMMWORD PTR t1$[rbp], xmm0
; 8 : ; 8 :
; 9 : target->colum[0] = _mm_shuffle_ps(t0, zeroVec, _MM_SHUFFLE(2, 0, 2, 0)); ; 9 : target->colum[0] = _mm_shuffle_ps(t0, zeroVec, _MM_SHUFFLE(2, 0, 2, 0));
000df 0f 57 c0 xorps xmm0, xmm0 0009e 0f 57 c0 xorps xmm0, xmm0
000e2 f3 0f 11 45 70 movss DWORD PTR $S1$[rbp], xmm0 000a1 0f 28 4d 10 movaps xmm1, XMMWORD PTR t0$[rbp]
000e7 0f 57 c0 xorps xmm0, xmm0 000a5 0f c6 c8 88 shufps xmm1, xmm0, 136 ; 00000088H
000ea f3 0f 11 45 74 movss DWORD PTR $S1$[rbp+4], xmm0 000a9 0f 28 c1 movaps xmm0, xmm1
000ef 0f 57 c0 xorps xmm0, xmm0 000ac b8 10 00 00 00 mov eax, 16
000f2 f3 0f 11 45 78 movss DWORD PTR $S1$[rbp+8], xmm0 000b1 48 6b c0 00 imul rax, rax, 0
000f7 0f 57 c0 xorps xmm0, xmm0 000b5 48 8b 8d 48 01
000fa f3 0f 11 45 7c movss DWORD PTR $S1$[rbp+12], xmm0
000ff 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp]
00103 0f c6 45 70 88 shufps xmm0, XMMWORD PTR $S1$[rbp], 136 ; 00000088H
00108 b8 10 00 00 00 mov eax, 16
0010d 48 6b c0 00 imul rax, rax, 0
00111 48 8b 8d d8 01
00 00 mov rcx, QWORD PTR target$[rbp] 00 00 mov rcx, QWORD PTR target$[rbp]
00118 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 000bc 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
; 10 : target->colum[1] = _mm_shuffle_ps(t0, zeroVec, _MM_SHUFFLE(3, 1, 3, 1)); ; 10 : target->colum[1] = _mm_shuffle_ps(t0, zeroVec, _MM_SHUFFLE(3, 1, 3, 1));
0011c 0f 57 c0 xorps xmm0, xmm0 000c0 0f 57 c0 xorps xmm0, xmm0
0011f f3 0f 11 85 a0 000c3 0f 28 4d 10 movaps xmm1, XMMWORD PTR t0$[rbp]
00 00 00 movss DWORD PTR $S2$[rbp], xmm0 000c7 0f c6 c8 dd shufps xmm1, xmm0, 221 ; 000000ddH
00127 0f 57 c0 xorps xmm0, xmm0 000cb 0f 28 c1 movaps xmm0, xmm1
0012a f3 0f 11 85 a4 000ce b8 10 00 00 00 mov eax, 16
00 00 00 movss DWORD PTR $S2$[rbp+4], xmm0 000d3 48 6b c0 01 imul rax, rax, 1
00132 0f 57 c0 xorps xmm0, xmm0 000d7 48 8b 8d 48 01
00135 f3 0f 11 85 a8
00 00 00 movss DWORD PTR $S2$[rbp+8], xmm0
0013d 0f 57 c0 xorps xmm0, xmm0
00140 f3 0f 11 85 ac
00 00 00 movss DWORD PTR $S2$[rbp+12], xmm0
00148 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp]
0014c 0f c6 85 a0 00
00 00 dd shufps xmm0, XMMWORD PTR $S2$[rbp], 221 ; 000000ddH
00154 b8 10 00 00 00 mov eax, 16
00159 48 6b c0 01 imul rax, rax, 1
0015d 48 8b 8d d8 01
00 00 mov rcx, QWORD PTR target$[rbp] 00 00 mov rcx, QWORD PTR target$[rbp]
00164 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 000de 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
; 11 : target->colum[2] = _mm_shuffle_ps(t1, zeroVec, _MM_SHUFFLE(2, 0, 2, 0)); ; 11 : target->colum[2] = _mm_shuffle_ps(t1, zeroVec, _MM_SHUFFLE(2, 0, 2, 0));
00168 0f 57 c0 xorps xmm0, xmm0 000e2 0f 57 c0 xorps xmm0, xmm0
0016b f3 0f 11 85 d0 000e5 0f 28 4d 40 movaps xmm1, XMMWORD PTR t1$[rbp]
00 00 00 movss DWORD PTR $S3$[rbp], xmm0 000e9 0f c6 c8 88 shufps xmm1, xmm0, 136 ; 00000088H
00173 0f 57 c0 xorps xmm0, xmm0 000ed 0f 28 c1 movaps xmm0, xmm1
00176 f3 0f 11 85 d4 000f0 b8 10 00 00 00 mov eax, 16
00 00 00 movss DWORD PTR $S3$[rbp+4], xmm0 000f5 48 6b c0 02 imul rax, rax, 2
0017e 0f 57 c0 xorps xmm0, xmm0 000f9 48 8b 8d 48 01
00181 f3 0f 11 85 d8
00 00 00 movss DWORD PTR $S3$[rbp+8], xmm0
00189 0f 57 c0 xorps xmm0, xmm0
0018c f3 0f 11 85 dc
00 00 00 movss DWORD PTR $S3$[rbp+12], xmm0
00194 0f 28 45 40 movaps xmm0, XMMWORD PTR t1$[rbp]
00198 0f c6 85 d0 00
00 00 88 shufps xmm0, XMMWORD PTR $S3$[rbp], 136 ; 00000088H
001a0 b8 10 00 00 00 mov eax, 16
001a5 48 6b c0 02 imul rax, rax, 2
001a9 48 8b 8d d8 01
00 00 mov rcx, QWORD PTR target$[rbp] 00 00 mov rcx, QWORD PTR target$[rbp]
001b0 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 00100 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
; 12 : } ; 12 : }
001b4 48 8b 8d a8 01 00104 48 8d a5 28 01
00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 00 00 lea rsp, QWORD PTR [rbp+296]
001bb 48 33 cd xor rcx, rbp 0010b 5f pop rdi
001be e8 00 00 00 00 call __security_check_cookie 0010c 5d pop rbp
001c3 48 8d a5 b8 01 0010d c3 ret 0
00 00 lea rsp, QWORD PTR [rbp+440]
001ca 5f pop rdi
001cb 5d pop rbp
001cc c3 ret 0
transpose2to3 ENDP transpose2to3 ENDP
_TEXT ENDS _TEXT ENDS
END END
Binary file not shown.
Binary file not shown.
+233 -372
View File
@@ -145,26 +145,23 @@ EXTRN _RTC_CheckStackVars:PROC
EXTRN _RTC_InitBase:PROC EXTRN _RTC_InitBase:PROC
EXTRN _RTC_Shutdown:PROC EXTRN _RTC_Shutdown:PROC
EXTRN __CheckForDebuggerJustMyCode:PROC EXTRN __CheckForDebuggerJustMyCode:PROC
EXTRN __GSHandlerCheck:PROC
EXTRN __security_check_cookie:PROC
EXTRN __security_cookie:QWORD
EXTRN _fltused:DWORD EXTRN _fltused:DWORD
; COMDAT pdata ; COMDAT pdata
pdata SEGMENT pdata SEGMENT
$pdata$transpose3to2 DD imagerel $LN3 $pdata$transpose3to2 DD imagerel $LN3
DD imagerel $LN3+296 DD imagerel $LN3+204
DD imagerel $unwind$transpose3to2 DD imagerel $unwind$transpose3to2
pdata ENDS pdata ENDS
; COMDAT pdata ; COMDAT pdata
pdata SEGMENT pdata SEGMENT
$pdata$transpose3to3 DD imagerel $LN3 $pdata$transpose3to3 DD imagerel $LN3
DD imagerel $LN3+521 DD imagerel $LN3+339
DD imagerel $unwind$transpose3to3 DD imagerel $unwind$transpose3to3
pdata ENDS pdata ENDS
; COMDAT pdata ; COMDAT pdata
pdata SEGMENT pdata SEGMENT
$pdata$transpose3to4 DD imagerel $LN3 $pdata$transpose3to4 DD imagerel $LN3
DD imagerel $LN3+553 DD imagerel $LN3+371
DD imagerel $unwind$transpose3to4 DD imagerel $unwind$transpose3to4
pdata ENDS pdata ENDS
; COMDAT pdata ; COMDAT pdata
@@ -216,47 +213,26 @@ $unwind$det_mat3 DD 035051301H
DD 070070031H DD 070070031H
DD 05006H DD 05006H
xdata ENDS xdata ENDS
; COMDAT voltbl
voltbl SEGMENT
_volmd DW 022H
DW 0210H
voltbl ENDS
; COMDAT xdata ; COMDAT xdata
xdata SEGMENT xdata SEGMENT
$unwind$transpose3to4 DD 025052919H $unwind$transpose3to4 DD 025051801H
DD 01132318H DD 01132318H
DD 0700c0041H DD 0700c0035H
DD 0500bH DD 0500bH
DD imagerel __GSHandlerCheck
DD 01f8H
xdata ENDS xdata ENDS
; COMDAT voltbl
voltbl SEGMENT
_volmd DW 022H
DW 01f0H
voltbl ENDS
; COMDAT xdata ; COMDAT xdata
xdata SEGMENT xdata SEGMENT
$unwind$transpose3to3 DD 025052919H $unwind$transpose3to3 DD 025051801H
DD 01132318H DD 01132318H
DD 0700c0041H DD 0700c0035H
DD 0500bH DD 0500bH
DD imagerel __GSHandlerCheck
DD 01f8H
xdata ENDS xdata ENDS
; COMDAT voltbl
voltbl SEGMENT
_volmd DW 022H
DW 010fH
voltbl ENDS
; COMDAT xdata ; COMDAT xdata
xdata SEGMENT xdata SEGMENT
$unwind$transpose3to2 DD 025052919H $unwind$transpose3to2 DD 025051801H
DD 01132318H DD 01132318H
DD 0700c002fH DD 0700c0029H
DD 0500bH DD 0500bH
DD imagerel __GSHandlerCheck
DD 0168H
xdata ENDS xdata ENDS
; Function compile flags: /Odt ; Function compile flags: /Odt
; COMDAT __JustMyCode_Default ; COMDAT __JustMyCode_Default
@@ -514,12 +490,9 @@ _TEXT SEGMENT
t0$ = 16 t0$ = 16
t1$ = 64 t1$ = 64
t2$ = 112 t2$ = 112
$S4$ = 160 t3$ = 160
t3$ = 208 source$ = 416
$S5$ = 256 target$ = 424
__$ArrayPad$ = 472
source$ = 512
target$ = 520
transpose3to4 PROC ; COMDAT transpose3to4 PROC ; COMDAT
; 27 : { ; 27 : {
@@ -529,175 +502,132 @@ $LN3:
00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
0000a 55 push rbp 0000a 55 push rbp
0000b 57 push rdi 0000b 57 push rdi
0000c 48 81 ec 08 02 0000c 48 81 ec a8 01
00 00 sub rsp, 520 ; 00000208H 00 00 sub rsp, 424 ; 000001a8H
00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
00018 48 8b 05 00 00 00018 48 8d 0d 00 00
00 00 mov rax, QWORD PTR __security_cookie
0001f 48 33 c5 xor rax, rbp
00022 48 89 85 d8 01
00 00 mov QWORD PTR __$ArrayPad$[rbp], rax
00029 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:__5527727A_mat3@c 00 00 lea rcx, OFFSET FLAT:__5527727A_mat3@c
00030 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
; 28 : __m128 t0 = _mm_shuffle_ps(ALIGN(source->m[0][0]), ALIGN(source->m[0][1]), _MM_SHUFFLE(1, 0, 1, 0)); ; 28 : __m128 t0 = _mm_shuffle_ps(ALIGN(source->colum[0]), ALIGN(source->colum[1]), _MM_SHUFFLE(1, 0, 1, 0));
00035 b8 0c 00 00 00 mov eax, 12 00024 b8 10 00 00 00 mov eax, 16
0003a 48 6b c0 00 imul rax, rax, 0 00029 48 6b c0 01 imul rax, rax, 1
0003e 48 8b 8d 00 02 0002d 48 8b 8d a0 01
00 00 mov rcx, QWORD PTR source$[rbp] 00 00 mov rcx, QWORD PTR source$[rbp]
00045 48 8d 44 01 30 lea rax, QWORD PTR [rcx+rax+48] 00034 48 03 c8 add rcx, rax
0004a b9 04 00 00 00 mov ecx, 4 00037 48 8b c1 mov rax, rcx
0004f 48 6b c9 01 imul rcx, rcx, 1 0003a 0f 10 00 movups xmm0, XMMWORD PTR [rax]
00053 48 03 c1 add rax, rcx 0003d b8 10 00 00 00 mov eax, 16
00056 0f 10 00 movups xmm0, XMMWORD PTR [rax] 00042 48 6b c0 00 imul rax, rax, 0
00059 b8 0c 00 00 00 mov eax, 12 00046 48 8b 8d a0 01
0005e 48 6b c0 00 imul rax, rax, 0
00062 48 8b 8d 00 02
00 00 mov rcx, QWORD PTR source$[rbp] 00 00 mov rcx, QWORD PTR source$[rbp]
00069 48 8d 44 01 30 lea rax, QWORD PTR [rcx+rax+48] 0004d 48 03 c8 add rcx, rax
0006e b9 04 00 00 00 mov ecx, 4 00050 48 8b c1 mov rax, rcx
00073 48 6b c9 00 imul rcx, rcx, 0 00053 0f 10 08 movups xmm1, XMMWORD PTR [rax]
00077 48 03 c1 add rax, rcx 00056 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H
0007a 0f 10 08 movups xmm1, XMMWORD PTR [rax] 0005a 0f 28 c1 movaps xmm0, xmm1
0007d 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H 0005d 0f 29 45 10 movaps XMMWORD PTR t0$[rbp], xmm0
00081 0f 28 c1 movaps xmm0, xmm1
00084 0f 29 45 10 movaps XMMWORD PTR t0$[rbp], xmm0
; 29 : __m128 t1 = _mm_shuffle_ps(ALIGN(source->m[0][0]), ALIGN(source->m[0][1]), _MM_SHUFFLE(3, 2, 3, 2)); ; 29 : __m128 t1 = _mm_shuffle_ps(ALIGN(source->colum[0]), ALIGN(source->colum[1]), _MM_SHUFFLE(3, 2, 3, 2));
00088 b8 0c 00 00 00 mov eax, 12 00061 b8 10 00 00 00 mov eax, 16
0008d 48 6b c0 00 imul rax, rax, 0 00066 48 6b c0 01 imul rax, rax, 1
00091 48 8b 8d 00 02 0006a 48 8b 8d a0 01
00 00 mov rcx, QWORD PTR source$[rbp] 00 00 mov rcx, QWORD PTR source$[rbp]
00098 48 8d 44 01 30 lea rax, QWORD PTR [rcx+rax+48] 00071 48 03 c8 add rcx, rax
0009d b9 04 00 00 00 mov ecx, 4 00074 48 8b c1 mov rax, rcx
000a2 48 6b c9 01 imul rcx, rcx, 1 00077 0f 10 00 movups xmm0, XMMWORD PTR [rax]
000a6 48 03 c1 add rax, rcx 0007a b8 10 00 00 00 mov eax, 16
000a9 0f 10 00 movups xmm0, XMMWORD PTR [rax] 0007f 48 6b c0 00 imul rax, rax, 0
000ac b8 0c 00 00 00 mov eax, 12 00083 48 8b 8d a0 01
000b1 48 6b c0 00 imul rax, rax, 0
000b5 48 8b 8d 00 02
00 00 mov rcx, QWORD PTR source$[rbp] 00 00 mov rcx, QWORD PTR source$[rbp]
000bc 48 8d 44 01 30 lea rax, QWORD PTR [rcx+rax+48] 0008a 48 03 c8 add rcx, rax
000c1 b9 04 00 00 00 mov ecx, 4 0008d 48 8b c1 mov rax, rcx
000c6 48 6b c9 00 imul rcx, rcx, 0 00090 0f 10 08 movups xmm1, XMMWORD PTR [rax]
000ca 48 03 c1 add rax, rcx 00093 0f c6 c8 ee shufps xmm1, xmm0, 238 ; 000000eeH
000cd 0f 10 08 movups xmm1, XMMWORD PTR [rax] 00097 0f 28 c1 movaps xmm0, xmm1
000d0 0f c6 c8 ee shufps xmm1, xmm0, 238 ; 000000eeH 0009a 0f 29 45 40 movaps XMMWORD PTR t1$[rbp], xmm0
000d4 0f 28 c1 movaps xmm0, xmm1
000d7 0f 29 45 40 movaps XMMWORD PTR t1$[rbp], xmm0
; 30 : __m128 t2 = _mm_shuffle_ps(ALIGN(source->m[0][2]), zeroVec, _MM_SHUFFLE(1, 0, 1, 0)); ; 30 : __m128 t2 = _mm_shuffle_ps(ALIGN(source->colum[2]), zeroVec, _MM_SHUFFLE(1, 0, 1, 0));
000db 0f 57 c0 xorps xmm0, xmm0 0009e 0f 57 c0 xorps xmm0, xmm0
000de f3 0f 11 85 a0 000a1 b8 10 00 00 00 mov eax, 16
00 00 00 movss DWORD PTR $S4$[rbp], xmm0 000a6 48 6b c0 02 imul rax, rax, 2
000e6 0f 57 c0 xorps xmm0, xmm0 000aa 48 8b 8d a0 01
000e9 f3 0f 11 85 a4
00 00 00 movss DWORD PTR $S4$[rbp+4], xmm0
000f1 0f 57 c0 xorps xmm0, xmm0
000f4 f3 0f 11 85 a8
00 00 00 movss DWORD PTR $S4$[rbp+8], xmm0
000fc 0f 57 c0 xorps xmm0, xmm0
000ff f3 0f 11 85 ac
00 00 00 movss DWORD PTR $S4$[rbp+12], xmm0
00107 b8 0c 00 00 00 mov eax, 12
0010c 48 6b c0 00 imul rax, rax, 0
00110 48 8b 8d 00 02
00 00 mov rcx, QWORD PTR source$[rbp] 00 00 mov rcx, QWORD PTR source$[rbp]
00117 48 8d 44 01 30 lea rax, QWORD PTR [rcx+rax+48] 000b1 48 03 c8 add rcx, rax
0011c b9 04 00 00 00 mov ecx, 4 000b4 48 8b c1 mov rax, rcx
00121 48 6b c9 02 imul rcx, rcx, 2 000b7 0f 10 08 movups xmm1, XMMWORD PTR [rax]
00125 48 03 c1 add rax, rcx 000ba 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H
00128 0f 10 00 movups xmm0, XMMWORD PTR [rax] 000be 0f 28 c1 movaps xmm0, xmm1
0012b 0f c6 85 a0 00 000c1 0f 29 45 70 movaps XMMWORD PTR t2$[rbp], xmm0
00 00 44 shufps xmm0, XMMWORD PTR $S4$[rbp], 68 ; 00000044H
00133 0f 29 45 70 movaps XMMWORD PTR t2$[rbp], xmm0
; 31 : __m128 t3 = _mm_shuffle_ps(ALIGN(source->m[0][2]), zeroVec, _MM_SHUFFLE(3, 2, 3, 2)); ; 31 : __m128 t3 = _mm_shuffle_ps(ALIGN(source->colum[2]), zeroVec, _MM_SHUFFLE(3, 2, 3, 2));
00137 0f 57 c0 xorps xmm0, xmm0 000c5 0f 57 c0 xorps xmm0, xmm0
0013a f3 0f 11 85 00 000c8 b8 10 00 00 00 mov eax, 16
01 00 00 movss DWORD PTR $S5$[rbp], xmm0 000cd 48 6b c0 02 imul rax, rax, 2
00142 0f 57 c0 xorps xmm0, xmm0 000d1 48 8b 8d a0 01
00145 f3 0f 11 85 04
01 00 00 movss DWORD PTR $S5$[rbp+4], xmm0
0014d 0f 57 c0 xorps xmm0, xmm0
00150 f3 0f 11 85 08
01 00 00 movss DWORD PTR $S5$[rbp+8], xmm0
00158 0f 57 c0 xorps xmm0, xmm0
0015b f3 0f 11 85 0c
01 00 00 movss DWORD PTR $S5$[rbp+12], xmm0
00163 b8 0c 00 00 00 mov eax, 12
00168 48 6b c0 00 imul rax, rax, 0
0016c 48 8b 8d 00 02
00 00 mov rcx, QWORD PTR source$[rbp] 00 00 mov rcx, QWORD PTR source$[rbp]
00173 48 8d 44 01 30 lea rax, QWORD PTR [rcx+rax+48] 000d8 48 03 c8 add rcx, rax
00178 b9 04 00 00 00 mov ecx, 4 000db 48 8b c1 mov rax, rcx
0017d 48 6b c9 02 imul rcx, rcx, 2 000de 0f 10 08 movups xmm1, XMMWORD PTR [rax]
00181 48 03 c1 add rax, rcx 000e1 0f c6 c8 ee shufps xmm1, xmm0, 238 ; 000000eeH
00184 0f 10 00 movups xmm0, XMMWORD PTR [rax] 000e5 0f 28 c1 movaps xmm0, xmm1
00187 0f c6 85 00 01 000e8 0f 29 85 a0 00
00 00 ee shufps xmm0, XMMWORD PTR $S5$[rbp], 238 ; 000000eeH
0018f 0f 29 85 d0 00
00 00 movaps XMMWORD PTR t3$[rbp], xmm0 00 00 movaps XMMWORD PTR t3$[rbp], xmm0
; 32 : ; 32 :
; 33 : target->colum[0] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(2, 0, 2, 0)); ; 33 : target->colum[0] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(2, 0, 2, 0));
00196 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp] 000ef 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp]
0019a 0f c6 45 70 88 shufps xmm0, XMMWORD PTR t2$[rbp], 136 ; 00000088H 000f3 0f c6 45 70 88 shufps xmm0, XMMWORD PTR t2$[rbp], 136 ; 00000088H
0019f b8 10 00 00 00 mov eax, 16 000f8 b8 10 00 00 00 mov eax, 16
001a4 48 6b c0 00 imul rax, rax, 0 000fd 48 6b c0 00 imul rax, rax, 0
001a8 48 8b 8d 08 02 00101 48 8b 8d a8 01
00 00 mov rcx, QWORD PTR target$[rbp] 00 00 mov rcx, QWORD PTR target$[rbp]
001af 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 00108 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
; 34 : target->colum[1] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(3, 1, 3, 1)); ; 34 : target->colum[1] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(3, 1, 3, 1));
001b3 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp] 0010c 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp]
001b7 0f c6 45 70 dd shufps xmm0, XMMWORD PTR t2$[rbp], 221 ; 000000ddH 00110 0f c6 45 70 dd shufps xmm0, XMMWORD PTR t2$[rbp], 221 ; 000000ddH
001bc b8 10 00 00 00 mov eax, 16 00115 b8 10 00 00 00 mov eax, 16
001c1 48 6b c0 01 imul rax, rax, 1 0011a 48 6b c0 01 imul rax, rax, 1
001c5 48 8b 8d 08 02 0011e 48 8b 8d a8 01
00 00 mov rcx, QWORD PTR target$[rbp] 00 00 mov rcx, QWORD PTR target$[rbp]
001cc 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 00125 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
; 35 : target->colum[2] = _mm_shuffle_ps(t1, t3, _MM_SHUFFLE(2, 0, 2, 0)); ; 35 : target->colum[2] = _mm_shuffle_ps(t1, t3, _MM_SHUFFLE(2, 0, 2, 0));
001d0 0f 28 45 40 movaps xmm0, XMMWORD PTR t1$[rbp] 00129 0f 28 45 40 movaps xmm0, XMMWORD PTR t1$[rbp]
001d4 0f c6 85 d0 00 0012d 0f c6 85 a0 00
00 00 88 shufps xmm0, XMMWORD PTR t3$[rbp], 136 ; 00000088H 00 00 88 shufps xmm0, XMMWORD PTR t3$[rbp], 136 ; 00000088H
001dc b8 10 00 00 00 mov eax, 16 00135 b8 10 00 00 00 mov eax, 16
001e1 48 6b c0 02 imul rax, rax, 2 0013a 48 6b c0 02 imul rax, rax, 2
001e5 48 8b 8d 08 02 0013e 48 8b 8d a8 01
00 00 mov rcx, QWORD PTR target$[rbp] 00 00 mov rcx, QWORD PTR target$[rbp]
001ec 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 00145 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
; 36 : target->colum[3] = _mm_shuffle_ps(t1, t3, _MM_SHUFFLE(3, 1, 3, 1)); ; 36 : target->colum[3] = _mm_shuffle_ps(t1, t3, _MM_SHUFFLE(3, 1, 3, 1));
001f0 0f 28 45 40 movaps xmm0, XMMWORD PTR t1$[rbp] 00149 0f 28 45 40 movaps xmm0, XMMWORD PTR t1$[rbp]
001f4 0f c6 85 d0 00 0014d 0f c6 85 a0 00
00 00 dd shufps xmm0, XMMWORD PTR t3$[rbp], 221 ; 000000ddH 00 00 dd shufps xmm0, XMMWORD PTR t3$[rbp], 221 ; 000000ddH
001fc b8 10 00 00 00 mov eax, 16 00155 b8 10 00 00 00 mov eax, 16
00201 48 6b c0 03 imul rax, rax, 3 0015a 48 6b c0 03 imul rax, rax, 3
00205 48 8b 8d 08 02 0015e 48 8b 8d a8 01
00 00 mov rcx, QWORD PTR target$[rbp] 00 00 mov rcx, QWORD PTR target$[rbp]
0020c 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 00165 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
; 37 : } ; 37 : }
00210 48 8b 8d d8 01 00169 48 8d a5 88 01
00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 00 00 lea rsp, QWORD PTR [rbp+392]
00217 48 33 cd xor rcx, rbp 00170 5f pop rdi
0021a e8 00 00 00 00 call __security_check_cookie 00171 5d pop rbp
0021f 48 8d a5 e8 01 00172 c3 ret 0
00 00 lea rsp, QWORD PTR [rbp+488]
00226 5f pop rdi
00227 5d pop rbp
00228 c3 ret 0
transpose3to4 ENDP transpose3to4 ENDP
_TEXT ENDS _TEXT ENDS
; Function compile flags: /Odtp /RTCsu /ZI ; Function compile flags: /Odtp /RTCsu /ZI
@@ -707,12 +637,9 @@ _TEXT SEGMENT
t0$ = 16 t0$ = 16
t1$ = 64 t1$ = 64
t2$ = 112 t2$ = 112
$S2$ = 160 t3$ = 160
t3$ = 208 source$ = 416
$S3$ = 256 target$ = 424
__$ArrayPad$ = 472
source$ = 512
target$ = 520
transpose3to3 PROC ; COMDAT transpose3to3 PROC ; COMDAT
; 15 : { ; 15 : {
@@ -722,164 +649,121 @@ $LN3:
00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
0000a 55 push rbp 0000a 55 push rbp
0000b 57 push rdi 0000b 57 push rdi
0000c 48 81 ec 08 02 0000c 48 81 ec a8 01
00 00 sub rsp, 520 ; 00000208H 00 00 sub rsp, 424 ; 000001a8H
00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
00018 48 8b 05 00 00 00018 48 8d 0d 00 00
00 00 mov rax, QWORD PTR __security_cookie
0001f 48 33 c5 xor rax, rbp
00022 48 89 85 d8 01
00 00 mov QWORD PTR __$ArrayPad$[rbp], rax
00029 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:__5527727A_mat3@c 00 00 lea rcx, OFFSET FLAT:__5527727A_mat3@c
00030 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
; 16 : __m128 t0 = _mm_shuffle_ps(ALIGN(source->m[0][0]), ALIGN(source->m[0][1]), _MM_SHUFFLE(1, 0, 1, 0)); ; 16 : __m128 t0 = _mm_shuffle_ps(ALIGN(source->colum[0]), ALIGN(source->colum[1]), _MM_SHUFFLE(1, 0, 1, 0));
00035 b8 0c 00 00 00 mov eax, 12 00024 b8 10 00 00 00 mov eax, 16
0003a 48 6b c0 00 imul rax, rax, 0 00029 48 6b c0 01 imul rax, rax, 1
0003e 48 8b 8d 00 02 0002d 48 8b 8d a0 01
00 00 mov rcx, QWORD PTR source$[rbp] 00 00 mov rcx, QWORD PTR source$[rbp]
00045 48 8d 44 01 30 lea rax, QWORD PTR [rcx+rax+48] 00034 48 03 c8 add rcx, rax
0004a b9 04 00 00 00 mov ecx, 4 00037 48 8b c1 mov rax, rcx
0004f 48 6b c9 01 imul rcx, rcx, 1 0003a 0f 10 00 movups xmm0, XMMWORD PTR [rax]
00053 48 03 c1 add rax, rcx 0003d b8 10 00 00 00 mov eax, 16
00056 0f 10 00 movups xmm0, XMMWORD PTR [rax] 00042 48 6b c0 00 imul rax, rax, 0
00059 b8 0c 00 00 00 mov eax, 12 00046 48 8b 8d a0 01
0005e 48 6b c0 00 imul rax, rax, 0
00062 48 8b 8d 00 02
00 00 mov rcx, QWORD PTR source$[rbp] 00 00 mov rcx, QWORD PTR source$[rbp]
00069 48 8d 44 01 30 lea rax, QWORD PTR [rcx+rax+48] 0004d 48 03 c8 add rcx, rax
0006e b9 04 00 00 00 mov ecx, 4 00050 48 8b c1 mov rax, rcx
00073 48 6b c9 00 imul rcx, rcx, 0 00053 0f 10 08 movups xmm1, XMMWORD PTR [rax]
00077 48 03 c1 add rax, rcx 00056 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H
0007a 0f 10 08 movups xmm1, XMMWORD PTR [rax] 0005a 0f 28 c1 movaps xmm0, xmm1
0007d 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H 0005d 0f 29 45 10 movaps XMMWORD PTR t0$[rbp], xmm0
00081 0f 28 c1 movaps xmm0, xmm1
00084 0f 29 45 10 movaps XMMWORD PTR t0$[rbp], xmm0
; 17 : __m128 t1 = _mm_shuffle_ps(ALIGN(source->m[0][0]), ALIGN(source->m[0][1]), _MM_SHUFFLE(3, 2, 3, 2)); ; 17 : __m128 t1 = _mm_shuffle_ps(ALIGN(source->colum[0]), ALIGN(source->colum[1]), _MM_SHUFFLE(3, 2, 3, 2));
00088 b8 0c 00 00 00 mov eax, 12 00061 b8 10 00 00 00 mov eax, 16
0008d 48 6b c0 00 imul rax, rax, 0 00066 48 6b c0 01 imul rax, rax, 1
00091 48 8b 8d 00 02 0006a 48 8b 8d a0 01
00 00 mov rcx, QWORD PTR source$[rbp] 00 00 mov rcx, QWORD PTR source$[rbp]
00098 48 8d 44 01 30 lea rax, QWORD PTR [rcx+rax+48] 00071 48 03 c8 add rcx, rax
0009d b9 04 00 00 00 mov ecx, 4 00074 48 8b c1 mov rax, rcx
000a2 48 6b c9 01 imul rcx, rcx, 1 00077 0f 10 00 movups xmm0, XMMWORD PTR [rax]
000a6 48 03 c1 add rax, rcx 0007a b8 10 00 00 00 mov eax, 16
000a9 0f 10 00 movups xmm0, XMMWORD PTR [rax] 0007f 48 6b c0 00 imul rax, rax, 0
000ac b8 0c 00 00 00 mov eax, 12 00083 48 8b 8d a0 01
000b1 48 6b c0 00 imul rax, rax, 0
000b5 48 8b 8d 00 02
00 00 mov rcx, QWORD PTR source$[rbp] 00 00 mov rcx, QWORD PTR source$[rbp]
000bc 48 8d 44 01 30 lea rax, QWORD PTR [rcx+rax+48] 0008a 48 03 c8 add rcx, rax
000c1 b9 04 00 00 00 mov ecx, 4 0008d 48 8b c1 mov rax, rcx
000c6 48 6b c9 00 imul rcx, rcx, 0 00090 0f 10 08 movups xmm1, XMMWORD PTR [rax]
000ca 48 03 c1 add rax, rcx 00093 0f c6 c8 ee shufps xmm1, xmm0, 238 ; 000000eeH
000cd 0f 10 08 movups xmm1, XMMWORD PTR [rax] 00097 0f 28 c1 movaps xmm0, xmm1
000d0 0f c6 c8 ee shufps xmm1, xmm0, 238 ; 000000eeH 0009a 0f 29 45 40 movaps XMMWORD PTR t1$[rbp], xmm0
000d4 0f 28 c1 movaps xmm0, xmm1
000d7 0f 29 45 40 movaps XMMWORD PTR t1$[rbp], xmm0
; 18 : __m128 t2 = _mm_shuffle_ps(ALIGN(source->m[0][2]), zeroVec, _MM_SHUFFLE(1, 0, 1, 0)); ; 18 : __m128 t2 = _mm_shuffle_ps(ALIGN(source->colum[2]), zeroVec, _MM_SHUFFLE(1, 0, 1, 0));
000db 0f 57 c0 xorps xmm0, xmm0 0009e 0f 57 c0 xorps xmm0, xmm0
000de f3 0f 11 85 a0 000a1 b8 10 00 00 00 mov eax, 16
00 00 00 movss DWORD PTR $S2$[rbp], xmm0 000a6 48 6b c0 02 imul rax, rax, 2
000e6 0f 57 c0 xorps xmm0, xmm0 000aa 48 8b 8d a0 01
000e9 f3 0f 11 85 a4
00 00 00 movss DWORD PTR $S2$[rbp+4], xmm0
000f1 0f 57 c0 xorps xmm0, xmm0
000f4 f3 0f 11 85 a8
00 00 00 movss DWORD PTR $S2$[rbp+8], xmm0
000fc 0f 57 c0 xorps xmm0, xmm0
000ff f3 0f 11 85 ac
00 00 00 movss DWORD PTR $S2$[rbp+12], xmm0
00107 b8 0c 00 00 00 mov eax, 12
0010c 48 6b c0 00 imul rax, rax, 0
00110 48 8b 8d 00 02
00 00 mov rcx, QWORD PTR source$[rbp] 00 00 mov rcx, QWORD PTR source$[rbp]
00117 48 8d 44 01 30 lea rax, QWORD PTR [rcx+rax+48] 000b1 48 03 c8 add rcx, rax
0011c b9 04 00 00 00 mov ecx, 4 000b4 48 8b c1 mov rax, rcx
00121 48 6b c9 02 imul rcx, rcx, 2 000b7 0f 10 08 movups xmm1, XMMWORD PTR [rax]
00125 48 03 c1 add rax, rcx 000ba 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H
00128 0f 10 00 movups xmm0, XMMWORD PTR [rax] 000be 0f 28 c1 movaps xmm0, xmm1
0012b 0f c6 85 a0 00 000c1 0f 29 45 70 movaps XMMWORD PTR t2$[rbp], xmm0
00 00 44 shufps xmm0, XMMWORD PTR $S2$[rbp], 68 ; 00000044H
00133 0f 29 45 70 movaps XMMWORD PTR t2$[rbp], xmm0
; 19 : __m128 t3 = _mm_shuffle_ps(ALIGN(source->m[0][2]), zeroVec, _MM_SHUFFLE(3, 2, 3, 2)); ; 19 : __m128 t3 = _mm_shuffle_ps(ALIGN(source->colum[2]), zeroVec, _MM_SHUFFLE(3, 2, 3, 2));
00137 0f 57 c0 xorps xmm0, xmm0 000c5 0f 57 c0 xorps xmm0, xmm0
0013a f3 0f 11 85 00 000c8 b8 10 00 00 00 mov eax, 16
01 00 00 movss DWORD PTR $S3$[rbp], xmm0 000cd 48 6b c0 02 imul rax, rax, 2
00142 0f 57 c0 xorps xmm0, xmm0 000d1 48 8b 8d a0 01
00145 f3 0f 11 85 04
01 00 00 movss DWORD PTR $S3$[rbp+4], xmm0
0014d 0f 57 c0 xorps xmm0, xmm0
00150 f3 0f 11 85 08
01 00 00 movss DWORD PTR $S3$[rbp+8], xmm0
00158 0f 57 c0 xorps xmm0, xmm0
0015b f3 0f 11 85 0c
01 00 00 movss DWORD PTR $S3$[rbp+12], xmm0
00163 b8 0c 00 00 00 mov eax, 12
00168 48 6b c0 00 imul rax, rax, 0
0016c 48 8b 8d 00 02
00 00 mov rcx, QWORD PTR source$[rbp] 00 00 mov rcx, QWORD PTR source$[rbp]
00173 48 8d 44 01 30 lea rax, QWORD PTR [rcx+rax+48] 000d8 48 03 c8 add rcx, rax
00178 b9 04 00 00 00 mov ecx, 4 000db 48 8b c1 mov rax, rcx
0017d 48 6b c9 02 imul rcx, rcx, 2 000de 0f 10 08 movups xmm1, XMMWORD PTR [rax]
00181 48 03 c1 add rax, rcx 000e1 0f c6 c8 ee shufps xmm1, xmm0, 238 ; 000000eeH
00184 0f 10 00 movups xmm0, XMMWORD PTR [rax] 000e5 0f 28 c1 movaps xmm0, xmm1
00187 0f c6 85 00 01 000e8 0f 29 85 a0 00
00 00 ee shufps xmm0, XMMWORD PTR $S3$[rbp], 238 ; 000000eeH
0018f 0f 29 85 d0 00
00 00 movaps XMMWORD PTR t3$[rbp], xmm0 00 00 movaps XMMWORD PTR t3$[rbp], xmm0
; 20 : ; 20 :
; 21 : target->colum[0] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(2, 0, 2, 0)); ; 21 : target->colum[0] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(2, 0, 2, 0));
00196 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp] 000ef 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp]
0019a 0f c6 45 70 88 shufps xmm0, XMMWORD PTR t2$[rbp], 136 ; 00000088H 000f3 0f c6 45 70 88 shufps xmm0, XMMWORD PTR t2$[rbp], 136 ; 00000088H
0019f b8 10 00 00 00 mov eax, 16 000f8 b8 10 00 00 00 mov eax, 16
001a4 48 6b c0 00 imul rax, rax, 0 000fd 48 6b c0 00 imul rax, rax, 0
001a8 48 8b 8d 08 02 00101 48 8b 8d a8 01
00 00 mov rcx, QWORD PTR target$[rbp] 00 00 mov rcx, QWORD PTR target$[rbp]
001af 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 00108 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
; 22 : target->colum[1] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(3, 1, 3, 1)); ; 22 : target->colum[1] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(3, 1, 3, 1));
001b3 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp] 0010c 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp]
001b7 0f c6 45 70 dd shufps xmm0, XMMWORD PTR t2$[rbp], 221 ; 000000ddH 00110 0f c6 45 70 dd shufps xmm0, XMMWORD PTR t2$[rbp], 221 ; 000000ddH
001bc b8 10 00 00 00 mov eax, 16 00115 b8 10 00 00 00 mov eax, 16
001c1 48 6b c0 01 imul rax, rax, 1 0011a 48 6b c0 01 imul rax, rax, 1
001c5 48 8b 8d 08 02 0011e 48 8b 8d a8 01
00 00 mov rcx, QWORD PTR target$[rbp] 00 00 mov rcx, QWORD PTR target$[rbp]
001cc 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 00125 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
; 23 : target->colum[2] = _mm_shuffle_ps(t1, t3, _MM_SHUFFLE(2, 0, 2, 0)); ; 23 : target->colum[2] = _mm_shuffle_ps(t1, t3, _MM_SHUFFLE(2, 0, 2, 0));
001d0 0f 28 45 40 movaps xmm0, XMMWORD PTR t1$[rbp] 00129 0f 28 45 40 movaps xmm0, XMMWORD PTR t1$[rbp]
001d4 0f c6 85 d0 00 0012d 0f c6 85 a0 00
00 00 88 shufps xmm0, XMMWORD PTR t3$[rbp], 136 ; 00000088H 00 00 88 shufps xmm0, XMMWORD PTR t3$[rbp], 136 ; 00000088H
001dc b8 10 00 00 00 mov eax, 16 00135 b8 10 00 00 00 mov eax, 16
001e1 48 6b c0 02 imul rax, rax, 2 0013a 48 6b c0 02 imul rax, rax, 2
001e5 48 8b 8d 08 02 0013e 48 8b 8d a8 01
00 00 mov rcx, QWORD PTR target$[rbp] 00 00 mov rcx, QWORD PTR target$[rbp]
001ec 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 00145 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
; 24 : } ; 24 : }
001f0 48 8b 8d d8 01 00149 48 8d a5 88 01
00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 00 00 lea rsp, QWORD PTR [rbp+392]
001f7 48 33 cd xor rcx, rbp 00150 5f pop rdi
001fa e8 00 00 00 00 call __security_check_cookie 00151 5d pop rbp
001ff 48 8d a5 e8 01 00152 c3 ret 0
00 00 lea rsp, QWORD PTR [rbp+488]
00206 5f pop rdi
00207 5d pop rbp
00208 c3 ret 0
transpose3to3 ENDP transpose3to3 ENDP
_TEXT ENDS _TEXT ENDS
; Function compile flags: /Odtp /RTCsu /ZI ; Function compile flags: /Odtp /RTCsu /ZI
@@ -888,10 +772,8 @@ _TEXT ENDS
_TEXT SEGMENT _TEXT SEGMENT
t0$ = 16 t0$ = 16
t2$ = 64 t2$ = 64
$S1$ = 112 source$ = 320
__$ArrayPad$ = 328 target$ = 328
source$ = 368
target$ = 376
transpose3to2 PROC ; COMDAT transpose3to2 PROC ; COMDAT
; 6 : { ; 6 : {
@@ -901,96 +783,75 @@ $LN3:
00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
0000a 55 push rbp 0000a 55 push rbp
0000b 57 push rdi 0000b 57 push rdi
0000c 48 81 ec 78 01 0000c 48 81 ec 48 01
00 00 sub rsp, 376 ; 00000178H 00 00 sub rsp, 328 ; 00000148H
00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
00018 48 8b 05 00 00 00018 48 8d 0d 00 00
00 00 mov rax, QWORD PTR __security_cookie
0001f 48 33 c5 xor rax, rbp
00022 48 89 85 48 01
00 00 mov QWORD PTR __$ArrayPad$[rbp], rax
00029 48 8d 0d 00 00
00 00 lea rcx, OFFSET FLAT:__5527727A_mat3@c 00 00 lea rcx, OFFSET FLAT:__5527727A_mat3@c
00030 e8 00 00 00 00 call __CheckForDebuggerJustMyCode 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode
; 7 : __m128 t0 = _mm_shuffle_ps(ALIGN(source->m[0][0]), ALIGN(source->m[0][1]), _MM_SHUFFLE(1, 0, 1, 0)); ; 7 : __m128 t0 = _mm_shuffle_ps(ALIGN(source->colum[0]), ALIGN(source->colum[1]), _MM_SHUFFLE(1, 0, 1, 0));
00035 b8 0c 00 00 00 mov eax, 12 00024 b8 10 00 00 00 mov eax, 16
0003a 48 6b c0 00 imul rax, rax, 0 00029 48 6b c0 01 imul rax, rax, 1
0003e 48 8b 8d 70 01 0002d 48 8b 8d 40 01
00 00 mov rcx, QWORD PTR source$[rbp] 00 00 mov rcx, QWORD PTR source$[rbp]
00045 48 8d 44 01 30 lea rax, QWORD PTR [rcx+rax+48] 00034 48 03 c8 add rcx, rax
0004a b9 04 00 00 00 mov ecx, 4 00037 48 8b c1 mov rax, rcx
0004f 48 6b c9 01 imul rcx, rcx, 1 0003a 0f 10 00 movups xmm0, XMMWORD PTR [rax]
00053 48 03 c1 add rax, rcx 0003d b8 10 00 00 00 mov eax, 16
00056 0f 10 00 movups xmm0, XMMWORD PTR [rax] 00042 48 6b c0 00 imul rax, rax, 0
00059 b8 0c 00 00 00 mov eax, 12 00046 48 8b 8d 40 01
0005e 48 6b c0 00 imul rax, rax, 0
00062 48 8b 8d 70 01
00 00 mov rcx, QWORD PTR source$[rbp] 00 00 mov rcx, QWORD PTR source$[rbp]
00069 48 8d 44 01 30 lea rax, QWORD PTR [rcx+rax+48] 0004d 48 03 c8 add rcx, rax
0006e b9 04 00 00 00 mov ecx, 4 00050 48 8b c1 mov rax, rcx
00073 48 6b c9 00 imul rcx, rcx, 0 00053 0f 10 08 movups xmm1, XMMWORD PTR [rax]
00077 48 03 c1 add rax, rcx 00056 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H
0005a 0f 28 c1 movaps xmm0, xmm1
0005d 0f 29 45 10 movaps XMMWORD PTR t0$[rbp], xmm0
; 8 : __m128 t2 = _mm_shuffle_ps(ALIGN(source->colum[2]), zeroVec, _MM_SHUFFLE(1, 0, 1, 0));
00061 0f 57 c0 xorps xmm0, xmm0
00064 b8 10 00 00 00 mov eax, 16
00069 48 6b c0 02 imul rax, rax, 2
0006d 48 8b 8d 40 01
00 00 mov rcx, QWORD PTR source$[rbp]
00074 48 03 c8 add rcx, rax
00077 48 8b c1 mov rax, rcx
0007a 0f 10 08 movups xmm1, XMMWORD PTR [rax] 0007a 0f 10 08 movups xmm1, XMMWORD PTR [rax]
0007d 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H 0007d 0f c6 c8 44 shufps xmm1, xmm0, 68 ; 00000044H
00081 0f 28 c1 movaps xmm0, xmm1 00081 0f 28 c1 movaps xmm0, xmm1
00084 0f 29 45 10 movaps XMMWORD PTR t0$[rbp], xmm0 00084 0f 29 45 40 movaps XMMWORD PTR t2$[rbp], xmm0
; 8 : __m128 t2 = _mm_shuffle_ps(ALIGN(source->m[0][2]), zeroVec, _MM_SHUFFLE(1, 0, 1, 0));
00088 0f 57 c0 xorps xmm0, xmm0
0008b f3 0f 11 45 70 movss DWORD PTR $S1$[rbp], xmm0
00090 0f 57 c0 xorps xmm0, xmm0
00093 f3 0f 11 45 74 movss DWORD PTR $S1$[rbp+4], xmm0
00098 0f 57 c0 xorps xmm0, xmm0
0009b f3 0f 11 45 78 movss DWORD PTR $S1$[rbp+8], xmm0
000a0 0f 57 c0 xorps xmm0, xmm0
000a3 f3 0f 11 45 7c movss DWORD PTR $S1$[rbp+12], xmm0
000a8 b8 0c 00 00 00 mov eax, 12
000ad 48 6b c0 00 imul rax, rax, 0
000b1 48 8b 8d 70 01
00 00 mov rcx, QWORD PTR source$[rbp]
000b8 48 8d 44 01 30 lea rax, QWORD PTR [rcx+rax+48]
000bd b9 04 00 00 00 mov ecx, 4
000c2 48 6b c9 02 imul rcx, rcx, 2
000c6 48 03 c1 add rax, rcx
000c9 0f 10 00 movups xmm0, XMMWORD PTR [rax]
000cc 0f c6 45 70 44 shufps xmm0, XMMWORD PTR $S1$[rbp], 68 ; 00000044H
000d1 0f 29 45 40 movaps XMMWORD PTR t2$[rbp], xmm0
; 9 : ; 9 :
; 10 : target->colum[0] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(2, 0, 2, 0)); ; 10 : target->colum[0] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(2, 0, 2, 0));
000d5 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp] 00088 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp]
000d9 0f c6 45 40 88 shufps xmm0, XMMWORD PTR t2$[rbp], 136 ; 00000088H 0008c 0f c6 45 40 88 shufps xmm0, XMMWORD PTR t2$[rbp], 136 ; 00000088H
000de b8 10 00 00 00 mov eax, 16 00091 b8 10 00 00 00 mov eax, 16
000e3 48 6b c0 00 imul rax, rax, 0 00096 48 6b c0 00 imul rax, rax, 0
000e7 48 8b 8d 78 01 0009a 48 8b 8d 48 01
00 00 mov rcx, QWORD PTR target$[rbp] 00 00 mov rcx, QWORD PTR target$[rbp]
000ee 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 000a1 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
; 11 : target->colum[1] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(3, 1, 3, 1)); ; 11 : target->colum[1] = _mm_shuffle_ps(t0, t2, _MM_SHUFFLE(3, 1, 3, 1));
000f2 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp] 000a5 0f 28 45 10 movaps xmm0, XMMWORD PTR t0$[rbp]
000f6 0f c6 45 40 dd shufps xmm0, XMMWORD PTR t2$[rbp], 221 ; 000000ddH 000a9 0f c6 45 40 dd shufps xmm0, XMMWORD PTR t2$[rbp], 221 ; 000000ddH
000fb b8 10 00 00 00 mov eax, 16 000ae b8 10 00 00 00 mov eax, 16
00100 48 6b c0 01 imul rax, rax, 1 000b3 48 6b c0 01 imul rax, rax, 1
00104 48 8b 8d 78 01 000b7 48 8b 8d 48 01
00 00 mov rcx, QWORD PTR target$[rbp] 00 00 mov rcx, QWORD PTR target$[rbp]
0010b 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0 000be 0f 11 04 01 movups XMMWORD PTR [rcx+rax], xmm0
; 12 : } ; 12 : }
0010f 48 8b 8d 48 01 000c2 48 8d a5 28 01
00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] 00 00 lea rsp, QWORD PTR [rbp+296]
00116 48 33 cd xor rcx, rbp 000c9 5f pop rdi
00119 e8 00 00 00 00 call __security_check_cookie 000ca 5d pop rbp
0011e 48 8d a5 58 01 000cb c3 ret 0
00 00 lea rsp, QWORD PTR [rbp+344]
00125 5f pop rdi
00126 5d pop rbp
00127 c3 ret 0
transpose3to2 ENDP transpose3to2 ENDP
_TEXT ENDS _TEXT ENDS
END END
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+29 -22
View File
@@ -70,10 +70,10 @@ namespace StgSharp
0.0f, 0.5f, 0.0f 0.0f, 0.5f, 0.0f
); );
Rectangle rec = new Rectangle( Rectangle rec = new Rectangle(
-0.3f, 0.3f, 0.0f, -0.3f, 0.3f, 130.0f,
0.3f, 0.3f, 0.0f, 0.3f, 0.3f, 130.0f,
0.3f, -0.3f, 0.0f, 0.3f, -0.3f, 130.0f,
-0.3f, -0.3f, 0.0f -0.3f, -0.3f, 130.0f
); );
Polygon5 polygon = new Polygon5( Polygon5 polygon = new Polygon5(
-0.4f, 0.5f, 0.0f, -0.4f, 0.5f, 0.0f,
@@ -121,24 +121,18 @@ namespace StgSharp
/**/ /**/
camera = new Camera( camera = new Camera(
new vec3d(1,1,1), new vec3d(0,0,200),
new vec3d(0,0,0), new vec3d(0,0,100),
new vec3d(0,1,0) new vec3d(0,1,0)
); );
camera.SetViewRange(new Radius(Scaler.Pi / 2),this.Size,(0,0),(1f,1f)); camera.SetViewRange(new Degree(5),Size,(0,0),(50f,50f));
camera.GainAllUniforms(shader, "camera"); camera.GainAllUniforms(shader, "camera");
/**/ //camera.Test();
camera.Test(
new vec4d(0.5f,0.5f,0, 1),
new vec4d(0.5f, -0.5f, 0, 1),
new vec4d(-0.5f, -0.5f, 0, 1),
new vec4d(-0.5f, 0.5f, 0, 1)
);
/**/
} }
protected override void Main() protected override void Main()
{ {
float movement = 0.005f;
GL.ClearColor(0.333f, 0.555f, 0.555f, 1.0f); GL.ClearColor(0.333f, 0.555f, 0.555f, 1.0f);
GL.Clear(MaskBufferBit.COLOR | MaskBufferBit.DEPTH); GL.Clear(MaskBufferBit.COLOR | MaskBufferBit.DEPTH);
@@ -157,18 +151,31 @@ namespace StgSharp
/**/ /**/
float time = CurrentFrameCount / 60.0f; float time = CurrentFrameCount / 60.0f;
camera.SetViewDirection( if (InternalIO.glfwGetKey(this.WindowID,GLconst.GLFW_KEY_UP) == KeyStatus.PRESS)
new vec3d(Scaler.Cos(time * 10), 1, Scaler.Sin(time * 10)), {
new vec3d(0, 0, 0), camera.Pitch(new Radius(movement));
new vec3d(0, 1, 0) }
); else if (InternalIO.glfwGetKey(this.WindowID, GLconst.GLFW_KEY_DOWN) == KeyStatus.PRESS)
{
camera.Pitch(new Radius(-movement));
}
if (InternalIO.glfwGetKey(WindowID, GLconst.GLFW_KEY_LEFT) == KeyStatus.PRESS)
{
camera.Yaw(new Radius(-movement));
}
else if (InternalIO.glfwGetKey(WindowID, GLconst.GLFW_KEY_RIGHT) == KeyStatus.PRESS)
{
camera.Yaw(new Radius(movement));
}
GL.SetValue(color, GL.SetValue(color,
0.5f + MathF.Cos(time), 0.5f + MathF.Cos(time),
0.5f + MathF.Sin(time * 0.66667f + 2 * Scaler.Pi / 3), 0.5f + MathF.Sin(time * 0.66667f + (2 * Scaler.Pi / 3)),
0.5f + MathF.Sin(time * 0.33333f + Scaler.Pi / 3), 0.5f + MathF.Sin(time * 0.33333f + (Scaler.Pi / 3)),
time time
); );
camera.SetAllUniforms(); camera.SetAllUniforms();
/**/ /**/
+1 -1
View File
@@ -22,7 +22,7 @@ void main()
); );
TexColor = color; TexColor = color;
TexCoord = aTextCoord; TexCoord = aTextCoord;
vec4 temp = (vec4(aPos.xyz,1.0) + vec4(color.yz-vec2(0.5,0.5),0.0,0.0)) * rotation; vec4 temp = vec4(aPos.xyz,1.0);
gl_Position = /**/ camera * /**/ temp; gl_Position = /**/ camera * /**/ temp;
} }
@@ -14,7 +14,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("StgSharpDebug")] [assembly: System.Reflection.AssemblyCompanyAttribute("StgSharpDebug")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+e1e416bb41a7e16ddec5e7c16d64c72d6aa380e1")] [assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+f0f80f72f14d191bade9e1e542454d72f0d304a6")]
[assembly: System.Reflection.AssemblyProductAttribute("StgSharpDebug")] [assembly: System.Reflection.AssemblyProductAttribute("StgSharpDebug")]
[assembly: System.Reflection.AssemblyTitleAttribute("StgSharpDebug")] [assembly: System.Reflection.AssemblyTitleAttribute("StgSharpDebug")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
@@ -1 +1 @@
5fc65e27ab1eae6b9eeb60c61c388d2d98eeb396f53cbb6b719f6e99588e5cd4 078ad1de8316ac39cc24c9015ddc6ea463215f431658ec068a6783dbac5eadd6
@@ -1 +1 @@
7992bdcbaa0d5122f4f0ecc5f6d631ac76aabe4e624830ef7dbc805de504abae 8a770e7e64a1828f478ce21dee393946f2ed012dee01f75199360879a335f8ce
@@ -1 +1 @@
{"documents":{"D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\*":"https://raw.githubusercontent.com/Nitload-NSI/CCD_Github/e1e416bb41a7e16ddec5e7c16d64c72d6aa380e1/*"}} {"documents":{"D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\*":"https://raw.githubusercontent.com/Nitload-NSI/CCD_Github/f0f80f72f14d191bade9e1e542454d72f0d304a6/*"}}
@@ -217,11 +217,26 @@
</member> </member>
<member name="T:StgSharp.Graphics.ElementBuffer"> <member name="T:StgSharp.Graphics.ElementBuffer">
<summary> <summary>
A collecion of handle to Element Buffer Object in OpenGL. A collection of handle to Element Buffer Object in OpenGL.
Each <see langword="uint"/> value indexed from instance of this class this Each <see langword="uint"/> value indexed from instance of this class this
is the only handle to one Element Buffer Object. is the only handle to one Element Buffer Object.
</summary> </summary>
</member> </member>
<member name="M:StgSharp.Graphics.FrameBuffer.Bind(System.Int32)">
<summary>
Bind the frame buffer object with name frame buffer to the frame buffer target specified by target.
<see langword="FrameBufferTarget.All"/> will be set as default target.
</summary>
<param name="index">Index of object to be binded in handle set</param>
</member>
<member name="M:StgSharp.Graphics.FrameBuffer.Bind(StgSharp.Graphics.FrameBufferTarget,System.Int32)">
<summary>
Bind the frame buffer object with name frame buffer to the frame buffer target specified by target.
Target of this frame buffer should be set manually.
</summary>
<param name="target">The frame buffer target of the binding operation.</param>
<param name="index">Index of object to be binded in handle set</param>
</member>
<member name="M:StgSharp.Graphics.Texture.LoadTexture(System.Int32,System.String,StgSharp.Graphics.ImageLoader)"> <member name="M:StgSharp.Graphics.Texture.LoadTexture(System.Int32,System.String,StgSharp.Graphics.ImageLoader)">
<summary> <summary>
</summary> </summary>
@@ -285,6 +300,14 @@
This <see langword="glHandle"/> will be not usable. This <see langword="glHandle"/> will be not usable.
</summary> </summary>
</member> </member>
<member name="M:StgSharp.Graphics.GL.BindFrameBuffer(StgSharp.Graphics.FrameBufferTarget,StgSharp.Graphics.glHandle)">
<summary>
Bind a frame buffer to a frame buffer target
Same function as <see href="https://docs.gl/gl3/glBindFramebuffer">glBindFramebuffer</see>.
</summary>
<param name="target"> The frame buffer target of the binding operation.</param>
<param name="handle"> The handle of the frame buffer object to bind.</param>
</member>
<member name="M:StgSharp.Graphics.ShaderEdit.IglConvertable.SetAllUniforms"> <member name="M:StgSharp.Graphics.ShaderEdit.IglConvertable.SetAllUniforms">
<summary> <summary>
@@ -641,7 +664,7 @@
Create a new <see cref="T:StgSharp.TimeSpanProvider"/> and define the length of time span. Length of a single time span is defined in microseconds. Create a new <see cref="T:StgSharp.TimeSpanProvider"/> and define the length of time span. Length of a single time span is defined in microseconds.
</summary> </summary>
<param name="spanLength"></param> <param name="spanLength"></param>
<parma name="provider"></parma> <param name="provider"></param>
</member> </member>
<member name="M:StgSharp.TimeSpanProvider.#ctor(System.Double,StgSharpDebug.Logic.TimeSourceProviderBase)"> <member name="M:StgSharp.TimeSpanProvider.#ctor(System.Double,StgSharpDebug.Logic.TimeSourceProviderBase)">
<summary> <summary>
@@ -649,14 +672,14 @@
Length of a single time span is defined in seconds. Length of a single time span is defined in seconds.
</summary> </summary>
<param name="spanLength"></param> <param name="spanLength"></param>
<parma name="provider"></parma> <param name="provider"></param>
</member> </member>
<member name="M:StgSharp.TimeSpanProvider.#ctor(System.Int64,System.Int32,StgSharpDebug.Logic.TimeSourceProviderBase)"> <member name="M:StgSharp.TimeSpanProvider.#ctor(System.Int64,System.Int32,StgSharpDebug.Logic.TimeSourceProviderBase)">
<summary> <summary>
Create a new <see cref="T:StgSharp.TimeSpanProvider"/> and define the length of time span. Length of a single time span is defined in microseconds. Create a new <see cref="T:StgSharp.TimeSpanProvider"/> and define the length of time span. Length of a single time span is defined in microseconds.
</summary> </summary>
<param name="spanLength"></param> <param name="spanLength"></param>
<parma name="provider"></parma> <param name="provider"></param>
</member> </member>
<member name="P:StgSharp.TimeSpanProvider.DefaultProvider"> <member name="P:StgSharp.TimeSpanProvider.DefaultProvider">
<summary> <summary>