diff --git a/OpenTKTutorial1/OpenTKTutorial1.sln b/OpenTKTutorial1/OpenTKTutorial1.sln
index 0a0b887..cdb687b 100644
--- a/OpenTKTutorial1/OpenTKTutorial1.sln
+++ b/OpenTKTutorial1/OpenTKTutorial1.sln
@@ -1,16 +1,24 @@
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual Studio 2010
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.25420.1
+MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenTKTutorial1", "OpenTKTutorial1\OpenTKTutorial1.csproj", "{D637FA9A-1AD4-48A1-9D15-A137F182DC54}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
+ Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {D637FA9A-1AD4-48A1-9D15-A137F182DC54}.Debug|x64.ActiveCfg = Debug|x64
+ {D637FA9A-1AD4-48A1-9D15-A137F182DC54}.Debug|x64.Build.0 = Debug|x64
{D637FA9A-1AD4-48A1-9D15-A137F182DC54}.Debug|x86.ActiveCfg = Debug|x86
{D637FA9A-1AD4-48A1-9D15-A137F182DC54}.Debug|x86.Build.0 = Debug|x86
+ {D637FA9A-1AD4-48A1-9D15-A137F182DC54}.Release|x64.ActiveCfg = Release|x64
+ {D637FA9A-1AD4-48A1-9D15-A137F182DC54}.Release|x64.Build.0 = Release|x64
{D637FA9A-1AD4-48A1-9D15-A137F182DC54}.Release|x86.ActiveCfg = Release|x86
{D637FA9A-1AD4-48A1-9D15-A137F182DC54}.Release|x86.Build.0 = Release|x86
EndGlobalSection
diff --git a/OpenTKTutorial1/OpenTKTutorial1/OpenTKTutorial1.csproj b/OpenTKTutorial1/OpenTKTutorial1/OpenTKTutorial1.csproj
index 7fe8024..fdfb362 100644
--- a/OpenTKTutorial1/OpenTKTutorial1/OpenTKTutorial1.csproj
+++ b/OpenTKTutorial1/OpenTKTutorial1/OpenTKTutorial1.csproj
@@ -33,9 +33,17 @@
prompt
4
+
+ x64
+ bin\x64\Debug\
+
+
+ x64
+ bin\x64\Release\
+
-
- ..\packages\OpenTK.2.0.0\lib\net20\OpenTK.dll
+
+ ..\packages\OpenTK.3.0.1\lib\net20\OpenTK.dll
True
diff --git a/OpenTKTutorial1/OpenTKTutorial1/packages.config b/OpenTKTutorial1/OpenTKTutorial1/packages.config
index feefdda..29bb252 100644
--- a/OpenTKTutorial1/OpenTKTutorial1/packages.config
+++ b/OpenTKTutorial1/OpenTKTutorial1/packages.config
@@ -1,4 +1,4 @@
-
+
\ No newline at end of file
diff --git a/OpenTKTutorial2/OpenTKTutorial2.sln b/OpenTKTutorial2/OpenTKTutorial2.sln
index 191e49d..9049ddf 100644
--- a/OpenTKTutorial2/OpenTKTutorial2.sln
+++ b/OpenTKTutorial2/OpenTKTutorial2.sln
@@ -1,16 +1,24 @@
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual Studio 2010
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.25420.1
+MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenTKTutorial2", "OpenTKTutorial2\OpenTKTutorial2.csproj", "{A4FDF904-BC9E-4F80-975F-230F6AB095EF}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
+ Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {A4FDF904-BC9E-4F80-975F-230F6AB095EF}.Debug|x64.ActiveCfg = Debug|x64
+ {A4FDF904-BC9E-4F80-975F-230F6AB095EF}.Debug|x64.Build.0 = Debug|x64
{A4FDF904-BC9E-4F80-975F-230F6AB095EF}.Debug|x86.ActiveCfg = Debug|x86
{A4FDF904-BC9E-4F80-975F-230F6AB095EF}.Debug|x86.Build.0 = Debug|x86
+ {A4FDF904-BC9E-4F80-975F-230F6AB095EF}.Release|x64.ActiveCfg = Release|x64
+ {A4FDF904-BC9E-4F80-975F-230F6AB095EF}.Release|x64.Build.0 = Release|x64
{A4FDF904-BC9E-4F80-975F-230F6AB095EF}.Release|x86.ActiveCfg = Release|x86
{A4FDF904-BC9E-4F80-975F-230F6AB095EF}.Release|x86.Build.0 = Release|x86
EndGlobalSection
diff --git a/OpenTKTutorial2/OpenTKTutorial2/OpenTKTutorial2.csproj b/OpenTKTutorial2/OpenTKTutorial2/OpenTKTutorial2.csproj
index 6e7d676..89ed10e 100644
--- a/OpenTKTutorial2/OpenTKTutorial2/OpenTKTutorial2.csproj
+++ b/OpenTKTutorial2/OpenTKTutorial2/OpenTKTutorial2.csproj
@@ -33,9 +33,17 @@
prompt
4
+
+ x64
+ bin\x64\Debug\
+
+
+ x64
+ bin\x64\Release\
+
-
- ..\packages\OpenTK.2.0.0\lib\net20\OpenTK.dll
+
+ ..\packages\OpenTK.3.0.1\lib\net20\OpenTK.dll
True
diff --git a/OpenTKTutorial2/OpenTKTutorial2/packages.config b/OpenTKTutorial2/OpenTKTutorial2/packages.config
index feefdda..29bb252 100644
--- a/OpenTKTutorial2/OpenTKTutorial2/packages.config
+++ b/OpenTKTutorial2/OpenTKTutorial2/packages.config
@@ -1,4 +1,4 @@
-
+
\ No newline at end of file
diff --git a/OpenTKTutorial3/OpenTKTutorial3.sln b/OpenTKTutorial3/OpenTKTutorial3.sln
index 6eb8133..67ea37d 100644
--- a/OpenTKTutorial3/OpenTKTutorial3.sln
+++ b/OpenTKTutorial3/OpenTKTutorial3.sln
@@ -1,16 +1,24 @@
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual Studio 2010
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.25420.1
+MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenTKTutorial3", "OpenTKTutorial3\OpenTKTutorial3.csproj", "{D1606287-F3D4-41D0-9FB8-00D2B2CFB408}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
+ Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {D1606287-F3D4-41D0-9FB8-00D2B2CFB408}.Debug|x64.ActiveCfg = Debug|x64
+ {D1606287-F3D4-41D0-9FB8-00D2B2CFB408}.Debug|x64.Build.0 = Debug|x64
{D1606287-F3D4-41D0-9FB8-00D2B2CFB408}.Debug|x86.ActiveCfg = Debug|x86
{D1606287-F3D4-41D0-9FB8-00D2B2CFB408}.Debug|x86.Build.0 = Debug|x86
+ {D1606287-F3D4-41D0-9FB8-00D2B2CFB408}.Release|x64.ActiveCfg = Release|x64
+ {D1606287-F3D4-41D0-9FB8-00D2B2CFB408}.Release|x64.Build.0 = Release|x64
{D1606287-F3D4-41D0-9FB8-00D2B2CFB408}.Release|x86.ActiveCfg = Release|x86
{D1606287-F3D4-41D0-9FB8-00D2B2CFB408}.Release|x86.Build.0 = Release|x86
EndGlobalSection
diff --git a/OpenTKTutorial3/OpenTKTutorial3/OpenTKTutorial3.csproj b/OpenTKTutorial3/OpenTKTutorial3/OpenTKTutorial3.csproj
index 2723c67..da1c100 100644
--- a/OpenTKTutorial3/OpenTKTutorial3/OpenTKTutorial3.csproj
+++ b/OpenTKTutorial3/OpenTKTutorial3/OpenTKTutorial3.csproj
@@ -33,9 +33,17 @@
prompt
4
+
+ x64
+ bin\x64\Debug\
+
+
+ x64
+ bin\x64\Release\
+
-
- ..\packages\OpenTK.2.0.0\lib\net20\OpenTK.dll
+
+ ..\packages\OpenTK.3.0.1\lib\net20\OpenTK.dll
True
diff --git a/OpenTKTutorial3/OpenTKTutorial3/packages.config b/OpenTKTutorial3/OpenTKTutorial3/packages.config
index feefdda..29bb252 100644
--- a/OpenTKTutorial3/OpenTKTutorial3/packages.config
+++ b/OpenTKTutorial3/OpenTKTutorial3/packages.config
@@ -1,4 +1,4 @@
-
+
\ No newline at end of file
diff --git a/OpenTKTutorial4/OpenTKTutorial4.sln b/OpenTKTutorial4/OpenTKTutorial4.sln
index 811b2b2..7ff4421 100644
--- a/OpenTKTutorial4/OpenTKTutorial4.sln
+++ b/OpenTKTutorial4/OpenTKTutorial4.sln
@@ -1,16 +1,24 @@
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual Studio 2010
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.25420.1
+MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenTKTutorial4", "OpenTKTutorial4\OpenTKTutorial4.csproj", "{CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
+ Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}.Debug|x64.ActiveCfg = Debug|x64
+ {CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}.Debug|x64.Build.0 = Debug|x64
{CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}.Debug|x86.ActiveCfg = Debug|x86
{CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}.Debug|x86.Build.0 = Debug|x86
+ {CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}.Release|x64.ActiveCfg = Release|x64
+ {CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}.Release|x64.Build.0 = Release|x64
{CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}.Release|x86.ActiveCfg = Release|x86
{CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}.Release|x86.Build.0 = Release|x86
EndGlobalSection
diff --git a/OpenTKTutorial4/OpenTKTutorial4/Game.cs b/OpenTKTutorial4/OpenTKTutorial4/Game.cs
index 55f72f5..57d246a 100644
--- a/OpenTKTutorial4/OpenTKTutorial4/Game.cs
+++ b/OpenTKTutorial4/OpenTKTutorial4/Game.cs
@@ -175,6 +175,12 @@ protected override void OnRenderFrame(FrameEventArgs e)
GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
GL.Enable(EnableCap.DepthTest);
+ // Prevent rendering with no data
+ if (vertdata == null)
+ {
+ return;
+ }
+
GL.EnableVertexAttribArray(attribute_vpos);
GL.EnableVertexAttribArray(attribute_vcol);
diff --git a/OpenTKTutorial4/OpenTKTutorial4/OpenTKTutorial4.csproj b/OpenTKTutorial4/OpenTKTutorial4/OpenTKTutorial4.csproj
index a07f7f3..3d304e4 100644
--- a/OpenTKTutorial4/OpenTKTutorial4/OpenTKTutorial4.csproj
+++ b/OpenTKTutorial4/OpenTKTutorial4/OpenTKTutorial4.csproj
@@ -33,9 +33,17 @@
prompt
4
+
+ x64
+ bin\x64\Debug\
+
+
+ x64
+ bin\x64\Release\
+
-
- ..\packages\OpenTK.2.0.0\lib\net20\OpenTK.dll
+
+ ..\packages\OpenTK.3.0.1\lib\net20\OpenTK.dll
True
diff --git a/OpenTKTutorial4/OpenTKTutorial4/packages.config b/OpenTKTutorial4/OpenTKTutorial4/packages.config
index feefdda..29bb252 100644
--- a/OpenTKTutorial4/OpenTKTutorial4/packages.config
+++ b/OpenTKTutorial4/OpenTKTutorial4/packages.config
@@ -1,4 +1,4 @@
-
+
\ No newline at end of file
diff --git a/OpenTKTutorial5/OpenTKTutorial5.sln b/OpenTKTutorial5/OpenTKTutorial5.sln
index a0ceffd..761ae9d 100644
--- a/OpenTKTutorial5/OpenTKTutorial5.sln
+++ b/OpenTKTutorial5/OpenTKTutorial5.sln
@@ -1,16 +1,24 @@
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual Studio 2010
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.25420.1
+MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenTKTutorial5", "OpenTKTutorial5\OpenTKTutorial5.csproj", "{CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
+ Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}.Debug|x64.ActiveCfg = Debug|x64
+ {CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}.Debug|x64.Build.0 = Debug|x64
{CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}.Debug|x86.ActiveCfg = Debug|x86
{CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}.Debug|x86.Build.0 = Debug|x86
+ {CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}.Release|x64.ActiveCfg = Release|x64
+ {CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}.Release|x64.Build.0 = Release|x64
{CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}.Release|x86.ActiveCfg = Release|x86
{CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}.Release|x86.Build.0 = Release|x86
EndGlobalSection
diff --git a/OpenTKTutorial5/OpenTKTutorial5/Game.cs b/OpenTKTutorial5/OpenTKTutorial5/Game.cs
index 714b35b..9d2cec2 100644
--- a/OpenTKTutorial5/OpenTKTutorial5/Game.cs
+++ b/OpenTKTutorial5/OpenTKTutorial5/Game.cs
@@ -106,7 +106,7 @@ public Game()
void initProgram()
{
- lastMousePos = new Vector2(Mouse.X, Mouse.Y);
+ lastMousePos = new Vector2(Mouse.GetState().X, Mouse.GetState().Y);
CursorVisible = false;
cam.MouseSensitivity = 0.0025f;
@@ -191,6 +191,12 @@ protected override void OnRenderFrame(FrameEventArgs e)
GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
GL.Enable(EnableCap.DepthTest);
+ // Prevent rendering with no data
+ if (vertdata == null)
+ {
+ return;
+ }
+
GL.EnableVertexAttribArray(attribute_vpos);
GL.EnableVertexAttribArray(attribute_vcol);
diff --git a/OpenTKTutorial5/OpenTKTutorial5/OpenTKTutorial5.csproj b/OpenTKTutorial5/OpenTKTutorial5/OpenTKTutorial5.csproj
index 17b97ad..442a43a 100644
--- a/OpenTKTutorial5/OpenTKTutorial5/OpenTKTutorial5.csproj
+++ b/OpenTKTutorial5/OpenTKTutorial5/OpenTKTutorial5.csproj
@@ -33,9 +33,17 @@
prompt
4
+
+ x64
+ bin\x64\Debug\
+
+
+ x64
+ bin\x64\Release\
+
-
- ..\packages\OpenTK.2.0.0\lib\net20\OpenTK.dll
+
+ ..\packages\OpenTK.3.0.1\lib\net20\OpenTK.dll
True
diff --git a/OpenTKTutorial5/OpenTKTutorial5/packages.config b/OpenTKTutorial5/OpenTKTutorial5/packages.config
index feefdda..29bb252 100644
--- a/OpenTKTutorial5/OpenTKTutorial5/packages.config
+++ b/OpenTKTutorial5/OpenTKTutorial5/packages.config
@@ -1,4 +1,4 @@
-
+
\ No newline at end of file
diff --git a/OpenTKTutorial6/OpenTKTutorial6.sln b/OpenTKTutorial6/OpenTKTutorial6.sln
index ab52e60..ed2d65d 100644
--- a/OpenTKTutorial6/OpenTKTutorial6.sln
+++ b/OpenTKTutorial6/OpenTKTutorial6.sln
@@ -1,18 +1,26 @@
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual Studio 2010
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.25420.1
+MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenTKTutorial6", "OpenTKTutorial6\OpenTKTutorial6.csproj", "{CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{ACBF192E-C0F1-4B53-958F-915EDD01BA71}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
+ Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}.Debug|x64.ActiveCfg = Debug|x64
+ {CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}.Debug|x64.Build.0 = Debug|x64
{CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}.Debug|x86.ActiveCfg = Debug|x86
{CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}.Debug|x86.Build.0 = Debug|x86
+ {CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}.Release|x64.ActiveCfg = Release|x64
+ {CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}.Release|x64.Build.0 = Release|x64
{CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}.Release|x86.ActiveCfg = Release|x86
{CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}.Release|x86.Build.0 = Release|x86
EndGlobalSection
diff --git a/OpenTKTutorial6/OpenTKTutorial6/Game.cs b/OpenTKTutorial6/OpenTKTutorial6/Game.cs
index 935653b..bac974c 100644
--- a/OpenTKTutorial6/OpenTKTutorial6/Game.cs
+++ b/OpenTKTutorial6/OpenTKTutorial6/Game.cs
@@ -36,7 +36,7 @@ public Game()
void initProgram()
{
- lastMousePos = new Vector2(Mouse.X, Mouse.Y);
+ lastMousePos = new Vector2(Mouse.GetState().X, Mouse.GetState().Y);
CursorVisible = false;
cam.MouseSensitivity = 0.0025f;
@@ -84,6 +84,12 @@ protected override void OnRenderFrame(FrameEventArgs e)
GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
GL.Enable(EnableCap.DepthTest);
+ // Prevent rendering with no data
+ if (vertdata == null)
+ {
+ return;
+ }
+
shaders[activeShader].EnableVertexAttribArrays();
int indiceat = 0;
diff --git a/OpenTKTutorial6/OpenTKTutorial6/OpenTKTutorial6.csproj b/OpenTKTutorial6/OpenTKTutorial6/OpenTKTutorial6.csproj
index 0b9f32a..bc1cec8 100644
--- a/OpenTKTutorial6/OpenTKTutorial6/OpenTKTutorial6.csproj
+++ b/OpenTKTutorial6/OpenTKTutorial6/OpenTKTutorial6.csproj
@@ -33,9 +33,17 @@
prompt
4
+
+ x64
+ bin\x64\Debug\
+
+
+ x64
+ bin\x64\Release\
+
-
- ..\packages\OpenTK.2.0.0\lib\net20\OpenTK.dll
+
+ ..\packages\OpenTK.3.0.1\lib\net20\OpenTK.dll
True
diff --git a/OpenTKTutorial6/OpenTKTutorial6/ShaderProgram.cs b/OpenTKTutorial6/OpenTKTutorial6/ShaderProgram.cs
index 6dcd9bb..8dab993 100644
--- a/OpenTKTutorial6/OpenTKTutorial6/ShaderProgram.cs
+++ b/OpenTKTutorial6/OpenTKTutorial6/ShaderProgram.cs
@@ -74,9 +74,9 @@ public void Link()
AttributeInfo info = new AttributeInfo();
int length = 0;
- StringBuilder name = new StringBuilder();
+ String name;
- GL.GetActiveAttrib(ProgramID, i, 256, out length, out info.size, out info.type, name);
+ GL.GetActiveAttrib(ProgramID, i, 256, out length, out info.size, out info.type, out name);
info.name = name.ToString();
info.address = GL.GetAttribLocation(ProgramID, info.name);
@@ -88,9 +88,9 @@ public void Link()
UniformInfo info = new UniformInfo();
int length = 0;
- StringBuilder name = new StringBuilder();
+ String name;
- GL.GetActiveUniform(ProgramID, i, 256, out length, out info.size, out info.type, name);
+ GL.GetActiveUniform(ProgramID, i, 256, out length, out info.size, out info.type, out name);
info.name = name.ToString();
Uniforms.Add(name.ToString(), info);
diff --git a/OpenTKTutorial6/OpenTKTutorial6/packages.config b/OpenTKTutorial6/OpenTKTutorial6/packages.config
index feefdda..29bb252 100644
--- a/OpenTKTutorial6/OpenTKTutorial6/packages.config
+++ b/OpenTKTutorial6/OpenTKTutorial6/packages.config
@@ -1,4 +1,4 @@
-
+
\ No newline at end of file
diff --git a/OpenTKTutorial7/OpenTKTutorial7.sln b/OpenTKTutorial7/OpenTKTutorial7.sln
index 5af51ff..2a1edbf 100644
--- a/OpenTKTutorial7/OpenTKTutorial7.sln
+++ b/OpenTKTutorial7/OpenTKTutorial7.sln
@@ -1,18 +1,26 @@
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual Studio 2010
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.25420.1
+MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenTKTutorial7", "OpenTKTutorial7\OpenTKTutorial7.csproj", "{CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{ACBF192E-C0F1-4B53-958F-915EDD01BA71}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
+ Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}.Debug|x64.ActiveCfg = Debug|x64
+ {CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}.Debug|x64.Build.0 = Debug|x64
{CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}.Debug|x86.ActiveCfg = Debug|x86
{CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}.Debug|x86.Build.0 = Debug|x86
+ {CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}.Release|x64.ActiveCfg = Release|x64
+ {CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}.Release|x64.Build.0 = Release|x64
{CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}.Release|x86.ActiveCfg = Release|x86
{CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}.Release|x86.Build.0 = Release|x86
EndGlobalSection
diff --git a/OpenTKTutorial7/OpenTKTutorial7/Cube.cs b/OpenTKTutorial7/OpenTKTutorial7/Cube.cs
index 734c438..e52cf28 100644
--- a/OpenTKTutorial7/OpenTKTutorial7/Cube.cs
+++ b/OpenTKTutorial7/OpenTKTutorial7/Cube.cs
@@ -77,7 +77,7 @@ public override Vector3[] GetColorData()
public override void CalculateModelMatrix()
{
- ModelMatrix = Matrix4.Scale(Scale) * Matrix4.CreateRotationX(Rotation.X) * Matrix4.CreateRotationY(Rotation.Y) * Matrix4.CreateRotationZ(Rotation.Z) * Matrix4.CreateTranslation(Position);
+ ModelMatrix = Matrix4.CreateScale(Scale) * Matrix4.CreateRotationX(Rotation.X) * Matrix4.CreateRotationY(Rotation.Y) * Matrix4.CreateRotationZ(Rotation.Z) * Matrix4.CreateTranslation(Position);
}
public override Vector2[] GetTextureCoords()
diff --git a/OpenTKTutorial7/OpenTKTutorial7/Game.cs b/OpenTKTutorial7/OpenTKTutorial7/Game.cs
index 0e4690d..37803fb 100644
--- a/OpenTKTutorial7/OpenTKTutorial7/Game.cs
+++ b/OpenTKTutorial7/OpenTKTutorial7/Game.cs
@@ -36,7 +36,7 @@ public Game()
void initProgram()
{
- lastMousePos = new Vector2(Mouse.X, Mouse.Y);
+ lastMousePos = new Vector2(Mouse.GetState().X, Mouse.GetState().Y);
CursorVisible = false;
cam.MouseSensitivity = 0.0025f;
@@ -94,6 +94,12 @@ protected override void OnRenderFrame(FrameEventArgs e)
GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
GL.Enable(EnableCap.DepthTest);
+ // Prevent rendering with no data
+ if (vertdata == null)
+ {
+ return;
+ }
+
shaders[activeShader].EnableVertexAttribArrays();
int indiceat = 0;
diff --git a/OpenTKTutorial7/OpenTKTutorial7/ObjVolume.cs b/OpenTKTutorial7/OpenTKTutorial7/ObjVolume.cs
index 083fb31..6cecf2f 100644
--- a/OpenTKTutorial7/OpenTKTutorial7/ObjVolume.cs
+++ b/OpenTKTutorial7/OpenTKTutorial7/ObjVolume.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
+using System.Globalization;
using System.IO;
using System.Linq;
using System.Text;
@@ -71,7 +72,7 @@ public override Vector2[] GetTextureCoords()
///
public override void CalculateModelMatrix()
{
- ModelMatrix = Matrix4.Scale(Scale) * Matrix4.CreateRotationX(Rotation.X) * Matrix4.CreateRotationY(Rotation.Y) * Matrix4.CreateRotationZ(Rotation.Z) * Matrix4.CreateTranslation(Position);
+ ModelMatrix = Matrix4.CreateScale(Scale) * Matrix4.CreateRotationX(Rotation.X) * Matrix4.CreateRotationY(Rotation.Y) * Matrix4.CreateRotationZ(Rotation.Z) * Matrix4.CreateTranslation(Position);
}
///
@@ -112,6 +113,10 @@ public static ObjVolume LoadFromString(string obj)
List texs = new List();
List> faces = new List>();
+ // This allows users in any locale to read the files
+ CultureInfo ci = (CultureInfo)CultureInfo.CurrentCulture.Clone();
+ ci.NumberFormat.CurrencyDecimalSeparator = ".";
+
// Read file line by line
foreach (String line in lines)
{
@@ -127,9 +132,9 @@ public static ObjVolume LoadFromString(string obj)
String[] vertparts = temp.Split(' ');
// Attempt to parse each part of the vertice
- bool success = float.TryParse(vertparts[0], out vec.X);
- success |= float.TryParse(vertparts[1], out vec.Y);
- success |= float.TryParse(vertparts[2], out vec.Z);
+ bool success = float.TryParse(vertparts[0], NumberStyles.Any, ci, out vec.X);
+ success |= float.TryParse(vertparts[1], NumberStyles.Any, ci, out vec.Y);
+ success |= float.TryParse(vertparts[2], NumberStyles.Any, ci, out vec.Z);
// Dummy color/texture coordinates for now
colors.Add(new Vector3((float) Math.Sin(vec.Z), (float) Math.Sin(vec.Z), (float) Math.Sin(vec.Z)));
diff --git a/OpenTKTutorial7/OpenTKTutorial7/OpenTKTutorial7.csproj b/OpenTKTutorial7/OpenTKTutorial7/OpenTKTutorial7.csproj
index 8b2ed91..9f0eb7d 100644
--- a/OpenTKTutorial7/OpenTKTutorial7/OpenTKTutorial7.csproj
+++ b/OpenTKTutorial7/OpenTKTutorial7/OpenTKTutorial7.csproj
@@ -36,9 +36,17 @@
OpenTKTutorial7.Program
+
+ x64
+ bin\x64\Debug\
+
+
+ x64
+ bin\x64\Release\
+
-
- ..\packages\OpenTK.2.0.0\lib\net20\OpenTK.dll
+
+ ..\packages\OpenTK.3.0.1\lib\net20\OpenTK.dll
True
diff --git a/OpenTKTutorial7/OpenTKTutorial7/ShaderProgram.cs b/OpenTKTutorial7/OpenTKTutorial7/ShaderProgram.cs
index 827a0c2..3db1146 100644
--- a/OpenTKTutorial7/OpenTKTutorial7/ShaderProgram.cs
+++ b/OpenTKTutorial7/OpenTKTutorial7/ShaderProgram.cs
@@ -74,9 +74,9 @@ public void Link()
AttributeInfo info = new AttributeInfo();
int length = 0;
- StringBuilder name = new StringBuilder();
+ String name;
- GL.GetActiveAttrib(ProgramID, i, 256, out length, out info.size, out info.type, name);
+ GL.GetActiveAttrib(ProgramID, i, 256, out length, out info.size, out info.type, out name);
info.name = name.ToString();
info.address = GL.GetAttribLocation(ProgramID, info.name);
@@ -88,9 +88,9 @@ public void Link()
UniformInfo info = new UniformInfo();
int length = 0;
- StringBuilder name = new StringBuilder();
+ String name;
- GL.GetActiveUniform(ProgramID, i, 256, out length, out info.size, out info.type, name);
+ GL.GetActiveUniform(ProgramID, i, 256, out length, out info.size, out info.type, out name);
info.name = name.ToString();
Uniforms.Add(name.ToString(), info);
diff --git a/OpenTKTutorial7/OpenTKTutorial7/packages.config b/OpenTKTutorial7/OpenTKTutorial7/packages.config
index feefdda..29bb252 100644
--- a/OpenTKTutorial7/OpenTKTutorial7/packages.config
+++ b/OpenTKTutorial7/OpenTKTutorial7/packages.config
@@ -1,4 +1,4 @@
-
+
\ No newline at end of file
diff --git a/OpenTKTutorial8-1/OpenTKTutorial8.sln b/OpenTKTutorial8-1/OpenTKTutorial8.sln
index 8a77f4d..c11a861 100644
--- a/OpenTKTutorial8-1/OpenTKTutorial8.sln
+++ b/OpenTKTutorial8-1/OpenTKTutorial8.sln
@@ -1,18 +1,26 @@
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual Studio 2010
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.25420.1
+MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenTKTutorial8", "OpenTKTutorial8\OpenTKTutorial8.csproj", "{CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{ACBF192E-C0F1-4B53-958F-915EDD01BA71}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
+ Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}.Debug|x64.ActiveCfg = Debug|x64
+ {CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}.Debug|x64.Build.0 = Debug|x64
{CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}.Debug|x86.ActiveCfg = Debug|x86
{CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}.Debug|x86.Build.0 = Debug|x86
+ {CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}.Release|x64.ActiveCfg = Release|x64
+ {CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}.Release|x64.Build.0 = Release|x64
{CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}.Release|x86.ActiveCfg = Release|x86
{CE5CD75D-8626-4CD8-83FC-B7A4868DAEC0}.Release|x86.Build.0 = Release|x86
EndGlobalSection
diff --git a/OpenTKTutorial8-1/OpenTKTutorial8/Game.cs b/OpenTKTutorial8-1/OpenTKTutorial8/Game.cs
index bf93c31..2c08493 100644
--- a/OpenTKTutorial8-1/OpenTKTutorial8/Game.cs
+++ b/OpenTKTutorial8-1/OpenTKTutorial8/Game.cs
@@ -42,7 +42,7 @@ public Game()
void initProgram()
{
- lastMousePos = new Vector2(Mouse.X, Mouse.Y);
+ lastMousePos = new Vector2(Mouse.GetState().X, Mouse.GetState().Y);
CursorVisible = false;
cam.MouseSensitivity = 0.0025f;
@@ -91,6 +91,12 @@ protected override void OnRenderFrame(FrameEventArgs e)
GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
GL.Enable(EnableCap.DepthTest);
+ // Prevent rendering with no data
+ if (vertdata == null)
+ {
+ return;
+ }
+
shaders[activeShader].EnableVertexAttribArrays();
int indiceat = 0;
diff --git a/OpenTKTutorial8-1/OpenTKTutorial8/ObjVolume.cs b/OpenTKTutorial8-1/OpenTKTutorial8/ObjVolume.cs
index c727038..bca7034 100644
--- a/OpenTKTutorial8-1/OpenTKTutorial8/ObjVolume.cs
+++ b/OpenTKTutorial8-1/OpenTKTutorial8/ObjVolume.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
+using System.Globalization;
using System.IO;
using System.Linq;
using System.Text;
@@ -120,6 +121,9 @@ public static ObjVolume LoadFromString(string obj)
List texs = new List();
List> faces = new List>();
+ CultureInfo ci = (CultureInfo)CultureInfo.CurrentCulture.Clone();
+ ci.NumberFormat.CurrencyDecimalSeparator = ".";
+
// Base values
verts.Add(new Vector3());
texs.Add(new Vector2());
@@ -140,10 +144,10 @@ public static ObjVolume LoadFromString(string obj)
{
String[] vertparts = temp.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
- // Attempt to parse each part of the vertice
- bool success = float.TryParse(vertparts[0], out vec.X);
- success |= float.TryParse(vertparts[1], out vec.Y);
- success |= float.TryParse(vertparts[2], out vec.Z);
+ // Attempt to parse each part of the vertex
+ bool success = float.TryParse(vertparts[0], NumberStyles.Any, ci, out vec.X);
+ success |= float.TryParse(vertparts[1], NumberStyles.Any, ci, out vec.Y);
+ success |= float.TryParse(vertparts[2], NumberStyles.Any, ci, out vec.Z);
// If any of the parses failed, report the error
if (!success)
@@ -169,9 +173,9 @@ public static ObjVolume LoadFromString(string obj)
{
String[] texcoordparts = temp.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
- // Attempt to parse each part of the vertice
- bool success = float.TryParse(texcoordparts[0], out vec.X);
- success |= float.TryParse(texcoordparts[1], out vec.Y);
+ // Attempt to parse each part of the vertex
+ bool success = float.TryParse(texcoordparts[0], NumberStyles.Any, ci, out vec.X);
+ success |= float.TryParse(texcoordparts[1], NumberStyles.Any, ci, out vec.Y);
// If any of the parses failed, report the error
if (!success)
diff --git a/OpenTKTutorial8-1/OpenTKTutorial8/OpenTKTutorial8.csproj b/OpenTKTutorial8-1/OpenTKTutorial8/OpenTKTutorial8.csproj
index cefca85..823085d 100644
--- a/OpenTKTutorial8-1/OpenTKTutorial8/OpenTKTutorial8.csproj
+++ b/OpenTKTutorial8-1/OpenTKTutorial8/OpenTKTutorial8.csproj
@@ -36,9 +36,17 @@
OpenTKTutorial8.Program
+
+ x64
+ bin\x64\Debug\
+
+
+ x64
+ bin\x64\Release\
+
-
- ..\packages\OpenTK.2.0.0\lib\net20\OpenTK.dll
+
+ ..\packages\OpenTK.3.0.1\lib\net20\OpenTK.dll
True
diff --git a/OpenTKTutorial8-1/OpenTKTutorial8/ShaderProgram.cs b/OpenTKTutorial8-1/OpenTKTutorial8/ShaderProgram.cs
index 4a2e013..fb557fd 100644
--- a/OpenTKTutorial8-1/OpenTKTutorial8/ShaderProgram.cs
+++ b/OpenTKTutorial8-1/OpenTKTutorial8/ShaderProgram.cs
@@ -66,17 +66,17 @@ public void Link()
Console.WriteLine(GL.GetProgramInfoLog(ProgramID));
- GL.GetProgram(ProgramID, GetProgramParameterName.ActiveAttributes, out AttributeCount);
- GL.GetProgram(ProgramID, GetProgramParameterName.ActiveUniforms, out UniformCount);
+ GL.GetProgram(ProgramID, ProgramParameter.ActiveAttributes, out AttributeCount);
+ GL.GetProgram(ProgramID, ProgramParameter.ActiveUniforms, out UniformCount);
for (int i = 0; i < AttributeCount; i++)
{
AttributeInfo info = new AttributeInfo();
int length = 0;
- StringBuilder name = new StringBuilder();
+ String name;
- GL.GetActiveAttrib(ProgramID, i, 256, out length, out info.size, out info.type, name);
+ GL.GetActiveAttrib(ProgramID, i, 256, out length, out info.size, out info.type, out name);
info.name = name.ToString();
info.address = GL.GetAttribLocation(ProgramID, info.name);
@@ -88,9 +88,10 @@ public void Link()
UniformInfo info = new UniformInfo();
int length = 0;
- StringBuilder name = new StringBuilder();
+ String name;
- GL.GetActiveUniform(ProgramID, i, 256, out length, out info.size, out info.type, name);
+
+ GL.GetActiveUniform(ProgramID, i, 256, out length, out info.size, out info.type, out name);
info.name = name.ToString();
Uniforms.Add(name.ToString(), info);
diff --git a/OpenTKTutorial8-1/OpenTKTutorial8/packages.config b/OpenTKTutorial8-1/OpenTKTutorial8/packages.config
index feefdda..29bb252 100644
--- a/OpenTKTutorial8-1/OpenTKTutorial8/packages.config
+++ b/OpenTKTutorial8-1/OpenTKTutorial8/packages.config
@@ -1,4 +1,4 @@
-
+
\ No newline at end of file
diff --git a/OpenTKTutorial8-2/OpenTKTutorial8-2/Cube.cs b/OpenTKTutorial8-2/OpenTKTutorial8-2/Cube.cs
index 119fc80..9db2c51 100644
--- a/OpenTKTutorial8-2/OpenTKTutorial8-2/Cube.cs
+++ b/OpenTKTutorial8-2/OpenTKTutorial8-2/Cube.cs
@@ -77,7 +77,7 @@ public override Vector3[] GetColorData()
public override void CalculateModelMatrix()
{
- ModelMatrix = Matrix4.Scale(Scale) * Matrix4.CreateRotationX(Rotation.X) * Matrix4.CreateRotationY(Rotation.Y) * Matrix4.CreateRotationZ(Rotation.Z) * Matrix4.CreateTranslation(Position);
+ ModelMatrix = Matrix4.CreateScale(Scale) * Matrix4.CreateRotationX(Rotation.X) * Matrix4.CreateRotationY(Rotation.Y) * Matrix4.CreateRotationZ(Rotation.Z) * Matrix4.CreateTranslation(Position);
}
public override Vector2[] GetTextureCoords()
diff --git a/OpenTKTutorial8-2/OpenTKTutorial8-2/Game.cs b/OpenTKTutorial8-2/OpenTKTutorial8-2/Game.cs
index 6870dc3..2e304b4 100644
--- a/OpenTKTutorial8-2/OpenTKTutorial8-2/Game.cs
+++ b/OpenTKTutorial8-2/OpenTKTutorial8-2/Game.cs
@@ -42,7 +42,7 @@ public Game()
void initProgram()
{
- lastMousePos = new Vector2(Mouse.X, Mouse.Y);
+ lastMousePos = new Vector2(Mouse.GetState().X, Mouse.GetState().Y);
CursorVisible = false;
cam.MouseSensitivity = 0.0025f;
@@ -146,6 +146,12 @@ protected override void OnRenderFrame(FrameEventArgs e)
GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
GL.Enable(EnableCap.DepthTest);
+ // Prevent rendering with no data
+ if (vertdata == null)
+ {
+ return;
+ }
+
GL.UseProgram(shaders[activeShader].ProgramID);
shaders[activeShader].EnableVertexAttribArrays();
diff --git a/OpenTKTutorial8-2/OpenTKTutorial8-2/ObjVolume.cs b/OpenTKTutorial8-2/OpenTKTutorial8-2/ObjVolume.cs
index 681335b..4a08a3a 100644
--- a/OpenTKTutorial8-2/OpenTKTutorial8-2/ObjVolume.cs
+++ b/OpenTKTutorial8-2/OpenTKTutorial8-2/ObjVolume.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
+using System.Globalization;
using System.IO;
using System.Linq;
using OpenTK;
@@ -120,7 +121,7 @@ public override Vector2[] GetTextureCoords()
///
public override void CalculateModelMatrix()
{
- ModelMatrix = Matrix4.Scale(Scale) * Matrix4.CreateRotationX(Rotation.X) * Matrix4.CreateRotationY(Rotation.Y) * Matrix4.CreateRotationZ(Rotation.Z) * Matrix4.CreateTranslation(Position);
+ ModelMatrix = Matrix4.CreateScale(Scale) * Matrix4.CreateRotationX(Rotation.X) * Matrix4.CreateRotationY(Rotation.Y) * Matrix4.CreateRotationZ(Rotation.Z) * Matrix4.CreateTranslation(Position);
}
///
@@ -138,7 +139,7 @@ public static ObjVolume LoadFromFile(string filename)
obj = LoadFromString(reader.ReadToEnd());
}
}
- catch (FileNotFoundException)
+ catch (FileNotFoundException e)
{
Console.WriteLine("File not found: {0}", filename);
}
@@ -160,6 +161,9 @@ public static ObjVolume LoadFromString(string obj)
List normals = new List();
List texs = new List();
List> faces = new List>();
+
+ CultureInfo ci = (CultureInfo)CultureInfo.CurrentCulture.Clone();
+ ci.NumberFormat.CurrencyDecimalSeparator = ".";
// Base values
verts.Add(new Vector3());
@@ -182,10 +186,10 @@ public static ObjVolume LoadFromString(string obj)
{
String[] vertparts = temp.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
- // Attempt to parse each part of the vertice
- bool success = float.TryParse(vertparts[0], out vec.X);
- success |= float.TryParse(vertparts[1], out vec.Y);
- success |= float.TryParse(vertparts[2], out vec.Z);
+ // Attempt to parse each part of the vertex
+ bool success = float.TryParse(vertparts[0], NumberStyles.Any, ci, out vec.X);
+ success |= float.TryParse(vertparts[1], NumberStyles.Any, ci, out vec.Y);
+ success |= float.TryParse(vertparts[2], NumberStyles.Any, ci, out vec.Z);
// If any of the parses failed, report the error
if (!success)
@@ -211,9 +215,9 @@ public static ObjVolume LoadFromString(string obj)
{
String[] texcoordparts = temp.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
- // Attempt to parse each part of the vertice
- bool success = float.TryParse(texcoordparts[0], out vec.X);
- success |= float.TryParse(texcoordparts[1], out vec.Y);
+ // Attempt to parse each part of the vertex
+ bool success = float.TryParse(texcoordparts[0], NumberStyles.Any, ci, out vec.X);
+ success |= float.TryParse(texcoordparts[1], NumberStyles.Any, ci, out vec.Y);
// If any of the parses failed, report the error
if (!success)
@@ -239,10 +243,10 @@ public static ObjVolume LoadFromString(string obj)
{
String[] vertparts = temp.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
- // Attempt to parse each part of the vertice
- bool success = float.TryParse(vertparts[0], out vec.X);
- success |= float.TryParse(vertparts[1], out vec.Y);
- success |= float.TryParse(vertparts[2], out vec.Z);
+ // Attempt to parse each part of the vertex
+ bool success = float.TryParse(vertparts[0], NumberStyles.Any, ci, out vec.X);
+ success |= float.TryParse(vertparts[1], NumberStyles.Any, ci, out vec.Y);
+ success |= float.TryParse(vertparts[2], NumberStyles.Any, ci, out vec.Z);
// If any of the parses failed, report the error
if (!success)
diff --git a/OpenTKTutorial8-2/OpenTKTutorial8-2/OpenTK.dll.config b/OpenTKTutorial8-2/OpenTKTutorial8-2/OpenTK.dll.config
deleted file mode 100644
index 7098d39..0000000
--- a/OpenTKTutorial8-2/OpenTKTutorial8-2/OpenTK.dll.config
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/OpenTKTutorial8-2/OpenTKTutorial8-2/OpenTKTutorial8-2.csproj b/OpenTKTutorial8-2/OpenTKTutorial8-2/OpenTKTutorial8-2.csproj
index c72ca7c..f57c9c4 100644
--- a/OpenTKTutorial8-2/OpenTKTutorial8-2/OpenTKTutorial8-2.csproj
+++ b/OpenTKTutorial8-2/OpenTKTutorial8-2/OpenTKTutorial8-2.csproj
@@ -55,8 +55,8 @@
MinimumRecommendedRules.ruleset
-
- ..\packages\OpenTK.2.0.0\lib\net20\OpenTK.dll
+
+ ..\packages\OpenTK.3.0.1\lib\net20\OpenTK.dll
True
@@ -89,7 +89,6 @@
Always
-
Always
diff --git a/OpenTKTutorial8-2/OpenTKTutorial8-2/ShaderProgram.cs b/OpenTKTutorial8-2/OpenTKTutorial8-2/ShaderProgram.cs
index 4a2e013..fb557fd 100644
--- a/OpenTKTutorial8-2/OpenTKTutorial8-2/ShaderProgram.cs
+++ b/OpenTKTutorial8-2/OpenTKTutorial8-2/ShaderProgram.cs
@@ -66,17 +66,17 @@ public void Link()
Console.WriteLine(GL.GetProgramInfoLog(ProgramID));
- GL.GetProgram(ProgramID, GetProgramParameterName.ActiveAttributes, out AttributeCount);
- GL.GetProgram(ProgramID, GetProgramParameterName.ActiveUniforms, out UniformCount);
+ GL.GetProgram(ProgramID, ProgramParameter.ActiveAttributes, out AttributeCount);
+ GL.GetProgram(ProgramID, ProgramParameter.ActiveUniforms, out UniformCount);
for (int i = 0; i < AttributeCount; i++)
{
AttributeInfo info = new AttributeInfo();
int length = 0;
- StringBuilder name = new StringBuilder();
+ String name;
- GL.GetActiveAttrib(ProgramID, i, 256, out length, out info.size, out info.type, name);
+ GL.GetActiveAttrib(ProgramID, i, 256, out length, out info.size, out info.type, out name);
info.name = name.ToString();
info.address = GL.GetAttribLocation(ProgramID, info.name);
@@ -88,9 +88,10 @@ public void Link()
UniformInfo info = new UniformInfo();
int length = 0;
- StringBuilder name = new StringBuilder();
+ String name;
- GL.GetActiveUniform(ProgramID, i, 256, out length, out info.size, out info.type, name);
+
+ GL.GetActiveUniform(ProgramID, i, 256, out length, out info.size, out info.type, out name);
info.name = name.ToString();
Uniforms.Add(name.ToString(), info);
diff --git a/OpenTKTutorial8-2/OpenTKTutorial8-2/packages.config b/OpenTKTutorial8-2/OpenTKTutorial8-2/packages.config
index feefdda..29bb252 100644
--- a/OpenTKTutorial8-2/OpenTKTutorial8-2/packages.config
+++ b/OpenTKTutorial8-2/OpenTKTutorial8-2/packages.config
@@ -1,4 +1,4 @@
-
+
\ No newline at end of file
diff --git a/OpenTKTutorial9-1/OpenTKTutorial9-1/Cube.cs b/OpenTKTutorial9-1/OpenTKTutorial9-1/Cube.cs
index c64b49f..54b92b4 100644
--- a/OpenTKTutorial9-1/OpenTKTutorial9-1/Cube.cs
+++ b/OpenTKTutorial9-1/OpenTKTutorial9-1/Cube.cs
@@ -77,7 +77,7 @@ public override Vector3[] GetColorData()
public override void CalculateModelMatrix()
{
- ModelMatrix = Matrix4.Scale(Scale) * Matrix4.CreateRotationX(Rotation.X) * Matrix4.CreateRotationY(Rotation.Y) * Matrix4.CreateRotationZ(Rotation.Z) * Matrix4.CreateTranslation(Position);
+ ModelMatrix = Matrix4.CreateScale(Scale) * Matrix4.CreateRotationX(Rotation.X) * Matrix4.CreateRotationY(Rotation.Y) * Matrix4.CreateRotationZ(Rotation.Z) * Matrix4.CreateTranslation(Position);
}
public override Vector2[] GetTextureCoords()
diff --git a/OpenTKTutorial9-1/OpenTKTutorial9-1/Game.cs b/OpenTKTutorial9-1/OpenTKTutorial9-1/Game.cs
index 7489c46..07a7cd8 100644
--- a/OpenTKTutorial9-1/OpenTKTutorial9-1/Game.cs
+++ b/OpenTKTutorial9-1/OpenTKTutorial9-1/Game.cs
@@ -43,7 +43,7 @@ public Game()
void initProgram()
{
- lastMousePos = new Vector2(Mouse.X, Mouse.Y);
+ lastMousePos = new Vector2(Mouse.GetState().X, Mouse.GetState().Y);
CursorVisible = false;
GL.GenBuffers(1, out ibo_elements);
@@ -164,6 +164,12 @@ protected override void OnRenderFrame(FrameEventArgs e)
GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
GL.Enable(EnableCap.DepthTest);
+ // Prevent rendering with no data
+ if (vertdata == null)
+ {
+ return;
+ }
+
GL.UseProgram(shaders[activeShader].ProgramID);
shaders[activeShader].EnableVertexAttribArrays();
@@ -289,11 +295,11 @@ protected override void OnUpdateFrame(FrameEventArgs e)
vertcount += v.VertCount;
}
- vertdata = verts.ToArray();
- indicedata = inds.ToArray();
- coldata = colors.ToArray();
- texcoorddata = texcoords.ToArray();
- normdata = normals.ToArray();
+ vertdata = (Vector3[])verts.ToArray().Clone();
+ indicedata = (int[])inds.ToArray().Clone();
+ coldata = (Vector3[])colors.ToArray().Clone();
+ texcoorddata = (Vector2[])texcoords.ToArray().Clone();
+ normdata = (Vector3[])normals.ToArray().Clone();
GL.BindBuffer(BufferTarget.ArrayBuffer, shaders[activeShader].GetBuffer("vPosition"));
diff --git a/OpenTKTutorial9-1/OpenTKTutorial9-1/ObjVolume.cs b/OpenTKTutorial9-1/OpenTKTutorial9-1/ObjVolume.cs
index 570bc7b..8eef783 100644
--- a/OpenTKTutorial9-1/OpenTKTutorial9-1/ObjVolume.cs
+++ b/OpenTKTutorial9-1/OpenTKTutorial9-1/ObjVolume.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
+using System.Globalization;
using System.IO;
using System.Linq;
using OpenTK;
@@ -120,7 +121,7 @@ public override Vector2[] GetTextureCoords()
///
public override void CalculateModelMatrix()
{
- ModelMatrix = Matrix4.Scale(Scale) * Matrix4.CreateRotationX(Rotation.X) * Matrix4.CreateRotationY(Rotation.Y) * Matrix4.CreateRotationZ(Rotation.Z) * Matrix4.CreateTranslation(Position);
+ ModelMatrix = Matrix4.CreateScale(Scale) * Matrix4.CreateRotationX(Rotation.X) * Matrix4.CreateRotationY(Rotation.Y) * Matrix4.CreateRotationZ(Rotation.Z) * Matrix4.CreateTranslation(Position);
}
///
@@ -160,6 +161,9 @@ public static ObjVolume LoadFromString(string obj)
List normals = new List();
List texs = new List();
List> faces = new List>();
+
+ CultureInfo ci = (CultureInfo)CultureInfo.CurrentCulture.Clone();
+ ci.NumberFormat.CurrencyDecimalSeparator = ".";
// Base values
verts.Add(new Vector3());
@@ -182,10 +186,10 @@ public static ObjVolume LoadFromString(string obj)
{
String[] vertparts = temp.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
- // Attempt to parse each part of the vertice
- bool success = float.TryParse(vertparts[0], out vec.X);
- success |= float.TryParse(vertparts[1], out vec.Y);
- success |= float.TryParse(vertparts[2], out vec.Z);
+ // Attempt to parse each part of the vertex
+ bool success = float.TryParse(vertparts[0], NumberStyles.Any, ci, out vec.X);
+ success |= float.TryParse(vertparts[1], NumberStyles.Any, ci, out vec.Y);
+ success |= float.TryParse(vertparts[2], NumberStyles.Any, ci, out vec.Z);
// If any of the parses failed, report the error
if (!success)
@@ -211,9 +215,9 @@ public static ObjVolume LoadFromString(string obj)
{
String[] texcoordparts = temp.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
- // Attempt to parse each part of the vertice
- bool success = float.TryParse(texcoordparts[0], out vec.X);
- success |= float.TryParse(texcoordparts[1], out vec.Y);
+ // Attempt to parse each part of the vertex
+ bool success = float.TryParse(texcoordparts[0], NumberStyles.Any, ci, out vec.X);
+ success |= float.TryParse(texcoordparts[1], NumberStyles.Any, ci, out vec.Y);
// If any of the parses failed, report the error
if (!success)
@@ -239,10 +243,10 @@ public static ObjVolume LoadFromString(string obj)
{
String[] vertparts = temp.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
- // Attempt to parse each part of the vertice
- bool success = float.TryParse(vertparts[0], out vec.X);
- success |= float.TryParse(vertparts[1], out vec.Y);
- success |= float.TryParse(vertparts[2], out vec.Z);
+ // Attempt to parse each part of the vertex
+ bool success = float.TryParse(vertparts[0], NumberStyles.Any, ci, out vec.X);
+ success |= float.TryParse(vertparts[1], NumberStyles.Any, ci, out vec.Y);
+ success |= float.TryParse(vertparts[2], NumberStyles.Any, ci, out vec.Z);
// If any of the parses failed, report the error
if (!success)
diff --git a/OpenTKTutorial9-1/OpenTKTutorial9-1/OpenTKTutorial9-1.csproj b/OpenTKTutorial9-1/OpenTKTutorial9-1/OpenTKTutorial9-1.csproj
index d6dbaa4..46323de 100644
--- a/OpenTKTutorial9-1/OpenTKTutorial9-1/OpenTKTutorial9-1.csproj
+++ b/OpenTKTutorial9-1/OpenTKTutorial9-1/OpenTKTutorial9-1.csproj
@@ -55,8 +55,9 @@
MinimumRecommendedRules.ruleset
-
- ..\packages\OpenTK.2.0.0\lib\net20\OpenTK.dll
+
+ ..\packages\OpenTK.3.0.1\lib\net20\OpenTK.dll
+ True
diff --git a/OpenTKTutorial9-1/OpenTKTutorial9-1/ShaderProgram.cs b/OpenTKTutorial9-1/OpenTKTutorial9-1/ShaderProgram.cs
index 07c0ad9..b46e571 100644
--- a/OpenTKTutorial9-1/OpenTKTutorial9-1/ShaderProgram.cs
+++ b/OpenTKTutorial9-1/OpenTKTutorial9-1/ShaderProgram.cs
@@ -74,9 +74,9 @@ public void Link()
AttributeInfo info = new AttributeInfo();
int length = 0;
- StringBuilder name = new StringBuilder();
+ String name;
- GL.GetActiveAttrib(ProgramID, i, 256, out length, out info.size, out info.type, name);
+ GL.GetActiveAttrib(ProgramID, i, 256, out length, out info.size, out info.type, out name);
info.name = name.ToString();
info.address = GL.GetAttribLocation(ProgramID, info.name);
@@ -88,9 +88,10 @@ public void Link()
UniformInfo info = new UniformInfo();
int length = 0;
- StringBuilder name = new StringBuilder();
+ String name;
- GL.GetActiveUniform(ProgramID, i, 256, out length, out info.size, out info.type, name);
+
+ GL.GetActiveUniform(ProgramID, i, 256, out length, out info.size, out info.type, out name);
info.name = name.ToString();
Uniforms.Add(name.ToString(), info);
diff --git a/OpenTKTutorial9-1/OpenTKTutorial9-1/packages.config b/OpenTKTutorial9-1/OpenTKTutorial9-1/packages.config
index feefdda..29bb252 100644
--- a/OpenTKTutorial9-1/OpenTKTutorial9-1/packages.config
+++ b/OpenTKTutorial9-1/OpenTKTutorial9-1/packages.config
@@ -1,4 +1,4 @@
-
+
\ No newline at end of file
diff --git a/OpenTKTutorial9-2/OpenTKTutorial9-2/Cube.cs b/OpenTKTutorial9-2/OpenTKTutorial9-2/Cube.cs
index c64b49f..54b92b4 100644
--- a/OpenTKTutorial9-2/OpenTKTutorial9-2/Cube.cs
+++ b/OpenTKTutorial9-2/OpenTKTutorial9-2/Cube.cs
@@ -77,7 +77,7 @@ public override Vector3[] GetColorData()
public override void CalculateModelMatrix()
{
- ModelMatrix = Matrix4.Scale(Scale) * Matrix4.CreateRotationX(Rotation.X) * Matrix4.CreateRotationY(Rotation.Y) * Matrix4.CreateRotationZ(Rotation.Z) * Matrix4.CreateTranslation(Position);
+ ModelMatrix = Matrix4.CreateScale(Scale) * Matrix4.CreateRotationX(Rotation.X) * Matrix4.CreateRotationY(Rotation.Y) * Matrix4.CreateRotationZ(Rotation.Z) * Matrix4.CreateTranslation(Position);
}
public override Vector2[] GetTextureCoords()
diff --git a/OpenTKTutorial9-2/OpenTKTutorial9-2/Game.cs b/OpenTKTutorial9-2/OpenTKTutorial9-2/Game.cs
index 98e9e17..67613d2 100644
--- a/OpenTKTutorial9-2/OpenTKTutorial9-2/Game.cs
+++ b/OpenTKTutorial9-2/OpenTKTutorial9-2/Game.cs
@@ -43,7 +43,7 @@ public Game()
void initProgram()
{
- lastMousePos = new Vector2(Mouse.X, Mouse.Y);
+ lastMousePos = new Vector2(Mouse.GetState().X, Mouse.GetState().Y);
CursorVisible = false;
cam.MouseSensitivity = 0.0025f;
@@ -200,6 +200,12 @@ protected override void OnRenderFrame(FrameEventArgs e)
GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
GL.Enable(EnableCap.DepthTest);
+ // Prevent rendering with no data
+ if (vertdata == null)
+ {
+ return;
+ }
+
GL.UseProgram(shaders[activeShader].ProgramID);
shaders[activeShader].EnableVertexAttribArrays();
@@ -340,12 +346,12 @@ protected override void OnUpdateFrame(FrameEventArgs e)
normals.AddRange(v.GetNormals().ToList());
vertcount += v.VertCount;
}
-
- vertdata = verts.ToArray();
- indicedata = inds.ToArray();
- coldata = colors.ToArray();
- texcoorddata = texcoords.ToArray();
- normdata = normals.ToArray();
+
+ vertdata = (Vector3[])verts.ToArray().Clone();
+ indicedata = (int[])inds.ToArray().Clone();
+ coldata = (Vector3[])colors.ToArray().Clone();
+ texcoorddata = (Vector2[])texcoords.ToArray().Clone();
+ normdata = (Vector3[])normals.ToArray().Clone();
GL.BindBuffer(BufferTarget.ArrayBuffer, shaders[activeShader].GetBuffer("vPosition"));
diff --git a/OpenTKTutorial9-2/OpenTKTutorial9-2/ObjVolume.cs b/OpenTKTutorial9-2/OpenTKTutorial9-2/ObjVolume.cs
index 570bc7b..8eef783 100644
--- a/OpenTKTutorial9-2/OpenTKTutorial9-2/ObjVolume.cs
+++ b/OpenTKTutorial9-2/OpenTKTutorial9-2/ObjVolume.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
+using System.Globalization;
using System.IO;
using System.Linq;
using OpenTK;
@@ -120,7 +121,7 @@ public override Vector2[] GetTextureCoords()
///
public override void CalculateModelMatrix()
{
- ModelMatrix = Matrix4.Scale(Scale) * Matrix4.CreateRotationX(Rotation.X) * Matrix4.CreateRotationY(Rotation.Y) * Matrix4.CreateRotationZ(Rotation.Z) * Matrix4.CreateTranslation(Position);
+ ModelMatrix = Matrix4.CreateScale(Scale) * Matrix4.CreateRotationX(Rotation.X) * Matrix4.CreateRotationY(Rotation.Y) * Matrix4.CreateRotationZ(Rotation.Z) * Matrix4.CreateTranslation(Position);
}
///
@@ -160,6 +161,9 @@ public static ObjVolume LoadFromString(string obj)
List normals = new List();
List texs = new List();
List> faces = new List>();
+
+ CultureInfo ci = (CultureInfo)CultureInfo.CurrentCulture.Clone();
+ ci.NumberFormat.CurrencyDecimalSeparator = ".";
// Base values
verts.Add(new Vector3());
@@ -182,10 +186,10 @@ public static ObjVolume LoadFromString(string obj)
{
String[] vertparts = temp.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
- // Attempt to parse each part of the vertice
- bool success = float.TryParse(vertparts[0], out vec.X);
- success |= float.TryParse(vertparts[1], out vec.Y);
- success |= float.TryParse(vertparts[2], out vec.Z);
+ // Attempt to parse each part of the vertex
+ bool success = float.TryParse(vertparts[0], NumberStyles.Any, ci, out vec.X);
+ success |= float.TryParse(vertparts[1], NumberStyles.Any, ci, out vec.Y);
+ success |= float.TryParse(vertparts[2], NumberStyles.Any, ci, out vec.Z);
// If any of the parses failed, report the error
if (!success)
@@ -211,9 +215,9 @@ public static ObjVolume LoadFromString(string obj)
{
String[] texcoordparts = temp.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
- // Attempt to parse each part of the vertice
- bool success = float.TryParse(texcoordparts[0], out vec.X);
- success |= float.TryParse(texcoordparts[1], out vec.Y);
+ // Attempt to parse each part of the vertex
+ bool success = float.TryParse(texcoordparts[0], NumberStyles.Any, ci, out vec.X);
+ success |= float.TryParse(texcoordparts[1], NumberStyles.Any, ci, out vec.Y);
// If any of the parses failed, report the error
if (!success)
@@ -239,10 +243,10 @@ public static ObjVolume LoadFromString(string obj)
{
String[] vertparts = temp.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
- // Attempt to parse each part of the vertice
- bool success = float.TryParse(vertparts[0], out vec.X);
- success |= float.TryParse(vertparts[1], out vec.Y);
- success |= float.TryParse(vertparts[2], out vec.Z);
+ // Attempt to parse each part of the vertex
+ bool success = float.TryParse(vertparts[0], NumberStyles.Any, ci, out vec.X);
+ success |= float.TryParse(vertparts[1], NumberStyles.Any, ci, out vec.Y);
+ success |= float.TryParse(vertparts[2], NumberStyles.Any, ci, out vec.Z);
// If any of the parses failed, report the error
if (!success)
diff --git a/OpenTKTutorial9-2/OpenTKTutorial9-2/OpenTKTutorial9-2.csproj b/OpenTKTutorial9-2/OpenTKTutorial9-2/OpenTKTutorial9-2.csproj
index 4c3843b..a04a07f 100644
--- a/OpenTKTutorial9-2/OpenTKTutorial9-2/OpenTKTutorial9-2.csproj
+++ b/OpenTKTutorial9-2/OpenTKTutorial9-2/OpenTKTutorial9-2.csproj
@@ -55,8 +55,9 @@
MinimumRecommendedRules.ruleset
-
- ..\packages\OpenTK.2.0.0\lib\net20\OpenTK.dll
+
+ ..\packages\OpenTK.3.0.1\lib\net20\OpenTK.dll
+ True
diff --git a/OpenTKTutorial9-2/OpenTKTutorial9-2/ShaderProgram.cs b/OpenTKTutorial9-2/OpenTKTutorial9-2/ShaderProgram.cs
index 07c0ad9..4039e0e 100644
--- a/OpenTKTutorial9-2/OpenTKTutorial9-2/ShaderProgram.cs
+++ b/OpenTKTutorial9-2/OpenTKTutorial9-2/ShaderProgram.cs
@@ -74,9 +74,9 @@ public void Link()
AttributeInfo info = new AttributeInfo();
int length = 0;
- StringBuilder name = new StringBuilder();
+ String name;
- GL.GetActiveAttrib(ProgramID, i, 256, out length, out info.size, out info.type, name);
+ GL.GetActiveAttrib(ProgramID, i, 256, out length, out info.size, out info.type, out name);
info.name = name.ToString();
info.address = GL.GetAttribLocation(ProgramID, info.name);
@@ -88,9 +88,9 @@ public void Link()
UniformInfo info = new UniformInfo();
int length = 0;
- StringBuilder name = new StringBuilder();
+ String name;
- GL.GetActiveUniform(ProgramID, i, 256, out length, out info.size, out info.type, name);
+ GL.GetActiveUniform(ProgramID, i, 256, out length, out info.size, out info.type, out name);
info.name = name.ToString();
Uniforms.Add(name.ToString(), info);
diff --git a/OpenTKTutorial9-2/OpenTKTutorial9-2/packages.config b/OpenTKTutorial9-2/OpenTKTutorial9-2/packages.config
index feefdda..29bb252 100644
--- a/OpenTKTutorial9-2/OpenTKTutorial9-2/packages.config
+++ b/OpenTKTutorial9-2/OpenTKTutorial9-2/packages.config
@@ -1,4 +1,4 @@
-
+
\ No newline at end of file
diff --git a/OpenTKTutorial9-3/OpenTKTutorial9-3/Cube.cs b/OpenTKTutorial9-3/OpenTKTutorial9-3/Cube.cs
index c64b49f..54b92b4 100644
--- a/OpenTKTutorial9-3/OpenTKTutorial9-3/Cube.cs
+++ b/OpenTKTutorial9-3/OpenTKTutorial9-3/Cube.cs
@@ -77,7 +77,7 @@ public override Vector3[] GetColorData()
public override void CalculateModelMatrix()
{
- ModelMatrix = Matrix4.Scale(Scale) * Matrix4.CreateRotationX(Rotation.X) * Matrix4.CreateRotationY(Rotation.Y) * Matrix4.CreateRotationZ(Rotation.Z) * Matrix4.CreateTranslation(Position);
+ ModelMatrix = Matrix4.CreateScale(Scale) * Matrix4.CreateRotationX(Rotation.X) * Matrix4.CreateRotationY(Rotation.Y) * Matrix4.CreateRotationZ(Rotation.Z) * Matrix4.CreateTranslation(Position);
}
public override Vector2[] GetTextureCoords()
diff --git a/OpenTKTutorial9-3/OpenTKTutorial9-3/Game.cs b/OpenTKTutorial9-3/OpenTKTutorial9-3/Game.cs
index 058c9dc..3d1ddd8 100644
--- a/OpenTKTutorial9-3/OpenTKTutorial9-3/Game.cs
+++ b/OpenTKTutorial9-3/OpenTKTutorial9-3/Game.cs
@@ -43,7 +43,7 @@ public Game()
void initProgram()
{
- lastMousePos = new Vector2(Mouse.X, Mouse.Y);
+ lastMousePos = new Vector2(Mouse.GetState().X, Mouse.GetState().Y);
CursorVisible = false;
cam.MouseSensitivity = 0.0025f;
@@ -194,6 +194,12 @@ protected override void OnRenderFrame(FrameEventArgs e)
GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
GL.Enable(EnableCap.DepthTest);
+ // Prevent rendering with no data
+ if (vertdata == null)
+ {
+ return;
+ }
+
GL.UseProgram(shaders[activeShader].ProgramID);
shaders[activeShader].EnableVertexAttribArrays();
@@ -361,11 +367,11 @@ protected override void OnUpdateFrame(FrameEventArgs e)
vertcount += v.VertCount;
}
- vertdata = verts.ToArray();
- indicedata = inds.ToArray();
- coldata = colors.ToArray();
- texcoorddata = texcoords.ToArray();
- normdata = normals.ToArray();
+ vertdata = (Vector3[])verts.ToArray().Clone();
+ indicedata = (int[])inds.ToArray().Clone();
+ coldata = (Vector3[])colors.ToArray().Clone();
+ texcoorddata = (Vector2[])texcoords.ToArray().Clone();
+ normdata = (Vector3[])normals.ToArray().Clone();
GL.BindBuffer(BufferTarget.ArrayBuffer, shaders[activeShader].GetBuffer("vPosition"));
@@ -513,7 +519,7 @@ int loadImage(string filename)
Bitmap file = new Bitmap(filename);
return loadImage(file);
}
- catch (FileNotFoundException e)
+ catch (FileNotFoundException)
{
return -1;
}
diff --git a/OpenTKTutorial9-3/OpenTKTutorial9-3/ObjVolume.cs b/OpenTKTutorial9-3/OpenTKTutorial9-3/ObjVolume.cs
index 570bc7b..8eef783 100644
--- a/OpenTKTutorial9-3/OpenTKTutorial9-3/ObjVolume.cs
+++ b/OpenTKTutorial9-3/OpenTKTutorial9-3/ObjVolume.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
+using System.Globalization;
using System.IO;
using System.Linq;
using OpenTK;
@@ -120,7 +121,7 @@ public override Vector2[] GetTextureCoords()
///
public override void CalculateModelMatrix()
{
- ModelMatrix = Matrix4.Scale(Scale) * Matrix4.CreateRotationX(Rotation.X) * Matrix4.CreateRotationY(Rotation.Y) * Matrix4.CreateRotationZ(Rotation.Z) * Matrix4.CreateTranslation(Position);
+ ModelMatrix = Matrix4.CreateScale(Scale) * Matrix4.CreateRotationX(Rotation.X) * Matrix4.CreateRotationY(Rotation.Y) * Matrix4.CreateRotationZ(Rotation.Z) * Matrix4.CreateTranslation(Position);
}
///
@@ -160,6 +161,9 @@ public static ObjVolume LoadFromString(string obj)
List normals = new List();
List texs = new List();
List> faces = new List>();
+
+ CultureInfo ci = (CultureInfo)CultureInfo.CurrentCulture.Clone();
+ ci.NumberFormat.CurrencyDecimalSeparator = ".";
// Base values
verts.Add(new Vector3());
@@ -182,10 +186,10 @@ public static ObjVolume LoadFromString(string obj)
{
String[] vertparts = temp.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
- // Attempt to parse each part of the vertice
- bool success = float.TryParse(vertparts[0], out vec.X);
- success |= float.TryParse(vertparts[1], out vec.Y);
- success |= float.TryParse(vertparts[2], out vec.Z);
+ // Attempt to parse each part of the vertex
+ bool success = float.TryParse(vertparts[0], NumberStyles.Any, ci, out vec.X);
+ success |= float.TryParse(vertparts[1], NumberStyles.Any, ci, out vec.Y);
+ success |= float.TryParse(vertparts[2], NumberStyles.Any, ci, out vec.Z);
// If any of the parses failed, report the error
if (!success)
@@ -211,9 +215,9 @@ public static ObjVolume LoadFromString(string obj)
{
String[] texcoordparts = temp.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
- // Attempt to parse each part of the vertice
- bool success = float.TryParse(texcoordparts[0], out vec.X);
- success |= float.TryParse(texcoordparts[1], out vec.Y);
+ // Attempt to parse each part of the vertex
+ bool success = float.TryParse(texcoordparts[0], NumberStyles.Any, ci, out vec.X);
+ success |= float.TryParse(texcoordparts[1], NumberStyles.Any, ci, out vec.Y);
// If any of the parses failed, report the error
if (!success)
@@ -239,10 +243,10 @@ public static ObjVolume LoadFromString(string obj)
{
String[] vertparts = temp.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
- // Attempt to parse each part of the vertice
- bool success = float.TryParse(vertparts[0], out vec.X);
- success |= float.TryParse(vertparts[1], out vec.Y);
- success |= float.TryParse(vertparts[2], out vec.Z);
+ // Attempt to parse each part of the vertex
+ bool success = float.TryParse(vertparts[0], NumberStyles.Any, ci, out vec.X);
+ success |= float.TryParse(vertparts[1], NumberStyles.Any, ci, out vec.Y);
+ success |= float.TryParse(vertparts[2], NumberStyles.Any, ci, out vec.Z);
// If any of the parses failed, report the error
if (!success)
diff --git a/OpenTKTutorial9-3/OpenTKTutorial9-3/OpenTKTutorial9-3.csproj b/OpenTKTutorial9-3/OpenTKTutorial9-3/OpenTKTutorial9-3.csproj
index 1ce5f43..2bb49c7 100644
--- a/OpenTKTutorial9-3/OpenTKTutorial9-3/OpenTKTutorial9-3.csproj
+++ b/OpenTKTutorial9-3/OpenTKTutorial9-3/OpenTKTutorial9-3.csproj
@@ -55,8 +55,9 @@
MinimumRecommendedRules.ruleset
-
- ..\packages\OpenTK.2.0.0\lib\net20\OpenTK.dll
+
+ ..\packages\OpenTK.3.0.1\lib\net20\OpenTK.dll
+ True
diff --git a/OpenTKTutorial9-3/OpenTKTutorial9-3/ShaderProgram.cs b/OpenTKTutorial9-3/OpenTKTutorial9-3/ShaderProgram.cs
index 07c0ad9..b46e571 100644
--- a/OpenTKTutorial9-3/OpenTKTutorial9-3/ShaderProgram.cs
+++ b/OpenTKTutorial9-3/OpenTKTutorial9-3/ShaderProgram.cs
@@ -74,9 +74,9 @@ public void Link()
AttributeInfo info = new AttributeInfo();
int length = 0;
- StringBuilder name = new StringBuilder();
+ String name;
- GL.GetActiveAttrib(ProgramID, i, 256, out length, out info.size, out info.type, name);
+ GL.GetActiveAttrib(ProgramID, i, 256, out length, out info.size, out info.type, out name);
info.name = name.ToString();
info.address = GL.GetAttribLocation(ProgramID, info.name);
@@ -88,9 +88,10 @@ public void Link()
UniformInfo info = new UniformInfo();
int length = 0;
- StringBuilder name = new StringBuilder();
+ String name;
- GL.GetActiveUniform(ProgramID, i, 256, out length, out info.size, out info.type, name);
+
+ GL.GetActiveUniform(ProgramID, i, 256, out length, out info.size, out info.type, out name);
info.name = name.ToString();
Uniforms.Add(name.ToString(), info);
diff --git a/OpenTKTutorial9-3/OpenTKTutorial9-3/packages.config b/OpenTKTutorial9-3/OpenTKTutorial9-3/packages.config
index feefdda..29bb252 100644
--- a/OpenTKTutorial9-3/OpenTKTutorial9-3/packages.config
+++ b/OpenTKTutorial9-3/OpenTKTutorial9-3/packages.config
@@ -1,4 +1,4 @@
-
+
\ No newline at end of file
diff --git a/OpenTK_RTExample/OpenTK_RTExample/Game.cs b/OpenTK_RTExample/OpenTK_RTExample/Game.cs
index 2d11b1f..6da0c2a 100644
--- a/OpenTK_RTExample/OpenTK_RTExample/Game.cs
+++ b/OpenTK_RTExample/OpenTK_RTExample/Game.cs
@@ -82,7 +82,7 @@ void initProgram()
{
GL.Enable(EnableCap.Multisample);
- lastMousePos = new Vector2(Mouse.X, Mouse.Y);
+ lastMousePos = new Vector2(Mouse.GetState().X, Mouse.GetState().Y);
CursorVisible = false;
mainCamera.MouseSensitivity = 0.0025f;
@@ -232,7 +232,7 @@ protected override void OnLoad(EventArgs e)
protected override void OnRenderFrame(FrameEventArgs e)
{
- if (!resourcesLoaded)
+ if (!resourcesLoaded || vertdata == null)
return;
base.OnRenderFrame(e);
diff --git a/OpenTK_RTExample/OpenTK_RTExample/OpenTK_RTExample.csproj b/OpenTK_RTExample/OpenTK_RTExample/OpenTK_RTExample.csproj
index c263bce..e1f4d41 100644
--- a/OpenTK_RTExample/OpenTK_RTExample/OpenTK_RTExample.csproj
+++ b/OpenTK_RTExample/OpenTK_RTExample/OpenTK_RTExample.csproj
@@ -59,8 +59,8 @@
OpenTK_RTExample.Program
-
- ..\packages\OpenTK.2.0.0\lib\net20\OpenTK.dll
+
+ ..\packages\OpenTK.3.0.1\lib\net20\OpenTK.dll
True
diff --git a/OpenTK_RTExample/OpenTK_RTExample/ShaderProgram.cs b/OpenTK_RTExample/OpenTK_RTExample/ShaderProgram.cs
index 24b61f0..402453b 100644
--- a/OpenTK_RTExample/OpenTK_RTExample/ShaderProgram.cs
+++ b/OpenTK_RTExample/OpenTK_RTExample/ShaderProgram.cs
@@ -95,9 +95,9 @@ public void Link()
AttributeInfo info = new AttributeInfo();
int length = 0;
- StringBuilder name = new StringBuilder();
+ String name;
- GL.GetActiveAttrib(ProgramID, i, 256, out length, out info.size, out info.type, name);
+ GL.GetActiveAttrib(ProgramID, i, 256, out length, out info.size, out info.type, out name);
info.name = name.ToString();
info.address = GL.GetAttribLocation(ProgramID, info.name);
@@ -109,9 +109,9 @@ public void Link()
UniformInfo info = new UniformInfo();
int length = 0;
- StringBuilder name = new StringBuilder();
+ String name;
- GL.GetActiveUniform(ProgramID, i, 256, out length, out info.size, out info.type, name);
+ GL.GetActiveUniform(ProgramID, i, 256, out length, out info.size, out info.type, out name);
info.name = name.ToString();
Uniforms.Add(name.ToString(), info);
diff --git a/OpenTK_RTExample/OpenTK_RTExample/packages.config b/OpenTK_RTExample/OpenTK_RTExample/packages.config
index feefdda..29bb252 100644
--- a/OpenTK_RTExample/OpenTK_RTExample/packages.config
+++ b/OpenTK_RTExample/OpenTK_RTExample/packages.config
@@ -1,4 +1,4 @@
-
+
\ No newline at end of file
diff --git a/TKSprites/TKSprites.sln b/TKSprites/TKSprites.sln
index f1c5bcd..7feb7ee 100644
--- a/TKSprites/TKSprites.sln
+++ b/TKSprites/TKSprites.sln
@@ -1,16 +1,24 @@
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual Studio 2010
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.25420.1
+MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TKSprites", "TKSprites\TKSprites.csproj", "{F81E9879-5A55-48EB-9C08-03589BE7DF97}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
+ Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {F81E9879-5A55-48EB-9C08-03589BE7DF97}.Debug|x64.ActiveCfg = Debug|x64
+ {F81E9879-5A55-48EB-9C08-03589BE7DF97}.Debug|x64.Build.0 = Debug|x64
{F81E9879-5A55-48EB-9C08-03589BE7DF97}.Debug|x86.ActiveCfg = Debug|x86
{F81E9879-5A55-48EB-9C08-03589BE7DF97}.Debug|x86.Build.0 = Debug|x86
+ {F81E9879-5A55-48EB-9C08-03589BE7DF97}.Release|x64.ActiveCfg = Release|x64
+ {F81E9879-5A55-48EB-9C08-03589BE7DF97}.Release|x64.Build.0 = Release|x64
{F81E9879-5A55-48EB-9C08-03589BE7DF97}.Release|x86.ActiveCfg = Release|x86
{F81E9879-5A55-48EB-9C08-03589BE7DF97}.Release|x86.Build.0 = Release|x86
EndGlobalSection
diff --git a/TKSprites/TKSprites/ShaderProgram.cs b/TKSprites/TKSprites/ShaderProgram.cs
index 5b175c1..1d07716 100644
--- a/TKSprites/TKSprites/ShaderProgram.cs
+++ b/TKSprites/TKSprites/ShaderProgram.cs
@@ -77,13 +77,13 @@ public void Link()
AttributeInfo info = new AttributeInfo();
int length = 0;
- StringBuilder name = new StringBuilder();
+ String name;
- GL.GetActiveAttrib(ProgramID, i, 256, out length, out info.size, out info.type, name);
+ GL.GetActiveAttrib(ProgramID, i, 256, out length, out info.size, out info.type, out name);
- info.name = name.ToString();
+ info.name = name;
info.address = GL.GetAttribLocation(ProgramID, info.name);
- Attributes.Add(name.ToString(), info);
+ Attributes.Add(name, info);
Console.WriteLine(name + " " + info.address);
}
@@ -92,12 +92,12 @@ public void Link()
UniformInfo info = new UniformInfo();
int length = 0;
- StringBuilder name = new StringBuilder();
+ String name;
- GL.GetActiveUniform(ProgramID, i, 256, out length, out info.size, out info.type, name);
+ GL.GetActiveUniform(ProgramID, i, 256, out length, out info.size, out info.type, out name);
- info.name = name.ToString();
- Uniforms.Add(name.ToString(), info);
+ info.name = name;
+ Uniforms.Add(name, info);
info.address = GL.GetUniformLocation(ProgramID, info.name);
Console.WriteLine(name + " " + info.address);
}
diff --git a/TKSprites/TKSprites/TKSprites.cs b/TKSprites/TKSprites/TKSprites.cs
index e6cf504..440996b 100644
--- a/TKSprites/TKSprites/TKSprites.cs
+++ b/TKSprites/TKSprites/TKSprites.cs
@@ -73,7 +73,7 @@ protected override void OnLoad(EventArgs e)
// Enable blending based on the texture alpha
GL.Enable(EnableCap.Blend);
- GL.BlendFunc(BlendingFactorSrc.SrcAlpha, BlendingFactorDest.OneMinusSrcAlpha);
+ GL.BlendFunc(BlendingFactor.SrcAlpha, BlendingFactor.OneMinusSrcAlpha);
}
///
diff --git a/TKSprites/TKSprites/TKSprites.csproj b/TKSprites/TKSprites/TKSprites.csproj
index 93c7b76..8cc7469 100644
--- a/TKSprites/TKSprites/TKSprites.csproj
+++ b/TKSprites/TKSprites/TKSprites.csproj
@@ -36,14 +36,22 @@
TKSprites.TKSprites
+
+ x64
+ bin\x64\Debug\
+
+
+ x64
+ bin\x64\Release\
+
-
- ..\packages\OpenTK.2.0.0\lib\net20\OpenTK.dll
+
+ ..\packages\OpenTK.3.0.1\lib\net20\OpenTK.dll
True
diff --git a/TKSprites/TKSprites/packages.config b/TKSprites/TKSprites/packages.config
index feefdda..29bb252 100644
--- a/TKSprites/TKSprites/packages.config
+++ b/TKSprites/TKSprites/packages.config
@@ -1,4 +1,4 @@
-
+
\ No newline at end of file