diff --git a/3DGDIRenderer.sln b/3DGDIRenderer.sln
index 3eb3c6d..d69febe 100644
--- a/3DGDIRenderer.sln
+++ b/3DGDIRenderer.sln
@@ -1,8 +1,10 @@
-Microsoft Visual Studio Solution File, Format Version 9.00
-# Visual Studio 2005
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
# SharpDevelop 4.4
-Project("") = "3DGDIRender", "3DGDIRender\3DGDIRender.vbproj", "6F70EF7B-C63A-4338-99CB-027B0C6DE0C1"
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "3DGDIRender", "3DGDIRender\3DGDIRender.vbproj", "6F70EF7B-C63A-4338-99CB-027B0C6DE0C1"
+EndProject
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "3DTest", "3DTest\3DTest.vbproj", "{700D1C95-F579-412C-9FB3-69FDB0B93F83}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -14,5 +16,9 @@ Global
6F70EF7B-C63A-4338-99CB-027B0C6DE0C1.Debug|Any CPU.ActiveCfg = Debug|Any CPU
6F70EF7B-C63A-4338-99CB-027B0C6DE0C1.Release|Any CPU.Build.0 = Release|Any CPU
6F70EF7B-C63A-4338-99CB-027B0C6DE0C1.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {700D1C95-F579-412C-9FB3-69FDB0B93F83}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {700D1C95-F579-412C-9FB3-69FDB0B93F83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {700D1C95-F579-412C-9FB3-69FDB0B93F83}.Release|Any CPU.Build.0 = Release|Any CPU
+ {700D1C95-F579-412C-9FB3-69FDB0B93F83}.Release|Any CPU.ActiveCfg = Release|Any CPU
EndGlobalSection
EndGlobal
diff --git a/3DTest/3DTest.OpenCover.Settings b/3DTest/3DTest.OpenCover.Settings
new file mode 100644
index 0000000..6f1dade
--- /dev/null
+++ b/3DTest/3DTest.OpenCover.Settings
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/3DTest/3DTest.vbproj b/3DTest/3DTest.vbproj
new file mode 100644
index 0000000..279998e
--- /dev/null
+++ b/3DTest/3DTest.vbproj
@@ -0,0 +1,101 @@
+
+
+
+ {700D1C95-F579-412C-9FB3-69FDB0B93F83}
+ Debug
+ AnyCPU
+ WinExe
+ WindowsForms
+ captainalm.test3d
+ 3DTest
+ v4.0
+ Properties
+ On
+ ..\Icon2.ico
+ False
+ False
+ False
+ OnBuildSuccess
+ Off
+ Binary
+ False
+ obj\$(Configuration)\
+ 4
+ False
+ \\ccgsintake14\14ManvilleA$\AppData\ICSharpCode/SharpDevelop4\Settings.SourceAnalysis
+
+
+ x86
+ 4194304
+ False
+ Auto
+ 4096
+
+
+ bin\Debug\
+ True
+ Full
+ False
+ DEBUG=1,TRACE=1
+
+
+ bin\Release\
+ False
+ None
+ True
+ TRACE=1
+ obj\
+ Project
+
+
+
+
+ 3.5
+
+
+
+ 3.5
+
+
+
+
+
+ 3.5
+
+
+
+
+ MainForm.vb
+
+
+
+
+
+
+
+
+ SettingsSingleFileGenerator
+
+
+
+
+ MainForm.vb
+
+
+
+
+ 6F70EF7B-C63A-4338-99CB-027B0C6DE0C1
+ 3DGDIRender
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/3DTest/MainForm.Designer.vb b/3DTest/MainForm.Designer.vb
new file mode 100644
index 0000000..c48f0d1
--- /dev/null
+++ b/3DTest/MainForm.Designer.vb
@@ -0,0 +1,69 @@
+'
+' Created by SharpDevelop.
+' User: 14manvilleA
+' Date: 27/09/2019
+' Time: 10:49
+'
+' To change this template use Tools | Options | Coding | Edit Standard Headers.
+'
+Partial Class MainForm
+ Inherits System.Windows.Forms.Form
+
+ '''
+ ''' Designer variable used to keep track of non-visual components.
+ '''
+ Private components As System.ComponentModel.IContainer
+
+ '''
+ ''' Disposes resources used by the form.
+ '''
+ ''' true if managed resources should be disposed; otherwise, false.
+ Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+ If disposing Then
+ If components IsNot Nothing Then
+ components.Dispose()
+ End If
+ End If
+ MyBase.Dispose(disposing)
+ End Sub
+
+ '''
+ ''' This method is required for Windows Forms designer support.
+ ''' Do not change the method contents inside the source code editor. The Forms designer might
+ ''' not be able to load this method if it was changed manually.
+ '''
+ Private Sub InitializeComponent()
+ Me.components = New System.ComponentModel.Container()
+ Me.pbxv = New System.Windows.Forms.PictureBox()
+ Me.timerRender = New System.Windows.Forms.Timer(Me.components)
+ CType(Me.pbxv,System.ComponentModel.ISupportInitialize).BeginInit
+ Me.SuspendLayout
+ '
+ 'pbxv
+ '
+ Me.pbxv.Dock = System.Windows.Forms.DockStyle.Fill
+ Me.pbxv.Location = New System.Drawing.Point(0, 0)
+ Me.pbxv.Name = "pbxv"
+ Me.pbxv.Size = New System.Drawing.Size(284, 261)
+ Me.pbxv.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Stretch
+ Me.pbxv.TabIndex = 0
+ Me.pbxv.TabStop = false
+ '
+ 'timerRender
+ '
+ Me.timerRender.Interval = 125
+ '
+ 'MainForm
+ '
+ Me.AutoScaleDimensions = New System.Drawing.SizeF(6!, 13!)
+ Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+ Me.ClientSize = New System.Drawing.Size(284, 261)
+ Me.Controls.Add(Me.pbxv)
+ Me.Name = "MainForm"
+ Me.Text = "3DTest"
+ CType(Me.pbxv,System.ComponentModel.ISupportInitialize).EndInit
+ Me.ResumeLayout(false)
+ End Sub
+ Private withevents timerRender As System.Windows.Forms.Timer
+ Private withevents pbxv As System.Windows.Forms.PictureBox
+End Class
diff --git a/3DTest/MainForm.resx b/3DTest/MainForm.resx
new file mode 100644
index 0000000..01cca59
--- /dev/null
+++ b/3DTest/MainForm.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ 17, 17
+
+
\ No newline at end of file
diff --git a/3DTest/MainForm.vb b/3DTest/MainForm.vb
new file mode 100644
index 0000000..32a9928
--- /dev/null
+++ b/3DTest/MainForm.vb
@@ -0,0 +1,52 @@
+'
+' Created by SharpDevelop.
+' User: 14manvilleA
+' Date: 27/09/2019
+' Time: 10:49
+'
+' To change this template use Tools | Options | Coding | Edit Standard Headers.
+'
+Imports System.Drawing
+Imports captainalm.util.Render3D
+Imports System.Runtime.InteropServices
+
+Public Partial Class MainForm
+ Public vp As View3D = Nothing
+
+ Public Sub New()
+ ' The Me.InitializeComponent call is required for Windows Forms designer support.
+ Me.InitializeComponent()
+ End Sub
+
+ Sub MainFormLoad(sender As Object, e As EventArgs) Handles Me.Load
+ ' Enable double-buffering to eliminate flickering.
+ Me.SetStyle(ControlStyles.UserPaint, True)
+ Me.SetStyle(ControlStyles.AllPaintingInWmPaint, True)
+ Me.SetStyle(ControlStyles.OptimizedDoubleBuffer, True)
+ vp = New View3D(Me.pbxv.ClientSize.width, Me.pbxv.ClientSize.height, Color.Black, True)
+ End Sub
+
+ Sub TimerRenderTick(sender As Object, e As EventArgs) Handles timerRender.Tick
+ Me.pbxv.Invalidate()
+
+ If GC.GetTotalMemory(False) > 104857600 Then GC.Collect()
+ End Sub
+
+
+ private class MEMORYSTATUSEX
+ public dwLength As UInt32
+ public dwMemoryLoad As uint32
+ public ullTotalPhys As uint64
+ public ullAvailPhys As uint64
+ public ullTotalPageFile As uint64
+ public ullAvailPageFile As uint64
+ public ullTotalVirtual As uint64
+ public ullAvailVirtual As uint64
+ public ullAvailExtendedVirtual As uint64
+ public sub new()
+ me.dwLength = ctype(Marshal.SizeOf(GetType(MEMORYSTATUSEX)), uint32)
+ end sub
+ end class
+ Private Declare Function GlobalMemoryStatusEx Lib "kernel32" Alias "GlobalMemoryStatusEx" (<[In](), Out()>ByVal lpBuffer As MEMORYSTATUSEX) As Boolean
+ End Class
+
\ No newline at end of file
diff --git a/3DTest/Program.vb b/3DTest/Program.vb
new file mode 100644
index 0000000..6093da8
--- /dev/null
+++ b/3DTest/Program.vb
@@ -0,0 +1,26 @@
+'
+' Created by SharpDevelop.
+' User: 14manvilleA
+' Date: 27/09/2019
+' Time: 10:49
+'
+' To change this template use Tools | Options | Coding | Edit Standard Headers.
+'
+Imports Microsoft.VisualBasic.ApplicationServices
+
+Namespace My
+ ' This file controls the behaviour of the application.
+ Partial Class MyApplication
+ Public Sub New()
+ MyBase.New(AuthenticationMode.Windows)
+ Me.IsSingleInstance = False
+ Me.EnableVisualStyles = True
+ Me.SaveMySettingsOnExit = True
+ Me.ShutDownStyle = ShutdownMode.AfterMainFormCloses
+ End Sub
+
+ Protected Overrides Sub OnCreateMainForm()
+ Me.MainForm = My.Forms.MainForm
+ End Sub
+ End Class
+End Namespace
diff --git a/3DTest/Properties/AssemblyInfo.vb b/3DTest/Properties/AssemblyInfo.vb
new file mode 100644
index 0000000..2f6a789
--- /dev/null
+++ b/3DTest/Properties/AssemblyInfo.vb
@@ -0,0 +1,31 @@
+Imports System.Reflection
+Imports System.Runtime.CompilerServices
+Imports System.Runtime.InteropServices
+
+' Information about this assembly is defined by the following
+' attributes.
+'
+' change them to the information which is associated with the assembly
+' you compile.
+
+
+
+
+
+
+
+
+
+
+' This sets the default COM visibility of types in the assembly to invisible.
+' If you need to expose a type to COM, use on that type.
+
+
+' The assembly version has following format :
+'
+' Major.Minor.Build.Revision
+'
+' You can specify all values by your own or you can build default build and revision
+' numbers with the '*' character (the default):
+
+
diff --git a/3DTest/Properties/Settings.settings b/3DTest/Properties/Settings.settings
new file mode 100644
index 0000000..2088269
--- /dev/null
+++ b/3DTest/Properties/Settings.settings
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/3DTest/app.config b/3DTest/app.config
new file mode 100644
index 0000000..970c80b
--- /dev/null
+++ b/3DTest/app.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Icon2.ico b/Icon2.ico
new file mode 100644
index 0000000..f1eb6b9
Binary files /dev/null and b/Icon2.ico differ