From f7a1a114e396735b468d082787c6a88b8ed613f0 Mon Sep 17 00:00:00 2001
From: burnss9 <burnss9@nku.edu>
Date: Sun, 11 Oct 2020 17:50:13 -0400
Subject: [PATCH 01/52] Initial commit

---
 .gitattributes                                |  63 --
 .gitignore                                    | 837 ------------------
 .../FeedbackGravityExample.cs                 | 158 ----
 Examples/AdvancedExamples/LoaderDDS.cs        | 708 ---------------
 Examples/AdvancedExamples/LoaderStatics.cs    |  48 -
 .../ParallaxMappingExample.cs                 | 248 ------
 .../RenderToTextureExample.cs                 | 124 ---
 .../BufferLayoutTexturingExample.cs           | 142 ---
 Examples/BasicExamples/MinimalExample.cs      |  85 --
 .../RotatingTexturedCubeExample.cs            | 134 ---
 Examples/BasicExamples/SkyboxExample.cs       |  88 --
 Examples/BasicExamples/TextureGridExample.cs  | 104 ---
 Examples/Data/Shaders/ExampleShader.glsl      |  21 -
 Examples/Data/Shaders/Gravity.glsl            |  51 --
 Examples/Data/Shaders/Parallax.glsl           | 107 ---
 Examples/Data/Shaders/SimpleColor.glsl        |  25 -
 Examples/Data/Shaders/SimpleTexture.glsl      |  31 -
 Examples/Data/Shaders/Skybox.glsl             |  34 -
 Examples/Data/Shaders/TextureGrid.glsl        |  63 --
 Examples/Data/Textures/checker.jpg            | Bin 2441 -> 0 bytes
 Examples/Data/Textures/city0.jpg              | Bin 34449 -> 0 bytes
 Examples/Data/Textures/city1.jpg              | Bin 36815 -> 0 bytes
 Examples/Data/Textures/city2.jpg              | Bin 30510 -> 0 bytes
 Examples/Data/Textures/city3.jpg              | Bin 28435 -> 0 bytes
 Examples/Data/Textures/city4.jpg              | Bin 35810 -> 0 bytes
 Examples/Data/Textures/city5.jpg              | Bin 30269 -> 0 bytes
 Examples/Data/Textures/crate.png              | Bin 344272 -> 0 bytes
 Examples/Data/Textures/empty.png              | Bin 9875 -> 0 bytes
 Examples/Data/Textures/flag.png               | Bin 17390 -> 0 bytes
 Examples/Data/Textures/mine.png               | Bin 40830 -> 0 bytes
 .../Textures/swizzled-rock-diffuse-height.dds | Bin 349648 -> 0 bytes
 .../Textures/swizzled-rock-normal-gloss.dds   | Bin 87536 -> 0 bytes
 Examples/ExampleBrowser.Designer.cs           |  78 --
 Examples/ExampleBrowser.cs                    |  76 --
 Examples/ExampleBrowserEntry.cs               |  28 -
 Examples/ExampleProjectAttribute.cs           |  16 -
 Examples/ExampleWindow.cs                     |  95 --
 Examples/Examples.csproj                      | 130 ---
 Examples/Properties/AssemblyInfo.cs           |  31 -
 Examples/Shaders/ExampleProgram.cs            |  19 -
 Examples/Shaders/GravityProgram.cs            |  32 -
 Examples/Shaders/ParallaxProgram.cs           |  38 -
 Examples/Shaders/SimpleColorProgram.cs        |  21 -
 Examples/Shaders/SimpleTextureProgram.cs      |  25 -
 Examples/Shaders/SkyboxProgram.cs             |  21 -
 Examples/Shaders/TextureGridProgram.cs        |  24 -
 Examples/app.config                           |  24 -
 Examples/packages.config                      |   5 -
 LICENSE                                       |  21 -
 ObjectTK.Compiler/ObjectTK.Compiler.csproj    |  64 --
 ObjectTK.Compiler/Properties/AssemblyInfo.cs  |  48 -
 ObjectTK.Compiler/ShaderCompiler.cs           | 102 ---
 ObjectTK.Compiler/app.config                  |   6 -
 ObjectTK.Compiler/packages.config             |   4 -
 ObjectTK.Tools/Cameras/Camera.cs              | 122 ---
 ObjectTK.Tools/Cameras/CameraBehavior.cs      |  37 -
 ObjectTK.Tools/Cameras/CameraState.cs         |  35 -
 .../Cameras/FreeLookAlignedBehavior.cs        |  30 -
 ObjectTK.Tools/Cameras/FreeLookBehavior.cs    |  42 -
 ObjectTK.Tools/Cameras/GimbalBehavior.cs      |  33 -
 ObjectTK.Tools/Cameras/ThirdPersonBehavior.cs |  54 --
 ObjectTK.Tools/DerpWindow.cs                  |  62 --
 ObjectTK.Tools/FrameTimer.cs                  |  99 ---
 ObjectTK.Tools/ObjectTK.Tools.csproj          |  90 --
 ObjectTK.Tools/Properties/AssemblyInfo.cs     |  48 -
 ObjectTK.Tools/Shapes/Circle.cs               |  35 -
 ObjectTK.Tools/Shapes/ColorCube.cs            |  45 -
 ObjectTK.Tools/Shapes/ColoredShape.cs         |  35 -
 ObjectTK.Tools/Shapes/Cube.cs                 |  51 --
 ObjectTK.Tools/Shapes/IndexedShape.cs         |  35 -
 ObjectTK.Tools/Shapes/LayeredQuads.cs         |  38 -
 ObjectTK.Tools/Shapes/Quad.cs                 |  34 -
 ObjectTK.Tools/Shapes/Rect.cs                 |  36 -
 ObjectTK.Tools/Shapes/Shape.cs                |  44 -
 ObjectTK.Tools/Shapes/TexturedCube.cs         |  45 -
 ObjectTK.Tools/Shapes/TexturedQuad.cs         |  42 -
 ObjectTK.Tools/Shapes/TexturedShape.cs        |  35 -
 ObjectTK.Tools/packages.config                |   4 -
 ObjectTK.sln                                  |  45 -
 ObjectTK.sln.DotSettings                      |  19 -
 ObjectTK/Buffers/Buffer.cs                    | 259 ------
 ObjectTK/Buffers/BufferPod.cs                 | 109 ---
 ObjectTK/Buffers/Framebuffer.cs               | 193 ----
 ObjectTK/Buffers/Renderbuffer.cs              |  46 -
 ObjectTK/Buffers/TransformFeedback.cs         | 132 ---
 ObjectTK/Buffers/VertexArray.cs               | 237 -----
 .../Exceptions/ObjectNotBoundException.cs     |  26 -
 ObjectTK/Exceptions/ObjectTKException.cs      |  26 -
 ObjectTK/Exceptions/ProgramException.cs       |  36 -
 ObjectTK/Exceptions/ProgramLinkException.cs   |  26 -
 ObjectTK/Exceptions/QueryException.cs         |  26 -
 ObjectTK/Exceptions/ShaderCompileException.cs |  26 -
 .../UniformTypeNotSupportedException.cs       |  40 -
 ObjectTK/Extensions.cs                        |  69 --
 ObjectTK/GLObject.cs                          |  55 --
 ObjectTK/GLResource.cs                        |  91 --
 ObjectTK/Logging/DefaultLogImpl.cs            | 135 ---
 ObjectTK/Logging/IObjectTKLogger.cs           |  45 -
 ObjectTK/Logging/LogFactory.cs                |  31 -
 ObjectTK/MathF.cs                             |  52 --
 ObjectTK/ObjectTK.csproj                      | 128 ---
 ObjectTK/Properties/AssemblyInfo.cs           |  48 -
 ObjectTK/Queries/QueryIndexer.cs              |  69 --
 ObjectTK/Queries/QueryMapping.cs              | 166 ----
 ObjectTK/Shaders/ComputeProgram.cs            | 125 ---
 ObjectTK/Shaders/Effect.cs                    | 156 ----
 ObjectTK/Shaders/Program.cs                   | 133 ---
 ObjectTK/Shaders/ProgramFactory.cs            | 163 ----
 ObjectTK/Shaders/Shader.cs                    |  92 --
 .../Sources/ComputeShaderSourceAttribute.cs   |  29 -
 .../Sources/FragmentShaderSourceAttribute.cs  |  29 -
 .../Sources/GeometryShaderSourceAttribute.cs  |  29 -
 .../Shaders/Sources/ShaderSourceAttribute.cs  |  56 --
 .../TessControlShaderSourceAttribute.cs       |  29 -
 .../TessEvaluationShaderSourceAttribute.cs    |  29 -
 .../Sources/VertexShaderSourceAttribute.cs    |  29 -
 ObjectTK/Shaders/TransformProgram.cs          |  80 --
 ObjectTK/Shaders/Variables/BufferBinding.cs   |  98 --
 ObjectTK/Shaders/Variables/FragData.cs        |  40 -
 ObjectTK/Shaders/Variables/ImageUniform.cs    | 138 ---
 ObjectTK/Shaders/Variables/ProgramVariable.cs |  59 --
 ObjectTK/Shaders/Variables/ShaderStorage.cs   |  43 -
 ObjectTK/Shaders/Variables/TextureUniform.cs  |  54 --
 ObjectTK/Shaders/Variables/TransformOut.cs    |  37 -
 ObjectTK/Shaders/Variables/Uniform.cs         |  85 --
 ObjectTK/Shaders/Variables/UniformBuffer.cs   |  68 --
 ObjectTK/Shaders/Variables/UniformSetter.cs   |  80 --
 ObjectTK/Shaders/Variables/VertexAttrib.cs    |  71 --
 .../Variables/VertexAttribAttribute.cs        |  93 --
 ObjectTK/Textures/BitmapFormat.cs             |  64 --
 ObjectTK/Textures/BitmapTexture.cs            | 179 ----
 ObjectTK/Textures/LayeredTexture.cs           |  28 -
 ObjectTK/Textures/Sampler.cs                  |  74 --
 ObjectTK/Textures/Texture.cs                  | 218 -----
 ObjectTK/Textures/Texture1D.cs                |  43 -
 ObjectTK/Textures/Texture1DArray.cs           |  54 --
 ObjectTK/Textures/Texture2D.cs                |  61 --
 ObjectTK/Textures/Texture2DArray.cs           |  59 --
 ObjectTK/Textures/Texture2DMultisample.cs     |  65 --
 .../Textures/Texture2DMultisampleArray.cs     |  71 --
 ObjectTK/Textures/Texture3D.cs                |  57 --
 ObjectTK/Textures/TextureBuffer.cs            |  61 --
 ObjectTK/Textures/TextureCubemap.cs           |  44 -
 ObjectTK/Textures/TextureCubemapArray.cs      |  54 --
 ObjectTK/Textures/TextureFactory.cs           |  50 --
 ObjectTK/Textures/TextureRectangle.cs         |  51 --
 ObjectTK/Utility.cs                           |  36 -
 ObjectTK/Vector3i.cs                          | 413 ---------
 ObjectTK/packages.config                      |   5 -
 README.md                                     |  33 -
 packages/repositories.config                  |   7 -
 151 files changed, 10817 deletions(-)
 delete mode 100644 .gitattributes
 delete mode 100644 .gitignore
 delete mode 100644 Examples/AdvancedExamples/FeedbackGravityExample.cs
 delete mode 100644 Examples/AdvancedExamples/LoaderDDS.cs
 delete mode 100644 Examples/AdvancedExamples/LoaderStatics.cs
 delete mode 100644 Examples/AdvancedExamples/ParallaxMappingExample.cs
 delete mode 100644 Examples/AdvancedExamples/RenderToTextureExample.cs
 delete mode 100644 Examples/BasicExamples/BufferLayoutTexturingExample.cs
 delete mode 100644 Examples/BasicExamples/MinimalExample.cs
 delete mode 100644 Examples/BasicExamples/RotatingTexturedCubeExample.cs
 delete mode 100644 Examples/BasicExamples/SkyboxExample.cs
 delete mode 100644 Examples/BasicExamples/TextureGridExample.cs
 delete mode 100644 Examples/Data/Shaders/ExampleShader.glsl
 delete mode 100644 Examples/Data/Shaders/Gravity.glsl
 delete mode 100644 Examples/Data/Shaders/Parallax.glsl
 delete mode 100644 Examples/Data/Shaders/SimpleColor.glsl
 delete mode 100644 Examples/Data/Shaders/SimpleTexture.glsl
 delete mode 100644 Examples/Data/Shaders/Skybox.glsl
 delete mode 100644 Examples/Data/Shaders/TextureGrid.glsl
 delete mode 100644 Examples/Data/Textures/checker.jpg
 delete mode 100644 Examples/Data/Textures/city0.jpg
 delete mode 100644 Examples/Data/Textures/city1.jpg
 delete mode 100644 Examples/Data/Textures/city2.jpg
 delete mode 100644 Examples/Data/Textures/city3.jpg
 delete mode 100644 Examples/Data/Textures/city4.jpg
 delete mode 100644 Examples/Data/Textures/city5.jpg
 delete mode 100644 Examples/Data/Textures/crate.png
 delete mode 100644 Examples/Data/Textures/empty.png
 delete mode 100644 Examples/Data/Textures/flag.png
 delete mode 100644 Examples/Data/Textures/mine.png
 delete mode 100644 Examples/Data/Textures/swizzled-rock-diffuse-height.dds
 delete mode 100644 Examples/Data/Textures/swizzled-rock-normal-gloss.dds
 delete mode 100644 Examples/ExampleBrowser.Designer.cs
 delete mode 100644 Examples/ExampleBrowser.cs
 delete mode 100644 Examples/ExampleBrowserEntry.cs
 delete mode 100644 Examples/ExampleProjectAttribute.cs
 delete mode 100644 Examples/ExampleWindow.cs
 delete mode 100644 Examples/Examples.csproj
 delete mode 100644 Examples/Properties/AssemblyInfo.cs
 delete mode 100644 Examples/Shaders/ExampleProgram.cs
 delete mode 100644 Examples/Shaders/GravityProgram.cs
 delete mode 100644 Examples/Shaders/ParallaxProgram.cs
 delete mode 100644 Examples/Shaders/SimpleColorProgram.cs
 delete mode 100644 Examples/Shaders/SimpleTextureProgram.cs
 delete mode 100644 Examples/Shaders/SkyboxProgram.cs
 delete mode 100644 Examples/Shaders/TextureGridProgram.cs
 delete mode 100644 Examples/app.config
 delete mode 100644 Examples/packages.config
 delete mode 100644 LICENSE
 delete mode 100644 ObjectTK.Compiler/ObjectTK.Compiler.csproj
 delete mode 100644 ObjectTK.Compiler/Properties/AssemblyInfo.cs
 delete mode 100644 ObjectTK.Compiler/ShaderCompiler.cs
 delete mode 100644 ObjectTK.Compiler/app.config
 delete mode 100644 ObjectTK.Compiler/packages.config
 delete mode 100644 ObjectTK.Tools/Cameras/Camera.cs
 delete mode 100644 ObjectTK.Tools/Cameras/CameraBehavior.cs
 delete mode 100644 ObjectTK.Tools/Cameras/CameraState.cs
 delete mode 100644 ObjectTK.Tools/Cameras/FreeLookAlignedBehavior.cs
 delete mode 100644 ObjectTK.Tools/Cameras/FreeLookBehavior.cs
 delete mode 100644 ObjectTK.Tools/Cameras/GimbalBehavior.cs
 delete mode 100644 ObjectTK.Tools/Cameras/ThirdPersonBehavior.cs
 delete mode 100644 ObjectTK.Tools/DerpWindow.cs
 delete mode 100644 ObjectTK.Tools/FrameTimer.cs
 delete mode 100644 ObjectTK.Tools/ObjectTK.Tools.csproj
 delete mode 100644 ObjectTK.Tools/Properties/AssemblyInfo.cs
 delete mode 100644 ObjectTK.Tools/Shapes/Circle.cs
 delete mode 100644 ObjectTK.Tools/Shapes/ColorCube.cs
 delete mode 100644 ObjectTK.Tools/Shapes/ColoredShape.cs
 delete mode 100644 ObjectTK.Tools/Shapes/Cube.cs
 delete mode 100644 ObjectTK.Tools/Shapes/IndexedShape.cs
 delete mode 100644 ObjectTK.Tools/Shapes/LayeredQuads.cs
 delete mode 100644 ObjectTK.Tools/Shapes/Quad.cs
 delete mode 100644 ObjectTK.Tools/Shapes/Rect.cs
 delete mode 100644 ObjectTK.Tools/Shapes/Shape.cs
 delete mode 100644 ObjectTK.Tools/Shapes/TexturedCube.cs
 delete mode 100644 ObjectTK.Tools/Shapes/TexturedQuad.cs
 delete mode 100644 ObjectTK.Tools/Shapes/TexturedShape.cs
 delete mode 100644 ObjectTK.Tools/packages.config
 delete mode 100644 ObjectTK.sln
 delete mode 100644 ObjectTK.sln.DotSettings
 delete mode 100644 ObjectTK/Buffers/Buffer.cs
 delete mode 100644 ObjectTK/Buffers/BufferPod.cs
 delete mode 100644 ObjectTK/Buffers/Framebuffer.cs
 delete mode 100644 ObjectTK/Buffers/Renderbuffer.cs
 delete mode 100644 ObjectTK/Buffers/TransformFeedback.cs
 delete mode 100644 ObjectTK/Buffers/VertexArray.cs
 delete mode 100644 ObjectTK/Exceptions/ObjectNotBoundException.cs
 delete mode 100644 ObjectTK/Exceptions/ObjectTKException.cs
 delete mode 100644 ObjectTK/Exceptions/ProgramException.cs
 delete mode 100644 ObjectTK/Exceptions/ProgramLinkException.cs
 delete mode 100644 ObjectTK/Exceptions/QueryException.cs
 delete mode 100644 ObjectTK/Exceptions/ShaderCompileException.cs
 delete mode 100644 ObjectTK/Exceptions/UniformTypeNotSupportedException.cs
 delete mode 100644 ObjectTK/Extensions.cs
 delete mode 100644 ObjectTK/GLObject.cs
 delete mode 100644 ObjectTK/GLResource.cs
 delete mode 100644 ObjectTK/Logging/DefaultLogImpl.cs
 delete mode 100644 ObjectTK/Logging/IObjectTKLogger.cs
 delete mode 100644 ObjectTK/Logging/LogFactory.cs
 delete mode 100644 ObjectTK/MathF.cs
 delete mode 100644 ObjectTK/ObjectTK.csproj
 delete mode 100644 ObjectTK/Properties/AssemblyInfo.cs
 delete mode 100644 ObjectTK/Queries/QueryIndexer.cs
 delete mode 100644 ObjectTK/Queries/QueryMapping.cs
 delete mode 100644 ObjectTK/Shaders/ComputeProgram.cs
 delete mode 100644 ObjectTK/Shaders/Effect.cs
 delete mode 100644 ObjectTK/Shaders/Program.cs
 delete mode 100644 ObjectTK/Shaders/ProgramFactory.cs
 delete mode 100644 ObjectTK/Shaders/Shader.cs
 delete mode 100644 ObjectTK/Shaders/Sources/ComputeShaderSourceAttribute.cs
 delete mode 100644 ObjectTK/Shaders/Sources/FragmentShaderSourceAttribute.cs
 delete mode 100644 ObjectTK/Shaders/Sources/GeometryShaderSourceAttribute.cs
 delete mode 100644 ObjectTK/Shaders/Sources/ShaderSourceAttribute.cs
 delete mode 100644 ObjectTK/Shaders/Sources/TessControlShaderSourceAttribute.cs
 delete mode 100644 ObjectTK/Shaders/Sources/TessEvaluationShaderSourceAttribute.cs
 delete mode 100644 ObjectTK/Shaders/Sources/VertexShaderSourceAttribute.cs
 delete mode 100644 ObjectTK/Shaders/TransformProgram.cs
 delete mode 100644 ObjectTK/Shaders/Variables/BufferBinding.cs
 delete mode 100644 ObjectTK/Shaders/Variables/FragData.cs
 delete mode 100644 ObjectTK/Shaders/Variables/ImageUniform.cs
 delete mode 100644 ObjectTK/Shaders/Variables/ProgramVariable.cs
 delete mode 100644 ObjectTK/Shaders/Variables/ShaderStorage.cs
 delete mode 100644 ObjectTK/Shaders/Variables/TextureUniform.cs
 delete mode 100644 ObjectTK/Shaders/Variables/TransformOut.cs
 delete mode 100644 ObjectTK/Shaders/Variables/Uniform.cs
 delete mode 100644 ObjectTK/Shaders/Variables/UniformBuffer.cs
 delete mode 100644 ObjectTK/Shaders/Variables/UniformSetter.cs
 delete mode 100644 ObjectTK/Shaders/Variables/VertexAttrib.cs
 delete mode 100644 ObjectTK/Shaders/Variables/VertexAttribAttribute.cs
 delete mode 100644 ObjectTK/Textures/BitmapFormat.cs
 delete mode 100644 ObjectTK/Textures/BitmapTexture.cs
 delete mode 100644 ObjectTK/Textures/LayeredTexture.cs
 delete mode 100644 ObjectTK/Textures/Sampler.cs
 delete mode 100644 ObjectTK/Textures/Texture.cs
 delete mode 100644 ObjectTK/Textures/Texture1D.cs
 delete mode 100644 ObjectTK/Textures/Texture1DArray.cs
 delete mode 100644 ObjectTK/Textures/Texture2D.cs
 delete mode 100644 ObjectTK/Textures/Texture2DArray.cs
 delete mode 100644 ObjectTK/Textures/Texture2DMultisample.cs
 delete mode 100644 ObjectTK/Textures/Texture2DMultisampleArray.cs
 delete mode 100644 ObjectTK/Textures/Texture3D.cs
 delete mode 100644 ObjectTK/Textures/TextureBuffer.cs
 delete mode 100644 ObjectTK/Textures/TextureCubemap.cs
 delete mode 100644 ObjectTK/Textures/TextureCubemapArray.cs
 delete mode 100644 ObjectTK/Textures/TextureFactory.cs
 delete mode 100644 ObjectTK/Textures/TextureRectangle.cs
 delete mode 100644 ObjectTK/Utility.cs
 delete mode 100644 ObjectTK/Vector3i.cs
 delete mode 100644 ObjectTK/packages.config
 delete mode 100644 README.md
 delete mode 100644 packages/repositories.config

diff --git a/.gitattributes b/.gitattributes
deleted file mode 100644
index 1ff0c42..0000000
--- a/.gitattributes
+++ /dev/null
@@ -1,63 +0,0 @@
-###############################################################################
-# Set default behavior to automatically normalize line endings.
-###############################################################################
-* text=auto
-
-###############################################################################
-# Set default behavior for command prompt diff.
-#
-# This is need for earlier builds of msysgit that does not have it on by
-# default for csharp files.
-# Note: This is only used by command line
-###############################################################################
-#*.cs     diff=csharp
-
-###############################################################################
-# Set the merge driver for project and solution files
-#
-# Merging from the command prompt will add diff markers to the files if there
-# are conflicts (Merging from VS is not affected by the settings below, in VS
-# the diff markers are never inserted). Diff markers may cause the following 
-# file extensions to fail to load in VS. An alternative would be to treat
-# these files as binary and thus will always conflict and require user
-# intervention with every merge. To do so, just uncomment the entries below
-###############################################################################
-#*.sln       merge=binary
-#*.csproj    merge=binary
-#*.vbproj    merge=binary
-#*.vcxproj   merge=binary
-#*.vcproj    merge=binary
-#*.dbproj    merge=binary
-#*.fsproj    merge=binary
-#*.lsproj    merge=binary
-#*.wixproj   merge=binary
-#*.modelproj merge=binary
-#*.sqlproj   merge=binary
-#*.wwaproj   merge=binary
-
-###############################################################################
-# behavior for image files
-#
-# image files are treated as binary by default.
-###############################################################################
-#*.jpg   binary
-#*.png   binary
-#*.gif   binary
-
-###############################################################################
-# diff behavior for common document formats
-# 
-# Convert binary document formats to text before diffing them. This feature
-# is only available from the command line. Turn it on by uncommenting the 
-# entries below.
-###############################################################################
-#*.doc   diff=astextplain
-#*.DOC   diff=astextplain
-#*.docx  diff=astextplain
-#*.DOCX  diff=astextplain
-#*.dot   diff=astextplain
-#*.DOT   diff=astextplain
-#*.pdf   diff=astextplain
-#*.PDF   diff=astextplain
-#*.rtf   diff=astextplain
-#*.RTF   diff=astextplain
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 593f090..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,837 +0,0 @@
-
-# Created by https://www.gitignore.io/api/vim,osx,linux,macos,emacs,fsharp,csharp,windows,android,monodevelop,intellij+all,visualstudio,xamarinstudio,visualstudiocode
-
-### Android ###
-# Built application files
-*.apk
-*.ap_
-
-# Files for the ART/Dalvik VM
-*.dex
-
-# Java class files
-*.class
-
-# Generated files
-bin/
-gen/
-out/
-
-# Gradle files
-.gradle/
-
-# Local configuration file (sdk path, etc)
-local.properties
-
-# Proguard folder generated by Eclipse
-proguard/
-
-# Log Files
-*.log
-
-# Android Studio Navigation editor temp files
-.navigation/
-
-# Android Studio captures folder
-captures/
-
-# Intellij
-*.iml
-.idea/workspace.xml
-.idea/tasks.xml
-.idea/gradle.xml
-.idea/dictionaries
-.idea/libraries
-
-# External native build folder generated in Android Studio 2.2 and later
-.externalNativeBuild
-
-# Freeline
-freeline.py
-freeline/
-freeline_project_description.json
-
-### Android Patch ###
-gen-external-apklibs
-
-### Csharp ###
-## Ignore Visual Studio temporary files, build results, and
-## files generated by popular Visual Studio add-ons.
-##
-## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
-
-# User-specific files
-*.suo
-*.user
-*.userosscache
-*.sln.docstates
-
-# User-specific files (MonoDevelop/Xamarin Studio)
-*.userprefs
-
-# Build results
-[Dd]ebug/
-[Dd]ebugPublic/
-[Rr]elease/
-[Rr]eleases/
-x64/
-x86/
-bld/
-[Bb]in/
-[Oo]bj/
-[Ll]og/
-
-# Visual Studio 2015 cache/options directory
-.vs/
-# Uncomment if you have tasks that create the project's static files in wwwroot
-#wwwroot/
-
-# MSTest test Results
-[Tt]est[Rr]esult*/
-[Bb]uild[Ll]og.*
-
-# NUNIT
-*.VisualState.xml
-TestResult.xml
-
-# Build Results of an ATL Project
-[Dd]ebugPS/
-[Rr]eleasePS/
-dlldata.c
-
-# .NET Core
-project.lock.json
-project.fragment.lock.json
-artifacts/
-**/Properties/launchSettings.json
-
-*_i.c
-*_p.c
-*_i.h
-*.ilk
-*.meta
-*.obj
-*.pch
-*.pdb
-*.pgc
-*.pgd
-*.rsp
-*.sbr
-*.tlb
-*.tli
-*.tlh
-*.tmp
-*.tmp_proj
-*.vspscc
-*.vssscc
-.builds
-*.pidb
-*.svclog
-*.scc
-
-# Chutzpah Test files
-_Chutzpah*
-
-# Visual C++ cache files
-ipch/
-*.aps
-*.ncb
-*.opendb
-*.opensdf
-*.sdf
-*.cachefile
-*.VC.db
-*.VC.VC.opendb
-
-# Visual Studio profiler
-*.psess
-*.vsp
-*.vspx
-*.sap
-
-# TFS 2012 Local Workspace
-$tf/
-
-# Guidance Automation Toolkit
-*.gpState
-
-# ReSharper is a .NET coding add-in
-_ReSharper*/
-*.[Rr]e[Ss]harper
-*.DotSettings.user
-
-# JustCode is a .NET coding add-in
-.JustCode
-
-# TeamCity is a build add-in
-_TeamCity*
-
-# DotCover is a Code Coverage Tool
-*.dotCover
-
-# Visual Studio code coverage results
-*.coverage
-*.coveragexml
-
-# NCrunch
-_NCrunch_*
-.*crunch*.local.xml
-nCrunchTemp_*
-
-# MightyMoose
-*.mm.*
-AutoTest.Net/
-
-# Web workbench (sass)
-.sass-cache/
-
-# Installshield output folder
-[Ee]xpress/
-
-# DocProject is a documentation generator add-in
-DocProject/buildhelp/
-DocProject/Help/*.HxT
-DocProject/Help/*.HxC
-DocProject/Help/*.hhc
-DocProject/Help/*.hhk
-DocProject/Help/*.hhp
-DocProject/Help/Html2
-DocProject/Help/html
-
-# Click-Once directory
-publish/
-
-# Publish Web Output
-*.[Pp]ublish.xml
-*.azurePubxml
-# TODO: Uncomment the next line to ignore your web deploy settings.
-# By default, sensitive information, such as encrypted password
-# should be stored in the .pubxml.user file.
-#*.pubxml
-*.pubxml.user
-*.publishproj
-
-# Microsoft Azure Web App publish settings. Comment the next line if you want to
-# checkin your Azure Web App publish settings, but sensitive information contained
-# in these scripts will be unencrypted
-PublishScripts/
-
-# NuGet Packages
-*.nupkg
-# The packages folder can be ignored because of Package Restore
-**/packages/*
-# except build/, which is used as an MSBuild target.
-!**/packages/build/
-# Uncomment if necessary however generally it will be regenerated when needed
-#!**/packages/repositories.config
-# NuGet v3's project.json files produces more ignorable files
-*.nuget.props
-*.nuget.targets
-
-# Microsoft Azure Build Output
-csx/
-*.build.csdef
-
-# Microsoft Azure Emulator
-ecf/
-rcf/
-
-# Windows Store app package directories and files
-AppPackages/
-BundleArtifacts/
-Package.StoreAssociation.xml
-_pkginfo.txt
-
-# Visual Studio cache files
-# files ending in .cache can be ignored
-*.[Cc]ache
-# but keep track of directories ending in .cache
-!*.[Cc]ache/
-
-# Others
-ClientBin/
-~$*
-*~
-*.dbmdl
-*.dbproj.schemaview
-*.jfm
-*.pfx
-*.publishsettings
-orleans.codegen.cs
-
-# Since there are multiple workflows, uncomment next line to ignore bower_components
-# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
-#bower_components/
-
-# RIA/Silverlight projects
-Generated_Code/
-
-# Backup & report files from converting an old project file
-# to a newer Visual Studio version. Backup files are not needed,
-# because we have git ;-)
-_UpgradeReport_Files/
-Backup*/
-UpgradeLog*.XML
-UpgradeLog*.htm
-
-# SQL Server files
-*.mdf
-*.ldf
-*.ndf
-
-# Business Intelligence projects
-*.rdl.data
-*.bim.layout
-*.bim_*.settings
-
-# Microsoft Fakes
-FakesAssemblies/
-
-# GhostDoc plugin setting file
-*.GhostDoc.xml
-
-# Node.js Tools for Visual Studio
-.ntvs_analysis.dat
-node_modules/
-
-# Typescript v1 declaration files
-typings/
-
-# Visual Studio 6 build log
-*.plg
-
-# Visual Studio 6 workspace options file
-*.opt
-
-# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
-*.vbw
-
-# Visual Studio LightSwitch build output
-**/*.HTMLClient/GeneratedArtifacts
-**/*.DesktopClient/GeneratedArtifacts
-**/*.DesktopClient/ModelManifest.xml
-**/*.Server/GeneratedArtifacts
-**/*.Server/ModelManifest.xml
-_Pvt_Extensions
-
-# Paket dependency manager
-.paket/paket.exe
-paket-files/
-*.Restore.targets
-
-# FAKE - F# Make
-.fake/
-
-# JetBrains Rider
-.idea/
-*.sln.iml
-
-# CodeRush
-.cr/
-
-# Python Tools for Visual Studio (PTVS)
-__pycache__/
-*.pyc
-
-# Cake - Uncomment if you are using it
-# tools/**
-# !tools/packages.config
-
-# Telerik's JustMock configuration file
-*.jmconfig
-
-# BizTalk build output
-*.btp.cs
-*.btm.cs
-*.odx.cs
-*.xsd.cs
-
-### Emacs ###
-# -*- mode: gitignore; -*-
-\#*\#
-/.emacs.desktop
-/.emacs.desktop.lock
-*.elc
-auto-save-list
-tramp
-.\#*
-
-# Org-mode
-.org-id-locations
-*_archive
-
-# flymake-mode
-*_flymake.*
-
-# eshell files
-/eshell/history
-/eshell/lastdir
-
-# elpa packages
-/elpa/
-
-# reftex files
-*.rel
-
-# AUCTeX auto folder
-/auto/
-
-# cask packages
-.cask/
-dist/
-
-# Flycheck
-flycheck_*.el
-
-# server auth directory
-/server/
-
-# projectiles files
-.projectile
-projectile-bookmarks.eld
-
-# directory configuration
-.dir-locals.el
-
-# saveplace
-places
-
-# url cache
-url/cache/
-
-# cedet
-ede-projects.el
-
-# smex
-smex-items
-
-# company-statistics
-company-statistics-cache.el
-
-# anaconda-mode
-anaconda-mode/
-
-### fsharp ###
-lib/debug
-lib/release
-*.exe
-!.paket/paket.bootstrapper.exe
-
-### Intellij+all ###
-# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
-# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
-
-# User-specific stuff:
-.idea/**/workspace.xml
-.idea/**/tasks.xml
-
-# Sensitive or high-churn files:
-.idea/**/dataSources/
-.idea/**/dataSources.ids
-.idea/**/dataSources.xml
-.idea/**/dataSources.local.xml
-.idea/**/sqlDataSources.xml
-.idea/**/dynamic.xml
-.idea/**/uiDesigner.xml
-
-# Gradle:
-.idea/**/gradle.xml
-.idea/**/libraries
-
-# CMake
-cmake-build-debug/
-
-# Mongo Explorer plugin:
-.idea/**/mongoSettings.xml
-
-## File-based project format:
-*.iws
-
-## Plugin-specific files:
-
-# IntelliJ
-/out/
-
-# mpeltonen/sbt-idea plugin
-.idea_modules/
-
-# JIRA plugin
-atlassian-ide-plugin.xml
-
-# Cursive Clojure plugin
-.idea/replstate.xml
-
-# Ruby plugin and RubyMine
-/.rakeTasks
-
-# Crashlytics plugin (for Android Studio and IntelliJ)
-com_crashlytics_export_strings.xml
-crashlytics.properties
-crashlytics-build.properties
-fabric.properties
-
-### Linux ###
-
-# temporary files which can be created if a process still has a handle open of a deleted file
-.fuse_hidden*
-
-# KDE directory preferences
-.directory
-
-# Linux trash folder which might appear on any partition or disk
-.Trash-*
-
-# .nfs files are created when an open file is removed but is still being accessed
-.nfs*
-
-### macOS ###
-*.DS_Store
-.AppleDouble
-.LSOverride
-
-# Icon must end with two \r
-Icon
-
-# Thumbnails
-._*
-
-# Files that might appear in the root of a volume
-.DocumentRevisions-V100
-.fseventsd
-.Spotlight-V100
-.TemporaryItems
-.Trashes
-.VolumeIcon.icns
-.com.apple.timemachine.donotpresent
-
-# Directories potentially created on remote AFP share
-.AppleDB
-.AppleDesktop
-Network Trash Folder
-Temporary Items
-.apdisk
-
-### MonoDevelop ###
-#User Specific
-*.usertasks
-
-#Mono Project Files
-*.resources
-test-results/
-
-### OSX ###
-
-# Icon must end with two \r
-
-# Thumbnails
-
-# Files that might appear in the root of a volume
-
-# Directories potentially created on remote AFP share
-
-### Vim ###
-# swap
-[._]*.s[a-v][a-z]
-[._]*.sw[a-p]
-[._]s[a-v][a-z]
-[._]sw[a-p]
-# session
-Session.vim
-# temporary
-.netrwhist
-# auto-generated tag files
-tags
-
-### VisualStudioCode ###
-.vscode/*
-!.vscode/settings.json
-!.vscode/tasks.json
-!.vscode/launch.json
-!.vscode/extensions.json
-.history
-
-### Windows ###
-# Windows thumbnail cache files
-Thumbs.db
-ehthumbs.db
-ehthumbs_vista.db
-
-# Folder config file
-Desktop.ini
-
-# Recycle Bin used on file shares
-$RECYCLE.BIN/
-
-# Windows Installer files
-*.cab
-*.msi
-*.msm
-*.msp
-
-# Windows shortcuts
-*.lnk
-
-### XamarinStudio ###
-.packages
-
-### Mono Code Coverage ###
-TestResults.xml
-
-### OpenTK Binding files ###
-.bindingsGenerated
-src/OpenTK/Graphics/ES10/Enums
-src/OpenTK/Graphics/ES10/Wrappers
-src/OpenTK/Graphics/ES11/Enums
-src/OpenTK/Graphics/ES11/Wrappers
-src/OpenTK/Graphics/ES20/Enums
-src/OpenTK/Graphics/ES20/Wrappers
-src/OpenTK/Graphics/ES30/Enums
-src/OpenTK/Graphics/ES30/Wrappers
-src/OpenTK/Graphics/ES31/Enums
-src/OpenTK/Graphics/ES31/Wrappers
-src/OpenTK/Graphics/OpenGL/Enums
-src/OpenTK/Graphics/OpenGL/Wrappers
-src/OpenTK/Graphics/OpenGL4/Enums
-src/OpenTK/Graphics/OpenGL4/Wrappers
-
-### OpenTK AssemblyInfo files ###
-**/AssemblyInfo.cs
-**/AssemblyInfo.fs
-
-### Tooling files ""
-tools/
-
-### LaTeX ###
-## Core latex/pdflatex auxiliary files:
-*.aux
-*.lof
-*.lot
-*.fls
-*.out
-*.toc
-*.fmt
-*.fot
-*.cb
-*.cb2
-.*.lb
-
-## Intermediate documents:
-*.dvi
-*.xdv
-*-converted-to.*
-# these rules might exclude image files for figures etc.
-# *.ps
-# *.eps
-# *.pdf
-
-## Generated if empty string is given at "Please type another file name for output:"
-.pdf
-
-## Bibliography auxiliary files (bibtex/biblatex/biber):
-*.bbl
-*.bcf
-*.blg
-*-blx.aux
-*-blx.bib
-*.run.xml
-
-## Build tool auxiliary files:
-*.fdb_latexmk
-*.synctex
-*.synctex(busy)
-*.synctex.gz
-*.synctex.gz(busy)
-*.pdfsync
-
-## Build tool directories for auxiliary files
-# latexrun
-latex.out/
-
-## Auxiliary and intermediate files from other packages:
-# algorithms
-*.alg
-*.loa
-
-# achemso
-acs-*.bib
-
-# amsthm
-*.thm
-
-# beamer
-*.nav
-*.pre
-*.snm
-*.vrb
-
-# changes
-*.soc
-
-# cprotect
-*.cpt
-
-# elsarticle (documentclass of Elsevier journals)
-*.spl
-
-# endnotes
-*.ent
-
-# fixme
-*.lox
-
-# feynmf/feynmp
-*.mf
-*.mp
-*.t[1-9]
-*.t[1-9][0-9]
-*.tfm
-
-# glossaries
-*.acn
-*.acr
-*.glg
-*.glo
-*.gls
-*.glsdefs
-
-# gnuplottex
-*-gnuplottex-*
-
-# gregoriotex
-*.gaux
-*.gtex
-
-# htlatex
-*.4ct
-*.4tc
-*.idv
-*.lg
-*.trc
-*.xref
-
-# hyperref
-*.brf
-
-# knitr
-*-concordance.tex
-# TODO Comment the next line if you want to keep your tikz graphics files
-*.tikz
-*-tikzDictionary
-
-# listings
-*.lol
-
-# makeidx
-*.idx
-*.ilg
-*.ind
-*.ist
-
-# minitoc
-*.maf
-*.mlf
-*.mlt
-*.mtc[0-9]*
-*.slf[0-9]*
-*.slt[0-9]*
-*.stc[0-9]*
-
-# minted
-_minted*
-*.pyg
-
-# morewrites
-*.mw
-
-# nomencl
-*.nlg
-*.nlo
-*.nls
-
-# pax
-*.pax
-
-# pdfpcnotes
-*.pdfpc
-
-# sagetex
-*.sagetex.sage
-*.sagetex.py
-*.sagetex.scmd
-
-# scrwfile
-*.wrt
-
-# sympy
-*.sout
-*.sympy
-sympy-plots-for-*.tex/
-
-# pdfcomment
-*.upa
-*.upb
-
-# pythontex
-*.pytxcode
-pythontex-files-*/
-
-# thmtools
-*.loe
-
-# TikZ & PGF
-*.dpth
-*.md5
-*.auxlock
-
-# todonotes
-*.tdo
-
-# easy-todo
-*.lod
-
-# xmpincl
-*.xmpi
-
-# xindy
-*.xdy
-
-# xypic precompiled matrices
-*.xyc
-
-# endfloat
-*.ttt
-*.fff
-
-# Latexian
-TSWLatexianTemp*
-
-## Editors:
-# WinEdt
-*.bak
-*.sav
-
-# Texpad
-.texpadtmp
-
-# LyX
-*.lyx~
-
-# Kile
-*.backup
-
-# KBibTeX
-*~[0-9]*
-
-# auto folder when using emacs and auctex
-auto/*
-*.el
-
-# expex forward references with \gathertags
-*-tags.tex
-
-# standalone packages
-*.sta
-
-### LaTeX Patch ###
-# glossaries
-*.glstex
diff --git a/Examples/AdvancedExamples/FeedbackGravityExample.cs b/Examples/AdvancedExamples/FeedbackGravityExample.cs
deleted file mode 100644
index 4a2c58e..0000000
--- a/Examples/AdvancedExamples/FeedbackGravityExample.cs
+++ /dev/null
@@ -1,158 +0,0 @@
-using System;
-using System.Drawing;
-using System.Runtime.InteropServices;
-using Examples.Shaders;
-using ObjectTK.Buffers;
-using ObjectTK.Shaders;
-using OpenTK;
-using OpenTK.Graphics.OpenGL;
-using OpenTK.Input;
-
-namespace Examples.AdvancedExamples
-{
-    [ExampleProject("Transform feedback with gravity simulation")]
-    public class FeedbackGravityExample
-        : ExampleWindow
-    {
-        [StructLayout(LayoutKind.Sequential)]
-        private struct Particle
-        {
-            public Vector3 Position;
-            private float _padding0;
-            public Vector3 Velocity;
-            private float _padding1;
-        }
-
-        private readonly Random _random;
-        private GravityProgram _program;
-        private VertexArray _vao;
-        private BufferPod<Particle> _buffers;
-        private TransformFeedback _feedback;
-
-        // simulation parameters
-        private float _centerMass = 0.8309f; //0.65f;
-        private int _particleCount = 64000;
-
-        public FeedbackGravityExample()
-        {
-            _random = new Random();
-            Load += OnLoad;
-            RenderFrame += OnRenderFrame;
-            Keyboard.KeyDown += OnKeyDown;
-        }
-
-        private float Rand(float range)
-        {
-            return (float)(_random.NextDouble() * 2 * range - range);
-        }
-
-        private void OnLoad(object sender, EventArgs e)
-        {
-            // initialize shader (load sources, create/compile/link shader program, error checking)
-            // when using the factory method the shader sources are retrieved from the ShaderSourceAttributes
-            _program = ProgramFactory.Create<GravityProgram>();
-            // this program will be used all the time so just activate it once and for all
-            _program.Use();
-
-            // create and bind a vertex array
-            _vao = new VertexArray();
-            _vao.Bind();
-
-            // create and bind transform feedback object
-            _feedback = new TransformFeedback();
-            _feedback.Bind();
-            
-            // Writing to a buffer while reading from it is not allowed
-            // so we need two buffer objects here, which can be achieved by using the BufferPod<T> type.
-            // It contains two buffers, Ping and Pong, to simplify this process.
-            _buffers = new BufferPod<Particle>();
-            InitializeParticles(_particleCount);
-
-            // enable point sprite rendering
-            GL.Enable(EnableCap.PointSprite);
-            // enable modification of the point sprite size from the program (vertex shader in this case)
-            GL.Enable(EnableCap.ProgramPointSize);
-            // enable depth testing
-            GL.Enable(EnableCap.DepthTest);
-            // set a nice clear color
-            GL.ClearColor(Color.Black);
-
-            // set a nice camera angle
-            Camera.DefaultState.Position = new Vector3(0,2,-8);
-            Camera.ResetToDefault();
-        }
-
-        private void InitializeParticles(int n)
-        {
-            var particles = new Particle[n];
-            for (var i = 0; i < particles.Length; i++)
-            {
-                // generate a flat random cube
-                particles[i].Position.X = Rand(0.2f);
-                particles[i].Position.Y = Rand(0.02f);
-                particles[i].Position.Z = Rand(0.2f);
-                // move particles outwards
-                particles[i].Position += particles[i].Position.Normalized()*0.8f;
-                // calculate velocity perpendicular to the direction towards the gravity center and the y-axis
-                particles[i].Velocity = Vector3.Cross(particles[i].Position, -Vector3.UnitY);
-            }
-            // upload data into the Ping buffer and initialize the pong buffer to the same size
-            _buffers.Init(BufferTarget.ArrayBuffer, particles);
-        }
-
-        private void OnRenderFrame(object sender, FrameEventArgs e)
-        {
-            // set up viewport
-            GL.Viewport(0, 0, Width, Height);
-            // clear the back buffer
-            GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
-            // set up modelview and perspective matrix
-            SetupPerspective();
-
-            // set uniforms
-            _program.CenterMass.Set(_centerMass);
-            _program.TimeStep.Set((float)e.Time);
-            _program.ModelViewProjectionMatrix.Set(ModelView * Projection);
-
-            // set up binding of the shader variable to the buffer object
-            _vao.BindAttribute(_program.InPosition, _buffers.Ping);
-            _vao.BindAttribute(_program.InVelocity, _buffers.Ping, 16);
-            
-            // set target buffer for transform feedback
-            // the two outputs are interleaved into the same buffer
-            // so we only have to bind one of them as both binding indices are equal:
-            // _program.OutPosition.Index == _program.OutVelocity.Index
-            // when you choose to write into different buffers you need to bind all of them
-            _feedback.BindOutput(_program.OutPosition, _buffers.Pong);
-            
-            // render the buffer and capture transform feedback outputs
-            _feedback.Begin(TransformFeedbackPrimitiveType.Points);
-            _vao.DrawArrays(PrimitiveType.Points, 0, _buffers.Ping.ElementCount);
-            _feedback.End();
-
-            // swap all the buffers!
-            _buffers.Swap();
-            SwapBuffers();
-        }
-
-        private void OnKeyDown(object sender, KeyboardKeyEventArgs e)
-        {
-            const float up = 1.1f;
-            const float down = 0.9f;
-            var reinitialize = false;
-            switch (e.Key)
-            {
-                case Key.Up: _centerMass *= up; break;
-                case Key.Down: _centerMass *= down; break;
-                case Key.Space:
-                case Key.Right:
-                case Key.Left:
-                    if (e.Key == Key.Right) _particleCount = (int)(_particleCount * up);
-                    if (e.Key == Key.Left) _particleCount = (int)(_particleCount * down);
-                    reinitialize = true;
-                    break;
-            }
-            if (reinitialize) InitializeParticles(_particleCount);
-        }
-    }
-}
\ No newline at end of file
diff --git a/Examples/AdvancedExamples/LoaderDDS.cs b/Examples/AdvancedExamples/LoaderDDS.cs
deleted file mode 100644
index ef64f1d..0000000
--- a/Examples/AdvancedExamples/LoaderDDS.cs
+++ /dev/null
@@ -1,708 +0,0 @@
-#region --- License ---
-/* Licensed under the MIT/X11 license.
- * Copyright (c) 2006-2008 the OpenTK Team.
- * This notice may not be removed from any source distribution.
- * See license.txt for licensing details.
- */
-#endregion
-
-// #define READALL
-// uncomment so ALL fields read from file are interpreted and filled. Necessary to implement uncompressed DDS
-
-// TODO: Find app that can build compressed dds cubemaps and verify that the import code works.
-
-using System;
-using System.Diagnostics;
-using System.IO;
-using OpenTK.Graphics.OpenGL;
-
-namespace Examples.AdvancedExamples
-{
-    /// <summary> 
-    /// Expects the presence of a valid OpenGL Context and Texture Compression Extensions (GL 1.5) and Cube Maps (GL 1.3).
-    /// You will get what you give. No automatic Mipmap generation or automatic compression is done. (both bad quality)
-    /// Textures are never rescaled or checked if Power of 2, but you should make the Width and Height a multiple of 4 because DXTn uses 4x4 blocks.
-    /// (Image displays correctly but runs extremely slow with non-power-of-two Textures on FX5600, Cache misses?)
-    /// CubeMap support is experimental and the file must specify all 6 faces to work at all.
-    /// </summary>
-    public static class ImageDDS
-    {
-        #region Constants
-        private const byte HeaderSizeInBytes = 128; // all non-image data together is 128 Bytes
-        private const uint BitMask = 0x00000007; // bits = 00 00 01 11
-       
-
-        private static NotImplementedException Unfinished = new NotImplementedException( "ERROR: Only 2 Dimensional DXT1/3/5 compressed images for now. 1D/3D Textures may not be compressed according to spec." );
-        #endregion Constants
-
-        #region Simplified In-Memory representation of the Image
-        private static bool _IsCompressed;
-        private static int _Width, _Height, _Depth, _MipMapCount;
-        private static int _BytesForMainSurface; // must be handled with care when implementing uncompressed formats!
-        private static byte _BytesPerBlock;
-        private static PixelInternalFormat _PixelInternalFormat;
-        #endregion Simplified In-Memory representation of the Image
-
-        #region Flag Enums
-        [Flags] // Surface Description
-        private enum eDDSD: uint
-        {
-            CAPS = 0x00000001, // is always present
-            HEIGHT = 0x00000002, // is always present
-            WIDTH = 0x00000004, // is always present
-            PITCH = 0x00000008, // is set if the image is uncompressed
-            PIXELFORMAT = 0x00001000, // is always present
-            MIPMAPCOUNT = 0x00020000, // is set if the image contains MipMaps
-            LINEARSIZE = 0x00080000, // is set if the image is compressed
-            DEPTH = 0x00800000 // is set for 3D Volume Textures
-        }
-
-        [Flags] // Pixelformat 
-        private enum eDDPF: uint
-        {
-            NONE = 0x00000000, // not part of DX, added for convenience
-            ALPHAPIXELS = 0x00000001,
-            FOURCC = 0x00000004,
-            RGB = 0x00000040,
-            RGBA = 0x00000041
-        }
-
-        /// <summary>This list was derived from nVidia OpenGL SDK</summary>
-        [Flags] // Texture types
-        private enum eFOURCC: uint
-        {
-            UNKNOWN = 0,
-#if READALL
-            R8G8B8 = 20,
-            A8R8G8B8 = 21,
-            X8R8G8B8 = 22,
-            R5G6B5 = 23,
-            X1R5G5B5 = 24,
-            A1R5G5B5 = 25,
-            A4R4G4B4 = 26,
-            R3G3B2 = 27,
-            A8 = 28,
-            A8R3G3B2 = 29,
-            X4R4G4B4 = 30,
-            A2B10G10R10 = 31,
-            A8B8G8R8 = 32,
-            X8B8G8R8 = 33,
-            G16R16 = 34,
-            A2R10G10B10 = 35,
-            A16B16G16R16 = 36,
-
-            L8 = 50,
-            A8L8 = 51,
-            A4L4 = 52,
-
-            D16_LOCKABLE = 70,
-            D32 = 71,
-            D24X8 = 77,
-            D16 = 80,
-
-            D32F_LOCKABLE = 82,
-            L16 = 81,
-
-            // s10e5 formats (16-bits per channel)
-            R16F = 111,
-            G16R16F = 112,
-            A16B16G16R16F = 113,
-
-            // IEEE s23e8 formats (32-bits per channel)
-            R32F = 114,
-            G32R32F = 115,
-            A32B32G32R32F = 116
-#endif
-            DXT1 = 0x31545844,
-            DXT2 = 0x32545844,
-            DXT3 = 0x33545844,
-            DXT4 = 0x34545844,
-            DXT5 = 0x35545844,
-        }
-
-        [Flags] // dwCaps1
-        private enum eDDSCAPS: uint
-        {
-            NONE = 0x00000000, // not part of DX, added for convenience
-            COMPLEX = 0x00000008, // should be set for any DDS file with more than one main surface
-            TEXTURE = 0x00001000, // should always be set
-            MIPMAP = 0x00400000 // only for files with MipMaps
-        }
-
-        [Flags]  // dwCaps2
-        private enum eDDSCAPS2: uint
-        {
-            NONE = 0x00000000, // not part of DX, added for convenience
-            CUBEMAP = 0x00000200,
-            CUBEMAP_POSITIVEX = 0x00000400,
-            CUBEMAP_NEGATIVEX = 0x00000800,
-            CUBEMAP_POSITIVEY = 0x00001000,
-            CUBEMAP_NEGATIVEY = 0x00002000,
-            CUBEMAP_POSITIVEZ = 0x00004000,
-            CUBEMAP_NEGATIVEZ = 0x00008000,
-            CUBEMAP_ALL_FACES = 0x0000FC00,
-            VOLUME = 0x00200000 // for 3D Textures
-        }
-        #endregion Flag Enums
-
-        #region Private Members
-        private static string idString; // 4 bytes, must be "DDS "
-        private static UInt32 dwSize; // Size of structure is 124 bytes, 128 including all sub-structs and the header
-        private static UInt32 dwFlags; // Flags to indicate valid fields.
-        private static UInt32 dwHeight; // Height of the main image in pixels
-        private static UInt32 dwWidth; // Width of the main image in pixels
-        private static UInt32 dwPitchOrLinearSize; // For compressed formats, this is the total number of bytes for the main image.
-        private static UInt32 dwDepth; // For volume textures, this is the depth of the volume.
-        private static UInt32 dwMipMapCount; // total number of levels in the mipmap chain of the main image.
-#if READALL
-        private static UInt32[] dwReserved1; // 11 UInt32s
-#endif
-        // Pixelformat sub-struct, 32 bytes
-        private static UInt32 pfSize; // Size of Pixelformat structure. This member must be set to 32.
-        private static UInt32 pfFlags; // Flags to indicate valid fields.
-        private static UInt32 pfFourCC; // This is the four-character code for compressed formats.
-#if READALL
-        private static UInt32 pfRGBBitCount; // For RGB formats, this is the total number of bits in the format. dwFlags should include DDpf_RGB in this case. This value is usually 16, 24, or 32. For A8R8G8B8, this value would be 32.
-        private static UInt32 pfRBitMask; // For RGB formats, these three fields contain the masks for the red, green, and blue channels. For A8R8G8B8, these values would be 0x00ff0000, 0x0000ff00, and 0x000000ff respectively.
-        private static UInt32 pfGBitMask; // ..
-        private static UInt32 pfBBitMask; // ..
-        private static UInt32 pfABitMask; // For RGB formats, this contains the mask for the alpha channel, if any. dwFlags should include DDpf_ALPHAPIXELS in this case. For A8R8G8B8, this value would be 0xff000000.
-#endif
-        // Capabilities sub-struct, 16 bytes
-        private static UInt32 dwCaps1; // always includes DDSCAPS_TEXTURE. with more than one main surface DDSCAPS_COMPLEX should also be set.
-        private static UInt32 dwCaps2; // For cubic environment maps, DDSCAPS2_CUBEMAP should be included as well as one or more faces of the map (DDSCAPS2_CUBEMAP_POSITIVEX, DDSCAPS2_CUBEMAP_NEGATIVEX, DDSCAPS2_CUBEMAP_POSITIVEY, DDSCAPS2_CUBEMAP_NEGATIVEY, DDSCAPS2_CUBEMAP_POSITIVEZ, DDSCAPS2_CUBEMAP_NEGATIVEZ). For volume textures, DDSCAPS2_VOLUME should be included.
-#if READALL
-        private static UInt32[] dwReserved2; // 3 = 2 + 1 UInt32
-#endif
-        #endregion Private Members
-
-        /// <summary>
-        /// This function will generate, bind and fill a Texture Object with a DXT1/3/5 compressed Texture in .dds Format.
-        /// MipMaps below 4x4 Pixel Size are discarded, because DXTn's smallest unit is a 4x4 block of Pixel data.
-        /// It will set correct MipMap parameters, Filtering, Wrapping and EnvMode for the Texture. 
-        /// The only call inside this function affecting OpenGL State is GL.BindTexture();
-        /// </summary>
-        /// <param name="filename">The name of the file you wish to load, including path and file extension.</param>
-        /// <param name="texturehandle">0 if invalid, otherwise a Texture Object usable with GL.BindTexture().</param>
-        /// <param name="dimension">0 if invalid, will output what was loaded (typically Texture1D/2D/3D or Cubemap)</param>
-        public static void LoadFromDisk( string filename, out uint texturehandle, out TextureTarget dimension )
-        {
-            #region Prep data
-            // invalidate whatever it was before
-            dimension = (TextureTarget) 0;
-            texturehandle = TextureLoaderParameters.OpenGLDefaultTexture;
-            ErrorCode GLError = ErrorCode.NoError;
-
-            _IsCompressed = false;
-            _Width = 0;
-            _Height = 0;
-            _Depth = 0;
-            _MipMapCount = 0;
-            _BytesForMainSurface = 0;
-            _BytesPerBlock = 0;
-            _PixelInternalFormat = PixelInternalFormat.Rgba8;
-            byte[] _RawDataFromFile;
-            #endregion
-
-            #region Try
-            try // Exceptions will be thrown if any Problem occurs while working on the file. 
-            {
-                _RawDataFromFile = File.ReadAllBytes( @filename );
-
-                #region Translate Header to less cryptic representation
-                ConvertDX9Header( ref _RawDataFromFile ); // The first 128 Bytes of the file is non-image data
-
-                // start by checking if all forced flags are present. Flags indicate valid fields, but aren't written by every tool .....
-                if ( idString != "DDS " || // magic key
-                     dwSize != 124 || // constant size of struct, never reused
-                     pfSize != 32 || // constant size of struct, never reused
-                     !CheckFlag( dwFlags, (uint) eDDSD.CAPS ) ||        // must know it's caps
-                     !CheckFlag( dwFlags, (uint) eDDSD.PIXELFORMAT ) || // must know it's format
-                     !CheckFlag( dwCaps1, (uint) eDDSCAPS.TEXTURE )     // must be a Texture
-                    )
-                    throw new ArgumentException( "ERROR: File has invalid signature or missing Flags." );
-
-                #region Examine Flags
-                if ( CheckFlag( dwFlags, (uint) eDDSD.WIDTH ) )
-                    _Width = (int) dwWidth;
-                else
-                    throw new ArgumentException( "ERROR: Flag for Width not set." );
-
-                if ( CheckFlag( dwFlags, (uint) eDDSD.HEIGHT ) )
-                    _Height = (int) dwHeight;
-                else
-                    throw new ArgumentException( "ERROR: Flag for Height not set." );
-
-                if ( CheckFlag( dwFlags, (uint) eDDSD.DEPTH ) && CheckFlag( dwCaps2, (uint) eDDSCAPS2.VOLUME ) )
-                {
-                    dimension = TextureTarget.Texture3D; // image is 3D Volume
-                    _Depth = (int) dwDepth;
-                    throw Unfinished;
-                } else
-                {// image is 2D or Cube
-                    if ( CheckFlag( dwCaps2, (uint) eDDSCAPS2.CUBEMAP ) )
-                    {
-                        dimension = TextureTarget.TextureCubeMap;
-                        _Depth = 6;
-                    } else
-                    {
-                        dimension = TextureTarget.Texture2D;
-                        _Depth = 1;
-                    }
-                }
-
-                // these flags must be set for mipmaps to be included
-                if ( CheckFlag( dwCaps1, (uint) eDDSCAPS.MIPMAP ) && CheckFlag( dwFlags, (uint) eDDSD.MIPMAPCOUNT ) )
-                    _MipMapCount = (int) dwMipMapCount; // image contains MipMaps
-                else
-                    _MipMapCount = 1; // only 1 main image
-
-                // Should never happen
-                if ( CheckFlag( dwFlags, (uint) eDDSD.PITCH ) && CheckFlag( dwFlags, (uint) eDDSD.LINEARSIZE ) )
-                    throw new ArgumentException( "INVALID: Pitch AND Linear Flags both set. Image cannot be uncompressed and DTXn compressed at the same time." );
-
-                // This flag is set if format is uncompressed RGB RGBA etc.
-                if ( CheckFlag( dwFlags, (uint) eDDSD.PITCH ) )
-                {
-                    // _BytesForMainSurface = (int) dwPitchOrLinearSize; // holds bytes-per-scanline for uncompressed
-                    _IsCompressed = false;
-                    throw Unfinished;
-                }
-
-                // This flag is set if format is compressed DXTn.
-                if ( CheckFlag( dwFlags, (uint) eDDSD.LINEARSIZE ) )
-                {
-                    _BytesForMainSurface = (int) dwPitchOrLinearSize;
-                    _IsCompressed = true;
-                }
-                #endregion Examine Flags
-
-                #region Examine Pixel Format, anything but DXTn will fail atm.
-                if ( CheckFlag( pfFlags, (uint) eDDPF.FOURCC ) )
-                    switch ( (eFOURCC) pfFourCC )
-                    {
-                    case eFOURCC.DXT1:
-                        _PixelInternalFormat = (PixelInternalFormat) ExtTextureCompressionS3tc.CompressedRgbS3tcDxt1Ext;
-                        _BytesPerBlock = 8;
-                        _IsCompressed = true;
-                        break;
-                    //case eFOURCC.DXT2:
-                    case eFOURCC.DXT3:
-                        _PixelInternalFormat = (PixelInternalFormat) ExtTextureCompressionS3tc.CompressedRgbaS3tcDxt3Ext;
-                        _BytesPerBlock = 16;
-                        _IsCompressed = true;
-                        break;
-                    //case eFOURCC.DXT4:
-                    case eFOURCC.DXT5:
-                        _PixelInternalFormat = (PixelInternalFormat) ExtTextureCompressionS3tc.CompressedRgbaS3tcDxt5Ext;
-                        _BytesPerBlock = 16;
-                        _IsCompressed = true;
-                        break;
-                    default:
-                        throw Unfinished; // handle uncompressed formats 
-                    } else
-                    throw Unfinished;
-                // pf*Bitmasks should be examined here
-                #endregion
-
-                // Works, but commented out because some texture authoring tools don't set this flag.
-                /* Safety Check, if file is only 1x 2D surface without mipmaps, eDDSCAPS.COMPLEX should not be set
-                if ( CheckFlag( dwCaps1, (uint) eDDSCAPS.COMPLEX ) )
-                {
-                    if ( result == eTextureDimension.Texture2D && _MipMapCount == 1 ) // catch potential problem
-                        Trace.WriteLine( "Warning: Image is declared complex, but contains only 1 surface." );
-                }*/
-
-                if ( TextureLoaderParameters.Verbose )
-                    Trace.WriteLine( "\n" + GetDescriptionFromMemory( filename, dimension ) );
-                #endregion Translate Header to less cryptic representation
-
-                #region send the Texture to GL
-                #region Generate and Bind Handle
-                GL.GenTextures( 1, out texturehandle );
-                GL.BindTexture( dimension, texturehandle );
-                #endregion Generate and Bind Handle
-
-                int Cursor = HeaderSizeInBytes;
-                // foreach face in the cubemap, get all it's mipmaps levels. Only one iteration for Texture2D
-                for ( int Slices = 0 ; Slices < _Depth ; Slices++ )
-                {
-                    int trueMipMapCount = _MipMapCount - 1; // TODO: triplecheck correctness
-                    int Width = _Width;
-                    int Height = _Height;
-                    for ( int Level = 0 ; Level < _MipMapCount ; Level++ ) // start at base image
-                    {
-                        #region determine Dimensions
-                        int BlocksPerRow = ( Width + 3 ) >> 2;
-                        int BlocksPerColumn = ( Height + 3 ) >> 2;
-                        int SurfaceBlockCount = BlocksPerRow * BlocksPerColumn; //   // DXTn stores Texels in 4x4 blocks, a Color block is 8 Bytes, an Alpha block is 8 Bytes for DXT3/5
-                        int SurfaceSizeInBytes = SurfaceBlockCount * _BytesPerBlock;
-
-                        // this check must evaluate to false for 2D and Cube maps, or it's impossible to determine MipMap sizes.
-                        if ( TextureLoaderParameters.Verbose && Level == 0 && _IsCompressed && _BytesForMainSurface != SurfaceSizeInBytes )
-                            Trace.WriteLine( "Warning: Calculated byte-count of main image differs from what was read from file." );
-                        #endregion determine Dimensions
-
-                        // skip mipmaps smaller than a 4x4 Pixels block, which is the smallest DXTn unit.
-                        if ( Width > 2 && Height > 2 )
-                        { // Note: there could be a potential problem with non-power-of-two cube maps
-                            #region Prepare Array for TexImage
-                            byte[] RawDataOfSurface = new byte[SurfaceSizeInBytes];
-                            if ( !TextureLoaderParameters.FlipImages )
-                            { // no changes to the image, copy as is
-                                Array.Copy( _RawDataFromFile, Cursor, RawDataOfSurface, 0, SurfaceSizeInBytes );
-                            } else
-                            {  // Turn the blocks upside down and the rows aswell, done in a single pass through all blocks
-                                for ( int sourceColumn = 0 ; sourceColumn < BlocksPerColumn ; sourceColumn++ )
-                                {
-                                    int targetColumn = BlocksPerColumn - sourceColumn - 1;
-                                    for ( int row = 0 ; row < BlocksPerRow ; row++ )
-                                    {
-                                        int target = ( targetColumn * BlocksPerRow + row ) * _BytesPerBlock;
-                                        int source = ( sourceColumn * BlocksPerRow + row ) * _BytesPerBlock + Cursor;
-                                        #region Swap Bytes
-                                        switch ( _PixelInternalFormat )
-                                        {
-                                        case (PixelInternalFormat) ExtTextureCompressionS3tc.CompressedRgbS3tcDxt1Ext:
-                                            // Color only
-                                            RawDataOfSurface[target + 0] = _RawDataFromFile[source + 0];
-                                            RawDataOfSurface[target + 1] = _RawDataFromFile[source + 1];
-                                            RawDataOfSurface[target + 2] = _RawDataFromFile[source + 2];
-                                            RawDataOfSurface[target + 3] = _RawDataFromFile[source + 3];
-                                            RawDataOfSurface[target + 4] = _RawDataFromFile[source + 7];
-                                            RawDataOfSurface[target + 5] = _RawDataFromFile[source + 6];
-                                            RawDataOfSurface[target + 6] = _RawDataFromFile[source + 5];
-                                            RawDataOfSurface[target + 7] = _RawDataFromFile[source + 4];
-                                            break;
-                                        case (PixelInternalFormat) ExtTextureCompressionS3tc.CompressedRgbaS3tcDxt3Ext:
-                                            // Alpha
-                                            RawDataOfSurface[target + 0] = _RawDataFromFile[source + 6];
-                                            RawDataOfSurface[target + 1] = _RawDataFromFile[source + 7];
-                                            RawDataOfSurface[target + 2] = _RawDataFromFile[source + 4];
-                                            RawDataOfSurface[target + 3] = _RawDataFromFile[source + 5];
-                                            RawDataOfSurface[target + 4] = _RawDataFromFile[source + 2];
-                                            RawDataOfSurface[target + 5] = _RawDataFromFile[source + 3];
-                                            RawDataOfSurface[target + 6] = _RawDataFromFile[source + 0];
-                                            RawDataOfSurface[target + 7] = _RawDataFromFile[source + 1];
-
-                                            // Color
-                                            RawDataOfSurface[target + 8] = _RawDataFromFile[source + 8];
-                                            RawDataOfSurface[target + 9] = _RawDataFromFile[source + 9];
-                                            RawDataOfSurface[target + 10] = _RawDataFromFile[source + 10];
-                                            RawDataOfSurface[target + 11] = _RawDataFromFile[source + 11];
-                                            RawDataOfSurface[target + 12] = _RawDataFromFile[source + 15];
-                                            RawDataOfSurface[target + 13] = _RawDataFromFile[source + 14];
-                                            RawDataOfSurface[target + 14] = _RawDataFromFile[source + 13];
-                                            RawDataOfSurface[target + 15] = _RawDataFromFile[source + 12];
-                                            break;
-                                        case (PixelInternalFormat) ExtTextureCompressionS3tc.CompressedRgbaS3tcDxt5Ext:
-                                            // Alpha, the first 2 bytes remain 
-                                            RawDataOfSurface[target + 0] = _RawDataFromFile[source + 0];
-                                            RawDataOfSurface[target + 1] = _RawDataFromFile[source + 1];
-
-                                            // extract 3 bits each and flip them
-                                            GetBytesFromUInt24( ref RawDataOfSurface, (uint) target + 5, FlipUInt24( GetUInt24( ref _RawDataFromFile, (uint) source + 2 ) ) );
-                                            GetBytesFromUInt24( ref RawDataOfSurface, (uint) target + 2, FlipUInt24( GetUInt24( ref _RawDataFromFile, (uint) source + 5 ) ) );
-
-                                            // Color
-                                            RawDataOfSurface[target + 8] = _RawDataFromFile[source + 8];
-                                            RawDataOfSurface[target + 9] = _RawDataFromFile[source + 9];
-                                            RawDataOfSurface[target + 10] = _RawDataFromFile[source + 10];
-                                            RawDataOfSurface[target + 11] = _RawDataFromFile[source + 11];
-                                            RawDataOfSurface[target + 12] = _RawDataFromFile[source + 15];
-                                            RawDataOfSurface[target + 13] = _RawDataFromFile[source + 14];
-                                            RawDataOfSurface[target + 14] = _RawDataFromFile[source + 13];
-                                            RawDataOfSurface[target + 15] = _RawDataFromFile[source + 12];
-                                            break;
-                                        default:
-                                            throw new ArgumentException( "ERROR: Should have never arrived here! Bad _PixelInternalFormat! Should have been dealt with much earlier." );
-                                        }
-                                        #endregion Swap Bytes
-                                    }
-                                }
-                            }
-                            #endregion Prepare Array for TexImage
-
-                            #region Create TexImage
-                            switch ( dimension )
-                            {
-                            case TextureTarget.Texture2D:
-                                GL.CompressedTexImage2D( TextureTarget.Texture2D,
-                                                         Level,
-                                                         _PixelInternalFormat,
-                                                         Width,
-                                                         Height,
-                                                        TextureLoaderParameters.Border,
-                                                         SurfaceSizeInBytes,
-                                                         RawDataOfSurface );
-                                break;
-                            case TextureTarget.TextureCubeMap:
-                                GL.CompressedTexImage2D( TextureTarget.TextureCubeMapPositiveX + Slices,
-                                                         Level,
-                                                         _PixelInternalFormat,
-                                                         Width,
-                                                         Height,
-                                                         TextureLoaderParameters.Border,
-                                                         SurfaceSizeInBytes,
-                                                         RawDataOfSurface );
-                                break;
-                            case TextureTarget.Texture1D: // Untested
-                            case TextureTarget.Texture3D: // Untested
-                            default:
-                                throw new ArgumentException( "ERROR: Use DXT for 2D Images only. Cannot evaluate " + dimension );
-                            }
-                            GL.Finish( );
-                            #endregion Create TexImage
-
-                            #region Query Success
-                            int width, height, internalformat, compressed;
-                            switch ( dimension )
-                            {
-                            case TextureTarget.Texture1D:
-                            case TextureTarget.Texture2D:
-                            case TextureTarget.Texture3D:
-                                GL.GetTexLevelParameter( dimension, Level, GetTextureParameter.TextureWidth, out width );
-                                GL.GetTexLevelParameter( dimension, Level, GetTextureParameter.TextureHeight, out height );
-                                GL.GetTexLevelParameter( dimension, Level, GetTextureParameter.TextureInternalFormat, out internalformat );
-                                GL.GetTexLevelParameter( dimension, Level, GetTextureParameter.TextureCompressed, out compressed );
-                                break;
-                            case TextureTarget.TextureCubeMap:
-                                GL.GetTexLevelParameter( TextureTarget.TextureCubeMapPositiveX + Slices, Level, GetTextureParameter.TextureWidth, out width );
-                                GL.GetTexLevelParameter( TextureTarget.TextureCubeMapPositiveX + Slices, Level, GetTextureParameter.TextureHeight, out height );
-                                GL.GetTexLevelParameter( TextureTarget.TextureCubeMapPositiveX + Slices, Level, GetTextureParameter.TextureInternalFormat, out internalformat );
-                                GL.GetTexLevelParameter( TextureTarget.TextureCubeMapPositiveX + Slices, Level, GetTextureParameter.TextureCompressed, out compressed );
-                                break;
-                            default:
-                                throw Unfinished;
-                            }
-                            GLError = GL.GetError( );
-                            if ( TextureLoaderParameters.Verbose )
-                                Trace.WriteLine( "GL: " + GLError.ToString( ) + " Level: " + Level + " DXTn: " + ( ( compressed == 1 ) ? "Yes" : "No" ) + " Frmt:" + (ExtTextureCompressionS3tc) internalformat + " " + width + "*" + height );
-                            if ( GLError != ErrorCode.NoError || compressed == 0 || width == 0 || height == 0 || internalformat == 0 )
-                            {
-                                GL.DeleteTextures( 1, ref texturehandle );
-                                throw new ArgumentException( "ERROR: Something went wrong after GL.CompressedTexImage(); Last GL Error: " + GLError.ToString( ) );
-                            }
-                            #endregion Query Success
-                        } else
-                        {
-                            if ( trueMipMapCount > Level )
-                                trueMipMapCount = Level - 1; // The current Level is invalid
-                        }
-
-                        #region Prepare the next MipMap level
-                        Width /= 2;
-                        if ( Width < 1 )
-                            Width = 1;
-                        Height /= 2;
-                        if ( Height < 1 )
-                            Height = 1;
-                        Cursor += SurfaceSizeInBytes;
-                        #endregion Prepare the next MipMap level
-                    }
-
-                    #region Set States properly
-                    GL.TexParameter( dimension, (TextureParameterName) All.TextureBaseLevel, 0 );
-                    GL.TexParameter( dimension, (TextureParameterName) All.TextureMaxLevel, trueMipMapCount );
-
-                    int TexMaxLevel;
-                    GL.GetTexParameter( dimension, GetTextureParameter.TextureMaxLevel, out TexMaxLevel );
-
-                    if ( TextureLoaderParameters.Verbose )
-                        Trace.WriteLine( "Verification: GL: " + GL.GetError( ).ToString( ) + " TextureMaxLevel: " + TexMaxLevel + ( ( TexMaxLevel == trueMipMapCount ) ? " (Correct.)" : " (Wrong!)" ) );
-                    #endregion Set States properly
-                }
-
-                #region Set Texture Parameters
-                GL.TexParameter( dimension, TextureParameterName.TextureMinFilter, (int) TextureLoaderParameters.MinificationFilter );
-                GL.TexParameter( dimension, TextureParameterName.TextureMagFilter, (int) TextureLoaderParameters.MagnificationFilter );
-
-                GL.TexParameter( dimension, TextureParameterName.TextureWrapS, (int) TextureLoaderParameters.WrapModeS );
-                GL.TexParameter( dimension, TextureParameterName.TextureWrapT, (int) TextureLoaderParameters.WrapModeT );
-
-                GL.TexEnv( TextureEnvTarget.TextureEnv, TextureEnvParameter.TextureEnvMode, (int) TextureLoaderParameters.EnvMode );
-
-                GLError = GL.GetError( );
-                if ( GLError != ErrorCode.NoError )
-                {
-                    throw new ArgumentException( "Error setting Texture Parameters. GL Error: " + GLError );
-                }
-                #endregion Set Texture Parameters
-
-                // If it made it here without throwing any Exception the result is a valid Texture.
-                return; // success
-                #endregion send the Texture to GL
-            } catch ( Exception e )
-            {
-                dimension = (TextureTarget) 0;
-                texturehandle = TextureLoaderParameters.OpenGLDefaultTexture;
-                throw new ArgumentException( "ERROR: Exception caught when attempting to load file " + filename + ".\n" + e + "\n" + GetDescriptionFromFile( filename ) );
-                // return; // failure
-            } finally
-            {
-                _RawDataFromFile = null; // clarity, not really needed
-            }
-            #endregion Try
-        }
-
-        #region Helpers
-        private static void ConvertDX9Header( ref byte[] input )
-        {
-            UInt32 offset = 0;
-            idString = GetString( ref input, offset );
-            offset += 4;
-            dwSize = GetUInt32( ref input, offset );
-            offset += 4;
-            dwFlags = GetUInt32( ref input, offset );
-            offset += 4;
-            dwHeight = GetUInt32( ref input, offset );
-            offset += 4;
-            dwWidth = GetUInt32( ref input, offset );
-            offset += 4;
-            dwPitchOrLinearSize = GetUInt32( ref input, offset );
-            offset += 4;
-            dwDepth = GetUInt32( ref input, offset );
-            offset += 4;
-            dwMipMapCount = GetUInt32( ref input, offset );
-            offset += 4;
-#if READALL
-            dwReserved1 = new UInt32[11]; // reserved
-#endif
-            offset += 4 * 11;
-            pfSize = GetUInt32( ref input, offset );
-            offset += 4;
-            pfFlags = GetUInt32( ref input, offset );
-            offset += 4;
-            pfFourCC = GetUInt32( ref input, offset );
-            offset += 4;
-#if READALL
-            pfRGBBitCount = GetUInt32( ref input, offset );
-            offset += 4;
-            pfRBitMask = GetUInt32( ref input, offset );
-            offset += 4;
-            pfGBitMask = GetUInt32( ref input, offset );
-            offset += 4;
-            pfBBitMask = GetUInt32( ref input, offset );
-            offset += 4;
-            pfABitMask = GetUInt32( ref input, offset );
-            offset += 4;
-#else
-            offset += 20;
-#endif
-            dwCaps1 = GetUInt32( ref input, offset );
-            offset += 4;
-            dwCaps2 = GetUInt32( ref input, offset );
-            offset += 4;
-#if READALL
-            dwReserved2 = new UInt32[3]; // offset is 4+112 here, + 12 = 4+124 
-#endif
-            offset += 4 * 3;
-        }
-
-        /// <summary> Returns true if the flag is set, false otherwise</summary>
-        private static bool CheckFlag( uint variable, uint flag )
-        {
-            return ( variable & flag ) > 0 ? true : false;
-        }
-
-        private static string GetString( ref byte[] input, uint offset )
-        {
-            return "" + (char) input[offset + 0] + (char) input[offset + 1] + (char) input[offset + 2] + (char) input[offset + 3];
-        }
-
-        private static uint GetUInt32( ref byte[] input, uint offset )
-        {
-            return (uint) ( ( ( input[offset + 3] * 256 + input[offset + 2] ) * 256 + input[offset + 1] ) * 256 + input[offset + 0] );
-        }
-
-        private static uint GetUInt24( ref byte[] input, uint offset )
-        {
-            return (uint) ( ( input[offset + 2] * 256 + input[offset + 1] ) * 256 + input[offset + 0] );
-        }
-
-        private static void GetBytesFromUInt24( ref byte[] input, uint offset, uint splitme )
-        {
-            input[offset + 0] = (byte) ( splitme & 0x000000ff );
-            input[offset + 1] = (byte) ( ( splitme & 0x0000ff00 ) >> 8 );
-            input[offset + 2] = (byte) ( ( splitme & 0x00ff0000 ) >> 16 );
-            return;
-        }
-
-        /// <summary>DXT5 Alpha block flipping, inspired by code from Evan Hart (nVidia SDK)</summary>
-        private static uint FlipUInt24( uint inputUInt24 )
-        {
-            byte[][] ThreeBits = new byte[2][];
-            for ( int i = 0 ; i < 2 ; i++ )
-                ThreeBits[i] = new byte[4];
-
-            // extract 3 bits each into the array
-            ThreeBits[0][0] = (byte) ( inputUInt24 & BitMask );
-            inputUInt24 >>= 3;
-            ThreeBits[0][1] = (byte) ( inputUInt24 & BitMask );
-            inputUInt24 >>= 3;
-            ThreeBits[0][2] = (byte) ( inputUInt24 & BitMask );
-            inputUInt24 >>= 3;
-            ThreeBits[0][3] = (byte) ( inputUInt24 & BitMask );
-            inputUInt24 >>= 3;
-            ThreeBits[1][0] = (byte) ( inputUInt24 & BitMask );
-            inputUInt24 >>= 3;
-            ThreeBits[1][1] = (byte) ( inputUInt24 & BitMask );
-            inputUInt24 >>= 3;
-            ThreeBits[1][2] = (byte) ( inputUInt24 & BitMask );
-            inputUInt24 >>= 3;
-            ThreeBits[1][3] = (byte) ( inputUInt24 & BitMask );
-
-            // stuff 8x 3bits into 3 bytes
-            uint Result = 0;
-            Result = Result | (uint) ( ThreeBits[1][0] << 0 );
-            Result = Result | (uint) ( ThreeBits[1][1] << 3 );
-            Result = Result | (uint) ( ThreeBits[1][2] << 6 );
-            Result = Result | (uint) ( ThreeBits[1][3] << 9 );
-            Result = Result | (uint) ( ThreeBits[0][0] << 12 );
-            Result = Result | (uint) ( ThreeBits[0][1] << 15 );
-            Result = Result | (uint) ( ThreeBits[0][2] << 18 );
-            Result = Result | (uint) ( ThreeBits[0][3] << 21 );
-            return Result;
-        }
-        #endregion Helpers
-
-        #region String Representations
-        private static string GetDescriptionFromFile( string filename )
-        {
-            return "\n--> Header of " + filename +
-                   "\nID: " + idString +
-                   "\nSize: " + dwSize +
-                   "\nFlags: " + dwFlags + " (" + (eDDSD) dwFlags + ")" +
-                   "\nHeight: " + dwHeight +
-                   "\nWidth: " + dwWidth +
-                   "\nPitch: " + dwPitchOrLinearSize +
-                   "\nDepth: " + dwDepth +
-                   "\nMipMaps: " + dwMipMapCount +
-                   "\n\n---PixelFormat---" + filename +
-                   "\nSize: " + pfSize +
-                   "\nFlags: " + pfFlags + " (" + (eDDPF) pfFlags + ")" +
-                   "\nFourCC: " + pfFourCC + " (" + (eFOURCC) pfFourCC + ")" +
-#if READALL
-                   "\nBitcount: " + pfRGBBitCount +
-                   "\nBitMask Red: " + pfRBitMask +
-                   "\nBitMask Green: " + pfGBitMask +
-                   "\nBitMask Blue: " + pfBBitMask +
-                   "\nBitMask Alpha: " + pfABitMask +
-#endif
- "\n\n---Capabilities---" + filename +
-                   "\nCaps1: " + dwCaps1 + " (" + (eDDSCAPS) dwCaps1 + ")" +
-                   "\nCaps2: " + dwCaps2 + " (" + (eDDSCAPS2) dwCaps2 + ")";
-        }
-
-        private static string GetDescriptionFromMemory( string filename, TextureTarget Dimension )
-        {
-            return "\nFile: " + filename +
-                   "\nDimension: " + Dimension +
-                   "\nSize: " + _Width + " * " + _Height + " * " + _Depth +
-                   "\nCompressed: " + _IsCompressed +
-                   "\nBytes for Main Image: " + _BytesForMainSurface +
-                   "\nMipMaps: " + _MipMapCount;
-        }
-        #endregion String Representations
-    }
-}
diff --git a/Examples/AdvancedExamples/LoaderStatics.cs b/Examples/AdvancedExamples/LoaderStatics.cs
deleted file mode 100644
index fa74751..0000000
--- a/Examples/AdvancedExamples/LoaderStatics.cs
+++ /dev/null
@@ -1,48 +0,0 @@
-#region --- License ---
-/* Licensed under the MIT/X11 license.
- * Copyright (c) 2006-2008 the OpenTK Team.
- * This notice may not be removed from any source distribution.
- * See license.txt for licensing details.
- */
-#endregion
-
-using OpenTK.Graphics.OpenGL;
-
-namespace Examples.AdvancedExamples
-{
-
-    /// <summary>The parameters in this class have only effect on the following Texture loads.</summary>
-    public static class TextureLoaderParameters
-    {
-        /// <summary>(Debug Aid, should be set to false) If set to false only Errors will be printed. If set to true, debug information (Warnings and Queries) will be printed in addition to Errors.</summary>
-        public static bool Verbose = false;
-
-        /// <summary>Always-valid fallback parameter for GL.BindTexture (Default: 0). This number will be returned if loading the Texture failed. You can set this to a checkerboard texture or similar, which you have already loaded.</summary>
-        public static uint OpenGLDefaultTexture = 0;
-
-        /// <summary>Compressed formats must have a border of 0, so this is constant.</summary>
-        public const int Border = 0;
-
-        /// <summary>false==DirectX TexCoords, true==OpenGL TexCoords (Default: true)</summary>
-        public static bool FlipImages = true;
-
-        /// <summary>When enabled, will use Glu to create MipMaps for images loaded with GDI+ (Default: false)</summary>
-        public static bool BuildMipmapsForUncompressed = false;
-
-        /// <summary>Selects the Magnification filter for following Textures to be loaded. (Default: Nearest)</summary>
-        public static TextureMagFilter MagnificationFilter = TextureMagFilter.Nearest;
-
-        /// <summary>Selects the Minification filter for following Textures to be loaded. (Default: Nearest)</summary>
-        public static TextureMinFilter MinificationFilter = TextureMinFilter.Nearest;
-
-        /// <summary>Selects the S Wrapping for following Textures to be loaded. (Default: Repeat)</summary>
-        public static TextureWrapMode WrapModeS = TextureWrapMode.Repeat;
-
-        /// <summary>Selects the T Wrapping for following Textures to be loaded. (Default: Repeat)</summary>
-        public static TextureWrapMode WrapModeT = TextureWrapMode.Repeat;
-
-        /// <summary>Selects the Texture Environment Mode for the following Textures to be loaded. Default: Modulate)</summary>
-        public static TextureEnvMode EnvMode = TextureEnvMode.Modulate;
-    }
-
-}
diff --git a/Examples/AdvancedExamples/ParallaxMappingExample.cs b/Examples/AdvancedExamples/ParallaxMappingExample.cs
deleted file mode 100644
index ce299d6..0000000
--- a/Examples/AdvancedExamples/ParallaxMappingExample.cs
+++ /dev/null
@@ -1,248 +0,0 @@
-using System;
-using System.Diagnostics;
-using System.Runtime.InteropServices;
-using Examples.Shaders;
-using ObjectTK.Buffers;
-using ObjectTK.Shaders;
-using ObjectTK.Textures;
-using OpenTK;
-using OpenTK.Graphics.OpenGL;
-using OpenTK.Input;
-
-namespace Examples.AdvancedExamples
-{
-    [ExampleProject("Swizzled Parallax Mapping (ported from OpenTK examples)")]
-    public class ParallaxMappingExample
-        : ExampleWindow
-    {
-        [StructLayout(LayoutKind.Sequential)]
-        private struct Vertex
-        {
-            public Vector3 Position;
-            public Vector3 Normal;
-            public Vector3 Tangent;
-            public Vector2 TexCoord;
-        }
-
-        private VertexArray _vao;
-        private Buffer<Vertex> _buffer;
-        private ParallaxProgram _program;
-        private Texture2D _textureDiffuseHeight;
-        private Texture2D _textureNormalGloss;
-        
-        const string TextureDiffuseHeightFilename = "Data/Textures/swizzled-rock-diffuse-height.dds";
-        const string TextureNormalGlossFilename = "Data/Textures/swizzled-rock-normal-gloss.dds";
-
-        Vector3 _lightPosition = new Vector3(0.0f, 1.0f, 1.0f);
-        Vector3 _lightDiffuse = new Vector3(0.5f, 0.5f, 0.5f);
-        Vector3 _lightSpecular = new Vector3(1f, 1f, 1f);
-
-        // Material parameter
-        //private Vector3 _materialScaleAndBiasAndShininess = new Vector3( 0.07f, 0.0f, 38.0f ); // for Metal tex
-        private Vector3 _materialScaleAndBiasAndShininess = new Vector3(0.04f, 0.0f, 92.0f); // for Rock tex
-
-        public ParallaxMappingExample()
-        {
-            Load += OnLoad;
-            Resize += OnResize;
-            UpdateFrame += OnUpdateFrame;
-            RenderFrame += OnRenderFrame;
-        }
-
-        protected void OnLoad(object sender, EventArgs eventArgs)
-        {
-            VSync = VSyncMode.Off;
-
-            // Check for necessary capabilities:
-            var extensions = GL.GetString(StringName.Extensions);
-            if (!GL.GetString(StringName.Extensions).Contains("GL_ARB_shading_language"))
-            {
-                throw new NotSupportedException(String.Format("This example requires OpenGL 2.0. Found {0}. Aborting.",
-                    GL.GetString(StringName.Version).Substring(0, 3)));
-            }
-
-            if (!extensions.Contains("GL_ARB_texture_compression") ||
-                 !extensions.Contains("GL_EXT_texture_compression_s3tc"))
-            {
-                throw new NotSupportedException("This example requires support for texture compression. Aborting.");
-            }
-
-            var temp = new int[1];
-            GL.GetInteger(GetPName.MaxTextureImageUnits, out temp[0]);
-            Trace.WriteLine(temp[0] + " TMU's for Fragment Shaders found. (2 required)");
-
-            GL.GetInteger(GetPName.MaxVaryingFloats, out temp[0]);
-            Trace.WriteLine(temp[0] + " varying floats between VS and FS allowed. (6 required)");
-
-            GL.GetInteger(GetPName.MaxVertexUniformComponents, out temp[0]);
-            Trace.WriteLine(temp[0] + " uniform components allowed in Vertex Shader. (6 required)");
-
-            GL.GetInteger(GetPName.MaxFragmentUniformComponents, out temp[0]);
-            Trace.WriteLine(temp[0] + " uniform components allowed in Fragment Shader. (11 required)");
-            Trace.WriteLine("");
-
-            // load textures
-            TextureLoaderParameters.MagnificationFilter = TextureMagFilter.Linear;
-            TextureLoaderParameters.MinificationFilter = TextureMinFilter.LinearMipmapLinear;
-            TextureLoaderParameters.WrapModeS = TextureWrapMode.ClampToBorder;
-            TextureLoaderParameters.WrapModeT = TextureWrapMode.ClampToBorder;
-            TextureLoaderParameters.EnvMode = TextureEnvMode.Modulate;
-
-            uint handle;
-            TextureTarget target;
-            ImageDDS.LoadFromDisk(TextureDiffuseHeightFilename, out handle, out target);
-            _textureDiffuseHeight = TextureFactory.AquireTexture2D((int) handle);
-            Trace.WriteLine("Loaded " + TextureDiffuseHeightFilename + " with handle " + handle + " as " + target);
-
-            ImageDDS.LoadFromDisk(TextureNormalGlossFilename, out handle, out target);
-            _textureNormalGloss = TextureFactory.AquireTexture2D((int) handle);
-            Trace.WriteLine("Loaded " + TextureNormalGlossFilename + " with handle " + handle + " as " + target);
-
-            Trace.WriteLine("End of Texture Loading. GL Error: " + GL.GetError());
-            Trace.WriteLine("");
-
-            // initialize buffer
-            var normal = Vector3.UnitZ;
-            var tangent = Vector3.UnitX;
-            var vertices = new[]
-            {
-                new Vertex
-                {
-                    Position = new Vector3(-1,-1,0),
-                    TexCoord = new Vector2(0,0),
-                    Normal = normal,
-                    Tangent = tangent
-                },
-                new Vertex
-                {
-                    Position = new Vector3(1,-1,0),
-                    TexCoord = new Vector2(1,0),
-                    Normal = normal,
-                    Tangent = tangent
-                },
-                new Vertex
-                {
-                    Position = new Vector3(-1,1,0),
-                    TexCoord = new Vector2(0,1),
-                    Normal = normal,
-                    Tangent = tangent
-                },
-                new Vertex
-                {
-                    Position = new Vector3(1,1,0),
-                    TexCoord = new Vector2(1,1),
-                    Normal = normal,
-                    Tangent = tangent
-                }
-            };
-            _buffer = new Buffer<Vertex>();
-            _buffer.Init(BufferTarget.ArrayBuffer, vertices);
-
-            // load shader
-            _program = ProgramFactory.Create<ParallaxProgram>();
-            _program.Use();
-
-            // set up vertex array
-            _vao = new VertexArray();
-            _vao.Bind();
-            // bind vertex attributes
-            // the buffer layout is defined by the Vertex struct:
-            //   data X Y Z NX NY NZ TX TY TZ  U  V *next vertex*
-            // offset 0 4 8 12 16 20 24 28 32 36 40      44
-            // having to work with offsets could be prevented by using seperate buffer objects for each attribute,
-            // but that might reduce performance and can get annoying as well.
-            // performance increase could also be achieved by improving coherent read access
-            // by padding the struct so that each attribute begins at a multiple of 16 bytes, i.e. 4-floats
-            // because the GPU can then read all 4 floats at once. I did not do that here to keep it simple.
-            _vao.BindAttribute(_program.InPosition, _buffer);
-            _vao.BindAttribute(_program.InNormal, _buffer, 12);
-            _vao.BindAttribute(_program.InTangent, _buffer, 24);
-            _vao.BindAttribute(_program.InTexCoord, _buffer, 36);
-
-            // set camera position
-            Camera.DefaultState.Position = new Vector3(0,0,3);
-            Camera.ResetToDefault();
-
-            // set state
-            GL.ClearColor(0.2f, 0f, 0.4f, 0f);
-            GL.PointSize(10f);
-            GL.Disable(EnableCap.Dither);
-            GL.FrontFace(FrontFaceDirection.Ccw);
-            GL.PolygonMode(MaterialFace.Front, PolygonMode.Fill);
-            GL.PolygonMode(MaterialFace.Back, PolygonMode.Line);
-        }
-
-        protected void OnResize(object sender, EventArgs e)
-        {
-            GL.Viewport(0, 0, Width, Height);
-        }
-
-        protected void OnUpdateFrame(object sender, FrameEventArgs e)
-        {
-            if (Keyboard[Key.Space]) Trace.WriteLine("GL: " + GL.GetError());
-            var factor = (float)e.Time;
-            if (Keyboard[Key.Q])
-            {
-                _materialScaleAndBiasAndShininess.X += factor;
-                Trace.WriteLine("Scale: " + _materialScaleAndBiasAndShininess.X + " Bias: " + _materialScaleAndBiasAndShininess.Y);
-            }
-            if (Keyboard[Key.A])
-            {
-                _materialScaleAndBiasAndShininess.X -= factor;
-                Trace.WriteLine("Scale: " + _materialScaleAndBiasAndShininess.X + " Bias: " + _materialScaleAndBiasAndShininess.Y);
-            }
-            if (Keyboard[Key.W])
-            {
-                _materialScaleAndBiasAndShininess.Y += factor;
-                Trace.WriteLine("Scale: " + _materialScaleAndBiasAndShininess.X + " Bias: " + _materialScaleAndBiasAndShininess.Y);
-            }
-            if (Keyboard[Key.S])
-            {
-                _materialScaleAndBiasAndShininess.Y -= factor;
-                Trace.WriteLine("Scale: " + _materialScaleAndBiasAndShininess.X + " Bias: " + _materialScaleAndBiasAndShininess.Y);
-            }
-            if (Keyboard[Key.E])
-            {
-                _materialScaleAndBiasAndShininess.Z += factor*100;
-                Trace.WriteLine("Shininess: " + _materialScaleAndBiasAndShininess.Z);
-            }
-            if (Keyboard[Key.D])
-            {
-                _materialScaleAndBiasAndShininess.Z -= factor*100;
-                Trace.WriteLine("Shininess: " + _materialScaleAndBiasAndShininess.Z);
-            }
-
-            _lightPosition.X = (-(Width / 2) + Mouse.X) / 100f;
-            _lightPosition.Y = ((Height / 2) - Mouse.Y) / 100f;
-        }
-
-        protected void OnRenderFrame(object sender, FrameEventArgs e)
-        {
-            GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
-            
-            // first Material's uniforms
-            _program.Material_DiffuseAndHeight.BindTexture(TextureUnit.Texture0, _textureDiffuseHeight);
-            _program.Material_NormalAndGloss.BindTexture(TextureUnit.Texture1, _textureNormalGloss);
-            _program.Material_ScaleBiasShininess.Set(_materialScaleAndBiasAndShininess);
-
-            // the rest are vectors
-            _program.Camera_Position.Set(Camera.State.Position);
-            _program.Light_Position.Set(_lightPosition);
-            _program.Light_DiffuseColor.Set(_lightDiffuse);
-            _program.Light_SpecularColor.Set(_lightSpecular);
-
-            // set up matrices
-            SetupPerspective();
-            var normalMatrix = new Matrix3(ModelView).Inverted();
-            normalMatrix.Transpose();
-            _program.NormalMatrix.Set(normalMatrix);
-            _program.ModelViewMatrix.Set(ModelView);
-            _program.ModelViewProjectionMatrix.Set(ModelView * Projection);
-
-            // render
-            _vao.DrawArrays(PrimitiveType.TriangleStrip, 0, _buffer.ElementCount);
-
-            SwapBuffers();
-        }
-    }
-}
diff --git a/Examples/AdvancedExamples/RenderToTextureExample.cs b/Examples/AdvancedExamples/RenderToTextureExample.cs
deleted file mode 100644
index e4e196e..0000000
--- a/Examples/AdvancedExamples/RenderToTextureExample.cs
+++ /dev/null
@@ -1,124 +0,0 @@
-using System;
-using System.Drawing;
-using Examples.Shaders;
-using ObjectTK.Buffers;
-using ObjectTK.Shaders;
-using ObjectTK.Textures;
-using ObjectTK.Tools.Shapes;
-using OpenTK;
-using OpenTK.Graphics.OpenGL;
-
-namespace Examples.AdvancedExamples
-{
-    [ExampleProject("Render to texture")]
-    public class RenderToTextureExample
-        : ExampleWindow
-    {
-        private const int FramebufferWidth = 400;
-        private const int FramebufferHeight = 400;
-        
-        private Framebuffer _framebuffer;
-        private Renderbuffer _depthBuffer;
-        private Texture2D _texture;
-
-        private SimpleColorProgram _colorProgram;
-        private SimpleTextureProgram _textureProgram;
-        
-        private ColorCube _cube;
-        private TexturedQuad _quad;
-
-        private VertexArray _cubeVao;
-        private VertexArray _quadVao;
-
-        public RenderToTextureExample()
-        {
-            Load += OnLoad;
-            RenderFrame += OnRenderFrame;
-        }
-
-        private void OnLoad(object sender, EventArgs e)
-        {
-            // initialize and bind framebuffer
-            _framebuffer = new Framebuffer();
-            _framebuffer.Bind(FramebufferTarget.Framebuffer);
-
-            // initialize a renderbuffer and bind it to the depth attachment
-            // to support depth testing while rendering to the texture
-            _depthBuffer = new Renderbuffer();
-            _depthBuffer.Init(RenderbufferStorage.DepthComponent, FramebufferWidth, FramebufferHeight);
-            _framebuffer.Attach(FramebufferTarget.Framebuffer, FramebufferAttachment.DepthAttachment, _depthBuffer);
-
-            // initialize texture and bind it to the color attachment
-            _texture = new Texture2D(SizedInternalFormat.Rgba8, FramebufferWidth, FramebufferHeight, 1);
-            _framebuffer.Attach(FramebufferTarget.Framebuffer, FramebufferAttachment.ColorAttachment0, _texture);
-            Framebuffer.Unbind(FramebufferTarget.Framebuffer);
-
-            // initialize demonstration geometry
-            _cube = new ColorCube();
-            _cube.UpdateBuffers();
-            _quad = new TexturedQuad();
-            _quad.UpdateBuffers();
-
-            // initialize shaders
-            _colorProgram = ProgramFactory.Create<SimpleColorProgram>();
-            _textureProgram = ProgramFactory.Create<SimpleTextureProgram>();
-
-            // set up vertex attributes for the cube
-            _cubeVao = new VertexArray();
-            _cubeVao.Bind();
-            _cubeVao.BindAttribute(_colorProgram.InPosition, _cube.VertexBuffer);
-            _cubeVao.BindAttribute(_colorProgram.InColor, _cube.ColorBuffer);
-            _cubeVao.BindElementBuffer(_cube.IndexBuffer);
-
-            // set up vertex attributes for the quad
-            _quadVao = new VertexArray();
-            _quadVao.Bind();
-            _quadVao.BindAttribute(_textureProgram.InPosition, _quad.VertexBuffer);
-            _quadVao.BindAttribute(_textureProgram.InTexCoord, _quad.TexCoordBuffer);
-
-            // set camera position
-            Camera.DefaultState.Position = new Vector3(0,0,3);
-            Camera.ResetToDefault();
-
-            // enable depth testing
-            GL.Enable(EnableCap.DepthTest);
-        }
-
-        private void OnRenderFrame(object sender, FrameEventArgs e)
-        {
-            // set up render to texture
-            _framebuffer.Bind(FramebufferTarget.Framebuffer);
-            GL.Viewport(0, 0, FramebufferWidth, FramebufferHeight);
-            GL.ClearColor(Color.Black);
-            GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
-
-            // render rotating cube to texture
-            _colorProgram.Use();
-            _colorProgram.ModelViewProjectionMatrix.Set(
-                Matrix4.CreateRotationX((float) FrameTimer.TimeRunning/1000)
-                * Matrix4.CreateRotationY((float) FrameTimer.TimeRunning/1000)
-                * Matrix4.CreateTranslation(0,0,-5)
-                * Matrix4.CreatePerspectiveFieldOfView(MathHelper.PiOver4, FramebufferWidth/(float)FramebufferHeight, 0.1f, 100));
-            _cubeVao.Bind();
-            _cubeVao.DrawElements(PrimitiveType.Triangles, _cube.IndexBuffer.ElementCount);
-
-            // reset to default framebuffer
-            Framebuffer.Unbind(FramebufferTarget.Framebuffer);
-            
-            // set up viewport for the window
-            GL.Viewport(0, 0, Width, Height);
-            GL.ClearColor(Color.MidnightBlue);
-            GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
-            SetupPerspective();
-            
-            // render quad with texture
-            _textureProgram.Use();
-            _textureProgram.ModelViewProjectionMatrix.Set(ModelView * Projection);
-            _quadVao.Bind();
-            _quadVao.DrawArrays(PrimitiveType.TriangleStrip, 0, _quad.VertexBuffer.ElementCount);
-
-            // swap buffers
-            SwapBuffers();
-        }
-    }
-}
\ No newline at end of file
diff --git a/Examples/BasicExamples/BufferLayoutTexturingExample.cs b/Examples/BasicExamples/BufferLayoutTexturingExample.cs
deleted file mode 100644
index 3cb316b..0000000
--- a/Examples/BasicExamples/BufferLayoutTexturingExample.cs
+++ /dev/null
@@ -1,142 +0,0 @@
-using System;
-using System.Drawing;
-using System.Runtime.InteropServices;
-using Examples.Shaders;
-using ObjectTK.Buffers;
-using ObjectTK.Shaders;
-using ObjectTK.Textures;
-using OpenTK;
-using OpenTK.Graphics.OpenGL;
-using OpenTK.Input;
-
-namespace Examples.BasicExamples
-{
-    [ExampleProject("Custom buffer memory layout and simple texturing")]
-    public class BufferLayoutTexturingExample
-        : ExampleWindow
-    {
-        /// <summary>
-        /// Defines a custom struct which is uploaded to a buffer object.
-        /// The StructLayout attributes makes sure that the order of data in memory is like it is defined here.
-        /// To prevent errors with byte-offsets read up on "packing".
-        /// </summary>
-        [StructLayout(LayoutKind.Sequential)]
-        private struct Vertex
-        {
-            public Vector3 Position;
-            public Vector2 TexCoord;
-
-            public Vertex(float x, float y, float z, float u, float v)
-            {
-                Position = new Vector3(x,y,z);
-                TexCoord = new Vector2(u,v);
-            }
-        }
-        
-        private Texture2D _texture;
-        private Sampler _sampler;
-        private SimpleTextureProgram _program;
-        private Buffer<Vertex> _vbo;
-        private VertexArray _vao;
-        private bool _enableMipmapping;
-
-        public BufferLayoutTexturingExample()
-        {
-            Load += OnLoad;
-            RenderFrame += OnRenderFrame;
-            KeyDown += OnKeyDown;
-            _enableMipmapping = true;
-        }
-
-        private void OnKeyDown(object sender, KeyboardKeyEventArgs e)
-        {
-            switch (e.Key)
-            {
-                case Key.Space: _enableMipmapping = !_enableMipmapping; break;
-            }
-        }
-
-        private void OnLoad(object sender, EventArgs e)
-        {
-            // load texture from file
-            using (var bitmap = new Bitmap("Data/Textures/checker.jpg"))
-            {
-                BitmapTexture.CreateCompatible(bitmap, out _texture);
-                _texture.LoadBitmap(bitmap);
-            }
-            _texture.GenerateMipMaps();
-
-            // initialize sampler
-            _sampler = new Sampler();
-            _sampler.SetWrapMode(TextureWrapMode.Repeat);
-
-            // create vertex data for a big plane
-            const int a = 10;
-            const int b = 10;
-            var vertices = new[]
-            {
-                new Vertex(-a, 0,-a, 0, 0),
-                new Vertex( a, 0,-a, b, 0),
-                new Vertex(-a, 0, a, 0, b),
-                new Vertex( a, 0, a, b, b)
-            };
-            
-            // create buffer object and upload vertex data
-            _vbo = new Buffer<Vertex>();
-            _vbo.Init(BufferTarget.ArrayBuffer, vertices);
-
-            // initialize shader
-            _program = ProgramFactory.Create<SimpleTextureProgram>();
-            // activate shader program
-            _program.Use();
-            // bind sampler
-            _sampler.Bind(TextureUnit.Texture0);
-            // bind texture
-            _program.Texture.BindTexture(TextureUnit.Texture0, _texture);
-            // which is equivalent to
-            //_program.Texture.Set(TextureUnit.Texture0);
-            //_texture.Bind(TextureUnit.Texture0);
-
-            // set up vertex array and attributes
-            _vao = new VertexArray();
-            _vao.Bind();
-            // memory layout of our data is XYZUVXYZUV...
-            // the buffer abstraction knows the total size of one "pack" of vertex data
-            // and if a vertex attribute is bound without further arguments the first N elements are taken from each pack
-            // where N is provided via the VertexAttribAttribute on the program property:
-            _vao.BindAttribute(_program.InPosition, _vbo);
-            // if data should not be taken from the start of each pack, the offset must be given in bytes
-            // to reach the texture coordinates UV the XYZ coordinates must be skipped, that is 3 floats, i.e. an offset of 12 bytes is needed
-            _vao.BindAttribute(_program.InTexCoord, _vbo, 12);
-            // if needed all the available arguments can be specified manually, e.g.
-            //_vao.BindAttribute(_program.InTexCoord, _vbo, 2, VertexAttribPointerType.Float, Marshal.SizeOf(typeof(Vertex)), 12, false);
-
-            // set default camera
-            Camera.DefaultState.Position = new Vector3(0, 0.5f, 3);
-            Camera.ResetToDefault();
-
-            // set a nice clear color
-            GL.ClearColor(Color.MidnightBlue);
-        }
-
-        private void OnRenderFrame(object sender, FrameEventArgs e)
-        {
-            // set up viewport
-            GL.Viewport(0, 0, Width, Height);
-            GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
-            SetupPerspective();
-
-            // enable/disable mipmapping on the sampler
-            _sampler.SetParameter(SamplerParameterName.TextureMinFilter,
-                (int)(_enableMipmapping ? TextureMinFilter.NearestMipmapLinear : TextureMinFilter.Nearest));
-            
-            // set transformation matrix
-            _program.ModelViewProjectionMatrix.Set(ModelView*Projection);
-            // render vertex data
-            _vao.DrawArrays(PrimitiveType.TriangleStrip, 0, _vbo.ElementCount);
-
-            // swap buffers
-            SwapBuffers();
-        }
-    }
-}
\ No newline at end of file
diff --git a/Examples/BasicExamples/MinimalExample.cs b/Examples/BasicExamples/MinimalExample.cs
deleted file mode 100644
index 17dc7c1..0000000
--- a/Examples/BasicExamples/MinimalExample.cs
+++ /dev/null
@@ -1,85 +0,0 @@
-using System;
-using System.Drawing;
-using Examples.Shaders;
-using ObjectTK.Buffers;
-using ObjectTK.Shaders;
-using OpenTK;
-using OpenTK.Graphics.OpenGL;
-
-namespace Examples.BasicExamples
-{
-    [ExampleProject("Minimal example on shader and buffer usage")]
-    public class MinimalExample
-        : ExampleWindow
-    {
-        private ExampleProgram _program;
-        private VertexArray _vao;
-        private Buffer<Vector3> _vbo;
-
-        public MinimalExample()
-        {
-            Load += OnLoad;
-            Unload += OnUnload;
-            RenderFrame += OnRenderFrame;
-        }
-
-        private void OnLoad(object sender, EventArgs e)
-        {
-            // initialize shader (load sources, create/compile/link shader program, error checking)
-            // when using the factory method the shader sources are retrieved from the ShaderSourceAttributes
-            _program = ProgramFactory.Create<ExampleProgram>();
-            // this program will be used all the time so just activate it once and for all
-            _program.Use();
-            
-            // create vertices for a triangle
-            var vertices = new[] { new Vector3(-1,-1,0), new Vector3(1,-1,0), new Vector3(0,1,0) };
-            
-            // create buffer object and upload vertex data
-            _vbo = new Buffer<Vector3>();
-            _vbo.Init(BufferTarget.ArrayBuffer, vertices);
-
-            // create and bind a vertex array
-            _vao = new VertexArray();
-            _vao.Bind();
-            // set up binding of the shader variable to the buffer object
-            _vao.BindAttribute(_program.InPosition, _vbo);
-
-            // set camera position
-            Camera.DefaultState.Position = new Vector3(0,0,3);
-            Camera.ResetToDefault();
-
-            // set a nice clear color
-            GL.ClearColor(Color.MidnightBlue);
-        }
-
-        private void OnUnload(object sender, EventArgs e)
-        {
-            // Always make sure to properly dispose gl resources to prevent memory leaks.
-            // Most of the examples do not explicitly dispose resources, because
-            // the base class (ExampleWindow) calls GLResource.DisposeAll(this).
-            // This will automatically dispose all objects referenced by class fields
-            // which derive from GLResource. Everything else still has to be disposed manually.
-            _program.Dispose();
-            _vao.Dispose();
-            _vbo.Dispose();
-        }
-
-        private void OnRenderFrame(object sender, FrameEventArgs e)
-        {
-            // set up viewport
-            GL.Viewport(0, 0, Width, Height);
-            // clear the back buffer
-            GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
-            // set up modelview and perspective matrix
-            SetupPerspective();
-
-            // calculate the MVP matrix and set it to the shaders uniform
-            _program.ModelViewProjectionMatrix.Set(ModelView*Projection);
-            // draw the buffer which contains the triangle
-            _vao.DrawArrays(PrimitiveType.Triangles, 0, _vbo.ElementCount);
-
-            // swap buffers
-            SwapBuffers();
-        }
-    }
-}
\ No newline at end of file
diff --git a/Examples/BasicExamples/RotatingTexturedCubeExample.cs b/Examples/BasicExamples/RotatingTexturedCubeExample.cs
deleted file mode 100644
index 739f4d3..0000000
--- a/Examples/BasicExamples/RotatingTexturedCubeExample.cs
+++ /dev/null
@@ -1,134 +0,0 @@
-using System;
-using System.Diagnostics;
-using System.Drawing;
-using Examples.Shaders;
-using ObjectTK.Buffers;
-using ObjectTK.Shaders;
-using ObjectTK.Textures;
-using ObjectTK.Tools.Shapes;
-using OpenTK;
-using OpenTK.Graphics.OpenGL;
-using OpenTK.Input;
-
-namespace Examples.BasicExamples
-{
-    [ExampleProject("Rotating textured cube rendering")]
-    public class RotatingTexturedCubeExample
-        : ExampleWindow
-    {
-        private Texture2D _texture;
-
-        private SimpleTextureProgram _textureProgram;
-
-        private TexturedCube _cube;
-        private VertexArray _cubeVao;
-
-        private Matrix4 _baseView;
-        private Matrix4 _objectView;
-
-        private Vector3[] _rotateVectors = new[] { Vector3.Zero, Vector3.UnitX, Vector3.UnitY, Vector3.UnitZ, Vector3.One };
-        private const int _defaultRotateIndex = 4;
-
-        private int _rotateIndex = _defaultRotateIndex;
-        private readonly Stopwatch _stopwatch = new Stopwatch();
-
-        public RotatingTexturedCubeExample()
-        {
-            Load += OnLoad;
-            RenderFrame += OnRenderFrame;
-            KeyDown += OnKeyDown;
-        }
-
-        private void OnKeyDown(object sender, KeyboardKeyEventArgs e)
-        {
-            switch (e.Key)
-            {
-                case Key.R:
-                    _objectView = _baseView = Matrix4.Identity;
-                    _rotateIndex = _defaultRotateIndex;
-                    _stopwatch.Restart();
-                    break;
-
-                case Key.Space:
-                    _baseView = _objectView;
-                    _rotateIndex = (_rotateIndex + 1) % _rotateVectors.Length;
-                    _stopwatch.Restart();
-                    break;
-
-                case Key.Number0:
-                case Key.Number1:
-                case Key.Number2:
-                case Key.Number3:
-                case Key.Number4:
-                    _baseView = _objectView;
-                    _rotateIndex = (e.Key - Key.Number0) % _rotateVectors.Length;
-                    _stopwatch.Restart();
-                    break;
-            }
-        }
-
-        private void OnLoad(object sender, EventArgs e)
-        {
-            // load texture from file
-            using (var bitmap = new Bitmap("Data/Textures/crate.png"))
-            {
-                BitmapTexture.CreateCompatible(bitmap, out _texture);
-                _texture.LoadBitmap(bitmap);
-            }
-
-            // initialize shaders
-            _textureProgram = ProgramFactory.Create<SimpleTextureProgram>();
-
-            // initialize cube object and base view matrix
-            _objectView = _baseView = Matrix4.Identity;
-
-            // initialize demonstration geometry
-            _cube = new TexturedCube();
-            _cube.UpdateBuffers();
-
-            // set up vertex attributes for the quad
-            _cubeVao = new VertexArray();
-            _cubeVao.Bind();
-            _cubeVao.BindAttribute(_textureProgram.InPosition, _cube.VertexBuffer);
-            _cubeVao.BindAttribute(_textureProgram.InTexCoord, _cube.TexCoordBuffer);
-
-            // Enable culling, our cube vertices are defined inside out, so we flip them
-            GL.Enable(EnableCap.CullFace);
-            GL.CullFace(CullFaceMode.Back);
-
-            // initialize camera position
-            Camera.DefaultState.Position = new Vector3(0, 0, 4);
-            Camera.ResetToDefault();
-
-            // set nice clear color
-            GL.ClearColor(Color.MidnightBlue);
-
-            _stopwatch.Restart();
-        }
-
-        private void OnRenderFrame(object sender, OpenTK.FrameEventArgs e)
-        {
-            // set up viewport
-            GL.Viewport(0, 0, Width, Height);
-            GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
-            SetupPerspective();
-
-            // determinate object view rotation vectors and apply them
-            _objectView = _baseView;
-            var rotation = _rotateVectors[_rotateIndex];
-            if (rotation != Vector3.Zero)
-                _objectView *= Matrix4.CreateFromAxisAngle(_rotateVectors[_rotateIndex], (float)(_stopwatch.Elapsed.TotalSeconds * 1.0));
-
-            // set transformation matrix
-            _textureProgram.Use();
-            _textureProgram.ModelViewProjectionMatrix.Set(_objectView * ModelView * Projection);
-
-            // render cube with texture
-            _cubeVao.Bind();
-            _cubeVao.DrawArrays(_cube.DefaultMode, 0, _cube.VertexBuffer.ElementCount);
-
-            // swap buffers
-            SwapBuffers();
-        }
-    }
-}
diff --git a/Examples/BasicExamples/SkyboxExample.cs b/Examples/BasicExamples/SkyboxExample.cs
deleted file mode 100644
index 59d20c7..0000000
--- a/Examples/BasicExamples/SkyboxExample.cs
+++ /dev/null
@@ -1,88 +0,0 @@
-using System;
-using System.Drawing;
-using Examples.Shaders;
-using ObjectTK.Buffers;
-using ObjectTK.Shaders;
-using ObjectTK.Textures;
-using ObjectTK.Tools.Shapes;
-using OpenTK;
-using OpenTK.Graphics.OpenGL;
-
-namespace Examples.BasicExamples
-{
-    [ExampleProject("Skybox rendering with cube map texture")]
-    public class SkyboxExample
-        : ExampleWindow
-    {
-        private SkyboxProgram _program;
-        private TextureCubemap _skybox;
-        private VertexArray _vao;
-        private Cube _cube;
-
-        public SkyboxExample()
-        {
-            Load += OnLoad;
-            Unload += OnUnload;
-            RenderFrame += OnRender;
-        }
-
-        private void OnLoad(object sender, EventArgs e)
-        {
-            // initialize shader
-            _program = ProgramFactory.Create<SkyboxProgram>();
-            // initialize cube shape
-            _cube = new Cube();
-            _cube.UpdateBuffers();
-            // initialize vertex array and attributes
-            _vao = new VertexArray();
-            _vao.Bind();
-            _vao.BindAttribute(_program.InPosition, _cube.VertexBuffer);
-            _vao.BindElementBuffer(_cube.IndexBuffer);
-            // create cubemap texture and load all faces
-            for (var i = 0; i < 6; i++)
-            {
-                using (var bitmap = new Bitmap(string.Format("Data/Textures/city{0}.jpg", i)))
-                {
-                    bitmap.RotateFlip(RotateFlipType.RotateNoneFlipX);
-                    if (_skybox == null) BitmapTexture.CreateCompatible(bitmap, out _skybox, 1);
-                    _skybox.LoadBitmap(bitmap, i);
-                }
-            }
-            // activate shader and bind texture to it
-            _program.Use();
-            _program.Texture.BindTexture(TextureUnit.Texture0, _skybox);
-            // enable seamless filtering to reduce artifacts at the edges of the cube faces
-            GL.Enable(EnableCap.TextureCubeMapSeamless);
-            // cull front faces because we are inside the cube
-            // this is not really necessary but removes some artifacts when the user leaves the cube
-            // which should be impossible for a real skybox, but in this demonstration it is possible by zooming out
-            GL.Enable(EnableCap.CullFace);
-            GL.CullFace(CullFaceMode.Front);
-            // set a nice clear color
-            GL.ClearColor(Color.MidnightBlue);
-        }
-
-        private void OnUnload(object sender, EventArgs e)
-        {
-            _cube.VertexBuffer.Dispose();
-            _cube.IndexBuffer.Dispose();
-        }
-
-        private void OnRender(object sender, FrameEventArgs e)
-        {
-            // set up viewport
-            GL.Viewport(0, 0, Width, Height);
-            GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
-            SetupPerspective();
-
-            // note: normally you want to clear the translation part of the ModelView matrix to prevent the user from leaving the cube
-            // to do that you can use ModelView.ClearTranslation() instead of the unmodified ModelView matrix
-            _program.ModelViewProjectionMatrix.Set(Matrix4.CreateScale(10) * ModelView * Projection);
-            // draw cube
-            _vao.DrawElements(_cube.DefaultMode, _cube.IndexBuffer.ElementCount);
-
-            // swap buffers
-            SwapBuffers();
-        }
-    }
-}
diff --git a/Examples/BasicExamples/TextureGridExample.cs b/Examples/BasicExamples/TextureGridExample.cs
deleted file mode 100644
index 32fa4cc..0000000
--- a/Examples/BasicExamples/TextureGridExample.cs
+++ /dev/null
@@ -1,104 +0,0 @@
-using System;
-using System.Drawing;
-using System.IO;
-using System.Runtime.InteropServices;
-using Examples.Shaders;
-using ObjectTK.Buffers;
-using ObjectTK.Shaders;
-using ObjectTK.Textures;
-using OpenTK;
-using OpenTK.Graphics.OpenGL;
-
-namespace Examples.BasicExamples
-{
-    [ExampleProject("Textured grid rendering")]
-    public class TextureGridExample
-        : ExampleWindow
-    {
-        [StructLayout(LayoutKind.Sequential)]
-        public struct Minefield
-        {
-            public Vector2 Position;
-            public int State;
-
-            public Minefield(float x, float y, int texture)
-            {
-                Position = new Vector2(x, y);
-                State = texture;
-            }
-        }
-
-        private TextureGridProgram _gridProgram;
-        private Texture2DArray _textureArray;
-        private Buffer<Minefield> _buffer;
-        private VertexArray _vao;
-
-        private readonly string[] _stateTextures = { "empty.png", "flag.png", "mine.png" };
-
-        const int FieldWidth = 100;
-        const int FieldHeight = 100;
-
-        public TextureGridExample()
-        {
-            Load += OnLoad;
-            RenderFrame += OnRenderFrame;
-        }
-
-        protected void OnLoad(object sender, EventArgs e)
-        {
-            // load textures into array
-            for (var i = 0; i < _stateTextures.Length; i++)
-            {
-                using (var bitmap = new Bitmap(Path.Combine("Data/Textures/", _stateTextures[i])))
-                {
-                    bitmap.RotateFlip(RotateFlipType.RotateNoneFlipY);
-                    if (_textureArray == null) BitmapTexture.CreateCompatible(bitmap, out _textureArray, _stateTextures.Length, 1);
-                    _textureArray.LoadBitmap(bitmap, i);
-                }
-            }
-            // initialize buffer
-            var field = new Minefield[FieldWidth*FieldHeight];
-            for (var i = 0; i < field.Length; i++)
-            {
-                field[i] = new Minefield(i%FieldWidth, i/FieldHeight, i%_stateTextures.Length);
-            }
-            _buffer = new Buffer<Minefield>();
-            _buffer.Init(BufferTarget.ArrayBuffer, field);
-            // load program
-            _gridProgram = ProgramFactory.Create<TextureGridProgram>();
-            _gridProgram.Use();
-            // bind the texture and set uniform
-            _gridProgram.TextureData.BindTexture(TextureUnit.Texture0, _textureArray);
-            // set up vertex array and attributes
-            _vao = new VertexArray();
-            _vao.Bind();
-            _vao.BindAttribute(_gridProgram.InPosition, _buffer);
-            _vao.BindAttribute(_gridProgram.InTexture, _buffer, 8);
-            // set nice clear color
-            GL.ClearColor(Color.MidnightBlue);
-            // initialize camera position
-            Camera.DefaultState.Position = new Vector3(0, 5, 15);
-            Camera.ResetToDefault();
-        }
-
-        protected void OnRenderFrame(object sender, FrameEventArgs frameEventArgs)
-        {
-            // setup stuff
-            GL.Viewport(0, 0, Width, Height);
-            GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
-            SetupPerspective();
-
-            // update MVP matrix and render grid
-            // also move camera rotation center to the center of the plane
-            // and rotate the plane from the x-y plane to the x-z plane
-            _gridProgram.ModelViewProjectionMatrix.Set(
-                Matrix4.CreateTranslation(-FieldWidth/2, -FieldHeight/2, 0)
-                * Matrix4.CreateRotationX(-(float)Math.PI/2)
-                * ModelView * Projection);
-            _vao.DrawArrays(PrimitiveType.Points, 0, _buffer.ElementCount);
-
-            // swap buffers
-            SwapBuffers();
-        }
-    }
-}
\ No newline at end of file
diff --git a/Examples/Data/Shaders/ExampleShader.glsl b/Examples/Data/Shaders/ExampleShader.glsl
deleted file mode 100644
index 2f68514..0000000
--- a/Examples/Data/Shaders/ExampleShader.glsl
+++ /dev/null
@@ -1,21 +0,0 @@
--- Version
-#version 140
-
--- Vertex
-#include ExampleShader.Version
-in vec3 InPosition;
-uniform mat4 ModelViewProjectionMatrix;
-
-void main()
-{
-	gl_Position = ModelViewProjectionMatrix * vec4(InPosition,1);
-}
-
--- Fragment
-#include ExampleShader.Version
-out vec4 FragColor;
-
-void main()
-{
-	FragColor = vec4(1);
-}
\ No newline at end of file
diff --git a/Examples/Data/Shaders/Gravity.glsl b/Examples/Data/Shaders/Gravity.glsl
deleted file mode 100644
index ef99a0d..0000000
--- a/Examples/Data/Shaders/Gravity.glsl
+++ /dev/null
@@ -1,51 +0,0 @@
--- Vertex
-#version 140
-in vec3 InPosition;
-in vec3 InVelocity;
-
-out vec3 OutPosition;
-out vec3 OutVelocity;
-
-uniform float CenterMass;
-uniform float TimeStep;
-uniform mat4 ModelViewProjectionMatrix;
-
-void main()
-{
-	// calculate acceleration by gravity G*m/r^2
-	// define G to be 1 or include it in CenterMass, doesn't matter
-	float acceleration = CenterMass / dot(InPosition, InPosition);
-	
-	// perform simple forward euler integration and
-	// stream position and velocity via transform feedback into the pong buffer
-	OutVelocity = InVelocity + acceleration * TimeStep * -normalize(InPosition);
-	OutPosition = InPosition + OutVelocity * TimeStep;
-	
-	// pass through current position
-	gl_Position = ModelViewProjectionMatrix * vec4(OutPosition,1);
-	gl_PointSize = clamp(length(acceleration)*2, 4, 10);
-}
-
--- Fragment
-#version 140
-out vec4 FragColor;
-
-in vec3 OutVelocity;
-
-//note: could use uniforms to set the colors from the application
-const vec3 ColorFast = vec3(1.0, 0.0, 0.0);
-const vec3 ColorSlow = vec3(0.0, 0.0, 1.0);
-
-void main()
-{
-	// calculate position within the point sprite
-	vec2 spritePosition = gl_PointCoord * 2 - vec2(1);
-	float r2 = dot(spritePosition, spritePosition);
-	
-	// skip pixels outside the circle
-	if (r2 > 1) discard;
-	
-	// draw fragment using a color gradient controlled by the total speed of the particle
-	// and darken the color the closer the current fragment is to the edge of the particles circle
-	FragColor = vec4(mix(ColorSlow, ColorFast, length(OutVelocity)) * (1.0 - r2), 1.0);
-}
\ No newline at end of file
diff --git a/Examples/Data/Shaders/Parallax.glsl b/Examples/Data/Shaders/Parallax.glsl
deleted file mode 100644
index c8424bf..0000000
--- a/Examples/Data/Shaders/Parallax.glsl
+++ /dev/null
@@ -1,107 +0,0 @@
--- Vertex
-#version 150
-// Copyright (c) 2008 the OpenTK Team. See license.txt for legal bla
-
-// custom vertex attribute
-in vec3 InPosition;
-in vec3 InNormal;
-in vec3 InTangent;
-in vec2 InTexCoord;
-
-// transformation matrix
-uniform mat4 ModelViewMatrix;
-uniform mat4 ModelViewProjectionMatrix;
-uniform mat3 NormalMatrix;
-
-// world uniforms
-uniform vec3 Light_Position;
-uniform vec3 Camera_Position;
-
-// MUST be written to for FS
-out vec2 TexCoord;
-out vec3 VaryingLightVector;
-out vec3 VaryingEyeVector;
-
-void main()
-{
-	gl_Position = ModelViewProjectionMatrix * vec4(InPosition,1);
-	TexCoord = InTexCoord;
-
-	vec3 nor = normalize(NormalMatrix * InNormal);
-	vec3 tan = normalize(NormalMatrix * InTangent);
-	vec3 bi = cross(nor, tan);
-  
-	// need positions in tangent space
-	vec3 vertex = vec3(ModelViewMatrix * vec4(InPosition,1));
-
-	vec3 temp = Light_Position - vertex;
-	VaryingLightVector.x = dot(temp, tan); // optimization, calculate dot products rather than building TBN matrix
-	VaryingLightVector.y = dot(temp, bi);
-	VaryingLightVector.z = dot(temp, nor);
-
-	temp = Camera_Position - vertex;
-	VaryingEyeVector.x = dot(temp, tan);
-	VaryingEyeVector.y = dot(temp, bi);
-	VaryingEyeVector.z = dot(temp, nor);
-}
-
--- Fragment
-#version 150
-// Copyright (c) 2008 the OpenTK Team. See license.txt for legal bla
-
-// Material uniforms
-uniform sampler2D Material_DiffuseAndHeight;
-uniform sampler2D Material_NormalAndGloss;
-uniform vec3 Material_ScaleBiasShininess; // x=Scale, y=Bias, z=Shininess
-
-// Light uniforms
-uniform vec3 Light_DiffuseColor;
-uniform vec3 Light_SpecularColor;
-
-// from VS
-in vec2 TexCoord;
-in vec3 VaryingLightVector;
-in vec3 VaryingEyeVector;
-
-vec3 normal;
-
-void main()
-{ 
-	vec3 lightVector = normalize( VaryingLightVector );
-	vec3 eyeVector = normalize( VaryingEyeVector );
-
-	// first, find the parallax displacement by reading only the height map
-	float parallaxOffset = texture2D( Material_DiffuseAndHeight, TexCoord.st ).a *
-		Material_ScaleBiasShininess.x - Material_ScaleBiasShininess.y;
-	// displace texcoords according to viewer
-	vec2 newTexCoords = TexCoord.st + ( parallaxOffset * eyeVector.xy );
-
-	// knowing the displacement, read RGB, Normal and Gloss
-	vec3 diffuseColor = texture2D( Material_DiffuseAndHeight, newTexCoords.st ).rgb;
-	vec4 temp = texture2D( Material_NormalAndGloss, newTexCoords.st );
-  
-	// build a usable normal vector
-	normal.xy = temp.ag * 2.0 - 1.0; // swizzle alpha and green to x/y and scale to [-1..+1]
-	normal.z = sqrt( 1.0 - normal.x*normal.x - normal.y*normal.y ); // z = sqrt(1-x^2-y^2)
-  
-	// move other properties to be better readable
-	float gloss = temp.r;
-  
-	//  float alpha = temp.b;
-	//  if ( alpha < 0.2 ) // optimization: should move this test before reading RGB texture
-	//    discard;
-  
-	// tweaked phong lighting
-	float lambert = max( dot( lightVector, normal ), 0.0 );
-
-	gl_FragColor = vec4( Light_DiffuseColor * diffuseColor, 1.0 ) * 
-	lambert;
-
-	if ( lambert > 0.0 )
-	{
-		float specular = pow(clamp(dot(reflect(-lightVector, normal), eyeVector), 0.0, 1.0),
-			Material_ScaleBiasShininess.z );
-
-		gl_FragColor += vec4( Light_SpecularColor * diffuseColor, 1.0 ) * ( specular * gloss );
-	}
-}
\ No newline at end of file
diff --git a/Examples/Data/Shaders/SimpleColor.glsl b/Examples/Data/Shaders/SimpleColor.glsl
deleted file mode 100644
index 33cd23c..0000000
--- a/Examples/Data/Shaders/SimpleColor.glsl
+++ /dev/null
@@ -1,25 +0,0 @@
--- Vertex
-#version 140
-in vec3 InPosition;
-in vec4 InColor;
-
-smooth out vec4 Color;
-
-uniform mat4 ModelViewProjectionMatrix;
-
-void main()
-{
-	gl_Position = ModelViewProjectionMatrix * vec4(InPosition,1);
-	Color = InColor;
-}
-
--- Fragment
-#version 140
-smooth in vec4 Color;
-
-out vec4 FragColor;
-
-void main()
-{
-	FragColor = Color;
-}
\ No newline at end of file
diff --git a/Examples/Data/Shaders/SimpleTexture.glsl b/Examples/Data/Shaders/SimpleTexture.glsl
deleted file mode 100644
index 5027b43..0000000
--- a/Examples/Data/Shaders/SimpleTexture.glsl
+++ /dev/null
@@ -1,31 +0,0 @@
--- Vertex
-#version 140
-in vec3 InPosition;
-in vec2 InTexCoord;
-
-smooth out vec2 TexCoord;
-
-uniform mat4 ModelViewProjectionMatrix;
-
-void main()
-{
-	// transform vertex position
-	gl_Position = ModelViewProjectionMatrix * vec4(InPosition,1);
-	// pass through texture coordinate
-	TexCoord = InTexCoord;
-}
-
--- Fragment
-#version 140
-smooth in vec2 TexCoord;
-
-out vec4 FragColor;
-
-uniform sampler2D Texture;
-uniform bool RenderTexCoords = false;
-
-void main()
-{
-	if (RenderTexCoords) FragColor = vec4(TexCoord, 0, 1);
-	else FragColor = texture(Texture, TexCoord);
-}
\ No newline at end of file
diff --git a/Examples/Data/Shaders/Skybox.glsl b/Examples/Data/Shaders/Skybox.glsl
deleted file mode 100644
index 270b481..0000000
--- a/Examples/Data/Shaders/Skybox.glsl
+++ /dev/null
@@ -1,34 +0,0 @@
--- Vertex
-#version 330
-in vec3 InPosition;
-
-smooth out vec3 TexCoord;
-
-uniform mat4 ModelViewProjectionMatrix;
-
-void main()
-{
-    vec4 position = ModelViewProjectionMatrix * vec4(InPosition, 1.0);
-	// setting the z coordinate to w forces the position to be on the far clipping-plane
-	// because after perspective divide, which is a division by w, the result is 1
-    gl_Position = position.xyww;
-	// interpolate the positions between the vertices
-	// after rasterization we in fact get the position on the cubes surface for each fragment
-    TexCoord = InPosition;
-}
-
--- Fragment
-#version 330
-smooth in vec3 TexCoord;
-
-out vec4 FragColor;
-
-uniform samplerCube Texture;
-
-void main()
-{
-	// visualize the interpolated position, i.e. texture coordinate
-	//FragColor = vec4(TexCoord, 1);
-	// sample from the cube map texture
-    FragColor = texture(Texture, TexCoord);
-}
\ No newline at end of file
diff --git a/Examples/Data/Shaders/TextureGrid.glsl b/Examples/Data/Shaders/TextureGrid.glsl
deleted file mode 100644
index df95cca..0000000
--- a/Examples/Data/Shaders/TextureGrid.glsl
+++ /dev/null
@@ -1,63 +0,0 @@
--- Vertex
-#version 140
-in vec2 InPosition;
-in int InTexture;
-
-flat out vec2 Position;
-flat out int Texture;
-
-void main()
-{	
-	Position = InPosition;
-	Texture = InTexture;
-}
-
--- Geometry
-#version 150
-
-// this shader processes points and outputs two triangles (a quad)
-layout (points) in;
-layout (triangle_strip, max_vertices = 4) out;
-
-flat in vec2 Position[1];
-flat in int Texture[1];
-
-smooth out vec2 TextureCoordinates;
-flat out int TextureLayer;
-
-uniform mat4 ModelViewProjectionMatrix;
-
-void main()
-{
-	TextureLayer = Texture[0];
-	vec4 p = vec4(Position[0], 0, 1);
-	float d = 0.5;
-	gl_Position = ModelViewProjectionMatrix * (p + vec4(-d,-d, 0, 0));
-	TextureCoordinates = vec2(0,0);
-    EmitVertex();
-    gl_Position = ModelViewProjectionMatrix * (p + vec4( d,-d, 0, 0));
-	TextureCoordinates = vec2(1,0);
-    EmitVertex();
-    gl_Position = ModelViewProjectionMatrix * (p + vec4(-d, d, 0, 0));
-	TextureCoordinates = vec2(0,1);
-    EmitVertex();
-	gl_Position = ModelViewProjectionMatrix * (p + vec4( d, d, 0, 0));
-	TextureCoordinates = vec2(1,1);
-    EmitVertex();
-    EndPrimitive();
-}
-
--- Fragment
-#version 140
-smooth in vec2 TextureCoordinates;
-flat in int TextureLayer;
-
-out vec4 FragColor;
-
-uniform sampler2DArray TextureData;
-
-void main()
-{
-	FragColor = texture(TextureData, vec3(TextureCoordinates, TextureLayer));
-    //FragColor = vec4(TextureCoordinates.rg, TextureLayer/220.0, 1);
-}
\ No newline at end of file
diff --git a/Examples/Data/Textures/checker.jpg b/Examples/Data/Textures/checker.jpg
deleted file mode 100644
index bf439b9eeefe4c5b3af1b830c386b683154a8a01..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2441
zcmeH|K~BRk6hy~y+_*~A^f#fcs@4&q2dKn`T^C4|;1nE%J8=OP9D>4zo0zFkBdb}l
zsW<tNvKTp;=gG+NpZ*8a=fl$hN&$)&{5Kw9beg8x@Meq|WrfW+WuA`<DQ7b&MXLFF
zQPry(k>%}jwb?XHQ!UzU>$YpxxYJ7%AI(PD#M+6grFQ=w{|>PU5@^*T5v4`>56p>5
z%y7n*dOf{RxfQCHYyVW~ul+)y6>YR&kK+q)_W<NOAh~}9-sl%Wplc-O(3TW2LpY-l
zBlh<=p>QHJ;T%Gj05N*n^#xK4)#wr!su3hGR3rR(1i^H5iExY%<NAk0Z^J`1!fNdO
F@fSfR8gu{v

diff --git a/Examples/Data/Textures/city0.jpg b/Examples/Data/Textures/city0.jpg
deleted file mode 100644
index 80d32d68c87586cb1938b3598bc9fa44656e48c7..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 34449
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

diff --git a/Examples/Data/Textures/city1.jpg b/Examples/Data/Textures/city1.jpg
deleted file mode 100644
index 7dd13454b11d57ab19bf1679d113aae8a844cc62..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 36815
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
bOjp@u7jCUY@RDt6k#lNV#xUp({BrKUW|=<f

diff --git a/Examples/Data/Textures/city2.jpg b/Examples/Data/Textures/city2.jpg
deleted file mode 100644
index eb8ea7a3695f0fbea28cb6a2adebd9f025497ba6..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 30510
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
OyBQ<NFQywlPW}&xTw)^t

diff --git a/Examples/Data/Textures/city3.jpg b/Examples/Data/Textures/city3.jpg
deleted file mode 100644
index 7106e93272b6be07e53d562b83e8ee087a1a75f9..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 28435
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

diff --git a/Examples/Data/Textures/city4.jpg b/Examples/Data/Textures/city4.jpg
deleted file mode 100644
index 2b5b0171223661c1c03a2fbfc248919148d112c4..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 35810
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
G-~R$Uq*HGI

diff --git a/Examples/Data/Textures/city5.jpg b/Examples/Data/Textures/city5.jpg
deleted file mode 100644
index 159d942a41983487b6671591faf161a1ec82c850..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 30269
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
Ztt$zlXvT=~cY-}DfkR;>lw#ig(?6WR9Y+8F

diff --git a/Examples/Data/Textures/crate.png b/Examples/Data/Textures/crate.png
deleted file mode 100644
index 819d8d409fb8438f1dd7321893def883119580cc..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 344272
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%0D_J);w8sT
zxl(4+Qc<#CCV><%#wXV>ATWs;&-^jPH9$5HVPt?aQ@9&f^6cz3YtI6>3CFW2qOeE2
zZ4T0%Ky@tFF(8r9LLV5mElxUPw(mL~sm$Ac=Il)jq6<jqxFa)M+mOdhfXmUghQ<vi
z(6D42mYT>tLt!PUIrW3UBtIK%V+Tz%7f2C9=3L>mh5q+mj4I05ko}1G;_V*S_^oiV
z_KjFHYOV#fjr-@7VoM!)>TIQF7SB$AC8L}U;O`%F;)cg9LV4{58l|V1hNykwHGQ-T
zF-I2p?y0ox4MIM<2t1*6X3HPK>J9rE7#p(Z{jxl#Wt0@|SCs%NzczI%0A;;Hi8enK
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

diff --git a/Examples/Data/Textures/empty.png b/Examples/Data/Textures/empty.png
deleted file mode 100644
index 3b332dfe12e3a21577287c90d0274fbd91126b52..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 9875
zcmX|n2{_bW)c<!Dj4iwD>o0rOvSuuW7F!|NWi5Mz!i*szgd$65l(H5gV~as)7+YoE
z8d;K&Jq%;a|J(b2-glmPp6|>&ckVssp7S~9-1|9?tS!yhS%g>s0ARm#@xnC#fPfz%
z0D=*GIER+|0DuH=>4K5%y~4F3rz{b(X9W7N{bN(<$KI2sH@Y+h`ck_*gM?+EeJov$
z!eg6XrrXy}{^a??qY?uXleni5kyrZ;p$ut<Bdihc#=mfz)}1k~dz=5woa84S<!75U
z*r#*9g7`uQpPXJn3{$Ua(H%0d@(CaBmn>{X1R~<+%($*i%HCTBJ^*)t4~;md7lF+2
zbA;F1LJ)!A!1_7(nn<Y;spex8(9$Femx9J;zJLy6#9;yfZJG+xo}3!6%N;mX_H87F
z2Jiz)AEwt}ZLYyD<x<dBdG*ar4B>{H-!&krLTrq}CRYQ18%(v=@6UGIB1}WP7;u=t
zo4Q>aun_mv@ZZPOjo3{piGCc5-0qR~{k6O-&Vg2pm$-L_y0=EB^|>8ye<=uVKiE4w
zJhT9?(5ALs$8K9TO;tW<ps71IMsuCvm>cs+*0PZDJyoTh;>Llb%;8m(lx9eN4N`bf
zBhIEYg6B*-iu#2~JZ5v<zou>Pu)%*E2@QdDSOATxd=Ji=Ys3$E!E_<FAbCt7hz=Tw
zwjPP49**OWNl7O}4;#^V1JcI+x3vg0tz0)8c0q^v{#9P1)L)ZVc^NddwA2LHYTMh}
z(Q8u;^ysyQar9Orp0;)l;}2AODlkR@0mi-XyIl1g!*j8lW(J4fRQ5JV^c#)Sfsw5)
zf1~vOQc-`S+CB$Yg~mt!SMIxoTF1Fx%TL_5=Vf4g0MXRcR24Y^E}<&G_Qk%&mA0A@
zd$d4@Y;pkhssk*@?z_6R7G}3=5-R|uw#_cqp<ODCFlF;KsPWs%-LI>=AE23auw^lk
zW~|%bqKH?;(CH7fI?zZ08H7A@8Sg?|hKSDg;(Jd*j=|yY5@w8KX$f5>TMu3d+*K>u
z7e|vT%8pxSgBqRQjYVvN0{0IMd6L>uV>}Ct3Bf=j+?9u5{>`%bGeQijX`H_5l<TCD
zNDtAzpktju@C5ZbuCOUPUMMr5t+1Pq14NTf3)?zOCD4B}s%oQSA;aMK4UFl;k<+C6
z0ePQ#!_l$pm`05haURbfRku&lnrvR;jlSrTo{<qu)Qov_mOFIn&Ozyif`FOO0+-XQ
zIzFwlU))tYZk?Hugc8z4qdyL>hzLJ6#R76}{;CK=reW$)k|h>NbDIr{Y!^CebLB`)
zP1QypX`c|$2Hbti?lOGr9Uo)t4pQ8Icm91C&0{om_F=jV^o0{atK&S3#Mhs_Hi6a(
z{_%OXHBwFFL}YSD9E^$oMf7^J?~i*6k5_@~z!B?kIL0DimP?MIScG;mCnrbj<3>C6
zxNSD5WYq5^_#R$yrytYq{eGDgazxp3JPBbiqA1xxZa6!Cmc_=@wQ*{TWi*=1y(frK
zxiM784AY!M>4PKPQYp-~51Q2p8glq|h5l!sx}OVG)zWG_4W*&Q*CJX6_vI1s51X5t
z*X-{nRnG=($OSh}YlklOpk%FHoQqr8zt6A6hf&6@13A#IkgvfFj!fxd`cb89F-Dv|
z1=p+2M$UhJB&*iefKOhDjER~^p<M%}fGBXQUXnKY#-kZ-o_zn|!(I6BoEydzAY%6;
zQeXYn3V#|e@n6YNM6lqIsGOi7tCNEvkFPAk_}VX3TD;rtGF5L3ASxMNr@(LKz7Ho9
zKZxeo%6}jQ0IK%9iEodXyVhSHE><`Dy_7(-7Kj?Tbt?cmbnEk+2_gT%I1}{K5EzL+
zH!lG2n;g<m2}HEOZk)t*vLmlZ20`FNQiI49&THRScQbcjcO9Ua&v$pjkG3*mKi9<4
z{GFRa->eLCCAh!1H_v=-r(ffStE(v<OVV1a=fntW1<hH-9`gK%*|B(AQxj}}y2$BM
z#9?s6xq+u6UC{^LA3^X?i1zLAZ{EBqwel}8WpMZQW~gaDR2VGMOX~Hiqs=`jw2?8I
zQy0s4kHbC0(*F3~YMj2eH|e`ov=PGuMhd^fk>60x=wo^o_6UAb*?D5?W2b9P5{kO#
zz~G*PwNdR`9`w$^U*M<C5Ej%xWaF^Yk$Zm}J{}*gYNHO%pedikP4)S6P1P~ap79kL
z#ELE1BvodJZ0u8w1Pw)vaJkTCW-@n19^rk%*?e<V&}+nJXZ;#f^UXK+rh^xvNmMa@
ze*RZQNvqDbLR^?!H}rk#RnJkg^xY`^W!?^1%JX|M_sBS(#Fls^li3^L#8$_WZ-}g3
zFDLle*jUIvQT~3v@@L_*wtX=K(uAhz{<yy^dRMn-Z8_%|J?x(sgAj!-J@INjx7QkE
z^!(KG7zNdC*<YURfw*tC5<1;$X&r-G_dd=N++u0r=jcZ}gY<?cDN_t{vyr6kd*@6W
zr)OW#BXvdpOgC~|xpIYav}{nr2N3Ckn>0Fnq|Vxjt(7&1rh6QhG*r^$5<#rrtMEo5
zM+lLyeR%QVpJR2_8!j&02RqAKkAq_tG?uNI8dy4}ri5HkyQ6FO@rMRX>7sfMWnbL$
zAY>&~(4#vD8Gc#^hlkyRfCuhm^sy-Sku6?eXszt<4z3UX=_jYKu<#8xH-fwB#1n=O
zj;D`6fk?v8%_M^(NaXrVXIEF(o}3#p=xDC<fp*kiIkBkUFZHveSX*-|CCp`boLeK<
z$7|dOpahH$IwLk49Z!R9$gn(wCG=*=`Wp;Q1vP<j@Q7@WuRAUiV~)AmXpKVR*X?$1
zH#pu~dS)-AGc*NvR~4B1{^knzVtnz>w*4Rei%pX;OF=n!Z7D?kWlazTt<MUXw73AH
ziBHJ@qD#ya%&vY?gbECZm63}<QWF1wlJ^!ap%u=XFl%`o{A%3xKO-NW0-nBNjTdkJ
zlI{h>*Rsl`bY1cK2d*#7y~^P8rBCSd6aP2oo~jf$D5>`{5c*u0xyu#v9}o^Nh2teg
ztgZ`UBoMn&|AR<Skn%X^vZeq?&+cPHe1{pD?Z1EPmjY6%@zyF12n@WvwxG8;)>jgU
zmpJp_e-ZssCbW<xlR<)zbrRl5zio&y0iGl7aS7gReCkgc^kK<dW#CSjHUFouF|9`n
z!f=x#%Y{)wN*b~I<QZ^rlhwG*>l8TSNa{bm4XY>LfzSVBmVNzF0EDq|sOZ6!I&RF2
zN{+;$`F89H1&9LTu8*W^9TC)5i+kI%Xav;M7)r#{Frw3qGY4$q!dg}1If+VtSH5Tf
zc9IM?$F5TEkkO*w+s|=c;N&hYfR5Zbr~KF#+?0a6hP3NJFc#zg%uCSesj;UVyn$xd
z|BQ-Xr5LWGbXg%iG%4nIRu}OXiRhw4&`3(2!n<LXbO^Xv$?=N2Lw4{wM|l4(IEdK^
zTa<WQXu)W0H|Wq567MdwyZQn;vTah_!o|hu14%)Yw}%&U@I3`a1k;{E5cQbT9R*Dc
zO^WTz+KQ~QT|XXbOy$BH(@P98w}K%)OR2nFKf0c6Z;)%C<3@I;P2dTIKl|yc+8p9_
z&Fr`QoZ{Vj82pGe#{<nAzB`7Qe$<xKoE;P12!q0G{E8k#r0zL1FW$8jYMe#srxx6R
z|CLmPlt1k|x;!y${Q#>zwLB47&jU<L6(?h?Wk=FJtQ-qIy$Kp3`yd<qMJs!Qx{+_v
zF%qJVDO7o@IvoOy&cX9!t_2#}WTqkz70me?R~R`lf!%lcM{M&@O_Q?TQJESJF&rJc
zrzHF|B@mJnM!bJiW*EI+0S3%F-!+=!)}V}P_O02{G*(<NGVuyyCMV%6?;nsxnZn2=
zlS<IaHE`naOa+SXDUE?p7Eb^5QwU8m;&`Ul6mVvZL3SFjiesz|UOr&k4<;)~yvF-V
z10B99*DoHbNJ;!oRvVbf5;UyT^7ga3V3=%iadUO5c&w&G{18_(D&>AZEzcjQuM?1d
zoj7G?9y=OU7%{R|*b~H397JG2&#EP~#aX%i^nuswviDpDFtr?nB@IRK6iyCOyKzNd
zk=XAT56<sC{LtcPScL|_6*tQsuKQaf-Ub?b{m>z4p)gd;rO2MoB(AwxXUq+_?)0eQ
zMXjFdW1PG?1luXERo4UD{d}43eYrMLbvMy=7!ar1Qp9BSAakX@qq&2G>qE9O{bI^D
zGt}6vr^9x09R%F#xB+qRvC;jjbO%ap!jLgDML-Y}Wj=eXv?uvp$grry^S;vH3_hVw
zxp=2>lyCdO$<L*Mmpi5dkb*`o4=&#d@YyotoWA3{f*&9>nwK)%KhJzGD0YiEs-b$l
zFaWKSIm?ULx!DvG(-*L09G3SvpV~}5o(d?%HPcizar=g+3TmJQwjX-gI<6~^qz;vD
z)U86F7eK60p8KN2`&Zpj9K|Py9G$*{8_$=giRKZ*5zQ*EKk@y|4h+f<HZ86yP<W6w
z8B}5eU{izZCwXU<eCu25V3NwXRS{_()o0yoXkzr=&aq`wPY_q;)5`n+vd+WTNiBgX
za){&KP^>g@WJvQvM!u>0_<Ij74H#%D>ubCpYpB<PR`S8+`0|BbcWOo*`ann5MAYNH
zx}SB)wT`<<=a=AH5|(!>)QNpNXP;sBBKNk_c)B0Y-wCM8Z16R>N3v1>Tt?AVFD%5i
z(Za}$TX(yPpngzE2%99LIt?~0G^cw69QhS_RNKUrtNoW@PQW!Eh&Q!b0>^OrY;iLr
zSZKwfr2RJD5oaI5aK192Sf0yzNZ)IuR77J@z|{uhN62`z?m<mIsvKB6S@&+92o3OV
zWhVYUSx3r7B&0xcb<>UbfmtT*k_GbA8+a@+90=kso-(JBsk0W7kW;_Iy(^&jme~)8
zyuqP|R@2CP7LbvS)W^!T^0y5-IM6l{Ny<n0dph2gr%whHDL>?V%^645Je7<JRD)(u
zM<gTesX)K*$6dSO+!@>lm@k{~!3%<!3D<G<4K~EeCEWr)t4CE~`F||Zjz?(|4o2mO
z*Fp#NJ%EP~RGAC-9fo!hB#70KYmD{n?VWJulBZ^_l5Af%!abPUtNYF1aumkcKtasm
z7td5o6$+CxZ)1usaA|bW$7kCB4Kv=uoivdq(PTx&m&P4@i8uCcNV!Le>yr87$^{LT
zxM~}&$ft5`zE8y1Tt7WNc^64On+7TSbdBiw_*m0P$tYPKy3}V<BprL{!&wX`mufh_
z)09ZvX4zELGN%H(6t#<Lfx1OnjI0VNeys>GL)+X}lH8n4zxss_p)eB=ub?dR)C=${
z4w;T%(2)Il#W|vY!*|`vL0I+KvvI>D|HqxS1k;O5OB2Q>#p~bPd^xya<nSNif`F{B
zDypZwbE9C-Mgv-8ffAR@Hyrh;t3oPBiY8pkRb-Tu#<z%v{f(SFAK0@0YF_xL!53IE
zst^Rs;6$7Sq)=+Dk=ewd+MnR1F<C_|t@CRhES<7I$`?ntU%t;17d(}Ib<CErcx-ot
z^#@%rndhkeWXFi*#ZCLIOFK3ekbtE(7Hyj0!`X<}{0Spc?z)kpl2UW$pR#o<@=R%R
ziXAz>Ocp$<zKShi&x<)fmvVL#m#Yy+?t5sp33}S8A9zOdBFJk?s=V=4ec9XrT+LWb
zP6ZklT9gsB=5hYEme=C=vjaFf9IwnZHzgNhdL)2t9?ys)4*~$qqnKQCIQge=jZBU7
zMvxokb1If}TYJk+G)dzt&UOE`+N#pv`C5c!CnpEj9b^s&88*0BI;s6SKn_EOx6BEp
zV=r+F+shsL;#`m@3>kFV8U%&K=<ive1HC#pTHPZ0e6I|FCdp$e%uh#xHn;QeW||r5
zZ~R!@Q4_Q*2c7f<$Z?)!bZ-|YCqKbVnYBg+Em_6l6r%=bUz;@<Y&IqBNXF^yH<Ax4
zU&4*9xu{@WVSD$O-gRZeT>*?9%sRuaVLB#!y0m2pNA{hzUoD6USh6eV4cb|rqaIiX
zwtH8=@GYWJ+}S|5izkUq;sWB;u~2Qw2Go6*z4_Yx-5a<-mXVh127nv|S=PqwC^L)l
zY46%38}j5ElK)_MUOV^z<W7su-~y`6Xw8hJ+EB*X?J%?ZS%$x>Q-@{@OwDSIZj%<X
zj1i%|aP4sU1TUaH-|(p{bTVKj!o{c`jJud5C3q+?V5xHUmkpDMWaP7?v|}=wxF#S7
z@C9uqanr^z81!9S(cAUM2WfjRQ!%4q7oRZX5$}#CX%MM{R10f8{w0k!*=2~Btbs+I
zr_3SbiOm7P*d4`nQJ>3iGfel^#mz9-3*GOn@w2#Kh5F7SY8ersU6kV)#?a(A<|V@^
z1)Y(2!x&}GRm*}|gT1bXWFHr%8VU}aH>2vtV++>9N+Ftf+otrB>f}`-i1uE71w^*_
zC)-l#J~qQhD9(M+2WVj{d0U_`cfJ(Bp&HN)=F4U6zAmC!E=fZzthoZx1`TOK6ip|W
zlJ@E}Js@<-4%KwQ2?qRG(bj^6H01gfcn+^6<=pvG8GPwt(%eYkWw?hgV}*&t8A?47
zsFXEkN0XCZ_bFE{iXF{#8<4o%BK6Pf#j{_YF2syKBlN?K;gTcc5n{^aabizzmcwbm
z9eyFLL~VuNS$kFOqdS3qEQazW6O|DKR-#SmMUDuv0Ih0T4gPY9uH*6Co6%k9ji(pj
z-HL>4usEk1<^_z<{7^Oy|Dx8UUDFPlr|^XL&Jx0?A9S^<^PJbbfzmqb_*hn;=>hgR
z<o6GyUG0&;XJ4~PxL`fa-9qOkbtbp+wMU4iwf0w+`QkE%klL{FplPCWk&#6{hSF(O
zB-BK1K63H)a~cgTvRGc&e#~y)A&>i79Jw~$U?KX(WtqrM5x}CJo&^lWYqKMo*Qi1E
z8H6He`5qZr)_=WvDiA5-JRF~S;sVWFeyO@R;^1>X+chtS870j32&JD^b&SPRI`Z!-
zTq{isv#@>Ri#0n}!F2x5`M2#Z3C`J)@{Bn>|CSvlrkuan(V8xJ#T|nfg2Qk510pe|
z(L6|hNH(tE1-<M!wJIc`z;oxczcJhxr2`>LL+ykc4d5sapqL52`nmG*FQK1ROU~HP
z>0f120aQO!7RQ^Jh@z1v$nd#>;+S+1r=on!K#qdqX7B4J0^16!5ecre@3Mj)QVR%+
zO}A<u;)9ag9q}!}+hNb_14sSmyOtfpGCH@kCRfF1fjC`wry1M>cUzkB$Z#~!$@-e*
zL=J=!1O|{_%k?!l`_sd1`<dp3%U9klz#1&pdx8}r8JZn`DYDG0k=rvQtWEu}bHQg|
z)(?95k_-3311UjO6Gu(dLUn9tk+?OT7o#xe?DXe}+w71$Pw`v<gtC{k=nuS6*_V3V
z0}Vj8Q%7+Y-pHlOwy3~RjK=e3BC78iBeHv_%tCl10yRDUB!(R*_6D5?x92>)^gbrR
zuwim<^iUH^rdAmj(ZlNEZ-nUCRX%aE*HoOuIGVPVB8_>ZpqDf-<OnjG#6xj!(zxtH
zi)Gf=eJnAiD(QhW$$%CGRnIQ|@%U_>|A+BM52|L#5tV01zszRshjQy>ilgz$1%rg8
z0v7Dm{>B-;5oN6N1q`d~Tzwxv3@y^OwyZmRsBQF)byN2`4b`WuxjSV&XUS}=SC!HB
z=$qRt2fH8nq6_UxvrHkT<}}QjbfKTkQ2)fKa@5IvvLhwz^x>UA1)RT-qQ=~Z1w}@A
z)7Ws58N3{g44j;U$FNBz=YSOwN&{1O!gnOYduMVvdy?p)Im%J4McZHbC_)W730dD=
zNCEb>?Owh6S4=_7Zj(kWdx-4=U%<gviQ$?>83Q$za?9>JFX0*uN?rz|$>Qqj<7#C4
zic_%i!`7)P#@Mv(HUZYy3MiKQZ{b@BMr4t~QjgW?J{{rm^zWMGo#Hm|S74#pvQ_}G
z&EWFCqq0|S#RqGcS+uI~-7cXJ;-lF9`NBSPRIb(VB*0+VvHHgutO0O=_63?;xBb>P
zR(U>M--SFcg7&{cydGqWxzG{L9-|JB&_8*BVTRJTgVYGel;VjabIshEUbjH2{TJr(
z#qF{w77bt;u`XkfjPJVSf1Zd+=+N4<Ik?lEC9Tv88Z~a@K`9X+(z4|Zw7v!!1^HhA
z>lwL-teSLz{P>y>LT$GI&4ns&(s`Y9VYZV4j^xX$AGodes~qdmP2w#_rlOIN(17-e
zpAkOk@BW#~N|H0%y@3H=fyym1*7OI+!q_*>c&p~VFI%^vex`(mHB+vyYpZ#W*otjG
z@Cq6>1diVtytL(+cIa22j3-BbKUfW@oLyX~<cSYXnn!#LzV9b_@e~Wv!KO!(sU|7@
z`o3p1#1<@!&d4@3J75mc=l@lM!rj$7RoCnv&J91Qz;Q|zr{UU5!r!uC&bxGS{C6l*
z95g*vI)(Hd*%w_pUk6;yfA`T(W71B%z|AJ)yW{^CJVTzv8;=t$n95moZt`knob!|Z
z<&0I|U(RkOj_$86cs|fLg;+C`zaZhQ`86A?YTd?7MdRF_-em_aW*vtG;83#%iEk-3
zzmBuN{RnS!hKOm{%;CDZqDY~{ThIOHY`QbU`ZI_0ZZldRHeWEbL)r+-6s%3Opwc-`
zW!enV!aKz@I#9)8SiSAAK2KI7mM5DBZ(|ZZH(FhA08gIEK+6;&|Ah5))eF|L)Ar5p
zP}Nq$)`J!oFv!bPA3(-{<*GU+l%(lFb;V359^(#iy1E87`RlaMI!IPVm8H3{nR2!M
ze_&ZIpD1y`P%cCRlW8P%s0D$bzCNE)dv>;Me#l{xwAM(ENncT9tVopbGRPT77`iAv
z#T0+6r|OQ~Up;bJtEA3^1B1wMg59`XkbmEz=T5y*?+FiPgjQ?GRLlcc`>_w4ye1PR
zoq@Rg0pRZ1!`J(TC^zxk;N3#`aP3`}-AYPCO7?C<7NVT`UIV}ebTHMJbdcjJ8h<y*
z3i)Sqi0*oNL0fcrTL*F-Rb&bmLNt)rZIJ{C)48hGLHLw$`#5<)jNgKoETN+;o$}HK
z7#&)g{_mwUen3nER4$w)ZYca!+M)M!J5Bl)JBFK5$Y!`N6UG{2&tDu}BmavgzX4be
zb(UGay^X0T6#hJ;E7@*KzD$qnI15}R54m(+f1q#|`@M9~EHb@t7jV*Z79Y(ei}S2+
zd9WIpa}`rQ_cNA{2vSb<u0zW;$C)e#lw$T!s7mjVP#e9LC>il0>_DS@`7%!!i@QRw
zF?d@t!&{^Xm!!qFA<7js1`bA1epDR><k=?hS|yL%Ej1?h<^514XE`-{A-_2NaK_)e
zE1CuPdM&p4a(539gK`FE&i#jC^Y)P_d4yoE_TGe%l{_oo!_1DF!>|koC&pqu?YTxq
zLw!@19dr@4qTjCCzrfF)Cf9E9B#OnoE;0E$8AN6cW4YoDPjjuN3qt@AMQQ~s-q3Xo
zQfl56`q`rb(Ah07Utgxnqg%a&ir168EZ<L!{-k*plRE?BHl}sLtmqcU*-;=eJ-6*D
zG|ngMFoYb8sIiwjA)E<+d!c>>&}`{5r*`f4D{f0@eQjQey_LVB%?sl4@M=tfRF1&w
zeuM|}gDT6k>_RDM^+M<tTJBbZ(w+-oGkt30t;F^GcZHtAlg*$Qk_i#zwk7SoIZ=L`
zo_O6`Er?zq2C27U77zI_f{hME8i{I*mX#i;Z2);k0mmaP?|+J=K0mk<U}4Tq?gy@Y
z2$Z_Vj?oaZnX+kIeZF90O1)uZH2`%!*7>Q|l{n?W*jC-|dzp*7wtWR3EY9o-n@jsL
z;+g%qrJEqSRp9`D2PT`T5H9Ko%*OqY)xqy)F!Kw;4+qvY_%>hS*d+ctwVi*0l6^HM
z@c3U|`&G7McUwwtqG}jO$q4!<ZnESVT<9~o3<jo|IMQ0gR<{b83#7&xaKb{175r3>
z!2=x|OeWCy$SmL|;!@c8!1||<yutT!EQQ*4;?EKZhetQ)V$SxaZ7`5dNh-slg>sc$
zjPWFbm%35aXqT7z<d#qdVS4wj=#A4QlssZnyQHQ#-gdXSe=57fR!os1zgtQ5CMl<Q
zP=lNGg&u>{+-5@!YM?66GUBB)QMwbLMuHI^<aW4&KW;IC6ydj^MgyLstX{akzrSAk
z68TTIJAzptXjV7lnQ*(P+FrKQhoGKplVuxTh9FY=<Izz&Hbz*QsWeDkvL&4dKa1!`
z@e(q`IiBxRU9;pe;EMY$x1(#uKY{GpCdiR;7g_oe$_>Oa)Px>`T%>EX#3J{-=E5Wn
zi?=4fd$!J{yz2P%OXlIHpXqbrk4-0LW<KX@_zGPDF==Ah(au>u1(^e9Q3u?^!or+@
z%W85e<^euBwFymUPH}$v8A34B0y#*L6YpzlF-hX+8__`{G{-WaB~f?qxbp$i)<7_t
zC%A2QEPVv802TSKDRJU8C-YfKUo#zC=IhGcw}P1Jw__%TJR=<{eMFis7R8T07zmCq
zhg{~m)!@iI(pCLRE@cP~5{I9Uj?TS^B3Fo_{q$X&$mr9882{to>3@F%iNd*j-xr<D
zVav53>vbAf*b*qRG=m#X*zuaYm)`6fp-+>JH4ka%?CJD&xB=&9O;RKCCl2%`>>m?B
zncYAqk&gEoo5Ge)w9KwY@PilYiR4$L`FSbVm@Si--72?HMguKY1Yi8EMhIkoJam+H
zaB#m+CycSovZ$*&_2d>&vF0Buv=-r12i&x`=4CJ~;Yt@bNY8bRVs@i+odk8o1=<-j
zh=m(?32`n}bl4RPX;Gru#By?T-+%m=mU>cU{?BARW%Cn9b6F0Y>($XIW~EC2z-ale
z7ocb9x_IK!l6TCi6RE2t11YqYdU0}=5q{MEv}#A^&OF?*Q2YIYKt=l`0X!dTBSk=;
z3`~en_oIDP`IQ$?7+R^)5cF0Db@964DWV3XPknuVQ+}Ai-hs`{skyIossbrvP+(Ao
z77fV|7y6?dt)O;MkisjTe(TQGu}pCkcl80jI!)n3%U%Ux^K{vic|>K#VD3Ctx-iW0
z?DlkkWJ&Cwx;&&L>eMt_2bi7s9S7g9{LvN9!uIAmHl8rnbx3<cTC!QTm3Xbx7>>C$
z1e4p3tL+F>|E*II%X2$+(7|YSIL^5gYD>zFzp1Bn@*9@PI#RGZcYdg%WJ(*UYmjTu
zfMzi^Npd7DE&JDKXxvh;DMztb>&s~sWw@AbH5^Qnn*ypM!jYN=_WD7zY)avIQIE_A
zoWF_JQXi;%3x<uk{1fV6A{?n4ds$z&kWDf%FJvmfL&3dn^gSbItJ2>cPda~b45VK8
zuRIJHF}0DkUN*=XGaalBtDW@G-xSV=+H#!hGr~&E={R&KsT}2(YrsM#S6^_SvHMkA
z{xQOu591LO6f_@jDGQPS*YG`dHT&8Mea^jEn2n|0)V!mpYMbEk_(&N$lZYYr=`*Sc
z3&8RM+HggeA$b8hY32>#ybLtW;)=rhc!Mjq@m54D=5=Qc==%M&H!Fs>P;PN@`2_`v
z09&K$8%|z~6ab>nGdz4ZmP70uCE@+qPjTmAI^!R(PX`H?4=Rk*t~5fL0~6pM`;b>0
zfQGbCedIA^p#abX0_I;J0$2^>Dgd^WR})S5w&sP+(naof-Q6Vf0vE%kmCIBPtf4w4
zMC|;!VL;4KNji9zUCt>8XnuP#Z_rac9}ETc+8_ny4fq4=9t!aD=ALLhm;gioxDmTt
z6!`;re|wQ*d3iYl?EMgx{`=(%BS;~><yb!x?(CFQnsy7hc1THlVbya7_2_<@?&mkv
zXX7T&%|7BF;ReQ^8T8`4gUu(cksI^kbPAy;_IL*?4r_wB^Vx98)nfu70-lv@{@_?G
z6}R@I^_S<9Tmu@XfA2<34}rJsUK2r$kArzHPOq%G!u>tIo#wC4Gzqyq|ItQNW31(p
z;2%4P02|{!UN4dLWHprHwHnT30}(K+XH@MtV?p`5kEeru6#9D;6+w-yvFiE7<Ew!N
z^}%O^bQlb4HTqt4d0$WT;g_okJm`5(HV~c!<0X+u`~ps<456GXg>K4Y!f(NWCRv~{
zc(!Ht+wST(Js9kY=v!Jyi*6IsEjsaKVXOL{56P9KtF6bC`^C0f+OtkKmJYDbW&c^P
zSEy(QJD_#P3cz98-1snRr7N9*fYy(w)pu?pI-!e;_s#`XN!1F2G+zWO$j%aa48RtX
zmKNQZ{n<!5%Nz@4HIJo3p%lDp!Ee+rq#EY=K&pTs*Y=o$qkp1AQ8s_d5*F^@W9~*a
zPCt{!NO)an*0g8oAd|_PAkirPqb+(L2GBp-0?5uYpGfcHYkqZ}23P?xU{e)iCVp=&
zZV7zRDKpE+eaig&JeV8JYR0p89XZwALC;VXaQF0tH3rR2HN_lk6S4H8Wqc3=Jqb8I
zF~^Om0;P$p+6})t!w|yR!3CJ9@x^<tMNlV(tqf@WpFqz2&8H*|()e102?YMq2uw{O
z+Dg?ftr5!)IFL<;U_+4G)bky;&bx~$ZsMLoNB-sgbVwV}5BUwd0S^%`o$P=CV$e+q
z3{@QU_Zv^fx$T}Tu&cu?<<%|uwPaO<u`Y3RV1DeKlNKp@qpeR-QBmCU`8=I<m;t}~
zY#i)D*}eYqH65dK!wHB2_B<8fSMpLif4;+C0Zs%?{(}7ZbXVVq4`#$Uf6ZMth2#D1
ztf=|MM(+M$a8Mh#Tbq5+bm_TzJmUw3RS}FPD9yQ2e;8AvYpPRC;%O(2eb8tLceCAQ
z#XVYH#hx7gMmtg3cz~Rpa{FW}!D#*cSRwmc3vaw~sWk2Q-T1k6hS<nHGt*e3i&h7#
zv+Ar(t-Fq-sAmR;caA?|g=<fnKWIz6J(nvTD|iHQvzaf{S>;UJlUFXfrSA=PsBE!M
t=$LmG$6Wfyjq*;&!<X765YWeTCh*XOT04~c1vZ-jmrN`#R2#d;|3ANP4&eX*

diff --git a/Examples/Data/Textures/flag.png b/Examples/Data/Textures/flag.png
deleted file mode 100644
index 648432dfb2f3c9df0164b772700d40bfea2dd101..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 17390
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
Vlw6#aHG=>E002ovPDHLkV1n*b4E+EA

diff --git a/Examples/Data/Textures/mine.png b/Examples/Data/Textures/mine.png
deleted file mode 100644
index 6d3fab94d7fa5d2583a267dc284f9465a84ac80f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 40830
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

diff --git a/Examples/Data/Textures/swizzled-rock-diffuse-height.dds b/Examples/Data/Textures/swizzled-rock-diffuse-height.dds
deleted file mode 100644
index c7557fa067040fb83969f05f540735fd7a7a7270..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 349648
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

diff --git a/Examples/Data/Textures/swizzled-rock-normal-gloss.dds b/Examples/Data/Textures/swizzled-rock-normal-gloss.dds
deleted file mode 100644
index 5ca89a84e847d9056c8c11fc431140ae1809cef2..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 87536
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
b13I^MqU6UKixm|O2H=%++4JlUkc$03K_FCX

diff --git a/Examples/ExampleBrowser.Designer.cs b/Examples/ExampleBrowser.Designer.cs
deleted file mode 100644
index 5537c3d..0000000
--- a/Examples/ExampleBrowser.Designer.cs
+++ /dev/null
@@ -1,78 +0,0 @@
-namespace Examples
-{
-    partial class ExampleBrowser
-    {
-        /// <summary>
-        /// Required designer variable.
-        /// </summary>
-        private System.ComponentModel.IContainer components = null;
-
-        /// <summary>
-        /// Clean up any resources being used.
-        /// </summary>
-        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
-        protected override void Dispose(bool disposing)
-        {
-            if (disposing && (components != null))
-            {
-                components.Dispose();
-            }
-            base.Dispose(disposing);
-        }
-
-        #region Windows Form Designer generated code
-
-        /// <summary>
-        /// Required method for Designer support - do not modify
-        /// the contents of this method with the code editor.
-        /// </summary>
-        private void InitializeComponent()
-        {
-            this.treeViewExamples = new System.Windows.Forms.TreeView();
-            this.label1 = new System.Windows.Forms.Label();
-            this.SuspendLayout();
-            // 
-            // treeViewExamples
-            // 
-            this.treeViewExamples.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
-            | System.Windows.Forms.AnchorStyles.Left) 
-            | System.Windows.Forms.AnchorStyles.Right)));
-            this.treeViewExamples.Location = new System.Drawing.Point(12, 25);
-            this.treeViewExamples.Name = "treeViewExamples";
-            this.treeViewExamples.Size = new System.Drawing.Size(344, 297);
-            this.treeViewExamples.TabIndex = 1;
-            this.treeViewExamples.NodeMouseDoubleClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.TreeViewExamples_NodeMouseDoubleClick);
-            this.treeViewExamples.KeyDown += new System.Windows.Forms.KeyEventHandler(this.TreeViewExamples_KeyDown);
-            // 
-            // label1
-            // 
-            this.label1.AutoSize = true;
-            this.label1.Location = new System.Drawing.Point(12, 9);
-            this.label1.Name = "label1";
-            this.label1.Size = new System.Drawing.Size(185, 13);
-            this.label1.TabIndex = 0;
-            this.label1.Text = "Example projects: Double-click to run.";
-            // 
-            // ExampleBrowser
-            // 
-            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.ClientSize = new System.Drawing.Size(368, 334);
-            this.Controls.Add(this.label1);
-            this.Controls.Add(this.treeViewExamples);
-            this.KeyPreview = true;
-            this.Name = "ExampleBrowser";
-            this.Text = "ObjectTK example projects";
-            this.Load += new System.EventHandler(this.ExampleBrowser_Load);
-            this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.ExampleBrowser_KeyDown);
-            this.ResumeLayout(false);
-            this.PerformLayout();
-
-        }
-
-        #endregion
-
-        private System.Windows.Forms.TreeView treeViewExamples;
-        private System.Windows.Forms.Label label1;
-    }
-}
\ No newline at end of file
diff --git a/Examples/ExampleBrowser.cs b/Examples/ExampleBrowser.cs
deleted file mode 100644
index 9bb31d1..0000000
--- a/Examples/ExampleBrowser.cs
+++ /dev/null
@@ -1,76 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Reflection;
-using System.Windows.Forms;
-using ObjectTK;
-using OpenTK;
-
-namespace Examples
-{
-    public partial class ExampleBrowser
-        : Form
-    {
-        private Dictionary<string, Type> _examples;
-
-        public ExampleBrowser()
-        {
-            InitializeComponent();
-        }
-
-        private void ExampleBrowser_Load(object sender, EventArgs e)
-        {
-            // find example projects
-            var baseType = typeof (ExampleWindow);
-            var types = Assembly.GetExecutingAssembly().GetTypes().Where(_ => _ != baseType && baseType.IsAssignableFrom(_));
-            // add tree nodes for example projects
-            _examples = new Dictionary<string, Type>();
-            foreach (var type in types)
-            {
-                // find or create node for namespace
-                var existingNodes = treeViewExamples.Nodes.Find(type.Namespace, false);
-                var node = existingNodes.Length > 0
-                    ? existingNodes[0]
-                    : treeViewExamples.Nodes.Add(type.Namespace, type.Namespace);
-                // add node for this example and get the caption from the attribute
-                var captionAttribute = type.GetCustomAttributes<ExampleProjectAttribute>(false).FirstOrDefault();
-                node.Nodes.Add(type.Name, captionAttribute == null ? type.Name : captionAttribute.Caption);
-                // remember example type
-                _examples.Add(type.Name, type);
-            }
-            // show all examples
-            treeViewExamples.ExpandAll();
-        }
-
-        private void ExampleBrowser_KeyDown(object sender, KeyEventArgs e)
-        {
-            if (e.KeyCode == Keys.Escape) Close();
-        }
-
-        private void TreeViewExamples_KeyDown(object sender, KeyEventArgs e)
-        {
-            if (e.KeyCode == Keys.Enter) RunExample(treeViewExamples.SelectedNode);
-        }
-
-        private void TreeViewExamples_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e)
-        {
-            RunExample(e.Node);
-        }
-
-        private void RunExample(TreeNode node)
-        {
-            Type type;
-            if (!_examples.TryGetValue(node.Name, out type)) return;
-            // hide browser
-            Hide();
-            // run the example
-            using (var exampleWindow = (GameWindow)Activator.CreateInstance(type))
-            {
-                exampleWindow.Title = node.Text;
-                exampleWindow.Run();
-            }
-            // show the browser again
-            Show();
-        }
-    }
-}
diff --git a/Examples/ExampleBrowserEntry.cs b/Examples/ExampleBrowserEntry.cs
deleted file mode 100644
index 34f7011..0000000
--- a/Examples/ExampleBrowserEntry.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-using System;
-using System.Windows.Forms;
-using log4net.Config;
-
-namespace Examples
-{
-    public static class ExampleBrowserEntry
-    {
-        [STAThread]
-        public static void Main()
-        {
-            // initialize log4net via app.config if available
-            if (ObjectTK.Logging.LogFactory.IsAvailable)
-                ConfigureLogging();
-
-            // show example browser
-            using (var browser = new ExampleBrowser())
-            {
-                Application.Run(browser);
-            }
-        }
-
-        public static void ConfigureLogging()
-        {
-            XmlConfigurator.Configure();
-        }
-    }
-}
diff --git a/Examples/ExampleProjectAttribute.cs b/Examples/ExampleProjectAttribute.cs
deleted file mode 100644
index 77e1e92..0000000
--- a/Examples/ExampleProjectAttribute.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-using System;
-
-namespace Examples
-{
-    [AttributeUsage(AttributeTargets.Class)]
-    public class ExampleProjectAttribute
-        : Attribute
-    {
-        public readonly string Caption;
-
-        public ExampleProjectAttribute(string caption)
-        {
-            Caption = caption;
-        }
-    }
-}
\ No newline at end of file
diff --git a/Examples/ExampleWindow.cs b/Examples/ExampleWindow.cs
deleted file mode 100644
index b36e148..0000000
--- a/Examples/ExampleWindow.cs
+++ /dev/null
@@ -1,95 +0,0 @@
-using System;
-using ObjectTK;
-using ObjectTK.Shaders;
-using ObjectTK.Tools;
-using ObjectTK.Tools.Cameras;
-using OpenTK;
-using OpenTK.Graphics;
-using OpenTK.Input;
-
-namespace Examples
-{
-    /// <summary>
-    /// Provides common functionality for the examples.
-    /// </summary>
-    public class ExampleWindow
-        : DerpWindow
-    {
-        protected Camera Camera;
-        protected Matrix4 ModelView;
-        protected Matrix4 Projection;
-        protected string OriginalTitle { get; private set; }
-
-        public ExampleWindow()
-            : base(800, 600, GraphicsMode.Default, "")
-        {
-            // disable vsync
-            VSync = VSyncMode.Off;
-            // set up camera
-            Camera = new Camera();
-            Camera.SetBehavior(new ThirdPersonBehavior());
-            Camera.DefaultState.Position.Z = 5;
-            Camera.ResetToDefault();
-            Camera.Enable(this);
-            ResetMatrices();
-            // hook up events
-            Load += OnLoad;
-            Unload += OnUnload;
-            KeyDown += OnKeyDown;
-            RenderFrame += OnRenderFrame;
-        }
-
-        private void OnLoad(object sender, EventArgs e)
-        {
-            // maximize window
-            WindowState = WindowState.Maximized;
-            // remember original title
-            OriginalTitle = Title;
-            // set search path for shader files and extension
-            ProgramFactory.BasePath = "Data/Shaders/";
-            ProgramFactory.Extension = "glsl";
-        }
-
-        private void OnUnload(object sender, EventArgs e)
-        {
-            // release all gl resources on unload
-            GLResource.DisposeAll(this);
-        }
-
-        private void OnRenderFrame(object sender, FrameEventArgs e)
-        {
-            // display FPS in the window title
-            Title = string.Format("ObjectTK example: {0} - FPS {1}", OriginalTitle, FrameTimer.FpsBasedOnFramesRendered);
-        }
-
-        private void OnKeyDown(object sender, KeyboardKeyEventArgs e)
-        {
-            // close window on escape press
-            if (e.Key == Key.Escape) Close();
-            // reset camera to default position and orientation on R press
-            if (e.Key == Key.R) Camera.ResetToDefault();
-        }
-
-        /// <summary>
-        /// Resets the ModelView and Projection matrices to the identity.
-        /// </summary>
-        protected void ResetMatrices()
-        {
-            ModelView = Matrix4.Identity;
-            Projection = Matrix4.Identity;
-        }
-
-        /// <summary>
-        /// Sets a perspective projection matrix and applies the camera transformation on the modelview matrix.
-        /// </summary>
-        protected void SetupPerspective()
-        {
-            // setup perspective projection
-            var aspectRatio = Width / (float)Height;
-            Projection = Matrix4.CreatePerspectiveFieldOfView(MathHelper.PiOver4, aspectRatio, 0.1f, 1000);
-            ModelView = Matrix4.Identity;
-            // apply camera transform
-            ModelView = Camera.GetCameraTransform();
-        }
-    }
-}
\ No newline at end of file
diff --git a/Examples/Examples.csproj b/Examples/Examples.csproj
deleted file mode 100644
index 2490c61..0000000
--- a/Examples/Examples.csproj
+++ /dev/null
@@ -1,130 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProjectGuid>{B05720A6-8E0A-4D53-96D1-AA341AE0D0D5}</ProjectGuid>
-    <OutputType>WinExe</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>Examples</RootNamespace>
-    <AssemblyName>Examples</AssemblyName>
-    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <PlatformTarget>AnyCPU</PlatformTarget>
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <PlatformTarget>AnyCPU</PlatformTarget>
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="log4net, Version=1.2.13.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\log4net.2.0.3\lib\net40-full\log4net.dll</HintPath>
-    </Reference>
-    <Reference Include="OpenTK, Version=1.1.0.0, Culture=neutral, PublicKeyToken=bad199fe84eb3df4, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\OpenTK.1.1.1589.5942\lib\NET40\OpenTK.dll</HintPath>
-    </Reference>
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Drawing" />
-    <Reference Include="System.Windows.Forms" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="AdvancedExamples\FeedbackGravityExample.cs" />
-    <Compile Include="AdvancedExamples\LoaderDDS.cs" />
-    <Compile Include="AdvancedExamples\LoaderStatics.cs" />
-    <Compile Include="AdvancedExamples\ParallaxMappingExample.cs" />
-    <Compile Include="BasicExamples\RotatingTexturedCubeExample.cs" />
-    <Compile Include="BasicExamples\TextureGridExample.cs" />
-    <Compile Include="BasicExamples\SkyboxExample.cs" />
-    <Compile Include="ExampleProjectAttribute.cs" />
-    <Compile Include="Shaders\ParallaxProgram.cs" />
-    <Compile Include="Shaders\SimpleColorProgram.cs" />
-    <Compile Include="Shaders\SimpleTextureProgram.cs" />
-    <Compile Include="Shaders\ExampleProgram.cs" />
-    <Compile Include="AdvancedExamples\RenderToTextureExample.cs" />
-    <Compile Include="BasicExamples\BufferLayoutTexturingExample.cs" />
-    <Compile Include="BasicExamples\MinimalExample.cs" />
-    <Compile Include="ExampleBrowser.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Include="ExampleBrowser.Designer.cs">
-      <DependentUpon>ExampleBrowser.cs</DependentUpon>
-    </Compile>
-    <Compile Include="ExampleWindow.cs" />
-    <Compile Include="ExampleBrowserEntry.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="Shaders\SkyboxProgram.cs" />
-    <Compile Include="Shaders\GravityProgram.cs" />
-    <Compile Include="Shaders\TextureGridProgram.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="Data\Shaders\ExampleShader.glsl" />
-    <None Include="Data\Shaders\Gravity.glsl" />
-    <None Include="Data\Shaders\Parallax.glsl" />
-    <None Include="Data\Shaders\SimpleColor.glsl" />
-    <None Include="Data\Shaders\SimpleTexture.glsl" />
-    <None Include="app.config" />
-    <None Include="Data\Shaders\Skybox.glsl" />
-    <None Include="Data\Shaders\TextureGrid.glsl" />
-    <None Include="packages.config" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\ObjectTK.Compiler\ObjectTK.Compiler.csproj">
-      <Project>{abd0be84-792d-4f52-82e2-c869585b3c29}</Project>
-      <Name>ObjectTK.Compiler</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\ObjectTK.Tools\ObjectTK.Tools.csproj">
-      <Project>{E38997F8-7ECE-4B35-BB94-7E609F68D217}</Project>
-      <Name>ObjectTK.Tools</Name>
-    </ProjectReference>
-    <ProjectReference Include="..\ObjectTK\ObjectTK.csproj">
-      <Project>{0ee3347b-1bbe-44ca-8295-22da13ae914a}</Project>
-      <Name>ObjectTK</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <ItemGroup>
-    <Content Include="Data\Textures\checker.jpg" />
-    <Content Include="Data\Textures\city0.jpg" />
-    <Content Include="Data\Textures\city1.jpg" />
-    <Content Include="Data\Textures\city2.jpg" />
-    <Content Include="Data\Textures\city3.jpg" />
-    <Content Include="Data\Textures\city4.jpg" />
-    <Content Include="Data\Textures\city5.jpg" />
-    <Content Include="Data\Textures\crate.png" />
-    <Content Include="Data\Textures\empty.png" />
-    <Content Include="Data\Textures\flag.png" />
-    <Content Include="Data\Textures\mine.png" />
-    <Content Include="Data\Textures\swizzled-rock-diffuse-height.dds" />
-    <Content Include="Data\Textures\swizzled-rock-normal-gloss.dds" />
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <PropertyGroup>
-    <PostBuildEvent>rd /Q /S "$(TargetDir)Data"
-xcopy "$(ProjectDir)Data" "$(TargetDir)Data" /E /R /K /Y /I /D /H
-"$(TargetDir)ObjectTKC.exe" "$(TargetPath)"</PostBuildEvent>
-  </PropertyGroup>
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
-       Other similar extension points exist, see Microsoft.Common.targets.
-  <Target Name="BeforeBuild">
-  </Target>
-  <Target Name="AfterBuild">
-  </Target>
-  -->
-</Project>
\ No newline at end of file
diff --git a/Examples/Properties/AssemblyInfo.cs b/Examples/Properties/AssemblyInfo.cs
deleted file mode 100644
index 820304a..0000000
--- a/Examples/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("ObjectTK examples")]
-[assembly: AssemblyDescription("Examples to demonstrate usage of ObjectTK")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("JcBernack")]
-[assembly: AssemblyProduct("ObjectTK")]
-[assembly: AssemblyCopyright("Copyright © 2014-2015")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible 
-// to COM components.  If you need to access a type in this assembly from 
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("eb0408f7-0a84-44e6-8118-8fd02e0c5243")]
-
-// Version information for an assembly consists of the following four values:
-//
-//      Major Version
-//      Minor Version 
-//      Build Number
-//      Revision
-//
-[assembly: AssemblyVersion("1.0.*")]
diff --git a/Examples/Shaders/ExampleProgram.cs b/Examples/Shaders/ExampleProgram.cs
deleted file mode 100644
index 3d15ad6..0000000
--- a/Examples/Shaders/ExampleProgram.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-using ObjectTK.Shaders;
-using ObjectTK.Shaders.Sources;
-using ObjectTK.Shaders.Variables;
-using OpenTK;
-using OpenTK.Graphics.OpenGL;
-
-namespace Examples.Shaders
-{
-    [VertexShaderSource("ExampleShader.Vertex")]
-    [FragmentShaderSource("ExampleShader.Fragment")]
-    public class ExampleProgram
-        : Program
-    {
-        [VertexAttrib(3, VertexAttribPointerType.Float)]
-        public VertexAttrib InPosition { get; protected set; }
-
-        public Uniform<Matrix4> ModelViewProjectionMatrix { get; protected set; }
-    }
-}
\ No newline at end of file
diff --git a/Examples/Shaders/GravityProgram.cs b/Examples/Shaders/GravityProgram.cs
deleted file mode 100644
index 7efd1ff..0000000
--- a/Examples/Shaders/GravityProgram.cs
+++ /dev/null
@@ -1,32 +0,0 @@
-using ObjectTK.Shaders;
-using ObjectTK.Shaders.Sources;
-using ObjectTK.Shaders.Variables;
-using OpenTK;
-using OpenTK.Graphics.OpenGL;
-
-namespace Examples.Shaders
-{
-    [VertexShaderSource("Gravity.Vertex")]
-    [FragmentShaderSource("Gravity.Fragment")]
-    public class GravityProgram
-        : TransformProgram
-    {
-        public GravityProgram()
-        {
-            // define transform feedback varyings and add padding to achieve 16-byte alignment with 3-component vectors
-            FeedbackVaryings(TransformFeedbackMode.InterleavedAttribs, OutPosition, SkipComponents1, OutVelocity, SkipComponents1);
-        }
-
-        [VertexAttrib(3, VertexAttribPointerType.Float)]
-        public VertexAttrib InPosition { get; protected set; }
-        [VertexAttrib(3, VertexAttribPointerType.Float)]
-        public VertexAttrib InVelocity { get; protected set; }
-
-        public TransformOut OutPosition { get; protected set; }
-        public TransformOut OutVelocity { get; protected set; }
-
-        public Uniform<float> CenterMass { get; protected set; }
-        public Uniform<float> TimeStep { get; protected set; }
-        public Uniform<Matrix4> ModelViewProjectionMatrix { get; protected set; }
-    }
-}
\ No newline at end of file
diff --git a/Examples/Shaders/ParallaxProgram.cs b/Examples/Shaders/ParallaxProgram.cs
deleted file mode 100644
index 737d617..0000000
--- a/Examples/Shaders/ParallaxProgram.cs
+++ /dev/null
@@ -1,38 +0,0 @@
-using ObjectTK.Shaders;
-using ObjectTK.Shaders.Sources;
-using ObjectTK.Shaders.Variables;
-using ObjectTK.Textures;
-using OpenTK;
-using OpenTK.Graphics.OpenGL;
-
-namespace Examples.Shaders
-{
-    [VertexShaderSource("Parallax.Vertex")]
-    [FragmentShaderSource("Parallax.Fragment")]
-    public class ParallaxProgram
-        : Program
-    {
-        [VertexAttrib(3, VertexAttribPointerType.Float)]
-        public VertexAttrib InPosition { get; protected set; }
-        [VertexAttrib(3, VertexAttribPointerType.Float)]
-        public VertexAttrib InNormal { get; protected set; }
-        [VertexAttrib(3, VertexAttribPointerType.Float)]
-        public VertexAttrib InTangent { get; protected set; }
-        [VertexAttrib(2, VertexAttribPointerType.Float)]
-        public VertexAttrib InTexCoord { get; protected set; }
-
-        public Uniform<Matrix4> ModelViewMatrix { get; protected set; }
-        public Uniform<Matrix4> ModelViewProjectionMatrix { get; protected set; }
-        public Uniform<Matrix3> NormalMatrix { get; protected set; }
-
-        public Uniform<Vector3> Light_Position { get; protected set; }
-        public Uniform<Vector3> Camera_Position { get; protected set; }
-
-        public TextureUniform<Texture2D> Material_DiffuseAndHeight { get; protected set; }
-        public TextureUniform<Texture2D> Material_NormalAndGloss { get; protected set; }
-        public Uniform<Vector3> Material_ScaleBiasShininess { get; protected set; }
-
-        public Uniform<Vector3> Light_DiffuseColor { get; protected set; }
-        public Uniform<Vector3> Light_SpecularColor { get; protected set; }
-    }
-}
\ No newline at end of file
diff --git a/Examples/Shaders/SimpleColorProgram.cs b/Examples/Shaders/SimpleColorProgram.cs
deleted file mode 100644
index 67b1aa9..0000000
--- a/Examples/Shaders/SimpleColorProgram.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-using ObjectTK.Shaders;
-using ObjectTK.Shaders.Sources;
-using ObjectTK.Shaders.Variables;
-using OpenTK;
-using OpenTK.Graphics.OpenGL;
-
-namespace Examples.Shaders
-{
-    [VertexShaderSource("SimpleColor.Vertex")]
-    [FragmentShaderSource("SimpleColor.Fragment")]
-    public class SimpleColorProgram
-        : Program
-    {
-        [VertexAttrib(3, VertexAttribPointerType.Float)]
-        public VertexAttrib InPosition { get; protected set; }
-        [VertexAttrib(4, VertexAttribPointerType.UnsignedByte, true)]
-        public VertexAttrib InColor { get; protected set; }
-
-        public Uniform<Matrix4> ModelViewProjectionMatrix { get; protected set; }
-    }
-}
\ No newline at end of file
diff --git a/Examples/Shaders/SimpleTextureProgram.cs b/Examples/Shaders/SimpleTextureProgram.cs
deleted file mode 100644
index 4613e8e..0000000
--- a/Examples/Shaders/SimpleTextureProgram.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-using ObjectTK.Shaders;
-using ObjectTK.Shaders.Sources;
-using ObjectTK.Shaders.Variables;
-using ObjectTK.Textures;
-using OpenTK;
-using OpenTK.Graphics.OpenGL;
-
-namespace Examples.Shaders
-{
-    [VertexShaderSource("SimpleTexture.Vertex")]
-    [FragmentShaderSource("SimpleTexture.Fragment")]
-    public class SimpleTextureProgram
-        : Program
-    {
-        [VertexAttrib(3, VertexAttribPointerType.Float)]
-        public VertexAttrib InPosition { get; protected set; }
-        [VertexAttrib(2, VertexAttribPointerType.Float)]
-        public VertexAttrib InTexCoord { get; protected set; }
-
-        public Uniform<Matrix4> ModelViewProjectionMatrix { get; protected set; }
-
-        public TextureUniform<Texture2D> Texture { get; protected set; }
-        public Uniform<bool> RenderTexCoords { get; protected set; }
-    }
-}
\ No newline at end of file
diff --git a/Examples/Shaders/SkyboxProgram.cs b/Examples/Shaders/SkyboxProgram.cs
deleted file mode 100644
index 58ee6cf..0000000
--- a/Examples/Shaders/SkyboxProgram.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-using ObjectTK.Shaders;
-using ObjectTK.Shaders.Sources;
-using ObjectTK.Shaders.Variables;
-using ObjectTK.Textures;
-using OpenTK;
-using OpenTK.Graphics.OpenGL;
-
-namespace Examples.Shaders
-{
-    [VertexShaderSource("Skybox.Vertex")]
-    [FragmentShaderSource("Skybox.Fragment")]
-    public class SkyboxProgram
-        : Program
-    {
-        [VertexAttrib(3, VertexAttribPointerType.Float)]
-        public VertexAttrib InPosition { get; protected set; }
-
-        public Uniform<Matrix4> ModelViewProjectionMatrix { get; protected set; }
-        public TextureUniform<TextureCubemap> Texture { get; protected set; }
-    }
-}
\ No newline at end of file
diff --git a/Examples/Shaders/TextureGridProgram.cs b/Examples/Shaders/TextureGridProgram.cs
deleted file mode 100644
index 8cb2311..0000000
--- a/Examples/Shaders/TextureGridProgram.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-using ObjectTK.Shaders;
-using ObjectTK.Shaders.Sources;
-using ObjectTK.Shaders.Variables;
-using ObjectTK.Textures;
-using OpenTK;
-using OpenTK.Graphics.OpenGL;
-
-namespace Examples.Shaders
-{
-    [VertexShaderSource("TextureGrid.Vertex")]
-    [GeometryShaderSource("TextureGrid.Geometry")]
-    [FragmentShaderSource("TextureGrid.Fragment")]
-    public class TextureGridProgram
-        : Program
-    {
-        [VertexAttrib(2, VertexAttribPointerType.Float)]
-        public VertexAttrib InPosition { get; protected set; }
-        [VertexAttrib(1, VertexAttribPointerType.Float)]
-        public VertexAttrib InTexture { get; protected set; }
-
-        public Uniform<Matrix4> ModelViewProjectionMatrix { get; protected set; }
-        public TextureUniform<Texture2DArray> TextureData { get; protected set; }
-    }
-}
\ No newline at end of file
diff --git a/Examples/app.config b/Examples/app.config
deleted file mode 100644
index 7db8b13..0000000
--- a/Examples/app.config
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
-  <configSections>
-    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
-  </configSections>
-  <log4net>
-    <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
-      <param name="File" value="Log.txt"/>
-      <param name="AppendToFile" value="false"/>
-      <layout type="log4net.Layout.PatternLayout">
-        <param name="Header" value="[Application startup]&#xD;&#xA;" />
-        <param name="Footer" value="[Application shutdown]&#xD;&#xA;" />
-        <param name="ConversionPattern" value="%date [%thread] %-5level %class %message%newline" />
-      </layout>
-    </appender>
-    <root>
-      <level value="INFO"/>
-      <appender-ref ref="LogFileAppender"/>
-    </root>
-  </log4net>
-  <startup>
-    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
-  </startup>
-</configuration>
diff --git a/Examples/packages.config b/Examples/packages.config
deleted file mode 100644
index 338f3df..0000000
--- a/Examples/packages.config
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<packages>
-  <package id="log4net" version="2.0.3" targetFramework="net40" />
-  <package id="OpenTK" version="1.1.1589.5942" targetFramework="net40" />
-</packages>
\ No newline at end of file
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index 5341a84..0000000
--- a/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2019 Jan Christoph Bernack for the Open Toolkit project.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/ObjectTK.Compiler/ObjectTK.Compiler.csproj b/ObjectTK.Compiler/ObjectTK.Compiler.csproj
deleted file mode 100644
index 56d0f91..0000000
--- a/ObjectTK.Compiler/ObjectTK.Compiler.csproj
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProjectGuid>{ABD0BE84-792D-4F52-82E2-C869585B3C29}</ProjectGuid>
-    <OutputType>Exe</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>ObjectTK.Compiler</RootNamespace>
-    <AssemblyName>ObjectTKC</AssemblyName>
-    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <PlatformTarget>AnyCPU</PlatformTarget>
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <PlatformTarget>AnyCPU</PlatformTarget>
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="OpenTK, Version=1.1.0.0, Culture=neutral, PublicKeyToken=bad199fe84eb3df4, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\OpenTK.1.1.1589.5942\lib\NET40\OpenTK.dll</HintPath>
-    </Reference>
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="ShaderCompiler.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="app.config" />
-    <None Include="packages.config" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\ObjectTK\ObjectTK.csproj">
-      <Project>{0EE3347B-1BBE-44CA-8295-22DA13AE914A}</Project>
-      <Name>ObjectTK</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
-       Other similar extension points exist, see Microsoft.Common.targets.
-  <Target Name="BeforeBuild">
-  </Target>
-  <Target Name="AfterBuild">
-  </Target>
-  -->
-</Project>
\ No newline at end of file
diff --git a/ObjectTK.Compiler/Properties/AssemblyInfo.cs b/ObjectTK.Compiler/Properties/AssemblyInfo.cs
deleted file mode 100644
index 96df226..0000000
--- a/ObjectTK.Compiler/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,48 +0,0 @@
-#region License
-// ObjectTK License
-// Copyright (C) 2013-2015 J.C.Bernack
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program. If not, see <http://www.gnu.org/licenses/>.
-#endregion
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("ObjectTK ShaderCompiler")]
-[assembly: AssemblyDescription("Shader compiler for integrated GLSL shader validation in MSBuild and Visual Studio")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("JcBernack")]
-[assembly: AssemblyProduct("ObjectTK.Compiler")]
-[assembly: AssemblyCopyright("Copyright © 2014-2015")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible 
-// to COM components.  If you need to access a type in this assembly from 
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("8bac61da-d508-4a19-a865-8df2c3bbda59")]
-
-// Version information for an assembly consists of the following four values:
-//
-//      Major Version
-//      Minor Version 
-//      Build Number
-//      Revision
-//
-[assembly: AssemblyVersion("1.0.*")]
diff --git a/ObjectTK.Compiler/ShaderCompiler.cs b/ObjectTK.Compiler/ShaderCompiler.cs
deleted file mode 100644
index 1e4f7ac..0000000
--- a/ObjectTK.Compiler/ShaderCompiler.cs
+++ /dev/null
@@ -1,102 +0,0 @@
-//
-// ShaderCompiler.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System;
-using System.IO;
-using System.Linq;
-using System.Reflection;
-using System.Text.RegularExpressions;
-using ObjectTK.Exceptions;
-using ObjectTK.Shaders;
-using ObjectTK.Shaders.Sources;
-using OpenTK;
-
-namespace ObjectTK.Compiler
-{
-    /// <summary>
-    /// Compiles all shader programs contained in assemblies given per command line arguments and outputs errors in a MSBuild and Visual Studio friendly way.<br/>
-    /// </summary>
-    /// <remarks>
-    /// The easiest way to use this feature is to add a reference to ObjectTKC so that the executable gets copied to the output folder and add the following Post-build event:<br/>
-    /// "$(TargetDir)ObjectTKC.exe" "$(TargetPath)"
-    /// </remarks>
-    public class ShaderCompiler
-    {
-        // GLSL example error messages:
-        // ERROR: Data/Shaders/ExampleShader.glsl:21: error(#132) Syntax error: "d" parse error
-        // ERROR: error(#273) 1 compilation errors.  No code generated
-
-        /// <summary>
-        /// Matches essential parts of GLSL error messages.
-        /// </summary>
-        private static readonly Regex ErrorRegex = new Regex(@"^ERROR: (.+):(\d+): error\(#(\d+)\) (.*)$", RegexOptions.Multiline);
-
-        /// <summary>
-        /// Matches essential parts of GLSL warning messages.<br/>
-        /// TODO: currently untested
-        /// </summary>
-        private static readonly Regex WarningRegex = new Regex(@"^WARNING: (.+):(\d+): (.*)$", RegexOptions.Multiline);
-
-        /// <summary>
-        /// Reformats OpenGL information log to a MSBuild and Visual Studio friendly format. Makes errors and warnings apprear correctly in the "Error List" of Visual Studio.
-        /// </summary>
-        /// <param name="infoLog">OpenGL information log.</param>
-        private static string FormatInfoLog(string infoLog)
-        {
-            var log = ErrorRegex.Replace(infoLog, "$1($2): error $3: $4");
-            return WarningRegex.Replace(log, "$1($2): warning 0: $3");
-        }
-
-        public static void Main(string[] args)
-        {
-            // create a hidden GameWindow to initialize an OpenGL context
-            using (new GameWindow())
-            {
-                // iterate over given arguments
-                foreach (var path in args)
-                {
-                    // check if file exists
-                    if (!File.Exists(path))
-                    {
-                        Console.Out.WriteLine("{0}: error 0: ShaderCompiler: file not found", path);
-                        continue;
-                    }
-                    Console.Out.WriteLine("Compiling shaders of: {0}", path);
-                    // load assembly
-                    var assembly = Assembly.LoadFrom(path);
-                    // set working directory
-                    Directory.SetCurrentDirectory(Path.GetDirectoryName(assembly.Location));
-                    // iterate over all non-abstract shader programs
-                    foreach (var type in assembly.GetTypes().Where(_ => !_.IsAbstract && typeof(Program).IsAssignableFrom(_)))
-                    {
-                        // check if the program has any shader sources tagged to it
-                        if (ShaderSourceAttribute.GetShaderSources(type).Count == 0) continue;
-                        Console.Out.WriteLine("Compiling: {0}", type.FullName);
-                        // get generic program factory method
-                        var method = typeof(ProgramFactory).GetMethod("Create");
-                        var generic = method.MakeGenericMethod(type);
-                        try
-                        {
-                            // invoke program factory
-                            var program = (Program)generic.Invoke(null, null);
-                            program.Dispose();
-                        }
-                        catch (TargetInvocationException ex)
-                        {
-                            Console.Out.WriteLine(ex.InnerException.Message);
-                            // reformat OpenGL information log if existing
-                            var exception = ex.InnerException as ProgramException;
-                            if (exception != null) Console.Out.WriteLine(FormatInfoLog(exception.InfoLog));
-                        }
-                    }
-                }
-            }
-        }
-    }
-}
diff --git a/ObjectTK.Compiler/app.config b/ObjectTK.Compiler/app.config
deleted file mode 100644
index b04d010..0000000
--- a/ObjectTK.Compiler/app.config
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
-  <startup>
-    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
-  </startup>
-</configuration>
diff --git a/ObjectTK.Compiler/packages.config b/ObjectTK.Compiler/packages.config
deleted file mode 100644
index 725fa42..0000000
--- a/ObjectTK.Compiler/packages.config
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<packages>
-  <package id="OpenTK" version="1.1.1589.5942" targetFramework="net40" />
-</packages>
\ No newline at end of file
diff --git a/ObjectTK.Tools/Cameras/Camera.cs b/ObjectTK.Tools/Cameras/Camera.cs
deleted file mode 100644
index 6784c1d..0000000
--- a/ObjectTK.Tools/Cameras/Camera.cs
+++ /dev/null
@@ -1,122 +0,0 @@
-//
-// Camera.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System;
-using OpenTK;
-using OpenTK.Input;
-
-namespace ObjectTK.Tools.Cameras
-{
-    public class Camera
-    {
-        public CameraState State;
-        public CameraState DefaultState;
-        protected CameraBehavior Behavior;
-
-        public float MouseMoveSpeed = 0.005f;
-        public float MouseWheelSpeed = 0.1f;
-        public float MoveSpeed = 60;
-
-        public Camera()
-        {
-            State = new CameraState();
-            DefaultState = new CameraState();
-        }
-
-        public void ResetToDefault()
-        {
-            State.Position = DefaultState.Position;
-            State.LookAt = DefaultState.LookAt;
-            State.Up = DefaultState.Up;
-            Update();
-        }
-
-        public void SetBehavior(CameraBehavior behavior)
-        {
-            Behavior = behavior;
-            Update();
-        }
-
-        public void Enable(GameWindow window)
-        {
-            if (Behavior == null) throw new InvalidOperationException("Can not enable Camera while the Behavior is not set.");
-            window.UpdateFrame += UpdateFrame;
-            window.Mouse.Move += MouseMove;
-            window.Mouse.WheelChanged += MouseWheelChanged;
-        }
-
-        public void Disable(GameWindow window)
-        {
-            window.UpdateFrame -= UpdateFrame;
-            window.Mouse.Move -= MouseMove;
-            window.Mouse.WheelChanged -= MouseWheelChanged;
-        }
-
-        public void Update()
-        {
-            if (Behavior != null) Behavior.Initialize(State);
-        }
-
-        private void UpdateFrame(object sender, FrameEventArgs e)
-        {
-            Behavior.UpdateFrame(State, (float) e.Time * MoveSpeed);
-        }
-
-        private void MouseMove(object sender, MouseMoveEventArgs e)
-        {
-            Behavior.MouseMove(State, MouseMoveSpeed * new Vector2(e.XDelta, e.YDelta));
-        }
-        
-        private void MouseWheelChanged(object sender, MouseWheelEventArgs e)
-        {
-            Behavior.MouseWheelChanged(State, MouseWheelSpeed * e.DeltaPrecise);
-        }
-
-        /// <summary>
-        /// TODO: add smooth transitions for the CameraState variables
-        /// </summary>
-        public Matrix4 GetCameraTransform()
-        {
-            // kind of hack: prevent look-at and up directions to be parallel
-            if (Math.Abs(Vector3.Dot(State.Up, State.LookAt)) > 0.99999999999) State.LookAt += 0.001f * new Vector3(3,5,4);
-            return Matrix4.LookAt(State.Position, State.Position + State.LookAt, State.Up);
-        }
-
-        public override string ToString()
-        {
-            return string.Format("({0},{1})", State, Behavior);
-        }
-    }
-}
-
-// for later use..
-//public Vector3 GetPickingRay(int mouseX, int mouseY)
-//{
-//    const float fieldOfView = MathHelper.PiOver4;
-//    const float nearClippingPaneDistance = 1;
-//    var view = -Position;
-//    view.Normalize();
-//    var cameraUp = Vector3.UnitY;
-//    var h = Vector3.Cross(view, cameraUp);
-//    h.Normalize();
-//    var v = Vector3.Cross(h, view);
-//    v.Normalize();
-//    var vLength = (float)Math.Tan(fieldOfView / 2) * nearClippingPaneDistance;
-//    var hLength = vLength * ((float)_window.Width / _window.Height);
-//    v = v * vLength;
-//    h = h * hLength;
-//    //Vector3.Multiply(ref v, vLength, out v);
-//    //Vector3.Multiply(ref h, hLength, out h);
-//    // scale mouse position to [-1,1]
-//    var x = 2f * mouseX / _window.Width - 1;
-//    var y = 1 - 2f * mouseY / _window.Height;
-//    var pos = Position + view * nearClippingPaneDistance + h * x + v * y;
-//    var dir = pos - Position;
-//    return dir;
-//}
\ No newline at end of file
diff --git a/ObjectTK.Tools/Cameras/CameraBehavior.cs b/ObjectTK.Tools/Cameras/CameraBehavior.cs
deleted file mode 100644
index ebd968b..0000000
--- a/ObjectTK.Tools/Cameras/CameraBehavior.cs
+++ /dev/null
@@ -1,37 +0,0 @@
-//
-// CameraBehavior.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using OpenTK;
-
-namespace ObjectTK.Tools.Cameras
-{
-    public abstract class CameraBehavior
-    {
-        public virtual void Initialize(CameraState state) { }
-        public virtual void UpdateFrame(CameraState state, float step) { }
-        public virtual void MouseMove(CameraState state, Vector2 delta) { }
-        public virtual void MouseWheelChanged(CameraState state, float delta) { }
-
-        /// <summary>
-        /// TODO: add possibility to limit the pitch and prevent "flipping over"
-        /// </summary>
-        protected void HandleFreeLook(CameraState state, Vector2 delta)
-        {
-            var leftRight = Vector3.Cross(state.Up, state.LookAt);
-            var forward = Vector3.Cross(leftRight, state.Up);
-            // rotate look at direction
-            var rot = Matrix4.CreateFromAxisAngle(state.Up, -delta.X) * Matrix4.CreateFromAxisAngle(leftRight, delta.Y);
-            Vector3.Transform(ref state.LookAt, ref rot, out state.LookAt);
-            // renormalize to prevent summing up of floating point errors
-            state.LookAt.Normalize();
-            // flip up vector when pitched more than +/-90� from the forward direction
-            if (Vector3.Dot(state.LookAt, forward) < 0) state.Up *= -1;
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK.Tools/Cameras/CameraState.cs b/ObjectTK.Tools/Cameras/CameraState.cs
deleted file mode 100644
index 971e9c6..0000000
--- a/ObjectTK.Tools/Cameras/CameraState.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-//
-// CameraState.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using OpenTK;
-
-namespace ObjectTK.Tools.Cameras
-{
-    /// <summary>
-    /// Represents the state of a camera.<br/>
-    /// TODO: Maybe also add field-of-view and z-near/far plane parameter
-    /// </summary>
-    public class CameraState
-    {
-        public Vector3 Position;
-        public Vector3 LookAt;
-        public Vector3 Up;
-
-        public CameraState()
-        {
-            LookAt.Z = -1;
-            Up.Y = 1;
-        }
-
-        public override string ToString()
-        {
-            return string.Format((string) "({0},{1},{2})", (object) Position, (object) LookAt, (object) Up);
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK.Tools/Cameras/FreeLookAlignedBehavior.cs b/ObjectTK.Tools/Cameras/FreeLookAlignedBehavior.cs
deleted file mode 100644
index ecb95c9..0000000
--- a/ObjectTK.Tools/Cameras/FreeLookAlignedBehavior.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-//
-// FreeLookAlignedBehavior.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using OpenTK;
-
-namespace ObjectTK.Tools.Cameras
-{
-    public class FreeLookAlignedBehavior
-        : FreeLookBehavior
-    {
-        public Vector3 AlignmentPoint;
-
-        public override void UpdateFrame(CameraState state, float step)
-        {
-            base.UpdateFrame(state, step);
-            // update the up direction to always point away from the alignment point
-            var up = state.Position - AlignmentPoint;
-            up.Normalize();
-            // if the angle between the old and new up directions is larger than 90�
-            // we assume that the camera is upside down and keep it that way
-            state.Up = Vector3.Dot(state.Up, up) < 0 ? -up : up;
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK.Tools/Cameras/FreeLookBehavior.cs b/ObjectTK.Tools/Cameras/FreeLookBehavior.cs
deleted file mode 100644
index e2c4e90..0000000
--- a/ObjectTK.Tools/Cameras/FreeLookBehavior.cs
+++ /dev/null
@@ -1,42 +0,0 @@
-//
-// FreeLookBehavior.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using OpenTK;
-using OpenTK.Input;
-
-namespace ObjectTK.Tools.Cameras
-{
-    public class FreeLookBehavior
-        : CameraBehavior
-    {
-        public override void UpdateFrame(CameraState state, float step)
-        {
-            var keyboard = Keyboard.GetState();
-            var dir = Vector3.Zero;
-            var leftRight = Vector3.Cross(state.Up, state.LookAt).Normalized();
-            if (keyboard.IsKeyDown(Key.W)) dir += state.LookAt;
-            if (keyboard.IsKeyDown(Key.S)) dir -= state.LookAt;
-            if (keyboard.IsKeyDown(Key.A)) dir += leftRight;
-            if (keyboard.IsKeyDown(Key.D)) dir -= leftRight;
-            if (keyboard.IsKeyDown(Key.Space)) dir += state.Up;
-            if (keyboard.IsKeyDown(Key.LControl)) dir -= state.Up;
-            // normalize dir to enforce consistent movement speed, independent of the number of keys pressed
-            if (dir.LengthSquared > 0) state.Position += dir.Normalized() * step;
-        }
-
-        public override void MouseMove(CameraState state, Vector2 delta)
-        {
-            var mouse = Mouse.GetState();
-            if (mouse.IsButtonDown(MouseButton.Left))
-            {
-                HandleFreeLook(state, delta);
-            }
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK.Tools/Cameras/GimbalBehavior.cs b/ObjectTK.Tools/Cameras/GimbalBehavior.cs
deleted file mode 100644
index 65077ae..0000000
--- a/ObjectTK.Tools/Cameras/GimbalBehavior.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-//
-// GimbalBehavior.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using OpenTK;
-using OpenTK.Input;
-
-namespace ObjectTK.Tools.Cameras
-{
-    /// <summary>
-    /// TODO: Does not yet work like it should.
-    /// </summary>
-    public class GimbalBehavior
-        : ThirdPersonBehavior
-    {
-        public override void MouseMove(CameraState state, Vector2 delta)
-        {
-            var mouse = Mouse.GetState();
-            if (mouse.IsButtonDown(MouseButton.Left))
-            {
-                base.MouseMove(state, delta);
-                var leftRight = Vector3.Cross(state.Up, state.LookAt);
-                Vector3.Cross(ref state.LookAt, ref leftRight, out state.Up);
-                state.Up.Normalize();
-            }
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK.Tools/Cameras/ThirdPersonBehavior.cs b/ObjectTK.Tools/Cameras/ThirdPersonBehavior.cs
deleted file mode 100644
index dc3a7fd..0000000
--- a/ObjectTK.Tools/Cameras/ThirdPersonBehavior.cs
+++ /dev/null
@@ -1,54 +0,0 @@
-//
-// ThirdPersonBehavior.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using OpenTK;
-using OpenTK.Input;
-
-namespace ObjectTK.Tools.Cameras
-{
-    public class ThirdPersonBehavior
-        : CameraBehavior
-    {
-        public Vector3 Origin;
-
-        protected void UpdateDistance(CameraState state, float scale)
-        {
-            state.Position = Origin - (state.Position - Origin).Length * (1 + scale) * state.LookAt;
-        }
-
-        public override void Initialize(CameraState state)
-        {
-            // recalculate look at direction
-            state.LookAt = Origin - state.Position;
-            state.LookAt.Normalize();
-        }
-
-        public override void MouseMove(CameraState state, Vector2 delta)
-        {
-            var mouse = Mouse.GetState();
-            if (mouse.IsButtonDown(MouseButton.Left))
-            {
-                // rotate look direction with mouse
-                HandleFreeLook(state, delta);
-                // recalculate the position
-                UpdateDistance(state, 0);
-            }
-            if (mouse.IsButtonDown(MouseButton.Right))
-            {
-                UpdateDistance(state, delta.Y);
-            }
-        }
-
-        public override void MouseWheelChanged(CameraState state, float delta)
-        {
-            if (delta > 100) delta = 100;
-            UpdateDistance(state, -delta);
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK.Tools/DerpWindow.cs b/ObjectTK.Tools/DerpWindow.cs
deleted file mode 100644
index 9f82625..0000000
--- a/ObjectTK.Tools/DerpWindow.cs
+++ /dev/null
@@ -1,62 +0,0 @@
-//
-// DerpWindow.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System;
-using OpenTK;
-using OpenTK.Graphics;
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Tools
-{
-    /// <summary>
-    /// Provides basic functionality to an OpenTK GameWindow such as camera controls,
-    /// ModelView and Projection matrices and improved timing.
-    /// </summary>
-    public abstract class DerpWindow
-        : GameWindow
-    {
-        private static readonly Logging.IObjectTKLogger Logger = Logging.LogFactory.GetLogger(typeof(DerpWindow));
-
-        protected readonly FrameTimer FrameTimer;
-
-        /// <summary>
-        /// Initializes a new instance of the DerpWindow class.
-        /// </summary>
-        protected DerpWindow(int width, int height, GraphicsMode mode, string title)
-            : base(width, height, mode, title)
-        {
-            // log some OpenGL information
-            Logger?.Info("OpenGL context information:");
-            Logger?.InfoFormat("{0}: {1}", StringName.Vendor, GL.GetString(StringName.Vendor));
-            Logger?.InfoFormat("{0}: {1}", StringName.Renderer, GL.GetString(StringName.Renderer));
-            Logger?.InfoFormat("{0}: {1}", StringName.Version, GL.GetString(StringName.Version));
-            Logger?.InfoFormat("{0}: {1}", StringName.ShadingLanguageVersion, GL.GetString(StringName.ShadingLanguageVersion));
-            int numExtensions;
-            GL.GetInteger(GetPName.NumExtensions, out numExtensions);
-            Logger?.DebugFormat("Number available extensions: {0}", numExtensions);
-            for (var i = 0; i < numExtensions; i++) Logger?.DebugFormat("{0}: {1}", i, GL.GetString(StringNameIndexed.Extensions, i));
-            Logger?.InfoFormat("Initializing game window: {0}", title);
-            // set up GameWindow events
-            Resize += OnResize;
-            UpdateFrame += OnUpdateFrame;
-            // set up frame timer
-            FrameTimer = new FrameTimer();
-        }
-
-        private void OnResize(object sender, EventArgs eventArgs)
-        {
-            Logger?.InfoFormat("Window resized to: {0}x{1}", Width, Height);
-        }
-
-        private void OnUpdateFrame(object sender, FrameEventArgs e)
-        {
-            FrameTimer.Time();
-        }
-    }
-}
diff --git a/ObjectTK.Tools/FrameTimer.cs b/ObjectTK.Tools/FrameTimer.cs
deleted file mode 100644
index 81517e7..0000000
--- a/ObjectTK.Tools/FrameTimer.cs
+++ /dev/null
@@ -1,99 +0,0 @@
-//
-// FrameTimer.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System.Diagnostics;
-
-namespace ObjectTK.Tools
-{
-    /// <summary>
-    /// Handles frame timing and fps calculation.
-    /// </summary>
-    public class FrameTimer
-    {
-        /// <summary>
-        /// Total number of frames rendered.
-        /// </summary>
-        public int FramesRendered { get; private set; }
-
-        /// <summary>
-        /// Time spent for the last completed frame in milliseconds.
-        /// </summary>
-        public double FrameTime { get; private set; }
-
-        /// <summary>
-        /// Frames per second calculated from the time spent on the last frame.
-        /// </summary>
-        public double FpsBasedOnFrameTime { get; private set; }
-
-        /// <summary>
-        /// Frames per second calculated from the number of frames completed within the last second.
-        /// </summary>
-        public double FpsBasedOnFramesRendered { get; private set; }
-
-        /// <summary>
-        /// Total time running in milliseconds.
-        /// </summary>
-        public double TimeRunning { get; protected set; }
-
-        private readonly Stopwatch _stopwatch;
-        private double _elapsed;
-        private int _fpsFrameCounter;
-
-        private double _lastIntermediateTime;
-
-        /// <summary>
-        /// Initializes a new instance of the FrameTimer class.
-        /// </summary>
-        public FrameTimer()
-        {
-            _stopwatch = new Stopwatch();
-            //Application.Idle += (sender, args) => Time();
-            _stopwatch.Start();
-        }
-
-        /// <summary>
-        /// Calculates timings based on the intervals between subsequent calls. Call once each frame.<br/>
-        /// Determines frames per seconds and other statistics.
-        /// </summary>
-        public void Time()
-        {
-            // retrieve time spent since last frame
-            FrameTime = _stopwatch.Elapsed.TotalMilliseconds;
-            _stopwatch.Restart();
-            // count time running
-            TimeRunning += FrameTime;
-            // calculate fps based on time spent on one frame
-            FpsBasedOnFrameTime = (int) (1000/FrameTime);
-            // calculate fps based on frames rendered during one second
-            _elapsed += FrameTime;
-            _fpsFrameCounter++;
-            if (_elapsed > 1000)
-            {
-                _elapsed -= 1000;
-                FpsBasedOnFramesRendered = _fpsFrameCounter;
-                _fpsFrameCounter = 0;
-            }
-            // count frames rendered
-            FramesRendered++;
-            // reset intermediate timings
-            _lastIntermediateTime = 0;
-        }
-
-        /// <summary>
-        /// Calculates the interval between two subsequent calls in milliseconds.
-        /// </summary>
-        public double IntermediateTiming()
-        {
-            var elapsed = _stopwatch.Elapsed.TotalMilliseconds;
-            var time = elapsed - _lastIntermediateTime;
-            _lastIntermediateTime = elapsed;
-            return time;
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK.Tools/ObjectTK.Tools.csproj b/ObjectTK.Tools/ObjectTK.Tools.csproj
deleted file mode 100644
index 6b8226a..0000000
--- a/ObjectTK.Tools/ObjectTK.Tools.csproj
+++ /dev/null
@@ -1,90 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProjectGuid>{E38997F8-7ECE-4B35-BB94-7E609F68D217}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>ObjectTK.Tools</RootNamespace>
-    <AssemblyName>ObjectTK.Tools</AssemblyName>
-    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <TargetFrameworkProfile>
-    </TargetFrameworkProfile>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <PlatformTarget>AnyCPU</PlatformTarget>
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <Prefer32Bit>false</Prefer32Bit>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <PlatformTarget>AnyCPU</PlatformTarget>
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <Prefer32Bit>false</Prefer32Bit>
-  </PropertyGroup>
-  <PropertyGroup>
-    <StartupObject />
-  </PropertyGroup>
-  <ItemGroup>
-    <None Include="packages.config" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="Cameras\Camera.cs" />
-    <Compile Include="Cameras\CameraBehavior.cs" />
-    <Compile Include="Cameras\CameraState.cs" />
-    <Compile Include="Cameras\FreeLookAlignedBehavior.cs" />
-    <Compile Include="Cameras\FreeLookBehavior.cs" />
-    <Compile Include="Cameras\GimbalBehavior.cs" />
-    <Compile Include="Cameras\ThirdPersonBehavior.cs" />
-    <Compile Include="DerpWindow.cs" />
-    <Compile Include="FrameTimer.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="Shapes\Circle.cs" />
-    <Compile Include="Shapes\ColorCube.cs" />
-    <Compile Include="Shapes\ColoredShape.cs" />
-    <Compile Include="Shapes\Cube.cs" />
-    <Compile Include="Shapes\IndexedShape.cs" />
-    <Compile Include="Shapes\LayeredQuads.cs" />
-    <Compile Include="Shapes\Quad.cs" />
-    <Compile Include="Shapes\Rect.cs" />
-    <Compile Include="Shapes\Shape.cs" />
-    <Compile Include="Shapes\TexturedCube.cs" />
-    <Compile Include="Shapes\TexturedQuad.cs" />
-    <Compile Include="Shapes\TexturedShape.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <Reference Include="OpenTK, Version=1.1.0.0, Culture=neutral, PublicKeyToken=bad199fe84eb3df4, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\OpenTK.1.1.1589.5942\lib\NET40\OpenTK.dll</HintPath>
-    </Reference>
-    <Reference Include="System" />
-    <Reference Include="System.Drawing" />
-  </ItemGroup>
-  <ItemGroup>
-    <ProjectReference Include="..\ObjectTK\ObjectTK.csproj">
-      <Project>{0EE3347B-1BBE-44CA-8295-22DA13AE914A}</Project>
-      <Name>ObjectTK</Name>
-    </ProjectReference>
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
-       Other similar extension points exist, see Microsoft.Common.targets.
-  <Target Name="BeforeBuild">
-  </Target>
-  <Target Name="AfterBuild">
-  </Target>
-  -->
-</Project>
\ No newline at end of file
diff --git a/ObjectTK.Tools/Properties/AssemblyInfo.cs b/ObjectTK.Tools/Properties/AssemblyInfo.cs
deleted file mode 100644
index 082e496..0000000
--- a/ObjectTK.Tools/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,48 +0,0 @@
-#region License
-// ObjectTK License
-// Copyright (C) 2013-2015 J.C.Bernack
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program. If not, see <http://www.gnu.org/licenses/>.
-#endregion
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("ObjectTK Tools")]
-[assembly: AssemblyDescription("Additional features to complement ObjectTK")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("JcBernack")]
-[assembly: AssemblyProduct("ObjectTK.Tools")]
-[assembly: AssemblyCopyright("Copyright © 2013-2015")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible 
-// to COM components.  If you need to access a type in this assembly from 
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("8133d931-0992-47fd-b4a0-f7ee832615cd")]
-
-// Version information for an assembly consists of the following four values:
-//
-//      Major Version
-//      Minor Version 
-//      Build Number
-//      Revision
-//
-[assembly: AssemblyVersion("1.0.*")]
\ No newline at end of file
diff --git a/ObjectTK.Tools/Shapes/Circle.cs b/ObjectTK.Tools/Shapes/Circle.cs
deleted file mode 100644
index 3c4cabc..0000000
--- a/ObjectTK.Tools/Shapes/Circle.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-//
-// Circle.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System;
-using OpenTK;
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Tools.Shapes
-{
-    public class Circle
-        : Shape
-    {
-        public Circle(float radius)
-        {
-            DefaultMode = PrimitiveType.TriangleFan;
-            const int z = 0;
-            const int slices = 64;
-            const float dtheta = MathHelper.TwoPi / (slices - 1);
-            var theta = 0f;
-            Vertices = new Vector3[slices+1];
-            Vertices[0] = new Vector3(0, 0, z);
-            for (var i = 0; i < slices; i++)
-            {
-                Vertices[i+1] = new Vector3((float)Math.Cos(theta) * radius, (float)Math.Sin(theta) * radius, z);
-                theta += dtheta;
-            }
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK.Tools/Shapes/ColorCube.cs b/ObjectTK.Tools/Shapes/ColorCube.cs
deleted file mode 100644
index 0446e94..0000000
--- a/ObjectTK.Tools/Shapes/ColorCube.cs
+++ /dev/null
@@ -1,45 +0,0 @@
-//
-// ColorCube.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System.Collections.Generic;
-using System.Drawing;
-using System.Linq;
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Tools.Shapes
-{
-    public class ColorCube
-        : ColoredShape
-    {
-        public ColorCube()
-        {
-            DefaultMode = PrimitiveType.Triangles;
-
-            // use default cube
-            using (var cube = new Cube())
-            {
-                Vertices = cube.Vertices;
-                Indices = cube.Indices;
-            }
-
-            // add color to the vertices
-            Colors = new List<Color>
-            {
-                Color.DarkRed,
-                Color.DarkRed,
-                Color.Gold,
-                Color.Gold,
-                Color.DarkRed,
-                Color.DarkRed,
-                Color.Gold,
-                Color.Gold
-            }.Select(_ => _.ToRgba32()).ToArray();
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK.Tools/Shapes/ColoredShape.cs b/ObjectTK.Tools/Shapes/ColoredShape.cs
deleted file mode 100644
index c9731d7..0000000
--- a/ObjectTK.Tools/Shapes/ColoredShape.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-//
-// ColoredShape.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using ObjectTK.Buffers;
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Tools.Shapes
-{
-    public abstract class ColoredShape
-        : IndexedShape
-    {
-        public uint[] Colors { get; protected set; }
-        public Buffer<uint> ColorBuffer { get; protected set; }
-
-        public override void UpdateBuffers()
-        {
-            base.UpdateBuffers();
-            ColorBuffer = new Buffer<uint>();
-            ColorBuffer.Init(BufferTarget.ArrayBuffer, Colors);
-        }
-
-        protected override void Dispose(bool manual)
-        {
-            base.Dispose(manual);
-            if (!manual) return;
-            if (ColorBuffer != null) ColorBuffer.Dispose();
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK.Tools/Shapes/Cube.cs b/ObjectTK.Tools/Shapes/Cube.cs
deleted file mode 100644
index e16c92c..0000000
--- a/ObjectTK.Tools/Shapes/Cube.cs
+++ /dev/null
@@ -1,51 +0,0 @@
-//
-// Cube.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using OpenTK;
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Tools.Shapes
-{
-    public class Cube
-        : IndexedShape
-    {
-        public Cube()
-        {
-            DefaultMode = PrimitiveType.Triangles;
-
-            Vertices = new[]
-            {
-                new Vector3(-1.0f, -1.0f,  1.0f),
-                new Vector3( 1.0f, -1.0f,  1.0f),
-                new Vector3( 1.0f,  1.0f,  1.0f),
-                new Vector3(-1.0f,  1.0f,  1.0f),
-                new Vector3(-1.0f, -1.0f, -1.0f),
-                new Vector3( 1.0f, -1.0f, -1.0f),
-                new Vector3( 1.0f,  1.0f, -1.0f),
-                new Vector3(-1.0f,  1.0f, -1.0f)
-            };
-            
-            Indices = new uint[]
-            {
-                // front face
-                0, 1, 2, 2, 3, 0,
-                // top face
-                3, 2, 6, 6, 7, 3,
-                // back face
-                7, 6, 5, 5, 4, 7,
-                // left face
-                4, 0, 3, 3, 7, 4,
-                // bottom face
-                5, 1, 0, 0, 4, 5,
-                // right face
-                1, 5, 6, 6, 2, 1
-            };
-        }
-    }
-}
diff --git a/ObjectTK.Tools/Shapes/IndexedShape.cs b/ObjectTK.Tools/Shapes/IndexedShape.cs
deleted file mode 100644
index 388a875..0000000
--- a/ObjectTK.Tools/Shapes/IndexedShape.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-//
-// IndexedShape.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using ObjectTK.Buffers;
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Tools.Shapes
-{
-    public abstract class IndexedShape
-        : Shape
-    {
-        public uint[] Indices { get; protected set; }
-        public Buffer<uint> IndexBuffer { get; protected set; }
-
-        public override void UpdateBuffers()
-        {
-            base.UpdateBuffers();
-            IndexBuffer = new Buffer<uint>();
-            IndexBuffer.Init(BufferTarget.ElementArrayBuffer, Indices);
-        }
-
-        protected override void Dispose(bool manual)
-        {
-            base.Dispose(manual);
-            if (!manual) return;
-            if (IndexBuffer != null) IndexBuffer.Dispose();
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK.Tools/Shapes/LayeredQuads.cs b/ObjectTK.Tools/Shapes/LayeredQuads.cs
deleted file mode 100644
index 0cfafec..0000000
--- a/ObjectTK.Tools/Shapes/LayeredQuads.cs
+++ /dev/null
@@ -1,38 +0,0 @@
-//
-// LayeredQuads.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using OpenTK;
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Tools.Shapes
-{
-    public class LayeredQuads
-        : IndexedShape
-    {
-        public LayeredQuads(int layers)
-        {
-            DefaultMode = PrimitiveType.Triangles;
-            const float size = 1;
-            var z = -size / 2f;
-            var step = size / (layers-1);
-            Vertices = new Vector3[4*layers];
-            Indices = new uint[6*layers];
-            var order = new uint[]{ 0, 1, 2, 2, 3, 0 };
-            for (uint i = 0; i < layers; ++i)
-            {
-                Vertices[i * 4 + 0] = new Vector3(-size / 2, -size / 2, z);
-                Vertices[i * 4 + 1] = new Vector3(+size / 2, -size / 2, z);
-                Vertices[i * 4 + 2] = new Vector3(+size / 2, +size / 2, z);
-                Vertices[i * 4 + 3] = new Vector3(-size / 2, +size / 2, z);
-                for (uint j = 0; j < 6; j++) Indices[i * 6 + j] = i*4 + order[j];
-                z += step;
-            }
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK.Tools/Shapes/Quad.cs b/ObjectTK.Tools/Shapes/Quad.cs
deleted file mode 100644
index df6f760..0000000
--- a/ObjectTK.Tools/Shapes/Quad.cs
+++ /dev/null
@@ -1,34 +0,0 @@
-//
-// Quad.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using OpenTK;
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Tools.Shapes
-{
-    public class Quad
-        : Shape
-    {
-        public Quad()
-        {
-            DefaultMode = PrimitiveType.TriangleStrip;
-            
-            // Source: http://www.opengl.org/archives/resources/faq/technical/transformations.htm (9.090 How do I draw a full-screen quad?)
-            // Your rectangle or quad's Z value should be in the range of –1.0 to 1.0, with –1.0 mapping to the zNear clipping plane, and 1.0 to the zFar clipping plane.
-            const int z = 0;
-            Vertices = new[]
-            {
-                new Vector3(-1, -1, z),
-                new Vector3( 1, -1, z),
-                new Vector3(-1,  1, z),
-                new Vector3( 1,  1, z)
-            };
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK.Tools/Shapes/Rect.cs b/ObjectTK.Tools/Shapes/Rect.cs
deleted file mode 100644
index 2aff09d..0000000
--- a/ObjectTK.Tools/Shapes/Rect.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-//
-// Rect.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using OpenTK;
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Tools.Shapes
-{
-    public class Rect
-        : Shape
-    {
-        public Rect(float right, float top)
-            : this(-1, -1, right, top)
-        {
-        }
-
-        public Rect(float left, float bottom, float right, float top)
-        {
-            DefaultMode = PrimitiveType.LineLoop;
-            const int z = 0;
-            Vertices = new[]
-            {
-                new Vector3(left, bottom, z),
-                new Vector3(right, bottom, z),
-                new Vector3(right, top, z),
-                new Vector3(left, top, z)
-            };
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK.Tools/Shapes/Shape.cs b/ObjectTK.Tools/Shapes/Shape.cs
deleted file mode 100644
index e26bf8c..0000000
--- a/ObjectTK.Tools/Shapes/Shape.cs
+++ /dev/null
@@ -1,44 +0,0 @@
-//
-// Shape.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using ObjectTK.Buffers;
-using OpenTK;
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Tools.Shapes
-{
-    /// <summary>
-    /// TODO: needs a total refactoring
-    /// does not prevent multiple calls to UpdateBuffers() and causes resource leaks
-    /// does not fit well to an inheritance chain
-    /// there may be a shape just with vertices
-    /// there may be an indexed shape with vertices and indices
-    /// there may be a colored, indexed shape with vertices, indices and colors
-    /// there may be a colored shape with vertices and colors but no indices...
-    /// </summary>
-    public abstract class Shape
-        : GLResource
-    {
-        public PrimitiveType DefaultMode { get; set; }
-        public Vector3[] Vertices { get; protected set; }
-        public Buffer<Vector3> VertexBuffer { get; protected set; }
-
-        public virtual void UpdateBuffers()
-        {
-            VertexBuffer = new Buffer<Vector3>();
-            VertexBuffer.Init(BufferTarget.ArrayBuffer, Vertices);
-        }
-
-        protected override void Dispose(bool manual)
-        {
-            if (!manual) return;
-            if (VertexBuffer != null) VertexBuffer.Dispose();
-        }
-    }
-}
diff --git a/ObjectTK.Tools/Shapes/TexturedCube.cs b/ObjectTK.Tools/Shapes/TexturedCube.cs
deleted file mode 100644
index cec25d5..0000000
--- a/ObjectTK.Tools/Shapes/TexturedCube.cs
+++ /dev/null
@@ -1,45 +0,0 @@
-//
-// TexturedCube.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using OpenTK;
-using OpenTK.Graphics.OpenGL;
-using System.Linq;
-
-namespace ObjectTK.Tools.Shapes
-{
-    public class TexturedCube
-        : TexturedShape
-    {
-        public TexturedCube()
-        {
-            DefaultMode = PrimitiveType.Triangles;
-
-            var quad_uv_map = new[]
-            {
-                new Vector2(0, 0),
-                new Vector2(0, 1),
-                new Vector2(1, 1),
-                new Vector2(1, 1),
-                new Vector2(1, 0),
-                new Vector2(0, 0),
-            };
-
-            // use default cube
-            using (var cube = new Cube())
-            {
-                // Cube uses indexed vertices, TexturedShape assumes a flat vertices array
-                // So we need to assemble the missing vertices ourself
-                Vertices = cube.Indices.Select(idx => cube.Vertices[idx]).ToArray();
-
-                // Use predefined uv texture mapping for vertices
-                TexCoords = Enumerable.Range(0, Vertices.Length).Select(i => quad_uv_map[i % quad_uv_map.Length]).ToArray();
-            }
-        }
-    }
-}
diff --git a/ObjectTK.Tools/Shapes/TexturedQuad.cs b/ObjectTK.Tools/Shapes/TexturedQuad.cs
deleted file mode 100644
index ebb78da..0000000
--- a/ObjectTK.Tools/Shapes/TexturedQuad.cs
+++ /dev/null
@@ -1,42 +0,0 @@
-//
-// TexturedQuad.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using OpenTK;
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Tools.Shapes
-{
-    public class TexturedQuad
-        : TexturedShape
-    {
-        public TexturedQuad()
-        {
-            DefaultMode = PrimitiveType.TriangleStrip;
-            
-            // Source: http://www.opengl.org/archives/resources/faq/technical/transformations.htm (9.090 How do I draw a full-screen quad?)
-            // Your rectangle or quad's Z value should be in the range of –1.0 to 1.0, with –1.0 mapping to the zNear clipping plane, and 1.0 to the zFar clipping plane.
-            const int z = 0;
-            Vertices = new[]
-            {
-                new Vector3(-1, -1, z),
-                new Vector3( 1, -1, z),
-                new Vector3(-1,  1, z),
-                new Vector3( 1,  1, z)
-            };
-            
-            TexCoords = new[]
-            {
-                new Vector2(0,0),
-                new Vector2(1,0),
-                new Vector2(0,1),
-                new Vector2(1,1)
-            };
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK.Tools/Shapes/TexturedShape.cs b/ObjectTK.Tools/Shapes/TexturedShape.cs
deleted file mode 100644
index ad122fc..0000000
--- a/ObjectTK.Tools/Shapes/TexturedShape.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-//
-// TexturedShape.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using ObjectTK.Buffers;
-using OpenTK;
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Tools.Shapes
-{
-    public abstract class TexturedShape
-        : Shape
-    {
-        public Vector2[] TexCoords { get; protected set; }
-        public Buffer<Vector2> TexCoordBuffer { get; protected set; }
-
-        public override void UpdateBuffers()
-        {
-            base.UpdateBuffers();
-            TexCoordBuffer = new Buffer<Vector2>();
-            TexCoordBuffer.Init(BufferTarget.ArrayBuffer, TexCoords);
-        }
-
-        protected override void Dispose(bool manual)
-        {
-            base.Dispose(manual);
-            if (TexCoordBuffer != null) TexCoordBuffer.Dispose();
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK.Tools/packages.config b/ObjectTK.Tools/packages.config
deleted file mode 100644
index 725fa42..0000000
--- a/ObjectTK.Tools/packages.config
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<packages>
-  <package id="OpenTK" version="1.1.1589.5942" targetFramework="net40" />
-</packages>
\ No newline at end of file
diff --git a/ObjectTK.sln b/ObjectTK.sln
deleted file mode 100644
index 93682a5..0000000
--- a/ObjectTK.sln
+++ /dev/null
@@ -1,45 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2013
-VisualStudioVersion = 12.0.31101.0
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ObjectTK", "ObjectTK\ObjectTK.csproj", "{0EE3347B-1BBE-44CA-8295-22DA13AE914A}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Examples", "Examples\Examples.csproj", "{B05720A6-8E0A-4D53-96D1-AA341AE0D0D5}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{F291BD61-42A4-4FBC-B05C-C24BC97EB2EE}"
-	ProjectSection(SolutionItems) = preProject
-		README.md = README.md
-	EndProjectSection
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ObjectTK.Tools", "ObjectTK.Tools\ObjectTK.Tools.csproj", "{E38997F8-7ECE-4B35-BB94-7E609F68D217}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ObjectTK.Compiler", "ObjectTK.Compiler\ObjectTK.Compiler.csproj", "{ABD0BE84-792D-4F52-82E2-C869585B3C29}"
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|Any CPU = Debug|Any CPU
-		Release|Any CPU = Release|Any CPU
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{0EE3347B-1BBE-44CA-8295-22DA13AE914A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{0EE3347B-1BBE-44CA-8295-22DA13AE914A}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{0EE3347B-1BBE-44CA-8295-22DA13AE914A}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{0EE3347B-1BBE-44CA-8295-22DA13AE914A}.Release|Any CPU.Build.0 = Release|Any CPU
-		{B05720A6-8E0A-4D53-96D1-AA341AE0D0D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{B05720A6-8E0A-4D53-96D1-AA341AE0D0D5}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{B05720A6-8E0A-4D53-96D1-AA341AE0D0D5}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{B05720A6-8E0A-4D53-96D1-AA341AE0D0D5}.Release|Any CPU.Build.0 = Release|Any CPU
-		{E38997F8-7ECE-4B35-BB94-7E609F68D217}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{E38997F8-7ECE-4B35-BB94-7E609F68D217}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{E38997F8-7ECE-4B35-BB94-7E609F68D217}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{E38997F8-7ECE-4B35-BB94-7E609F68D217}.Release|Any CPU.Build.0 = Release|Any CPU
-		{ABD0BE84-792D-4F52-82E2-C869585B3C29}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{ABD0BE84-792D-4F52-82E2-C869585B3C29}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{ABD0BE84-792D-4F52-82E2-C869585B3C29}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{ABD0BE84-792D-4F52-82E2-C869585B3C29}.Release|Any CPU.Build.0 = Release|Any CPU
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-EndGlobal
diff --git a/ObjectTK.sln.DotSettings b/ObjectTK.sln.DotSettings
deleted file mode 100644
index 38f2b95..0000000
--- a/ObjectTK.sln.DotSettings
+++ /dev/null
@@ -1,19 +0,0 @@
-<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
-	<s:String x:Key="/Default/CodeStyle/CodeCleanup/Profiles/=Insert_0020Header/@EntryIndexedValue">&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;Profile name="Insert Header"&gt;&lt;CSUpdateFileHeader&gt;True&lt;/CSUpdateFileHeader&gt;&lt;XAMLCollapseEmptyTags&gt;False&lt;/XAMLCollapseEmptyTags&gt;&lt;/Profile&gt;</s:String>
-	<s:String x:Key="/Default/CodeStyle/FileHeader/FileHeaderRegionName/@EntryValue">License</s:String>
-	<s:String x:Key="/Default/CodeStyle/FileHeader/FileHeaderText/@EntryValue">$SOLUTION$ License&#xD;
-Copyright (C) 2013-2015 J.C.Bernack&#xD;
-&#xD;
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.&#xD;
-&#xD;
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.&#xD;
-&#xD;
-You should have received a copy of the GNU General Public License
-along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</s:String>
-	<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/Abbreviations/=TK/@EntryIndexedValue">TK</s:String></wpf:ResourceDictionary>
\ No newline at end of file
diff --git a/ObjectTK/Buffers/Buffer.cs b/ObjectTK/Buffers/Buffer.cs
deleted file mode 100644
index bd165cd..0000000
--- a/ObjectTK/Buffers/Buffer.cs
+++ /dev/null
@@ -1,259 +0,0 @@
-//
-// Buffer.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System;
-using System.Runtime.InteropServices;
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Buffers
-{
-    /// <summary>
-    /// Represents a buffer object.
-    /// </summary>
-    /// <typeparam name="T">The type of elements in the buffer object.</typeparam>
-    public class Buffer<T>
-        : GLObject
-        where T : struct
-    {
-        /// <summary>
-        /// A value indicating whether the buffer has been initialized and thus has access to allocated memory.
-        /// </summary>
-        public bool Initialized { get; private set; }
-
-        /// <summary>
-        /// The size in bytes of one element within the buffer.
-        /// </summary>
-        public int ElementSize { get; protected set; }
-        
-        /// <summary>
-        /// The number of elements for which buffer memory was allocated.
-        /// </summary>
-        public int ElementCount { get; private set; }
-
-        /// <summary>
-        /// The index to the element which will be written to on the next usage of SubData().
-        /// </summary>
-        public int CurrentElementIndex { get; set; }
-
-        /// <summary>
-        /// The number of elements with data explicitly written.
-        /// </summary>
-        public int ActiveElementCount { get; set; }
-
-        /// <summary>
-        /// Retrieves data back from vram.
-        /// Mainly for debugging purposes.
-        /// </summary>
-        public T[] Content
-        {
-            get
-            {
-                var items = new T[ElementCount];
-                GL.BindBuffer(BufferTarget.ArrayBuffer, Handle);
-                GL.GetBufferSubData(BufferTarget.ArrayBuffer, IntPtr.Zero, (IntPtr)(ElementSize * ElementCount), items);
-                return items;
-            }
-        }
-
-        /// <summary>
-        /// Creates a new, uninitialized buffer object using an explicitly given element size in bytes.
-        /// </summary>
-        public Buffer(int elementSize)
-            : base(GL.GenBuffer())
-        {
-            Initialized = false;
-            ElementSize = elementSize;
-        }
-
-        /// <summary>
-        /// Creates a new, uninitialized buffer object using the element size determined by Marshal.SizeOf().
-        /// </summary>
-        public Buffer()
-            : this(Marshal.SizeOf(typeof(T)))
-        {
-        }
-
-        protected override void Dispose(bool manual)
-        {
-            if (!manual) return;
-            GL.DeleteBuffer(Handle);
-        }
-
-        /// <summary>
-        /// Allocates buffer memory and uploads given data to it.
-        /// </summary>
-        /// <param name="bufferTarget">The BufferTarget to use when binding the buffer.</param>
-        /// <param name="data">The data to be transfered into the buffer.</param>
-        /// <param name="usageHint">The usage hint of the buffer object.</param>
-        public void Init(BufferTarget bufferTarget, T[] data, BufferUsageHint usageHint = BufferUsageHint.StaticDraw)
-        {
-            Init(bufferTarget, data.Length, data, usageHint);
-            ActiveElementCount = data.Length;
-            CurrentElementIndex = 0;
-        }
-
-        /// <summary>
-        /// Allocates buffer memory without initializing it.
-        /// </summary>
-        /// <param name="bufferTarget">The BufferTarget to use when binding the buffer.</param>
-        /// <param name="elementCount">The number of elements to allocate memory for.</param>
-        /// <param name="usageHint">The usage hint of the buffer object.</param>
-        public void Init(BufferTarget bufferTarget, int elementCount, BufferUsageHint usageHint = BufferUsageHint.StaticDraw)
-        {
-            Init(bufferTarget, elementCount, null, usageHint);
-            ActiveElementCount = 0;
-            CurrentElementIndex = 0;
-        }
-
-        /// <summary>
-        /// Allocates buffer memory and initializes it to the given data.
-        /// </summary>
-        /// <param name="bufferTarget">The BufferTarget to use when binding the buffer.</param>
-        /// <param name="elementCount">The number of elements to allocate memory for.</param>
-        /// <param name="data">The data to upload into the buffer.</param>
-        /// <param name="usageHint">The usage hint of the buffer object.</param>
-        protected void Init(BufferTarget bufferTarget, int elementCount, T[] data, BufferUsageHint usageHint)
-        {
-            Initialized = true;
-            ElementCount = elementCount;
-            var fullSize = elementCount * ElementSize;
-            GL.BindBuffer(bufferTarget, Handle);
-            GL.BufferData(bufferTarget, (IntPtr)fullSize, data, usageHint);
-            CheckBufferSize(bufferTarget, fullSize);
-        }
-
-        /// <summary>
-        /// Overwrites part of the buffer with the given data and automatically indexes forward through the available memory.
-        /// Skips back to the beginning automatically once the end was reached.
-        /// </summary>
-        /// <param name="bufferTarget">The BufferTarget to use when binding the buffer.</param>
-        /// <param name="data">The data to be transfered into the buffer.</param>
-        public void SubData(BufferTarget bufferTarget, T[] data)
-        {
-            if (data.Length > ElementCount) throw new ArgumentException(
-                string.Format("Buffer not large enough to hold data. Buffer size: {0}. Elements to write: {1}.", ElementCount, data.Length));
-            // check if data does not fit at the end of the buffer
-            var rest = ElementCount - CurrentElementIndex;
-            if (rest >= data.Length)
-            {
-                // add the elements of data to the buffer at the current index
-                SubData(bufferTarget, data, CurrentElementIndex);
-                // skip forward through the buffer
-                CurrentElementIndex += data.Length;
-                // remember the total number of elements with data
-                if (ActiveElementCount < CurrentElementIndex) ActiveElementCount = CurrentElementIndex;
-                // skip back if the end was reached
-                // in this case it can only be reached exactly because otherwise it would be handled by the else-case
-                if (CurrentElementIndex >= ElementCount) CurrentElementIndex = 0;
-            }
-            else
-            {
-                // first fill the end of the buffer
-                SubData(bufferTarget, data, CurrentElementIndex, rest);
-                // proceed to add the remaining elements at the beginning
-                rest = data.Length - rest;
-                SubData(bufferTarget, data, 0, rest);
-                CurrentElementIndex = rest;
-                // remember that the full buffer was already written to
-                ActiveElementCount = ElementCount;
-            }
-        }
-
-        /// <summary>
-        /// Overwrites part of the buffer with the given data at the given offset.
-        /// Writes all data available in data.
-        /// </summary>
-        /// <param name="bufferTarget">The BufferTarget to use when binding the buffer.</param>
-        /// <param name="data">The data to be transfered into the buffer.</param>
-        /// <param name="offset">The index to the first element of the buffer to be overwritten.</param>
-        public void SubData(BufferTarget bufferTarget, T[] data, int offset)
-        {
-            SubData(bufferTarget, data, offset, data.Length);
-        }
-
-        /// <summary>
-        /// Overwrites part of the buffer with the given data at the given offset.
-        /// Writes <paramref name="count" /> elements of data.
-        /// </summary>
-        /// <param name="bufferTarget">The BufferTarget to use when binding the buffer.</param>
-        /// <param name="data">The data to be transfered into the buffer.</param>
-        /// <param name="offset">The index to the first element of the buffer to be overwritten.</param>
-        /// <param name="count">The number of elements from data to write.</param>
-        public void SubData(BufferTarget bufferTarget, T[] data, int offset, int count)
-        {
-            if (count > ElementCount - offset) throw new ArgumentException(
-                string.Format("Buffer not large enough to hold data. Buffer size: {0}. Offset: {1}. Elements to write: {2}.", ElementCount, offset, count));
-            if (count > data.Length) throw new ArgumentException(
-                string.Format("Not enough data to write to buffer. Data length: {0}. Elements to write: {1}.", data.Length, count));
-            GL.BindBuffer(bufferTarget, Handle);
-            GL.BufferSubData(bufferTarget, (IntPtr)(ElementSize * offset), (IntPtr)(ElementSize * count), data);
-        }
-
-        /// <summary>
-        /// Clear the buffer to default values.
-        /// </summary>
-        /// <param name="bufferTarget">The BufferTarget to use when binding the buffer.</param>
-        public void Clear(BufferTarget bufferTarget)
-        {
-            SubData(bufferTarget, new T[ElementCount], 0, ElementCount);
-        }
-
-        /// <summary>
-        /// "Orphan" the buffer by calling glBufferData() with the exact same size and usage hint,
-        /// but with a NULL pointer as the new data. This will let OpenGL allocate a new buffer
-        /// under the same handle and continue using it without synchronization, even if the old
-        /// buffer may still be in use by commands remaining in the queue.
-        /// </summary>
-        /// <param name="bufferTarget">The BufferTarget to use when binding the buffer.</param>
-        /// <param name="usageHint">The usage hint of the buffer object.</param>
-        public void Orphan(BufferTarget bufferTarget, BufferUsageHint usageHint = BufferUsageHint.StaticDraw)
-        {
-            if (!Initialized) throw new InvalidOperationException("Can not orphan uninitialized buffer.");
-            Init(bufferTarget, ElementCount, usageHint);
-            // GL 4.3
-            //GL.InvalidateBufferData(Handle);
-        }
-
-        /// <summary>
-        /// Copies elements from the source buffer to this buffer.
-        /// Copied on server-side only, no synchronization or transfer of data to host required.
-        /// </summary>
-        /// <param name="source">The source buffer to copy data from.</param>
-        /// <param name="readOffset">Element offset into the source buffer.</param>
-        /// <param name="writeOffset">Element offset into this buffer</param>
-        /// <param name="count">The Number of elements to copy.</param>
-        public void CopyFrom(Buffer<T> source, int readOffset, int writeOffset, int count)
-        {
-            GL.BindBuffer(BufferTarget.CopyReadBuffer, source.Handle);
-            GL.BindBuffer(BufferTarget.CopyWriteBuffer, Handle);
-            GL.CopyBufferSubData(BufferTarget.CopyReadBuffer, BufferTarget.CopyWriteBuffer,
-                (IntPtr)(ElementSize * readOffset), (IntPtr)(ElementSize * writeOffset), (IntPtr)(ElementSize * count));
-        }
-
-        /// <summary>
-        /// Copies elements from the source buffer to this buffer until the end of either buffer is reached.
-        /// </summary>
-        /// <param name="source">The source buffer to copy elements from.</param>
-        public void CopyFrom(Buffer<T> source)
-        {
-            CopyFrom(source, 0, 0, Math.Min(ElementCount, source.ElementCount));
-        }
-
-        /// <summary>
-        /// Checks if uploaded size matches the expected size.
-        /// </summary>
-        protected void CheckBufferSize(BufferTarget bufferTarget, int size)
-        {
-            int uploadedSize;
-            GL.GetBufferParameter(bufferTarget, BufferParameterName.BufferSize, out uploadedSize);
-            if (uploadedSize != size) throw new ApplicationException(
-                string.Format("Problem uploading data to buffer object. Tried to upload {0} bytes, but uploaded {1}.", size, uploadedSize));
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Buffers/BufferPod.cs b/ObjectTK/Buffers/BufferPod.cs
deleted file mode 100644
index 4272f96..0000000
--- a/ObjectTK/Buffers/BufferPod.cs
+++ /dev/null
@@ -1,109 +0,0 @@
-//
-// BufferPod.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System;
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Buffers
-{
-    /// <summary>
-    /// Represents two buffer objects which are bundled together to simplify ping-ponging.
-    /// </summary>
-    /// <typeparam name="T">The type of elements in the buffer objects.</typeparam>
-    public class BufferPod<T>
-        : GLResource
-        where T : struct
-    {
-        /// <summary>
-        /// First or front buffer.
-        /// </summary>
-        public Buffer<T> Ping { private set; get; }
-
-        /// <summary>
-        /// Second or back buffer.
-        /// </summary>
-        public Buffer<T> Pong { private set; get; }
-
-        /// <summary>
-        /// Requests two new, uninitialized <see cref="Buffer{T}"/> objects.
-        /// </summary>
-        public BufferPod()
-        {
-            Ping = new Buffer<T>();
-            Pong = new Buffer<T>();
-        }
-
-        protected override void Dispose(bool manual)
-        {
-            if (!manual) return;
-            Ping.Dispose();
-            Pong.Dispose();
-        }
-
-        /// <summary>
-        /// Allocates memory for both buffer objects without initializing it.
-        /// </summary>
-        /// <param name="target">The BufferTarget to use when binding the buffers.</param>
-        /// <param name="elementCount">The number of elements for each buffer to allocate memory for.</param>
-        /// <param name="usageHint">The usage hint for both buffer objects.</param>
-        public void Init(BufferTarget target, int elementCount, BufferUsageHint usageHint = BufferUsageHint.StaticDraw)
-        {
-            Ping.Init(target, elementCount, usageHint);
-            Pong.Init(target, elementCount, usageHint);
-        }
-
-        /// <summary>
-        /// Allocates memory for both buffer objects and initializes the first buffer with the given data.
-        /// The second buffer is left uninitialized.
-        /// </summary>
-        /// <param name="target">The BufferTarget to use when binding the buffers.</param>
-        /// <param name="data">The data to upload to the first buffer and allocate enough memory for in the second buffer.</param>
-        /// <param name="usageHint">The usage hint for both buffer objects.</param>
-        public void Init(BufferTarget target, T[] data, BufferUsageHint usageHint = BufferUsageHint.StaticDraw)
-        {
-            Ping.Init(target, data, usageHint);
-            Pong.Init(target, data.Length, usageHint);
-        }
-
-        /// <summary>
-        /// Changes the size of both buffer objects.
-        /// </summary>
-        /// <param name="target">The BufferTarget to use when binding the buffers.</param>
-        /// <param name="elementCount">The new number of elements for each buffer to allocate memory for.</param>
-        /// <param name="usageHint">The usage hint for both buffer objects.</param>
-        public void Resize(BufferTarget target, int elementCount, BufferUsageHint usageHint = BufferUsageHint.StaticDraw)
-        {
-            // wrap current element index into the new buffer size if it is smaller than before
-            Ping.CurrentElementIndex %= elementCount;
-            // prevent active element count from exceeding the new buffer size
-            Ping.ActiveElementCount = Math.Min(Ping.ActiveElementCount, elementCount);
-            // copy data into resized buffer
-            Pong.Init(target, elementCount, usageHint);
-            if (Ping.Initialized) Pong.CopyFrom(Ping);
-            // swap buffers
-            Swap();
-            // resize the other buffer
-            Pong.Init(target, elementCount, usageHint);
-        }
-
-        /// <summary>
-        /// Swaps the two buffer objects.
-        /// </summary>
-        public void Swap()
-        {
-            // copy over current "state"
-            Pong.CurrentElementIndex = Ping.CurrentElementIndex;
-            Pong.ActiveElementCount = Ping.ActiveElementCount;
-            // swap buffers
-            var tmp = Ping;
-            Ping = Pong;
-            Pong = tmp;
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Buffers/Framebuffer.cs b/ObjectTK/Buffers/Framebuffer.cs
deleted file mode 100644
index 2dccdf9..0000000
--- a/ObjectTK/Buffers/Framebuffer.cs
+++ /dev/null
@@ -1,193 +0,0 @@
-//
-// Framebuffer.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System;
-using ObjectTK.Exceptions;
-using ObjectTK.Textures;
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Buffers
-{
-    /// <summary>
-    /// Represents a framebuffer object.
-    /// </summary>
-    public class Framebuffer
-        : GLObject
-    {
-        /// <summary>
-        /// Creates a new framebuffer object.
-        /// </summary>
-        public Framebuffer()
-            : base(GL.GenFramebuffer())
-        {
-        }
-
-        protected override void Dispose(bool manual)
-        {
-            if (!manual) return;
-            GL.DeleteFramebuffer(Handle);
-        }
-
-        /// <summary>
-        /// Binds this framebuffer.
-        /// </summary>
-        /// <param name="target">The framebuffer target to bind to.</param>
-        public void Bind(FramebufferTarget target)
-        {
-            GL.BindFramebuffer(target, Handle);
-        }
-
-        /// <summary>
-        /// Unbind this framebuffer, i.e. bind the default framebuffer.
-        /// </summary>
-        /// <param name="target">The framebuffer target to bind to.</param>
-        public static void Unbind(FramebufferTarget target)
-        {
-            GL.BindFramebuffer(target, 0);
-        }
-
-        /// <summary>
-        /// Attaches the given texture level to the an attachment point.
-        /// </summary>
-        /// <remarks>
-        /// If texture is a three-dimensional, cube map array, cube map, one- or two-dimensional array, or two-dimensional multisample array texture
-        /// the specified texture level is an array of images and the framebuffer attachment is considered to be layered.
-        /// </remarks>
-        /// <param name="target">The framebuffer target to bind to.</param>
-        /// <param name="attachment">The attachment point to attach to.</param>
-        /// <param name="texture">The texture to attach.</param>
-        /// <param name="level">The level of the texture to attach.</param>
-        public void Attach(FramebufferTarget target, FramebufferAttachment attachment, Texture texture, int level = 0)
-        {
-            texture.AssertLevel(level);
-            AssertActive(target);
-            GL.FramebufferTexture(target, attachment, texture.Handle, level);
-            CheckState(target);
-        }
-
-        /// <summary>
-        /// Attaches a single layer of the given texture level to an attachment point.
-        /// </summary>
-        /// <remarks>
-        /// Note that for cube maps and cube map arrays the <paramref name="layer"/> parameter actually indexes the layer-faces.<br/>
-        /// Thus for cube maps the layer parameter equals the face to be bound.<br/>
-        /// For cube map arrays the layer parameter can be calculated as 6 * arrayLayer + face, which is done automatically when using
-        /// the corresponding overload <see cref="Attach(FramebufferTarget, FramebufferAttachment, TextureCubemapArray, int, int, int)"/>.
-        /// </remarks>
-        /// <param name="target">The framebuffer target to bind to.</param>
-        /// <param name="attachment">The attachment point to attach to.</param>
-        /// <param name="texture">The texture to attach.</param>
-        /// <param name="layer">The layer of the texture to attach.</param>
-        /// <param name="level">The level of the texture to attach.</param>
-        public void Attach(FramebufferTarget target, FramebufferAttachment attachment, LayeredTexture texture, int layer, int level = 0)
-        {
-            texture.AssertLevel(level);
-            AssertActive(target);
-            GL.FramebufferTextureLayer(target, attachment, texture.Handle, level, layer);
-            CheckState(target);
-        }
-
-        /// <summary>
-        /// Attaches a single face of the given cube map texture level to the an attachment point.
-        /// </summary>
-        /// <param name="target">The framebuffer target to bind to.</param>
-        /// <param name="attachment">The attachment point to attach to.</param>
-        /// <param name="texture">The texture to attach.</param>
-        /// <param name="face">The cube map face of the texture to attach.</param>
-        /// <param name="level">The level of the texture to attach.</param>
-        public void Attach(FramebufferTarget target, FramebufferAttachment attachment, TextureCubemap texture, int face, int level = 0)
-        {
-            Attach(target, attachment, (LayeredTexture)texture, face, level);
-        }
-
-        /// <summary>
-        /// Attaches a single face of the given cube map array texture level to an attachment point.
-        /// </summary>
-        /// <param name="target">The framebuffer target to bind to.</param>
-        /// <param name="attachment">The attachment point to attach to.</param>
-        /// <param name="texture">The texture to attach.</param>
-        /// <param name="arrayLayer">The layer of the texture to attach.</param>
-        /// <param name="face">The cube map face of the texture to attach.</param>
-        /// <param name="level">The level of the texture to attach.</param>
-        public void Attach(FramebufferTarget target, FramebufferAttachment attachment, TextureCubemapArray texture, int arrayLayer, int face, int level = 0)
-        {
-            Attach(target, attachment, (LayeredTexture)texture, 6 * arrayLayer + face, level);
-        }
-
-        /// <summary>
-        /// Attaches the render buffer to the given attachment point.
-        /// </summary>
-        /// <param name="target">The framebuffer target to bind to.</param>
-        /// <param name="attachment">The attachment point to attach to.</param>
-        /// <param name="renderbuffer">Render buffer to attach.</param>
-        public void Attach(FramebufferTarget target, FramebufferAttachment attachment, Renderbuffer renderbuffer)
-        {
-            AssertActive(target);
-            GL.FramebufferRenderbuffer(target, attachment, RenderbufferTarget.Renderbuffer, renderbuffer.Handle);
-            CheckState(target);
-        }
-
-        /// <summary>
-        /// Detaches the currently attached texture from the given attachment point.
-        /// </summary>
-        /// <param name="attachment">The attachment point to detach from.</param>
-        /// <param name="target">The framebuffer target to bind to.</param>
-        public void DetachTexture(FramebufferTarget target, FramebufferAttachment attachment)
-        {
-            AssertActive(target);
-            GL.FramebufferTexture(target, attachment, 0, 0);
-            CheckState(target);
-        }
-
-        /// <summary>
-        /// Detaches the currently attached render buffer from the given attachment point.
-        /// </summary>
-        /// <param name="target">The framebuffer target to bind to.</param>
-        /// <param name="attachment">The attachment point to detach from.</param>
-        public void DetachRenderbuffer(FramebufferTarget target, FramebufferAttachment attachment)
-        {
-            AssertActive(target);
-            GL.FramebufferRenderbuffer(target, attachment, RenderbufferTarget.Renderbuffer, 0);
-            CheckState(target);
-        }
-
-        /// <summary>
-        /// Check if the current framebuffer status is "frambuffer complete", throws on error.
-        /// </summary>
-        /// <param name="target">The framebuffer target to bind to.</param>
-        public void CheckState(FramebufferTarget target)
-        {
-#if DEBUG
-            Utility.Assert("Error on framebuffer attach/detach");
-            Utility.Assert(GL.CheckFramebufferStatus(target), FramebufferErrorCode.FramebufferComplete, "Framebuffer is not framebuffer complete.");
-#endif
-        }
-
-        /// <summary>
-        /// Throws an <see cref="ObjectNotBoundException"/> if this framebuffer is not the currently active one.
-        /// </summary>
-        /// <param name="target">The framebuffer target to bind to.</param>
-        public void AssertActive(FramebufferTarget target)
-        {
-#if DEBUG
-            int activeHandle;
-            GetPName binding;
-            switch (target)
-            {
-                case FramebufferTarget.ReadFramebuffer: binding = GetPName.ReadFramebufferBinding; break;
-                case FramebufferTarget.DrawFramebuffer: binding = GetPName.DrawFramebufferBinding; break;
-                case FramebufferTarget.Framebuffer: binding = GetPName.FramebufferBinding; break;
-                default: throw new ArgumentOutOfRangeException();
-            }
-            GL.GetInteger(binding, out activeHandle);
-            if (activeHandle != Handle) throw new ObjectNotBoundException("Can not access an unbound framebuffer. Call Framebuffer.Bind() first.");
-#endif
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Buffers/Renderbuffer.cs b/ObjectTK/Buffers/Renderbuffer.cs
deleted file mode 100644
index 52d259a..0000000
--- a/ObjectTK/Buffers/Renderbuffer.cs
+++ /dev/null
@@ -1,46 +0,0 @@
-//
-// Renderbuffer.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Buffers
-{
-    /// <summary>
-    /// Represents a renderbuffer object.
-    /// </summary>
-    public class Renderbuffer
-        : GLObject
-    {
-        /// <summary>
-        /// Creates a new renderbuffer object.
-        /// </summary>
-        public Renderbuffer()
-            : base(GL.GenRenderbuffer())
-        {
-        }
-
-        protected override void Dispose(bool manual)
-        {
-            if (!manual) return;
-            GL.DeleteRenderbuffer(Handle);
-        }
-
-        /// <summary>
-        /// Initializes the renderbuffer with the given parameters.
-        /// </summary>
-        /// <param name="storage">Specifies the internal format.</param>
-        /// <param name="width">The width of the renderbuffer.</param>
-        /// <param name="height">The height of the renderbuffer.</param>
-        public void Init(RenderbufferStorage storage, int width, int height)
-        {
-            GL.BindRenderbuffer(RenderbufferTarget.Renderbuffer, Handle);
-            GL.RenderbufferStorage(RenderbufferTarget.Renderbuffer, storage, width, height);
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Buffers/TransformFeedback.cs b/ObjectTK/Buffers/TransformFeedback.cs
deleted file mode 100644
index cd03378..0000000
--- a/ObjectTK/Buffers/TransformFeedback.cs
+++ /dev/null
@@ -1,132 +0,0 @@
-//
-// TransformFeedback.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System;
-using ObjectTK.Exceptions;
-using ObjectTK.Shaders.Variables;
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Buffers
-{
-    /// <summary>
-    /// Represents a transform feedback object.
-    /// </summary>
-    public class TransformFeedback
-        : GLObject
-    {
-        /// <summary>
-        /// Creates a new transform feedback buffer.
-        /// </summary>
-        public TransformFeedback()
-            : base(GL.GenTransformFeedback())
-        {
-        }
-
-        protected override void Dispose(bool manual)
-        {
-            if (!manual) return;
-            GL.DeleteTransformFeedback(Handle);
-        }
-
-        /// <summary>
-        /// Binds the transform feedback buffer.
-        /// </summary>
-        public void Bind()
-        {
-            GL.BindTransformFeedback(TransformFeedbackTarget.TransformFeedback, Handle);
-        }
-
-        /// <summary>
-        /// Unbinds the transform feedback buffer.
-        /// </summary>
-        public void UnBind()
-        {
-            AssertActive();
-            GL.BindTransformFeedback(TransformFeedbackTarget.TransformFeedback, 0);
-        }
-
-        /// <summary>
-        /// Start transform feedback operation. 
-        /// </summary>
-        /// <param name="primitiveMode">Specify the output type of the primitives that will be recorded into the buffer objects that are bound for transform feedback.</param>
-        public void Begin(TransformFeedbackPrimitiveType primitiveMode)
-        {
-            AssertActive();
-            GL.BeginTransformFeedback(primitiveMode);
-        }
-
-        /// <summary>
-        /// End transform feedback operation.
-        /// </summary>
-        public void End()
-        {
-            AssertActive();
-            GL.EndTransformFeedback();
-        }
-
-        /// <summary>
-        /// Pause transform feedback operations.
-        /// </summary>
-        public void Pause()
-        {
-            AssertActive();
-            GL.PauseTransformFeedback();
-        }
-
-        /// <summary>
-        /// Resume transform feedback operations.
-        /// </summary>
-        public void Resume()
-        {
-            AssertActive();
-            GL.ResumeTransformFeedback();
-        }
-
-        /// <summary>
-        /// Binds a buffer to the binding index utilized by the given transform feeedback varying.
-        /// </summary>
-        /// <param name="transformOut">Specifies a transform feedback varying.</param>
-        /// <param name="buffer">Specifies a buffer object to bind.</param>
-        public void BindOutput<T>(TransformOut transformOut, Buffer<T> buffer)
-            where T : struct
-        {
-            AssertActive();
-            GL.BindBufferBase(BufferRangeTarget.TransformFeedbackBuffer, transformOut.Index, buffer.Handle);
-        }
-
-        /// <summary>
-        /// Binds part of a buffer to the binding index utilized by the given transform feeedback varying.
-        /// </summary>
-        /// <remarks>
-        /// If multiple parts of the same buffer are bound as transform feedback output targets they must not overlap.
-        /// </remarks>
-        /// <param name="transformOut">Specifies a transform feedback varying.</param>
-        /// <param name="buffer">Specifies a buffer object to bind.</param>
-        /// <param name="offset">Specifies the starting offset in bytes into the buffer object.</param>
-        /// <param name="size">Specifies the amount of data in bytes that can be written to the buffer.</param>
-        public void BindOutput<T>(TransformOut transformOut, Buffer<T> buffer, int offset, int size)
-            where T : struct
-        {
-            AssertActive();
-            GL.BindBufferRange(BufferRangeTarget.TransformFeedbackBuffer, transformOut.Index, buffer.Handle, (IntPtr)offset, (IntPtr)size);
-        }
-
-        /// <summary>
-        /// Throws an <see cref="ObjectNotBoundException"/> if this vertex array is not the currently active one.
-        /// </summary>
-        public void AssertActive()
-        {
-#if DEBUG
-            int activeHandle;
-            GL.GetInteger(GetPName.TransformFeedbackBinding, out activeHandle);
-            if (activeHandle != Handle) throw new ObjectNotBoundException("Transform feedback object is not bound.");
-#endif
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Buffers/VertexArray.cs b/ObjectTK/Buffers/VertexArray.cs
deleted file mode 100644
index 57d515b..0000000
--- a/ObjectTK/Buffers/VertexArray.cs
+++ /dev/null
@@ -1,237 +0,0 @@
-//
-// VertexArray.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System;
-using ObjectTK.Exceptions;
-using ObjectTK.Shaders.Variables;
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Buffers
-{
-    /// <summary>
-    /// Represents a vertex array object.<br/>
-    /// TODO: add support for instanced vertex attributes with glVertexAttribDivisor (or maybe glVertexBindingDivisor)
-    /// </summary>
-    public class VertexArray
-        : GLObject
-    {
-        /// <summary>
-        /// Initializes a new vertex array object.
-        /// </summary>
-        public VertexArray()
-            : base(GL.GenVertexArray())
-        {
-        }
-
-        protected override void Dispose(bool manual)
-        {
-            if (!manual) return;
-            GL.DeleteVertexArray(Handle);
-        }
-
-        /// <summary>
-        /// Bind the vertex array.
-        /// </summary>
-        public void Bind()
-        {
-            GL.BindVertexArray(Handle);
-        }
-
-        /// <summary>
-        /// Render primitives from array data.
-        /// </summary>
-        /// <param name="mode">Specifies what kind of primitives to render.</param>
-        /// <param name="first">Specifies the starting index in the enabled arrays.</param>
-        /// <param name="count">Specifies the number of indices to be rendered.</param>
-        public void DrawArrays(PrimitiveType mode, int first, int count)
-        {
-            AssertActive();
-            GL.DrawArrays(mode, first, count);
-        }
-
-        public void DrawArraysInstances(PrimitiveType mode, int first, int count, int instanceCount)
-        {
-            AssertActive();
-            GL.DrawArraysInstanced(mode, first, count, instanceCount);
-        }
-
-        public void DrawArraysIndirect(PrimitiveType mode, int offset = 0)
-        {
-            AssertActive();
-            GL.DrawArraysIndirect(mode, new IntPtr(offset));
-        }
-
-        public void MultiDrawArrays(PrimitiveType mode, int[] first, int[] count)
-        {
-            AssertActive();
-            if (first.Length != count.Length) throw new ArgumentException("The length of first and count must be equal.");
-            GL.MultiDrawArrays(mode, first, count, count.Length);
-        }
-
-        /// <summary>
-        /// Render primitives from array data using the element buffer.
-        /// </summary>
-        /// <param name="mode">Specifies what kind of primitives to render.</param>
-        /// <param name="count">Specifies the number of elements to be rendered.</param>
-        /// <param name="type">Specifies the type of the values in indices.</param>
-        public void DrawElements(PrimitiveType mode, int count, DrawElementsType type = DrawElementsType.UnsignedInt)
-        {
-            AssertActive();
-            GL.DrawElements(mode, count, type, IntPtr.Zero);
-        }
-
-        public void DrawElementsIndirect(PrimitiveType mode, DrawElementsType type = DrawElementsType.UnsignedInt, int offset = 0)
-        {
-            AssertActive();
-            GL.DrawElementsIndirect(mode, (All)type, new IntPtr(offset));
-        }
-
-        public void MultiDrawElements(PrimitiveType mode, int[] count, DrawElementsType type = DrawElementsType.UnsignedInt)
-        {
-            AssertActive();
-            GL.MultiDrawElements(mode, count, type, IntPtr.Zero, count.Length);
-        }
-
-        public void DrawTransformFeedback(PrimitiveType mode, TransformFeedback transformFeedback)
-        {
-            AssertActive();
-            GL.DrawTransformFeedback(mode, transformFeedback.Handle);
-        }
-
-        /// <summary>
-        /// Binds the given buffer to the element array buffer target.
-        /// </summary>
-        public void BindElementBuffer<T>(Buffer<T> buffer)
-            where T : struct
-        {
-            AssertActive();
-            GL.BindBuffer(BufferTarget.ElementArrayBuffer, buffer.Handle);
-        }
-
-        /// <summary>
-        /// Unbinds any buffer bound to the element array buffer target.
-        /// </summary>
-        public void UnbindElementBuffer()
-        {
-            AssertActive();
-            GL.BindBuffer(BufferTarget.ElementArrayBuffer, 0);
-        }
-
-        /// <summary>
-        /// Binds the buffer to the given vertex attribute. Uses the buffers element size as the stride parameter with an offset of zero.
-        /// The other parameters, namely components, type and normalized are chosen according to the corresponding <see cref="VertexAttribAttribute"/> attribute.
-        /// </summary>
-        public void BindAttribute<T>(VertexAttrib attribute, Buffer<T> buffer)
-            where T : struct
-        {
-            BindAttribute(attribute, buffer, attribute.Components, attribute.Type, buffer.ElementSize, 0, attribute.Normalized);
-        }
-
-        /// <summary>
-        /// Binds the buffer to the given vertex attribute. Uses the buffers element size as the stride parameter and the given offset.
-        /// The other parameters, namely components, type and normalized are chosen according to the corresponding <see cref="VertexAttribAttribute"/> attribute.
-        /// </summary>
-        public void BindAttribute<T>(VertexAttrib attribute, Buffer<T> buffer, int offset)
-            where T : struct
-        {
-            BindAttribute(attribute, buffer, attribute.Components, attribute.Type, buffer.ElementSize, offset, attribute.Normalized);
-        }
-
-        /// <summary>
-        /// Binds the buffer to the given vertex attribute. Uses the given stride and offset parameters.
-        /// The other parameters, namely components, type and normalized are chosen according to the corresponding <see cref="VertexAttribAttribute"/> attribute.
-        /// </summary>
-        public void BindAttribute<T>(VertexAttrib attribute, Buffer<T> buffer, int stride, int offset)
-            where T : struct
-        {
-            BindAttribute(attribute, buffer, attribute.Components, attribute.Type, stride, offset, attribute.Normalized);
-        }
-
-        /// <summary>
-        /// Binds the buffer to the given vertex attribute.
-        /// </summary>
-        public void BindAttribute<T>(VertexAttrib attribute, Buffer<T> buffer, int stride, int offset, bool normalized)
-            where T : struct
-        {
-            BindAttribute(attribute, buffer, attribute.Components, attribute.Type, stride, offset, normalized);
-        }
-
-        /// <summary>
-        /// Binds the buffer to the given vertex attribute.
-        /// </summary>
-        public void BindAttribute<T>(VertexAttrib attribute, Buffer<T> buffer, int components, int stride, int offset)
-            where T : struct
-        {
-            BindAttribute(attribute, buffer, components, attribute.Type, stride, offset, attribute.Normalized);
-        }
-
-        /// <summary>
-        /// Binds the buffer to the given vertex attribute.
-        /// </summary>
-        public void BindAttribute<T>(VertexAttrib attribute, Buffer<T> buffer, int components, int stride, int offset, bool normalized)
-            where T : struct
-        {
-            BindAttribute(attribute, buffer, components, attribute.Type, stride, offset, normalized);
-        }
-
-        /// <summary>
-        /// Binds the buffer to the given vertex attribute.
-        /// </summary>
-        public void BindAttribute<T>(VertexAttrib attribute, Buffer<T> buffer, int components, VertexAttribPointerType type, int stride, int offset, bool normalized)
-            where T : struct
-        {
-            if (!attribute.Active) return;
-            BindAttribute(attribute.Index, buffer, components, type, stride, offset, normalized);
-        }
-
-        /// <summary>
-        /// Binds the buffer to the given vertex attribute.
-        /// </summary>
-        public void BindAttribute<T>(int index, Buffer<T> buffer, int components, VertexAttribPointerType type, int stride, int offset, bool normalized)
-            where T : struct
-        {
-            AssertActive();
-            // bind given buffer
-            GL.BindBuffer(BufferTarget.ArrayBuffer, buffer.Handle);
-            // make sure the vertex attribute is enabled
-            GL.EnableVertexAttribArray(index);
-            // set the vertex attribute pointer to the current buffer
-            GL.VertexAttribPointer(index, components, type, normalized, stride, offset);
-        }
-
-        /// <summary>
-        /// Disable the given vertex attribute.
-        /// </summary>
-        public void UnbindAttribute(VertexAttrib attribute)
-        {
-            UnbindAttribute(attribute.Index);
-        }
-
-        /// <summary>
-        /// Disable the given vertex attribute.
-        /// </summary>
-        public void UnbindAttribute(int index)
-        {
-            AssertActive();
-            GL.DisableVertexAttribArray(index);
-        }
-
-        /// <summary>
-        /// Throws an <see cref="ObjectNotBoundException"/> if this vertex array is not the currently active one.
-        /// </summary>
-        public void AssertActive()
-        {
-#if DEBUG
-            int activeHandle;
-            GL.GetInteger(GetPName.VertexArrayBinding, out activeHandle);
-            if (activeHandle != Handle) throw new ObjectNotBoundException("Vertex array object is not bound.");
-#endif
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Exceptions/ObjectNotBoundException.cs b/ObjectTK/Exceptions/ObjectNotBoundException.cs
deleted file mode 100644
index dfefe7d..0000000
--- a/ObjectTK/Exceptions/ObjectNotBoundException.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-//
-// ObjectNotBoundException.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System;
-
-namespace ObjectTK.Exceptions
-{
-    /// <summary>
-    /// The exception that is thrown when an object is used which must be bound before usage.
-    /// </summary>
-    [Serializable]
-    public class ObjectNotBoundException
-        : ObjectTKException
-    {
-        internal ObjectNotBoundException(string message)
-            : base(message)
-        {
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Exceptions/ObjectTKException.cs b/ObjectTK/Exceptions/ObjectTKException.cs
deleted file mode 100644
index f7f8109..0000000
--- a/ObjectTK/Exceptions/ObjectTKException.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-//
-// ObjectTKException.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System;
-
-namespace ObjectTK.Exceptions
-{
-    /// <summary>
-    /// The exception that is thrown when an ObjectTK related error occurs.
-    /// </summary>
-    [Serializable]
-    public class ObjectTKException
-        : Exception
-    {
-        internal ObjectTKException(string message)
-            : base(message)
-        {
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Exceptions/ProgramException.cs b/ObjectTK/Exceptions/ProgramException.cs
deleted file mode 100644
index d5eb444..0000000
--- a/ObjectTK/Exceptions/ProgramException.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-//
-// ProgramException.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System;
-using System.Runtime.Serialization;
-
-namespace ObjectTK.Exceptions
-{
-    /// <summary>
-    /// The exception that is thrown when a program related error occurs.
-    /// </summary>
-    [Serializable]
-    public class ProgramException
-        : ObjectTKException
-    {
-        public string InfoLog { get; private set; }
-
-        internal ProgramException(string message, string infoLog)
-            : base(message)
-        {
-            InfoLog = infoLog;
-        }
-
-        public override void GetObjectData(SerializationInfo info, StreamingContext context)
-        {
-            base.GetObjectData(info, context);
-            info.AddValue("InfoLog", InfoLog);
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Exceptions/ProgramLinkException.cs b/ObjectTK/Exceptions/ProgramLinkException.cs
deleted file mode 100644
index 10c5b47..0000000
--- a/ObjectTK/Exceptions/ProgramLinkException.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-//
-// ProgramLinkException.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System;
-
-namespace ObjectTK.Exceptions
-{
-    /// <summary>
-    /// The exception that is thrown when a program link error occurs.
-    /// </summary>
-    [Serializable]
-    public class ProgramLinkException
-        : ProgramException
-    {
-        internal ProgramLinkException(string message, string infoLog)
-            : base(message, infoLog)
-        {
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Exceptions/QueryException.cs b/ObjectTK/Exceptions/QueryException.cs
deleted file mode 100644
index 44041f2..0000000
--- a/ObjectTK/Exceptions/QueryException.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-//
-// QueryException.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System;
-
-namespace ObjectTK.Exceptions
-{
-    /// <summary>
-    /// The exception that is thrown when a query related error occurs.
-    /// </summary>
-    [Serializable]
-    public class QueryException
-        : ObjectTKException
-    {
-        internal QueryException(string message)
-            : base(message)
-        {
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Exceptions/ShaderCompileException.cs b/ObjectTK/Exceptions/ShaderCompileException.cs
deleted file mode 100644
index d11f4a9..0000000
--- a/ObjectTK/Exceptions/ShaderCompileException.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-//
-// ShaderCompileException.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System;
-
-namespace ObjectTK.Exceptions
-{
-    /// <summary>
-    /// The exception that is thrown when a shader compile error occurs.
-    /// </summary>
-    [Serializable]
-    public class ShaderCompileException
-        : ProgramException
-    {
-        internal ShaderCompileException(string message, string infoLog)
-            : base(message, infoLog)
-        {
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Exceptions/UniformTypeNotSupportedException.cs b/ObjectTK/Exceptions/UniformTypeNotSupportedException.cs
deleted file mode 100644
index f83f249..0000000
--- a/ObjectTK/Exceptions/UniformTypeNotSupportedException.cs
+++ /dev/null
@@ -1,40 +0,0 @@
-//
-// UniformTypeNotSupportedException.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System;
-using System.Runtime.Serialization;
-using ObjectTK.Shaders.Variables;
-
-namespace ObjectTK.Exceptions
-{
-    /// <summary>
-    /// The exception that is thrown when the generic type parameter used for an instance of <see cref="Uniform{T}"/> is not supported.
-    /// </summary>
-    [Serializable]
-    public class UniformTypeNotSupportedException
-        : ObjectTKException
-    {
-        /// <summary>
-        /// The unsupported type parameter to <see cref="Uniform{T}"/> which caused the initialization to fail.
-        /// </summary>
-        public readonly Type UniformType;
-
-        internal UniformTypeNotSupportedException(Type uniformType)
-            : base(string.Format("Uniforms of type {0} are not supported", uniformType.Name))
-        {
-            UniformType = uniformType;
-        }
-
-        public override void GetObjectData(SerializationInfo info, StreamingContext context)
-        {
-            base.GetObjectData(info, context);
-            info.AddValue("UniformType", UniformType);
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Extensions.cs b/ObjectTK/Extensions.cs
deleted file mode 100644
index 40c478b..0000000
--- a/ObjectTK/Extensions.cs
+++ /dev/null
@@ -1,69 +0,0 @@
-//
-// Extensions.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System.Collections.Generic;
-using System.Drawing;
-using System.Linq;
-using System.Reflection;
-using OpenTK;
-
-namespace ObjectTK
-{
-    /// <summary>
-    /// Contains extension methods.
-    /// </summary>
-    public static class Extensions
-    {
-        /// <summary>
-        /// Transforms this <see cref="Color"/> object to a <see cref="Vector4"/>.<br/>
-        /// The resulting vector contains values in the range of (0,1).
-        /// </summary>
-        /// <param name="color">The Color object to transform.</param>
-        /// <returns>A Vector4 object containing the color information.</returns>
-        public static Vector4 ToVector4(this Color color)
-        {
-            return new Vector4(color.R/255f, color.G/255f, color.B/255f, color.A/255f);
-        }
-
-        /// <summary>
-        /// Transforms this <see cref="Color"/> object to an unsigned integer.<br/>
-        /// The components are formatted compatible to OpenGL.
-        /// </summary>
-        /// <param name="color">The Color object to transform.</param>
-        /// <returns>An unsigned integer containing the color information.</returns>
-        public static uint ToRgba32(this Color color)
-        {
-            return (uint)(color.A << 24 | color.B << 16 | color.G << 8 | color.R);
-        }
-
-        /// <summary>
-        /// Transforms this unsigned integer to a <see cref="Color"/> object.<br/>
-        /// Requires the information formatted like the output of <see cref="ToRgba32"/>.
-        /// </summary>
-        /// <param name="color">The unsigned integer to transform.</param>
-        /// <returns>A Color object containing the same information.</returns>
-        public static Color Rgba32ToColor(this uint color)
-        {
-            const uint mask = 0x000000FF;
-            return Color.FromArgb((int)(color >> 24 & mask), (int)(color & mask), (int)(color >> 8 & mask), (int)(color >> 16 & mask));
-        }
-
-        /// <summary>
-        /// Retrieves custom attributes in a typed enumerable.
-        /// </summary>
-        /// <typeparam name="T">The type of attribute to search for. Only attributes that are assignable to this type are returned.</typeparam>
-        /// <param name="type">The member on which to look for custom attributes.</param>
-        /// <param name="inherit">Specifies whether to search this member's inheritance chain to find the attributes.</param>
-        /// <returns>An IEnumerable of custom attributes applied to this member.</returns>
-        public static IEnumerable<T> GetCustomAttributes<T>(this MemberInfo type, bool inherit)
-        {
-            return type.GetCustomAttributes(typeof(T), inherit).Cast<T>();
-        }
-    }
-}
diff --git a/ObjectTK/GLObject.cs b/ObjectTK/GLObject.cs
deleted file mode 100644
index b80f8b9..0000000
--- a/ObjectTK/GLObject.cs
+++ /dev/null
@@ -1,55 +0,0 @@
-//
-// GLObject.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System;
-
-namespace ObjectTK
-{
-    /// <summary>
-    /// Represents an OpenGL handle.<br/>
-    /// Must be disposed explicitly, otherwise there will be a memory leak which will be logged as a warning.
-    /// </summary>
-    public abstract class GLObject
-        : GLResource
-        , IEquatable<GLObject>
-    {
-        /// <summary>
-        /// The OpenGL handle.
-        /// </summary>
-        public readonly int Handle;
-
-        /// <summary>
-        /// Initializes a new instance of the GLResource class.
-        /// </summary>
-        protected GLObject(int handle)
-        {
-            Handle = handle;
-        }
-
-        public bool Equals(GLObject other)
-        {
-            return other != null && Handle.Equals(other.Handle);
-        }
-
-        public override bool Equals(object obj)
-        {
-            return obj is GLObject && Equals((GLObject) obj);
-        }
-
-        public override int GetHashCode()
-        {
-            return Handle.GetHashCode();
-        }
-
-        public override string ToString()
-        {
-            return string.Format("{0}({1})", GetType().Name, Handle);
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/GLResource.cs b/ObjectTK/GLResource.cs
deleted file mode 100644
index 5e33c08..0000000
--- a/ObjectTK/GLResource.cs
+++ /dev/null
@@ -1,91 +0,0 @@
-//
-// GLResource.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System;
-using System.Reflection;
-using ObjectTK.Exceptions;
-
-namespace ObjectTK
-{
-    /// <summary>
-    /// Represents an OpenGL resource.<br/>
-    /// Must be disposed explicitly, otherwise a warning will be logged indicating a memory leak.<br/>
-    /// Can be derived to inherit the dispose pattern.
-    /// </summary>
-    public abstract class GLResource
-        : IDisposable
-    {
-        private static readonly Logging.IObjectTKLogger Logger = Logging.LogFactory.GetLogger(typeof(GLResource));
-
-        /// <summary>
-        /// Gets a values specifying if this resource has already been disposed.
-        /// </summary>
-        public bool IsDisposed { get; private set; }
-
-        /// <summary>
-        /// Initializes a new instance of the GLObject class.
-        /// </summary>
-        protected GLResource()
-        {
-            IsDisposed = false;
-        }
-
-        /// <summary>
-        /// Called by the garbage collector and an indicator for a resource leak because the manual dispose prevents this destructor from being called.
-        /// </summary>
-        ~GLResource()
-        {
-            Logger?.WarnFormat("GLResource leaked: {0}", this);
-            Dispose(false);
-#if DEBUG
-            throw new ObjectTKException(string.Format("GLResource leaked: {0}", this));
-#endif
-        }
-
-        /// <summary>
-        /// Releases all OpenGL handles related to this resource.
-        /// </summary>
-        public void Dispose()
-        {
-            // safely handle multiple calls to dispose
-            if (IsDisposed) return;
-            IsDisposed = true;
-            // dipose this resource
-            Dispose(true);
-            // prevent the destructor from being called
-            GC.SuppressFinalize(this);
-            // make sure the garbage collector does not eat our object before it is properly disposed
-            GC.KeepAlive(this);
-        }
-
-        /// <summary>
-        /// Releases all OpenGL handles related to this resource.
-        /// </summary>
-        /// <param name="manual">True if the call is performed explicitly and within the OpenGL thread, false if it is caused by the garbage collector and therefore from another thread and the result of a resource leak.</param>
-        protected abstract void Dispose(bool manual);
-
-        /// <summary>
-        /// Automatically calls <see cref="Dispose()"/> on all <see cref="GLResource"/> objects found on the given object.
-        /// </summary>
-        /// <param name="obj"></param>
-        public static void DisposeAll(object obj)
-        {
-            // get all fields, including backing fields for properties
-            foreach (var field in obj.GetType().GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic))
-            {
-                // check if it should be released
-                if (typeof (GLResource).IsAssignableFrom(field.FieldType))
-                {
-                    // and release it
-                    ((GLResource)field.GetValue(obj)).Dispose();
-                }
-            }
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Logging/DefaultLogImpl.cs b/ObjectTK/Logging/DefaultLogImpl.cs
deleted file mode 100644
index e42acb0..0000000
--- a/ObjectTK/Logging/DefaultLogImpl.cs
+++ /dev/null
@@ -1,135 +0,0 @@
-//
-// DefaultLogImpl.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System;
-using log4net;
-using log4net.Core;
-
-namespace ObjectTK.Logging
-{
-    public class DefaultLogImpl : IObjectTKLogger
-    {
-        protected virtual Type ThisDeclaringType => typeof(DefaultLogImpl);
-        protected ILogger _logger => _log.Logger;
-
-        protected readonly ILog _log;
-
-        public DefaultLogImpl(ILog logger)
-        {
-            _log = logger;
-        }
-
-        public bool IsFatalEnabled => _log.IsFatalEnabled;
-
-        public bool IsWarnEnabled => _log.IsWarnEnabled;
-
-        public bool IsInfoEnabled => _log.IsInfoEnabled;
-
-        public bool IsDebugEnabled => _log.IsDebugEnabled;
-
-        public bool IsErrorEnabled => _log.IsErrorEnabled;
-
-        private void Log(Level level, object message, Exception exception = null)
-        {
-            if (!_logger.IsEnabledFor(level)) return;
-            _logger.Log(ThisDeclaringType, level, message, exception);
-        }
-
-        private void LogFormat(Level level, IFormatProvider provider, string format, params object[] args)
-        {
-            if (!_logger.IsEnabledFor(level)) return;
-
-            var message = (provider == null) ?
-                string.Format(format, args) :
-                string.Format(provider, format, args);
-
-            _logger.Log(ThisDeclaringType, level, message, null);
-        }
-
-        private void LogFormat(Level level, string format, params object[] args)
-        {
-            LogFormat(null, format, args);
-        }
-
-        public void Debug(object message, Exception exception = null)
-        {
-            Log(Level.Debug, message);
-        }
-
-        public void DebugFormat(IFormatProvider provider, string format, params object[] args)
-        {
-            LogFormat(Level.Debug, provider, format, args);
-        }
-
-        public void DebugFormat(string format, params object[] args)
-        {
-            LogFormat(Level.Debug, null, format, args);
-        }
-
-        public void Error(object message, Exception exception = null)
-        {
-            Log(Level.Error, message);
-        }
-
-        public void ErrorFormat(IFormatProvider provider, string format, params object[] args)
-        {
-            LogFormat(Level.Error, provider, format, args);
-        }
-
-        public void ErrorFormat(string format, params object[] args)
-        {
-            LogFormat(Level.Error, null, format, args);
-        }
-
-        public void Fatal(object message, Exception exception = null)
-        {
-            Log(Level.Fatal, message);
-        }
-
-        public void FatalFormat(IFormatProvider provider, string format, params object[] args)
-        {
-            LogFormat(Level.Fatal, provider, format, args);
-        }
-
-        public void FatalFormat(string format, params object[] args)
-        {
-            LogFormat(Level.Fatal, null, format, args);
-        }
-
-        public void Info(object message, Exception exception = null)
-        {
-            Log(Level.Info, message);
-        }
-
-        public void InfoFormat(IFormatProvider provider, string format, params object[] args)
-        {
-            LogFormat(Level.Info, provider, format, args);
-        }
-
-        public void InfoFormat(string format, params object[] args)
-        {
-            LogFormat(Level.Info, null, format, args);
-        }
-
-        public void Warn(object message, Exception exception = null)
-        {
-            Log(Level.Warn, message);
-        }
-
-        public void WarnFormat(IFormatProvider provider, string format, params object[] args)
-        {
-            LogFormat(Level.Warn, provider, format, args);
-        }
-
-        public void WarnFormat(string format, params object[] args)
-        {
-            LogFormat(Level.Warn, null, format, args);
-        }
-    }
-}
diff --git a/ObjectTK/Logging/IObjectTKLogger.cs b/ObjectTK/Logging/IObjectTKLogger.cs
deleted file mode 100644
index 57b1b89..0000000
--- a/ObjectTK/Logging/IObjectTKLogger.cs
+++ /dev/null
@@ -1,45 +0,0 @@
-//
-// IObjectTKLogger.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
-namespace ObjectTK.Logging
-{
-    public interface IObjectTKLogger
-    {
-        bool IsFatalEnabled { get; }
-        bool IsWarnEnabled { get; }
-        bool IsInfoEnabled { get; }
-        bool IsDebugEnabled { get; }
-        bool IsErrorEnabled { get; }
-
-        void Debug(object message, Exception exception = null);
-        void DebugFormat(IFormatProvider provider, string format, params object[] args);
-        void DebugFormat(string format, params object[] args);
-
-        void Error(object message, Exception exception = null);
-        void ErrorFormat(IFormatProvider provider, string format, params object[] args);
-        void ErrorFormat(string format, params object[] args);
-
-        void Fatal(object message, Exception exception = null);
-        void FatalFormat(IFormatProvider provider, string format, params object[] args);
-        void FatalFormat(string format, params object[] args);
-
-        void Info(object message, Exception exception = null);
-        void InfoFormat(IFormatProvider provider, string format, params object[] args);
-        void InfoFormat(string format, params object[] args);
-
-        void Warn(object message, Exception exception = null);
-        void WarnFormat(IFormatProvider provider, string format, params object[] args);
-        void WarnFormat(string format, params object[] args);
-    }
-}
diff --git a/ObjectTK/Logging/LogFactory.cs b/ObjectTK/Logging/LogFactory.cs
deleted file mode 100644
index 32e5f46..0000000
--- a/ObjectTK/Logging/LogFactory.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-//
-// LogFactory.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System;
-using System.IO;
-using log4net;
-
-namespace ObjectTK.Logging
-{
-    public static class LogFactory
-    {
-        public static readonly bool IsAvailable = File.Exists(AppDomain.CurrentDomain.BaseDirectory + "log4net.dll");
-
-        static IObjectTKLogger CreateLogger(Type type)
-        {
-            var logger = LogManager.GetLogger(type);
-            return logger != null ? new DefaultLogImpl(logger) : null;
-        }
-
-        public static IObjectTKLogger GetLogger(Type type)
-        {
-            return IsAvailable ? CreateLogger(type) : null;
-        }
-    }
-}
diff --git a/ObjectTK/MathF.cs b/ObjectTK/MathF.cs
deleted file mode 100644
index f0255ba..0000000
--- a/ObjectTK/MathF.cs
+++ /dev/null
@@ -1,52 +0,0 @@
-//
-// MathF.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System;
-using OpenTK;
-
-namespace ObjectTK
-{
-    /// <summary>
-    /// Provides mathematical constants and functions with float precision.
-    /// </summary>
-    public static class MathF
-    {
-        /// <summary>
-        /// Returns the sine of the specified angle.
-        /// </summary>
-        /// <param name="angle">An angle, measured in radians.</param>
-        /// <returns>The sine of angle. If angle is equal to NaN, NegativeInfinity, or PositiveInfinity, this method returns NaN.</returns>
-        public static float Sin(float angle)
-        {
-            return (float)Math.Sin(angle);
-        }
-
-        /// <summary>
-        /// Returns the cosine of the specified angle.
-        /// </summary>
-        /// <param name="angle">An angle, measured in radians.</param>
-        /// <returns>The cosine of angle. If angle is equal to NaN, NegativeInfinity, or PositiveInfinity, this method returns NaN.</returns>
-        public static float Cos(float angle)
-        {
-            return (float)Math.Cos(angle);
-        }
-
-        /// <summary>
-        /// Return the normal matrix, that is the upper 3x3 part of the inverted and transposed matrix.
-        /// </summary>
-        /// <param name="matrix">Specifies the transformation matrix.</param>
-        /// <returns>The normal matrix.</returns>
-        public static Matrix3 GetNormalMatrix(this Matrix4 matrix)
-        {
-            matrix.Invert();
-            matrix.Transpose();
-            return new Matrix3(matrix);
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/ObjectTK.csproj b/ObjectTK/ObjectTK.csproj
deleted file mode 100644
index c9c5171..0000000
--- a/ObjectTK/ObjectTK.csproj
+++ /dev/null
@@ -1,128 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProductVersion>8.0.30703</ProductVersion>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{0EE3347B-1BBE-44CA-8295-22DA13AE914A}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>ObjectTK</RootNamespace>
-    <AssemblyName>ObjectTK</AssemblyName>
-    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <DocumentationFile>bin\Debug\ObjectTK.xml</DocumentationFile>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-    <DocumentationFile>bin\Release\ObjectTK.xml</DocumentationFile>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="log4net, Version=1.2.13.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\log4net.2.0.3\lib\net40-full\log4net.dll</HintPath>
-    </Reference>
-    <Reference Include="OpenTK, Version=1.1.0.0, Culture=neutral, PublicKeyToken=bad199fe84eb3df4, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\packages\OpenTK.1.1.1589.5942\lib\NET40\OpenTK.dll</HintPath>
-    </Reference>
-    <Reference Include="System" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Drawing" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="Buffers\Buffer.cs" />
-    <Compile Include="Buffers\BufferPod.cs" />
-    <Compile Include="Buffers\Framebuffer.cs" />
-    <Compile Include="Buffers\VertexArray.cs" />
-    <Compile Include="Buffers\Renderbuffer.cs" />
-    <Compile Include="Buffers\TransformFeedback.cs" />
-    <Compile Include="Exceptions\ObjectTKException.cs" />
-    <Compile Include="Exceptions\ObjectNotBoundException.cs" />
-    <Compile Include="Exceptions\ProgramException.cs" />
-    <Compile Include="Exceptions\ProgramLinkException.cs" />
-    <Compile Include="Exceptions\QueryException.cs" />
-    <Compile Include="Exceptions\ShaderCompileException.cs" />
-    <Compile Include="Exceptions\UniformTypeNotSupportedException.cs" />
-    <Compile Include="Extensions.cs" />
-    <Compile Include="GLObject.cs" />
-    <Compile Include="GLResource.cs" />
-    <Compile Include="Logging\DefaultLogImpl.cs" />
-    <Compile Include="Logging\IObjectTKLogger.cs" />
-    <Compile Include="Logging\LogFactory.cs" />
-    <Compile Include="MathF.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="Queries\QueryIndexer.cs" />
-    <Compile Include="Queries\QueryMapping.cs" />
-    <Compile Include="Shaders\ComputeProgram.cs" />
-    <Compile Include="Shaders\Effect.cs" />
-    <Compile Include="Shaders\Program.cs" />
-    <Compile Include="Shaders\ProgramFactory.cs" />
-    <Compile Include="Shaders\Shader.cs" />
-    <Compile Include="Shaders\TransformProgram.cs" />
-    <Compile Include="Shaders\Sources\ComputeShaderSourceAttribute.cs" />
-    <Compile Include="Shaders\Sources\FragmentShaderSourceAttribute.cs" />
-    <Compile Include="Shaders\Sources\GeometryShaderSourceAttribute.cs" />
-    <Compile Include="Shaders\Sources\ShaderSourceAttribute.cs" />
-    <Compile Include="Shaders\Sources\TessControlShaderSourceAttribute.cs" />
-    <Compile Include="Shaders\Sources\TessEvaluationShaderSourceAttribute.cs" />
-    <Compile Include="Shaders\Sources\VertexShaderSourceAttribute.cs" />
-    <Compile Include="Shaders\Variables\BufferBinding.cs" />
-    <Compile Include="Shaders\Variables\FragData.cs" />
-    <Compile Include="Shaders\Variables\ImageUniform.cs" />
-    <Compile Include="Shaders\Variables\ShaderStorage.cs" />
-    <Compile Include="Shaders\Variables\ProgramVariable.cs" />
-    <Compile Include="Shaders\Variables\TextureUniform.cs" />
-    <Compile Include="Shaders\Variables\TransformOut.cs" />
-    <Compile Include="Shaders\Variables\Uniform.cs" />
-    <Compile Include="Shaders\Variables\UniformBuffer.cs" />
-    <Compile Include="Shaders\Variables\UniformSetter.cs" />
-    <Compile Include="Shaders\Variables\VertexAttrib.cs" />
-    <Compile Include="Shaders\Variables\VertexAttribAttribute.cs" />
-    <Compile Include="Textures\TextureBuffer.cs" />
-    <Compile Include="Textures\BitmapFormat.cs" />
-    <Compile Include="Textures\LayeredTexture.cs" />
-    <Compile Include="Textures\Sampler.cs" />
-    <Compile Include="Textures\Texture.cs" />
-    <Compile Include="Textures\Texture1D.cs" />
-    <Compile Include="Textures\Texture1DArray.cs" />
-    <Compile Include="Textures\Texture2D.cs" />
-    <Compile Include="Textures\Texture2DArray.cs" />
-    <Compile Include="Textures\Texture2DMultisample.cs" />
-    <Compile Include="Textures\Texture2DMultisampleArray.cs" />
-    <Compile Include="Textures\Texture3D.cs" />
-    <Compile Include="Textures\TextureCubemap.cs" />
-    <Compile Include="Textures\TextureCubemapArray.cs" />
-    <Compile Include="Textures\BitmapTexture.cs" />
-    <Compile Include="Textures\TextureFactory.cs" />
-    <Compile Include="Textures\TextureRectangle.cs" />
-    <Compile Include="Utility.cs" />
-    <Compile Include="Vector3i.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="packages.config" />
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
-       Other similar extension points exist, see Microsoft.Common.targets.
-  <Target Name="BeforeBuild">
-  </Target>
-  <Target Name="AfterBuild">
-  </Target>
-  -->
-</Project>
\ No newline at end of file
diff --git a/ObjectTK/Properties/AssemblyInfo.cs b/ObjectTK/Properties/AssemblyInfo.cs
deleted file mode 100644
index c9458d9..0000000
--- a/ObjectTK/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,48 +0,0 @@
-#region License
-// ObjectTK License
-// Copyright (C) 2013-2015 J.C.Bernack
-// 
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-// 
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-// 
-// You should have received a copy of the GNU General Public License
-// along with this program. If not, see <http://www.gnu.org/licenses/>.
-#endregion
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("ObjectTK")]
-[assembly: AssemblyDescription("Abstraction layer on top of OpenTK to provide OpenGL features in an object-oriented and type-safe manner with modern C#-style")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("JcBernack")]
-[assembly: AssemblyProduct("ObjectTK")]
-[assembly: AssemblyCopyright("Copyright © 2013-2015")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible 
-// to COM components.  If you need to access a type in this assembly from 
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("8133d931-0992-47fd-b4a0-f7ee832615cd")]
-
-// Version information for an assembly consists of the following four values:
-//
-//      Major Version
-//      Minor Version 
-//      Build Number
-//      Revision
-//
-[assembly: AssemblyVersion("1.0.*")]
\ No newline at end of file
diff --git a/ObjectTK/Queries/QueryIndexer.cs b/ObjectTK/Queries/QueryIndexer.cs
deleted file mode 100644
index eb12ef7..0000000
--- a/ObjectTK/Queries/QueryIndexer.cs
+++ /dev/null
@@ -1,69 +0,0 @@
-//
-// QueryIndexer.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System.Collections.Generic;
-using ObjectTK.Exceptions;
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Queries
-{
-    /// <summary>
-    /// Base class for <see cref="QueryMapping{T}"/>.<br/>
-    /// Provides methods to prevent query collisions on standard and indexable <see cref="QueryTarget"/>s.
-    /// </summary>
-    public abstract class QueryIndexer
-        : GLResource
-    {
-        /// <summary>
-        /// Stores indices currently in use for each QueryTarget.
-        /// </summary>
-        private static readonly Dictionary<QueryTarget, SortedSet<int>> TargetIndices = new Dictionary<QueryTarget, SortedSet<int>>();
-
-        /// <summary>
-        /// Defines which <see cref="QueryTarget"/> is indexable.
-        /// </summary>
-        private static readonly List<QueryTarget> IndexableTargets = new List<QueryTarget>
-        {
-            QueryTarget.PrimitivesGenerated,
-            QueryTarget.TransformFeedbackPrimitivesWritten
-        };
-
-        /// <summary>
-        /// Acquires an unused index for the given <see cref="QueryTarget"/>.
-        /// </summary>
-        /// <param name="target">The QueryTarget to acquire an index for.</param>
-        /// <returns>Unused index.</returns>
-        protected static int AcquireIndex(QueryTarget target)
-        {
-            if (!TargetIndices.ContainsKey(target)) TargetIndices.Add(target, new SortedSet<int>());
-            // find first free index
-            var i = 0;
-            foreach (var index in TargetIndices[target])
-            {
-                if (index > i) break;
-                i++;
-            }
-            if (!IndexableTargets.Contains(target) && i > 0) throw new QueryException(
-                string.Format("Query target not indexable and the single target it already in use: {0}", target));
-            // remember index is in use
-            TargetIndices[target].Add(i);
-            return i;
-        }
-
-        /// <summary>
-        /// Releases a previously acquired index for the given <see cref="QueryTarget"/>.
-        /// </summary>
-        /// <param name="target">The QueryTarget to release the index from.</param>
-        /// <param name="index">The index to release.</param>
-        protected static void ReleaseIndex(QueryTarget target, int index)
-        {
-            TargetIndices[target].Remove(index);
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Queries/QueryMapping.cs b/ObjectTK/Queries/QueryMapping.cs
deleted file mode 100644
index e5b08a9..0000000
--- a/ObjectTK/Queries/QueryMapping.cs
+++ /dev/null
@@ -1,166 +0,0 @@
-//
-// QueryMapping.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using ObjectTK.Exceptions;
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Queries
-{
-    /// <summary>
-    /// Provides named queries of hardware counters.
-    /// </summary>
-    /// <typeparam name="T">An enum type containing the query names.</typeparam>
-    public class QueryMapping<T>
-        : QueryIndexer
-        where T : struct, IConvertible
-    {
-        /// <summary>
-        /// Represents an OpenGL query.
-        /// </summary>
-        private class QueryMap
-            : GLObject
-        {
-            internal bool Active;
-            internal QueryTarget Target;
-            internal int Index;
-
-            public int Value;
-            public int Average;
-
-            public QueryMap()
-                : base(GL.GenQuery())
-            {
-            }
-
-            protected override void Dispose(bool manual)
-            {
-                if (!manual) return;
-                GL.DeleteQuery(Handle);
-            }
-        }
-
-
-        /// <summary>
-        /// Gets the average value measured for the given query name.
-        /// </summary>
-        /// <param name="key"></param>
-        public float this[T key]
-        {
-            get
-            {
-                return _queries[key].Average;
-            }
-        }
-
-        /// <summary>
-        /// Elapsed time is measured in nanoseconds and divided by this factor for better readability.<br/>
-        /// A factor of 1,000 therefore results in microseconds, a factor of 1,000,000 results in milliseconds.
-        /// </summary>
-        public int ElapsedTimeFactor = 1000;
-
-        /// <summary>
-        /// Weighting factor used for averaging.<br/>
-        /// A value close to 1 enables very fast averaging, giving noisy results.<br/>
-        /// A value close to 0 gives a better mean, reacting much slower to fluctuations in the results.<br/>
-        /// The default value is 0.05f.<br/>
-        /// Let the current and the previous query result be A and B, respectively, then the average is calculated with this formula:<br/>
-        /// average = A * AveragingFactor + B * (1-AveragingFactor);<br/>
-        /// </summary>
-        public float AveragingFactor = 0.05f;
-
-        /// <summary>
-        /// Holds all QueryMap objects.
-        /// </summary>
-        private readonly Dictionary<T, QueryMap> _queries;
-
-        /// <summary>
-        /// Initializes a new instance of this QueryMapping and generates required query objects.
-        /// </summary>
-        public QueryMapping()
-        {
-            if (!typeof(T).IsEnum) throw new ArgumentException("T must be an enumerated type");
-            // create a query object for each enum entry
-            _queries = Enum.GetValues(typeof (T)).Cast<T>().ToDictionary(_ => _, _ => new QueryMap());
-        }
-
-        protected override void Dispose(bool manual)
-        {
-            if (!manual) return;
-            foreach (var queryMap in _queries.Values)
-            {
-                queryMap.Dispose();
-            }
-        }
-
-        /// <summary>
-        /// Begins the given query name.
-        /// </summary>
-        /// <param name="mapping">The query name to begin.</param>
-        /// <param name="target">The query target to capture.</param>
-        public void Begin(T mapping, QueryTarget target)
-        {
-            var map = _queries[mapping];
-            if (map.Active) throw new QueryException(string.Format("Query already active: {0} {1}", target, mapping));
-            map.Active = true;
-            map.Target = target;
-            map.Index = AcquireIndex(target);
-            GL.BeginQueryIndexed(target, map.Index, map.Handle);
-        }
-
-        /// <summary>
-        /// End the given query name.
-        /// </summary>
-        /// <param name="mapping">The query name to end.</param>
-        public void End(T mapping)
-        {
-            var map = _queries[mapping];
-            if (!map.Active) throw new QueryException(string.Format("Query not active: {0}", mapping));
-            GL.EndQueryIndexed(map.Target, map.Index);
-            ReleaseIndex(map.Target, map.Index);
-            map.Active = false;
-        }
-
-        /// <summary>
-        /// Updates all query results.
-        /// </summary>
-        public void Update()
-        {
-            foreach (var map in _queries.Values)
-            {
-                // get current value
-                GL.GetQueryObject(map.Handle, GetQueryObjectParam.QueryResult, out map.Value);
-                // scale elapsed time
-                if (map.Target == QueryTarget.TimeElapsed) map.Value /= ElapsedTimeFactor;
-                // calculate averaged value
-                map.Average = (int)(map.Value * AveragingFactor + map.Average * (1 - AveragingFactor));
-            }
-        }
-
-        /// <summary>
-        /// Retrieves query results.
-        /// </summary>
-        /// <returns>The query results.</returns>
-        public IEnumerable<KeyValuePair<T, int>> GetValues()
-        {
-            return _queries.Select(map => new KeyValuePair<T, int>(map.Key, map.Value.Value));
-        }
-
-        /// <summary>
-        /// Retrieves averaged query results.
-        /// </summary>
-        /// <returns>The averaged query results.</returns>
-        public IEnumerable<KeyValuePair<T, int>> GetAverages()
-        {
-            return _queries.Select(map => new KeyValuePair<T, int>(map.Key, map.Value.Average));
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Shaders/ComputeProgram.cs b/ObjectTK/Shaders/ComputeProgram.cs
deleted file mode 100644
index 2554211..0000000
--- a/ObjectTK/Shaders/ComputeProgram.cs
+++ /dev/null
@@ -1,125 +0,0 @@
-//
-// ComputeProgram.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System;
-using System.Linq;
-using ObjectTK.Shaders.Sources;
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Shaders
-{
-    /// <summary>
-    /// Represents a program object which contains compute shaders.
-    /// </summary>
-    public class ComputeProgram
-        : Program
-    {
-        /// <summary>
-        /// The work group size of the compute shader.
-        /// </summary>
-        public Vector3i WorkGroupSize { get; protected set; }
-
-        /// <summary>
-        /// The total number of work groups of this compute shader.
-        /// </summary>
-        public int WorkGroupTotalSize { get; protected set; }
-
-        /// <summary>
-        /// The maximum work group size of compute shaders.<br/>
-        /// The values are hardware dependent and queried from OpenGL.
-        /// </summary>
-        public static Vector3i MaximumWorkGroupSize { get; protected set; }
-
-        static ComputeProgram()
-        {
-            int x,y,z;
-            GL.GetInteger((GetIndexedPName)All.MaxComputeWorkGroupCount, 0, out x);
-            GL.GetInteger((GetIndexedPName)All.MaxComputeWorkGroupCount, 1, out y);
-            GL.GetInteger((GetIndexedPName)All.MaxComputeWorkGroupCount, 2, out z);
-            MaximumWorkGroupSize = new Vector3i(x,y,z);
-        }
-
-        /// <summary>
-        /// Initializes a new instance of this compute shader.<br/>
-        /// Retrieves shader source filenames from ShaderSourceAttributes tagged to this type.
-        /// </summary>
-        protected ComputeProgram()
-        {
-            if (ShaderSourceAttribute.GetShaderSources(GetType()).Any(_ => _.Type != ShaderType.ComputeShader))
-                throw new ApplicationException("Invalid ShaderType supplied to compute shader via ShaderSourceAttribute(s).");
-        }
-
-        public override void Link()
-        {
-            base.Link();
-            // query the work group size
-            var sizes = new int[3];
-            GL.GetProgram(Handle, (GetProgramParameterName)All.ComputeWorkGroupSize, sizes);
-            WorkGroupSize = new Vector3i(sizes[0], sizes[1], sizes[2]);
-            WorkGroupTotalSize = sizes[0] * sizes[1] * sizes[2];
-        }
-
-        /// <summary>
-        /// Splits a given number of work groups up to the three dimensions.
-        /// The number of work groups in any dimensions is kept less or equal to the supported maximum.
-        /// The resulting total number of work groups may be larger than the given number.
-        /// </summary>
-        public static Vector3i SplitWorkGroups(long groups)
-        {
-            //TODO: add missing limitations. there is not only the limitation on workgroup size in each dimension but also for the total number of work groups
-            if (groups > (long)MaximumWorkGroupSize.X * MaximumWorkGroupSize.Y * MaximumWorkGroupSize.Z)
-                throw new ArgumentOutOfRangeException("groups", groups, "Maximum number of work groups exceeded.");
-            double n = groups;
-            // determine number of layers needed
-            var z = (int)Math.Ceiling(n / ((long)MaximumWorkGroupSize.X * MaximumWorkGroupSize.Y));
-            // determine the number of items per layer
-            n = Math.Ceiling(n / z);
-            // determine x and y to have the smallest number of items equal or larger to n
-            var y = (int)Math.Ceiling(n / MaximumWorkGroupSize.X);
-            var x = (int)Math.Ceiling(n / y);
-            return new Vector3i(x, y, z);
-        }
-
-        /// <summary>
-        /// Dispatches the currently active compute shader.
-        /// </summary>
-        public static void Dispatch(int x, int y, int z)
-        {
-            GL.DispatchCompute(x, y, z);
-        }
-
-        /// <summary>
-        /// Dispatches the currently active compute shader.
-        /// </summary>
-        /// <param name="workGroups">The number of work groups to be launched for each dimension.</param>
-        public static void Dispatch(Vector3i workGroups)
-        {
-            GL.DispatchCompute(workGroups.X, workGroups.Y, workGroups.Z);
-        }
-
-        /// <summary>
-        /// Dispatches the currently active compute shader.
-        /// May split the number of work groups up to more dimensions.
-        /// </summary>
-        public static void Dispatch(int total)
-        {
-            Dispatch(SplitWorkGroups(total));
-        }
-
-        /// <summary>
-        /// Dispatches the currently active compute shader.
-        /// Uses the shaders work group size to launch as many work groups as necessary to reach the given number of invocations.
-        /// May also split the number of work groups up to more dimensions.
-        /// </summary>
-        public void DispatchInvocations(int invocations)
-        {
-            Dispatch((int)Math.Ceiling((float)invocations / WorkGroupTotalSize));
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Shaders/Effect.cs b/ObjectTK/Shaders/Effect.cs
deleted file mode 100644
index 921307a..0000000
--- a/ObjectTK/Shaders/Effect.cs
+++ /dev/null
@@ -1,156 +0,0 @@
-//
-// Effect.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System.Collections.Generic;
-using System.IO;
-using System.Text;
-
-namespace ObjectTK.Shaders
-{
-    /// <summary>
-    /// Represents an effect file which may contain several sections, each containing the source of a shader.<br/>
-    /// Similar implementation to GLSW: http://prideout.net/blog/?p=11
-    /// </summary>
-    public class Effect
-    {
-        private static readonly Logging.IObjectTKLogger Logger = Logging.LogFactory.GetLogger(typeof(Effect));
-
-        private static readonly Dictionary<string, Effect> Cache = new Dictionary<string, Effect>();
-
-        /// <summary>
-        /// Specifies the Path to the effects source file.
-        /// </summary>
-        public string Path { get; private set; }
-
-        /// <summary>
-        /// Holds all sections contained within this effect.
-        /// </summary>
-        private readonly Dictionary<string, Section> _sections;
-
-        /// <summary>
-        /// Represents a section within an effect file.
-        /// </summary>
-        public class Section
-        {
-            /// <summary>
-            /// Holds a reference to the effect which contains this section.
-            /// </summary>
-            public Effect Effect;
-
-            /// <summary>
-            /// The shader key to this section.
-            /// </summary>
-            public string ShaderKey;
-
-            /// <summary>
-            /// The source within this section.
-            /// </summary>
-            public string Source;
-
-            /// <summary>
-            /// Specifies the first line number of this section within the effect file.
-            /// </summary>
-            public int FirstLineNumber;
-        }
-        
-        private Effect(string path)
-        {
-            Path = path;
-            _sections = new Dictionary<string, Section>();
-        }
-
-        /// <summary>
-        /// Retrieves the best matching section to the given shader key.
-        /// </summary>
-        /// <param name="shaderKey">The shader key to find the best match for.</param>
-        /// <returns>A section containing shader source.</returns>
-        public Section GetMatchingSection(string shaderKey)
-        {
-            Section closestMatch = null;
-            foreach (var section in _sections.Values)
-            {
-                // find longest matching section key
-                if (shaderKey.StartsWith(section.ShaderKey) && (closestMatch == null || section.ShaderKey.Length > closestMatch.ShaderKey.Length))
-                {
-                    closestMatch = section;
-                }
-            }
-            return closestMatch;
-        }
-
-        /// <summary>
-        /// Retrieves the best matching section from the effect file.
-        /// </summary>
-        /// <param name="effectPath">Specifies the path to the effect file.</param>
-        /// <param name="shaderKey">The shader key to find the best match for.</param>
-        /// <returns>A section containing shader source.</returns>
-        public static Section GetSection(string effectPath, string shaderKey)
-        {
-            return LoadEffect(effectPath).GetMatchingSection(shaderKey);
-        }
-
-        /// <summary>
-        /// Loads the the given effect file and parses its sections.
-        /// </summary>
-        /// <param name="path">Specifies the path to the effect file.</param>
-        /// <returns>A new Effect object containing the parsed content from the file.</returns>
-        public static Effect LoadEffect(string path)
-        {
-            // return cached effect if available
-            if (Cache.ContainsKey(path)) return Cache[path];
-            // otherwise load the whole effect file
-            const string sectionSeparator = "--";
-            try
-            {
-                using (var reader = new StreamReader(path))
-                {
-                    var effect = new Effect(path);
-                    var source = new StringBuilder();
-                    Section section = null;
-                    var lineNumber = 1;
-                    while (!reader.EndOfStream)
-                    {
-                        // read the file line by line
-                        var line = reader.ReadLine();
-                        if (line == null) break;
-                        // count line number
-                        lineNumber++;
-                        // append code to current section until a section separator is reached
-                        if (!line.StartsWith(sectionSeparator))
-                        {
-                            source.AppendLine(line);
-                            continue;
-                        }
-                        // write source to current section
-                        if (section != null) section.Source = source.ToString();
-                        // start new section
-                        section = new Section
-                        {
-                            Effect = effect,
-                            ShaderKey = line.Substring(sectionSeparator.Length).Trim(),
-                            FirstLineNumber = lineNumber
-                        };
-                        effect._sections.Add(section.ShaderKey, section);
-                        source.Clear();
-                    }
-                    // make sure the last section is finished
-                    if (section != null) section.Source = source.ToString();
-                    // cache the effect
-                    Cache.Add(path, effect);
-                    return effect;
-                }
-            }
-            catch (FileNotFoundException ex)
-            {
-                Logger?.Error("Effect source file not found.", ex);
-                throw;
-            }
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Shaders/Program.cs b/ObjectTK/Shaders/Program.cs
deleted file mode 100644
index 5dee7a7..0000000
--- a/ObjectTK/Shaders/Program.cs
+++ /dev/null
@@ -1,133 +0,0 @@
-//
-// Program.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Reflection;
-using ObjectTK.Exceptions;
-using ObjectTK.Shaders.Variables;
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Shaders
-{
-    /// <summary>
-    /// Represents a program object.
-    /// </summary>
-    public class Program
-        : GLObject
-    {
-        private static readonly Logging.IObjectTKLogger Logger = Logging.LogFactory.GetLogger(typeof(Program));
-
-        /// <summary>
-        /// The name of this shader program.
-        /// </summary>
-        public string Name { get { return GetType().Name; } }
-
-        private List<ProgramVariable> _variables;
-
-        /// <summary>
-        /// Initializes a new program object.
-        /// </summary>
-        protected Program()
-            : base(GL.CreateProgram())
-        {
-            Logger?.InfoFormat("Creating shader program: {0}", Name);
-            InitializeShaderVariables();
-        }
-
-        protected override void Dispose(bool manual)
-        {
-            if (!manual) return;
-            GL.DeleteProgram(Handle);
-        }
-
-        private void InitializeShaderVariables()
-        {
-            const BindingFlags flags = BindingFlags.Instance | BindingFlags.Public;
-            _variables = new List<ProgramVariable>();
-            foreach (var property in GetType().GetProperties(flags).Where(_ => typeof(ProgramVariable).IsAssignableFrom(_.PropertyType)))
-            {
-                var instance = (ProgramVariable)Activator.CreateInstance(property.PropertyType, true);
-                instance.Initialize(this, property);
-                property.SetValue(this, instance, null);
-                _variables.Add(instance);
-            }
-        }
-
-        /// <summary>
-        /// Activate the program.
-        /// </summary>
-        public void Use()
-        {
-            GL.UseProgram(Handle);
-        }
-
-        /// <summary>
-        /// Attach shader object.
-        /// </summary>
-        /// <param name="shader">Specifies the shader object to attach.</param>
-        public void Attach(Shader shader)
-        {
-            GL.AttachShader(Handle, shader.Handle);
-        }
-
-        /// <summary>
-        /// Detach shader object.
-        /// </summary>
-        /// <param name="shader">Specifies the shader object to detach.</param>
-        public void Detach(Shader shader)
-        {
-            GL.DetachShader(Handle, shader.Handle);
-        }
-
-        /// <summary>
-        /// Link the program.
-        /// </summary>
-        public virtual void Link()
-        {
-            Logger?.DebugFormat("Linking program: {0}", Name);
-            GL.LinkProgram(Handle);
-            CheckLinkStatus();
-            // call OnLink() on all ShaderVariables
-            _variables.ForEach(_ => _.OnLink());
-        }
-
-        /// <summary>
-        /// Assert that no link error occured.
-        /// </summary>
-        private void CheckLinkStatus()
-        {
-            // check link status
-            int linkStatus;
-            GL.GetProgram(Handle, GetProgramParameterName.LinkStatus, out linkStatus);
-            Logger?.DebugFormat("Link status: {0}", linkStatus);
-            // check program info log
-            var info = GL.GetProgramInfoLog(Handle);
-            if (!string.IsNullOrEmpty(info)) Logger?.InfoFormat("Link log:\n{0}", info);
-            // log message and throw exception on link error
-            if (linkStatus == 1) return;
-            var msg = string.Format("Error linking program: {0}", Name);
-            Logger?.Error(msg);
-            throw new ProgramLinkException(msg, info);
-        }
-
-        /// <summary>
-        /// Throws an <see cref="ObjectNotBoundException"/> if this program is not the currently active one.
-        /// </summary>
-        public void AssertActive()
-        {
-#if DEBUG
-            int activeHandle;
-            GL.GetInteger(GetPName.CurrentProgram, out activeHandle);
-            if (activeHandle != Handle) throw new ObjectNotBoundException("Program object is not currently active.");
-#endif
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Shaders/ProgramFactory.cs b/ObjectTK/Shaders/ProgramFactory.cs
deleted file mode 100644
index ab9c71a..0000000
--- a/ObjectTK/Shaders/ProgramFactory.cs
+++ /dev/null
@@ -1,163 +0,0 @@
-//
-// ProgramFactory.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Text;
-using ObjectTK.Exceptions;
-using ObjectTK.Shaders.Sources;
-
-namespace ObjectTK.Shaders
-{
-    /// <summary>
-    /// Contains methods to automatically initialize program objects.
-    /// </summary>
-    public static class ProgramFactory
-    {
-        private static readonly Logging.IObjectTKLogger Logger = Logging.LogFactory.GetLogger(typeof(ProgramFactory));
-
-        /// <summary>
-        /// The base path used when looking for shader files.<br/>
-        /// Default is: Data/Shaders/
-        /// </summary>
-        public static string BasePath { get; set; }
-        
-        /// <summary>
-        /// Specifies the default extension appended to effect names.<br/>
-        /// Default is: glsl
-        /// </summary>
-        public static string Extension { get; set; }
-
-        static ProgramFactory()
-        {
-            BasePath = Path.Combine("Data", "Shaders");
-            Extension = "glsl";
-        }
-
-        /// <summary>
-        /// Initializes a program object using the shader sources tagged to the type with <see cref="ShaderSourceAttribute"/>.
-        /// </summary>
-        /// <typeparam name="T">Specifies the program type to create.</typeparam>
-        /// <returns>A compiled and linked program.</returns>
-        public static T Create<T>()
-            where T : Program
-        {
-            // retrieve shader types and filenames from attributes
-            var shaders = ShaderSourceAttribute.GetShaderSources(typeof(T));
-            if (shaders.Count == 0) throw new ObjectTKException("ShaderSourceAttribute(s) missing!");
-            // create program instance
-            var program = (T)Activator.CreateInstance(typeof(T));
-            try
-            {
-                // compile and attach all shaders
-                foreach (var attribute in shaders)
-                {
-                    // create a new shader of the appropriate type
-                    using (var shader = new Shader(attribute.Type))
-                    {
-                        Logger?.DebugFormat("Compiling {0}: {1}", attribute.Type, attribute.EffectKey);
-                        // load the source from effect(s)
-                        var included = new List<Effect.Section>();
-                        var source = GetShaderSource(attribute.EffectKey, included);
-                        // assign source filenames for proper information log output
-                        shader.SourceFiles = included.Select(_ => _.Effect.Path).ToList();
-                        // compile shader source
-                        shader.CompileSource(source);
-                        // attach shader to the program
-                        program.Attach(shader);
-                    }
-                }
-                // link and return the program
-                program.Link();
-            }
-            catch
-            {
-                program.Dispose();
-                throw;
-            }
-            return program;
-        }
-
-        /// <summary>
-        /// Load shader source file(s).<br/>
-        /// Supports multiple source files via "#include xx" directives and corrects the line numbering by using the glsl standard #line directive.
-        /// </summary>
-        /// <param name="effectKey">Specifies the effect key to load.</param>
-        /// <param name="included">Holds the effectKeys of all shaders already loaded to prevent multiple inclusions.</param>
-        /// <returns>The fully assembled shader source.</returns>
-        private static string GetShaderSource(string effectKey, List<Effect.Section> included = null)
-        {
-            if (included == null) included = new List<Effect.Section>();
-            // retrieve effect section
-            Effect.Section section;
-            try
-            {
-                var directory = Path.GetDirectoryName(effectKey);
-                var filename = Path.GetFileName(effectKey);
-                var separator = filename.IndexOf('.');
-                var effectPath = Path.ChangeExtension(Path.Combine(BasePath, directory, filename.Substring(0, separator)), Extension);
-                var shaderKey = filename.Substring(separator + 1);
-                section = Effect.GetSection(effectPath, shaderKey);
-            }
-            catch (Exception ex)
-            {
-                throw new Exception(string.Format("Invalid effect key: {0}", effectKey), ex);
-            }
-            if (section == null) throw new Exception(string.Format("Shader source not found: {0}", effectKey));
-            // check for multiple includes of the same section
-            if (included.Contains(section))
-            {
-                Logger?.WarnFormat("Shader already included: {0}", effectKey);
-                return "";
-            }
-            included.Add(section);
-            // parse source for #include directives and insert proper #line annotations
-            using (var reader = new StringReader(section.Source))
-            {
-                var source = new StringBuilder();
-                var lineNumber = section.FirstLineNumber;
-                var fileNumber = included.Count-1;
-                var fixLine = true;
-                while (true)
-                {
-                    var line = reader.ReadLine();
-                    if (line == null) break;
-                    // check if it is an include statement
-                    const string includeKeyword = "#include";
-                    const string versionKeyword = "#version";
-                    if (!line.StartsWith(includeKeyword))
-                    {
-                        // add correct line number offset to the corresponding section within the effect file
-                        if ((fixLine)&& !line.StartsWith(versionKeyword) )
-                        {
-                            source.AppendLine(string.Format("#line {0} {1}", lineNumber, fileNumber));
-                            fixLine = false;
-                        }
-                        source.AppendLine(line);
-                    }
-                    else
-                    {
-                        // parse the included filename
-                        var includedEffectKey = line.Remove(0, includeKeyword.Length).Trim();
-                        // make the include path relative to the current file
-                        includedEffectKey = Path.Combine(Path.GetDirectoryName(effectKey) ?? "", includedEffectKey);
-                        // replace current line with the source of the included section
-                        source.Append(GetShaderSource(includedEffectKey, included));
-                        // remember to fix the line numbering on the next line
-                        fixLine = true;
-                    }
-                    lineNumber++;
-                }
-                return source.ToString();
-            }
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Shaders/Shader.cs b/ObjectTK/Shaders/Shader.cs
deleted file mode 100644
index 2e5daaa..0000000
--- a/ObjectTK/Shaders/Shader.cs
+++ /dev/null
@@ -1,92 +0,0 @@
-//
-// Shader.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System.Collections.Generic;
-using System.Text.RegularExpressions;
-using ObjectTK.Exceptions;
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Shaders
-{
-    /// <summary>
-    /// Represents a shader object.
-    /// </summary>
-    public class Shader
-        : GLObject
-    {
-        private static readonly Logging.IObjectTKLogger Logger = Logging.LogFactory.GetLogger(typeof(Shader));
-
-        /// <summary>
-        /// Specifies the type of this shader.
-        /// </summary>
-        public readonly ShaderType Type;
-
-        /// <summary>
-        /// Specifies a list of source filenames which are used to improve readability of the the information log in case of an error.
-        /// </summary>
-        public List<string> SourceFiles;
-
-        /// <summary>
-        /// Used to match and replace the source filenames into the information log.
-        /// </summary>
-        private static readonly Regex Regenechse = new Regex(@"^ERROR: (\d+):", RegexOptions.Multiline);
-
-        /// <summary>
-        /// Initializes a new shader object of the given type.
-        /// </summary>
-        /// <param name="type"></param>
-        public Shader(ShaderType type)
-            : base(GL.CreateShader(type))
-        {
-            Type = type;
-        }
-
-        protected override void Dispose(bool manual)
-        {
-            if (!manual) return;
-            GL.DeleteShader(Handle);
-        }
-
-        /// <summary>
-        /// Loads the given source file and compiles the shader.
-        /// </summary>
-        public void CompileSource(string source)
-        {
-            GL.ShaderSource(Handle, source);
-            GL.CompileShader(Handle);
-            CheckCompileStatus();
-        }
-
-        /// <summary>
-        /// Assert that no compile error occured.
-        /// </summary>
-        private void CheckCompileStatus()
-        {
-            // check compile status
-            int compileStatus;
-            GL.GetShader(Handle, ShaderParameter.CompileStatus, out compileStatus);
-            Logger?.DebugFormat("Compile status: {0}", compileStatus);
-            // check shader info log
-            var info = GL.GetShaderInfoLog(Handle);
-            if (SourceFiles != null) info = Regenechse.Replace(info, GetSource);
-            if (!string.IsNullOrEmpty(info)) Logger?.InfoFormat("Compile log:\n{0}", info);
-            // log message and throw exception on compile error
-            if (compileStatus == 1) return;
-            const string msg = "Error compiling shader.";
-            Logger?.Error(msg);
-            throw new ShaderCompileException(msg, info);
-        }
-
-        private string GetSource(Match match)
-        {
-            var index = int.Parse(match.Groups[1].Value);
-            return index < SourceFiles.Count ? string.Format("ERROR: {0}:", SourceFiles[index]) : match.ToString();
-        }
-    }
-}
diff --git a/ObjectTK/Shaders/Sources/ComputeShaderSourceAttribute.cs b/ObjectTK/Shaders/Sources/ComputeShaderSourceAttribute.cs
deleted file mode 100644
index bb8a8ca..0000000
--- a/ObjectTK/Shaders/Sources/ComputeShaderSourceAttribute.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-//
-// ComputeShaderSourceAttribute.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Shaders.Sources
-{
-    /// <summary>
-    /// Specifies the source of a compute shader.
-    /// </summary>
-    public class ComputeShaderSourceAttribute
-        : ShaderSourceAttribute
-    {
-        /// <summary>
-        /// Initializes a new instance of the ComputeShaderSourceAttribute.
-        /// </summary>
-        /// <param name="effectKey">Specifies the effect key for this shader.</param>
-        public ComputeShaderSourceAttribute(string effectKey)
-            : base(ShaderType.ComputeShader, effectKey)
-        {
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Shaders/Sources/FragmentShaderSourceAttribute.cs b/ObjectTK/Shaders/Sources/FragmentShaderSourceAttribute.cs
deleted file mode 100644
index 50a0a62..0000000
--- a/ObjectTK/Shaders/Sources/FragmentShaderSourceAttribute.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-//
-// FragmentShaderSourceAttribute.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Shaders.Sources
-{
-    /// <summary>
-    /// Specifies the source of a fragment shader.
-    /// </summary>
-    public class FragmentShaderSourceAttribute
-        : ShaderSourceAttribute
-    {
-        /// <summary>
-        /// Initializes a new instance of the FragmentShaderSourceAttribute.
-        /// </summary>
-        /// <param name="effectKey">Specifies the effect key for this shader.</param>
-        public FragmentShaderSourceAttribute(string effectKey)
-            : base(ShaderType.FragmentShader, effectKey)
-        {
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Shaders/Sources/GeometryShaderSourceAttribute.cs b/ObjectTK/Shaders/Sources/GeometryShaderSourceAttribute.cs
deleted file mode 100644
index ca555ae..0000000
--- a/ObjectTK/Shaders/Sources/GeometryShaderSourceAttribute.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-//
-// GeometryShaderSourceAttribute.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Shaders.Sources
-{
-    /// <summary>
-    /// Specifies the source of a geometry shader.
-    /// </summary>
-    public class GeometryShaderSourceAttribute
-        : ShaderSourceAttribute
-    {
-        /// <summary>
-        /// Initializes a new instance of the GeometryShaderSourceAttribute.
-        /// </summary>
-        /// <param name="effectKey">Specifies the effect key for this shader.</param>
-        public GeometryShaderSourceAttribute(string effectKey)
-            : base(ShaderType.GeometryShader, effectKey)
-        {
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Shaders/Sources/ShaderSourceAttribute.cs b/ObjectTK/Shaders/Sources/ShaderSourceAttribute.cs
deleted file mode 100644
index 6fb77d4..0000000
--- a/ObjectTK/Shaders/Sources/ShaderSourceAttribute.cs
+++ /dev/null
@@ -1,56 +0,0 @@
-//
-// ShaderSourceAttribute.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Shaders.Sources
-{
-    /// <summary>
-    /// Specifies a source file which contains a single shader of predefined type.
-    /// </summary>
-    [AttributeUsage(AttributeTargets.Class)]
-    public class ShaderSourceAttribute
-        : Attribute
-    {
-        /// <summary>
-        /// Specifies the type of shader.
-        /// </summary>
-        public ShaderType Type { get; private set; }
-
-        /// <summary>
-        /// Specifies the effect key for this shader.<br/>
-        /// Example: Path/to/file/CoolShader.Fragment.Diffuse
-        /// </summary>
-        public string EffectKey { get; private set; }
-
-        /// <summary>
-        /// Initializes a new instance of the ShaderSourceAttribute.
-        /// </summary>
-        /// <param name="type">Specifies the type of the shader.</param>
-        /// <param name="effectKey">Specifies the effect key for this shader.</param>
-        protected ShaderSourceAttribute(ShaderType type, string effectKey)
-        {
-            Type = type;
-            EffectKey = effectKey;
-        }
-
-        /// <summary>
-        /// Retrieves all shader sources from attributes tagged to the given program type.
-        /// </summary>
-        /// <param name="programType">Specifies the type of the program of which the shader sources are to be found.</param>
-        /// <returns>A mapping of ShaderType and source path.</returns>
-        public static List<ShaderSourceAttribute> GetShaderSources(Type programType)
-        {
-            return programType.GetCustomAttributes<ShaderSourceAttribute>(true).ToList();
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Shaders/Sources/TessControlShaderSourceAttribute.cs b/ObjectTK/Shaders/Sources/TessControlShaderSourceAttribute.cs
deleted file mode 100644
index 0e2b165..0000000
--- a/ObjectTK/Shaders/Sources/TessControlShaderSourceAttribute.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-//
-// TessControlShaderSourceAttribute.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Shaders.Sources
-{
-    /// <summary>
-    /// Specifies the source of a vertex shader.
-    /// </summary>
-    public class TessControlShaderSourceAttribute
-        : ShaderSourceAttribute
-    {
-        /// <summary>
-        /// Initializes a new instance of the TessControlShaderSourceAttribute.
-        /// </summary>
-        /// <param name="effectKey">Specifies the effect key for this shader.</param>
-        public TessControlShaderSourceAttribute(string effectKey)
-            : base(ShaderType.TessControlShader, effectKey)
-        {
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Shaders/Sources/TessEvaluationShaderSourceAttribute.cs b/ObjectTK/Shaders/Sources/TessEvaluationShaderSourceAttribute.cs
deleted file mode 100644
index fe00f44..0000000
--- a/ObjectTK/Shaders/Sources/TessEvaluationShaderSourceAttribute.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-//
-// TessEvaluationShaderSourceAttribute.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Shaders.Sources
-{
-    /// <summary>
-    /// Specifies the source of a vertex shader.
-    /// </summary>
-    public class TessEvaluationShaderSourceAttribute
-        : ShaderSourceAttribute
-    {
-        /// <summary>
-        /// Initializes a new instance of the TessEvaluationShaderSourceAttribute.
-        /// </summary>
-        /// <param name="effectKey">Specifies the effect key for this shader.</param>
-        public TessEvaluationShaderSourceAttribute(string effectKey)
-            : base(ShaderType.TessEvaluationShader, effectKey)
-        {
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Shaders/Sources/VertexShaderSourceAttribute.cs b/ObjectTK/Shaders/Sources/VertexShaderSourceAttribute.cs
deleted file mode 100644
index eb56e04..0000000
--- a/ObjectTK/Shaders/Sources/VertexShaderSourceAttribute.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-//
-// VertexShaderSourceAttribute.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Shaders.Sources
-{
-    /// <summary>
-    /// Specifies the source of a vertex shader.
-    /// </summary>
-    public class VertexShaderSourceAttribute
-        : ShaderSourceAttribute
-    {
-        /// <summary>
-        /// Initializes a new instance of the VertexShaderSourceAttribute.
-        /// </summary>
-        /// <param name="effectKey">Specifies the effect key for this shader.</param>
-        public VertexShaderSourceAttribute(string effectKey)
-            : base(ShaderType.VertexShader, effectKey)
-        {
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Shaders/TransformProgram.cs b/ObjectTK/Shaders/TransformProgram.cs
deleted file mode 100644
index ceda9bb..0000000
--- a/ObjectTK/Shaders/TransformProgram.cs
+++ /dev/null
@@ -1,80 +0,0 @@
-//
-// TransformProgram.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System.Linq;
-using ObjectTK.Exceptions;
-using ObjectTK.Shaders.Variables;
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Shaders
-{
-    /// <summary>
-    /// Represents a program object which utilizes transform feedback.
-    /// </summary>
-    public class TransformProgram
-        : Program
-    {
-        /// <summary>
-        /// Represents "gl_NextBuffer" when specifying feedback varyings and using advanced interleaving.
-        /// </summary>
-        public static TransformOut NextBuffer = new TransformOut("gl_NextBuffer");
-
-        /// <summary>
-        /// Represents "gl_SkipComponents1" when specifying feedback varyings and using advanced interleaving.
-        /// </summary>
-        public static TransformOut SkipComponents1 = new TransformOut("gl_SkipComponents1");
-
-        /// <summary>
-        /// Represents "gl_SkipComponents2" when specifying feedback varyings and using advanced interleaving.
-        /// </summary>
-        public static TransformOut SkipComponents2 = new TransformOut("gl_SkipComponents2");
-
-        /// <summary>
-        /// Represents "gl_SkipComponents3" when specifying feedback varyings and using advanced interleaving.
-        /// </summary>
-        public static TransformOut SkipComponents3 = new TransformOut("gl_SkipComponents3");
-
-        /// <summary>
-        /// Represents "gl_SkipComponents4" when specifying feedback varyings and using advanced interleaving.
-        /// </summary>
-        public static TransformOut SkipComponents4 = new TransformOut("gl_SkipComponents4");
-
-        /// <summary>
-        /// Holds a list of all special keywords which can only be used with advanced interleaving.
-        /// </summary>
-        private static readonly TransformOut[] SpecialOuts = { NextBuffer, SkipComponents1, SkipComponents2, SkipComponents3, SkipComponents4 };
-
-        /// <summary>
-        /// Specify values to record in transform feedback buffers.
-        /// </summary>
-        /// <remarks>
-        /// Transform feedback varyings must be specified before linking the program. Either specify them in the constructor of the program
-        /// or call <see cref="Program.Link"/> again after a call to this method.<br/>
-        /// To specify the keywords introduced with advanced interleaving "gl_NextBuffer" and "gl_SkipComponents#"
-        /// use the TransformOut dummy-instances <see cref="NextBuffer"/> and <see cref="SkipComponents1"/>, etc.
-        /// </remarks>
-        /// <param name="bufferMode">Identifies the mode used to capture the varying variables when transform feedback is active. bufferMode must be InterleavedAttribs or SeparateAttribs.</param>
-        /// <param name="feedbackVaryings">An array of TransformOut objects specifying the varying variables to use for transform feedback.</param>
-        public void FeedbackVaryings(TransformFeedbackMode bufferMode, params TransformOut[] feedbackVaryings)
-        {
-            //TODO: find out if the varyings buffer binding indices can be queried from OpenGL
-            var index = 0;
-            foreach (var output in feedbackVaryings)
-            {
-                if (bufferMode == TransformFeedbackMode.SeparateAttribs && SpecialOuts.Contains(output))
-                    throw new ObjectTKException("Advanced interleaving features can not be used with separate mode.");
-                // set the outputs buffer binding index
-                output.Index = index;
-                // increase the index if all outputs get routed to a separate bindind or if the gl_NextBuffer keyword is found
-                if (bufferMode == TransformFeedbackMode.SeparateAttribs || output == NextBuffer) index++;
-            }
-            GL.TransformFeedbackVaryings(Handle, feedbackVaryings.Length, feedbackVaryings.Select(_ => _.Name).ToArray(), bufferMode);
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Shaders/Variables/BufferBinding.cs b/ObjectTK/Shaders/Variables/BufferBinding.cs
deleted file mode 100644
index f2b8cac..0000000
--- a/ObjectTK/Shaders/Variables/BufferBinding.cs
+++ /dev/null
@@ -1,98 +0,0 @@
-//
-// BufferBinding.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System;
-using ObjectTK.Buffers;
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Shaders.Variables
-{
-    /// <summary>
-    /// Represents a shader buffer binding point identified by its resource index.
-    /// </summary>
-    public abstract class BufferBinding
-        : ProgramVariable
-    {
-        private static readonly Logging.IObjectTKLogger Logger = Logging.LogFactory.GetLogger(typeof(BufferBinding));
-
-        /// <summary>
-        /// The target to use when binding to this point.
-        /// </summary>
-        public readonly BufferRangeTarget BindingTarget;
-
-        /// <summary>
-        /// The resource index of this binding point.
-        /// </summary>
-        public int Index { get; private set; }
-
-        /// <summary>
-        /// Current binding point
-        /// </summary>
-        protected int Binding;
-
-        private readonly ProgramInterface _programInterface;
-
-        internal BufferBinding(BufferRangeTarget bindingTarget, ProgramInterface programInterface)
-        {
-            BindingTarget = bindingTarget;
-            _programInterface = programInterface;
-        }
-
-        internal override void OnLink()
-        {
-            Index = GL.GetProgramResourceIndex(ProgramHandle, _programInterface, Name);
-            Active = Index > -1;
-            if (!Active) Logger?.WarnFormat("Binding block not found or not active: {0}", Name);
-            Binding = -1;
-        }
-
-        /// <summary>
-        /// Assigns a binding point.
-        /// </summary>
-        public virtual void ChangeBinding(int binding)
-        {
-            Binding = binding;
-        }
-
-        /// <summary>
-        /// Binds a buffer to this binding point.
-        /// </summary>
-        /// <typeparam name="T">The type of the container elements.</typeparam>
-        /// <param name="buffer">The buffer to bind.</param>
-        public void BindBuffer<T>(Buffer<T> buffer)
-            where T : struct
-        {
-            if (!Active) return;
-            GL.BindBufferBase(BindingTarget, Binding, buffer.Handle);
-        }
-
-        /// <summary>
-        /// Binds a buffer to this binding point.
-        /// </summary>
-        /// <typeparam name="T">The type of the container elements.</typeparam>
-        /// <param name="buffer">The buffer to bind.</param>
-        /// <param name="offset">The starting offset in basic machine units into the buffer object buffer. </param>
-        /// <param name="size">The amount of data in machine units that can be read from the buffer object while used as an indexed target. </param>
-        public void BindBuffer<T>(Buffer<T> buffer, int offset, int size)
-            where T : struct
-        {
-            if (!Active) return;
-            GL.BindBufferRange(BindingTarget, Binding, buffer.Handle, (IntPtr)offset, (IntPtr)size);
-        }
-
-        /// <summary>
-        /// Unbinds any buffer from this binding point.
-        /// </summary>
-        public void Unbind()
-        {
-            if (!Active) return;
-            GL.BindBufferBase(BindingTarget, Binding, 0);
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Shaders/Variables/FragData.cs b/ObjectTK/Shaders/Variables/FragData.cs
deleted file mode 100644
index 7ce8484..0000000
--- a/ObjectTK/Shaders/Variables/FragData.cs
+++ /dev/null
@@ -1,40 +0,0 @@
-//
-// FragData.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Shaders.Variables
-{
-    /// <summary>
-    /// Represents a fragment shader output.<br/>
-    /// TODO: implement methods to bind output to a specific attachment
-    /// see glBindFragDataLocation, glDrawBuffers and http://stackoverflow.com/questions/1733838/fragment-shaders-output-variables
-    /// </summary>
-    public sealed class FragData
-        : ProgramVariable
-    {
-        private static readonly Logging.IObjectTKLogger Logger = Logging.LogFactory.GetLogger(typeof(FragData));
-
-        /// <summary>
-        /// The location of the output.
-        /// </summary>
-        public int Location { get; private set; }
-
-        internal FragData()
-        {
-        }
-
-        internal override void OnLink()
-        {
-            //TODO: find out what GL.GetFragDataIndex(); does
-            Location = GL.GetFragDataLocation(ProgramHandle, Name);
-            if (Location == -1) Logger?.WarnFormat("Output variable not found or not active: {0}", Name);
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Shaders/Variables/ImageUniform.cs b/ObjectTK/Shaders/Variables/ImageUniform.cs
deleted file mode 100644
index 907fcbe..0000000
--- a/ObjectTK/Shaders/Variables/ImageUniform.cs
+++ /dev/null
@@ -1,138 +0,0 @@
-//
-// ImageUniform.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using ObjectTK.Textures;
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Shaders.Variables
-{
-    /// <summary>
-    /// Represents an image uniform.
-    /// </summary>
-    public sealed class ImageUniform
-        : Uniform<int>
-    {
-        internal ImageUniform()
-            : base(GL.Uniform1)
-        {
-        }
-
-        /// <summary>
-        /// Binds the given buffer texture to an image unit.
-        /// </summary>
-        /// <param name="imageUnit">The image unit to use.</param>
-        /// <param name="textureBuffer">The buffer texture to bind.</param>
-        /// <param name="access">Specifies the type of access allowed on the image.</param>
-        public void Bind(int imageUnit, TextureBuffer textureBuffer, TextureAccess access)
-        {
-            Bind(imageUnit, textureBuffer, 0, false, 0, access);
-        }
-
-        /// <summary>
-        /// Binds a single face of the given texture level to an image unit.<br/>
-        /// Calculates the index of the layer-face as 6 * arrayLayer + face.
-        /// </summary>
-        /// <param name="imageUnit">The image unit to use.</param>
-        /// <param name="texture">The texture to bind.</param>
-        /// <param name="level">The mipmap level to bind.</param>
-        /// <param name="arrayLayer">The layer of the texture to bind.</param>
-        /// <param name="face">The cube map face to bind.</param>
-        /// <param name="access">Specifies the type of access allowed on the image.</param>
-        public void Bind(int imageUnit, TextureCubemapArray texture, int level, int arrayLayer, int face, TextureAccess access)
-        {
-            // note: the layer parameter indexes the layer-faces, hence the multiplication of the array-layer by 6
-            Bind(imageUnit, texture, level, false, 6 * arrayLayer + face, access);
-        }
-
-        /// <summary>
-        /// Binds a single face of the given texture level to an image unit.
-        /// </summary>
-        /// <param name="imageUnit">The image unit to use.</param>
-        /// <param name="texture">The texture to bind.</param>
-        /// <param name="level">The mipmap level to bind.</param>
-        /// <param name="face">The cube map face to bind.</param>
-        /// <param name="access">Specifies the type of access allowed on the image.</param>
-        public void Bind(int imageUnit, TextureCubemap texture, int level, int face, TextureAccess access)
-        {
-            Bind(imageUnit, texture, level, false, face, access);
-        }
-
-        /// <summary>
-        /// Binds a single layer of the given texture level to an image unit.<br/>
-        /// Note that for cube maps and cube map arrays the <paramref name="layer"/> parameter actually indexes the layer-faces.<br/>
-        /// Thus for cube maps the layer parameter equals the face to be bound.<br/>
-        /// For cube map arrays the layer parameter can be calculated as 6 * arrayLayer + face, which is done automatically when using
-        /// the corresponding overload <see cref="Bind(int,TextureCubemapArray,int,int,int,OpenTK.Graphics.OpenGL.TextureAccess)"/>.
-        /// </summary>
-        /// <param name="imageUnit">The image unit to use.</param>
-        /// <param name="texture">The texture to bind.</param>
-        /// <param name="level">The mipmap level to bind.</param>
-        /// <param name="layer">The layer of the texture to bind.</param>
-        /// <param name="access">Specifies the type of access allowed on the image.</param>
-        public void Bind(int imageUnit, LayeredTexture texture, int level, int layer, TextureAccess access)
-        {
-            Bind(imageUnit, texture, level, false, layer, access);
-        }
-
-        /// <summary>
-        /// Binds an entire level of the given texture to an image unit.<br/>
-        /// The mipmap level defaults to zero.
-        /// </summary>
-        /// <param name="imageUnit">The image unit to use.</param>
-        /// <param name="texture">The texture to bind.</param>
-        /// <param name="access">Specifies the type of access allowed on the image.</param>
-        public void Bind(int imageUnit, Texture texture, TextureAccess access)
-        {
-            Bind(imageUnit, texture, 0, true, 0, access);
-        }
-
-        /// <summary>
-        /// Binds an entire level of the given texture to an image unit.
-        /// </summary>
-        /// <param name="imageUnit">The image unit to use.</param>
-        /// <param name="texture">The texture to bind.</param>
-        /// <param name="level">The mipmap level to bind.</param>
-        /// <param name="access">Specifies the type of access allowed on the image.</param>
-        public void Bind(int imageUnit, Texture texture, int level, TextureAccess access)
-        {
-            Bind(imageUnit, texture, level, true, 0, access);
-        }
-
-        /// <summary>
-        /// Binds a single level of a texture to an image unit.
-        /// </summary>
-        /// <param name="imageUnit">The image unit to use.</param>
-        /// <param name="texture">The texture to bind.</param>
-        /// <param name="level">The mipmap level to bind.</param>
-        /// <param name="layered">Specifies whether a layered texture binding is to be established.</param>
-        /// <param name="layer">If <paramref name="layered"/> is false, specifies the layer of the texture to be bound, ignored otherwise.</param>
-        /// <param name="access">Specifies the type of access allowed on the image.</param>
-        public void Bind(int imageUnit, Texture texture, int level, bool layered, int layer, TextureAccess access)
-        {
-            texture.AssertLevel(level);
-            Bind(imageUnit, texture.Handle, level, layered, layer, access, texture.InternalFormat);
-        }
-
-        /// <summary>
-        /// Binds a single level of a texture to an image unit.
-        /// </summary>
-        /// <param name="imageUnit">The image unit to use.</param>
-        /// <param name="textureHandle">The handle of the texture.</param>
-        /// <param name="level">The mipmap level to bind.</param>
-        /// <param name="layered">Specifies whether a layered texture binding is to be established.</param>
-        /// <param name="layer">If <paramref name="layered"/> is false, specifies the layer of the texture to be bound, ignored otherwise.</param>
-        /// <param name="access">Specifies the type of access allowed on the image.</param>
-        /// <param name="format">Specifies the format that the elements of the texture will be treated as.</param>
-        public void Bind(int imageUnit, int textureHandle, int level, bool layered, int layer, TextureAccess access, SizedInternalFormat format)
-        {
-            Set(imageUnit);
-            GL.BindImageTexture(imageUnit, textureHandle, level, layered, layer, access, format);
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Shaders/Variables/ProgramVariable.cs b/ObjectTK/Shaders/Variables/ProgramVariable.cs
deleted file mode 100644
index 4bba1ed..0000000
--- a/ObjectTK/Shaders/Variables/ProgramVariable.cs
+++ /dev/null
@@ -1,59 +0,0 @@
-//
-// ProgramVariable.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System.Reflection;
-
-namespace ObjectTK.Shaders.Variables
-{
-    /// <summary>
-    /// Represents a shader variable identified by its name and the corresponding program handle.
-    /// </summary>
-    public abstract class ProgramVariable
-    {
-        /// <summary>
-        /// The handle of the program to which this variable relates.
-        /// </summary>
-        protected Program Program { get; private set; }
-
-        /// <summary>
-        /// The handle of the program to which this variable relates.
-        /// </summary>
-        public int ProgramHandle { get { return Program.Handle; } }
-
-        /// <summary>
-        /// The name of this shader variable.
-        /// </summary>
-        public string Name { get; protected set; }
-
-        /// <summary>
-        /// Specifies whether this variable is active.<br/>
-        /// Unused variables are generally removed by OpenGL and cause them to be inactive.
-        /// </summary>
-        public bool Active { get; protected set; }
-
-        /// <summary>
-        /// Initializes this instance using the given Program and PropertyInfo.
-        /// </summary>
-        internal virtual void Initialize(Program program, PropertyInfo property)
-        {
-            Program = program;
-            Name = property.Name;
-        }
-
-        /// <summary>
-        /// When overridden in a derived class, handles initialization which must occur after the program object is linked.
-        /// </summary>
-        internal virtual void OnLink() { }
-
-        public override string ToString()
-        {
-            return string.Format("{0}.{1}", Program.Name, Name);
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Shaders/Variables/ShaderStorage.cs b/ObjectTK/Shaders/Variables/ShaderStorage.cs
deleted file mode 100644
index efc166a..0000000
--- a/ObjectTK/Shaders/Variables/ShaderStorage.cs
+++ /dev/null
@@ -1,43 +0,0 @@
-//
-// ShaderStorage.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Shaders.Variables
-{
-    /// <summary>
-    /// Represents a shader storage buffer object (SSBO) binding.
-    /// </summary>
-    public sealed class ShaderStorage
-        : BufferBinding
-    {
-        internal ShaderStorage()
-            : base(BufferRangeTarget.ShaderStorageBuffer, ProgramInterface.ShaderStorageBlock)
-        {
-        }
-
-        internal override void OnLink()
-        {
-            base.OnLink();
-            //TODO: find out if the current binding point can be queried, like it can be for uniform blocks
-            // set the binding point to the blocks index
-            if (Active) ChangeBinding(Index);
-        }
-
-        /// <summary>
-        /// Assigns a binding point to this shader storage block.
-        /// </summary>
-        /// <param name="binding"></param>
-        public override void ChangeBinding(int binding)
-        {
-            base.ChangeBinding(binding);
-            GL.ShaderStorageBlockBinding(ProgramHandle, Index, binding);
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Shaders/Variables/TextureUniform.cs b/ObjectTK/Shaders/Variables/TextureUniform.cs
deleted file mode 100644
index c8b0782..0000000
--- a/ObjectTK/Shaders/Variables/TextureUniform.cs
+++ /dev/null
@@ -1,54 +0,0 @@
-//
-// TextureUniform.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using ObjectTK.Textures;
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Shaders.Variables
-{
-    /// <summary>
-    /// Represents a typed texture uniform. Allows only textures of the given type to be bound.
-    /// </summary>
-    public class TextureUniform<T>
-        : Uniform<int>
-        where T : Texture
-    {
-        internal TextureUniform()
-            : base(GL.Uniform1)
-        {
-        }
-
-        /// <summary>
-        /// Sets this uniform to sample from the given texture unit.<br/>
-        /// Calls to <see cref="Set(TextureUnit)"/> are equivalent to <see cref="Uniform{T}.Set"/>
-        /// with the corresponding integer, it just adds readability.
-        /// </summary>
-        /// <param name="unit">The texture unit to sample from.</param>
-        public void Set(TextureUnit unit)
-        {
-            Set((int)unit - (int)TextureUnit.Texture0);
-        }
-
-        /// <summary>
-        /// Binds a texture to the given texture unit and sets the corresponding uniform to the respective number to access it.
-        /// </summary>
-        /// <param name="unit">The texture unit to bind to.</param>
-        /// <param name="texture">The texture to bind.</param>
-        public void BindTexture(TextureUnit unit, T texture)
-        {
-            Set(unit);
-            texture.Bind(unit);
-        }
-    }
-
-    /// <summary>
-    /// Represents a texture uniform. Allows any texture type to be bound.
-    /// </summary>
-    public sealed class TextureUniform : TextureUniform<Texture> { }
-}
\ No newline at end of file
diff --git a/ObjectTK/Shaders/Variables/TransformOut.cs b/ObjectTK/Shaders/Variables/TransformOut.cs
deleted file mode 100644
index 0d41be1..0000000
--- a/ObjectTK/Shaders/Variables/TransformOut.cs
+++ /dev/null
@@ -1,37 +0,0 @@
-//
-// TransformOut.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-namespace ObjectTK.Shaders.Variables
-{
-    /// <summary>
-    /// Represents a transform feedback output varying.
-    /// </summary>
-    public sealed class TransformOut
-        : ProgramVariable
-    {
-        /// <summary>
-        /// Specifies the transform feedback buffer binding index of this output.
-        /// </summary>
-        public int Index { get; internal set; }
-
-        internal TransformOut()
-        {
-            Index = -1;
-            Active = false;
-        }
-
-        /// <summary>
-        /// Initializes a dummy instance of TransformOut used for the keywords introduced with advanced interleaving.
-        /// </summary>
-        internal TransformOut(string name)
-        {
-            Name = name;
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Shaders/Variables/Uniform.cs b/ObjectTK/Shaders/Variables/Uniform.cs
deleted file mode 100644
index 6723b9b..0000000
--- a/ObjectTK/Shaders/Variables/Uniform.cs
+++ /dev/null
@@ -1,85 +0,0 @@
-//
-// Uniform.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System;
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Shaders.Variables
-{
-    /// <summary>
-    /// Represents a uniform.
-    /// </summary>
-    /// <typeparam name="T">The type of the uniform.</typeparam>
-    public class Uniform<T>
-        : ProgramVariable
-    {
-        private static readonly Logging.IObjectTKLogger Logger = Logging.LogFactory.GetLogger(typeof(Uniform<T>));
-
-        /// <summary>
-        /// The location of the uniform within the shader program.
-        /// </summary>
-        public int Location { get; private set; }
-        
-        /// <summary>
-        /// Action used to set the uniform.<br/>
-        /// Inputs are the uniforms location and the value to set.
-        /// </summary>
-        private readonly Action<int, T> _setter;
-
-        /// <summary>
-        /// The current value of the uniform.
-        /// </summary>
-        private T _value;
-
-        /// <summary>
-        /// Gets or sets the current value of the shader uniform.
-        /// </summary>
-        public T Value
-        {
-            get
-            {
-                return _value;
-            }
-            set
-            {
-                Set(value);
-            }
-        }
-
-        internal Uniform()
-            : this(UniformSetter.Get<T>())
-        {
-        }
-
-        public Uniform(Action<int, T> setter)
-        {
-            if (setter == null) throw new ArgumentNullException("setter");
-            _setter = setter;
-        }
-
-        internal override void OnLink()
-        {
-            Location = GL.GetUniformLocation(ProgramHandle, Name);
-            Active = Location > -1;
-            if (!Active) Logger?.WarnFormat("Uniform not found or not active: {0}", Name);
-        }
-
-        /// <summary>
-        /// Sets the given value to the program uniform.<br/>
-        /// Must be called on an active program, i.e. after <see cref="Program"/>.<see cref="Program.Use()"/>.
-        /// </summary>
-        /// <param name="value">The value to set.</param>
-        public void Set(T value)
-        {
-            Program.AssertActive();
-            _value = value;
-            if (Active) _setter(Location, value);
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Shaders/Variables/UniformBuffer.cs b/ObjectTK/Shaders/Variables/UniformBuffer.cs
deleted file mode 100644
index 68acffe..0000000
--- a/ObjectTK/Shaders/Variables/UniformBuffer.cs
+++ /dev/null
@@ -1,68 +0,0 @@
-//
-// UniformBuffer.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Shaders.Variables
-{
-    /// <summary>
-    /// Represents a uniform buffer object (UBO) binding.
-    /// </summary>
-    public sealed class UniformBuffer
-        : BufferBinding
-    {
-        internal UniformBuffer()
-            : base(BufferRangeTarget.UniformBuffer, ProgramInterface.UniformBlock)
-        {
-        }
-
-        internal override void OnLink()
-        {
-            base.OnLink();
-            // retrieve the default binding point
-            if (Active) GL.GetActiveUniformBlock(ProgramHandle, Index, ActiveUniformBlockParameter.UniformBlockBinding, out Binding);
-        }
-
-        /// <summary>
-        /// Assigns a binding point to this uniform block.
-        /// </summary>
-        /// <param name="binding">The binding point to assign.</param>
-        public override void ChangeBinding(int binding)
-        {
-            base.ChangeBinding(binding);
-            if (!Active) return;
-            GL.UniformBlockBinding(ProgramHandle, Index, binding);
-        }
-
-        /// <summary>
-        /// Retrieves the total size of the uniform block.
-        /// </summary>
-        /// <returns>The total size of the uniform block.</returns>
-        public int GetBlockSize()
-        {
-            int size;
-            GL.GetActiveUniformBlock(ProgramHandle, Index, ActiveUniformBlockParameter.UniformBlockDataSize, out size);
-            return size;
-        }
-
-        /// <summary>
-        /// Retrieves the offsets of the uniforms within the block to the start of the block.
-        /// </summary>
-        /// <param name="offsets">The offsets of the uniforms within the block.</param>
-        public void GetBlockOffsets(out int[] offsets)
-        {
-            int uniforms;
-            GL.GetActiveUniformBlock(ProgramHandle, Index, ActiveUniformBlockParameter.UniformBlockActiveUniforms, out uniforms);
-            var indices = new int[uniforms];
-            GL.GetActiveUniformBlock(ProgramHandle, Index, ActiveUniformBlockParameter.UniformBlockActiveUniformIndices, indices);
-            offsets = new int[uniforms];
-            GL.GetActiveUniforms(ProgramHandle, uniforms, indices, ActiveUniformParameter.UniformOffset, offsets);
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Shaders/Variables/UniformSetter.cs b/ObjectTK/Shaders/Variables/UniformSetter.cs
deleted file mode 100644
index 52661cf..0000000
--- a/ObjectTK/Shaders/Variables/UniformSetter.cs
+++ /dev/null
@@ -1,80 +0,0 @@
-//
-// UniformSetter.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System;
-using System.Collections.Generic;
-using System.Drawing;
-using System.Linq;
-using ObjectTK.Exceptions;
-using OpenTK;
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Shaders.Variables
-{
-    internal abstract class UniformSetter
-    {
-        protected abstract Type MappedType { get; }
-
-        private class Map<T>
-            : UniformSetter
-        {
-            protected override Type MappedType { get { return typeof(T); } }
-
-            public readonly Action<int, T> Setter;
-
-            public Map(Action<int, T> setter)
-            {
-                Setter = setter;
-            }
-        }
-
-        private UniformSetter() { }
-
-        private static readonly List<UniformSetter> Setters = new List<UniformSetter>();
-
-        static UniformSetter()
-        {
-            Setters = new List<UniformSetter>
-            {
-                new Map<bool>((_,value) => GL.Uniform1(_, value ? 1 : 0)),
-                new Map<int>(GL.Uniform1),
-                new Map<uint>(GL.Uniform1),
-                new Map<float>(GL.Uniform1),
-                new Map<double>(GL.Uniform1),
-                new Map<Half>((_, half) => GL.Uniform1(_, half)),
-                new Map<Color>((_, color) => GL.Uniform4(_, color)),
-                new Map<Vector2>(GL.Uniform2),
-                new Map<Vector3>(GL.Uniform3),
-                new Map<Vector4>(GL.Uniform4),
-                new Map<Vector2d>((_, vector) => GL.Uniform2(_, vector.X, vector.Y)),
-                new Map<Vector2h>((_, vector) => GL.Uniform2(_, vector.X, vector.Y)),
-                new Map<Vector3d>((_, vector) => GL.Uniform3(_, vector.X, vector.Y, vector.Z)),
-                new Map<Vector3h>((_, vector) => GL.Uniform3(_, vector.X, vector.Y, vector.Z)),
-                new Map<Vector4d>((_, vector) => GL.Uniform4(_, vector.X, vector.Y, vector.Z, vector.W)),
-                new Map<Vector4h>((_, vector) => GL.Uniform4(_, vector.X, vector.Y, vector.Z, vector.W)),
-                new Map<Matrix2>((_, matrix) => GL.UniformMatrix2(_, false, ref matrix)),
-                new Map<Matrix3>((_, matrix) => GL.UniformMatrix3(_, false, ref matrix)),
-                new Map<Matrix4>((_, matrix) => GL.UniformMatrix4(_, false, ref matrix)),
-                new Map<Matrix2x3>((_, matrix) => GL.UniformMatrix2x3(_, false, ref matrix)),
-                new Map<Matrix2x4>((_, matrix) => GL.UniformMatrix2x4(_, false, ref matrix)),
-                new Map<Matrix3x2>((_, matrix) => GL.UniformMatrix3x2(_, false, ref matrix)),
-                new Map<Matrix3x4>((_, matrix) => GL.UniformMatrix3x4(_, false, ref matrix)),
-                new Map<Matrix4x2>((_, matrix) => GL.UniformMatrix4x2(_, false, ref matrix)),
-                new Map<Matrix4x3>((_, matrix) => GL.UniformMatrix4x3(_, false, ref matrix))
-            };
-        }
-
-        public static Action<int, T> Get<T>()
-        {
-            var setter = Setters.FirstOrDefault(_ => _.MappedType == typeof(T));
-            if (setter == null) throw new UniformTypeNotSupportedException(typeof(T));
-            return ((Map<T>)setter).Setter;
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Shaders/Variables/VertexAttrib.cs b/ObjectTK/Shaders/Variables/VertexAttrib.cs
deleted file mode 100644
index e40ed5c..0000000
--- a/ObjectTK/Shaders/Variables/VertexAttrib.cs
+++ /dev/null
@@ -1,71 +0,0 @@
-//
-// VertexAttrib.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System.Linq;
-using System.Reflection;
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Shaders.Variables
-{
-    /// <summary>
-    /// Represents a vertex attribute.
-    /// </summary>
-    public sealed class VertexAttrib
-        : ProgramVariable
-    {
-        private static readonly Logging.IObjectTKLogger Logger = Logging.LogFactory.GetLogger(typeof(VertexAttrib));
-
-        /// <summary>
-        /// The vertex attributes location within the shader.
-        /// </summary>
-        public int Index { get; private set; }
-
-        /// <summary>
-        /// The number components to read.
-        /// </summary>
-        public int Components { get; private set; }
-
-        /// <summary>
-        /// The type of each component.
-        /// </summary>
-        public VertexAttribPointerType Type { get; private set; }
-
-        /// <summary>
-        /// Specifies whether the components should be normalized.
-        /// </summary>
-        public bool Normalized { get; private set; }
-
-        internal VertexAttrib()
-        {
-        }
-
-        internal override void Initialize(Program program, PropertyInfo property)
-        {
-            base.Initialize(program, property);
-            var attribute = property.GetCustomAttributes<VertexAttribAttribute>(false).FirstOrDefault() ?? new VertexAttribAttribute();
-            Components = attribute.Components;
-            Type = attribute.Type;
-            Normalized = attribute.Normalized;
-            if (attribute.Index > 0) BindAttribLocation(attribute.Index);
-        }
-
-        public void BindAttribLocation(int index)
-        {
-            Index = index;
-            GL.BindAttribLocation(ProgramHandle, index, Name);
-        }
-
-        internal override void OnLink()
-        {
-            Index = GL.GetAttribLocation(ProgramHandle, Name);
-            Active = Index > -1;
-            if (!Active) Logger?.WarnFormat("Vertex attribute not found or not active: {0}", Name);
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Shaders/Variables/VertexAttribAttribute.cs b/ObjectTK/Shaders/Variables/VertexAttribAttribute.cs
deleted file mode 100644
index bd891f8..0000000
--- a/ObjectTK/Shaders/Variables/VertexAttribAttribute.cs
+++ /dev/null
@@ -1,93 +0,0 @@
-//
-// VertexAttribAttribute.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System;
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Shaders.Variables
-{
-    /// <summary>
-    /// Defines default values when binding buffers to the attributed <see cref="VertexAttrib"/>.
-    /// </summary>
-    [AttributeUsage(AttributeTargets.Property)]
-    public class VertexAttribAttribute
-        : Attribute
-    {
-        /// <summary>
-        /// The number components to read.<br/>
-        /// Defaults to 4.
-        /// </summary>
-        public int Components { get; protected set; }
-
-        /// <summary>
-        /// The type of each component.<br/>
-        /// Defaults to Float.
-        /// </summary>
-        public VertexAttribPointerType Type { get; protected set; }
-        
-        /// <summary>
-        /// Specifies whether the components should be normalized.<br/>
-        /// Defaults to false.
-        /// </summary>
-        public bool Normalized { get; protected set; }
-
-        /// <summary>
-        /// Specifies the generic vertex attribute index this named attribute variable binds to.<br/>
-        /// If set explicitly this named attribute variable is bound to that generic vertex attribute index before the program is linked.<br/>
-        /// Defaults to -1, which causes the index to be retrieved after the program is linked.
-        /// </summary>
-        public int Index { get; protected set; }
-
-        /// <summary>
-        /// Initializes a new instance of the VertexAttribAttribute with default values.<br/>
-        /// The default is 4 components of type float without normalization.
-        /// </summary>
-        public VertexAttribAttribute()
-            : this(4, VertexAttribPointerType.Float, false, -1)
-        {
-        }
-
-        /// <summary>
-        /// Initializes a new instance of the VertexAttribAttribute.<br/>
-        /// Normalization defaults to false.
-        /// </summary>
-        /// <param name="components">The number of components to read.</param>
-        /// <param name="type">The type of each component.</param>
-        public VertexAttribAttribute(int components, VertexAttribPointerType type)
-            : this(components, type, false, -1)
-        {
-        }
-
-        /// <summary>
-        /// Initializes a new instance of the VertexAttribAttribute.
-        /// </summary>
-        /// <param name="components">The number of components to read.</param>
-        /// <param name="type">The type of each component.</param>
-        /// <param name="normalized">Specifies whether each component should be normalized.</param>
-        public VertexAttribAttribute(int components, VertexAttribPointerType type, bool normalized)
-            : this(components, type, normalized, -1)
-        {
-        }
-
-        /// <summary>
-        /// Initializes a new instance of the VertexAttribAttribute.
-        /// </summary>
-        /// <param name="components">The number of components to read.</param>
-        /// <param name="type">The type of each component.</param>
-        /// <param name="normalized">Specifies whether each component should be normalized.</param>
-        /// <param name="index"></param>
-        public VertexAttribAttribute(int components, VertexAttribPointerType type, bool normalized, int index)
-        {
-            Components = components;
-            Type = type;
-            Normalized = normalized;
-            Index = index;
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Textures/BitmapFormat.cs b/ObjectTK/Textures/BitmapFormat.cs
deleted file mode 100644
index 5a17214..0000000
--- a/ObjectTK/Textures/BitmapFormat.cs
+++ /dev/null
@@ -1,64 +0,0 @@
-//
-// BitmapFormat.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System;
-using System.Collections.Generic;
-using System.Drawing;
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Textures
-{
-    internal class BitmapFormat
-    {
-        public SizedInternalFormat InternalFormat;
-        public PixelFormat PixelFormat;
-        public PixelType PixelType;
-
-        private static readonly Dictionary<System.Drawing.Imaging.PixelFormat, BitmapFormat> FormatMap = new Dictionary
-            <System.Drawing.Imaging.PixelFormat, BitmapFormat>
-        {
-            {
-                System.Drawing.Imaging.PixelFormat.Format24bppRgb, new BitmapFormat
-                {
-                    InternalFormat = SizedInternalFormat.Rgba8,
-                    PixelFormat = PixelFormat.Bgr,
-                    PixelType = PixelType.UnsignedByte
-                }
-            },
-            {
-                System.Drawing.Imaging.PixelFormat.Format32bppArgb, new BitmapFormat
-                {
-                    InternalFormat = SizedInternalFormat.Rgba8,
-                    PixelFormat = PixelFormat.Bgra,
-                    PixelType = PixelType.UnsignedByte
-                }
-            }
-        };
-
-        // prevent instantiation
-        protected BitmapFormat() { }
-
-        static BitmapFormat()
-        {
-            // does not work
-            //_formatMap.Add(System.Drawing.Imaging.PixelFormat.Format16bppRgb555, _formatMap[System.Drawing.Imaging.PixelFormat.Format16bppArgb1555]);
-            // has alpha too? wtf?
-            FormatMap.Add(System.Drawing.Imaging.PixelFormat.Format32bppRgb,
-                FormatMap[System.Drawing.Imaging.PixelFormat.Format32bppArgb]);
-            FormatMap.Add(System.Drawing.Imaging.PixelFormat.Canonical,
-                FormatMap[System.Drawing.Imaging.PixelFormat.Format32bppArgb]);
-        }
-
-        public static BitmapFormat Get(Bitmap bitmap)
-        {
-            if (FormatMap.ContainsKey(bitmap.PixelFormat)) return FormatMap[bitmap.PixelFormat];
-            throw new ArgumentException("Error: Unsupported Pixel Format " + bitmap.PixelFormat);
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Textures/BitmapTexture.cs b/ObjectTK/Textures/BitmapTexture.cs
deleted file mode 100644
index 1530b06..0000000
--- a/ObjectTK/Textures/BitmapTexture.cs
+++ /dev/null
@@ -1,179 +0,0 @@
-//
-// BitmapTexture.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System;
-using System.Drawing;
-using System.Drawing.Imaging;
-using OpenTK.Graphics.OpenGL;
-using PixelFormat = OpenTK.Graphics.OpenGL.PixelFormat;
-
-namespace ObjectTK.Textures
-{
-    /// <summary>
-    /// Contains extension methods for texture types.
-    /// </summary>
-    public static class BitmapTexture
-    {
-        private static BitmapData LockBits(Bitmap bitmap)
-        {
-            return bitmap.LockBits(new Rectangle(0, 0, bitmap.Width, bitmap.Height), ImageLockMode.ReadOnly, bitmap.PixelFormat);
-        }
-
-        private static void CheckError()
-        {
-            GL.Finish();
-            Utility.Assert("Error while uploading data to texture.");
-        }
-
-        /// <summary>
-        /// Creates a new Texture2D instance compatible to the given bitmap.
-        /// </summary>
-        /// <param name="bitmap">Specifies the bitmap to which the new texture will be compatible.</param>
-        /// <param name="texture">Outputs the newly created texture.</param>
-        /// <param name="levels">Specifies the number of mipmap levels.</param>
-        public static void CreateCompatible(Bitmap bitmap, out Texture2D texture, int levels = 0)
-        {
-            texture = new Texture2D(BitmapFormat.Get(bitmap).InternalFormat, bitmap.Width, bitmap.Height, levels);
-        }
-
-        /// <summary>
-        /// Creates a new Texture2DArray instance compatible to the given bitmap.
-        /// </summary>
-        /// <param name="bitmap">Specifies the bitmap to which the new texture will be compatible.</param>
-        /// <param name="texture">Outputs the newly created texture.</param>
-        /// <param name="layers">Specifies the number of array layers the texture will contain.</param>
-        /// <param name="levels">Specifies the number of mipmap levels.</param>
-        public static void CreateCompatible(Bitmap bitmap, out Texture2DArray texture, int layers, int levels = 0)
-        {
-            texture = new Texture2DArray(BitmapFormat.Get(bitmap).InternalFormat, bitmap.Width, bitmap.Height, layers, levels);
-        }
-
-        /// <summary>
-        /// Creates a new TextureCubemap instance with faces compatible to the given bitmap.
-        /// </summary>
-        /// <param name="bitmap">Specifies the bitmap to which the new texture will be compatible.</param>
-        /// <param name="texture">Outputs the newly created texture.</param>
-        /// <param name="levels">Specifies the number of mipmap levels.</param>
-        public static void CreateCompatible(Bitmap bitmap, out TextureCubemap texture, int levels = 0)
-        {
-            if (bitmap.Width != bitmap.Height) throw new ArgumentException("The faces of cube map textures must be square.");
-            texture = new TextureCubemap(BitmapFormat.Get(bitmap).InternalFormat, bitmap.Width, levels);
-        }
-
-        /// <summary>
-        /// Creates a new TextureCubemapArray instance with faces compatible to the given bitmap.
-        /// </summary>
-        /// <param name="bitmap">Specifies the bitmap to which the new texture will be compatible.</param>
-        /// <param name="layers">Specifies the number of array layers the texture will contain.</param>
-        /// <param name="texture">Outputs the newly created texture.</param>
-        /// <param name="levels">Specifies the number of mipmap levels.</param>
-        public static void CreateCompatible(Bitmap bitmap, out TextureCubemapArray texture, int layers, int levels = 0)
-        {
-            if (bitmap.Width != bitmap.Height) throw new ArgumentException("The faces of cube map textures must be square.");
-            texture = new TextureCubemapArray(BitmapFormat.Get(bitmap).InternalFormat, bitmap.Width, layers, levels);
-        }
-
-        /// <summary>
-        /// Creates a new TextureRectangle instance compatible to the given bitmap.
-        /// </summary>
-        /// <param name="bitmap">Specifies the bitmap to which the new texture will be compatible.</param>
-        /// <param name="texture">Outputs the newly created texture.</param>
-        public static void CreateCompatible(Bitmap bitmap, out TextureRectangle texture)
-        {
-            texture = new TextureRectangle(BitmapFormat.Get(bitmap).InternalFormat, bitmap.Width, bitmap.Height);
-        }
-
-        /// <summary>
-        /// Uploads the contents of a bitmap to the given texture level.<br/>
-        /// Will result in an OpenGL error if the given bitmap is incompatible with the textures storage.
-        /// </summary>
-        public static void LoadBitmap(this Texture2D texture, Bitmap bitmap, int level = 0)
-        {
-            texture.Bind();
-            var data = LockBits(bitmap);
-            try
-            {
-                var map = BitmapFormat.Get(bitmap);
-                GL.TexSubImage2D(texture.TextureTarget, level, 0, 0, data.Width, data.Height,
-                    map.PixelFormat, map.PixelType, data.Scan0);
-            }
-            finally
-            {
-                bitmap.UnlockBits(data);
-            }
-            CheckError();
-        }
-
-        /// <summary>
-        /// Uploads the contents of a bitmap to the given texture layer and level.<br/>
-        /// Will result in an OpenGL error if the given bitmap is incompatible with the textures storage.
-        /// </summary>
-        public static void LoadBitmap(this LayeredTexture texture, Bitmap bitmap, int layer, int level = 0)
-        {
-            texture.Bind();
-            var data = LockBits(bitmap);
-            try
-            {
-                var map = BitmapFormat.Get(bitmap);
-                GL.TexSubImage3D(texture.TextureTarget, level, 0, 0, layer, data.Width, data.Height, 1,
-                    map.PixelFormat, map.PixelType, data.Scan0);
-            }
-            finally
-            {
-                bitmap.UnlockBits(data);
-            }
-            CheckError();
-        }
-
-        /// <summary>
-        /// Uploads the contents of the bitmaps to all faces of the given cube map level.<br/>
-        /// Will result in an OpenGL error if any of the given bitmaps is incompatible with the textures storage.
-        /// </summary>
-        public static void LoadBitmap(this TextureCubemap texture, Bitmap[] bitmaps, int level = 0)
-        {
-            if (bitmaps.Length != 6) throw new ArgumentException("Expected exactly 6 bitmaps for a cube map.");
-            // load all six faces
-            for (var face = 0; face < 6; face++) texture.LoadBitmap(bitmaps[face], face, level);
-        }
-
-        /// <summary>
-        /// Uploads the contents of a bitmap to a single face of the given cube map level.<br/>
-        /// Will result in an OpenGL error if the given bitmap is incompatible with the textures storage.
-        /// </summary>
-        public static void LoadBitmap(this TextureCubemap texture, Bitmap bitmap, int face, int level = 0)
-        {
-            const TextureTarget firstFace = TextureTarget.TextureCubeMapPositiveX;
-            texture.Bind();
-            var data = LockBits(bitmap);
-            try
-            {
-                var map = BitmapFormat.Get(bitmap);
-                GL.TexSubImage2D(firstFace + face, level, 0, 0, data.Width, data.Height,
-                    map.PixelFormat, map.PixelType, data.Scan0);
-            }
-            finally
-            {
-                bitmap.UnlockBits(data);
-            }
-            CheckError();
-        }
-
-        /// <summary>
-        /// Retrieves the texture data.
-        /// </summary>
-        public static T[,] GetContent<T>(this Texture2D texture, PixelFormat pixelFormat, PixelType pixelType, int level = 0)
-            where T : struct
-        {
-            var data = new T[texture.Width, texture.Height];
-            texture.Bind();
-            GL.GetTexImage(texture.TextureTarget, level, pixelFormat, pixelType, data);
-            return data;
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Textures/LayeredTexture.cs b/ObjectTK/Textures/LayeredTexture.cs
deleted file mode 100644
index b26bbcd..0000000
--- a/ObjectTK/Textures/LayeredTexture.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-//
-// LayeredTexture.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Textures
-{
-    /// <summary>
-    /// Represents a layered texture.<br/>
-    /// Layered textures are all array, cube map and 3D textures.
-    /// </summary>
-    public abstract class LayeredTexture
-        : Texture
-    {
-        public override bool SupportsLayers { get { return true; } }
-
-        internal LayeredTexture(SizedInternalFormat internalFormat, int levels)
-            : base(internalFormat, levels)
-        {
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Textures/Sampler.cs b/ObjectTK/Textures/Sampler.cs
deleted file mode 100644
index 1d38438..0000000
--- a/ObjectTK/Textures/Sampler.cs
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Sampler.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Textures
-{
-    /// <summary>
-    /// Represents a sampler object.
-    /// </summary>
-    public sealed class Sampler
-        : GLObject
-    {
-        /// <summary>
-        /// Initializes a new sampler object.
-        /// </summary>
-        public Sampler()
-            : base(GL.GenSampler())
-        {
-        }
-
-        protected override void Dispose(bool manual)
-        {
-            if (!manual) return;
-            GL.DeleteSampler(Handle);
-        }
-
-        /// <summary>
-        /// Binds the sampler to the given texture unit.
-        /// </summary>
-        /// <param name="textureUnit">The texture unit to bind to.</param>
-        public void Bind(TextureUnit textureUnit)
-        {
-            Bind((int)textureUnit - (int)TextureUnit.Texture0);
-        }
-
-        /// <summary>
-        /// Binds the sampler to the given texture unit.
-        /// </summary>
-        /// <param name="unit">The texture unit to bind to.</param>
-        public void Bind(int unit)
-        {
-            GL.BindSampler(unit, Handle);
-        }
-
-        /// <summary>
-        /// Sets the given wrap mode on all dimensions R, S and T.
-        /// </summary>
-        /// <param name="wrapMode">The wrap mode to apply.</param>
-        public void SetWrapMode(TextureWrapMode wrapMode)
-        {
-            var mode = (int) wrapMode;
-            SetParameter(SamplerParameterName.TextureWrapR, mode);
-            SetParameter(SamplerParameterName.TextureWrapS, mode);
-            SetParameter(SamplerParameterName.TextureWrapT, mode);
-        }
-
-        /// <summary>
-        /// Sets sampler parameters.
-        /// </summary>
-        /// <param name="parameterName">The parameter name to set.</param>
-        /// <param name="value">The value to set.</param>
-        public void SetParameter(SamplerParameterName parameterName, int value)
-        {
-            GL.SamplerParameter(Handle, parameterName, value);
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Textures/Texture.cs b/ObjectTK/Textures/Texture.cs
deleted file mode 100644
index f26229b..0000000
--- a/ObjectTK/Textures/Texture.cs
+++ /dev/null
@@ -1,218 +0,0 @@
-//
-// Texture.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System;
-using System.Linq;
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Textures
-{
-    /// <summary>
-    /// Represents a texture object.
-    /// </summary>
-    /// <remarks>
-    /// <code>
-    /// Type              Supports: Mipmaps Layered
-    /// -------------------------------------------
-    /// Texture1D                   yes
-    /// Texture2D                   yes
-    /// Texture3D                   yes     yes
-    /// Texture1DArray              yes     yes
-    /// Texture2DArray              yes     yes
-    /// TextureCubemap              yes     yes
-    /// TextureCubemapArray         yes     yes
-    /// Texture2DMultisample
-    /// Texture2DMultisampleArray           yes
-    /// TextureRectangle
-    /// TextureBuffer
-    /// </code>
-    /// </remarks>
-    public abstract class Texture
-        : GLObject
-    {
-        /// <summary>
-        /// Specifies the texture target.
-        /// </summary>
-        public abstract TextureTarget TextureTarget { get; }
-
-        /// <summary>
-        /// Specifies whether this texture supports multiple layers.<br/>
-        /// True for all texture types derived from LayeredTexture, that is all array, cube map and 3D textures.
-        /// </summary>
-        public virtual bool SupportsLayers { get { return false; } }
-
-        /// <summary>
-        /// Specifies whether this texture supports mipmap levels.<br/>
-        /// False for buffer, rectangle and multisample textures, otherwise true.
-        /// </summary>
-        public virtual bool SupportsMipmaps { get { return true; } }
-
-        /// <summary>
-        /// The number of mipmap levels.
-        /// </summary>
-        public int Levels { get; private set; }
-
-        /// <summary>
-        /// The internal format of the texture.
-        /// </summary>
-        public SizedInternalFormat InternalFormat { get; private set; }
-
-        /// <summary>
-        /// Initializes a new texture object. Creates a new texture handle.
-        /// </summary>
-        /// <param name="internalFormat">The internal format of the texture.</param>
-        /// <param name="levels">The number of mipmap levels.</param>
-        internal Texture(SizedInternalFormat internalFormat, int levels)
-            : this(GL.GenTexture(), internalFormat, levels)
-        {
-        }
-
-        /// <summary>
-        /// Initializes a new texture object. Uses the texture handle given.<br/>
-        /// Internal constructor used by <see cref="TextureFactory"/> to wrap a texture instance around an already existing texture.
-        /// </summary>
-        /// <param name="textureHandle">The texture handle.</param>
-        /// <param name="internalFormat">The internal format of the texture.</param>
-        /// <param name="levels">The number of mipmap levels.</param>
-        internal Texture(int textureHandle, SizedInternalFormat internalFormat, int levels)
-            : base(textureHandle)
-        {
-            InternalFormat = internalFormat;
-            Levels = levels;
-        }
-
-        protected override void Dispose(bool manual)
-        {
-            if (!manual) return;
-            GL.DeleteTexture(Handle);
-        }
-
-        /// <summary>
-        /// Binds the texture to the current texture unit at its default texture target.
-        /// </summary>
-        public void Bind()
-        {
-            GL.BindTexture(TextureTarget, Handle);
-        }
-
-        /// <summary>
-        /// Binds the texture to the given texture unit at its default texture target.
-        /// </summary>
-        /// <param name="unit">The texture unit to bind to.</param>
-        public void Bind(TextureUnit unit)
-        {
-            GL.ActiveTexture(unit);
-            Bind();
-        }
-
-        /// <summary>
-        /// Calculates the maximum number of mipmap levels allowed for the given size in each dimension.<br/>
-        /// If <paramref name="levels"/> is greater than zero and less or equal to the calculated maximum it is returned without change.<br/>
-        /// If <paramref name="levels"/> is zero the calculated maximum is returned instead.
-        /// </summary>
-        /// <remarks>
-        /// At the maximum mipmap level the image would consist of exactly one texel, i.e. 1x1 in 2D or 1x1x1 in 3D.
-        /// </remarks>
-        /// <param name="levels">Specifies the number of desired mipmap levels.</param>
-        /// <param name="dimensions">Specifies the size of the textures base image in each dimension.</param>
-        /// <returns>A valid number of mipmap levels.</returns>
-        protected static int GetLevels(int levels, params int[] dimensions)
-        {
-            var maxLevels = TextureFactory.CalculateMaxMipmapLevels(dimensions);
-            if (levels > maxLevels || levels < 0) throw new ArgumentOutOfRangeException("levels", levels,
-                string.Format("The valid range of mipmapping levels for a maximum texture dimension of {0} is [0,{1}]", dimensions.Max(), maxLevels));
-            return levels == 0 ? maxLevels : levels;
-        }
-
-        /// <summary>
-        /// Automatically generates all mipmaps.
-        /// </summary>
-        public void GenerateMipMaps()
-        {
-            if (!SupportsMipmaps) throw new InvalidOperationException("Texture does not support mipmaps.");
-            Bind();
-            GL.GenerateMipmap((GenerateMipmapTarget)TextureTarget);
-            Utility.Assert("Could not generate mipmaps.");
-        }
-
-        /// <summary>
-        /// Sets texture parameters.
-        /// </summary>
-        /// <param name="parameterName"></param>
-        /// <param name="value"></param>
-        public void SetParameter(TextureParameterName parameterName, int value)
-        {
-            GL.TexParameter(TextureTarget, parameterName, value);
-        }
-
-        /// <summary>
-        /// Sets the given wrap mode on all dimensions R, S and T.
-        /// </summary>
-        /// <param name="wrapMode">The wrap mode to apply.</param>
-        public void SetWrapMode(TextureWrapMode wrapMode)
-        {
-            var mode = (int)wrapMode;
-            SetParameter(TextureParameterName.TextureWrapR, mode);
-            SetParameter(TextureParameterName.TextureWrapS, mode);
-            SetParameter(TextureParameterName.TextureWrapT, mode);
-        }
-
-        /// <summary>
-        /// Sets the given texture minification and magnification filters.
-        /// </summary>
-        /// <param name="minFilter"></param>
-        /// <param name="magFilter"></param>
-        public void SetFilter(TextureMinFilter minFilter, TextureMagFilter magFilter)
-        {
-            SetParameter(TextureParameterName.TextureMinFilter, (int)minFilter);
-            SetParameter(TextureParameterName.TextureMagFilter, (int)magFilter);
-        }
-
-        /// <summary>
-        /// Sets default texture parameters to ensure texture completeness.<br/>
-        /// Enables mipmapping if the texture supports it, otherwise filtering is set to linear interpolation.
-        /// </summary>
-        public virtual void SetDefaultTexParameters()
-        {
-            SetParameter(TextureParameterName.TextureMinFilter, (int)(Levels > 1 ? TextureMinFilter.NearestMipmapLinear : TextureMinFilter.Linear));
-            SetParameter(TextureParameterName.TextureMagFilter, (int)TextureMagFilter.Linear);
-            Utility.Assert("Could not set tex parameters.");
-        }
-
-        /// <summary>
-        /// Checks if the given mipmap level is supported by this texture.<br/>
-        /// A supported level is either zero for all textures which do not support mipmapping,
-        /// or smaller than the number of existing levels.
-        /// </summary>
-        /// <param name="level">The mipmap level of the texture.</param>
-        /// <returns>True if the level is supported, otherwise false.</returns>
-        public bool SupportsLevel(int level)
-        {
-            return (SupportsMipmaps || level == 0) && (level < Levels || !SupportsMipmaps);
-        }
-
-        /// <summary>
-        /// Throws an exception if the given mipmap level is not supported by this texture.<br/>
-        /// The mipmap level must be zero for all texture types which do not support mipmaps.
-        /// </summary>
-        /// <param name="level">Specifies a mipmap level of the texture.</param>
-        internal void AssertLevel(int level)
-        {
-            if (!SupportsLevel(level)) throw new ArgumentException(string.Format("Texture does not contain the mipmap level {0} or does not support mipmapping at all.", level));
-        }
-
-        /// <summary>
-        /// Calls GL.<see cref="GL.GetError()"/> to check if there are any errors.
-        /// </summary>
-        protected static void CheckError()
-        {
-            Utility.Assert("Texture error");
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Textures/Texture1D.cs b/ObjectTK/Textures/Texture1D.cs
deleted file mode 100644
index 6d9ed89..0000000
--- a/ObjectTK/Textures/Texture1D.cs
+++ /dev/null
@@ -1,43 +0,0 @@
-//
-// Texture1D.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Textures
-{
-    /// <summary>
-    /// Represents a 1D texture.<br/>
-    /// Images in this texture all are 1-dimensional. They have width, but no height or depth.
-    /// </summary>
-    public sealed class Texture1D
-        : Texture
-    {
-        public override TextureTarget TextureTarget { get { return TextureTarget.Texture1D; } }
-
-        /// <summary>
-        /// The width of the texture.
-        /// </summary>
-        public int Width { get; private set; }
-
-        /// <summary>
-        /// Allocates immutable texture storage with the given parameters.
-        /// </summary>
-        /// <param name="internalFormat">The internal format to allocate.</param>
-        /// <param name="width">The width of the texture.</param>
-        /// <param name="levels">The number of mipmap levels.</param>
-        public Texture1D(SizedInternalFormat internalFormat, int width, int levels = 0)
-            : base(internalFormat, GetLevels(levels, width))
-        {
-            Width = width;
-            GL.BindTexture(TextureTarget, Handle);
-            GL.TexStorage1D((TextureTarget1d)TextureTarget, Levels, InternalFormat, Width);
-            CheckError();
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Textures/Texture1DArray.cs b/ObjectTK/Textures/Texture1DArray.cs
deleted file mode 100644
index 3ac1bf6..0000000
--- a/ObjectTK/Textures/Texture1DArray.cs
+++ /dev/null
@@ -1,54 +0,0 @@
-//
-// Texture1DArray.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Textures
-{
-    /// <summary>
-    /// Represents a 1D texture array.<br/>
-    /// Images in this texture all are 1-dimensional. However, it contains multiple sets of 1-dimensional images,
-    /// all within one texture. The array length is part of the texture's size.
-    /// </summary>
-    public sealed class Texture1DArray
-        : LayeredTexture
-    {
-        public override TextureTarget TextureTarget { get { return TextureTarget.Texture1DArray; } }
-
-        /// <summary>
-        /// The width of the texture.
-        /// </summary>
-        public int Width { get; private set; }
-
-        /// <summary>
-        /// The number of layers.<br/>
-        /// note: OpenGL seems to call the second coordinate on a 1D texture array the "height",
-        /// which would make the whole thing almost exactly equal to a 2D texture with the exception that
-        /// a 1D texture array can be bound to a framebuffer via glFramebufferTextureLayer().
-        /// </summary>
-        public int Layers { get; private set; }
-
-        /// <summary>
-        /// Allocates immutable texture storage with the given parameters.
-        /// </summary>
-        /// <param name="internalFormat">The internal format to allocate.</param>
-        /// <param name="width">The width of the texture.</param>
-        /// <param name="layers">The number of layers to allocate.</param>
-        /// <param name="levels">The number of mipmap levels.</param>
-        public Texture1DArray(SizedInternalFormat internalFormat, int width, int layers, int levels = 0)
-            : base(internalFormat, GetLevels(levels, width))
-        {
-            Width = width;
-            Layers = layers;
-            GL.BindTexture(TextureTarget, Handle);
-            GL.TexStorage2D((TextureTarget2d)TextureTarget, Levels, InternalFormat, Width, Layers);
-            CheckError();
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Textures/Texture2D.cs b/ObjectTK/Textures/Texture2D.cs
deleted file mode 100644
index 27d0886..0000000
--- a/ObjectTK/Textures/Texture2D.cs
+++ /dev/null
@@ -1,61 +0,0 @@
-//
-// Texture2D.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Textures
-{
-    /// <summary>
-    /// Represents a 2D texture.<br/>
-    /// Images in this texture all are 2-dimensional. They have width and height, but no depth.
-    /// </summary>
-    public sealed class Texture2D
-        : Texture
-    {
-        public override TextureTarget TextureTarget { get { return TextureTarget.Texture2D; } }
-
-        /// <summary>
-        /// The width of the texture.
-        /// </summary>
-        public int Width { get; private set; }
-
-        /// <summary>
-        /// The height of the texture.
-        /// </summary>
-        public int Height { get; private set; }
-
-        /// <summary>
-        /// Allocates immutable texture storage with the given parameters.<br/>
-        /// A value of zero for the number of mipmap levels will default to the maximum number of levels possible for the given bitmaps width and height.
-        /// </summary>
-        /// <param name="internalFormat">The internal format to allocate.</param>
-        /// <param name="width">The width of the texture.</param>
-        /// <param name="height">The height of the texture.</param>
-        /// <param name="levels">The number of mipmap levels.</param>
-        public Texture2D(SizedInternalFormat internalFormat, int width, int height, int levels = 0)
-            : base(internalFormat, GetLevels(levels, width, height))
-        {
-            Width = width;
-            Height = height;
-            GL.BindTexture(TextureTarget, Handle);
-            GL.TexStorage2D((TextureTarget2d)TextureTarget, Levels, InternalFormat, Width, Height);
-            CheckError();
-        }
-
-        /// <summary>
-        /// Internal constructor used by <see cref="TextureFactory"/> to wrap a Texture2D instance around an already existing texture.
-        /// </summary>
-        internal Texture2D(int textureHandle, SizedInternalFormat internalFormat, int width, int height, int levels)
-            : base(textureHandle, internalFormat, levels)
-        {
-            Width = width;
-            Height = height;
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Textures/Texture2DArray.cs b/ObjectTK/Textures/Texture2DArray.cs
deleted file mode 100644
index e645915..0000000
--- a/ObjectTK/Textures/Texture2DArray.cs
+++ /dev/null
@@ -1,59 +0,0 @@
-//
-// Texture2DArray.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Textures
-{
-    /// <summary>
-    /// Represents a 2D texture array.<br/>
-    /// Images in this texture all are 2-dimensional. However, it contains multiple sets of 2-dimensional images,
-    /// all within one texture. The array length is part of the texture's size.
-    /// </summary>
-    public sealed class Texture2DArray
-        : LayeredTexture
-    {
-        public override TextureTarget TextureTarget { get { return TextureTarget.Texture2DArray; } }
-
-        /// <summary>
-        /// The width of the texture.
-        /// </summary>
-        public int Width { get; private set; }
-
-        /// <summary>
-        /// The height of the texture.
-        /// </summary>
-        public int Height { get; private set; }
-
-        /// <summary>
-        /// The number of layers.
-        /// </summary>
-        public int Layers { get; private set; }
-
-        /// <summary>
-        /// Allocates immutable texture storage with the given parameters.<br/>
-        /// A value of zero for the number of mipmap levels will default to the maximum number of levels possible for the given bitmaps width and height.
-        /// </summary>
-        /// <param name="internalFormat">The internal format to allocate.</param>
-        /// <param name="width">The width of the texture.</param>
-        /// <param name="height">The height of the texture.</param>
-        /// <param name="layers">The number of layers to allocate.</param>
-        /// <param name="levels">The number of mipmap levels.</param>
-        public Texture2DArray(SizedInternalFormat internalFormat, int width, int height, int layers, int levels = 0)
-            : base(internalFormat, GetLevels(levels, width, height))
-        {
-            Width = width;
-            Height = height;
-            Layers = layers;
-            GL.BindTexture(TextureTarget, Handle);
-            GL.TexStorage3D((TextureTarget3d)TextureTarget, Levels, InternalFormat, Width, Height, Layers);
-            CheckError();
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Textures/Texture2DMultisample.cs b/ObjectTK/Textures/Texture2DMultisample.cs
deleted file mode 100644
index b4c3796..0000000
--- a/ObjectTK/Textures/Texture2DMultisample.cs
+++ /dev/null
@@ -1,65 +0,0 @@
-//
-// Texture2DMultisample.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Textures
-{
-    /// <summary>
-    /// Represents a 2D multisample texture.<br/>
-    /// The image in this texture (only one image. No mipmapping) is 2-dimensional.
-    /// Each pixel in this image contains multiple samples instead of just one value.
-    /// </summary>
-    public sealed class Texture2DMultisample
-        : Texture
-    {
-        public override TextureTarget TextureTarget { get { return TextureTarget.Texture2DMultisample; } }
-        public override bool SupportsMipmaps { get { return false; } }
-
-        /// <summary>
-        /// The width of the texture.
-        /// </summary>
-        public int Width { get; private set; }
-
-        /// <summary>
-        /// The height of the texture.
-        /// </summary>
-        public int Height { get; private set; }
-
-        /// <summary>
-        /// The number of samples per texel.
-        /// </summary>
-        public int Samples { get; private set; }
-
-        /// <summary>
-        /// Specifies whether the texels will use identical sample locations.
-        /// </summary>
-        public bool FixedSampleLocations { get; private set; }
-
-        /// <summary>
-        /// Allocates immutable texture storage with the given parameters.
-        /// </summary>
-        /// <param name="internalFormat">The internal format to allocate.</param>
-        /// <param name="width">The width of the texture.</param>
-        /// <param name="height">The height of the texture.</param>
-        /// <param name="samples">The number of samples per texel.</param>
-        /// <param name="fixedSampleLocations">Specifies whether the texels will use identical sample locations.</param>
-        public Texture2DMultisample(SizedInternalFormat internalFormat, int width, int height, int samples, bool fixedSampleLocations)
-            : base(internalFormat, 1)
-        {
-            Width = width;
-            Height = height;
-            Samples = samples;
-            FixedSampleLocations = fixedSampleLocations;
-            GL.BindTexture(TextureTarget, Handle);
-            GL.TexStorage2DMultisample((TextureTargetMultisample2d)TextureTarget, Samples, InternalFormat, Width, Height, FixedSampleLocations);
-            CheckError();
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Textures/Texture2DMultisampleArray.cs b/ObjectTK/Textures/Texture2DMultisampleArray.cs
deleted file mode 100644
index 767ace5..0000000
--- a/ObjectTK/Textures/Texture2DMultisampleArray.cs
+++ /dev/null
@@ -1,71 +0,0 @@
-//
-// Texture2DMultisampleArray.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Textures
-{
-    /// <summary>
-    /// Represents a 2D multisample array texture.<br/>
-    /// Combines 2D array and 2D multisample types. No mipmapping.
-    /// </summary>
-    public sealed class Texture2DMultisampleArray
-        : LayeredTexture
-    {
-        public override TextureTarget TextureTarget { get { return TextureTarget.Texture2DMultisampleArray; } }
-        public override bool SupportsMipmaps { get { return false; } }
-
-        /// <summary>
-        /// The width of the texture.
-        /// </summary>
-        public int Width { get; private set; }
-
-        /// <summary>
-        /// The height of the texture.
-        /// </summary>
-        public int Height { get; private set; }
-        
-        /// <summary>
-        /// The number of layers.
-        /// </summary>
-        public int Layers { get; private set; }
-
-        /// <summary>
-        /// The number of samples per texel.
-        /// </summary>
-        public int Samples { get; private set; }
-
-        /// <summary>
-        /// Specifies whether the texels will use identical sample locations.
-        /// </summary>
-        public bool FixedSampleLocations { get; private set; }
-
-        /// <summary>
-        /// Allocates immutable texture storage with the given parameters.
-        /// </summary>
-        /// <param name="internalFormat">The internal format to allocate.</param>
-        /// <param name="width">The width of the texture.</param>
-        /// <param name="height">The height of the texture.</param>
-        /// <param name="layers">The number of layers to allocate.</param>
-        /// <param name="samples">The number of samples per texel.</param>
-        /// <param name="fixedSampleLocations">Specifies whether the texels will use identical sample locations.</param>
-        public Texture2DMultisampleArray(SizedInternalFormat internalFormat, int width, int height, int layers, int samples, bool fixedSampleLocations)
-            : base(internalFormat, 1)
-        {
-            Width = width;
-            Height = height;
-            Layers = layers;
-            Samples = samples;
-            FixedSampleLocations = fixedSampleLocations;
-            GL.BindTexture(TextureTarget, Handle);
-            GL.TexStorage3DMultisample((TextureTargetMultisample3d)TextureTarget, Samples, InternalFormat, Width, Height, Layers, FixedSampleLocations);
-            CheckError();
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Textures/Texture3D.cs b/ObjectTK/Textures/Texture3D.cs
deleted file mode 100644
index 4d70ef7..0000000
--- a/ObjectTK/Textures/Texture3D.cs
+++ /dev/null
@@ -1,57 +0,0 @@
-//
-// Texture3D.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Textures
-{
-    /// <summary>
-    /// Represents a 3D texture.<br/>
-    /// Images in this texture all are 3-dimensional. They have width, height, and depth.
-    /// </summary>
-    public sealed class Texture3D
-        : LayeredTexture
-    {
-        public override TextureTarget TextureTarget { get { return TextureTarget.Texture3D; } }
-
-        /// <summary>
-        /// The width of the texture.
-        /// </summary>
-        public int Width { get; private set; }
-
-        /// <summary>
-        /// The height of the texture.
-        /// </summary>
-        public int Height { get; private set; }
-
-        /// <summary>
-        /// The depth of the texture.
-        /// </summary>
-        public int Depth { get; private set; }
-
-        /// <summary>
-        /// Allocates immutable texture storage with the given parameters.
-        /// </summary>
-        /// <param name="internalFormat">The internal format to allocate.</param>
-        /// <param name="width">The width of the texture.</param>
-        /// <param name="height">The height of the texture.</param>
-        /// <param name="depth">The depth of the texture.</param>
-        /// <param name="levels">The number of mipmap levels.</param>
-        public Texture3D(SizedInternalFormat internalFormat, int width, int height, int depth, int levels = 0)
-            : base(internalFormat, GetLevels(levels, width, height, depth))
-        {
-            Width = width;
-            Height = height;
-            Depth = depth;
-            GL.BindTexture(TextureTarget, Handle);
-            GL.TexStorage3D((TextureTarget3d)TextureTarget, Levels, InternalFormat, Width, Height, Depth);
-            CheckError();
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Textures/TextureBuffer.cs b/ObjectTK/Textures/TextureBuffer.cs
deleted file mode 100644
index 491979e..0000000
--- a/ObjectTK/Textures/TextureBuffer.cs
+++ /dev/null
@@ -1,61 +0,0 @@
-//
-// TextureBuffer.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System;
-using ObjectTK.Buffers;
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Textures
-{
-    /// <summary>
-    /// Represents a buffer texture.<br/>
-    /// The image in this texture (only one image. No mipmapping) is 1-dimensional.
-    /// The storage for this data comes from a Buffer Object.
-    /// </summary>
-    public sealed class TextureBuffer
-        : Texture
-    {
-        public override TextureTarget TextureTarget { get { return TextureTarget.TextureBuffer; } }
-        public override bool SupportsMipmaps { get { return false; } }
-
-        /// <summary>
-        /// Creates a buffer texture and uses the given internal format to access a bound buffer, if not specified otherwise.
-        /// </summary>
-        /// <param name="internalFormat"></param>
-        public TextureBuffer(SizedInternalFormat internalFormat)
-            : base(internalFormat, 1)
-        {
-        }
-
-        /// <summary>
-        /// Binds the given buffer to this texture.<br/>
-        /// Applies the internal format specified in the constructor.
-        /// </summary>
-        /// <param name="buffer">The buffer to bind.</param>
-        public void BindBufferToTexture<T>(Buffer<T> buffer)
-            where T : struct
-        {
-            BindBufferToTexture(buffer, InternalFormat);
-        }
-
-        /// <summary>
-        /// Binds the given buffer to this texture using the given internal format.
-        /// </summary>
-        /// <param name="buffer">The buffer to bind.</param>
-        /// <param name="internalFormat">The internal format used when accessing the buffer.</param>
-        /// <typeparam name="T">The type of elements in the buffer object.</typeparam>
-        public void BindBufferToTexture<T>(Buffer<T> buffer, SizedInternalFormat internalFormat)
-            where T : struct
-        {
-            if (!buffer.Initialized) throw new ArgumentException("Can not bind uninitialized buffer to buffer texture.", "buffer");
-            GL.BindTexture(TextureTarget.TextureBuffer, Handle);
-            GL.TexBuffer(TextureBufferTarget.TextureBuffer, internalFormat, buffer.Handle);
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Textures/TextureCubemap.cs b/ObjectTK/Textures/TextureCubemap.cs
deleted file mode 100644
index afa5b86..0000000
--- a/ObjectTK/Textures/TextureCubemap.cs
+++ /dev/null
@@ -1,44 +0,0 @@
-//
-// TextureCubemap.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Textures
-{
-    /// <summary>
-    /// Represents a cubemap texture.<br/>
-    /// There are exactly 6 distinct sets of 2D images, all of the same size. They act as 6 faces of a cube.
-    /// </summary>
-    public sealed class TextureCubemap
-        : LayeredTexture
-    {
-        public override TextureTarget TextureTarget { get { return TextureTarget.TextureCubeMap; } }
-
-        /// <summary>
-        /// The size of the texture.<br/>
-        /// This represents both width and height of the texture, because cube maps have to be square.
-        /// </summary>
-        public int Size { get; private set; }
-
-        /// <summary>
-        /// Allocates immutable texture storage with the given parameters.
-        /// </summary>
-        /// <param name="internalFormat">The internal format to allocate.</param>
-        /// <param name="size">The width and height of the cube map faces.</param>
-        /// <param name="levels">The number of mipmap levels.</param>
-        public TextureCubemap(SizedInternalFormat internalFormat, int size, int levels = 0)
-            : base(internalFormat, GetLevels(levels, size))
-        {
-            Size = size;
-            GL.BindTexture(TextureTarget, Handle);
-            GL.TexStorage2D((TextureTarget2d)TextureTarget, Levels, InternalFormat, Size, Size);
-            CheckError();
-        }
-    }
-}
diff --git a/ObjectTK/Textures/TextureCubemapArray.cs b/ObjectTK/Textures/TextureCubemapArray.cs
deleted file mode 100644
index cd689c7..0000000
--- a/ObjectTK/Textures/TextureCubemapArray.cs
+++ /dev/null
@@ -1,54 +0,0 @@
-//
-// TextureCubemapArray.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Textures
-{
-    /// <summary>
-    /// Represents a cubemap texture array.<br/>
-    /// Images in this texture are all cube maps. It contains multiple sets of cube maps, all within one texture.
-    /// The array length * 6 (number of cube faces) is part of the texture size.
-    /// </summary>
-    public sealed class TextureCubemapArray
-        : LayeredTexture
-    {
-        public override TextureTarget TextureTarget { get { return TextureTarget.TextureCubeMapArray; } }
-
-        /// <summary>
-        /// The size of the texture.<br/>
-        /// This represents both width and height of the texture, because cube maps have to be square.
-        /// </summary>
-        public int Size { get; private set; }
-
-        /// <summary>
-        /// The number of layers.
-        /// </summary>
-        public int Layers { get; private set; }
-
-        /// <summary>
-        /// Allocates immutable texture storage with the given parameters.
-        /// </summary>
-        /// <param name="internalFormat">The internal format to allocate.</param>
-        /// <param name="size">The width and height of the cube map faces.</param>
-        /// <param name="layers">The number of layers to allocate.</param>
-        /// <param name="levels">The number of mipmap levels.</param>
-        public TextureCubemapArray(SizedInternalFormat internalFormat, int size, int layers, int levels = 0)
-            : base(internalFormat, GetLevels(levels, size))
-        {
-            Size = size;
-            Layers = layers;
-            GL.BindTexture(TextureTarget, Handle);
-            // note: the depth parameter is the number of layer-faces hence the multiplication by six,
-            // see https://www.opengl.org/wiki/Texture_Storage#Immutable_storage
-            GL.TexStorage3D((TextureTarget3d)TextureTarget, Levels, InternalFormat, Size, Size, 6 * Layers);
-            CheckError();
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Textures/TextureFactory.cs b/ObjectTK/Textures/TextureFactory.cs
deleted file mode 100644
index ebcf338..0000000
--- a/ObjectTK/Textures/TextureFactory.cs
+++ /dev/null
@@ -1,50 +0,0 @@
-//
-// TextureFactory.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System;
-using System.Linq;
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Textures
-{
-    /// <summary>
-    /// Provides methods for creating texture objects in ways not covered by constructors.
-    /// </summary>
-    public static class TextureFactory
-    {
-        /// <summary>
-        /// Creates a new Texture2D instance using the given texture handle.<br/>
-        /// The width, height and internal format are queried from OpenGL and passed to the instance.
-        /// The number of mipmap levels can not be queried and must be specified, otherwise it is set to one.
-        /// TODO: somehow find out the number of mipmap levels because otherwise <see cref="Texture.AssertLevel"/> does not work correctly.
-        /// </summary>
-        /// <param name="textureHandle">An active handle to a 2D texture.</param>
-        /// <param name="levels">The number of mipmap levels.</param>
-        /// <returns>A new Texture2D instance.</returns>
-        public static Texture2D AquireTexture2D(int textureHandle, int levels = 1)
-        {
-            int width, height, internalFormat;
-            GL.BindTexture(TextureTarget.Texture2D, textureHandle);
-            GL.GetTexLevelParameter(TextureTarget.Texture2D, 0, GetTextureParameter.TextureWidth, out width);
-            GL.GetTexLevelParameter(TextureTarget.Texture2D, 0, GetTextureParameter.TextureHeight, out height);
-            GL.GetTexLevelParameter(TextureTarget.Texture2D, 0, GetTextureParameter.TextureInternalFormat, out internalFormat);
-            return new Texture2D(textureHandle, (SizedInternalFormat)internalFormat, width, height, levels);
-        }
-
-        /// <summary>
-        /// Calculates the maximum number of mipmap levels allowed, based on the size of all dimensions given.
-        /// </summary>
-        /// <param name="dimensions">Specifies the size in all dimensions.</param>
-        /// <returns>The maximum number of mipmap levels allowed. The last level would consist of 1 texel.</returns>
-        public static int CalculateMaxMipmapLevels(params int[] dimensions)
-        {
-            return 1 + (int)Math.Floor(Math.Log(dimensions.Max()));
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Textures/TextureRectangle.cs b/ObjectTK/Textures/TextureRectangle.cs
deleted file mode 100644
index 048ee27..0000000
--- a/ObjectTK/Textures/TextureRectangle.cs
+++ /dev/null
@@ -1,51 +0,0 @@
-//
-// TextureRectangle.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Textures
-{
-    /// <summary>
-    /// Represents a rectangle texture.<br/>
-    /// The image in this texture (only one image. No mipmapping) is 2-dimensional.
-    /// Texture coordinates used for these textures are not normalized.
-    /// </summary>
-    public sealed class TextureRectangle
-        : Texture
-    {
-        public override TextureTarget TextureTarget { get { return TextureTarget.TextureRectangle; } }
-        public override bool SupportsMipmaps { get { return false; } }
-
-        /// <summary>
-        /// The width of the texture.
-        /// </summary>
-        public int Width { get; private set; }
-
-        /// <summary>
-        /// The height of the texture.
-        /// </summary>
-        public int Height { get; private set; }
-
-        /// <summary>
-        /// Allocates immutable texture storage with the given parameters.
-        /// </summary>
-        /// <param name="internalFormat">The internal format to allocate.</param>
-        /// <param name="width">The width of the texture.</param>
-        /// <param name="height">The height of the texture.</param>
-        public TextureRectangle(SizedInternalFormat internalFormat, int width, int height)
-            : base(internalFormat, 1)
-        {
-            Width = width;
-            Height = height;
-            GL.BindTexture(TextureTarget, Handle);
-            GL.TexStorage2D((TextureTarget2d)TextureTarget, 1, InternalFormat, Width, Height);
-            CheckError();
-        }
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/Utility.cs b/ObjectTK/Utility.cs
deleted file mode 100644
index 7d4ec84..0000000
--- a/ObjectTK/Utility.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-//
-// Utility.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using ObjectTK.Exceptions;
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK
-{
-    internal static class Utility
-    {
-        private static readonly Logging.IObjectTKLogger Logger = Logging.LogFactory.GetLogger(typeof(Utility));
-
-        public static void Assert(string errorMessage)
-        {
-            Assert(GL.GetError(), ErrorCode.NoError, errorMessage);
-        }
-
-        public static void Assert(ErrorCode desiredErrorCode, string errorMessage)
-        {
-            Assert(GL.GetError(), desiredErrorCode, errorMessage);
-        }
-
-        public static void Assert<T>(T value, T desiredValue, string errorMessage)
-        {
-            if (desiredValue.Equals(value)) return;
-            Logger?.Error(string.Format("Assert failed: {0}\n{1}", value, errorMessage));
-            throw new ObjectTKException(string.Format("ErrorCode: {0}\n{1}", value, errorMessage));
-        }
-    }
-}
diff --git a/ObjectTK/Vector3i.cs b/ObjectTK/Vector3i.cs
deleted file mode 100644
index e00968b..0000000
--- a/ObjectTK/Vector3i.cs
+++ /dev/null
@@ -1,413 +0,0 @@
-//
-// Vector3i.cs
-//
-// Copyright (C) 2018 OpenTK
-//
-// This software may be modified and distributed under the terms
-// of the MIT license. See the LICENSE file for details.
-//
-
-using System;
-using System.Runtime.InteropServices;
-
-namespace ObjectTK
-{
-    /// <summary>Represents a 3D vector using three 32-bit integer values.</summary>
-    /// <remarks>
-    /// The Vector3i structure is suitable for interoperation with unmanaged code requiring three consecutive integers.
-    /// </remarks>
-    [Serializable]
-    public struct Vector3i : IEquatable<Vector3i>
-    {
-        #region Fields
-
-        /// <summary>
-        /// The X component of the Vector3i.
-        /// </summary>
-        public int X;
-
-        /// <summary>
-        /// The Y component of the Vector3i.
-        /// </summary>
-        public int Y;
-
-        /// <summary>
-        /// The Z component of the Vector3i.
-        /// </summary>
-        public int Z;
-
-        #endregion
-
-        #region Constructors
-
-        /// <summary>
-        /// Constructs a new Vector3i.
-        /// </summary>
-        /// <param name="x">The x coordinate of the net Vector3i.</param>
-        /// <param name="y">The y coordinate of the net Vector3i.</param>
-        /// <param name="z">The z coordinate of the net Vector3i.</param>
-        public Vector3i(int x, int y, int z)
-        {
-            X = x;
-            Y = y;
-            Z = z;
-        }
-
-        #endregion
-
-        #region Public Members
-
-        #region Static
-
-        #region Fields
-
-        /// <summary>
-        /// Defines a unit-length Vector3i that points towards the X-axis.
-        /// </summary>
-        public static readonly Vector3i UnitX = new Vector3i(1, 0, 0);
-
-        /// <summary>
-        /// Defines a unit-length Vector3i that points towards the Y-axis.
-        /// </summary>
-        public static readonly Vector3i UnitY = new Vector3i(0, 1, 0);
-
-        /// <summary>
-        /// Defines a unit-length Vector3i that points towards the Z-axis.
-        /// </summary>
-        public static readonly Vector3i UnitZ = new Vector3i(0, 0, 1);
-
-        /// <summary>
-        /// Defines a zero-length Vector3i.
-        /// </summary>
-        public static readonly Vector3i Zero = new Vector3i(0, 0, 0);
-
-        /// <summary>
-        /// Defines an instance with all components set to 1.
-        /// </summary>
-        public static readonly Vector3i One = new Vector3i(1, 1, 1);
-
-        /// <summary>
-        /// Defines the size of the Vector3i struct in bytes.
-        /// </summary>
-        public static readonly int SizeInBytes = Marshal.SizeOf(new Vector3i());
-
-        #endregion
-
-        #region Add
-
-        /// <summary>
-        /// Adds two vectors.
-        /// </summary>
-        /// <param name="a">Left operand.</param>
-        /// <param name="b">Right operand.</param>
-        /// <returns>Result of operation.</returns>
-        public static Vector3i Add(Vector3i a, Vector3i b)
-        {
-            Add(ref a, ref b, out a);
-            return a;
-        }
-
-        /// <summary>
-        /// Adds two vectors.
-        /// </summary>
-        /// <param name="a">Left operand.</param>
-        /// <param name="b">Right operand.</param>
-        /// <param name="result">Result of operation.</param>
-        public static void Add(ref Vector3i a, ref Vector3i b, out Vector3i result)
-        {
-            result = new Vector3i(a.X + b.X, a.Y + b.Y, a.Z + b.Z);
-        }
-
-        #endregion
-
-        #region Subtract
-
-        /// <summary>
-        /// Subtract one Vector from another
-        /// </summary>
-        /// <param name="a">First operand</param>
-        /// <param name="b">Second operand</param>
-        /// <returns>Result of subtraction</returns>
-        public static Vector3i Subtract(Vector3i a, Vector3i b)
-        {
-            Subtract(ref a, ref b, out a);
-            return a;
-        }
-
-        /// <summary>
-        /// Subtract one Vector from another
-        /// </summary>
-        /// <param name="a">First operand</param>
-        /// <param name="b">Second operand</param>
-        /// <param name="result">Result of subtraction</param>
-        public static void Subtract(ref Vector3i a, ref Vector3i b, out Vector3i result)
-        {
-            result = new Vector3i(a.X - b.X, a.Y - b.Y, a.Z - b.Z);
-        }
-
-        #endregion
-
-        #region Abs
-
-        /// <summary>
-        /// Applies component-wise absolute evaluation
-        /// </summary>
-        /// <param name="value">Absolute operation applies to this vector's components</param>
-        /// <returns>A vector whose components have absolute value of given vector</returns>
-        public static Vector3i Abs(Vector3i value)
-        {
-            Vector3i result;
-            Abs(ref value, out result);
-            return result;
-        }
-
-        /// <summary>
-        /// Applies component-wise absolute evaluation
-        /// </summary>
-        /// <param name="value">Absolute operation applies to this vector's components</param>
-        /// <param name="result">A vector whose components have absolute value of given vector <paramref name="value"/></param>
-        public static void Abs(ref Vector3i value, out Vector3i result)
-        {
-            result = new Vector3i(Math.Abs(value.X), Math.Abs(value.Y), Math.Abs(value.Z));
-        }
-
-        /// <summary>
-        /// Applies component-wise absolute evaluation
-        /// </summary>
-        /// <param name="value">Absolute operation applies to this vector's components</param>
-        public static void Abs(ref Vector3i value)
-        {
-            Abs(ref value, out value);
-        }
-
-        #endregion
-
-        #region ComponentMin
-
-        /// <summary>
-        /// Calculate the component-wise minimum of two vectors
-        /// </summary>
-        /// <param name="a">First operand</param>
-        /// <param name="b">Second operand</param>
-        /// <returns>The component-wise minimum</returns>
-        public static Vector3i ComponentMin(Vector3i a, Vector3i b)
-        {
-            a.X = a.X < b.X ? a.X : b.X;
-            a.Y = a.Y < b.Y ? a.Y : b.Y;
-            a.Z = a.Z < b.Z ? a.Z : b.Z;
-            return a;
-        }
-
-        /// <summary>
-        /// Calculate the component-wise minimum of two vectors
-        /// </summary>
-        /// <param name="a">First operand</param>
-        /// <param name="b">Second operand</param>
-        /// <param name="result">The component-wise minimum</param>
-        public static void ComponentMin(ref Vector3i a, ref Vector3i b, out Vector3i result)
-        {
-            result.X = a.X < b.X ? a.X : b.X;
-            result.Y = a.Y < b.Y ? a.Y : b.Y;
-            result.Z = a.Z < b.Z ? a.Z : b.Z;
-        }
-
-        #endregion
-
-        #region ComponentMax
-
-        /// <summary>
-        /// Calculate the component-wise maximum of two vectors
-        /// </summary>
-        /// <param name="a">First operand</param>
-        /// <param name="b">Second operand</param>
-        /// <returns>The component-wise maximum</returns>
-        public static Vector3i ComponentMax(Vector3i a, Vector3i b)
-        {
-            a.X = a.X > b.X ? a.X : b.X;
-            a.Y = a.Y > b.Y ? a.Y : b.Y;
-            a.Z = a.Z > b.Z ? a.Z : b.Z;
-            return a;
-        }
-
-        /// <summary>
-        /// Calculate the component-wise maximum of two vectors
-        /// </summary>
-        /// <param name="a">First operand</param>
-        /// <param name="b">Second operand</param>
-        /// <param name="result">The component-wise maximum</param>
-        public static void ComponentMax(ref Vector3i a, ref Vector3i b, out Vector3i result)
-        {
-            result.X = a.X > b.X ? a.X : b.X;
-            result.Y = a.Y > b.Y ? a.Y : b.Y;
-            result.Z = a.Z > b.Z ? a.Z : b.Z;
-        }
-
-        #endregion
-
-        #region Clamp
-
-        /// <summary>
-        /// Clamp a vector to the given minimum and maximum vectors
-        /// </summary>
-        /// <param name="vec">Input vector</param>
-        /// <param name="min">Minimum vector</param>
-        /// <param name="max">Maximum vector</param>
-        /// <returns>The clamped vector</returns>
-        public static Vector3i Clamp(Vector3i vec, Vector3i min, Vector3i max)
-        {
-            vec.X = vec.X < min.X ? min.X : vec.X > max.X ? max.X : vec.X;
-            vec.Y = vec.Y < min.Y ? min.Y : vec.Y > max.Y ? max.Y : vec.Y;
-            vec.Z = vec.Z < min.Z ? min.Z : vec.Z > max.Z ? max.Z : vec.Z;
-            return vec;
-        }
-
-        /// <summary>
-        /// Clamp a vector to the given minimum and maximum vectors
-        /// </summary>
-        /// <param name="vec">Input vector</param>
-        /// <param name="min">Minimum vector</param>
-        /// <param name="max">Maximum vector</param>
-        /// <param name="result">The clamped vector</param>
-        public static void Clamp(ref Vector3i vec, ref Vector3i min, ref Vector3i max, out Vector3i result)
-        {
-            result.X = vec.X < min.X ? min.X : vec.X > max.X ? max.X : vec.X;
-            result.Y = vec.Y < min.Y ? min.Y : vec.Y > max.Y ? max.Y : vec.Y;
-            result.Z = vec.Z < min.Z ? min.Z : vec.Z > max.Z ? max.Z : vec.Z;
-        }
-
-        #endregion
-
-        #endregion
-
-        #region Operators
-
-        /// <summary>
-        /// Adds the specified instances.
-        /// </summary>
-        /// <param name="left">Left operand.</param>
-        /// <param name="right">Right operand.</param>
-        /// <returns>Result of addition.</returns>
-        public static Vector3i operator +(Vector3i left, Vector3i right)
-        {
-            left.X += right.X;
-            left.Y += right.Y;
-            left.Z += right.Z;
-            return left;
-        }
-
-        /// <summary>
-        /// Subtracts the specified instances.
-        /// </summary>
-        /// <param name="left">Left operand.</param>
-        /// <param name="right">Right operand.</param>
-        /// <returns>Result of subtraction.</returns>
-        public static Vector3i operator -(Vector3i left, Vector3i right)
-        {
-            left.X -= right.X;
-            left.Y -= right.Y;
-            left.Z -= right.Z;
-            return left;
-        }
-
-        /// <summary>
-        /// Negates the specified instance.
-        /// </summary>
-        /// <param name="vec">Operand.</param>
-        /// <returns>Result of negation.</returns>
-        public static Vector3i operator -(Vector3i vec)
-        {
-            vec.X = -vec.X;
-            vec.Y = -vec.Y;
-            vec.Z = -vec.Z;
-            return vec;
-        }
-
-        /// <summary>
-        /// Compares the specified instances for equality.
-        /// </summary>
-        /// <param name="left">Left operand.</param>
-        /// <param name="right">Right operand.</param>
-        /// <returns>True if both instances are equal; false otherwise.</returns>
-        public static bool operator ==(Vector3i left, Vector3i right)
-        {
-            return left.Equals(right);
-        }
-
-        /// <summary>
-        /// Compares the specified instances for inequality.
-        /// </summary>
-        /// <param name="left">Left operand.</param>
-        /// <param name="right">Right operand.</param>
-        /// <returns>True if both instances are not equal; false otherwise.</returns>
-        public static bool operator !=(Vector3i left, Vector3i right)
-        {
-            return !left.Equals(right);
-        }
-
-        #endregion
-
-        #region Overrides
-
-        #region public override string ToString()
-
-        /// <summary>
-        /// Returns a System.String that represents the current Vector3i.
-        /// </summary>
-        /// <returns></returns>
-        public override string ToString()
-        {
-            return String.Format("({0}, {1}, {2})", X, Y, Z);
-        }
-
-        #endregion
-
-        #region public override int GetHashCode()
-
-        /// <summary>
-        /// Returns the hashcode for this instance.
-        /// </summary>
-        /// <returns>A System.Int32 containing the unique hashcode for this instance.</returns>
-        public override int GetHashCode()
-        {
-            return X.GetHashCode() ^ Y.GetHashCode() ^ Z.GetHashCode();
-        }
-
-        #endregion
-
-        #region public override bool Equals(object obj)
-
-        /// <summary>
-        /// Indicates whether this instance and a specified object are equal.
-        /// </summary>
-        /// <param name="obj">The object to compare to.</param>
-        /// <returns>True if the instances are equal; false otherwise.</returns>
-        public override bool Equals(object obj)
-        {
-            if (!(obj is Vector3i))
-                return false;
-
-            return this.Equals((Vector3i)obj);
-        }
-
-        #endregion
-
-        #endregion
-
-        #endregion
-
-        #region IEquatable<Vector3i> Members
-
-        /// <summary>Indicates whether the current vector is equal to another vector.</summary>
-        /// <param name="other">A vector to compare with this vector.</param>
-        /// <returns>true if the current vector is equal to the vector parameter; otherwise, false.</returns>
-        public bool Equals(Vector3i other)
-        {
-            return
-                X == other.X &&
-                Y == other.Y &&
-                Z == other.Z;
-        }
-
-        #endregion
-    }
-}
\ No newline at end of file
diff --git a/ObjectTK/packages.config b/ObjectTK/packages.config
deleted file mode 100644
index 338f3df..0000000
--- a/ObjectTK/packages.config
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<packages>
-  <package id="log4net" version="2.0.3" targetFramework="net40" />
-  <package id="OpenTK" version="1.1.1589.5942" targetFramework="net40" />
-</packages>
\ No newline at end of file
diff --git a/README.md b/README.md
deleted file mode 100644
index 739de4b..0000000
--- a/README.md
+++ /dev/null
@@ -1,33 +0,0 @@
-What is ObjectTK?
-======
-
-ObjectTK is a thin abstraction layer on top of OpenTK to provide OpenGL features in an object-oriented and mostly type-safe manner with modern C#-style.
-It is fully aimed at modern OpenGL and compatible to the OpenGL4 core profile.
-
-Currently there are types for the following OpenGL features:
-* Programs and Shaders
-* Textures
-* Vertex array objects
-* Buffer objects
-* Sampler objects
-* Query objects
-* Framebuffers
-* Renderbuffers
-
-The main advantages of using these types are:
-* Cleaner interface than using the OpenGL API directly.
-* Type-safety when suitable.
-* Removes the necessary but error-prone boilerplate code from your project.
-* Immediate detection of leaked resources.
-* Information log via log4net.
-* The Debug-Build also includes additional sanity-checks which help tracking down common errors.
-
-ObjectTK does not force you to use its functionality and skip the OpenGL API at all. It is perfectly fine to use the OpenGL API directly and the ObjectTK types side-by-side, because ObjectTK does not explicitly keep track of any OpenGL state which might get corrupted when you call the OpenGL API without it knowing. This is an essential feature which makes ObjectTK very usable even if it is not a "complete" wrapper around every corner of OpenGL.
-
-## What about performance?
-Just like any wrapper it introduces another layer between the things you want to get done and the hardware, so it may theoretically slow things down a bit, but there are two things to consider:
-- When using modern OpenGL, which is the main target of ObjectTK, the number of API-calls is much lower than it used to be. That means that the overhead of each API-call is not that important anymore.
-- The wrapper really is very thin, more often than not there is just a single method call between you and the OpenGL API for functionality which might get used very often. For initialization-related stuff the layer may be a little thicker because it does things right, with all possible error-checking and so forth.
-
-## Examples
-For examples please have a look at the Examples project and the wiki pages: [Basic example](https://github.com/JcBernack/ObjectTK/wiki/Basic-example)
diff --git a/packages/repositories.config b/packages/repositories.config
deleted file mode 100644
index bb8e188..0000000
--- a/packages/repositories.config
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<repositories>
-  <repository path="..\Examples\packages.config" />
-  <repository path="..\ObjectTK.Compiler\packages.config" />
-  <repository path="..\ObjectTK.Tools\packages.config" />
-  <repository path="..\ObjectTK\packages.config" />
-</repositories>
\ No newline at end of file

From 61d6d1445edf9535202a7fe65addc6a202ab63fe Mon Sep 17 00:00:00 2001
From: burnss9 <burnss9@nku.edu>
Date: Sun, 11 Oct 2020 18:06:36 -0400
Subject: [PATCH 02/52] Initial commit 2

---
 .gitignore                         | 362 +++++++++++++++++++++++++++++
 ObjectTK.Data/Class1.cs            |   6 +
 ObjectTK.Data/ObjectTK.Data.csproj |  11 +
 ObjectTK.sln                       |  25 ++
 4 files changed, 404 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 ObjectTK.Data/Class1.cs
 create mode 100644 ObjectTK.Data/ObjectTK.Data.csproj
 create mode 100644 ObjectTK.sln

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..1ee5385
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,362 @@
+## Ignore Visual Studio temporary files, build results, and
+## files generated by popular Visual Studio add-ons.
+##
+## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
+
+# User-specific files
+*.rsuser
+*.suo
+*.user
+*.userosscache
+*.sln.docstates
+
+# User-specific files (MonoDevelop/Xamarin Studio)
+*.userprefs
+
+# Mono auto generated files
+mono_crash.*
+
+# Build results
+[Dd]ebug/
+[Dd]ebugPublic/
+[Rr]elease/
+[Rr]eleases/
+x64/
+x86/
+[Ww][Ii][Nn]32/
+[Aa][Rr][Mm]/
+[Aa][Rr][Mm]64/
+bld/
+[Bb]in/
+[Oo]bj/
+[Ll]og/
+[Ll]ogs/
+
+# Visual Studio 2015/2017 cache/options directory
+.vs/
+# Uncomment if you have tasks that create the project's static files in wwwroot
+#wwwroot/
+
+# Visual Studio 2017 auto generated files
+Generated\ Files/
+
+# MSTest test Results
+[Tt]est[Rr]esult*/
+[Bb]uild[Ll]og.*
+
+# NUnit
+*.VisualState.xml
+TestResult.xml
+nunit-*.xml
+
+# Build Results of an ATL Project
+[Dd]ebugPS/
+[Rr]eleasePS/
+dlldata.c
+
+# Benchmark Results
+BenchmarkDotNet.Artifacts/
+
+# .NET Core
+project.lock.json
+project.fragment.lock.json
+artifacts/
+
+# ASP.NET Scaffolding
+ScaffoldingReadMe.txt
+
+# StyleCop
+StyleCopReport.xml
+
+# Files built by Visual Studio
+*_i.c
+*_p.c
+*_h.h
+*.ilk
+*.meta
+*.obj
+*.iobj
+*.pch
+*.pdb
+*.ipdb
+*.pgc
+*.pgd
+*.rsp
+*.sbr
+*.tlb
+*.tli
+*.tlh
+*.tmp
+*.tmp_proj
+*_wpftmp.csproj
+*.log
+*.vspscc
+*.vssscc
+.builds
+*.pidb
+*.svclog
+*.scc
+
+# Chutzpah Test files
+_Chutzpah*
+
+# Visual C++ cache files
+ipch/
+*.aps
+*.ncb
+*.opendb
+*.opensdf
+*.sdf
+*.cachefile
+*.VC.db
+*.VC.VC.opendb
+
+# Visual Studio profiler
+*.psess
+*.vsp
+*.vspx
+*.sap
+
+# Visual Studio Trace Files
+*.e2e
+
+# TFS 2012 Local Workspace
+$tf/
+
+# Guidance Automation Toolkit
+*.gpState
+
+# ReSharper is a .NET coding add-in
+_ReSharper*/
+*.[Rr]e[Ss]harper
+*.DotSettings.user
+
+# TeamCity is a build add-in
+_TeamCity*
+
+# DotCover is a Code Coverage Tool
+*.dotCover
+
+# AxoCover is a Code Coverage Tool
+.axoCover/*
+!.axoCover/settings.json
+
+# Coverlet is a free, cross platform Code Coverage Tool
+coverage*.json
+coverage*.xml
+coverage*.info
+
+# Visual Studio code coverage results
+*.coverage
+*.coveragexml
+
+# NCrunch
+_NCrunch_*
+.*crunch*.local.xml
+nCrunchTemp_*
+
+# MightyMoose
+*.mm.*
+AutoTest.Net/
+
+# Web workbench (sass)
+.sass-cache/
+
+# Installshield output folder
+[Ee]xpress/
+
+# DocProject is a documentation generator add-in
+DocProject/buildhelp/
+DocProject/Help/*.HxT
+DocProject/Help/*.HxC
+DocProject/Help/*.hhc
+DocProject/Help/*.hhk
+DocProject/Help/*.hhp
+DocProject/Help/Html2
+DocProject/Help/html
+
+# Click-Once directory
+publish/
+
+# Publish Web Output
+*.[Pp]ublish.xml
+*.azurePubxml
+# Note: Comment the next line if you want to checkin your web deploy settings,
+# but database connection strings (with potential passwords) will be unencrypted
+*.pubxml
+*.publishproj
+
+# Microsoft Azure Web App publish settings. Comment the next line if you want to
+# checkin your Azure Web App publish settings, but sensitive information contained
+# in these scripts will be unencrypted
+PublishScripts/
+
+# NuGet Packages
+*.nupkg
+# NuGet Symbol Packages
+*.snupkg
+# The packages folder can be ignored because of Package Restore
+**/[Pp]ackages/*
+# except build/, which is used as an MSBuild target.
+!**/[Pp]ackages/build/
+# Uncomment if necessary however generally it will be regenerated when needed
+#!**/[Pp]ackages/repositories.config
+# NuGet v3's project.json files produces more ignorable files
+*.nuget.props
+*.nuget.targets
+
+# Microsoft Azure Build Output
+csx/
+*.build.csdef
+
+# Microsoft Azure Emulator
+ecf/
+rcf/
+
+# Windows Store app package directories and files
+AppPackages/
+BundleArtifacts/
+Package.StoreAssociation.xml
+_pkginfo.txt
+*.appx
+*.appxbundle
+*.appxupload
+
+# Visual Studio cache files
+# files ending in .cache can be ignored
+*.[Cc]ache
+# but keep track of directories ending in .cache
+!?*.[Cc]ache/
+
+# Others
+ClientBin/
+~$*
+*~
+*.dbmdl
+*.dbproj.schemaview
+*.jfm
+*.pfx
+*.publishsettings
+orleans.codegen.cs
+
+# Including strong name files can present a security risk
+# (https://github.com/github/gitignore/pull/2483#issue-259490424)
+#*.snk
+
+# Since there are multiple workflows, uncomment next line to ignore bower_components
+# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
+#bower_components/
+
+# RIA/Silverlight projects
+Generated_Code/
+
+# Backup & report files from converting an old project file
+# to a newer Visual Studio version. Backup files are not needed,
+# because we have git ;-)
+_UpgradeReport_Files/
+Backup*/
+UpgradeLog*.XML
+UpgradeLog*.htm
+ServiceFabricBackup/
+*.rptproj.bak
+
+# SQL Server files
+*.mdf
+*.ldf
+*.ndf
+
+# Business Intelligence projects
+*.rdl.data
+*.bim.layout
+*.bim_*.settings
+*.rptproj.rsuser
+*- [Bb]ackup.rdl
+*- [Bb]ackup ([0-9]).rdl
+*- [Bb]ackup ([0-9][0-9]).rdl
+
+# Microsoft Fakes
+FakesAssemblies/
+
+# GhostDoc plugin setting file
+*.GhostDoc.xml
+
+# Node.js Tools for Visual Studio
+.ntvs_analysis.dat
+node_modules/
+
+# Visual Studio 6 build log
+*.plg
+
+# Visual Studio 6 workspace options file
+*.opt
+
+# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
+*.vbw
+
+# Visual Studio LightSwitch build output
+**/*.HTMLClient/GeneratedArtifacts
+**/*.DesktopClient/GeneratedArtifacts
+**/*.DesktopClient/ModelManifest.xml
+**/*.Server/GeneratedArtifacts
+**/*.Server/ModelManifest.xml
+_Pvt_Extensions
+
+# Paket dependency manager
+.paket/paket.exe
+paket-files/
+
+# FAKE - F# Make
+.fake/
+
+# CodeRush personal settings
+.cr/personal
+
+# Python Tools for Visual Studio (PTVS)
+__pycache__/
+*.pyc
+
+# Cake - Uncomment if you are using it
+# tools/**
+# !tools/packages.config
+
+# Tabs Studio
+*.tss
+
+# Telerik's JustMock configuration file
+*.jmconfig
+
+# BizTalk build output
+*.btp.cs
+*.btm.cs
+*.odx.cs
+*.xsd.cs
+
+# OpenCover UI analysis results
+OpenCover/
+
+# Azure Stream Analytics local run output
+ASALocalRun/
+
+# MSBuild Binary and Structured Log
+*.binlog
+
+# NVidia Nsight GPU debugger configuration file
+*.nvuser
+
+# MFractors (Xamarin productivity tool) working folder
+.mfractor/
+
+# Local History for Visual Studio
+.localhistory/
+
+# BeatPulse healthcheck temp database
+healthchecksdb
+
+# Backup folder for Package Reference Convert tool in Visual Studio 2017
+MigrationBackup/
+
+# Ionide (cross platform F# VS Code tools) working folder
+.ionide/
+
+# Fody - auto-generated XML schema
+FodyWeavers.xsd
diff --git a/ObjectTK.Data/Class1.cs b/ObjectTK.Data/Class1.cs
new file mode 100644
index 0000000..5e0bad2
--- /dev/null
+++ b/ObjectTK.Data/Class1.cs
@@ -0,0 +1,6 @@
+using System;
+
+namespace ObjectTK.Data {
+	public class Class1 {
+	}
+}
diff --git a/ObjectTK.Data/ObjectTK.Data.csproj b/ObjectTK.Data/ObjectTK.Data.csproj
new file mode 100644
index 0000000..c3c4501
--- /dev/null
+++ b/ObjectTK.Data/ObjectTK.Data.csproj
@@ -0,0 +1,11 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>netcoreapp3.1</TargetFramework>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <PackageReference Include="OpenTK" Version="4.0.2" />
+  </ItemGroup>
+
+</Project>
diff --git a/ObjectTK.sln b/ObjectTK.sln
new file mode 100644
index 0000000..90e8162
--- /dev/null
+++ b/ObjectTK.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.30114.105
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ObjectTK.Data", "ObjectTK.Data\ObjectTK.Data.csproj", "{163450BD-24E0-4C3E-A310-3AEBD709E065}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{163450BD-24E0-4C3E-A310-3AEBD709E065}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{163450BD-24E0-4C3E-A310-3AEBD709E065}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{163450BD-24E0-4C3E-A310-3AEBD709E065}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{163450BD-24E0-4C3E-A310-3AEBD709E065}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {ED1B1358-95C3-48DA-BF83-8A320A20B918}
+	EndGlobalSection
+EndGlobal

From 856a5540d9aedb27909d85f8f3b137f3704eb6f5 Mon Sep 17 00:00:00 2001
From: burnss9 <burnss9@nku.edu>
Date: Sun, 18 Oct 2020 08:47:44 -0400
Subject: [PATCH 03/52] initial commit for textures

---
 ObjectTK.Data/Class1.cs                       |  6 -----
 ObjectTK.Data/GLObject.cs                     | 27 +++++++++++++++++++
 ObjectTK.Data/Textures/Texture.cs             |  9 +++++++
 ObjectTK.Data/Textures/Texture1D.cs           | 11 ++++++++
 ObjectTK.Data/Textures/Texture1DArray.cs      | 10 +++++++
 ObjectTK.Data/Textures/Texture2D.cs           | 12 +++++++++
 ObjectTK.Data/Textures/Texture2DArray.cs      | 10 +++++++
 .../Textures/Texture2DMultisample.cs          | 13 +++++++++
 .../Textures/Texture2DMultisampleArray.cs     | 11 ++++++++
 ObjectTK.Data/Textures/Texture3D.cs           | 13 +++++++++
 ObjectTK.Data/Textures/TextureBuffer.cs       | 10 +++++++
 ObjectTK.Data/Textures/TextureCubeMap.cs      | 11 ++++++++
 ObjectTK.Data/Textures/TextureCubeMapArray.cs | 10 +++++++
 ObjectTK.Data/Textures/TextureRectangle.cs    | 11 ++++++++
 14 files changed, 158 insertions(+), 6 deletions(-)
 delete mode 100644 ObjectTK.Data/Class1.cs
 create mode 100644 ObjectTK.Data/GLObject.cs
 create mode 100644 ObjectTK.Data/Textures/Texture.cs
 create mode 100644 ObjectTK.Data/Textures/Texture1D.cs
 create mode 100644 ObjectTK.Data/Textures/Texture1DArray.cs
 create mode 100644 ObjectTK.Data/Textures/Texture2D.cs
 create mode 100644 ObjectTK.Data/Textures/Texture2DArray.cs
 create mode 100644 ObjectTK.Data/Textures/Texture2DMultisample.cs
 create mode 100644 ObjectTK.Data/Textures/Texture2DMultisampleArray.cs
 create mode 100644 ObjectTK.Data/Textures/Texture3D.cs
 create mode 100644 ObjectTK.Data/Textures/TextureBuffer.cs
 create mode 100644 ObjectTK.Data/Textures/TextureCubeMap.cs
 create mode 100644 ObjectTK.Data/Textures/TextureCubeMapArray.cs
 create mode 100644 ObjectTK.Data/Textures/TextureRectangle.cs

diff --git a/ObjectTK.Data/Class1.cs b/ObjectTK.Data/Class1.cs
deleted file mode 100644
index 5e0bad2..0000000
--- a/ObjectTK.Data/Class1.cs
+++ /dev/null
@@ -1,6 +0,0 @@
-using System;
-
-namespace ObjectTK.Data {
-	public class Class1 {
-	}
-}
diff --git a/ObjectTK.Data/GLObject.cs b/ObjectTK.Data/GLObject.cs
new file mode 100644
index 0000000..bf14e84
--- /dev/null
+++ b/ObjectTK.Data/GLObject.cs
@@ -0,0 +1,27 @@
+namespace ObjectTK.Data {
+	public abstract class GLObject {
+
+		public int Handle { get; }
+
+		private GLObject() {
+
+		}
+
+		public GLObject(int Handle) {
+			this.Handle = Handle;
+		}
+
+        public bool Equals(GLObject Other) {
+            return Other != null && Handle.Equals(Other.Handle);
+        }
+
+        public override bool Equals(object Other) {
+            return Other is GLObject GLObject && Equals(GLObject);
+        }
+
+        public override int GetHashCode() {
+            return Handle.GetHashCode();
+        }
+
+    }
+}
diff --git a/ObjectTK.Data/Textures/Texture.cs b/ObjectTK.Data/Textures/Texture.cs
new file mode 100644
index 0000000..bae6d2a
--- /dev/null
+++ b/ObjectTK.Data/Textures/Texture.cs
@@ -0,0 +1,9 @@
+using OpenTK.Graphics.OpenGL;
+
+namespace ObjectTK.Data.Textures {
+	public abstract class Texture : GLObject {
+		public abstract TextureTarget TextureTarget { get; }
+		public SizedInternalFormat InternalFormat { get; set; }
+		public Texture(int Handle, SizedInternalFormat InternalFormat) : base(Handle) => this.InternalFormat = InternalFormat;
+	}
+}
diff --git a/ObjectTK.Data/Textures/Texture1D.cs b/ObjectTK.Data/Textures/Texture1D.cs
new file mode 100644
index 0000000..d5184c4
--- /dev/null
+++ b/ObjectTK.Data/Textures/Texture1D.cs
@@ -0,0 +1,11 @@
+using OpenTK.Graphics.OpenGL;
+
+namespace ObjectTK.Data.Textures {
+	public class Texture1D : Texture {
+		public override TextureTarget TextureTarget => TextureTarget.Texture1D;
+		public int Width { get; set; }
+        public int MipLevels { get; set; }
+        public Texture1D(int Handle, SizedInternalFormat InternalFormat, int Width, int MipLevels) : base(Handle, InternalFormat) =>
+			(this.Width, this.MipLevels) = (Width, MipLevels);
+	}
+}
\ No newline at end of file
diff --git a/ObjectTK.Data/Textures/Texture1DArray.cs b/ObjectTK.Data/Textures/Texture1DArray.cs
new file mode 100644
index 0000000..014aefa
--- /dev/null
+++ b/ObjectTK.Data/Textures/Texture1DArray.cs
@@ -0,0 +1,10 @@
+using OpenTK.Graphics.OpenGL;
+
+namespace ObjectTK.Data.Textures {
+	public class Texture1DArray : Texture1D {
+		public override TextureTarget TextureTarget => TextureTarget.Texture1DArray;
+		public int Layers { get; set; }
+		public Texture1DArray(int Handle, SizedInternalFormat InternalFormat, int Width, int Layers, int MipLevels) : base(Handle, InternalFormat, Width, MipLevels) =>
+			this.Layers = Layers;
+	}
+}
diff --git a/ObjectTK.Data/Textures/Texture2D.cs b/ObjectTK.Data/Textures/Texture2D.cs
new file mode 100644
index 0000000..b1963df
--- /dev/null
+++ b/ObjectTK.Data/Textures/Texture2D.cs
@@ -0,0 +1,12 @@
+using OpenTK.Graphics.OpenGL;
+
+namespace ObjectTK.Data.Textures {
+	public class Texture2D : Texture {
+		public override TextureTarget TextureTarget => TextureTarget.Texture2D;
+		public int Width { get; set; }
+		public int Height { get; set; }
+		public int MipLevels { get; set; }
+		public Texture2D(int Handle, SizedInternalFormat InternalFormat, int Width, int Height, int MipLevels) : base(Handle, InternalFormat) =>
+			(this.Width, this.Height, this.MipLevels) = (Width, Height, MipLevels);
+	}
+}
diff --git a/ObjectTK.Data/Textures/Texture2DArray.cs b/ObjectTK.Data/Textures/Texture2DArray.cs
new file mode 100644
index 0000000..e1e563d
--- /dev/null
+++ b/ObjectTK.Data/Textures/Texture2DArray.cs
@@ -0,0 +1,10 @@
+using OpenTK.Graphics.OpenGL;
+
+namespace ObjectTK.Data.Textures {
+	public class Texture2DArray : Texture2D {
+		public override TextureTarget TextureTarget => TextureTarget.Texture2DArray;
+		public int Layers { get; set; }
+		public Texture2DArray(int Handle, SizedInternalFormat InternalFormat, int Width, int Height, int MipLevels, int Layers) : base(Handle, InternalFormat, Width, Height, MipLevels) =>
+			this.Layers = Layers;
+	}
+}
diff --git a/ObjectTK.Data/Textures/Texture2DMultisample.cs b/ObjectTK.Data/Textures/Texture2DMultisample.cs
new file mode 100644
index 0000000..3d6e8dc
--- /dev/null
+++ b/ObjectTK.Data/Textures/Texture2DMultisample.cs
@@ -0,0 +1,13 @@
+using OpenTK.Graphics.OpenGL;
+
+namespace ObjectTK.Data.Textures {
+	public class Texture2DMultisample : Texture {
+        public override TextureTarget TextureTarget => TextureTarget.Texture2DMultisample;
+        public int Width { get; set; }
+        public int Height { get; set; }
+        public int Samples { get; set; }
+        public bool FixedSampleLocations { get; set; }
+        public Texture2DMultisample(int Handle, SizedInternalFormat InternalFormat, int Width, int Height, int Samples, bool FixedSampleLocations) : base(Handle, InternalFormat) =>
+            (this.Width, this.Height, this.Samples, this.FixedSampleLocations) = (Width, Height, Samples, FixedSampleLocations);
+    }
+}
diff --git a/ObjectTK.Data/Textures/Texture2DMultisampleArray.cs b/ObjectTK.Data/Textures/Texture2DMultisampleArray.cs
new file mode 100644
index 0000000..749d6ca
--- /dev/null
+++ b/ObjectTK.Data/Textures/Texture2DMultisampleArray.cs
@@ -0,0 +1,11 @@
+using OpenTK.Graphics.OpenGL;
+
+namespace ObjectTK.Data.Textures {
+	public class Texture2DMultisampleArray : Texture2DMultisample {
+		public override TextureTarget TextureTarget => TextureTarget.Texture2DMultisampleArray;
+		public int Layers { get; set; }
+		public Texture2DMultisampleArray(int Handle, SizedInternalFormat InternalFormat, int Width, int Height, int Samples, bool FixedSampleLocations, int Layers) :
+			base(Handle, InternalFormat, Width, Height, Samples, FixedSampleLocations) =>
+			this.Layers = Layers;
+	}
+}
diff --git a/ObjectTK.Data/Textures/Texture3D.cs b/ObjectTK.Data/Textures/Texture3D.cs
new file mode 100644
index 0000000..9e06fdc
--- /dev/null
+++ b/ObjectTK.Data/Textures/Texture3D.cs
@@ -0,0 +1,13 @@
+using OpenTK.Graphics.OpenGL;
+
+namespace ObjectTK.Data.Textures {
+	public class Texture3D : Texture {
+		public override TextureTarget TextureTarget => TextureTarget.Texture3D;
+		int Width { get; set; }
+		int Height { get; set; }
+		int Layers { get; set; }
+		public int MipLevels { get; set; }
+		public Texture3D(int Handle, SizedInternalFormat InternalFormat, int Width, int Height, int Layers, int MipLevels) : base(Handle, InternalFormat) =>
+			(this.Width, this.Height, this.Layers, this.MipLevels) = (Width, Height, Layers, MipLevels);
+	}
+}
diff --git a/ObjectTK.Data/Textures/TextureBuffer.cs b/ObjectTK.Data/Textures/TextureBuffer.cs
new file mode 100644
index 0000000..d4c5217
--- /dev/null
+++ b/ObjectTK.Data/Textures/TextureBuffer.cs
@@ -0,0 +1,10 @@
+using OpenTK.Graphics.OpenGL;
+
+namespace ObjectTK.Data.Textures {
+	public class TextureBuffer : Texture {
+		public override TextureTarget TextureTarget => TextureTarget.TextureBuffer;
+		public TextureBuffer(int Handle, SizedInternalFormat InternalFormat) : base(Handle, InternalFormat) {
+			//TODO: I don't know much about this texture type
+		}
+	}
+}
diff --git a/ObjectTK.Data/Textures/TextureCubeMap.cs b/ObjectTK.Data/Textures/TextureCubeMap.cs
new file mode 100644
index 0000000..717871f
--- /dev/null
+++ b/ObjectTK.Data/Textures/TextureCubeMap.cs
@@ -0,0 +1,11 @@
+using OpenTK.Graphics.OpenGL;
+
+namespace ObjectTK.Data.Textures {
+	public class TextureCubeMap : Texture {
+		public override TextureTarget TextureTarget => TextureTarget.TextureCubeMap;
+		public int Size { get; set; }
+		public int MipLevels { get; set; }
+		public TextureCubeMap(int Handle, SizedInternalFormat InternalFormat, int Size, int MipLevels) : base(Handle, InternalFormat) =>
+			(this.Size, this.MipLevels) = (Size, MipLevels);
+	}
+}
diff --git a/ObjectTK.Data/Textures/TextureCubeMapArray.cs b/ObjectTK.Data/Textures/TextureCubeMapArray.cs
new file mode 100644
index 0000000..001eb74
--- /dev/null
+++ b/ObjectTK.Data/Textures/TextureCubeMapArray.cs
@@ -0,0 +1,10 @@
+using OpenTK.Graphics.OpenGL;
+
+namespace ObjectTK.Data.Textures {
+	public sealed class TextureCubeMapArray : TextureCubeMap {
+		public override TextureTarget TextureTarget => TextureTarget.TextureCubeMapArray;
+		public int Layers { get; set; }
+		public TextureCubeMapArray(int Handle, SizedInternalFormat InternalFormat, int Size, int Layers, int MipLevels) : base(Handle, InternalFormat, Size, MipLevels) =>
+			this.Layers = Layers;
+	}
+}
diff --git a/ObjectTK.Data/Textures/TextureRectangle.cs b/ObjectTK.Data/Textures/TextureRectangle.cs
new file mode 100644
index 0000000..0641644
--- /dev/null
+++ b/ObjectTK.Data/Textures/TextureRectangle.cs
@@ -0,0 +1,11 @@
+using OpenTK.Graphics.OpenGL;
+
+namespace ObjectTK.Data.Textures {
+	public class TextureRectangle : Texture {
+		public override TextureTarget TextureTarget => TextureTarget.TextureRectangle;
+		public int Width { get; set; }
+		public int Height { get; set; }
+		public TextureRectangle(int Handle, SizedInternalFormat InternalFormat, int Width, int Height) : base(Handle, InternalFormat) =>
+			(this.Width, this.Height) = (Width, Height);
+	}
+}

From 366ce6e53981077eb4e8106f5b6c7002a01add52 Mon Sep 17 00:00:00 2001
From: burnss9 <burnss9@nku.edu>
Date: Sun, 18 Oct 2020 09:58:52 -0400
Subject: [PATCH 04/52] refactor textures

---
 ObjectTK.Data/GLObject.cs                     |  27 ----
 ObjectTK.Data/ObjectTK.Data.csproj            |   4 +
 ObjectTK.Data/Textures/ITexture.cs            |   9 ++
 ObjectTK.Data/Textures/Texture.cs             |   9 --
 ObjectTK.Data/Textures/Texture1D.cs           |  11 --
 ObjectTK.Data/Textures/Texture1DArray.cs      |  10 --
 ObjectTK.Data/Textures/Texture2D.cs           |  12 --
 ObjectTK.Data/Textures/Texture2DArray.cs      |  10 --
 .../Textures/Texture2DMultisample.cs          |  13 --
 .../Textures/Texture2DMultisampleArray.cs     |  11 --
 ObjectTK.Data/Textures/Texture3D.cs           |  13 --
 ObjectTK.Data/Textures/TextureBuffer.cs       |  10 --
 ObjectTK.Data/Textures/TextureCubeMap.cs      |  11 --
 ObjectTK.Data/Textures/TextureCubeMapArray.cs |  10 --
 ObjectTK.Data/Textures/TextureRectangle.cs    |  11 --
 ObjectTK.Data/Textures/Textures.cs            | 124 ++++++++++++++++++
 16 files changed, 137 insertions(+), 158 deletions(-)
 delete mode 100644 ObjectTK.Data/GLObject.cs
 create mode 100644 ObjectTK.Data/Textures/ITexture.cs
 delete mode 100644 ObjectTK.Data/Textures/Texture.cs
 delete mode 100644 ObjectTK.Data/Textures/Texture1D.cs
 delete mode 100644 ObjectTK.Data/Textures/Texture1DArray.cs
 delete mode 100644 ObjectTK.Data/Textures/Texture2D.cs
 delete mode 100644 ObjectTK.Data/Textures/Texture2DArray.cs
 delete mode 100644 ObjectTK.Data/Textures/Texture2DMultisample.cs
 delete mode 100644 ObjectTK.Data/Textures/Texture2DMultisampleArray.cs
 delete mode 100644 ObjectTK.Data/Textures/Texture3D.cs
 delete mode 100644 ObjectTK.Data/Textures/TextureBuffer.cs
 delete mode 100644 ObjectTK.Data/Textures/TextureCubeMap.cs
 delete mode 100644 ObjectTK.Data/Textures/TextureCubeMapArray.cs
 delete mode 100644 ObjectTK.Data/Textures/TextureRectangle.cs
 create mode 100644 ObjectTK.Data/Textures/Textures.cs

diff --git a/ObjectTK.Data/GLObject.cs b/ObjectTK.Data/GLObject.cs
deleted file mode 100644
index bf14e84..0000000
--- a/ObjectTK.Data/GLObject.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-namespace ObjectTK.Data {
-	public abstract class GLObject {
-
-		public int Handle { get; }
-
-		private GLObject() {
-
-		}
-
-		public GLObject(int Handle) {
-			this.Handle = Handle;
-		}
-
-        public bool Equals(GLObject Other) {
-            return Other != null && Handle.Equals(Other.Handle);
-        }
-
-        public override bool Equals(object Other) {
-            return Other is GLObject GLObject && Equals(GLObject);
-        }
-
-        public override int GetHashCode() {
-            return Handle.GetHashCode();
-        }
-
-    }
-}
diff --git a/ObjectTK.Data/ObjectTK.Data.csproj b/ObjectTK.Data/ObjectTK.Data.csproj
index c3c4501..848df19 100644
--- a/ObjectTK.Data/ObjectTK.Data.csproj
+++ b/ObjectTK.Data/ObjectTK.Data.csproj
@@ -8,4 +8,8 @@
     <PackageReference Include="OpenTK" Version="4.0.2" />
   </ItemGroup>
 
+  <ItemGroup>
+    <Folder Include="Uniforms\" />
+  </ItemGroup>
+
 </Project>
diff --git a/ObjectTK.Data/Textures/ITexture.cs b/ObjectTK.Data/Textures/ITexture.cs
new file mode 100644
index 0000000..bd4cd28
--- /dev/null
+++ b/ObjectTK.Data/Textures/ITexture.cs
@@ -0,0 +1,9 @@
+using OpenTK.Graphics.OpenGL;
+
+namespace ObjectTK.Data.Textures {
+	public interface ITexture {
+		public int Handle { get; }
+		TextureTarget TextureTarget { get; }
+		SizedInternalFormat InternalFormat { get; set; }
+	}
+}
diff --git a/ObjectTK.Data/Textures/Texture.cs b/ObjectTK.Data/Textures/Texture.cs
deleted file mode 100644
index bae6d2a..0000000
--- a/ObjectTK.Data/Textures/Texture.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Data.Textures {
-	public abstract class Texture : GLObject {
-		public abstract TextureTarget TextureTarget { get; }
-		public SizedInternalFormat InternalFormat { get; set; }
-		public Texture(int Handle, SizedInternalFormat InternalFormat) : base(Handle) => this.InternalFormat = InternalFormat;
-	}
-}
diff --git a/ObjectTK.Data/Textures/Texture1D.cs b/ObjectTK.Data/Textures/Texture1D.cs
deleted file mode 100644
index d5184c4..0000000
--- a/ObjectTK.Data/Textures/Texture1D.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Data.Textures {
-	public class Texture1D : Texture {
-		public override TextureTarget TextureTarget => TextureTarget.Texture1D;
-		public int Width { get; set; }
-        public int MipLevels { get; set; }
-        public Texture1D(int Handle, SizedInternalFormat InternalFormat, int Width, int MipLevels) : base(Handle, InternalFormat) =>
-			(this.Width, this.MipLevels) = (Width, MipLevels);
-	}
-}
\ No newline at end of file
diff --git a/ObjectTK.Data/Textures/Texture1DArray.cs b/ObjectTK.Data/Textures/Texture1DArray.cs
deleted file mode 100644
index 014aefa..0000000
--- a/ObjectTK.Data/Textures/Texture1DArray.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Data.Textures {
-	public class Texture1DArray : Texture1D {
-		public override TextureTarget TextureTarget => TextureTarget.Texture1DArray;
-		public int Layers { get; set; }
-		public Texture1DArray(int Handle, SizedInternalFormat InternalFormat, int Width, int Layers, int MipLevels) : base(Handle, InternalFormat, Width, MipLevels) =>
-			this.Layers = Layers;
-	}
-}
diff --git a/ObjectTK.Data/Textures/Texture2D.cs b/ObjectTK.Data/Textures/Texture2D.cs
deleted file mode 100644
index b1963df..0000000
--- a/ObjectTK.Data/Textures/Texture2D.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Data.Textures {
-	public class Texture2D : Texture {
-		public override TextureTarget TextureTarget => TextureTarget.Texture2D;
-		public int Width { get; set; }
-		public int Height { get; set; }
-		public int MipLevels { get; set; }
-		public Texture2D(int Handle, SizedInternalFormat InternalFormat, int Width, int Height, int MipLevels) : base(Handle, InternalFormat) =>
-			(this.Width, this.Height, this.MipLevels) = (Width, Height, MipLevels);
-	}
-}
diff --git a/ObjectTK.Data/Textures/Texture2DArray.cs b/ObjectTK.Data/Textures/Texture2DArray.cs
deleted file mode 100644
index e1e563d..0000000
--- a/ObjectTK.Data/Textures/Texture2DArray.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Data.Textures {
-	public class Texture2DArray : Texture2D {
-		public override TextureTarget TextureTarget => TextureTarget.Texture2DArray;
-		public int Layers { get; set; }
-		public Texture2DArray(int Handle, SizedInternalFormat InternalFormat, int Width, int Height, int MipLevels, int Layers) : base(Handle, InternalFormat, Width, Height, MipLevels) =>
-			this.Layers = Layers;
-	}
-}
diff --git a/ObjectTK.Data/Textures/Texture2DMultisample.cs b/ObjectTK.Data/Textures/Texture2DMultisample.cs
deleted file mode 100644
index 3d6e8dc..0000000
--- a/ObjectTK.Data/Textures/Texture2DMultisample.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Data.Textures {
-	public class Texture2DMultisample : Texture {
-        public override TextureTarget TextureTarget => TextureTarget.Texture2DMultisample;
-        public int Width { get; set; }
-        public int Height { get; set; }
-        public int Samples { get; set; }
-        public bool FixedSampleLocations { get; set; }
-        public Texture2DMultisample(int Handle, SizedInternalFormat InternalFormat, int Width, int Height, int Samples, bool FixedSampleLocations) : base(Handle, InternalFormat) =>
-            (this.Width, this.Height, this.Samples, this.FixedSampleLocations) = (Width, Height, Samples, FixedSampleLocations);
-    }
-}
diff --git a/ObjectTK.Data/Textures/Texture2DMultisampleArray.cs b/ObjectTK.Data/Textures/Texture2DMultisampleArray.cs
deleted file mode 100644
index 749d6ca..0000000
--- a/ObjectTK.Data/Textures/Texture2DMultisampleArray.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Data.Textures {
-	public class Texture2DMultisampleArray : Texture2DMultisample {
-		public override TextureTarget TextureTarget => TextureTarget.Texture2DMultisampleArray;
-		public int Layers { get; set; }
-		public Texture2DMultisampleArray(int Handle, SizedInternalFormat InternalFormat, int Width, int Height, int Samples, bool FixedSampleLocations, int Layers) :
-			base(Handle, InternalFormat, Width, Height, Samples, FixedSampleLocations) =>
-			this.Layers = Layers;
-	}
-}
diff --git a/ObjectTK.Data/Textures/Texture3D.cs b/ObjectTK.Data/Textures/Texture3D.cs
deleted file mode 100644
index 9e06fdc..0000000
--- a/ObjectTK.Data/Textures/Texture3D.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Data.Textures {
-	public class Texture3D : Texture {
-		public override TextureTarget TextureTarget => TextureTarget.Texture3D;
-		int Width { get; set; }
-		int Height { get; set; }
-		int Layers { get; set; }
-		public int MipLevels { get; set; }
-		public Texture3D(int Handle, SizedInternalFormat InternalFormat, int Width, int Height, int Layers, int MipLevels) : base(Handle, InternalFormat) =>
-			(this.Width, this.Height, this.Layers, this.MipLevels) = (Width, Height, Layers, MipLevels);
-	}
-}
diff --git a/ObjectTK.Data/Textures/TextureBuffer.cs b/ObjectTK.Data/Textures/TextureBuffer.cs
deleted file mode 100644
index d4c5217..0000000
--- a/ObjectTK.Data/Textures/TextureBuffer.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Data.Textures {
-	public class TextureBuffer : Texture {
-		public override TextureTarget TextureTarget => TextureTarget.TextureBuffer;
-		public TextureBuffer(int Handle, SizedInternalFormat InternalFormat) : base(Handle, InternalFormat) {
-			//TODO: I don't know much about this texture type
-		}
-	}
-}
diff --git a/ObjectTK.Data/Textures/TextureCubeMap.cs b/ObjectTK.Data/Textures/TextureCubeMap.cs
deleted file mode 100644
index 717871f..0000000
--- a/ObjectTK.Data/Textures/TextureCubeMap.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Data.Textures {
-	public class TextureCubeMap : Texture {
-		public override TextureTarget TextureTarget => TextureTarget.TextureCubeMap;
-		public int Size { get; set; }
-		public int MipLevels { get; set; }
-		public TextureCubeMap(int Handle, SizedInternalFormat InternalFormat, int Size, int MipLevels) : base(Handle, InternalFormat) =>
-			(this.Size, this.MipLevels) = (Size, MipLevels);
-	}
-}
diff --git a/ObjectTK.Data/Textures/TextureCubeMapArray.cs b/ObjectTK.Data/Textures/TextureCubeMapArray.cs
deleted file mode 100644
index 001eb74..0000000
--- a/ObjectTK.Data/Textures/TextureCubeMapArray.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Data.Textures {
-	public sealed class TextureCubeMapArray : TextureCubeMap {
-		public override TextureTarget TextureTarget => TextureTarget.TextureCubeMapArray;
-		public int Layers { get; set; }
-		public TextureCubeMapArray(int Handle, SizedInternalFormat InternalFormat, int Size, int Layers, int MipLevels) : base(Handle, InternalFormat, Size, MipLevels) =>
-			this.Layers = Layers;
-	}
-}
diff --git a/ObjectTK.Data/Textures/TextureRectangle.cs b/ObjectTK.Data/Textures/TextureRectangle.cs
deleted file mode 100644
index 0641644..0000000
--- a/ObjectTK.Data/Textures/TextureRectangle.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Data.Textures {
-	public class TextureRectangle : Texture {
-		public override TextureTarget TextureTarget => TextureTarget.TextureRectangle;
-		public int Width { get; set; }
-		public int Height { get; set; }
-		public TextureRectangle(int Handle, SizedInternalFormat InternalFormat, int Width, int Height) : base(Handle, InternalFormat) =>
-			(this.Width, this.Height) = (Width, Height);
-	}
-}
diff --git a/ObjectTK.Data/Textures/Textures.cs b/ObjectTK.Data/Textures/Textures.cs
new file mode 100644
index 0000000..538bfd9
--- /dev/null
+++ b/ObjectTK.Data/Textures/Textures.cs
@@ -0,0 +1,124 @@
+using OpenTK.Graphics.OpenGL;
+
+namespace ObjectTK.Data.Textures {
+	public sealed class Texture1D : ITexture {
+		public int Handle { get; }
+		public SizedInternalFormat InternalFormat { get; set; }
+		public TextureTarget TextureTarget => TextureTarget.Texture1D;
+		public int Width { get; set; }
+		public int MipLevels { get; set; }
+		public Texture1D(int Handle, SizedInternalFormat InternalFormat, int Width, int MipLevels) =>
+			(this.Handle, this.InternalFormat, this.Width, this.MipLevels) = (Handle, InternalFormat, Width, MipLevels);
+	}
+
+	public sealed class Texture2D : ITexture {
+		public int Handle { get; }
+		public SizedInternalFormat InternalFormat { get; set; }
+		public TextureTarget TextureTarget => TextureTarget.Texture2D;
+		public int Width { get; set; }
+		public int Height { get; set; }
+		public int MipLevels { get; set; }
+		public Texture2D(int Handle, SizedInternalFormat InternalFormat, int Width, int Height, int MipLevels) =>
+			(this.Handle, this.InternalFormat, this.Width, this.Height, this.MipLevels) = (Handle, InternalFormat, Width, Height, MipLevels);
+	}
+
+	public sealed class Texture1DArray : ITexture {
+		public int Handle { get; }
+		public SizedInternalFormat InternalFormat { get; set; }
+		public TextureTarget TextureTarget => TextureTarget.Texture1DArray;
+		public int Width { get; set; }
+		public int Layers { get; set; }
+		public int MipLevels { get; set; }
+		public Texture1DArray(int Handle, SizedInternalFormat InternalFormat, int Width, int Layers, int MipLevels) =>
+			(this.Handle, this.InternalFormat, this.Width, this.Layers, this.MipLevels) = (Handle, InternalFormat, Width, Layers, MipLevels);
+	}
+
+	public sealed class Texture2DArray : ITexture {
+		public int Handle { get; }
+		public SizedInternalFormat InternalFormat { get; set; }
+		public TextureTarget TextureTarget => TextureTarget.Texture2DArray;
+		public int Width { get; set; }
+		public int Height { get; set; }
+		public int Layers { get; set; }
+		public int MipLevels { get; set; }
+		public Texture2DArray(int Handle, SizedInternalFormat InternalFormat, int Width, int Height, int Layers, int MipLevels) =>
+			(this.Handle, this.InternalFormat, this.Width, this.Height, this.Layers, this.MipLevels) = (Handle, InternalFormat, Width, Height, Layers, MipLevels);
+	}
+
+	public sealed class Texture2DMultisample : ITexture {
+		public int Handle { get; }
+		public SizedInternalFormat InternalFormat { get; set; }
+		public TextureTarget TextureTarget => TextureTarget.Texture2DMultisample;
+		public int Width { get; set; }
+		public int Height { get; set; }
+		public int Samples { get; set; }
+		public bool FixedSampleLocations { get; set; }
+		public Texture2DMultisample(int Handle, SizedInternalFormat InternalFormat, int Width, int Height, int Samples, bool FixedSampleLocations) =>
+			(this.Handle, this.InternalFormat, this.Width, this.Height, this.Samples, this.FixedSampleLocations) = (Handle, InternalFormat, Width, Height, Samples, FixedSampleLocations);
+	}
+
+	public sealed class Texture2DMultisampleArray : ITexture {
+		public int Handle { get; }
+		public SizedInternalFormat InternalFormat { get; set; }
+		public TextureTarget TextureTarget => TextureTarget.Texture2DMultisampleArray;
+		public int Width { get; set; }
+		public int Height { get; set; }
+		public int Samples { get; set; }
+		public bool FixedSampleLocations { get; set; }
+		public int Layers { get; set; }
+		public Texture2DMultisampleArray(int Handle, SizedInternalFormat InternalFormat, int Width, int Height, int Layers, int Samples, bool FixedSampleLocations) =>
+			(this.Handle, this.InternalFormat, this.Width, this.Height, this.Layers, this.Samples, this.FixedSampleLocations) = (Handle, InternalFormat, Width, Height, Layers, Samples, FixedSampleLocations);
+	}
+
+	public sealed class TextureRectangle : ITexture {
+		public int Handle { get; }
+		public SizedInternalFormat InternalFormat { get; set; }
+		public TextureTarget TextureTarget => TextureTarget.TextureRectangle;
+		public int Width { get; set; }
+		public int Height { get; set; }
+		public TextureRectangle(int Handle, SizedInternalFormat InternalFormat, int Width, int Height) =>
+			(this.Handle, this.InternalFormat, this.Width, this.Height) = (Handle, InternalFormat, Width, Height);
+	}
+
+	public sealed class TextureCubeMap : ITexture {
+		public int Handle { get; }
+		public SizedInternalFormat InternalFormat { get; set; }
+		public TextureTarget TextureTarget => TextureTarget.TextureCubeMap;
+		public int Size { get; set; }
+		public int MipLevels { get; set; }
+		public TextureCubeMap(int Handle, SizedInternalFormat InternalFormat, int Size, int MipLevels) =>
+			(this.Handle, this.InternalFormat, this.Size, this.MipLevels) = (Handle, InternalFormat, Size, MipLevels);
+	}
+
+	public sealed class TextureCubeMapArray : ITexture {
+		public int Handle { get; }
+		public SizedInternalFormat InternalFormat { get; set; }
+		public TextureTarget TextureTarget => TextureTarget.TextureCubeMapArray;
+		public int Size { get; set; }
+		public int Layers { get; set; }
+		public int MipLevels { get; set; }
+		public TextureCubeMapArray(int Handle, SizedInternalFormat InternalFormat, int Size, int Layers, int MipLevels) =>
+			(this.Handle, this.InternalFormat, this.Size, this.Layers, this.MipLevels) = (Handle, InternalFormat, Size, Layers, MipLevels);
+	}
+
+	public sealed class TextureBuffer : ITexture {
+		public int Handle { get; }
+		public SizedInternalFormat InternalFormat { get; set; }
+		public TextureTarget TextureTarget => TextureTarget.TextureBuffer;
+		//TODO: I don't know much about this texture type
+		public TextureBuffer(int Handle, SizedInternalFormat InternalFormat) =>
+			(this.Handle, this.InternalFormat) = (Handle, InternalFormat);
+	}
+
+	public sealed class Texture3D : ITexture {
+		public int Handle { get; }
+		public SizedInternalFormat InternalFormat { get; set; }
+		public TextureTarget TextureTarget => TextureTarget.Texture3D;
+		public int Width { get; set; }
+		public int Height { get; set; }
+		public int Layers { get; set; }
+		public int MipLevels { get; set; }
+		public Texture3D(int Handle, SizedInternalFormat InternalFormat, int Width, int Height, int Layers, int MipLevels) =>
+			(this.Handle, this.InternalFormat, this.Width, this.Height, this.Layers, this.MipLevels) = (Handle, InternalFormat, Width, Height, Layers, MipLevels);
+	}
+}
\ No newline at end of file

From dfa59b14a8385080bb9858815e6f21a1499ff14b Mon Sep 17 00:00:00 2001
From: burnss9 <burnss9@nku.edu>
Date: Sun, 18 Oct 2020 10:17:44 -0400
Subject: [PATCH 05/52] refactor textures

---
 ObjectTK.Data/Textures/ITexture.cs |   9 --
 ObjectTK.Data/Textures/Textures.cs | 127 ++++++++++++++++++++++++-----
 2 files changed, 105 insertions(+), 31 deletions(-)
 delete mode 100644 ObjectTK.Data/Textures/ITexture.cs

diff --git a/ObjectTK.Data/Textures/ITexture.cs b/ObjectTK.Data/Textures/ITexture.cs
deleted file mode 100644
index bd4cd28..0000000
--- a/ObjectTK.Data/Textures/ITexture.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Data.Textures {
-	public interface ITexture {
-		public int Handle { get; }
-		TextureTarget TextureTarget { get; }
-		SizedInternalFormat InternalFormat { get; set; }
-	}
-}
diff --git a/ObjectTK.Data/Textures/Textures.cs b/ObjectTK.Data/Textures/Textures.cs
index 538bfd9..a5e2528 100644
--- a/ObjectTK.Data/Textures/Textures.cs
+++ b/ObjectTK.Data/Textures/Textures.cs
@@ -1,64 +1,109 @@
 using OpenTK.Graphics.OpenGL;
 
 namespace ObjectTK.Data.Textures {
+	public interface ITexture {
+		int Handle { get; }
+		string Name { get; set; }
+		TextureTarget TextureTarget { get; }
+		SizedInternalFormat InternalFormat { get; set; }
+	}
+
 	public sealed class Texture1D : ITexture {
 		public int Handle { get; }
+		public string Name { get; set; }
 		public SizedInternalFormat InternalFormat { get; set; }
 		public TextureTarget TextureTarget => TextureTarget.Texture1D;
 		public int Width { get; set; }
 		public int MipLevels { get; set; }
-		public Texture1D(int Handle, SizedInternalFormat InternalFormat, int Width, int MipLevels) =>
-			(this.Handle, this.InternalFormat, this.Width, this.MipLevels) = (Handle, InternalFormat, Width, MipLevels);
+		public Texture1D(int Handle, string Name, SizedInternalFormat InternalFormat, int Width, int MipLevels) {
+			this.Handle = Handle;
+			this.Name = Name;
+			this.InternalFormat = InternalFormat;
+			this.Width = Width;
+			this.MipLevels = MipLevels;
+		}
+
 	}
 
 	public sealed class Texture2D : ITexture {
 		public int Handle { get; }
+		public string Name { get; set; }
 		public SizedInternalFormat InternalFormat { get; set; }
 		public TextureTarget TextureTarget => TextureTarget.Texture2D;
 		public int Width { get; set; }
 		public int Height { get; set; }
 		public int MipLevels { get; set; }
-		public Texture2D(int Handle, SizedInternalFormat InternalFormat, int Width, int Height, int MipLevels) =>
-			(this.Handle, this.InternalFormat, this.Width, this.Height, this.MipLevels) = (Handle, InternalFormat, Width, Height, MipLevels);
+		public Texture2D(int Handle, string Name, SizedInternalFormat InternalFormat, int Width, int Height, int MipLevels) {
+			this.Handle = Handle;
+			this.Name = Name;
+			this.InternalFormat = InternalFormat;
+			this.Width = Width;
+			this.Height = Height;
+			this.MipLevels = MipLevels;
+		}
 	}
 
 	public sealed class Texture1DArray : ITexture {
 		public int Handle { get; }
+		public string Name { get; set; }
 		public SizedInternalFormat InternalFormat { get; set; }
 		public TextureTarget TextureTarget => TextureTarget.Texture1DArray;
 		public int Width { get; set; }
 		public int Layers { get; set; }
 		public int MipLevels { get; set; }
-		public Texture1DArray(int Handle, SizedInternalFormat InternalFormat, int Width, int Layers, int MipLevels) =>
-			(this.Handle, this.InternalFormat, this.Width, this.Layers, this.MipLevels) = (Handle, InternalFormat, Width, Layers, MipLevels);
+		public Texture1DArray(int Handle, string Name, SizedInternalFormat InternalFormat, int Width, int Layers, int MipLevels) {
+			this.Handle = Handle;
+			this.Name = Name;
+			this.InternalFormat = InternalFormat;
+			this.Width = Width;
+			this.Layers = Layers;
+			this.MipLevels = MipLevels;
+		}
 	}
 
 	public sealed class Texture2DArray : ITexture {
 		public int Handle { get; }
+		public string Name { get; set; }
 		public SizedInternalFormat InternalFormat { get; set; }
 		public TextureTarget TextureTarget => TextureTarget.Texture2DArray;
 		public int Width { get; set; }
 		public int Height { get; set; }
 		public int Layers { get; set; }
 		public int MipLevels { get; set; }
-		public Texture2DArray(int Handle, SizedInternalFormat InternalFormat, int Width, int Height, int Layers, int MipLevels) =>
-			(this.Handle, this.InternalFormat, this.Width, this.Height, this.Layers, this.MipLevels) = (Handle, InternalFormat, Width, Height, Layers, MipLevels);
+		public Texture2DArray(int Handle, string Name, SizedInternalFormat InternalFormat, int Width, int Height, int Layers, int MipLevels) {
+			this.Handle = Handle;
+			this.Name = Name;
+			this.InternalFormat = InternalFormat;
+			this.Width = Width;
+			this.Height = Height;
+			this.Layers = Layers;
+			this.MipLevels = MipLevels;
+		}
 	}
 
 	public sealed class Texture2DMultisample : ITexture {
 		public int Handle { get; }
+		public string Name { get; set; }
 		public SizedInternalFormat InternalFormat { get; set; }
 		public TextureTarget TextureTarget => TextureTarget.Texture2DMultisample;
 		public int Width { get; set; }
 		public int Height { get; set; }
 		public int Samples { get; set; }
 		public bool FixedSampleLocations { get; set; }
-		public Texture2DMultisample(int Handle, SizedInternalFormat InternalFormat, int Width, int Height, int Samples, bool FixedSampleLocations) =>
-			(this.Handle, this.InternalFormat, this.Width, this.Height, this.Samples, this.FixedSampleLocations) = (Handle, InternalFormat, Width, Height, Samples, FixedSampleLocations);
+		public Texture2DMultisample(int Handle, string Name, SizedInternalFormat InternalFormat, int Width, int Height, int Samples, bool FixedSampleLocations) {
+			this.Handle = Handle;
+			this.Name = Name;
+			this.InternalFormat = InternalFormat;
+			this.Width = Width;
+			this.Height = Height;
+			this.Samples = Samples;
+			this.FixedSampleLocations = FixedSampleLocations;
+		}
 	}
 
 	public sealed class Texture2DMultisampleArray : ITexture {
 		public int Handle { get; }
+		public string Name { get; set; }
 		public SizedInternalFormat InternalFormat { get; set; }
 		public TextureTarget TextureTarget => TextureTarget.Texture2DMultisampleArray;
 		public int Width { get; set; }
@@ -66,59 +111,97 @@ public sealed class Texture2DMultisampleArray : ITexture {
 		public int Samples { get; set; }
 		public bool FixedSampleLocations { get; set; }
 		public int Layers { get; set; }
-		public Texture2DMultisampleArray(int Handle, SizedInternalFormat InternalFormat, int Width, int Height, int Layers, int Samples, bool FixedSampleLocations) =>
-			(this.Handle, this.InternalFormat, this.Width, this.Height, this.Layers, this.Samples, this.FixedSampleLocations) = (Handle, InternalFormat, Width, Height, Layers, Samples, FixedSampleLocations);
+		public Texture2DMultisampleArray(int Handle, string Name, SizedInternalFormat InternalFormat, int Width, int Height, int Layers, int Samples, bool FixedSampleLocations) {
+			this.Handle = Handle;
+			this.Name = Name;
+			this.InternalFormat = InternalFormat;
+			this.Width = Width;
+			this.Height = Height;
+			this.Layers = Layers;
+			this.Samples = Samples;
+			this.FixedSampleLocations = FixedSampleLocations;
+		}
 	}
 
 	public sealed class TextureRectangle : ITexture {
 		public int Handle { get; }
+		public string Name { get; set; }
 		public SizedInternalFormat InternalFormat { get; set; }
 		public TextureTarget TextureTarget => TextureTarget.TextureRectangle;
 		public int Width { get; set; }
 		public int Height { get; set; }
-		public TextureRectangle(int Handle, SizedInternalFormat InternalFormat, int Width, int Height) =>
-			(this.Handle, this.InternalFormat, this.Width, this.Height) = (Handle, InternalFormat, Width, Height);
+		public TextureRectangle(int Handle, string Name, SizedInternalFormat InternalFormat, int Width, int Height) {
+			this.Handle = Handle;
+			this.Name = Name;
+			this.InternalFormat = InternalFormat;
+			this.Width = Width;
+			this.Height = Height;
+		}
 	}
 
 	public sealed class TextureCubeMap : ITexture {
 		public int Handle { get; }
+		public string Name { get; set; }
 		public SizedInternalFormat InternalFormat { get; set; }
 		public TextureTarget TextureTarget => TextureTarget.TextureCubeMap;
 		public int Size { get; set; }
 		public int MipLevels { get; set; }
-		public TextureCubeMap(int Handle, SizedInternalFormat InternalFormat, int Size, int MipLevels) =>
-			(this.Handle, this.InternalFormat, this.Size, this.MipLevels) = (Handle, InternalFormat, Size, MipLevels);
+		public TextureCubeMap(int Handle, string Name, SizedInternalFormat InternalFormat, int Size, int MipLevels) {
+			this.Handle = Handle;
+			this.Name = Name;
+			this.InternalFormat = InternalFormat;
+			this.Size = Size;
+			this.MipLevels = MipLevels;
+		}
 	}
 
 	public sealed class TextureCubeMapArray : ITexture {
 		public int Handle { get; }
+		public string Name { get; set; }
 		public SizedInternalFormat InternalFormat { get; set; }
 		public TextureTarget TextureTarget => TextureTarget.TextureCubeMapArray;
 		public int Size { get; set; }
 		public int Layers { get; set; }
 		public int MipLevels { get; set; }
-		public TextureCubeMapArray(int Handle, SizedInternalFormat InternalFormat, int Size, int Layers, int MipLevels) =>
-			(this.Handle, this.InternalFormat, this.Size, this.Layers, this.MipLevels) = (Handle, InternalFormat, Size, Layers, MipLevels);
+		public TextureCubeMapArray(int Handle, string Name, SizedInternalFormat InternalFormat, int Size, int Layers, int MipLevels) {
+			this.Handle = Handle;
+			this.Name = Name;
+			this.InternalFormat = InternalFormat;
+			this.Size = Size;
+			this.Layers = Layers;
+			this.MipLevels = MipLevels;
+		}
 	}
 
 	public sealed class TextureBuffer : ITexture {
 		public int Handle { get; }
+		public string Name { get; set; }
 		public SizedInternalFormat InternalFormat { get; set; }
 		public TextureTarget TextureTarget => TextureTarget.TextureBuffer;
 		//TODO: I don't know much about this texture type
-		public TextureBuffer(int Handle, SizedInternalFormat InternalFormat) =>
-			(this.Handle, this.InternalFormat) = (Handle, InternalFormat);
+		public TextureBuffer(int Handle, string Name, SizedInternalFormat InternalFormat) {
+			this.Handle = Handle;
+			this.InternalFormat = InternalFormat;
+		}
 	}
 
 	public sealed class Texture3D : ITexture {
 		public int Handle { get; }
+		public string Name { get; set; }
 		public SizedInternalFormat InternalFormat { get; set; }
 		public TextureTarget TextureTarget => TextureTarget.Texture3D;
 		public int Width { get; set; }
 		public int Height { get; set; }
 		public int Layers { get; set; }
 		public int MipLevels { get; set; }
-		public Texture3D(int Handle, SizedInternalFormat InternalFormat, int Width, int Height, int Layers, int MipLevels) =>
-			(this.Handle, this.InternalFormat, this.Width, this.Height, this.Layers, this.MipLevels) = (Handle, InternalFormat, Width, Height, Layers, MipLevels);
+		public Texture3D(int Handle, string Name, SizedInternalFormat InternalFormat, int Width, int Height, int Layers, int MipLevels) {
+			this.Handle = Handle;
+			this.Name = Name;
+			this.InternalFormat = InternalFormat;
+			this.Width = Width;
+			this.Height = Height;
+			this.Layers = Layers;
+			this.MipLevels = MipLevels;
+		}
 	}
 }
\ No newline at end of file

From 35c3b3cd56f00018a09cd8625bd83e25ffea05cf Mon Sep 17 00:00:00 2001
From: burnss9 <burnss9@nku.edu>
Date: Mon, 19 Oct 2020 22:18:56 -0400
Subject: [PATCH 06/52] Adding a few things for the first example

---
 ObjectTK.Tools/CameraWindow.cs                | 41 ++++++++++
 ObjectTK.Tools/Cameras/Camera.cs              | 59 ++++++++++++++
 .../Cameras/CameraProjectionType.cs           | 10 +++
 ObjectTK.Tools/FrameTimer.cs                  | 81 +++++++++++++++++++
 ObjectTK.Tools/Mathematics/Ray.cs             |  9 +++
 ObjectTK.Tools/ObjectTK.Tools.csproj          |  7 ++
 ObjectTK.sln                                  |  6 ++
 7 files changed, 213 insertions(+)
 create mode 100644 ObjectTK.Tools/CameraWindow.cs
 create mode 100644 ObjectTK.Tools/Cameras/Camera.cs
 create mode 100644 ObjectTK.Tools/Cameras/CameraProjectionType.cs
 create mode 100644 ObjectTK.Tools/FrameTimer.cs
 create mode 100644 ObjectTK.Tools/Mathematics/Ray.cs
 create mode 100644 ObjectTK.Tools/ObjectTK.Tools.csproj

diff --git a/ObjectTK.Tools/CameraWindow.cs b/ObjectTK.Tools/CameraWindow.cs
new file mode 100644
index 0000000..6f1bd9f
--- /dev/null
+++ b/ObjectTK.Tools/CameraWindow.cs
@@ -0,0 +1,41 @@
+using System;
+
+namespace ObjectTK.Tools {
+	using ObjectTK.Tools.Cameras;
+	using OpenTK.Mathematics;
+	using OpenTK.Windowing.Common;
+	using OpenTK.Windowing.Desktop;
+
+	public abstract class CameraWindow : GameWindow {
+
+		protected readonly FrameTimer FrameTimer;
+
+
+		private Camera _ActiveCamera = new Camera();
+		protected Camera ActiveCamera {
+			get {
+				return _ActiveCamera;
+			}
+			set {
+				_ActiveCamera = value;
+				_ActiveCamera.Viewport = new Box2i(Vector2i.Zero, Size);
+			}
+		}
+
+		protected CameraWindow(int width, int height, string title)
+			: base(new GameWindowSettings { }, new NativeWindowSettings { Size = new Vector2i(width, height), Title = title }) {
+			FrameTimer = new FrameTimer();
+		}
+
+		protected override void OnResize(ResizeEventArgs resizeEventArgs) {
+			base.OnResize(resizeEventArgs);
+			_ActiveCamera.Viewport = new Box2i(Vector2i.Zero, Size);
+		}
+
+		protected override void OnUpdateFrame(FrameEventArgs frameEventArgs) {
+			base.OnUpdateFrame(frameEventArgs);
+			FrameTimer.Time();
+		}
+
+	}
+}
\ No newline at end of file
diff --git a/ObjectTK.Tools/Cameras/Camera.cs b/ObjectTK.Tools/Cameras/Camera.cs
new file mode 100644
index 0000000..e6ecd09
--- /dev/null
+++ b/ObjectTK.Tools/Cameras/Camera.cs
@@ -0,0 +1,59 @@
+using ObjectTK.Tools.Mathematics;
+using OpenTK.Mathematics;
+
+namespace ObjectTK.Tools.Cameras {
+	public class Camera {
+		public Vector3 Position { get; set; } = Vector3.Zero;
+		public Quaternion Rotation { get; set; } = Quaternion.Identity;
+		public Vector3 Forward => Vector3.Transform(Vector3.UnitZ, Rotation).Normalized();
+		public Vector3 Up => Vector3.Transform(Vector3.UnitY, Rotation).Normalized();
+		public Vector3 Right => Vector3.Cross(Forward, Up);
+		public float PerspectiveFieldOfView { get; set; } = MathHelper.PiOver2;
+		public float AspectRatio => Viewport.Size.X / (float)Viewport.Size.Y;
+		public Matrix4 ViewMatrix => Matrix4.LookAt(Position, Position + Forward, Up);
+
+		public CameraProjectionType CameraProjectionType { get; set; } = CameraProjectionType.Perspective;
+		public Matrix4 ProjectionMatrix => CameraProjectionType switch
+		{
+			CameraProjectionType.Perspective => Matrix4.CreatePerspectiveFieldOfView(PerspectiveFieldOfView, AspectRatio, NearClippingPlaneDistance, FarClippingPlaneDistance),
+			CameraProjectionType.Orthographic => Matrix4.CreateOrthographic(OrthographicVerticalSize * AspectRatio, OrthographicVerticalSize, NearClippingPlaneDistance, FarClippingPlaneDistance),
+			_ => Matrix4.CreatePerspectiveFieldOfView(PerspectiveFieldOfView, AspectRatio, NearClippingPlaneDistance, FarClippingPlaneDistance)
+		};
+
+		public Matrix4 ViewProjectionMatrix => ViewMatrix * ProjectionMatrix;
+		public Box2i Viewport { get; set; }
+		public float OrthographicVerticalSize { get; set; } = 5.0f;
+		public float NearClippingPlaneDistance { get; set; } = 0.1f;
+		public float FarClippingPlaneDistance { get; set; } = 1000.0f;
+
+		public Ray GetPickingRay(Vector2 MousePosition) {
+
+			Matrix4 UnViewProjectionMatrix = Matrix4.Invert(ViewProjectionMatrix);
+
+			Vector3 Near = Vector3.Unproject(
+				new Vector3(MousePosition.X, Viewport.Size.Y - MousePosition.Y, NearClippingPlaneDistance),
+				Viewport.Min.X,
+				Viewport.Min.Y,
+				Viewport.Size.X,
+				Viewport.Size.Y,
+				NearClippingPlaneDistance,
+				FarClippingPlaneDistance,
+				UnViewProjectionMatrix);
+
+			Vector3 Far = Vector3.Unproject(
+				new Vector3(MousePosition.X, Viewport.Size.Y - MousePosition.Y, FarClippingPlaneDistance),
+				Viewport.Min.X,
+				Viewport.Min.Y,
+				Viewport.Size.X,
+				Viewport.Size.Y,
+				NearClippingPlaneDistance,
+				FarClippingPlaneDistance,
+				UnViewProjectionMatrix);
+
+			Vector3 Direction = (Far - Near).Normalized();
+
+			return new Ray { Origin = Position, Direction = Direction, Length = 1.0f };
+		}
+
+	}
+}
diff --git a/ObjectTK.Tools/Cameras/CameraProjectionType.cs b/ObjectTK.Tools/Cameras/CameraProjectionType.cs
new file mode 100644
index 0000000..345b56b
--- /dev/null
+++ b/ObjectTK.Tools/Cameras/CameraProjectionType.cs
@@ -0,0 +1,10 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace ObjectTK.Tools.Cameras {
+	public enum CameraProjectionType {
+		Perspective,
+		Orthographic
+	}
+}
diff --git a/ObjectTK.Tools/FrameTimer.cs b/ObjectTK.Tools/FrameTimer.cs
new file mode 100644
index 0000000..a8f36b2
--- /dev/null
+++ b/ObjectTK.Tools/FrameTimer.cs
@@ -0,0 +1,81 @@
+using System.Diagnostics;
+
+namespace ObjectTK.Tools {
+    public class FrameTimer {
+        /// <summary>
+        /// Total number of frames rendered.
+        /// </summary>
+        public int FramesRendered { get; private set; }
+
+        /// <summary>
+        /// Time spent for the last completed frame in milliseconds.
+        /// </summary>
+        public double FrameTime { get; private set; }
+
+        /// <summary>
+        /// Frames per second calculated from the time spent on the last frame.
+        /// </summary>
+        public double FpsBasedOnFrameTime { get; private set; }
+
+        /// <summary>
+        /// Frames per second calculated from the number of frames completed within the last second.
+        /// </summary>
+        public double FpsBasedOnFramesRendered { get; private set; }
+
+        /// <summary>
+        /// Total time running in milliseconds.
+        /// </summary>
+        public double TimeRunning { get; protected set; }
+
+        private readonly Stopwatch _stopwatch;
+        private double _elapsed;
+        private int _fpsFrameCounter;
+
+        private double _lastIntermediateTime;
+
+        /// <summary>
+        /// Initializes a new instance of the FrameTimer class.
+        /// </summary>
+        public FrameTimer() {
+            _stopwatch = new Stopwatch();
+            //Application.Idle += (sender, args) => Time();
+            _stopwatch.Start();
+        }
+
+        /// <summary>
+        /// Calculates timings based on the intervals between subsequent calls. Call once each frame.<br/>
+        /// Determines frames per seconds and other statistics.
+        /// </summary>
+        public void Time() {
+            // retrieve time spent since last frame
+            FrameTime = _stopwatch.Elapsed.TotalMilliseconds;
+            _stopwatch.Restart();
+            // count time running
+            TimeRunning += FrameTime;
+            // calculate fps based on time spent on one frame
+            FpsBasedOnFrameTime = (int)(1000 / FrameTime);
+            // calculate fps based on frames rendered during one second
+            _elapsed += FrameTime;
+            _fpsFrameCounter++;
+            if (_elapsed > 1000) {
+                _elapsed -= 1000;
+                FpsBasedOnFramesRendered = _fpsFrameCounter;
+                _fpsFrameCounter = 0;
+            }
+            // count frames rendered
+            FramesRendered++;
+            // reset intermediate timings
+            _lastIntermediateTime = 0;
+        }
+
+        /// <summary>
+        /// Calculates the interval between two subsequent calls in milliseconds.
+        /// </summary>
+        public double IntermediateTiming() {
+            var elapsed = _stopwatch.Elapsed.TotalMilliseconds;
+            var time = elapsed - _lastIntermediateTime;
+            _lastIntermediateTime = elapsed;
+            return time;
+        }
+    }
+}
diff --git a/ObjectTK.Tools/Mathematics/Ray.cs b/ObjectTK.Tools/Mathematics/Ray.cs
new file mode 100644
index 0000000..8cdf63a
--- /dev/null
+++ b/ObjectTK.Tools/Mathematics/Ray.cs
@@ -0,0 +1,9 @@
+using OpenTK.Mathematics;
+
+namespace ObjectTK.Tools.Mathematics {
+	public class Ray {
+		public Vector3 Origin { get; set; }
+		public Vector3 Direction { get; set; }
+		public float Length { get; set; }
+	}
+}
diff --git a/ObjectTK.Tools/ObjectTK.Tools.csproj b/ObjectTK.Tools/ObjectTK.Tools.csproj
new file mode 100644
index 0000000..cb63190
--- /dev/null
+++ b/ObjectTK.Tools/ObjectTK.Tools.csproj
@@ -0,0 +1,7 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>netcoreapp3.1</TargetFramework>
+  </PropertyGroup>
+
+</Project>
diff --git a/ObjectTK.sln b/ObjectTK.sln
index 90e8162..033df80 100644
--- a/ObjectTK.sln
+++ b/ObjectTK.sln
@@ -5,6 +5,8 @@ VisualStudioVersion = 16.0.30114.105
 MinimumVisualStudioVersion = 10.0.40219.1
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ObjectTK.Data", "ObjectTK.Data\ObjectTK.Data.csproj", "{163450BD-24E0-4C3E-A310-3AEBD709E065}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ObjectTK.Tools", "ObjectTK.Tools\ObjectTK.Tools.csproj", "{B5DCB84E-3E09-4F37-B06E-68565756624F}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
@@ -15,6 +17,10 @@ Global
 		{163450BD-24E0-4C3E-A310-3AEBD709E065}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{163450BD-24E0-4C3E-A310-3AEBD709E065}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{163450BD-24E0-4C3E-A310-3AEBD709E065}.Release|Any CPU.Build.0 = Release|Any CPU
+		{B5DCB84E-3E09-4F37-B06E-68565756624F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{B5DCB84E-3E09-4F37-B06E-68565756624F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{B5DCB84E-3E09-4F37-B06E-68565756624F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{B5DCB84E-3E09-4F37-B06E-68565756624F}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE

From 84f021b3dbdac4ef200b87a1f34d20a434f2509a Mon Sep 17 00:00:00 2001
From: burnss9 <burnss9@nku.edu>
Date: Mon, 19 Oct 2020 23:21:16 -0400
Subject: [PATCH 07/52] Add enough to get a hello triangle example working

still needs a buffer data object but pretty close
---
 Examples/Entry.cs                          |  47 +++++++++
 Examples/ExampleProjectAttribute.cs        |  11 +++
 Examples/ExampleWindow.cs                  |  69 +++++++++++++
 Examples/Examples.csproj                   |  14 +++
 Examples/Examples/HelloTriangle.cs         | 110 +++++++++++++++++++++
 ObjectTK.Data/Buffers/VertexArray.cs       |   8 ++
 ObjectTK.Data/ObjectTK.Data.csproj         |   8 +-
 ObjectTK.Data/Shaders/Program.cs           |  18 ++++
 ObjectTK.Data/Shaders/Shaders.cs           |  28 ++++++
 ObjectTK.Data/Variables/ProgramVariable.cs |  11 +++
 ObjectTK.Data/Variables/Uniform.cs         |   6 ++
 ObjectTK.Data/Variables/VertexAttrib.cs    |  10 ++
 ObjectTK.Tools/ObjectTK.Tools.csproj       |   4 +
 ObjectTK.sln                               |   7 ++
 14 files changed, 345 insertions(+), 6 deletions(-)
 create mode 100644 Examples/Entry.cs
 create mode 100644 Examples/ExampleProjectAttribute.cs
 create mode 100644 Examples/ExampleWindow.cs
 create mode 100644 Examples/Examples.csproj
 create mode 100644 Examples/Examples/HelloTriangle.cs
 create mode 100644 ObjectTK.Data/Buffers/VertexArray.cs
 create mode 100644 ObjectTK.Data/Shaders/Program.cs
 create mode 100644 ObjectTK.Data/Shaders/Shaders.cs
 create mode 100644 ObjectTK.Data/Variables/ProgramVariable.cs
 create mode 100644 ObjectTK.Data/Variables/Uniform.cs
 create mode 100644 ObjectTK.Data/Variables/VertexAttrib.cs

diff --git a/Examples/Entry.cs b/Examples/Entry.cs
new file mode 100644
index 0000000..c203a1b
--- /dev/null
+++ b/Examples/Entry.cs
@@ -0,0 +1,47 @@
+using OpenTK.Windowing.Desktop;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+
+namespace Examples {
+	class Entry {
+		static void Main(string[] args) {
+
+			var Examples = Assembly.GetExecutingAssembly().GetTypes()
+				.Where(_ => _ != typeof(ExampleWindow) && typeof(ExampleWindow).IsAssignableFrom(_))
+				.Select(Type => 
+				new {
+					Caption = Type.GetCustomAttributes<ExampleProjectAttribute>(false).FirstOrDefault()?.Caption ?? nameof(Type),
+					Type = Type
+				}).ToArray();
+
+			while (PromptForExample(out Type Example)) {
+				using (var ExampleWindow = (GameWindow)Activator.CreateInstance(Example)) {
+					ExampleWindow.Run();
+				}
+			}
+
+			bool PromptForExample(out Type Example) {
+				Example = null;
+				int Count = 1;
+				Console.WriteLine("Select example: ");
+
+				foreach (var Pair in Examples) {
+					Console.WriteLine($"{Count++} - {Pair.Caption}");
+				}
+
+				string input = Console.ReadLine();
+				if (int.TryParse(input, out int Selection) && Selection - 1 >= 0 && Selection - 1 < Examples.Length) {
+					Example = Examples[Selection - 1].Type;
+					return true;
+				}
+
+				return false;
+			}
+
+
+		}
+
+	}
+}
diff --git a/Examples/ExampleProjectAttribute.cs b/Examples/ExampleProjectAttribute.cs
new file mode 100644
index 0000000..db196d5
--- /dev/null
+++ b/Examples/ExampleProjectAttribute.cs
@@ -0,0 +1,11 @@
+using System;
+
+namespace Examples {
+	[AttributeUsage(AttributeTargets.Class)]
+	public class ExampleProjectAttribute : Attribute {
+		public readonly string Caption;
+		public ExampleProjectAttribute(string Caption) {
+			this.Caption = Caption;
+		}
+	}
+}
diff --git a/Examples/ExampleWindow.cs b/Examples/ExampleWindow.cs
new file mode 100644
index 0000000..22f0c91
--- /dev/null
+++ b/Examples/ExampleWindow.cs
@@ -0,0 +1,69 @@
+using ObjectTK.Tools;
+using OpenTK.Mathematics;
+using OpenTK.Windowing.Common;
+using OpenTK.Windowing.Desktop;
+using OpenTK.Windowing.GraphicsLibraryFramework;
+using System;
+
+namespace Examples {
+	public class ExampleWindow : CameraWindow {
+		private string OriginalTitle { get; set; }
+
+		private float CameraPitch { get; set; } = 0;
+		private float CameraYaw { get; set; } = (float)Math.PI;
+
+		public ExampleWindow() : base(800, 600, "ExampleWindow") {
+
+		}
+
+		protected override void OnLoad() {
+			base.OnLoad();
+			// maximize window
+			WindowState = WindowState.Maximized;
+			// remember original title
+			OriginalTitle = Title;
+
+			ActiveCamera.Rotation = Quaternion.FromAxisAngle(Vector3.UnitY, CameraYaw) * Quaternion.FromAxisAngle(Vector3.UnitX, CameraPitch);
+
+		}
+
+		protected override void OnRenderFrame(FrameEventArgs e) {
+			base.OnRenderFrame(e);
+			// display FPS in the window title
+			Title = string.Format("ObjectTK example: {0} - FPS {1}", OriginalTitle, FrameTimer.FpsBasedOnFramesRendered);
+		}
+
+		protected override void OnUpdateFrame(FrameEventArgs e) {
+			base.OnUpdateFrame(e);
+			HandleCameraInput((float)e.Time);
+		}
+
+		private void HandleCameraInput(float DeltaSeconds) {
+			Vector3 Direction = Vector3.Zero;
+			if (KeyboardState.IsKeyDown(Keys.W)) Direction += ActiveCamera.Forward;
+			if (KeyboardState.IsKeyDown(Keys.S)) Direction -= ActiveCamera.Forward;
+			if (KeyboardState.IsKeyDown(Keys.D)) Direction += ActiveCamera.Right;
+			if (KeyboardState.IsKeyDown(Keys.A)) Direction -= ActiveCamera.Right;
+			if (KeyboardState.IsKeyDown(Keys.Space)) Direction += ActiveCamera.Up;
+			if (KeyboardState.IsKeyDown(Keys.LeftControl)) Direction -= ActiveCamera.Up;
+			if (Direction.LengthSquared > 0) ActiveCamera.Position += Direction.Normalized() * DeltaSeconds;
+		}
+
+		protected override void OnKeyDown(KeyboardKeyEventArgs e) {
+			base.OnKeyDown(e);
+			if (e.Key == Keys.Escape) Close();
+		}
+
+
+		protected override void OnMouseMove(MouseMoveEventArgs e) {
+			base.OnMouseMove(e);
+			if (MouseState.IsButtonDown(MouseButton.Button2)) {
+				CameraPitch -= e.DeltaY * 0.005f;
+				CameraPitch = Math.Clamp(CameraPitch, -MathHelper.PiOver2, MathHelper.PiOver2);
+				CameraYaw += e.DeltaX * 0.005f;
+				ActiveCamera.Rotation = Quaternion.FromAxisAngle(-Vector3.UnitY, CameraYaw) * Quaternion.FromAxisAngle(-Vector3.UnitX, CameraPitch);
+			}
+		}
+
+	}
+}
\ No newline at end of file
diff --git a/Examples/Examples.csproj b/Examples/Examples.csproj
new file mode 100644
index 0000000..6154fb4
--- /dev/null
+++ b/Examples/Examples.csproj
@@ -0,0 +1,14 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>netcoreapp3.1</TargetFramework>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="..\ObjectTK.Data\ObjectTK.Data.csproj" />
+    <ProjectReference Include="..\ObjectTK.Extensions\ObjectTK.Extensions.csproj" />
+    <ProjectReference Include="..\ObjectTK.Tools\ObjectTK.Tools.csproj" />
+  </ItemGroup>
+
+</Project>
diff --git a/Examples/Examples/HelloTriangle.cs b/Examples/Examples/HelloTriangle.cs
new file mode 100644
index 0000000..8f21433
--- /dev/null
+++ b/Examples/Examples/HelloTriangle.cs
@@ -0,0 +1,110 @@
+
+using System;
+using System.Drawing;
+using ObjectTK.Data.Buffers;
+using ObjectTK.Data.Shaders;
+using OpenTK.Graphics.OpenGL;
+using OpenTK.Mathematics;
+using OpenTK.Windowing.Common;
+
+namespace Examples.Examples {
+	
+	[ExampleProject("Hello Triangle")]
+	public class HelloTriangle : ExampleWindow {
+
+		private Program ShaderProgram;
+		private int VBOHandle;
+		private VertexArray VAO;
+		
+		private readonly string VertSource = @"
+				#version 330 core
+
+				uniform mat4 ModelViewProjectionMatrix;
+				layout(location = 0) in vec3 InPosition;
+
+				void main(void) {
+					gl_Position = ModelViewProjectionMatrix * vec4(InPosition, 1.0);
+				}
+			";
+		private readonly string FragSource = @"
+				#version 330
+
+				out vec4 FragColor;
+
+				void main()
+				{
+					FragColor = vec4(1);
+				}
+			";
+
+		protected override void OnLoad() {
+			base.OnLoad();
+
+			VertexShader VertexShader = new VertexShader(GL.CreateShader(ShaderType.VertexShader), null);
+			FragmentShader FragmentShader = new FragmentShader(GL.CreateShader(ShaderType.FragmentShader), null);
+
+			GL.ShaderSource(VertexShader.Handle, VertSource);
+			GL.ShaderSource(FragmentShader.Handle, FragSource);
+			GL.CompileShader(VertexShader.Handle);
+			GL.CompileShader(FragmentShader.Handle);
+
+			ShaderProgram = new Program(GL.CreateProgram(), VertexShader, FragmentShader);
+
+			GL.AttachShader(ShaderProgram.Handle, VertexShader.Handle);
+			GL.AttachShader(ShaderProgram.Handle, FragmentShader.Handle);
+
+			GL.LinkProgram(ShaderProgram.Handle);
+
+			GL.DetachShader(ShaderProgram.Handle, VertexShader.Handle);
+			GL.DetachShader(ShaderProgram.Handle, FragmentShader.Handle);
+			GL.DeleteShader(VertexShader.Handle);
+			GL.DeleteShader(FragmentShader.Handle);
+
+			GL.UseProgram(ShaderProgram.Handle);
+
+			GL.GetProgram(ShaderProgram.Handle, GetProgramParameterName.LinkStatus, out var code);
+			if (code != (int)All.True) {
+				throw new Exception($"Error occurred whilst linking Program({ShaderProgram.Handle})");
+			}
+
+
+			var Vertices = new[] { new Vector3(-1, -1, 0), new Vector3(1, -1, 0), new Vector3(0, 1, 0) };
+
+			VBOHandle = GL.GenBuffer();
+			GL.BindBuffer(BufferTarget.ArrayBuffer, VBOHandle);
+			GL.BufferData(BufferTarget.ArrayBuffer, Vertices.Length * sizeof(float) * 3, Vertices, BufferUsageHint.StaticDraw);
+
+
+			VAO = new VertexArray(GL.GenVertexArray());
+			GL.BindVertexArray(VAO.Handle);
+			GL.VertexAttribPointer(0, 3, VertexAttribPointerType.Float, false, 3 * sizeof(float), 0);
+			GL.EnableVertexAttribArray(0);
+			GL.BindBuffer(BufferTarget.ArrayBuffer, VBOHandle);
+
+			ActiveCamera.Position = new Vector3(0, 0, 3);
+
+			GL.ClearColor(Color.MidnightBlue);
+		}
+
+		private void OnUnload(object sender, EventArgs e) {
+			base.OnUnload();
+
+			GL.DeleteProgram(ShaderProgram.Handle);
+			GL.DeleteVertexArray(VAO.Handle);
+			GL.DeleteBuffer(VBOHandle);
+		}
+
+		protected override void OnRenderFrame(FrameEventArgs e) {
+			base.OnRenderFrame(e);
+			GL.Viewport(0, 0, Size.X, Size.Y);
+			GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
+
+			Matrix4 MVPMatrix = ActiveCamera.ViewProjectionMatrix;
+			GL.UniformMatrix4(0, false, ref MVPMatrix);
+
+			GL.DrawArrays(PrimitiveType.Triangles, 0, 3);
+
+			SwapBuffers();
+		}
+	}
+}
diff --git a/ObjectTK.Data/Buffers/VertexArray.cs b/ObjectTK.Data/Buffers/VertexArray.cs
new file mode 100644
index 0000000..8a6be7b
--- /dev/null
+++ b/ObjectTK.Data/Buffers/VertexArray.cs
@@ -0,0 +1,8 @@
+namespace ObjectTK.Data.Buffers {
+	public class VertexArray {
+		public int Handle { get; }
+		public VertexArray(int Handle) {
+			this.Handle = Handle;
+		}
+	}
+}
diff --git a/ObjectTK.Data/ObjectTK.Data.csproj b/ObjectTK.Data/ObjectTK.Data.csproj
index 848df19..f887b41 100644
--- a/ObjectTK.Data/ObjectTK.Data.csproj
+++ b/ObjectTK.Data/ObjectTK.Data.csproj
@@ -1,15 +1,11 @@
-<Project Sdk="Microsoft.NET.Sdk">
+<Project Sdk="Microsoft.NET.Sdk">
 
   <PropertyGroup>
     <TargetFramework>netcoreapp3.1</TargetFramework>
   </PropertyGroup>
 
   <ItemGroup>
-    <PackageReference Include="OpenTK" Version="4.0.2" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <Folder Include="Uniforms\" />
+    <PackageReference Include="OpenTK" Version="4.0.6" />
   </ItemGroup>
 
 </Project>
diff --git a/ObjectTK.Data/Shaders/Program.cs b/ObjectTK.Data/Shaders/Program.cs
new file mode 100644
index 0000000..0caf57a
--- /dev/null
+++ b/ObjectTK.Data/Shaders/Program.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace ObjectTK.Data.Shaders {
+	public class Program {
+		public int Handle { get; }
+		public VertexShader VertexShader { get; }
+		public FragmentShader FragmentShader { get; }
+
+		public Program(int Handle, VertexShader VertexShader, FragmentShader FragmentShader) {
+			this.Handle = Handle;
+			this.VertexShader = VertexShader;
+			this.FragmentShader = FragmentShader;
+		}
+
+	}
+}
diff --git a/ObjectTK.Data/Shaders/Shaders.cs b/ObjectTK.Data/Shaders/Shaders.cs
new file mode 100644
index 0000000..3e80640
--- /dev/null
+++ b/ObjectTK.Data/Shaders/Shaders.cs
@@ -0,0 +1,28 @@
+using OpenTK.Graphics.OpenGL;
+
+namespace ObjectTK.Data.Shaders {
+	public abstract class Shader {
+		public int Handle { get; }
+		public string Source { get; }
+		public abstract ShaderType ShaderType { get; }
+
+		public Shader(int Handle, string Source) {
+			this.Handle = Handle;
+			this.Source = Source;
+		}
+	}
+	public class VertexShader : Shader {
+		public override ShaderType ShaderType => ShaderType.VertexShader;
+		public VertexShader(int Handle, string Source) : base(Handle, Source) {
+
+		}
+	}
+
+	public class FragmentShader : Shader {
+		public override ShaderType ShaderType => ShaderType.FragmentShader;
+		public FragmentShader(int Handle, string Source) : base(Handle, Source) {
+
+		}
+
+	}
+}
diff --git a/ObjectTK.Data/Variables/ProgramVariable.cs b/ObjectTK.Data/Variables/ProgramVariable.cs
new file mode 100644
index 0000000..02d8e72
--- /dev/null
+++ b/ObjectTK.Data/Variables/ProgramVariable.cs
@@ -0,0 +1,11 @@
+using OpenTK.Graphics.OpenGL;
+
+namespace ObjectTK.Data.Variables {
+	public class ProgramVariable {
+
+		public int ProgramHandle { get; }
+		public string Name { get; set; }
+		public bool Active { get; set; }
+
+	}
+}
diff --git a/ObjectTK.Data/Variables/Uniform.cs b/ObjectTK.Data/Variables/Uniform.cs
new file mode 100644
index 0000000..87f8713
--- /dev/null
+++ b/ObjectTK.Data/Variables/Uniform.cs
@@ -0,0 +1,6 @@
+
+namespace ObjectTK.Data.Variables {
+	public class Uniform<T> : ProgramVariable {
+		public int Location { get; set; }
+	}
+}
diff --git a/ObjectTK.Data/Variables/VertexAttrib.cs b/ObjectTK.Data/Variables/VertexAttrib.cs
new file mode 100644
index 0000000..f332574
--- /dev/null
+++ b/ObjectTK.Data/Variables/VertexAttrib.cs
@@ -0,0 +1,10 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace ObjectTK.Data.Variables {
+	public class VertexAttrib  {
+
+
+	}
+}
diff --git a/ObjectTK.Tools/ObjectTK.Tools.csproj b/ObjectTK.Tools/ObjectTK.Tools.csproj
index cb63190..aa08c94 100644
--- a/ObjectTK.Tools/ObjectTK.Tools.csproj
+++ b/ObjectTK.Tools/ObjectTK.Tools.csproj
@@ -4,4 +4,8 @@
     <TargetFramework>netcoreapp3.1</TargetFramework>
   </PropertyGroup>
 
+  <ItemGroup>
+    <PackageReference Include="OpenTK" Version="4.0.6" />
+  </ItemGroup>
+
 </Project>
diff --git a/ObjectTK.sln b/ObjectTK.sln
index 033df80..6f4f4df 100644
--- a/ObjectTK.sln
+++ b/ObjectTK.sln
@@ -4,6 +4,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00
 VisualStudioVersion = 16.0.30114.105
 MinimumVisualStudioVersion = 10.0.40219.1
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ObjectTK.Data", "ObjectTK.Data\ObjectTK.Data.csproj", "{163450BD-24E0-4C3E-A310-3AEBD709E065}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ObjectTK.Data", "ObjectTK.Data\ObjectTK.Data.csproj", "{163450BD-24E0-4C3E-A310-3AEBD709E065}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Examples", "Examples\Examples.csproj", "{AF523BFF-E1A2-45CF-B9CE-F14F3A16536E}"
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ObjectTK.Tools", "ObjectTK.Tools\ObjectTK.Tools.csproj", "{B5DCB84E-3E09-4F37-B06E-68565756624F}"
 EndProject
@@ -17,6 +20,10 @@ Global
 		{163450BD-24E0-4C3E-A310-3AEBD709E065}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{163450BD-24E0-4C3E-A310-3AEBD709E065}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{163450BD-24E0-4C3E-A310-3AEBD709E065}.Release|Any CPU.Build.0 = Release|Any CPU
+		{AF523BFF-E1A2-45CF-B9CE-F14F3A16536E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{AF523BFF-E1A2-45CF-B9CE-F14F3A16536E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{AF523BFF-E1A2-45CF-B9CE-F14F3A16536E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{AF523BFF-E1A2-45CF-B9CE-F14F3A16536E}.Release|Any CPU.Build.0 = Release|Any CPU
 		{B5DCB84E-3E09-4F37-B06E-68565756624F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{B5DCB84E-3E09-4F37-B06E-68565756624F}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{B5DCB84E-3E09-4F37-B06E-68565756624F}.Release|Any CPU.ActiveCfg = Release|Any CPU

From 4ad22c6841dca2883dced79fdcb7c5acf4a6486c Mon Sep 17 00:00:00 2001
From: burnss9 <burnss9@nku.edu>
Date: Wed, 21 Oct 2020 08:01:58 -0400
Subject: [PATCH 08/52] commit everything idk

---
 Examples/Data/Shaders/BasicShader.glsl        |  21 +++
 Examples/Examples.csproj                      |   6 +
 .../ExtensionPrograms/BasicProgram.cs         |  14 ++
 Examples/Examples/HelloTriangle.cs            | 103 ++++++++++----
 ObjectTK.Data/Buffers/Buffer.cs               |  32 +++++
 ObjectTK.Data/Buffers/VertexArray.cs          |   1 +
 ObjectTK.Data/Shaders/Program.cs              |  12 +-
 ObjectTK.Data/Variables/ProgramVariable.cs    |  11 --
 ObjectTK.Data/Variables/Uniform.cs            |   6 -
 ObjectTK.Data/Variables/UniformInfo.cs        |  20 +++
 ObjectTK.Data/Variables/VertexAttrib.cs       |  10 --
 .../Variables/VertexAttributeInfo.cs          |  24 ++++
 .../ObjectTK.Extensions.csproj                |  11 ++
 .../Shaders/ProgramExtensions.cs              |  15 +++
 ObjectTK.Extensions/Shaders/ProgramFactory.cs | 126 ++++++++++++++++++
 .../Shaders/ShaderAttributes.cs               |  32 +++++
 .../Shaders/ShaderExtensions.cs               |  29 ++++
 .../Variables/UniformInfoExtensions.cs        |  17 +++
 .../VertexAttributeInfoExtensions.cs          |  15 +++
 ObjectTK.sln                                  |   7 +-
 20 files changed, 457 insertions(+), 55 deletions(-)
 create mode 100644 Examples/Data/Shaders/BasicShader.glsl
 create mode 100644 Examples/Examples/ExtensionPrograms/BasicProgram.cs
 create mode 100644 ObjectTK.Data/Buffers/Buffer.cs
 delete mode 100644 ObjectTK.Data/Variables/ProgramVariable.cs
 delete mode 100644 ObjectTK.Data/Variables/Uniform.cs
 create mode 100644 ObjectTK.Data/Variables/UniformInfo.cs
 delete mode 100644 ObjectTK.Data/Variables/VertexAttrib.cs
 create mode 100644 ObjectTK.Data/Variables/VertexAttributeInfo.cs
 create mode 100644 ObjectTK.Extensions/ObjectTK.Extensions.csproj
 create mode 100644 ObjectTK.Extensions/Shaders/ProgramExtensions.cs
 create mode 100644 ObjectTK.Extensions/Shaders/ProgramFactory.cs
 create mode 100644 ObjectTK.Extensions/Shaders/ShaderAttributes.cs
 create mode 100644 ObjectTK.Extensions/Shaders/ShaderExtensions.cs
 create mode 100644 ObjectTK.Extensions/Variables/UniformInfoExtensions.cs
 create mode 100644 ObjectTK.Extensions/Variables/VertexAttributeInfoExtensions.cs

diff --git a/Examples/Data/Shaders/BasicShader.glsl b/Examples/Data/Shaders/BasicShader.glsl
new file mode 100644
index 0000000..f415ada
--- /dev/null
+++ b/Examples/Data/Shaders/BasicShader.glsl
@@ -0,0 +1,21 @@
+-- Version
+#version 140
+
+-- Vertex
+#include BasicShader.Version
+in vec3 InPosition;
+uniform mat4 ModelViewProjectionMatrix;
+
+void main()
+{
+	gl_Position = ModelViewProjectionMatrix * vec4(InPosition,1);
+}
+
+-- Fragment
+#include BasicShader.Version
+out vec4 FragColor;
+
+void main()
+{
+	FragColor = vec4(1);
+}
\ No newline at end of file
diff --git a/Examples/Examples.csproj b/Examples/Examples.csproj
index 6154fb4..8f2985b 100644
--- a/Examples/Examples.csproj
+++ b/Examples/Examples.csproj
@@ -11,4 +11,10 @@
     <ProjectReference Include="..\ObjectTK.Tools\ObjectTK.Tools.csproj" />
   </ItemGroup>
 
+  <ItemGroup>
+    <None Update="Data\Shaders\BasicShader.glsl">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
+  </ItemGroup>
+
 </Project>
diff --git a/Examples/Examples/ExtensionPrograms/BasicProgram.cs b/Examples/Examples/ExtensionPrograms/BasicProgram.cs
new file mode 100644
index 0000000..6c93974
--- /dev/null
+++ b/Examples/Examples/ExtensionPrograms/BasicProgram.cs
@@ -0,0 +1,14 @@
+using ObjectTK.Data.Shaders;
+using ObjectTK.Extensions.Shaders;
+using ObjectTK.Extensions.Variables;
+using OpenTK.Mathematics;
+
+namespace Examples.Examples.Programs {
+
+	[VertexShaderSource("BasicShader.Vertex")]
+	[FragmentShaderSource("BasicShader.Fragment")]
+	public class BasicProgram : ProgramVariableInfoCollection {
+		public VertexAttributeInfo<Vector3> InPosition { get; }
+		public UniformInfo<Matrix4> ModelViewProjectionMatrix { get; }
+	}
+}
diff --git a/Examples/Examples/HelloTriangle.cs b/Examples/Examples/HelloTriangle.cs
index 8f21433..2b86a41 100644
--- a/Examples/Examples/HelloTriangle.cs
+++ b/Examples/Examples/HelloTriangle.cs
@@ -1,21 +1,24 @@
 
 using System;
 using System.Drawing;
+using Examples.Examples.Programs;
 using ObjectTK.Data.Buffers;
 using ObjectTK.Data.Shaders;
+using ObjectTK.Data.Variables;
+using ObjectTK.Extensions.Shaders;
 using OpenTK.Graphics.OpenGL;
 using OpenTK.Mathematics;
 using OpenTK.Windowing.Common;
 
 namespace Examples.Examples {
-	
+
 	[ExampleProject("Hello Triangle")]
 	public class HelloTriangle : ExampleWindow {
 
 		private Program ShaderProgram;
-		private int VBOHandle;
+		private Buffer<Vector3> VBO;
 		private VertexArray VAO;
-		
+
 		private readonly string VertSource = @"
 				#version 330 core
 
@@ -27,7 +30,7 @@ void main(void) {
 				}
 			";
 		private readonly string FragSource = @"
-				#version 330
+				#version 330	
 
 				out vec4 FragColor;
 
@@ -48,38 +51,91 @@ protected override void OnLoad() {
 			GL.CompileShader(VertexShader.Handle);
 			GL.CompileShader(FragmentShader.Handle);
 
-			ShaderProgram = new Program(GL.CreateProgram(), VertexShader, FragmentShader);
+			int ProgramHandle = GL.CreateProgram();
 
-			GL.AttachShader(ShaderProgram.Handle, VertexShader.Handle);
-			GL.AttachShader(ShaderProgram.Handle, FragmentShader.Handle);
+			GL.AttachShader(ProgramHandle, VertexShader.Handle);
+			GL.AttachShader(ProgramHandle, FragmentShader.Handle);
 
-			GL.LinkProgram(ShaderProgram.Handle);
+			GL.LinkProgram(ProgramHandle);
 
-			GL.DetachShader(ShaderProgram.Handle, VertexShader.Handle);
-			GL.DetachShader(ShaderProgram.Handle, FragmentShader.Handle);
+			int UniformLocation = GL.GetUniformLocation(ProgramHandle, "ModelViewProjectionMatrix");
+			GL.GetActiveUniform(ProgramHandle, UniformLocation, out int UniformSize, out ActiveUniformType UniformType);
+			UniformInfo UI_InPosition = new UniformInfo(ProgramHandle, "ModelViewProjectionMatrix", UniformLocation, UniformSize, UniformType, UniformLocation > -1);
+
+			ShaderProgram = new Program(ProgramHandle, VertexShader, FragmentShader, new UniformInfo[] { UI_InPosition }, new VertexAttributeInfo[] { });
+
+			GL.DetachShader(ProgramHandle, VertexShader.Handle);
+			GL.DetachShader(ProgramHandle, FragmentShader.Handle);
 			GL.DeleteShader(VertexShader.Handle);
 			GL.DeleteShader(FragmentShader.Handle);
 
-			GL.UseProgram(ShaderProgram.Handle);
+			GL.UseProgram(ProgramHandle);
 
-			GL.GetProgram(ShaderProgram.Handle, GetProgramParameterName.LinkStatus, out var code);
-			if (code != (int)All.True) {
-				throw new Exception($"Error occurred whilst linking Program({ShaderProgram.Handle})");
-			}
+			var Vertices = new[] { new Vector3(-1, -1, 0), new Vector3(1, -1, 0), new Vector3(0, 1, 0) };
 
+			VBO = new Buffer<Vector3>(GL.GenBuffer(), Vertices);
+			GL.BindBuffer(BufferTarget.ArrayBuffer, VBO.Handle);
+			GL.BufferData(BufferTarget.ArrayBuffer, VBO.ElementSize * VBO.ElementCount, Vertices, BufferUsageHint.StaticDraw);
 
-			var Vertices = new[] { new Vector3(-1, -1, 0), new Vector3(1, -1, 0), new Vector3(0, 1, 0) };
+			VAO = new VertexArray(GL.GenVertexArray());
+			GL.BindVertexArray(VAO.Handle);
+			GL.VertexAttribPointer(0, 3, VertexAttribPointerType.Float, false, 3 * sizeof(float), 0);
+			GL.EnableVertexAttribArray(0);
+			GL.BindBuffer(BufferTarget.ArrayBuffer, VBO.Handle);
+
+			ActiveCamera.Position = new Vector3(0, 0, 3);
+
+			GL.ClearColor(Color.MidnightBlue);
+		}
+
+		private void OnUnload(object sender, EventArgs e) {
+			base.OnUnload();
+
+			GL.DeleteProgram(ShaderProgram.Handle);
+			GL.DeleteVertexArray(VAO.Handle);
+			GL.DeleteBuffer(VBO.Handle);
+		}
 
-			VBOHandle = GL.GenBuffer();
-			GL.BindBuffer(BufferTarget.ArrayBuffer, VBOHandle);
-			GL.BufferData(BufferTarget.ArrayBuffer, Vertices.Length * sizeof(float) * 3, Vertices, BufferUsageHint.StaticDraw);
+		protected override void OnRenderFrame(FrameEventArgs e) {
+			base.OnRenderFrame(e);
+			GL.Viewport(0, 0, Size.X, Size.Y);
+			GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
+
+			Matrix4 MVPMatrix = ActiveCamera.ViewProjectionMatrix;
+			GL.UniformMatrix4(ShaderProgram.ProgramVariableInfoCollection.Uniforms[0].Location, false, ref MVPMatrix);
+
+			GL.DrawArrays(PrimitiveType.Triangles, 0, VBO.ElementCount);
+
+			SwapBuffers();
+		}
+	}
+	
+	
+	[ExampleProject("Hello Triangle with extensions")]
+	public class HelloTriangleWithExtensions : ExampleWindow {
+
+		private Program<BasicProgram> ShaderProgram;
+		private Buffer<Vector3> VBO;
+		private VertexArray VAO;
+
+		protected override void OnLoad() {
+			base.OnLoad();
 
+			ShaderProgram = new ProgramFactory() { BaseDirectory = "./Data/Shaders/" }.CreateProgram<BasicProgram>();
+
+			GL.UseProgram(ShaderProgram.Handle);
+
+			var Vertices = new[] { new Vector3(-1, -1, 0), new Vector3(1, -1, 0), new Vector3(0, 1, 0) };
+
+			VBO = new Buffer<Vector3>(GL.GenBuffer(), Vertices);
+			GL.BindBuffer(BufferTarget.ArrayBuffer, VBO.Handle);
+			GL.BufferData(BufferTarget.ArrayBuffer, VBO.ElementSize * VBO.ElementCount, Vertices, BufferUsageHint.StaticDraw);
 
 			VAO = new VertexArray(GL.GenVertexArray());
 			GL.BindVertexArray(VAO.Handle);
 			GL.VertexAttribPointer(0, 3, VertexAttribPointerType.Float, false, 3 * sizeof(float), 0);
 			GL.EnableVertexAttribArray(0);
-			GL.BindBuffer(BufferTarget.ArrayBuffer, VBOHandle);
+			GL.BindBuffer(BufferTarget.ArrayBuffer, VBO.Handle);
 
 			ActiveCamera.Position = new Vector3(0, 0, 3);
 
@@ -91,7 +147,7 @@ private void OnUnload(object sender, EventArgs e) {
 
 			GL.DeleteProgram(ShaderProgram.Handle);
 			GL.DeleteVertexArray(VAO.Handle);
-			GL.DeleteBuffer(VBOHandle);
+			GL.DeleteBuffer(VBO.Handle);
 		}
 
 		protected override void OnRenderFrame(FrameEventArgs e) {
@@ -100,9 +156,10 @@ protected override void OnRenderFrame(FrameEventArgs e) {
 			GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
 
 			Matrix4 MVPMatrix = ActiveCamera.ViewProjectionMatrix;
-			GL.UniformMatrix4(0, false, ref MVPMatrix);
 
-			GL.DrawArrays(PrimitiveType.Triangles, 0, 3);
+			GL.UniformMatrix4(ShaderProgram.ProgramVariableInfoCollection.ModelViewProjectionMatrix.Location, false, ref MVPMatrix);
+
+			GL.DrawArrays(PrimitiveType.Triangles, 0, VBO.ElementCount);
 
 			SwapBuffers();
 		}
diff --git a/ObjectTK.Data/Buffers/Buffer.cs b/ObjectTK.Data/Buffers/Buffer.cs
new file mode 100644
index 0000000..3a87f69
--- /dev/null
+++ b/ObjectTK.Data/Buffers/Buffer.cs
@@ -0,0 +1,32 @@
+using System.Runtime.InteropServices;
+
+namespace ObjectTK.Data.Buffers {
+
+	public class Buffer {
+		public int Handle { get; }
+		public int ElementSize { get; }
+		private int _ElementCount { get; set; }
+		public virtual int ElementCount {
+			get {
+				return _ElementCount;
+			}
+			set {
+				_ElementCount = value;
+			}
+		}
+
+		public Buffer(int Handle, int ElementSize, int ElementCount) {
+			this.Handle = Handle;
+			this.ElementSize = ElementSize;
+			this.ElementCount = ElementCount;
+		}
+	}
+
+	public class Buffer<T> : Buffer where T : struct {
+		public T[] Elements { get; set; }
+		public override int ElementCount { get => Elements.Length; set { } }
+		public Buffer(int Handle, T[] Elements) : base(Handle, Marshal.SizeOf(typeof(T)), 0) {
+			this.Elements = Elements;
+		}
+	}
+}
diff --git a/ObjectTK.Data/Buffers/VertexArray.cs b/ObjectTK.Data/Buffers/VertexArray.cs
index 8a6be7b..4174f52 100644
--- a/ObjectTK.Data/Buffers/VertexArray.cs
+++ b/ObjectTK.Data/Buffers/VertexArray.cs
@@ -1,6 +1,7 @@
 namespace ObjectTK.Data.Buffers {
 	public class VertexArray {
 		public int Handle { get; }
+
 		public VertexArray(int Handle) {
 			this.Handle = Handle;
 		}
diff --git a/ObjectTK.Data/Shaders/Program.cs b/ObjectTK.Data/Shaders/Program.cs
index 0caf57a..ce269b0 100644
--- a/ObjectTK.Data/Shaders/Program.cs
+++ b/ObjectTK.Data/Shaders/Program.cs
@@ -1,18 +1,22 @@
-using System;
+using ObjectTK.Data.Variables;
 using System.Collections.Generic;
-using System.Text;
+using System.Collections.Immutable;
 
 namespace ObjectTK.Data.Shaders {
+
 	public class Program {
 		public int Handle { get; }
 		public VertexShader VertexShader { get; }
 		public FragmentShader FragmentShader { get; }
+		public Dictionary<string, UniformInfo> Uniforms { get; set; }
+		public Dictionary<string, VertexAttributeInfo> VertexAttributes { get; set; }
 
-		public Program(int Handle, VertexShader VertexShader, FragmentShader FragmentShader) {
+		public Program(int Handle, VertexShader VertexShader, FragmentShader FragmentShader, Dictionary<string, UniformInfo> Uniforms, Dictionary<string, VertexAttributeInfo> VertexAttributes) {
 			this.Handle = Handle;
 			this.VertexShader = VertexShader;
 			this.FragmentShader = FragmentShader;
+			this.Uniforms = Uniforms;
+			this.VertexAttributes = VertexAttributes;
 		}
-
 	}
 }
diff --git a/ObjectTK.Data/Variables/ProgramVariable.cs b/ObjectTK.Data/Variables/ProgramVariable.cs
deleted file mode 100644
index 02d8e72..0000000
--- a/ObjectTK.Data/Variables/ProgramVariable.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Data.Variables {
-	public class ProgramVariable {
-
-		public int ProgramHandle { get; }
-		public string Name { get; set; }
-		public bool Active { get; set; }
-
-	}
-}
diff --git a/ObjectTK.Data/Variables/Uniform.cs b/ObjectTK.Data/Variables/Uniform.cs
deleted file mode 100644
index 87f8713..0000000
--- a/ObjectTK.Data/Variables/Uniform.cs
+++ /dev/null
@@ -1,6 +0,0 @@
-
-namespace ObjectTK.Data.Variables {
-	public class Uniform<T> : ProgramVariable {
-		public int Location { get; set; }
-	}
-}
diff --git a/ObjectTK.Data/Variables/UniformInfo.cs b/ObjectTK.Data/Variables/UniformInfo.cs
new file mode 100644
index 0000000..0284008
--- /dev/null
+++ b/ObjectTK.Data/Variables/UniformInfo.cs
@@ -0,0 +1,20 @@
+using OpenTK.Graphics.OpenGL;
+
+namespace ObjectTK.Data.Variables {
+	public class UniformInfo {
+		public int ProgramHandle { get; }
+		public string Name { get; set; }
+		public bool Active { get; set; }
+		public int Location { get; }
+		public int Size { get; }
+		public ActiveUniformType Type { get; }
+		public UniformInfo(int ProgramHandle, string Name, int Location, int UniformSize, ActiveUniformType UniformType, bool Active) {
+			this.ProgramHandle = ProgramHandle;
+			this.Name = Name;
+			this.Active = Active;
+			this.Location = Location;
+			this.Size = UniformSize;
+			this.Type = UniformType;
+		}
+	}
+}
diff --git a/ObjectTK.Data/Variables/VertexAttrib.cs b/ObjectTK.Data/Variables/VertexAttrib.cs
deleted file mode 100644
index f332574..0000000
--- a/ObjectTK.Data/Variables/VertexAttrib.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace ObjectTK.Data.Variables {
-	public class VertexAttrib  {
-
-
-	}
-}
diff --git a/ObjectTK.Data/Variables/VertexAttributeInfo.cs b/ObjectTK.Data/Variables/VertexAttributeInfo.cs
new file mode 100644
index 0000000..0ba3313
--- /dev/null
+++ b/ObjectTK.Data/Variables/VertexAttributeInfo.cs
@@ -0,0 +1,24 @@
+using OpenTK.Graphics.OpenGL;
+
+namespace ObjectTK.Data.Variables {
+	public class VertexAttributeInfo {
+        public int ProgramHandle { get; }
+        public string Name { get; set; }
+        public bool Active { get; set; }
+        public int Index { get; private set; }
+        public int Components { get; private set; }
+        public VertexAttribPointerType Type { get; private set; }
+        public bool Normalized { get; private set; }
+
+        public VertexAttributeInfo(int ProgramHandle, string Name, bool Active, int Index, int Components, VertexAttribPointerType Type, bool Normalized) {
+            this.ProgramHandle = ProgramHandle;
+            this.Name = Name;
+            this.Active = Active;
+            this.Index = Index;
+            this.Components = Components;
+            this.Type = Type;
+            this.Normalized = Normalized;
+		}
+    }
+
+}
diff --git a/ObjectTK.Extensions/ObjectTK.Extensions.csproj b/ObjectTK.Extensions/ObjectTK.Extensions.csproj
new file mode 100644
index 0000000..b215520
--- /dev/null
+++ b/ObjectTK.Extensions/ObjectTK.Extensions.csproj
@@ -0,0 +1,11 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>netcoreapp3.1</TargetFramework>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="..\ObjectTK.Data\ObjectTK.Data.csproj" />
+  </ItemGroup>
+
+</Project>
diff --git a/ObjectTK.Extensions/Shaders/ProgramExtensions.cs b/ObjectTK.Extensions/Shaders/ProgramExtensions.cs
new file mode 100644
index 0000000..8c8b4e4
--- /dev/null
+++ b/ObjectTK.Extensions/Shaders/ProgramExtensions.cs
@@ -0,0 +1,15 @@
+using ObjectTK.Data.Shaders;
+using ObjectTK.Data.Variables;
+using OpenTK.Graphics.OpenGL;
+
+namespace ObjectTK.Extensions.Shaders {
+
+	public static class ProgramExtensions {
+
+		public static void Use(this Program Program) {
+			GL.UseProgram(Program.Handle);
+		}
+
+	}
+
+}
diff --git a/ObjectTK.Extensions/Shaders/ProgramFactory.cs b/ObjectTK.Extensions/Shaders/ProgramFactory.cs
new file mode 100644
index 0000000..a8e2c18
--- /dev/null
+++ b/ObjectTK.Extensions/Shaders/ProgramFactory.cs
@@ -0,0 +1,126 @@
+using ObjectTK.Data.Shaders;
+using ObjectTK.Data.Variables;
+using OpenTK.Graphics.OpenGL;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Reflection;
+using System.Text;
+
+namespace ObjectTK.Extensions.Shaders {
+	public class Program<T> : Program where T : ProgramVariableInfoCollection, new() {
+		public Program(int Handle, VertexShader VertexShader, FragmentShader FragmentShader, Dictionary<string, UniformInfo> Uniforms, Dictionary<string, VertexAttributeInfo> VertexAttributes) :
+			base(Handle, VertexShader, FragmentShader, Uniforms, VertexAttributes) {
+
+		}
+	}
+
+	public class ProgramFactory {
+
+		public string BaseDirectory { get; set; } = "./";
+		public string ShaderExtension { get; set; } = "glsl";
+
+		public Program<T> CreateProgram<T>() where T : ProgramVariableInfoCollection, new() {
+
+			List<ShaderSourceAttribute> Attributes = typeof(T).GetCustomAttributes<ShaderSourceAttribute>(true).ToList();
+			List<Shader> Shaders = new List<Shader>();
+
+			int ProgramHandle = GL.CreateProgram();
+
+			foreach (ShaderSourceAttribute Attribute in Attributes) {
+				string Source = GetEffectSource(Attribute.EffectKey);
+
+				int ShaderHandle = GL.CreateShader(ShaderType.VertexShader);
+				GL.ShaderSource(ShaderHandle, Source);
+				GL.CompileShader(ShaderHandle);
+				GL.AttachShader(ProgramHandle, ShaderHandle);
+
+				switch (Attribute.Type) {
+					case ShaderType.FragmentShader:
+						Shaders.Add(new FragmentShader(ShaderHandle, Source));
+						break;
+					case ShaderType.VertexShader:
+						Shaders.Add(new VertexShader(ShaderHandle, Source));
+						break;
+					default:
+						break;
+				}
+			}
+
+			GL.LinkProgram(ProgramHandle);
+
+			foreach(Shader Shader in Shaders) {
+				GL.DetachShader(ProgramHandle, Shader.Handle);
+				GL.DeleteShader(Shader.Handle);
+			}
+
+			int UniformLocation = GL.GetUniformLocation(ProgramHandle, "ModelViewProjectionMatrix");
+			GL.GetActiveUniform(ProgramHandle, UniformLocation, out int UniformSize, out ActiveUniformType UniformType);
+			UniformInfo UI_InPosition = new UniformInfo(ProgramHandle, "ModelViewProjectionMatrix", UniformLocation, UniformSize, UniformType, UniformLocation > -1);
+
+			Program<T> ShaderProgram = new Program<T>(ProgramHandle, null, null, new UniformInfo[] { UI_InPosition }, new VertexAttributeInfo[] { });
+			InitializeProgramVariables(ShaderProgram);
+
+			return ShaderProgram;
+		}
+
+		private string GetEffectSource(string EffectKey, Dictionary<string, string> Effects = null) {
+			
+			Effects ??= new Dictionary<string, string>();
+
+			string EffectFile = Path.ChangeExtension(EffectKey, null);
+			string FilePath = Path.Join(BaseDirectory, Path.ChangeExtension(EffectKey, "glsl"));
+			string FullSource = File.ReadAllText(FilePath);
+
+			ExtractEffects(EffectFile, FullSource, Effects);
+
+			Effects.TryGetValue(EffectKey, out string EffectSource);
+			return EffectSource ?? throw new Exception($"Error loading effect with key: {EffectKey}");
+		}
+		private void ExtractEffects(string EffectFile, string FullSource, Dictionary<string, string> Effects) {
+
+			const string EffectToken = "--";
+			const string EffectFileSeparator = ".";
+			const string IncludeToken = "#include";
+
+			string[] Lines = FullSource.Split('\n');
+
+			StringBuilder Effect = new StringBuilder();
+			string EffectKey = null;
+
+			foreach(string Line in Lines) {
+				if (Line.StartsWith(EffectToken) && Line.Length > EffectToken.Length) {
+					if(EffectKey != null) {
+						Effects.Add(EffectKey, Effect.ToString());
+						Effect.Clear();
+						EffectKey = null;
+					}
+					EffectKey = $"{EffectFile}{EffectFileSeparator}{Line.Substring(EffectToken.Length).Trim()}";
+					continue;
+				}
+
+				if(EffectKey != null) {
+					if(Line.StartsWith(IncludeToken) && Line.Length > IncludeToken.Length) {
+						string IncludedEffect = Line.Substring(IncludeToken.Length).Trim();
+						if(!Effects.TryGetValue(IncludedEffect, out string EffectSource)) {
+							EffectSource = GetEffectSource(IncludedEffect, Effects);
+						}
+						Effect.AppendLine(EffectSource);
+					} else {
+						Effect.AppendLine(Line);
+					}
+				}
+			}
+			if (EffectKey != null) {
+				Effects.Add(EffectKey, Effect.ToString());
+				Effect.Clear();
+			}
+		}
+
+		private void InitializeProgramVariables<T>(Program<T> Program) where T : ProgramVariableInfoCollection, new() {
+
+		}
+	}
+
+}
diff --git a/ObjectTK.Extensions/Shaders/ShaderAttributes.cs b/ObjectTK.Extensions/Shaders/ShaderAttributes.cs
new file mode 100644
index 0000000..252581a
--- /dev/null
+++ b/ObjectTK.Extensions/Shaders/ShaderAttributes.cs
@@ -0,0 +1,32 @@
+using OpenTK.Graphics.OpenGL;
+using System;
+
+namespace ObjectTK.Extensions.Shaders {
+
+	[AttributeUsage(AttributeTargets.Class)]
+	public class ShaderSourceAttribute : Attribute {
+
+		public ShaderType Type { get; private set; }
+
+		public string EffectKey { get; private set; }
+
+		public ShaderSourceAttribute(ShaderType Type, string EffectKey) {
+			this.Type = Type;
+			this.EffectKey = EffectKey;
+		}
+
+	}
+
+	public class VertexShaderSourceAttribute : ShaderSourceAttribute {
+		public VertexShaderSourceAttribute(string EffectKey) : base(ShaderType.VertexShader, EffectKey) {
+
+		}
+	}
+
+	public class FragmentShaderSourceAttribute : ShaderSourceAttribute {
+		public FragmentShaderSourceAttribute(string EffectKey) : base(ShaderType.FragmentShader, EffectKey) {
+
+		}
+	}
+
+}
diff --git a/ObjectTK.Extensions/Shaders/ShaderExtensions.cs b/ObjectTK.Extensions/Shaders/ShaderExtensions.cs
new file mode 100644
index 0000000..5e340e3
--- /dev/null
+++ b/ObjectTK.Extensions/Shaders/ShaderExtensions.cs
@@ -0,0 +1,29 @@
+using ObjectTK.Data.Shaders;
+using OpenTK.Graphics.OpenGL;
+
+namespace ObjectTK.Extensions.Shaders {
+
+	public static class ShaderFactory {
+		public static VertexShader CreateVertexShader(string Source) {
+			int Handle = GL.CreateShader(ShaderType.VertexShader);
+			GL.ShaderSource(Handle, Source);
+			GL.CompileShader(Handle);
+			return new VertexShader(Handle, Source);
+		}
+		public static FragmentShader CreateFragmentShader(string Source) {
+			int Handle = GL.CreateShader(ShaderType.FragmentShader);
+			GL.ShaderSource(Handle, Source);
+			GL.CompileShader(Handle);
+			return new FragmentShader(Handle, Source);
+		}
+	}
+
+	public static class ShaderExtensions {
+		public static void Compile(this Shader Shader) {
+			GL.CompileShader(Shader.Handle);
+		}
+		public static void ShaderSource(this Shader Shader) {
+			GL.ShaderSource(Shader.Handle, Shader.Source);
+		}
+	}
+}
diff --git a/ObjectTK.Extensions/Variables/UniformInfoExtensions.cs b/ObjectTK.Extensions/Variables/UniformInfoExtensions.cs
new file mode 100644
index 0000000..911b640
--- /dev/null
+++ b/ObjectTK.Extensions/Variables/UniformInfoExtensions.cs
@@ -0,0 +1,17 @@
+using ObjectTK.Data.Variables;
+using OpenTK.Graphics.OpenGL;
+
+namespace ObjectTK.Extensions.Variables {
+	public static class UniformInfoExtensions {
+
+		//public static void Set<T>(this Uniform<T> Uniform , T Value) {
+
+		//}
+
+	}
+	public class UniformInfo<T> : UniformInfo {
+		public UniformInfo(int ProgramHandle, string Name, int Location, int UniformSize, ActiveUniformType UniformType, bool Active) :
+			base(ProgramHandle, Name, Location, UniformSize, UniformType, Active) {
+		}
+	}
+}
diff --git a/ObjectTK.Extensions/Variables/VertexAttributeInfoExtensions.cs b/ObjectTK.Extensions/Variables/VertexAttributeInfoExtensions.cs
new file mode 100644
index 0000000..024f240
--- /dev/null
+++ b/ObjectTK.Extensions/Variables/VertexAttributeInfoExtensions.cs
@@ -0,0 +1,15 @@
+using ObjectTK.Data.Variables;
+using OpenTK.Graphics.OpenGL;
+
+namespace ObjectTK.Extensions.Variables {
+	public static class VertexAttributeInfoExtensions {
+
+
+	}
+
+    public class VertexAttributeInfo<T> : VertexAttributeInfo {
+        public VertexAttributeInfo(int ProgramHandle, string Name, bool Active, int Index, int Components, VertexAttribPointerType Type, bool Normalized) :
+            base(ProgramHandle, Name, Active, Index, Components, Type, Normalized) {
+        }
+    }
+}
diff --git a/ObjectTK.sln b/ObjectTK.sln
index 6f4f4df..17403b1 100644
--- a/ObjectTK.sln
+++ b/ObjectTK.sln
@@ -3,9 +3,10 @@ Microsoft Visual Studio Solution File, Format Version 12.00
 # Visual Studio Version 16
 VisualStudioVersion = 16.0.30114.105
 MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ObjectTK.Data", "ObjectTK.Data\ObjectTK.Data.csproj", "{163450BD-24E0-4C3E-A310-3AEBD709E065}"
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ObjectTK.Data", "ObjectTK.Data\ObjectTK.Data.csproj", "{163450BD-24E0-4C3E-A310-3AEBD709E065}"
 EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ObjectTK.Extensions", "ObjectTK.Extensions\ObjectTK.Extensions.csproj", "{DE7D5895-068B-42CF-B69A-D5E3AAE7E43B}"
+EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Examples", "Examples\Examples.csproj", "{AF523BFF-E1A2-45CF-B9CE-F14F3A16536E}"
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ObjectTK.Tools", "ObjectTK.Tools\ObjectTK.Tools.csproj", "{B5DCB84E-3E09-4F37-B06E-68565756624F}"
@@ -20,6 +21,10 @@ Global
 		{163450BD-24E0-4C3E-A310-3AEBD709E065}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{163450BD-24E0-4C3E-A310-3AEBD709E065}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{163450BD-24E0-4C3E-A310-3AEBD709E065}.Release|Any CPU.Build.0 = Release|Any CPU
+		{DE7D5895-068B-42CF-B69A-D5E3AAE7E43B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{DE7D5895-068B-42CF-B69A-D5E3AAE7E43B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{DE7D5895-068B-42CF-B69A-D5E3AAE7E43B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{DE7D5895-068B-42CF-B69A-D5E3AAE7E43B}.Release|Any CPU.Build.0 = Release|Any CPU
 		{AF523BFF-E1A2-45CF-B9CE-F14F3A16536E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{AF523BFF-E1A2-45CF-B9CE-F14F3A16536E}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{AF523BFF-E1A2-45CF-B9CE-F14F3A16536E}.Release|Any CPU.ActiveCfg = Release|Any CPU

From c2e34e94100834d381f8d6535431ac07b2d43a9d Mon Sep 17 00:00:00 2001
From: burnss9 <burnss9@nku.edu>
Date: Wed, 21 Oct 2020 08:53:25 -0400
Subject: [PATCH 09/52] working extensions example

still needs some way to get VertexAttribPointerType
---
 .../ExtensionPrograms/BasicProgram.cs         |  6 +--
 Examples/Examples/HelloTriangle.cs            | 12 +++---
 .../Variables/VertexAttributeInfo.cs          |  4 +-
 ObjectTK.Extensions/Shaders/ProgramFactory.cs | 39 ++++++++++++++-----
 .../VertexAttributeInfoExtensions.cs          |  2 +-
 5 files changed, 41 insertions(+), 22 deletions(-)

diff --git a/Examples/Examples/ExtensionPrograms/BasicProgram.cs b/Examples/Examples/ExtensionPrograms/BasicProgram.cs
index 6c93974..6acc720 100644
--- a/Examples/Examples/ExtensionPrograms/BasicProgram.cs
+++ b/Examples/Examples/ExtensionPrograms/BasicProgram.cs
@@ -7,8 +7,8 @@ namespace Examples.Examples.Programs {
 
 	[VertexShaderSource("BasicShader.Vertex")]
 	[FragmentShaderSource("BasicShader.Fragment")]
-	public class BasicProgram : ProgramVariableInfoCollection {
-		public VertexAttributeInfo<Vector3> InPosition { get; }
-		public UniformInfo<Matrix4> ModelViewProjectionMatrix { get; }
+	public class BasicProgram {
+		public VertexAttributeInfo<Vector3> InPosition { get; set; }
+		public UniformInfo<Matrix4> ModelViewProjectionMatrix { get; set; }
 	}
 }
diff --git a/Examples/Examples/HelloTriangle.cs b/Examples/Examples/HelloTriangle.cs
index 2b86a41..169b4df 100644
--- a/Examples/Examples/HelloTriangle.cs
+++ b/Examples/Examples/HelloTriangle.cs
@@ -1,5 +1,6 @@
 
 using System;
+using System.Collections.Generic;
 using System.Drawing;
 using Examples.Examples.Programs;
 using ObjectTK.Data.Buffers;
@@ -62,7 +63,7 @@ protected override void OnLoad() {
 			GL.GetActiveUniform(ProgramHandle, UniformLocation, out int UniformSize, out ActiveUniformType UniformType);
 			UniformInfo UI_InPosition = new UniformInfo(ProgramHandle, "ModelViewProjectionMatrix", UniformLocation, UniformSize, UniformType, UniformLocation > -1);
 
-			ShaderProgram = new Program(ProgramHandle, VertexShader, FragmentShader, new UniformInfo[] { UI_InPosition }, new VertexAttributeInfo[] { });
+			ShaderProgram = new Program(ProgramHandle, VertexShader, FragmentShader, new Dictionary<string, UniformInfo> { { "ModelViewProjectionMatrix", UI_InPosition } }, new Dictionary<string, VertexAttributeInfo> { });
 
 			GL.DetachShader(ProgramHandle, VertexShader.Handle);
 			GL.DetachShader(ProgramHandle, FragmentShader.Handle);
@@ -102,7 +103,7 @@ protected override void OnRenderFrame(FrameEventArgs e) {
 			GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
 
 			Matrix4 MVPMatrix = ActiveCamera.ViewProjectionMatrix;
-			GL.UniformMatrix4(ShaderProgram.ProgramVariableInfoCollection.Uniforms[0].Location, false, ref MVPMatrix);
+			GL.UniformMatrix4(ShaderProgram.Uniforms["ModelViewProjectionMatrix"].Location, false, ref MVPMatrix);
 
 			GL.DrawArrays(PrimitiveType.Triangles, 0, VBO.ElementCount);
 
@@ -133,8 +134,8 @@ protected override void OnLoad() {
 
 			VAO = new VertexArray(GL.GenVertexArray());
 			GL.BindVertexArray(VAO.Handle);
-			GL.VertexAttribPointer(0, 3, VertexAttribPointerType.Float, false, 3 * sizeof(float), 0);
-			GL.EnableVertexAttribArray(0);
+			GL.VertexAttribPointer(ShaderProgram.Variables.InPosition.Index, VBO.ElementCount, VertexAttribPointerType.Float, false, VBO.ElementSize, 0);
+			GL.EnableVertexAttribArray(ShaderProgram.Variables.InPosition.Index);
 			GL.BindBuffer(BufferTarget.ArrayBuffer, VBO.Handle);
 
 			ActiveCamera.Position = new Vector3(0, 0, 3);
@@ -156,8 +157,7 @@ protected override void OnRenderFrame(FrameEventArgs e) {
 			GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
 
 			Matrix4 MVPMatrix = ActiveCamera.ViewProjectionMatrix;
-
-			GL.UniformMatrix4(ShaderProgram.ProgramVariableInfoCollection.ModelViewProjectionMatrix.Location, false, ref MVPMatrix);
+			GL.UniformMatrix4(ShaderProgram.Variables.ModelViewProjectionMatrix.Location, false, ref MVPMatrix);
 
 			GL.DrawArrays(PrimitiveType.Triangles, 0, VBO.ElementCount);
 
diff --git a/ObjectTK.Data/Variables/VertexAttributeInfo.cs b/ObjectTK.Data/Variables/VertexAttributeInfo.cs
index 0ba3313..0f0b1a0 100644
--- a/ObjectTK.Data/Variables/VertexAttributeInfo.cs
+++ b/ObjectTK.Data/Variables/VertexAttributeInfo.cs
@@ -7,10 +7,10 @@ public class VertexAttributeInfo {
         public bool Active { get; set; }
         public int Index { get; private set; }
         public int Components { get; private set; }
-        public VertexAttribPointerType Type { get; private set; }
+        public ActiveAttribType Type { get; private set; }
         public bool Normalized { get; private set; }
 
-        public VertexAttributeInfo(int ProgramHandle, string Name, bool Active, int Index, int Components, VertexAttribPointerType Type, bool Normalized) {
+        public VertexAttributeInfo(int ProgramHandle, string Name, bool Active, int Index, int Components, ActiveAttribType Type, bool Normalized) {
             this.ProgramHandle = ProgramHandle;
             this.Name = Name;
             this.Active = Active;
diff --git a/ObjectTK.Extensions/Shaders/ProgramFactory.cs b/ObjectTK.Extensions/Shaders/ProgramFactory.cs
index a8e2c18..6d26111 100644
--- a/ObjectTK.Extensions/Shaders/ProgramFactory.cs
+++ b/ObjectTK.Extensions/Shaders/ProgramFactory.cs
@@ -9,7 +9,8 @@
 using System.Text;
 
 namespace ObjectTK.Extensions.Shaders {
-	public class Program<T> : Program where T : ProgramVariableInfoCollection, new() {
+	public class Program<T> : Program where T : class, new() {
+		public T Variables { get; set; }
 		public Program(int Handle, VertexShader VertexShader, FragmentShader FragmentShader, Dictionary<string, UniformInfo> Uniforms, Dictionary<string, VertexAttributeInfo> VertexAttributes) :
 			base(Handle, VertexShader, FragmentShader, Uniforms, VertexAttributes) {
 
@@ -21,7 +22,7 @@ public class ProgramFactory {
 		public string BaseDirectory { get; set; } = "./";
 		public string ShaderExtension { get; set; } = "glsl";
 
-		public Program<T> CreateProgram<T>() where T : ProgramVariableInfoCollection, new() {
+		public Program<T> CreateProgram<T>() where T : class, new() {
 
 			List<ShaderSourceAttribute> Attributes = typeof(T).GetCustomAttributes<ShaderSourceAttribute>(true).ToList();
 			List<Shader> Shaders = new List<Shader>();
@@ -31,7 +32,7 @@ public class ProgramFactory {
 			foreach (ShaderSourceAttribute Attribute in Attributes) {
 				string Source = GetEffectSource(Attribute.EffectKey);
 
-				int ShaderHandle = GL.CreateShader(ShaderType.VertexShader);
+				int ShaderHandle = GL.CreateShader(Attribute.Type);
 				GL.ShaderSource(ShaderHandle, Source);
 				GL.CompileShader(ShaderHandle);
 				GL.AttachShader(ProgramHandle, ShaderHandle);
@@ -50,16 +51,12 @@ public class ProgramFactory {
 
 			GL.LinkProgram(ProgramHandle);
 
-			foreach(Shader Shader in Shaders) {
+			foreach (Shader Shader in Shaders) {
 				GL.DetachShader(ProgramHandle, Shader.Handle);
 				GL.DeleteShader(Shader.Handle);
 			}
 
-			int UniformLocation = GL.GetUniformLocation(ProgramHandle, "ModelViewProjectionMatrix");
-			GL.GetActiveUniform(ProgramHandle, UniformLocation, out int UniformSize, out ActiveUniformType UniformType);
-			UniformInfo UI_InPosition = new UniformInfo(ProgramHandle, "ModelViewProjectionMatrix", UniformLocation, UniformSize, UniformType, UniformLocation > -1);
-
-			Program<T> ShaderProgram = new Program<T>(ProgramHandle, null, null, new UniformInfo[] { UI_InPosition }, new VertexAttributeInfo[] { });
+			Program<T> ShaderProgram = new Program<T>(ProgramHandle, null, null, new Dictionary<string, UniformInfo>(), new Dictionary<string, VertexAttributeInfo>());
 			InitializeProgramVariables(ShaderProgram);
 
 			return ShaderProgram;
@@ -118,7 +115,29 @@ private void ExtractEffects(string EffectFile, string FullSource, Dictionary<str
 			}
 		}
 
-		private void InitializeProgramVariables<T>(Program<T> Program) where T : ProgramVariableInfoCollection, new() {
+		private void InitializeProgramVariables<T>(Program<T> Program) where T : class, new() {
+
+			Program.Variables = new T();
+
+			PropertyInfo[] Properties = typeof(T).GetProperties();
+			PropertyInfo[] UniformProperties = Properties.Where(Prop => typeof(UniformInfo).IsAssignableFrom(Prop.PropertyType)).ToArray();
+			PropertyInfo[] VertexAttribProperties = Properties.Where(Prop => typeof(VertexAttributeInfo).IsAssignableFrom(Prop.PropertyType)).ToArray();
+
+			foreach (PropertyInfo Prop in UniformProperties) {
+				int UniformLocation = GL.GetUniformLocation(Program.Handle, Prop.Name);
+				GL.GetActiveUniform(Program.Handle, UniformLocation, out int UniformSize, out ActiveUniformType UniformType);
+				UniformInfo Value = Activator.CreateInstance(Prop.PropertyType, Program.Handle, Prop.Name, UniformLocation, UniformSize, UniformType, UniformLocation > -1) as UniformInfo;
+				Prop.SetValue(Program.Variables, Value);
+				Program.Uniforms.Add(Prop.Name, Value);
+			}
+
+			foreach (PropertyInfo Prop in VertexAttribProperties) {
+				int AttribIndex = GL.GetAttribLocation(Program.Handle, Prop.Name);
+				GL.GetActiveAttrib(Program.Handle, AttribIndex, out int Size, out ActiveAttribType AttribType);
+				VertexAttributeInfo Value = Activator.CreateInstance(Prop.PropertyType, Program.Handle, Prop.Name, AttribIndex > -1, AttribIndex, Size, AttribType, false) as VertexAttributeInfo;
+				Prop.SetValue(Program.Variables, Value);
+				Program.VertexAttributes.Add(Prop.Name, Value);
+			}
 
 		}
 	}
diff --git a/ObjectTK.Extensions/Variables/VertexAttributeInfoExtensions.cs b/ObjectTK.Extensions/Variables/VertexAttributeInfoExtensions.cs
index 024f240..c58e8aa 100644
--- a/ObjectTK.Extensions/Variables/VertexAttributeInfoExtensions.cs
+++ b/ObjectTK.Extensions/Variables/VertexAttributeInfoExtensions.cs
@@ -8,7 +8,7 @@ public static class VertexAttributeInfoExtensions {
 	}
 
     public class VertexAttributeInfo<T> : VertexAttributeInfo {
-        public VertexAttributeInfo(int ProgramHandle, string Name, bool Active, int Index, int Components, VertexAttribPointerType Type, bool Normalized) :
+        public VertexAttributeInfo(int ProgramHandle, string Name, bool Active, int Index, int Components, ActiveAttribType Type, bool Normalized) :
             base(ProgramHandle, Name, Active, Index, Components, Type, Normalized) {
         }
     }

From 3bb6f5623407f35f43039a2b62f2f4a52441de0a Mon Sep 17 00:00:00 2001
From: burnss9 <burnss9@nku.edu>
Date: Wed, 21 Oct 2020 08:56:15 -0400
Subject: [PATCH 10/52] how were these spaces

---
 .../Variables/VertexAttributeInfo.cs          | 32 +++++++++----------
 1 file changed, 16 insertions(+), 16 deletions(-)

diff --git a/ObjectTK.Data/Variables/VertexAttributeInfo.cs b/ObjectTK.Data/Variables/VertexAttributeInfo.cs
index 0f0b1a0..70338a7 100644
--- a/ObjectTK.Data/Variables/VertexAttributeInfo.cs
+++ b/ObjectTK.Data/Variables/VertexAttributeInfo.cs
@@ -2,23 +2,23 @@
 
 namespace ObjectTK.Data.Variables {
 	public class VertexAttributeInfo {
-        public int ProgramHandle { get; }
-        public string Name { get; set; }
-        public bool Active { get; set; }
-        public int Index { get; private set; }
-        public int Components { get; private set; }
-        public ActiveAttribType Type { get; private set; }
-        public bool Normalized { get; private set; }
+		public int ProgramHandle { get; }
+		public string Name { get; set; }
+		public bool Active { get; set; }
+		public int Index { get; private set; }
+		public int Components { get; private set; }
+		public ActiveAttribType Type { get; private set; }
+		public bool Normalized { get; private set; }
 
-        public VertexAttributeInfo(int ProgramHandle, string Name, bool Active, int Index, int Components, ActiveAttribType Type, bool Normalized) {
-            this.ProgramHandle = ProgramHandle;
-            this.Name = Name;
-            this.Active = Active;
-            this.Index = Index;
-            this.Components = Components;
-            this.Type = Type;
-            this.Normalized = Normalized;
+		public VertexAttributeInfo(int ProgramHandle, string Name, bool Active, int Index, int Components, ActiveAttribType Type, bool Normalized) {
+			this.ProgramHandle = ProgramHandle;
+			this.Name = Name;
+			this.Active = Active;
+			this.Index = Index;
+			this.Components = Components;
+			this.Type = Type;
+			this.Normalized = Normalized;
 		}
-    }
+	}
 
 }

From bdecada8ba6eeed004fc3ffe8f14691d4d5c817c Mon Sep 17 00:00:00 2001
From: burnss9 <burnss9@nku.edu>
Date: Thu, 22 Oct 2020 20:50:07 -0400
Subject: [PATCH 11/52] might as well commit

---
 .../ExtensionPrograms/BasicProgram.cs         |  5 +-
 Examples/Examples/HelloTriangle.cs            | 34 +++++-----
 ObjectTK.Data/Buffers/Buffer.cs               |  6 +-
 ObjectTK.Data/Shaders/Material.cs             |  9 +++
 .../Variables/VertexAttributeInfo.cs          | 14 ++--
 .../Buffers/BufferExtensions.cs               | 15 +++++
 .../Buffers/VertexArrayExtensions.cs          | 21 ++++++
 .../Shaders/ProgramExtensions.cs              | 32 +++++++++
 ObjectTK.Extensions/Shaders/ProgramFactory.cs | 24 ++++---
 .../Variables/UniformInfoExtensions.cs        | 65 +++++++++++++++++--
 .../VertexAttributeInfoExtensions.cs          | 26 ++++++--
 ObjectTK.Tools/ObjectTK.Tools.csproj          |  4 ++
 12 files changed, 206 insertions(+), 49 deletions(-)
 create mode 100644 ObjectTK.Data/Shaders/Material.cs
 create mode 100644 ObjectTK.Extensions/Buffers/BufferExtensions.cs
 create mode 100644 ObjectTK.Extensions/Buffers/VertexArrayExtensions.cs

diff --git a/Examples/Examples/ExtensionPrograms/BasicProgram.cs b/Examples/Examples/ExtensionPrograms/BasicProgram.cs
index 6acc720..57ea324 100644
--- a/Examples/Examples/ExtensionPrograms/BasicProgram.cs
+++ b/Examples/Examples/ExtensionPrograms/BasicProgram.cs
@@ -1,6 +1,6 @@
-using ObjectTK.Data.Shaders;
-using ObjectTK.Extensions.Shaders;
+using ObjectTK.Extensions.Shaders;
 using ObjectTK.Extensions.Variables;
+using OpenTK.Graphics.OpenGL;
 using OpenTK.Mathematics;
 
 namespace Examples.Examples.Programs {
@@ -8,6 +8,7 @@ namespace Examples.Examples.Programs {
 	[VertexShaderSource("BasicShader.Vertex")]
 	[FragmentShaderSource("BasicShader.Fragment")]
 	public class BasicProgram {
+		[VertexAttrib(VertexAttribPointerType.Float)]
 		public VertexAttributeInfo<Vector3> InPosition { get; set; }
 		public UniformInfo<Matrix4> ModelViewProjectionMatrix { get; set; }
 	}
diff --git a/Examples/Examples/HelloTriangle.cs b/Examples/Examples/HelloTriangle.cs
index 169b4df..bbe3eee 100644
--- a/Examples/Examples/HelloTriangle.cs
+++ b/Examples/Examples/HelloTriangle.cs
@@ -6,7 +6,9 @@
 using ObjectTK.Data.Buffers;
 using ObjectTK.Data.Shaders;
 using ObjectTK.Data.Variables;
+using ObjectTK.Extensions.Buffers;
 using ObjectTK.Extensions.Shaders;
+using ObjectTK.Extensions.Variables;
 using OpenTK.Graphics.OpenGL;
 using OpenTK.Mathematics;
 using OpenTK.Windowing.Common;
@@ -74,7 +76,8 @@ protected override void OnLoad() {
 
 			var Vertices = new[] { new Vector3(-1, -1, 0), new Vector3(1, -1, 0), new Vector3(0, 1, 0) };
 
-			VBO = new Buffer<Vector3>(GL.GenBuffer(), Vertices);
+			VBO = new Buffer<Vector3>(GL.GenBuffer());
+			VBO.ElementCount = 3;
 			GL.BindBuffer(BufferTarget.ArrayBuffer, VBO.Handle);
 			GL.BufferData(BufferTarget.ArrayBuffer, VBO.ElementSize * VBO.ElementCount, Vertices, BufferUsageHint.StaticDraw);
 
@@ -111,10 +114,9 @@ protected override void OnRenderFrame(FrameEventArgs e) {
 		}
 	}
 	
-	
 	[ExampleProject("Hello Triangle with extensions")]
 	public class HelloTriangleWithExtensions : ExampleWindow {
-
+		
 		private Program<BasicProgram> ShaderProgram;
 		private Buffer<Vector3> VBO;
 		private VertexArray VAO;
@@ -123,20 +125,15 @@ protected override void OnLoad() {
 			base.OnLoad();
 
 			ShaderProgram = new ProgramFactory() { BaseDirectory = "./Data/Shaders/" }.CreateProgram<BasicProgram>();
-
-			GL.UseProgram(ShaderProgram.Handle);
+			ShaderProgram.Use();
 
 			var Vertices = new[] { new Vector3(-1, -1, 0), new Vector3(1, -1, 0), new Vector3(0, 1, 0) };
 
-			VBO = new Buffer<Vector3>(GL.GenBuffer(), Vertices);
-			GL.BindBuffer(BufferTarget.ArrayBuffer, VBO.Handle);
-			GL.BufferData(BufferTarget.ArrayBuffer, VBO.ElementSize * VBO.ElementCount, Vertices, BufferUsageHint.StaticDraw);
+			VBO = new Buffer<Vector3>(GL.GenBuffer());
+			VBO.BufferData(BufferTarget.ArrayBuffer, Vertices);
 
 			VAO = new VertexArray(GL.GenVertexArray());
-			GL.BindVertexArray(VAO.Handle);
-			GL.VertexAttribPointer(ShaderProgram.Variables.InPosition.Index, VBO.ElementCount, VertexAttribPointerType.Float, false, VBO.ElementSize, 0);
-			GL.EnableVertexAttribArray(ShaderProgram.Variables.InPosition.Index);
-			GL.BindBuffer(BufferTarget.ArrayBuffer, VBO.Handle);
+			VAO.BindVertexAttribute(ShaderProgram.Variables.InPosition, VBO);
 
 			ActiveCamera.Position = new Vector3(0, 0, 3);
 
@@ -156,10 +153,17 @@ protected override void OnRenderFrame(FrameEventArgs e) {
 			GL.Viewport(0, 0, Size.X, Size.Y);
 			GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
 
-			Matrix4 MVPMatrix = ActiveCamera.ViewProjectionMatrix;
-			GL.UniformMatrix4(ShaderProgram.Variables.ModelViewProjectionMatrix.Location, false, ref MVPMatrix);
+			for (int X = 0; X < 20; X++) {
+				for (int Y = 0; Y < 20; Y++) {
+					for (int Z = 0; Z < 20; Z++) {
 
-			GL.DrawArrays(PrimitiveType.Triangles, 0, VBO.ElementCount);
+						Matrix4 MVP = Matrix4.CreateTranslation(new Vector3(X * 2, Y * 2, Z * 2)) * ActiveCamera.ViewProjectionMatrix;
+						ShaderProgram.Variables.ModelViewProjectionMatrix.Set(MVP);
+						GL.DrawArrays(PrimitiveType.Triangles, 0, VBO.ElementCount);
+
+					}
+				}
+			}
 
 			SwapBuffers();
 		}
diff --git a/ObjectTK.Data/Buffers/Buffer.cs b/ObjectTK.Data/Buffers/Buffer.cs
index 3a87f69..42a19ce 100644
--- a/ObjectTK.Data/Buffers/Buffer.cs
+++ b/ObjectTK.Data/Buffers/Buffer.cs
@@ -23,10 +23,8 @@ public Buffer(int Handle, int ElementSize, int ElementCount) {
 	}
 
 	public class Buffer<T> : Buffer where T : struct {
-		public T[] Elements { get; set; }
-		public override int ElementCount { get => Elements.Length; set { } }
-		public Buffer(int Handle, T[] Elements) : base(Handle, Marshal.SizeOf(typeof(T)), 0) {
-			this.Elements = Elements;
+		public Buffer(int Handle) : base(Handle, Marshal.SizeOf(typeof(T)), 0) {
+
 		}
 	}
 }
diff --git a/ObjectTK.Data/Shaders/Material.cs b/ObjectTK.Data/Shaders/Material.cs
new file mode 100644
index 0000000..9aed016
--- /dev/null
+++ b/ObjectTK.Data/Shaders/Material.cs
@@ -0,0 +1,9 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace ObjectTK.Data.Shaders {
+	public class Material {
+	}
+
+}
diff --git a/ObjectTK.Data/Variables/VertexAttributeInfo.cs b/ObjectTK.Data/Variables/VertexAttributeInfo.cs
index 70338a7..e0d5bcb 100644
--- a/ObjectTK.Data/Variables/VertexAttributeInfo.cs
+++ b/ObjectTK.Data/Variables/VertexAttributeInfo.cs
@@ -5,18 +5,20 @@ public class VertexAttributeInfo {
 		public int ProgramHandle { get; }
 		public string Name { get; set; }
 		public bool Active { get; set; }
-		public int Index { get; private set; }
-		public int Components { get; private set; }
-		public ActiveAttribType Type { get; private set; }
-		public bool Normalized { get; private set; }
+		public int Index { get; set; }
+		public int Components { get; set; }
+		public ActiveAttribType ActiveAttribType { get; set; }
+		public VertexAttribPointerType VertexAttribPointerType { get; set; }
+		public bool Normalized { get; set; }
 
-		public VertexAttributeInfo(int ProgramHandle, string Name, bool Active, int Index, int Components, ActiveAttribType Type, bool Normalized) {
+		public VertexAttributeInfo(int ProgramHandle, string Name, bool Active, int Index, int Components, ActiveAttribType ActiveAttribType, VertexAttribPointerType VertexAttribPointerType, bool Normalized) {
 			this.ProgramHandle = ProgramHandle;
 			this.Name = Name;
 			this.Active = Active;
 			this.Index = Index;
 			this.Components = Components;
-			this.Type = Type;
+			this.ActiveAttribType = ActiveAttribType;
+			this.VertexAttribPointerType = VertexAttribPointerType;
 			this.Normalized = Normalized;
 		}
 	}
diff --git a/ObjectTK.Extensions/Buffers/BufferExtensions.cs b/ObjectTK.Extensions/Buffers/BufferExtensions.cs
new file mode 100644
index 0000000..1ac4386
--- /dev/null
+++ b/ObjectTK.Extensions/Buffers/BufferExtensions.cs
@@ -0,0 +1,15 @@
+using Buffer = ObjectTK.Data.Buffers.Buffer;
+using OpenTK.Graphics.OpenGL;
+
+namespace ObjectTK.Extensions.Buffers {
+	public static class BufferExtensions {
+
+		public static void BufferData<T>(this Buffer Buffer, BufferTarget BufferTarget, T[] Data, BufferUsageHint BufferUsageHint = BufferUsageHint.StaticDraw) where T : struct {
+			Buffer.ElementCount = Data.Length;
+			GL.BindBuffer(BufferTarget, Buffer.Handle);
+			GL.BufferData(BufferTarget, Buffer.ElementSize * Buffer.ElementCount, Data, BufferUsageHint);
+		}
+
+
+	}
+}
diff --git a/ObjectTK.Extensions/Buffers/VertexArrayExtensions.cs b/ObjectTK.Extensions/Buffers/VertexArrayExtensions.cs
new file mode 100644
index 0000000..78821b2
--- /dev/null
+++ b/ObjectTK.Extensions/Buffers/VertexArrayExtensions.cs
@@ -0,0 +1,21 @@
+using Buffer = ObjectTK.Data.Buffers.Buffer;
+using ObjectTK.Data.Buffers;
+using OpenTK.Graphics.OpenGL;
+using ObjectTK.Data.Variables;
+
+namespace ObjectTK.Extensions.Buffers {
+	public static class VertexArrayExtensions {
+
+		public static void Bind(this VertexArray VertexArray) {
+			GL.BindVertexArray(VertexArray.Handle);
+		}
+
+		public static void BindVertexAttribute(this VertexArray VertexArray, VertexAttributeInfo VertexAttributeInfo, Buffer Buffer) {
+			VertexArray.Bind();
+			GL.VertexAttribPointer(VertexAttributeInfo.Index, Buffer.ElementCount, VertexAttribPointerType.Float, false, Buffer.ElementSize, 0);
+			GL.EnableVertexAttribArray(VertexAttributeInfo.Index);
+			GL.BindBuffer(BufferTarget.ArrayBuffer, Buffer.Handle);
+		}
+
+	}
+}
diff --git a/ObjectTK.Extensions/Shaders/ProgramExtensions.cs b/ObjectTK.Extensions/Shaders/ProgramExtensions.cs
index 8c8b4e4..768c544 100644
--- a/ObjectTK.Extensions/Shaders/ProgramExtensions.cs
+++ b/ObjectTK.Extensions/Shaders/ProgramExtensions.cs
@@ -1,6 +1,10 @@
 using ObjectTK.Data.Shaders;
 using ObjectTK.Data.Variables;
+using ObjectTK.Extensions.Variables;
 using OpenTK.Graphics.OpenGL;
+using System;
+using System.Collections.Generic;
+using System.Reflection;
 
 namespace ObjectTK.Extensions.Shaders {
 
@@ -11,5 +15,33 @@ public static void Use(this Program Program) {
 		}
 
 	}
+	public class Program<T> : Program where T : class, new() {
+		public T Variables { get; set; }
+		internal List<PropertyInfo> UniformInfoProperties { get; set; }
+		internal List<PropertyInfo> VertexAttributeInfoProperties { get; set; }
+
+		public Program(int Handle, VertexShader VertexShader, FragmentShader FragmentShader, Dictionary<string, UniformInfo> Uniforms, Dictionary<string, VertexAttributeInfo> VertexAttributes) :
+			base(Handle, VertexShader, FragmentShader, Uniforms, VertexAttributes) {
+		}
+	}
+
+	public class Material<T> where T : class, new() {
+		public Program<T> Program { get; set; }
+		public T Variables { get; set; }
+
+		public Material() {
+
+			foreach (PropertyInfo Prop in Program.UniformInfoProperties) {
+				Type UniformType = Prop.PropertyType.GetGenericArguments()[0];
+				object DefaultValue = Activator.CreateInstance(UniformType);
+				UniformInfo PropValue = Prop.GetValue(Program.Variables) as UniformInfo;
+			}
+		}
+
+		public void Use() {
+			Program.Use();
+		}
+
+	}
 
 }
diff --git a/ObjectTK.Extensions/Shaders/ProgramFactory.cs b/ObjectTK.Extensions/Shaders/ProgramFactory.cs
index 6d26111..4da03d5 100644
--- a/ObjectTK.Extensions/Shaders/ProgramFactory.cs
+++ b/ObjectTK.Extensions/Shaders/ProgramFactory.cs
@@ -1,5 +1,6 @@
 using ObjectTK.Data.Shaders;
 using ObjectTK.Data.Variables;
+using ObjectTK.Extensions.Variables;
 using OpenTK.Graphics.OpenGL;
 using System;
 using System.Collections.Generic;
@@ -9,14 +10,6 @@
 using System.Text;
 
 namespace ObjectTK.Extensions.Shaders {
-	public class Program<T> : Program where T : class, new() {
-		public T Variables { get; set; }
-		public Program(int Handle, VertexShader VertexShader, FragmentShader FragmentShader, Dictionary<string, UniformInfo> Uniforms, Dictionary<string, VertexAttributeInfo> VertexAttributes) :
-			base(Handle, VertexShader, FragmentShader, Uniforms, VertexAttributes) {
-
-		}
-	}
-
 	public class ProgramFactory {
 
 		public string BaseDirectory { get; set; } = "./";
@@ -120,10 +113,10 @@ private void ExtractEffects(string EffectFile, string FullSource, Dictionary<str
 			Program.Variables = new T();
 
 			PropertyInfo[] Properties = typeof(T).GetProperties();
-			PropertyInfo[] UniformProperties = Properties.Where(Prop => typeof(UniformInfo).IsAssignableFrom(Prop.PropertyType)).ToArray();
-			PropertyInfo[] VertexAttribProperties = Properties.Where(Prop => typeof(VertexAttributeInfo).IsAssignableFrom(Prop.PropertyType)).ToArray();
+			Program.UniformInfoProperties = Properties.Where(Prop => typeof(UniformInfo).IsAssignableFrom(Prop.PropertyType)).ToList();
+			Program.VertexAttributeInfoProperties = Properties.Where(Prop => typeof(VertexAttributeInfo).IsAssignableFrom(Prop.PropertyType)).ToList();
 
-			foreach (PropertyInfo Prop in UniformProperties) {
+			foreach (PropertyInfo Prop in Program.UniformInfoProperties) {
 				int UniformLocation = GL.GetUniformLocation(Program.Handle, Prop.Name);
 				GL.GetActiveUniform(Program.Handle, UniformLocation, out int UniformSize, out ActiveUniformType UniformType);
 				UniformInfo Value = Activator.CreateInstance(Prop.PropertyType, Program.Handle, Prop.Name, UniformLocation, UniformSize, UniformType, UniformLocation > -1) as UniformInfo;
@@ -131,10 +124,15 @@ private void ExtractEffects(string EffectFile, string FullSource, Dictionary<str
 				Program.Uniforms.Add(Prop.Name, Value);
 			}
 
-			foreach (PropertyInfo Prop in VertexAttribProperties) {
+			foreach (PropertyInfo Prop in Program.VertexAttributeInfoProperties) {
 				int AttribIndex = GL.GetAttribLocation(Program.Handle, Prop.Name);
 				GL.GetActiveAttrib(Program.Handle, AttribIndex, out int Size, out ActiveAttribType AttribType);
-				VertexAttributeInfo Value = Activator.CreateInstance(Prop.PropertyType, Program.Handle, Prop.Name, AttribIndex > -1, AttribIndex, Size, AttribType, false) as VertexAttributeInfo;
+				VertexAttribAttribute Attribute = Prop.GetCustomAttribute<VertexAttribAttribute>();
+				if(Attribute == null) {
+					throw new Exception($"VertexAttributeInfo {typeof(T).FullName}.{Prop.Name} is not decorated with the 'VertexAttrib' Attribute, which is necessary for some metadata as it cannot be determined by the shader itself.");
+				}
+				VertexAttribPointerType VertexAttribPointerType = Attribute.VertexAttribPointerType;
+				VertexAttributeInfo Value = Activator.CreateInstance(Prop.PropertyType, Program.Handle, Prop.Name, AttribIndex > -1, AttribIndex, Size, AttribType, VertexAttribPointerType, false) as VertexAttributeInfo;
 				Prop.SetValue(Program.Variables, Value);
 				Program.VertexAttributes.Add(Prop.Name, Value);
 			}
diff --git a/ObjectTK.Extensions/Variables/UniformInfoExtensions.cs b/ObjectTK.Extensions/Variables/UniformInfoExtensions.cs
index 911b640..1415caa 100644
--- a/ObjectTK.Extensions/Variables/UniformInfoExtensions.cs
+++ b/ObjectTK.Extensions/Variables/UniformInfoExtensions.cs
@@ -1,17 +1,74 @@
 using ObjectTK.Data.Variables;
 using OpenTK.Graphics.OpenGL;
+using OpenTK.Mathematics;
+using System;
+using System.Collections.Generic;
+using System.Drawing;
 
 namespace ObjectTK.Extensions.Variables {
 	public static class UniformInfoExtensions {
 
-		//public static void Set<T>(this Uniform<T> Uniform , T Value) {
-
-		//}
-
+		public static void Set<T>(this UniformInfo<T> Uniform, T Value) {
+			Uniform.SetAction?.Invoke(Uniform.Location, Value);
+		}
 	}
+
 	public class UniformInfo<T> : UniformInfo {
+
+		internal Action<int, T> SetAction;
+
 		public UniformInfo(int ProgramHandle, string Name, int Location, int UniformSize, ActiveUniformType UniformType, bool Active) :
 			base(ProgramHandle, Name, Location, UniformSize, UniformType, Active) {
+			SetAction = UniformSetAction.FindAction<T>();
+		}
+
+		public class UniformSetAction {
+
+			public static Action<int, V> FindAction<V>() {
+				if (SetActions.TryGetValue(typeof(V), out UniformSetAction SetAction)) {
+					return (SetAction as GenericUniformSetAction<V>).Action;
+				}
+				throw new Exception($"Uniform type not supported: {typeof(T).FullName}");
+			}
+
+			private static Dictionary<Type, UniformSetAction> SetActions;
+			static UniformSetAction() {
+				SetActions = new Dictionary<Type, UniformSetAction>()
+				{
+					{ typeof(bool),         new GenericUniformSetAction<bool>       ((Location, Value) => GL.Uniform1(Location, Value ? 1 : 0)) },
+					{ typeof(int),          new GenericUniformSetAction<int>        (GL.Uniform1) },
+					{ typeof(uint),         new GenericUniformSetAction<uint>       (GL.Uniform1) },
+					{ typeof(float),        new GenericUniformSetAction<float>      (GL.Uniform1) },
+					{ typeof(double),       new GenericUniformSetAction<double>     (GL.Uniform1) },
+					{ typeof(Half),         new GenericUniformSetAction<Half>       ((Location, Half) => GL.Uniform1(Location, Half)) },
+					{ typeof(Color),        new GenericUniformSetAction<Color>      ((Location, Color) => GL.Uniform4(Location, Color)) },
+					{ typeof(Vector2),      new GenericUniformSetAction<Vector2>    (GL.Uniform2) },
+					{ typeof(Vector3),      new GenericUniformSetAction<Vector3>    (GL.Uniform3) },
+					{ typeof(Vector4),      new GenericUniformSetAction<Vector4>    (GL.Uniform4) },
+					{ typeof(Vector2d),     new GenericUniformSetAction<Vector2d>   ((Location, Vector) => GL.Uniform2(Location, Vector.X, Vector.Y)) },
+					{ typeof(Vector2h),     new GenericUniformSetAction<Vector2h>   ((Location, Vector) => GL.Uniform2(Location, Vector.X, Vector.Y)) },
+					{ typeof(Vector3d),     new GenericUniformSetAction<Vector3d>   ((Location, Vector) => GL.Uniform3(Location, Vector.X, Vector.Y, Vector.Z)) },
+					{ typeof(Vector3h),     new GenericUniformSetAction<Vector3h>   ((Location, Vector) => GL.Uniform3(Location, Vector.X, Vector.Y, Vector.Z)) },
+					{ typeof(Vector4d),     new GenericUniformSetAction<Vector4d>   ((Location, Vector) => GL.Uniform4(Location, Vector.X, Vector.Y, Vector.Z, Vector.W)) },
+					{ typeof(Vector4h),     new GenericUniformSetAction<Vector4h>   ((Location, Vector) => GL.Uniform4(Location, Vector.X, Vector.Y, Vector.Z, Vector.W)) },
+					{ typeof(Matrix2),      new GenericUniformSetAction<Matrix2>    ((Location, Matrix) => GL.UniformMatrix2(Location, false, ref Matrix)) },
+					{ typeof(Matrix3),      new GenericUniformSetAction<Matrix3>    ((Location, Matrix) => GL.UniformMatrix3(Location, false, ref Matrix)) },
+					{ typeof(Matrix4),      new GenericUniformSetAction<Matrix4>    ((Location, Matrix) => GL.UniformMatrix4(Location, false, ref Matrix)) },
+					{ typeof(Matrix2x3),    new GenericUniformSetAction<Matrix2x3>  ((Location, Matrix) => GL.UniformMatrix2x3(Location, false, ref Matrix)) },
+					{ typeof(Matrix2x4),    new GenericUniformSetAction<Matrix2x4>  ((Location, Matrix) => GL.UniformMatrix2x4(Location, false, ref Matrix)) },
+					{ typeof(Matrix3x2),    new GenericUniformSetAction<Matrix3x2>  ((Location, Matrix) => GL.UniformMatrix3x2(Location, false, ref Matrix)) },
+					{ typeof(Matrix3x4),    new GenericUniformSetAction<Matrix3x4>  ((Location, Matrix) => GL.UniformMatrix3x4(Location, false, ref Matrix)) },
+					{ typeof(Matrix4x2),    new GenericUniformSetAction<Matrix4x2>  ((Location, Matrix) => GL.UniformMatrix4x2(Location, false, ref Matrix)) },
+					{ typeof(Matrix4x3),    new GenericUniformSetAction<Matrix4x3>  ((Location, Matrix) => GL.UniformMatrix4x3(Location, false, ref Matrix)) }
+				};
+			}
+
+			public class GenericUniformSetAction<U> : UniformSetAction {
+				public Action<int, U> Action { get; set; }
+				public GenericUniformSetAction(Action<int, U> Action) {
+					this.Action = Action;
+				}
+			}
 		}
 	}
 }
diff --git a/ObjectTK.Extensions/Variables/VertexAttributeInfoExtensions.cs b/ObjectTK.Extensions/Variables/VertexAttributeInfoExtensions.cs
index c58e8aa..ee15434 100644
--- a/ObjectTK.Extensions/Variables/VertexAttributeInfoExtensions.cs
+++ b/ObjectTK.Extensions/Variables/VertexAttributeInfoExtensions.cs
@@ -1,5 +1,6 @@
 using ObjectTK.Data.Variables;
 using OpenTK.Graphics.OpenGL;
+using System;
 
 namespace ObjectTK.Extensions.Variables {
 	public static class VertexAttributeInfoExtensions {
@@ -7,9 +8,24 @@ public static class VertexAttributeInfoExtensions {
 
 	}
 
-    public class VertexAttributeInfo<T> : VertexAttributeInfo {
-        public VertexAttributeInfo(int ProgramHandle, string Name, bool Active, int Index, int Components, ActiveAttribType Type, bool Normalized) :
-            base(ProgramHandle, Name, Active, Index, Components, Type, Normalized) {
-        }
-    }
+	public class VertexAttributeInfo<T> : VertexAttributeInfo {
+		public VertexAttributeInfo(int ProgramHandle, string Name, bool Active, int Index, int Components, ActiveAttribType ActiveAttribType, VertexAttribPointerType VertexAttribPointerType, bool Normalized) :
+			base(ProgramHandle, Name, Active, Index, Components, ActiveAttribType, VertexAttribPointerType, Normalized) {
+		}
+	}
+
+	[AttributeUsage(AttributeTargets.Property)]
+	public class VertexAttribAttribute : Attribute {
+		public VertexAttribPointerType VertexAttribPointerType { get; protected set; }
+		public bool Normalized { get; protected set; }
+
+		/// <summary>
+		/// Defines some metadata for VertexAttributeInfo objects that cannot be gathered from OpenGL.
+		/// </summary>
+		public VertexAttribAttribute(VertexAttribPointerType VertexAttribPointerType = VertexAttribPointerType.Float, bool Normalized = false) {
+			this.VertexAttribPointerType = VertexAttribPointerType;
+			this.Normalized = Normalized;
+		}
+	}
+
 }
diff --git a/ObjectTK.Tools/ObjectTK.Tools.csproj b/ObjectTK.Tools/ObjectTK.Tools.csproj
index aa08c94..82bc7cb 100644
--- a/ObjectTK.Tools/ObjectTK.Tools.csproj
+++ b/ObjectTK.Tools/ObjectTK.Tools.csproj
@@ -8,4 +8,8 @@
     <PackageReference Include="OpenTK" Version="4.0.6" />
   </ItemGroup>
 
+  <ItemGroup>
+    <ProjectReference Include="..\ObjectTK.Data\ObjectTK.Data.csproj" />
+  </ItemGroup>
+
 </Project>

From c21c02799e1077763e1edd6429e43b5fba6611e7 Mon Sep 17 00:00:00 2001
From: varon <varon-github@outlook.com>
Date: Sun, 8 Nov 2020 23:06:14 +0200
Subject: [PATCH 12/52] Add idea to gitignore

---
 .gitignore | 1 +
 1 file changed, 1 insertion(+)

diff --git a/.gitignore b/.gitignore
index 1ee5385..259653e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -360,3 +360,4 @@ MigrationBackup/
 
 # Fody - auto-generated XML schema
 FodyWeavers.xsd
+.idea 

From e3179f85c2827783aeda0474da88f3e141b007c2 Mon Sep 17 00:00:00 2001
From: varon <varon-github@outlook.com>
Date: Sun, 8 Nov 2020 23:06:33 +0200
Subject: [PATCH 13/52] Buffer and VAO tweaks

---
 Examples/Examples/HelloTriangle.cs            |  8 ++---
 ObjectTK.Data/Buffers/Buffer.cs               | 36 +++++++------------
 ObjectTK.Data/Buffers/VertexArray.cs          |  9 -----
 ObjectTK.Data/Buffers/VertexArrayObject.cs    | 12 +++++++
 ObjectTK.Data/ObjectTK.Data.csproj            |  1 +
 .../Buffers/VertexArrayExtensions.cs          |  8 ++---
 6 files changed, 34 insertions(+), 40 deletions(-)
 delete mode 100644 ObjectTK.Data/Buffers/VertexArray.cs
 create mode 100644 ObjectTK.Data/Buffers/VertexArrayObject.cs

diff --git a/Examples/Examples/HelloTriangle.cs b/Examples/Examples/HelloTriangle.cs
index bbe3eee..934316c 100644
--- a/Examples/Examples/HelloTriangle.cs
+++ b/Examples/Examples/HelloTriangle.cs
@@ -20,7 +20,7 @@ public class HelloTriangle : ExampleWindow {
 
 		private Program ShaderProgram;
 		private Buffer<Vector3> VBO;
-		private VertexArray VAO;
+		private VertexArrayObject VAO;
 
 		private readonly string VertSource = @"
 				#version 330 core
@@ -81,7 +81,7 @@ protected override void OnLoad() {
 			GL.BindBuffer(BufferTarget.ArrayBuffer, VBO.Handle);
 			GL.BufferData(BufferTarget.ArrayBuffer, VBO.ElementSize * VBO.ElementCount, Vertices, BufferUsageHint.StaticDraw);
 
-			VAO = new VertexArray(GL.GenVertexArray());
+			VAO = new VertexArrayObject(GL.GenVertexArray());
 			GL.BindVertexArray(VAO.Handle);
 			GL.VertexAttribPointer(0, 3, VertexAttribPointerType.Float, false, 3 * sizeof(float), 0);
 			GL.EnableVertexAttribArray(0);
@@ -119,7 +119,7 @@ public class HelloTriangleWithExtensions : ExampleWindow {
 		
 		private Program<BasicProgram> ShaderProgram;
 		private Buffer<Vector3> VBO;
-		private VertexArray VAO;
+		private VertexArrayObject VAO;
 
 		protected override void OnLoad() {
 			base.OnLoad();
@@ -132,7 +132,7 @@ protected override void OnLoad() {
 			VBO = new Buffer<Vector3>(GL.GenBuffer());
 			VBO.BufferData(BufferTarget.ArrayBuffer, Vertices);
 
-			VAO = new VertexArray(GL.GenVertexArray());
+			VAO = new VertexArrayObject(GL.GenVertexArray());
 			VAO.BindVertexAttribute(ShaderProgram.Variables.InPosition, VBO);
 
 			ActiveCamera.Position = new Vector3(0, 0, 3);
diff --git a/ObjectTK.Data/Buffers/Buffer.cs b/ObjectTK.Data/Buffers/Buffer.cs
index 42a19ce..ed46a0a 100644
--- a/ObjectTK.Data/Buffers/Buffer.cs
+++ b/ObjectTK.Data/Buffers/Buffer.cs
@@ -1,30 +1,20 @@
-using System.Runtime.InteropServices;
+namespace ObjectTK.Data.Buffers {
 
-namespace ObjectTK.Data.Buffers {
-
-	public class Buffer {
+	/// Corresponds to an OpenGL Buffer.
+	/// Typically this is a vertex/index/whatever buffer.
+	public class Buffer<T> where T : unmanaged {
+		
+		/// The OpenGL Handle for this.
 		public int Handle { get; }
+		/// Size in bytes of each element in the buffer.
 		public int ElementSize { get; }
-		private int _ElementCount { get; set; }
-		public virtual int ElementCount {
-			get {
-				return _ElementCount;
-			}
-			set {
-				_ElementCount = value;
-			}
-		}
-
-		public Buffer(int Handle, int ElementSize, int ElementCount) {
-			this.Handle = Handle;
-			this.ElementSize = ElementSize;
-			this.ElementCount = ElementCount;
-		}
-	}
-
-	public class Buffer<T> : Buffer where T : struct {
-		public Buffer(int Handle) : base(Handle, Marshal.SizeOf(typeof(T)), 0) {
+		/// The number of elements in this buffer.
+		public int ElementCount { get; set; }
 
+		public unsafe Buffer(int handle, int elementCount) {
+			Handle = handle;
+			ElementSize = sizeof(T);
+			ElementCount = elementCount;
 		}
 	}
 }
diff --git a/ObjectTK.Data/Buffers/VertexArray.cs b/ObjectTK.Data/Buffers/VertexArray.cs
deleted file mode 100644
index 4174f52..0000000
--- a/ObjectTK.Data/Buffers/VertexArray.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-namespace ObjectTK.Data.Buffers {
-	public class VertexArray {
-		public int Handle { get; }
-
-		public VertexArray(int Handle) {
-			this.Handle = Handle;
-		}
-	}
-}
diff --git a/ObjectTK.Data/Buffers/VertexArrayObject.cs b/ObjectTK.Data/Buffers/VertexArrayObject.cs
new file mode 100644
index 0000000..301cbe1
--- /dev/null
+++ b/ObjectTK.Data/Buffers/VertexArrayObject.cs
@@ -0,0 +1,12 @@
+namespace ObjectTK.Data.Buffers {
+	
+	/// An OpenGL Vertex array object.
+	public class VertexArrayObject {
+		
+		public int Handle { get; }
+
+		public VertexArrayObject(int handle) {
+			Handle = handle;
+		}
+	}
+}
diff --git a/ObjectTK.Data/ObjectTK.Data.csproj b/ObjectTK.Data/ObjectTK.Data.csproj
index f887b41..58aa62e 100644
--- a/ObjectTK.Data/ObjectTK.Data.csproj
+++ b/ObjectTK.Data/ObjectTK.Data.csproj
@@ -2,6 +2,7 @@
 
   <PropertyGroup>
     <TargetFramework>netcoreapp3.1</TargetFramework>
+    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
   </PropertyGroup>
 
   <ItemGroup>
diff --git a/ObjectTK.Extensions/Buffers/VertexArrayExtensions.cs b/ObjectTK.Extensions/Buffers/VertexArrayExtensions.cs
index 78821b2..10aa630 100644
--- a/ObjectTK.Extensions/Buffers/VertexArrayExtensions.cs
+++ b/ObjectTK.Extensions/Buffers/VertexArrayExtensions.cs
@@ -6,12 +6,12 @@
 namespace ObjectTK.Extensions.Buffers {
 	public static class VertexArrayExtensions {
 
-		public static void Bind(this VertexArray VertexArray) {
-			GL.BindVertexArray(VertexArray.Handle);
+		public static void Bind(this VertexArrayObject vertexArrayObject) {
+			GL.BindVertexArray(vertexArrayObject.Handle);
 		}
 
-		public static void BindVertexAttribute(this VertexArray VertexArray, VertexAttributeInfo VertexAttributeInfo, Buffer Buffer) {
-			VertexArray.Bind();
+		public static void BindVertexAttribute(this VertexArrayObject vertexArrayObject, VertexAttributeInfo VertexAttributeInfo, Buffer Buffer) {
+			vertexArrayObject.Bind();
 			GL.VertexAttribPointer(VertexAttributeInfo.Index, Buffer.ElementCount, VertexAttribPointerType.Float, false, Buffer.ElementSize, 0);
 			GL.EnableVertexAttribArray(VertexAttributeInfo.Index);
 			GL.BindBuffer(BufferTarget.ArrayBuffer, Buffer.Handle);

From 02a4fcc1a8420e7bb9c7e92f13a53bcbcb2008ce Mon Sep 17 00:00:00 2001
From: varon <varon-github@outlook.com>
Date: Sun, 8 Nov 2020 23:09:38 +0200
Subject: [PATCH 14/52] Shader program clarification

---
 Examples/Examples/HelloTriangle.cs            |  6 +--
 .../Shaders/{Program.cs => ShaderProgram.cs}  |  4 +-
 .../Shaders/ProgramExtensions.cs              | 16 ++++----
 ObjectTK.Extensions/Shaders/ProgramFactory.cs | 38 +++++++++----------
 4 files changed, 32 insertions(+), 32 deletions(-)
 rename ObjectTK.Data/Shaders/{Program.cs => ShaderProgram.cs} (72%)

diff --git a/Examples/Examples/HelloTriangle.cs b/Examples/Examples/HelloTriangle.cs
index 934316c..35b1221 100644
--- a/Examples/Examples/HelloTriangle.cs
+++ b/Examples/Examples/HelloTriangle.cs
@@ -18,7 +18,7 @@ namespace Examples.Examples {
 	[ExampleProject("Hello Triangle")]
 	public class HelloTriangle : ExampleWindow {
 
-		private Program ShaderProgram;
+		private ShaderProgram ShaderProgram;
 		private Buffer<Vector3> VBO;
 		private VertexArrayObject VAO;
 
@@ -65,7 +65,7 @@ protected override void OnLoad() {
 			GL.GetActiveUniform(ProgramHandle, UniformLocation, out int UniformSize, out ActiveUniformType UniformType);
 			UniformInfo UI_InPosition = new UniformInfo(ProgramHandle, "ModelViewProjectionMatrix", UniformLocation, UniformSize, UniformType, UniformLocation > -1);
 
-			ShaderProgram = new Program(ProgramHandle, VertexShader, FragmentShader, new Dictionary<string, UniformInfo> { { "ModelViewProjectionMatrix", UI_InPosition } }, new Dictionary<string, VertexAttributeInfo> { });
+			ShaderProgram = new ShaderProgram(ProgramHandle, VertexShader, FragmentShader, new Dictionary<string, UniformInfo> { { "ModelViewProjectionMatrix", UI_InPosition } }, new Dictionary<string, VertexAttributeInfo> { });
 
 			GL.DetachShader(ProgramHandle, VertexShader.Handle);
 			GL.DetachShader(ProgramHandle, FragmentShader.Handle);
@@ -117,7 +117,7 @@ protected override void OnRenderFrame(FrameEventArgs e) {
 	[ExampleProject("Hello Triangle with extensions")]
 	public class HelloTriangleWithExtensions : ExampleWindow {
 		
-		private Program<BasicProgram> ShaderProgram;
+		private ShaderProgram<BasicProgram> ShaderProgram;
 		private Buffer<Vector3> VBO;
 		private VertexArrayObject VAO;
 
diff --git a/ObjectTK.Data/Shaders/Program.cs b/ObjectTK.Data/Shaders/ShaderProgram.cs
similarity index 72%
rename from ObjectTK.Data/Shaders/Program.cs
rename to ObjectTK.Data/Shaders/ShaderProgram.cs
index ce269b0..d657726 100644
--- a/ObjectTK.Data/Shaders/Program.cs
+++ b/ObjectTK.Data/Shaders/ShaderProgram.cs
@@ -4,14 +4,14 @@
 
 namespace ObjectTK.Data.Shaders {
 
-	public class Program {
+	public class ShaderProgram {
 		public int Handle { get; }
 		public VertexShader VertexShader { get; }
 		public FragmentShader FragmentShader { get; }
 		public Dictionary<string, UniformInfo> Uniforms { get; set; }
 		public Dictionary<string, VertexAttributeInfo> VertexAttributes { get; set; }
 
-		public Program(int Handle, VertexShader VertexShader, FragmentShader FragmentShader, Dictionary<string, UniformInfo> Uniforms, Dictionary<string, VertexAttributeInfo> VertexAttributes) {
+		public ShaderProgram(int Handle, VertexShader VertexShader, FragmentShader FragmentShader, Dictionary<string, UniformInfo> Uniforms, Dictionary<string, VertexAttributeInfo> VertexAttributes) {
 			this.Handle = Handle;
 			this.VertexShader = VertexShader;
 			this.FragmentShader = FragmentShader;
diff --git a/ObjectTK.Extensions/Shaders/ProgramExtensions.cs b/ObjectTK.Extensions/Shaders/ProgramExtensions.cs
index 768c544..fdf62bf 100644
--- a/ObjectTK.Extensions/Shaders/ProgramExtensions.cs
+++ b/ObjectTK.Extensions/Shaders/ProgramExtensions.cs
@@ -10,36 +10,36 @@ namespace ObjectTK.Extensions.Shaders {
 
 	public static class ProgramExtensions {
 
-		public static void Use(this Program Program) {
-			GL.UseProgram(Program.Handle);
+		public static void Use(this ShaderProgram shaderProgram) {
+			GL.UseProgram(shaderProgram.Handle);
 		}
 
 	}
-	public class Program<T> : Program where T : class, new() {
+	public class ShaderProgram<T> : ShaderProgram where T : class, new() {
 		public T Variables { get; set; }
 		internal List<PropertyInfo> UniformInfoProperties { get; set; }
 		internal List<PropertyInfo> VertexAttributeInfoProperties { get; set; }
 
-		public Program(int Handle, VertexShader VertexShader, FragmentShader FragmentShader, Dictionary<string, UniformInfo> Uniforms, Dictionary<string, VertexAttributeInfo> VertexAttributes) :
+		public ShaderProgram(int Handle, VertexShader VertexShader, FragmentShader FragmentShader, Dictionary<string, UniformInfo> Uniforms, Dictionary<string, VertexAttributeInfo> VertexAttributes) :
 			base(Handle, VertexShader, FragmentShader, Uniforms, VertexAttributes) {
 		}
 	}
 
 	public class Material<T> where T : class, new() {
-		public Program<T> Program { get; set; }
+		public ShaderProgram<T> ShaderProgram { get; set; }
 		public T Variables { get; set; }
 
 		public Material() {
 
-			foreach (PropertyInfo Prop in Program.UniformInfoProperties) {
+			foreach (PropertyInfo Prop in ShaderProgram.UniformInfoProperties) {
 				Type UniformType = Prop.PropertyType.GetGenericArguments()[0];
 				object DefaultValue = Activator.CreateInstance(UniformType);
-				UniformInfo PropValue = Prop.GetValue(Program.Variables) as UniformInfo;
+				UniformInfo PropValue = Prop.GetValue(ShaderProgram.Variables) as UniformInfo;
 			}
 		}
 
 		public void Use() {
-			Program.Use();
+			ShaderProgram.Use();
 		}
 
 	}
diff --git a/ObjectTK.Extensions/Shaders/ProgramFactory.cs b/ObjectTK.Extensions/Shaders/ProgramFactory.cs
index 4da03d5..2820bbe 100644
--- a/ObjectTK.Extensions/Shaders/ProgramFactory.cs
+++ b/ObjectTK.Extensions/Shaders/ProgramFactory.cs
@@ -15,7 +15,7 @@ public class ProgramFactory {
 		public string BaseDirectory { get; set; } = "./";
 		public string ShaderExtension { get; set; } = "glsl";
 
-		public Program<T> CreateProgram<T>() where T : class, new() {
+		public ShaderProgram<T> CreateProgram<T>() where T : class, new() {
 
 			List<ShaderSourceAttribute> Attributes = typeof(T).GetCustomAttributes<ShaderSourceAttribute>(true).ToList();
 			List<Shader> Shaders = new List<Shader>();
@@ -49,7 +49,7 @@ public class ProgramFactory {
 				GL.DeleteShader(Shader.Handle);
 			}
 
-			Program<T> ShaderProgram = new Program<T>(ProgramHandle, null, null, new Dictionary<string, UniformInfo>(), new Dictionary<string, VertexAttributeInfo>());
+			ShaderProgram<T> ShaderProgram = new ShaderProgram<T>(ProgramHandle, null, null, new Dictionary<string, UniformInfo>(), new Dictionary<string, VertexAttributeInfo>());
 			InitializeProgramVariables(ShaderProgram);
 
 			return ShaderProgram;
@@ -108,33 +108,33 @@ private void ExtractEffects(string EffectFile, string FullSource, Dictionary<str
 			}
 		}
 
-		private void InitializeProgramVariables<T>(Program<T> Program) where T : class, new() {
+		private void InitializeProgramVariables<T>(ShaderProgram<T> shaderProgram) where T : class, new() {
 
-			Program.Variables = new T();
+			shaderProgram.Variables = new T();
 
 			PropertyInfo[] Properties = typeof(T).GetProperties();
-			Program.UniformInfoProperties = Properties.Where(Prop => typeof(UniformInfo).IsAssignableFrom(Prop.PropertyType)).ToList();
-			Program.VertexAttributeInfoProperties = Properties.Where(Prop => typeof(VertexAttributeInfo).IsAssignableFrom(Prop.PropertyType)).ToList();
-
-			foreach (PropertyInfo Prop in Program.UniformInfoProperties) {
-				int UniformLocation = GL.GetUniformLocation(Program.Handle, Prop.Name);
-				GL.GetActiveUniform(Program.Handle, UniformLocation, out int UniformSize, out ActiveUniformType UniformType);
-				UniformInfo Value = Activator.CreateInstance(Prop.PropertyType, Program.Handle, Prop.Name, UniformLocation, UniformSize, UniformType, UniformLocation > -1) as UniformInfo;
-				Prop.SetValue(Program.Variables, Value);
-				Program.Uniforms.Add(Prop.Name, Value);
+			shaderProgram.UniformInfoProperties = Properties.Where(Prop => typeof(UniformInfo).IsAssignableFrom(Prop.PropertyType)).ToList();
+			shaderProgram.VertexAttributeInfoProperties = Properties.Where(Prop => typeof(VertexAttributeInfo).IsAssignableFrom(Prop.PropertyType)).ToList();
+
+			foreach (PropertyInfo Prop in shaderProgram.UniformInfoProperties) {
+				int UniformLocation = GL.GetUniformLocation(shaderProgram.Handle, Prop.Name);
+				GL.GetActiveUniform(shaderProgram.Handle, UniformLocation, out int UniformSize, out ActiveUniformType UniformType);
+				UniformInfo Value = Activator.CreateInstance(Prop.PropertyType, shaderProgram.Handle, Prop.Name, UniformLocation, UniformSize, UniformType, UniformLocation > -1) as UniformInfo;
+				Prop.SetValue(shaderProgram.Variables, Value);
+				shaderProgram.Uniforms.Add(Prop.Name, Value);
 			}
 
-			foreach (PropertyInfo Prop in Program.VertexAttributeInfoProperties) {
-				int AttribIndex = GL.GetAttribLocation(Program.Handle, Prop.Name);
-				GL.GetActiveAttrib(Program.Handle, AttribIndex, out int Size, out ActiveAttribType AttribType);
+			foreach (PropertyInfo Prop in shaderProgram.VertexAttributeInfoProperties) {
+				int AttribIndex = GL.GetAttribLocation(shaderProgram.Handle, Prop.Name);
+				GL.GetActiveAttrib(shaderProgram.Handle, AttribIndex, out int Size, out ActiveAttribType AttribType);
 				VertexAttribAttribute Attribute = Prop.GetCustomAttribute<VertexAttribAttribute>();
 				if(Attribute == null) {
 					throw new Exception($"VertexAttributeInfo {typeof(T).FullName}.{Prop.Name} is not decorated with the 'VertexAttrib' Attribute, which is necessary for some metadata as it cannot be determined by the shader itself.");
 				}
 				VertexAttribPointerType VertexAttribPointerType = Attribute.VertexAttribPointerType;
-				VertexAttributeInfo Value = Activator.CreateInstance(Prop.PropertyType, Program.Handle, Prop.Name, AttribIndex > -1, AttribIndex, Size, AttribType, VertexAttribPointerType, false) as VertexAttributeInfo;
-				Prop.SetValue(Program.Variables, Value);
-				Program.VertexAttributes.Add(Prop.Name, Value);
+				VertexAttributeInfo Value = Activator.CreateInstance(Prop.PropertyType, shaderProgram.Handle, Prop.Name, AttribIndex > -1, AttribIndex, Size, AttribType, VertexAttribPointerType, false) as VertexAttributeInfo;
+				Prop.SetValue(shaderProgram.Variables, Value);
+				shaderProgram.VertexAttributes.Add(Prop.Name, Value);
 			}
 
 		}

From 6c36dff457dfcfc510ed3b2d27d04a554e7e9ad3 Mon Sep 17 00:00:00 2001
From: varon <varon-github@outlook.com>
Date: Sun, 8 Nov 2020 23:10:52 +0200
Subject: [PATCH 15/52] Rename to shaderstage

---
 Examples/Examples/HelloTriangle.cs            | 26 +++++++++----------
 ObjectTK.Data/Shaders/ShaderProgram.cs        | 10 +++----
 ObjectTK.Data/Shaders/Shaders.cs              | 12 ++++-----
 .../Shaders/ProgramExtensions.cs              |  4 +--
 ObjectTK.Extensions/Shaders/ProgramFactory.cs |  8 +++---
 .../Shaders/ShaderExtensions.cs               | 16 ++++++------
 6 files changed, 38 insertions(+), 38 deletions(-)

diff --git a/Examples/Examples/HelloTriangle.cs b/Examples/Examples/HelloTriangle.cs
index 35b1221..21dbcdd 100644
--- a/Examples/Examples/HelloTriangle.cs
+++ b/Examples/Examples/HelloTriangle.cs
@@ -46,18 +46,18 @@ void main()
 		protected override void OnLoad() {
 			base.OnLoad();
 
-			VertexShader VertexShader = new VertexShader(GL.CreateShader(ShaderType.VertexShader), null);
-			FragmentShader FragmentShader = new FragmentShader(GL.CreateShader(ShaderType.FragmentShader), null);
+			VertexShaderStage vertexShaderStage = new VertexShaderStage(GL.CreateShader(ShaderType.VertexShader), null);
+			FragmentShaderStage fragmentShaderStage = new FragmentShaderStage(GL.CreateShader(ShaderType.FragmentShader), null);
 
-			GL.ShaderSource(VertexShader.Handle, VertSource);
-			GL.ShaderSource(FragmentShader.Handle, FragSource);
-			GL.CompileShader(VertexShader.Handle);
-			GL.CompileShader(FragmentShader.Handle);
+			GL.ShaderSource(vertexShaderStage.Handle, VertSource);
+			GL.ShaderSource(fragmentShaderStage.Handle, FragSource);
+			GL.CompileShader(vertexShaderStage.Handle);
+			GL.CompileShader(fragmentShaderStage.Handle);
 
 			int ProgramHandle = GL.CreateProgram();
 
-			GL.AttachShader(ProgramHandle, VertexShader.Handle);
-			GL.AttachShader(ProgramHandle, FragmentShader.Handle);
+			GL.AttachShader(ProgramHandle, vertexShaderStage.Handle);
+			GL.AttachShader(ProgramHandle, fragmentShaderStage.Handle);
 
 			GL.LinkProgram(ProgramHandle);
 
@@ -65,12 +65,12 @@ protected override void OnLoad() {
 			GL.GetActiveUniform(ProgramHandle, UniformLocation, out int UniformSize, out ActiveUniformType UniformType);
 			UniformInfo UI_InPosition = new UniformInfo(ProgramHandle, "ModelViewProjectionMatrix", UniformLocation, UniformSize, UniformType, UniformLocation > -1);
 
-			ShaderProgram = new ShaderProgram(ProgramHandle, VertexShader, FragmentShader, new Dictionary<string, UniformInfo> { { "ModelViewProjectionMatrix", UI_InPosition } }, new Dictionary<string, VertexAttributeInfo> { });
+			ShaderProgram = new ShaderProgram(ProgramHandle, vertexShaderStage, fragmentShaderStage, new Dictionary<string, UniformInfo> { { "ModelViewProjectionMatrix", UI_InPosition } }, new Dictionary<string, VertexAttributeInfo> { });
 
-			GL.DetachShader(ProgramHandle, VertexShader.Handle);
-			GL.DetachShader(ProgramHandle, FragmentShader.Handle);
-			GL.DeleteShader(VertexShader.Handle);
-			GL.DeleteShader(FragmentShader.Handle);
+			GL.DetachShader(ProgramHandle, vertexShaderStage.Handle);
+			GL.DetachShader(ProgramHandle, fragmentShaderStage.Handle);
+			GL.DeleteShader(vertexShaderStage.Handle);
+			GL.DeleteShader(fragmentShaderStage.Handle);
 
 			GL.UseProgram(ProgramHandle);
 
diff --git a/ObjectTK.Data/Shaders/ShaderProgram.cs b/ObjectTK.Data/Shaders/ShaderProgram.cs
index d657726..0c6ecc8 100644
--- a/ObjectTK.Data/Shaders/ShaderProgram.cs
+++ b/ObjectTK.Data/Shaders/ShaderProgram.cs
@@ -6,15 +6,15 @@ namespace ObjectTK.Data.Shaders {
 
 	public class ShaderProgram {
 		public int Handle { get; }
-		public VertexShader VertexShader { get; }
-		public FragmentShader FragmentShader { get; }
+		public VertexShaderStage VertexShaderStage { get; }
+		public FragmentShaderStage FragmentShaderStage { get; }
 		public Dictionary<string, UniformInfo> Uniforms { get; set; }
 		public Dictionary<string, VertexAttributeInfo> VertexAttributes { get; set; }
 
-		public ShaderProgram(int Handle, VertexShader VertexShader, FragmentShader FragmentShader, Dictionary<string, UniformInfo> Uniforms, Dictionary<string, VertexAttributeInfo> VertexAttributes) {
+		public ShaderProgram(int Handle, VertexShaderStage vertexShaderStage, FragmentShaderStage fragmentShaderStage, Dictionary<string, UniformInfo> Uniforms, Dictionary<string, VertexAttributeInfo> VertexAttributes) {
 			this.Handle = Handle;
-			this.VertexShader = VertexShader;
-			this.FragmentShader = FragmentShader;
+			this.VertexShaderStage = vertexShaderStage;
+			this.FragmentShaderStage = fragmentShaderStage;
 			this.Uniforms = Uniforms;
 			this.VertexAttributes = VertexAttributes;
 		}
diff --git a/ObjectTK.Data/Shaders/Shaders.cs b/ObjectTK.Data/Shaders/Shaders.cs
index 3e80640..d272646 100644
--- a/ObjectTK.Data/Shaders/Shaders.cs
+++ b/ObjectTK.Data/Shaders/Shaders.cs
@@ -1,26 +1,26 @@
 using OpenTK.Graphics.OpenGL;
 
 namespace ObjectTK.Data.Shaders {
-	public abstract class Shader {
+	public abstract class ShaderStage {
 		public int Handle { get; }
 		public string Source { get; }
 		public abstract ShaderType ShaderType { get; }
 
-		public Shader(int Handle, string Source) {
+		public ShaderStage(int Handle, string Source) {
 			this.Handle = Handle;
 			this.Source = Source;
 		}
 	}
-	public class VertexShader : Shader {
+	public class VertexShaderStage : ShaderStage {
 		public override ShaderType ShaderType => ShaderType.VertexShader;
-		public VertexShader(int Handle, string Source) : base(Handle, Source) {
+		public VertexShaderStage(int Handle, string Source) : base(Handle, Source) {
 
 		}
 	}
 
-	public class FragmentShader : Shader {
+	public class FragmentShaderStage : ShaderStage {
 		public override ShaderType ShaderType => ShaderType.FragmentShader;
-		public FragmentShader(int Handle, string Source) : base(Handle, Source) {
+		public FragmentShaderStage(int Handle, string Source) : base(Handle, Source) {
 
 		}
 
diff --git a/ObjectTK.Extensions/Shaders/ProgramExtensions.cs b/ObjectTK.Extensions/Shaders/ProgramExtensions.cs
index fdf62bf..b8f43d3 100644
--- a/ObjectTK.Extensions/Shaders/ProgramExtensions.cs
+++ b/ObjectTK.Extensions/Shaders/ProgramExtensions.cs
@@ -20,8 +20,8 @@ public static void Use(this ShaderProgram shaderProgram) {
 		internal List<PropertyInfo> UniformInfoProperties { get; set; }
 		internal List<PropertyInfo> VertexAttributeInfoProperties { get; set; }
 
-		public ShaderProgram(int Handle, VertexShader VertexShader, FragmentShader FragmentShader, Dictionary<string, UniformInfo> Uniforms, Dictionary<string, VertexAttributeInfo> VertexAttributes) :
-			base(Handle, VertexShader, FragmentShader, Uniforms, VertexAttributes) {
+		public ShaderProgram(int Handle, VertexShaderStage vertexShaderStage, FragmentShaderStage fragmentShaderStage, Dictionary<string, UniformInfo> Uniforms, Dictionary<string, VertexAttributeInfo> VertexAttributes) :
+			base(Handle, vertexShaderStage, fragmentShaderStage, Uniforms, VertexAttributes) {
 		}
 	}
 
diff --git a/ObjectTK.Extensions/Shaders/ProgramFactory.cs b/ObjectTK.Extensions/Shaders/ProgramFactory.cs
index 2820bbe..1c697cb 100644
--- a/ObjectTK.Extensions/Shaders/ProgramFactory.cs
+++ b/ObjectTK.Extensions/Shaders/ProgramFactory.cs
@@ -18,7 +18,7 @@ public class ProgramFactory {
 		public ShaderProgram<T> CreateProgram<T>() where T : class, new() {
 
 			List<ShaderSourceAttribute> Attributes = typeof(T).GetCustomAttributes<ShaderSourceAttribute>(true).ToList();
-			List<Shader> Shaders = new List<Shader>();
+			List<ShaderStage> Shaders = new List<ShaderStage>();
 
 			int ProgramHandle = GL.CreateProgram();
 
@@ -32,10 +32,10 @@ public class ProgramFactory {
 
 				switch (Attribute.Type) {
 					case ShaderType.FragmentShader:
-						Shaders.Add(new FragmentShader(ShaderHandle, Source));
+						Shaders.Add(new FragmentShaderStage(ShaderHandle, Source));
 						break;
 					case ShaderType.VertexShader:
-						Shaders.Add(new VertexShader(ShaderHandle, Source));
+						Shaders.Add(new VertexShaderStage(ShaderHandle, Source));
 						break;
 					default:
 						break;
@@ -44,7 +44,7 @@ public class ProgramFactory {
 
 			GL.LinkProgram(ProgramHandle);
 
-			foreach (Shader Shader in Shaders) {
+			foreach (ShaderStage Shader in Shaders) {
 				GL.DetachShader(ProgramHandle, Shader.Handle);
 				GL.DeleteShader(Shader.Handle);
 			}
diff --git a/ObjectTK.Extensions/Shaders/ShaderExtensions.cs b/ObjectTK.Extensions/Shaders/ShaderExtensions.cs
index 5e340e3..7a3f1d6 100644
--- a/ObjectTK.Extensions/Shaders/ShaderExtensions.cs
+++ b/ObjectTK.Extensions/Shaders/ShaderExtensions.cs
@@ -4,26 +4,26 @@
 namespace ObjectTK.Extensions.Shaders {
 
 	public static class ShaderFactory {
-		public static VertexShader CreateVertexShader(string Source) {
+		public static VertexShaderStage CreateVertexShader(string Source) {
 			int Handle = GL.CreateShader(ShaderType.VertexShader);
 			GL.ShaderSource(Handle, Source);
 			GL.CompileShader(Handle);
-			return new VertexShader(Handle, Source);
+			return new VertexShaderStage(Handle, Source);
 		}
-		public static FragmentShader CreateFragmentShader(string Source) {
+		public static FragmentShaderStage CreateFragmentShader(string Source) {
 			int Handle = GL.CreateShader(ShaderType.FragmentShader);
 			GL.ShaderSource(Handle, Source);
 			GL.CompileShader(Handle);
-			return new FragmentShader(Handle, Source);
+			return new FragmentShaderStage(Handle, Source);
 		}
 	}
 
 	public static class ShaderExtensions {
-		public static void Compile(this Shader Shader) {
-			GL.CompileShader(Shader.Handle);
+		public static void Compile(this ShaderStage shaderStage) {
+			GL.CompileShader(shaderStage.Handle);
 		}
-		public static void ShaderSource(this Shader Shader) {
-			GL.ShaderSource(Shader.Handle, Shader.Source);
+		public static void ShaderSource(this ShaderStage shaderStage) {
+			GL.ShaderSource(shaderStage.Handle, shaderStage.Source);
 		}
 	}
 }

From d4a8400538f843f09315ec2dc8cf0e41967da563 Mon Sep 17 00:00:00 2001
From: varon <varon-github@outlook.com>
Date: Mon, 9 Nov 2020 01:02:35 +0200
Subject: [PATCH 16/52] Huge rework after meeting

---
 .../ExtensionPrograms/BasicProgram.cs         |  7 +-
 Examples/Examples/HelloTriangle.cs            | 95 ++----------------
 .../Examples/HelloTriangleWithExtensions.cs   | 67 +++++++++++++
 ObjectTK.Data/AttributeExtensions.cs          | 62 ++++++++++++
 ObjectTK.Data/Buffers/Buffer.cs               |  6 +-
 ObjectTK.Data/ObjectTK.Data.csproj            |  1 +
 ObjectTK.Data/Shaders/ShaderCompiler.cs       | 97 +++++++++++++++++++
 ObjectTK.Data/Shaders/ShaderProgram.cs        | 27 +++---
 ObjectTK.Data/Shaders/ShaderStage.cs          | 18 ++++
 ObjectTK.Data/Shaders/Shaders.cs              | 28 ------
 .../Variables/ShaderAttributeInfo.cs          | 25 +++++
 ObjectTK.Data/Variables/ShaderUniformInfo.cs  | 23 +++++
 ObjectTK.Data/Variables/UniformInfo.cs        | 20 ----
 .../Variables/VertexAttributeInfo.cs          | 26 -----
 .../Buffers/BufferExtensions.cs               |  4 +-
 .../Buffers/VertexArrayExtensions.cs          |  9 +-
 ObjectTK.Extensions/Shaders/Material.cs       | 44 +++++++++
 .../Shaders/ProgramExtensions.cs              | 27 +-----
 ObjectTK.Extensions/Shaders/ProgramFactory.cs | 16 +--
 .../Shaders/ShaderExtensions.cs               | 20 ++--
 .../Variables/UniformInfoExtensions.cs        | 10 +-
 .../VertexAttributeInfoExtensions.cs          | 12 +--
 22 files changed, 407 insertions(+), 237 deletions(-)
 create mode 100644 Examples/Examples/HelloTriangleWithExtensions.cs
 create mode 100644 ObjectTK.Data/AttributeExtensions.cs
 create mode 100644 ObjectTK.Data/Shaders/ShaderCompiler.cs
 create mode 100644 ObjectTK.Data/Shaders/ShaderStage.cs
 delete mode 100644 ObjectTK.Data/Shaders/Shaders.cs
 create mode 100644 ObjectTK.Data/Variables/ShaderAttributeInfo.cs
 create mode 100644 ObjectTK.Data/Variables/ShaderUniformInfo.cs
 delete mode 100644 ObjectTK.Data/Variables/UniformInfo.cs
 delete mode 100644 ObjectTK.Data/Variables/VertexAttributeInfo.cs
 create mode 100644 ObjectTK.Extensions/Shaders/Material.cs

diff --git a/Examples/Examples/ExtensionPrograms/BasicProgram.cs b/Examples/Examples/ExtensionPrograms/BasicProgram.cs
index 57ea324..344a269 100644
--- a/Examples/Examples/ExtensionPrograms/BasicProgram.cs
+++ b/Examples/Examples/ExtensionPrograms/BasicProgram.cs
@@ -1,4 +1,5 @@
-using ObjectTK.Extensions.Shaders;
+using ObjectTK.Data.Variables;
+using ObjectTK.Extensions.Shaders;
 using ObjectTK.Extensions.Variables;
 using OpenTK.Graphics.OpenGL;
 using OpenTK.Mathematics;
@@ -9,7 +10,7 @@ namespace Examples.Examples.Programs {
 	[FragmentShaderSource("BasicShader.Fragment")]
 	public class BasicProgram {
 		[VertexAttrib(VertexAttribPointerType.Float)]
-		public VertexAttributeInfo<Vector3> InPosition { get; set; }
-		public UniformInfo<Matrix4> ModelViewProjectionMatrix { get; set; }
+		public ShaderAttributeInfo InPosition { get; set; }
+		public ShaderUniformInfo<Matrix4> ModelViewProjectionMatrix { get; set; }
 	}
 }
diff --git a/Examples/Examples/HelloTriangle.cs b/Examples/Examples/HelloTriangle.cs
index 21dbcdd..f018c91 100644
--- a/Examples/Examples/HelloTriangle.cs
+++ b/Examples/Examples/HelloTriangle.cs
@@ -2,13 +2,9 @@
 using System;
 using System.Collections.Generic;
 using System.Drawing;
-using Examples.Examples.Programs;
 using ObjectTK.Data.Buffers;
 using ObjectTK.Data.Shaders;
 using ObjectTK.Data.Variables;
-using ObjectTK.Extensions.Buffers;
-using ObjectTK.Extensions.Shaders;
-using ObjectTK.Extensions.Variables;
 using OpenTK.Graphics.OpenGL;
 using OpenTK.Mathematics;
 using OpenTK.Windowing.Common;
@@ -46,40 +42,16 @@ void main()
 		protected override void OnLoad() {
 			base.OnLoad();
 
-			VertexShaderStage vertexShaderStage = new VertexShaderStage(GL.CreateShader(ShaderType.VertexShader), null);
-			FragmentShaderStage fragmentShaderStage = new FragmentShaderStage(GL.CreateShader(ShaderType.FragmentShader), null);
+			var shaderProgram = ShaderCompiler.VertexFrag("Solid Color", VertSource, FragSource);
+			GL.UseProgram(shaderProgram.Handle);
+			ShaderProgram = shaderProgram;
 
-			GL.ShaderSource(vertexShaderStage.Handle, VertSource);
-			GL.ShaderSource(fragmentShaderStage.Handle, FragSource);
-			GL.CompileShader(vertexShaderStage.Handle);
-			GL.CompileShader(fragmentShaderStage.Handle);
+			var vertices = new[] { new Vector3(-1, -1, 0), new Vector3(1, -1, 0), new Vector3(0, 1, 0) };
 
-			int ProgramHandle = GL.CreateProgram();
-
-			GL.AttachShader(ProgramHandle, vertexShaderStage.Handle);
-			GL.AttachShader(ProgramHandle, fragmentShaderStage.Handle);
-
-			GL.LinkProgram(ProgramHandle);
-
-			int UniformLocation = GL.GetUniformLocation(ProgramHandle, "ModelViewProjectionMatrix");
-			GL.GetActiveUniform(ProgramHandle, UniformLocation, out int UniformSize, out ActiveUniformType UniformType);
-			UniformInfo UI_InPosition = new UniformInfo(ProgramHandle, "ModelViewProjectionMatrix", UniformLocation, UniformSize, UniformType, UniformLocation > -1);
-
-			ShaderProgram = new ShaderProgram(ProgramHandle, vertexShaderStage, fragmentShaderStage, new Dictionary<string, UniformInfo> { { "ModelViewProjectionMatrix", UI_InPosition } }, new Dictionary<string, VertexAttributeInfo> { });
-
-			GL.DetachShader(ProgramHandle, vertexShaderStage.Handle);
-			GL.DetachShader(ProgramHandle, fragmentShaderStage.Handle);
-			GL.DeleteShader(vertexShaderStage.Handle);
-			GL.DeleteShader(fragmentShaderStage.Handle);
-
-			GL.UseProgram(ProgramHandle);
-
-			var Vertices = new[] { new Vector3(-1, -1, 0), new Vector3(1, -1, 0), new Vector3(0, 1, 0) };
-
-			VBO = new Buffer<Vector3>(GL.GenBuffer());
+			VBO = new Buffer<Vector3>(GL.GenBuffer(), 0);
 			VBO.ElementCount = 3;
 			GL.BindBuffer(BufferTarget.ArrayBuffer, VBO.Handle);
-			GL.BufferData(BufferTarget.ArrayBuffer, VBO.ElementSize * VBO.ElementCount, Vertices, BufferUsageHint.StaticDraw);
+			GL.BufferData(BufferTarget.ArrayBuffer, VBO.ElementSize * VBO.ElementCount, vertices, BufferUsageHint.StaticDraw);
 
 			VAO = new VertexArrayObject(GL.GenVertexArray());
 			GL.BindVertexArray(VAO.Handle);
@@ -113,59 +85,4 @@ protected override void OnRenderFrame(FrameEventArgs e) {
 			SwapBuffers();
 		}
 	}
-	
-	[ExampleProject("Hello Triangle with extensions")]
-	public class HelloTriangleWithExtensions : ExampleWindow {
-		
-		private ShaderProgram<BasicProgram> ShaderProgram;
-		private Buffer<Vector3> VBO;
-		private VertexArrayObject VAO;
-
-		protected override void OnLoad() {
-			base.OnLoad();
-
-			ShaderProgram = new ProgramFactory() { BaseDirectory = "./Data/Shaders/" }.CreateProgram<BasicProgram>();
-			ShaderProgram.Use();
-
-			var Vertices = new[] { new Vector3(-1, -1, 0), new Vector3(1, -1, 0), new Vector3(0, 1, 0) };
-
-			VBO = new Buffer<Vector3>(GL.GenBuffer());
-			VBO.BufferData(BufferTarget.ArrayBuffer, Vertices);
-
-			VAO = new VertexArrayObject(GL.GenVertexArray());
-			VAO.BindVertexAttribute(ShaderProgram.Variables.InPosition, VBO);
-
-			ActiveCamera.Position = new Vector3(0, 0, 3);
-
-			GL.ClearColor(Color.MidnightBlue);
-		}
-
-		private void OnUnload(object sender, EventArgs e) {
-			base.OnUnload();
-
-			GL.DeleteProgram(ShaderProgram.Handle);
-			GL.DeleteVertexArray(VAO.Handle);
-			GL.DeleteBuffer(VBO.Handle);
-		}
-
-		protected override void OnRenderFrame(FrameEventArgs e) {
-			base.OnRenderFrame(e);
-			GL.Viewport(0, 0, Size.X, Size.Y);
-			GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
-
-			for (int X = 0; X < 20; X++) {
-				for (int Y = 0; Y < 20; Y++) {
-					for (int Z = 0; Z < 20; Z++) {
-
-						Matrix4 MVP = Matrix4.CreateTranslation(new Vector3(X * 2, Y * 2, Z * 2)) * ActiveCamera.ViewProjectionMatrix;
-						ShaderProgram.Variables.ModelViewProjectionMatrix.Set(MVP);
-						GL.DrawArrays(PrimitiveType.Triangles, 0, VBO.ElementCount);
-
-					}
-				}
-			}
-
-			SwapBuffers();
-		}
-	}
 }
diff --git a/Examples/Examples/HelloTriangleWithExtensions.cs b/Examples/Examples/HelloTriangleWithExtensions.cs
new file mode 100644
index 0000000..20d2ab7
--- /dev/null
+++ b/Examples/Examples/HelloTriangleWithExtensions.cs
@@ -0,0 +1,67 @@
+using System;
+using System.Drawing;
+using Examples.Examples.Programs;
+using ObjectTK.Data.Buffers;
+using ObjectTK.Extensions.Buffers;
+using ObjectTK.Extensions.Shaders;
+using ObjectTK.Extensions.Variables;
+using OpenTK.Graphics.OpenGL;
+using OpenTK.Mathematics;
+using OpenTK.Windowing.Common;
+
+namespace Examples.Examples {
+    [ExampleProject("Hello Triangle with extensions")]
+    public class HelloTriangleWithExtensions : ExampleWindow {
+		
+        private ShaderProgram<BasicProgram> ShaderProgram;
+        private Buffer<Vector3> VBO;
+        private VertexArrayObject VAO;
+
+        protected override void OnLoad() {
+            base.OnLoad();
+
+            ShaderProgram = new ProgramFactory() { BaseDirectory = "./Data/Shaders/" }.CreateProgram<BasicProgram>();
+            ShaderProgram.Use();
+
+            var Vertices = new[] { new Vector3(-1, -1, 0), new Vector3(1, -1, 0), new Vector3(0, 1, 0) };
+
+            VBO = new Buffer<Vector3>(GL.GenBuffer(), 0);
+            VBO.BufferData(BufferTarget.ArrayBuffer, Vertices);
+
+            VAO = new VertexArrayObject(GL.GenVertexArray());
+            VAO.BindVertexAttribute(ShaderProgram.Variables.InPosition, VBO);
+
+            ActiveCamera.Position = new Vector3(0, 0, 3);
+
+            GL.ClearColor(Color.MidnightBlue);
+        }
+
+        private void OnUnload(object sender, EventArgs e) {
+            base.OnUnload();
+
+            GL.DeleteProgram(ShaderProgram.Handle);
+            GL.DeleteVertexArray(VAO.Handle);
+            GL.DeleteBuffer(VBO.Handle);
+        }
+
+        protected override void OnRenderFrame(FrameEventArgs e) {
+            base.OnRenderFrame(e);
+            GL.Viewport(0, 0, Size.X, Size.Y);
+            GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
+
+            for (int X = 0; X < 20; X++) {
+                for (int Y = 0; Y < 20; Y++) {
+                    for (int Z = 0; Z < 20; Z++) {
+
+                        Matrix4 MVP = Matrix4.CreateTranslation(new Vector3(X * 2, Y * 2, Z * 2)) * ActiveCamera.ViewProjectionMatrix;
+                        ShaderProgram.Variables.ModelViewProjectionMatrix.Set(MVP);
+                        GL.DrawArrays(PrimitiveType.Triangles, 0, VBO.ElementCount);
+
+                    }
+                }
+            }
+
+            SwapBuffers();
+        }
+    }
+}
diff --git a/ObjectTK.Data/AttributeExtensions.cs b/ObjectTK.Data/AttributeExtensions.cs
new file mode 100644
index 0000000..91a2381
--- /dev/null
+++ b/ObjectTK.Data/AttributeExtensions.cs
@@ -0,0 +1,62 @@
+using System;
+using OpenTK.Graphics.OpenGL;
+using AAT = OpenTK.Graphics.OpenGL.ActiveAttribType;
+using VAPT = OpenTK.Graphics.OpenGL.VertexAttribPointerType;
+
+
+namespace ObjectTK.Data {
+    public static class AttributeExtensions {
+
+        public static VAPT ToVertexAttribPointerType(this AAT attrib) {
+            switch (attrib) {
+                //
+                case AAT.Int:
+                case AAT.IntVec2:
+                case AAT.IntVec3:
+                case AAT.IntVec4:
+                    return VAPT.Int;
+                //
+                case AAT.UnsignedInt:
+                case AAT.UnsignedIntVec2:
+                case AAT.UnsignedIntVec3:
+                case AAT.UnsignedIntVec4:
+                    return VAPT.UnsignedInt;
+                //
+                case AAT.Float:
+                case AAT.FloatVec2:
+                case AAT.FloatVec3:
+                case AAT.FloatVec4:
+                case AAT.FloatMat2:
+                case AAT.FloatMat3:
+                case AAT.FloatMat4:
+                case AAT.FloatMat2x3:
+                case AAT.FloatMat2x4:
+                case AAT.FloatMat3x2:
+                case AAT.FloatMat3x4:
+                case AAT.FloatMat4x2:
+                case AAT.FloatMat4x3:
+                    return VAPT.Float;
+                //
+                case AAT.Double:
+                case AAT.DoubleMat2:
+                case AAT.DoubleMat3:
+                case AAT.DoubleMat4:
+                case AAT.DoubleMat2x3:
+                case AAT.DoubleMat2x4:
+                case AAT.DoubleMat3x2:
+                case AAT.DoubleMat3x4:
+                case AAT.DoubleMat4x2:
+                case AAT.DoubleMat4x3:
+                case AAT.DoubleVec2:
+                case AAT.DoubleVec3:
+                case AAT.DoubleVec4:
+                    return VAPT.Double;
+                case AAT.None:
+                    throw new ArgumentOutOfRangeException(nameof(attrib), attrib, $"{nameof(ActiveAttribType.None)} does not have a valid conversion.");
+                default:
+                    throw new ArgumentOutOfRangeException(nameof(attrib), attrib, null);
+            }
+        }
+        
+    }
+}
diff --git a/ObjectTK.Data/Buffers/Buffer.cs b/ObjectTK.Data/Buffers/Buffer.cs
index ed46a0a..305a834 100644
--- a/ObjectTK.Data/Buffers/Buffer.cs
+++ b/ObjectTK.Data/Buffers/Buffer.cs
@@ -1,5 +1,9 @@
-namespace ObjectTK.Data.Buffers {
+using OpenTK.Graphics.OpenGL;
+using OpenTK.Mathematics;
+using GL = OpenTK.Graphics.ES11.GL;
 
+namespace ObjectTK.Data.Buffers {
+	
 	/// Corresponds to an OpenGL Buffer.
 	/// Typically this is a vertex/index/whatever buffer.
 	public class Buffer<T> where T : unmanaged {
diff --git a/ObjectTK.Data/ObjectTK.Data.csproj b/ObjectTK.Data/ObjectTK.Data.csproj
index 58aa62e..dcadcac 100644
--- a/ObjectTK.Data/ObjectTK.Data.csproj
+++ b/ObjectTK.Data/ObjectTK.Data.csproj
@@ -6,6 +6,7 @@
   </PropertyGroup>
 
   <ItemGroup>
+    <PackageReference Include="JetBrains.Annotations" Version="2020.1.0" />
     <PackageReference Include="OpenTK" Version="4.0.6" />
   </ItemGroup>
 
diff --git a/ObjectTK.Data/Shaders/ShaderCompiler.cs b/ObjectTK.Data/Shaders/ShaderCompiler.cs
new file mode 100644
index 0000000..049be0b
--- /dev/null
+++ b/ObjectTK.Data/Shaders/ShaderCompiler.cs
@@ -0,0 +1,97 @@
+using System;
+using System.Collections.Generic;
+using JetBrains.Annotations;
+using ObjectTK.Data.Variables;
+using OpenTK.Graphics.OpenGL;
+
+namespace ObjectTK.Data.Shaders {
+    
+    public static class ShaderCompiler {
+        
+        
+        /// Helper method that compiles a shader stage (part of a ShaderProgram) or throws an exception if failure occurs.
+        [MustUseReturnValue]
+        [NotNull]
+        public static ShaderStage CompileShaderStage(ShaderType shaderType, string name, string source)
+        {
+            var handle = GL.CreateShader(shaderType);
+            var objLabel = $"ShaderStage: {name}-{shaderType}";
+            GL.ObjectLabel(ObjectLabelIdentifier.Shader, handle, objLabel.Length, objLabel);
+            GL.ShaderSource(handle, source);
+            GL.CompileShader(handle);
+            GL.GetShader(handle, ShaderParameter.CompileStatus, out var compileStatus);
+            if (compileStatus == 0)
+            {
+                var vertLog = GL.GetShaderInfoLog(handle);
+                //TODO: needs a proper exception type.
+                var msg = $"Failed to compile shader '{name}' of type {shaderType}. Error:\n{vertLog}";
+                throw new Exception(msg);
+            }
+            return new ShaderStage(shaderType, handle, source);
+        }
+        
+        
+        /// Shader Handle (int) -> ShaderProgram class.
+        [NotNull]
+        [MustUseReturnValue]
+        public static ShaderProgram Introspect(int prog, ShaderStage[] stages) {
+            // inspect the attributes:
+            var attributes = new Dictionary<string, ShaderAttributeInfo>(StringComparer.Ordinal);
+
+            GL.GetProgram(prog, GetProgramParameterName.ActiveAttributes, out var attribCount);
+            for (var i = 0; i < attribCount; i++)
+            {
+                var attrName = GL.GetActiveAttrib(prog, i, out var count, out var attrType);
+                var attrLoc = GL.GetAttribLocation(prog, attrName);
+                attributes[attrName] = new ShaderAttributeInfo() {
+                    Name = attrName,
+                    Location = attrLoc,
+                    Size = count,
+                    ActiveAttribType = attrType,
+                };
+                GL.VertexAttribPointer(0, 3, VertexAttribPointerType.Float, false, 3 * sizeof(float), 0);
+            }
+            
+            // inspect the uniforms
+            var uniforms = new Dictionary<string, ShaderUniformInfo>(StringComparer.Ordinal);
+
+            GL.GetProgram(prog, GetProgramParameterName.ActiveUniforms, out var uniformCount);
+            for (var i = 0; i < uniformCount; i++)
+            {
+                var uniName = GL.GetActiveUniform(prog, i, out var uniSize, out var uniType);
+                var uniLoc = GL.GetUniformLocation(prog, uniName);
+                uniforms[uniName] = new ShaderUniformInfo(uniName, uniLoc, uniSize, uniType);
+            }
+            
+            return new ShaderProgram(prog, stages, uniforms, attributes);
+        }
+
+        [MustUseReturnValue]
+        [NotNull]
+        public static ShaderProgram VertexFrag(string name, string vertSource, string fragSource) {
+
+            var vert = CompileShaderStage(ShaderType.VertexShader, name, vertSource);
+            var frag = CompileShaderStage(ShaderType.FragmentShader, name, fragSource);
+            var stages = new[] {vert, frag};
+            
+            int handle = GL.CreateProgram();
+            var label = $"ShaderProgram: {name}";
+            GL.ObjectLabel(ObjectLabelIdentifier.Program, handle, label.Length, label);
+
+            GL.AttachShader(handle, vert.Handle);
+            GL.AttachShader(handle, frag.Handle);
+            GL.LinkProgram(handle);
+            
+            GL.GetProgram(handle, GetProgramParameterName.LinkStatus, out int linkStatus);
+            if (linkStatus == 0)
+            {
+                var linkLog = GL.GetProgramInfoLog(handle);
+                //TODO: needs a proper exception type.
+                var msg = $"Failed to link shader '{name}'. Error:\n{linkLog}";
+                throw new Exception(msg);
+            }
+
+            return Introspect(handle, stages);
+        }
+    }
+}
diff --git a/ObjectTK.Data/Shaders/ShaderProgram.cs b/ObjectTK.Data/Shaders/ShaderProgram.cs
index 0c6ecc8..0bd3583 100644
--- a/ObjectTK.Data/Shaders/ShaderProgram.cs
+++ b/ObjectTK.Data/Shaders/ShaderProgram.cs
@@ -1,22 +1,27 @@
 using ObjectTK.Data.Variables;
 using System.Collections.Generic;
-using System.Collections.Immutable;
 
 namespace ObjectTK.Data.Shaders {
 
+	/// See: https://www.khronos.org/opengl/wiki/Shader
 	public class ShaderProgram {
+		/// The OpenGL Handle
 		public int Handle { get; }
-		public VertexShaderStage VertexShaderStage { get; }
-		public FragmentShaderStage FragmentShaderStage { get; }
-		public Dictionary<string, UniformInfo> Uniforms { get; set; }
-		public Dictionary<string, VertexAttributeInfo> VertexAttributes { get; set; }
+		/// The individual stages making up this program in the order they are used.
+		public ShaderStage[] Stages { get; set; }
+		/// The uniforms on this shader.
+		public Dictionary<string, ShaderUniformInfo> Uniforms { get; set; }
+		/// The vertex attributes on this shader.
+		public Dictionary<string, ShaderAttributeInfo> Attributes { get; set; }
 
-		public ShaderProgram(int Handle, VertexShaderStage vertexShaderStage, FragmentShaderStage fragmentShaderStage, Dictionary<string, UniformInfo> Uniforms, Dictionary<string, VertexAttributeInfo> VertexAttributes) {
-			this.Handle = Handle;
-			this.VertexShaderStage = vertexShaderStage;
-			this.FragmentShaderStage = fragmentShaderStage;
-			this.Uniforms = Uniforms;
-			this.VertexAttributes = VertexAttributes;
+		public ShaderProgram(int handle,
+			ShaderStage[] stages,
+			Dictionary<string, ShaderUniformInfo> uniforms,
+			Dictionary<string, ShaderAttributeInfo> attributes) {
+			Handle = handle;
+			Stages = stages;
+			Uniforms = uniforms;
+			Attributes = attributes;
 		}
 	}
 }
diff --git a/ObjectTK.Data/Shaders/ShaderStage.cs b/ObjectTK.Data/Shaders/ShaderStage.cs
new file mode 100644
index 0000000..0ec84f6
--- /dev/null
+++ b/ObjectTK.Data/Shaders/ShaderStage.cs
@@ -0,0 +1,18 @@
+using OpenTK.Graphics.OpenGL;
+
+namespace ObjectTK.Data.Shaders {
+	/// https://www.khronos.org/opengl/wiki/Shader#Stages
+	public class ShaderStage {
+		
+		public string Name { get; }
+		public ShaderType Type { get; }
+		public int Handle { get; }
+		public string Source { get; }
+
+		public ShaderStage(ShaderType type, int handle, string source) {
+			Type = type;
+			Handle = handle;
+			Source = source;
+		}
+	}
+}
diff --git a/ObjectTK.Data/Shaders/Shaders.cs b/ObjectTK.Data/Shaders/Shaders.cs
deleted file mode 100644
index d272646..0000000
--- a/ObjectTK.Data/Shaders/Shaders.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Data.Shaders {
-	public abstract class ShaderStage {
-		public int Handle { get; }
-		public string Source { get; }
-		public abstract ShaderType ShaderType { get; }
-
-		public ShaderStage(int Handle, string Source) {
-			this.Handle = Handle;
-			this.Source = Source;
-		}
-	}
-	public class VertexShaderStage : ShaderStage {
-		public override ShaderType ShaderType => ShaderType.VertexShader;
-		public VertexShaderStage(int Handle, string Source) : base(Handle, Source) {
-
-		}
-	}
-
-	public class FragmentShaderStage : ShaderStage {
-		public override ShaderType ShaderType => ShaderType.FragmentShader;
-		public FragmentShaderStage(int Handle, string Source) : base(Handle, Source) {
-
-		}
-
-	}
-}
diff --git a/ObjectTK.Data/Variables/ShaderAttributeInfo.cs b/ObjectTK.Data/Variables/ShaderAttributeInfo.cs
new file mode 100644
index 0000000..579f148
--- /dev/null
+++ b/ObjectTK.Data/Variables/ShaderAttributeInfo.cs
@@ -0,0 +1,25 @@
+using OpenTK.Graphics.OpenGL;
+
+namespace ObjectTK.Data.Variables {
+	public class ShaderAttributeInfo {
+		public string Name { get; set; }
+		public int Location { get; set; }
+		/// The size of the attribute, in units of the attribute type.
+		public int Size { get; set; }
+		/// 
+		public ActiveAttribType ActiveAttribType { get; set; }
+
+		public VertexAttribPointerType VertexAttribPointerType => ActiveAttribType.ToVertexAttribPointerType();
+
+		//
+		// public ShaderAttributeInfo(string name, int index, int components, ActiveAttribType activeAttribType, VertexAttribPointerType vertexAttribPointerType, bool normalized) {
+		// 	this.Name = name;
+		// 	this.Index = index;
+		// 	this.Components = components;
+		// 	this.ActiveAttribType = activeAttribType;
+		// 	this.VertexAttribPointerType = vertexAttribPointerType;
+		// 	this.Normalized = normalized;
+		// }
+	}
+
+}
diff --git a/ObjectTK.Data/Variables/ShaderUniformInfo.cs b/ObjectTK.Data/Variables/ShaderUniformInfo.cs
new file mode 100644
index 0000000..cb05b47
--- /dev/null
+++ b/ObjectTK.Data/Variables/ShaderUniformInfo.cs
@@ -0,0 +1,23 @@
+using OpenTK.Graphics.OpenGL;
+
+namespace ObjectTK.Data.Variables {
+	public class ShaderUniformInfo {
+		//TODO FIXME: Name[] for array uniform variables can be challenging.
+		/// The name of this uniform in the array
+		public string Name { get; set; }
+		/// The uniform location. used with GL.SetUniform()
+		public int Location { get; }
+		/// If this uniform is an array, then this is the number of items in the array.
+		public int Size { get; }
+		/// The data type in the shader for this uniform.
+		public ActiveUniformType Type { get; }
+		
+		public ShaderUniformInfo(string name, int location, 
+			int uniformSize, ActiveUniformType uniformType) {
+			Name = name;
+			Location = location;
+			Size = uniformSize;
+			Type = uniformType;
+		}
+	}
+}
diff --git a/ObjectTK.Data/Variables/UniformInfo.cs b/ObjectTK.Data/Variables/UniformInfo.cs
deleted file mode 100644
index 0284008..0000000
--- a/ObjectTK.Data/Variables/UniformInfo.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Data.Variables {
-	public class UniformInfo {
-		public int ProgramHandle { get; }
-		public string Name { get; set; }
-		public bool Active { get; set; }
-		public int Location { get; }
-		public int Size { get; }
-		public ActiveUniformType Type { get; }
-		public UniformInfo(int ProgramHandle, string Name, int Location, int UniformSize, ActiveUniformType UniformType, bool Active) {
-			this.ProgramHandle = ProgramHandle;
-			this.Name = Name;
-			this.Active = Active;
-			this.Location = Location;
-			this.Size = UniformSize;
-			this.Type = UniformType;
-		}
-	}
-}
diff --git a/ObjectTK.Data/Variables/VertexAttributeInfo.cs b/ObjectTK.Data/Variables/VertexAttributeInfo.cs
deleted file mode 100644
index e0d5bcb..0000000
--- a/ObjectTK.Data/Variables/VertexAttributeInfo.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-using OpenTK.Graphics.OpenGL;
-
-namespace ObjectTK.Data.Variables {
-	public class VertexAttributeInfo {
-		public int ProgramHandle { get; }
-		public string Name { get; set; }
-		public bool Active { get; set; }
-		public int Index { get; set; }
-		public int Components { get; set; }
-		public ActiveAttribType ActiveAttribType { get; set; }
-		public VertexAttribPointerType VertexAttribPointerType { get; set; }
-		public bool Normalized { get; set; }
-
-		public VertexAttributeInfo(int ProgramHandle, string Name, bool Active, int Index, int Components, ActiveAttribType ActiveAttribType, VertexAttribPointerType VertexAttribPointerType, bool Normalized) {
-			this.ProgramHandle = ProgramHandle;
-			this.Name = Name;
-			this.Active = Active;
-			this.Index = Index;
-			this.Components = Components;
-			this.ActiveAttribType = ActiveAttribType;
-			this.VertexAttribPointerType = VertexAttribPointerType;
-			this.Normalized = Normalized;
-		}
-	}
-
-}
diff --git a/ObjectTK.Extensions/Buffers/BufferExtensions.cs b/ObjectTK.Extensions/Buffers/BufferExtensions.cs
index 1ac4386..b085ec5 100644
--- a/ObjectTK.Extensions/Buffers/BufferExtensions.cs
+++ b/ObjectTK.Extensions/Buffers/BufferExtensions.cs
@@ -1,10 +1,10 @@
-using Buffer = ObjectTK.Data.Buffers.Buffer;
+using ObjectTK.Data.Buffers;
 using OpenTK.Graphics.OpenGL;
 
 namespace ObjectTK.Extensions.Buffers {
 	public static class BufferExtensions {
 
-		public static void BufferData<T>(this Buffer Buffer, BufferTarget BufferTarget, T[] Data, BufferUsageHint BufferUsageHint = BufferUsageHint.StaticDraw) where T : struct {
+		public static void BufferData<T>(this Buffer<T> Buffer, BufferTarget BufferTarget, T[] Data, BufferUsageHint BufferUsageHint = BufferUsageHint.StaticDraw) where T : unmanaged {
 			Buffer.ElementCount = Data.Length;
 			GL.BindBuffer(BufferTarget, Buffer.Handle);
 			GL.BufferData(BufferTarget, Buffer.ElementSize * Buffer.ElementCount, Data, BufferUsageHint);
diff --git a/ObjectTK.Extensions/Buffers/VertexArrayExtensions.cs b/ObjectTK.Extensions/Buffers/VertexArrayExtensions.cs
index 10aa630..43c7c17 100644
--- a/ObjectTK.Extensions/Buffers/VertexArrayExtensions.cs
+++ b/ObjectTK.Extensions/Buffers/VertexArrayExtensions.cs
@@ -1,5 +1,4 @@
-using Buffer = ObjectTK.Data.Buffers.Buffer;
-using ObjectTK.Data.Buffers;
+using ObjectTK.Data.Buffers;
 using OpenTK.Graphics.OpenGL;
 using ObjectTK.Data.Variables;
 
@@ -10,10 +9,10 @@ public static void Bind(this VertexArrayObject vertexArrayObject) {
 			GL.BindVertexArray(vertexArrayObject.Handle);
 		}
 
-		public static void BindVertexAttribute(this VertexArrayObject vertexArrayObject, VertexAttributeInfo VertexAttributeInfo, Buffer Buffer) {
+		public static void BindVertexAttribute<T>(this VertexArrayObject vertexArrayObject, ShaderAttributeInfo shaderAttributeInfo, Buffer<T> Buffer) where T : unmanaged {
 			vertexArrayObject.Bind();
-			GL.VertexAttribPointer(VertexAttributeInfo.Index, Buffer.ElementCount, VertexAttribPointerType.Float, false, Buffer.ElementSize, 0);
-			GL.EnableVertexAttribArray(VertexAttributeInfo.Index);
+			GL.VertexAttribPointer(shaderAttributeInfo.Location, Buffer.ElementCount, VertexAttribPointerType.Float, false, Buffer.ElementSize, 0);
+			GL.EnableVertexAttribArray(shaderAttributeInfo.Location);
 			GL.BindBuffer(BufferTarget.ArrayBuffer, Buffer.Handle);
 		}
 
diff --git a/ObjectTK.Extensions/Shaders/Material.cs b/ObjectTK.Extensions/Shaders/Material.cs
new file mode 100644
index 0000000..a61e0cf
--- /dev/null
+++ b/ObjectTK.Extensions/Shaders/Material.cs
@@ -0,0 +1,44 @@
+#region License
+
+// ObjectTK License
+// Copyright (C) 2013-2015 J.C.Bernack
+// 
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+// 
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+// 
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+#endregion
+
+using System;
+using System.Reflection;
+using ObjectTK.Data.Variables;
+
+namespace ObjectTK.Extensions.Shaders {
+    public class Material<T> where T : class, new() {
+        public ShaderProgram<T> ShaderProgram { get; set; }
+        public T Variables { get; set; }
+
+        public Material() {
+
+            foreach (PropertyInfo Prop in ShaderProgram.UniformInfoProperties) {
+                Type UniformType = Prop.PropertyType.GetGenericArguments()[0];
+                object DefaultValue = Activator.CreateInstance(UniformType);
+                ShaderUniformInfo PropValue = Prop.GetValue(ShaderProgram.Variables) as ShaderUniformInfo;
+            }
+        }
+
+        public void Use() {
+            ShaderProgram.Use();
+        }
+
+    }
+}
\ No newline at end of file
diff --git a/ObjectTK.Extensions/Shaders/ProgramExtensions.cs b/ObjectTK.Extensions/Shaders/ProgramExtensions.cs
index b8f43d3..3d76803 100644
--- a/ObjectTK.Extensions/Shaders/ProgramExtensions.cs
+++ b/ObjectTK.Extensions/Shaders/ProgramExtensions.cs
@@ -2,7 +2,6 @@
 using ObjectTK.Data.Variables;
 using ObjectTK.Extensions.Variables;
 using OpenTK.Graphics.OpenGL;
-using System;
 using System.Collections.Generic;
 using System.Reflection;
 
@@ -20,28 +19,10 @@ public static void Use(this ShaderProgram shaderProgram) {
 		internal List<PropertyInfo> UniformInfoProperties { get; set; }
 		internal List<PropertyInfo> VertexAttributeInfoProperties { get; set; }
 
-		public ShaderProgram(int Handle, VertexShaderStage vertexShaderStage, FragmentShaderStage fragmentShaderStage, Dictionary<string, UniformInfo> Uniforms, Dictionary<string, VertexAttributeInfo> VertexAttributes) :
-			base(Handle, vertexShaderStage, fragmentShaderStage, Uniforms, VertexAttributes) {
+		public ShaderProgram(int handle, ShaderStage[] stages,
+			Dictionary<string, ShaderUniformInfo> uniforms,
+			Dictionary<string, ShaderAttributeInfo> attributes) :
+			base(handle, stages, uniforms, attributes) {
 		}
 	}
-
-	public class Material<T> where T : class, new() {
-		public ShaderProgram<T> ShaderProgram { get; set; }
-		public T Variables { get; set; }
-
-		public Material() {
-
-			foreach (PropertyInfo Prop in ShaderProgram.UniformInfoProperties) {
-				Type UniformType = Prop.PropertyType.GetGenericArguments()[0];
-				object DefaultValue = Activator.CreateInstance(UniformType);
-				UniformInfo PropValue = Prop.GetValue(ShaderProgram.Variables) as UniformInfo;
-			}
-		}
-
-		public void Use() {
-			ShaderProgram.Use();
-		}
-
-	}
-
 }
diff --git a/ObjectTK.Extensions/Shaders/ProgramFactory.cs b/ObjectTK.Extensions/Shaders/ProgramFactory.cs
index 1c697cb..0a7536a 100644
--- a/ObjectTK.Extensions/Shaders/ProgramFactory.cs
+++ b/ObjectTK.Extensions/Shaders/ProgramFactory.cs
@@ -32,10 +32,10 @@ public class ProgramFactory {
 
 				switch (Attribute.Type) {
 					case ShaderType.FragmentShader:
-						Shaders.Add(new FragmentShaderStage(ShaderHandle, Source));
+						Shaders.Add(new ShaderStage(ShaderType.FragmentShader, ShaderHandle, Source));
 						break;
 					case ShaderType.VertexShader:
-						Shaders.Add(new VertexShaderStage(ShaderHandle, Source));
+						Shaders.Add(new ShaderStage(ShaderType.VertexShader, ShaderHandle, Source));
 						break;
 					default:
 						break;
@@ -49,7 +49,7 @@ public class ProgramFactory {
 				GL.DeleteShader(Shader.Handle);
 			}
 
-			ShaderProgram<T> ShaderProgram = new ShaderProgram<T>(ProgramHandle, null, null, new Dictionary<string, UniformInfo>(), new Dictionary<string, VertexAttributeInfo>());
+			ShaderProgram<T> ShaderProgram = new ShaderProgram<T>(ProgramHandle, null, new Dictionary<string, ShaderUniformInfo>(), new Dictionary<string, ShaderAttributeInfo>());
 			InitializeProgramVariables(ShaderProgram);
 
 			return ShaderProgram;
@@ -113,13 +113,13 @@ private void ExtractEffects(string EffectFile, string FullSource, Dictionary<str
 			shaderProgram.Variables = new T();
 
 			PropertyInfo[] Properties = typeof(T).GetProperties();
-			shaderProgram.UniformInfoProperties = Properties.Where(Prop => typeof(UniformInfo).IsAssignableFrom(Prop.PropertyType)).ToList();
-			shaderProgram.VertexAttributeInfoProperties = Properties.Where(Prop => typeof(VertexAttributeInfo).IsAssignableFrom(Prop.PropertyType)).ToList();
+			shaderProgram.UniformInfoProperties = Properties.Where(Prop => typeof(ShaderUniformInfo).IsAssignableFrom(Prop.PropertyType)).ToList();
+			shaderProgram.VertexAttributeInfoProperties = Properties.Where(Prop => typeof(ShaderAttributeInfo).IsAssignableFrom(Prop.PropertyType)).ToList();
 
 			foreach (PropertyInfo Prop in shaderProgram.UniformInfoProperties) {
 				int UniformLocation = GL.GetUniformLocation(shaderProgram.Handle, Prop.Name);
 				GL.GetActiveUniform(shaderProgram.Handle, UniformLocation, out int UniformSize, out ActiveUniformType UniformType);
-				UniformInfo Value = Activator.CreateInstance(Prop.PropertyType, shaderProgram.Handle, Prop.Name, UniformLocation, UniformSize, UniformType, UniformLocation > -1) as UniformInfo;
+				ShaderUniformInfo Value = Activator.CreateInstance(Prop.PropertyType, shaderProgram.Handle, Prop.Name, UniformLocation, UniformSize, UniformType, UniformLocation > -1) as ShaderUniformInfo;
 				Prop.SetValue(shaderProgram.Variables, Value);
 				shaderProgram.Uniforms.Add(Prop.Name, Value);
 			}
@@ -132,9 +132,9 @@ private void ExtractEffects(string EffectFile, string FullSource, Dictionary<str
 					throw new Exception($"VertexAttributeInfo {typeof(T).FullName}.{Prop.Name} is not decorated with the 'VertexAttrib' Attribute, which is necessary for some metadata as it cannot be determined by the shader itself.");
 				}
 				VertexAttribPointerType VertexAttribPointerType = Attribute.VertexAttribPointerType;
-				VertexAttributeInfo Value = Activator.CreateInstance(Prop.PropertyType, shaderProgram.Handle, Prop.Name, AttribIndex > -1, AttribIndex, Size, AttribType, VertexAttribPointerType, false) as VertexAttributeInfo;
+				ShaderAttributeInfo Value = Activator.CreateInstance(Prop.PropertyType, shaderProgram.Handle, Prop.Name, AttribIndex > -1, AttribIndex, Size, AttribType, VertexAttribPointerType, false) as ShaderAttributeInfo;
 				Prop.SetValue(shaderProgram.Variables, Value);
-				shaderProgram.VertexAttributes.Add(Prop.Name, Value);
+				shaderProgram.Attributes.Add(Prop.Name, Value);
 			}
 
 		}
diff --git a/ObjectTK.Extensions/Shaders/ShaderExtensions.cs b/ObjectTK.Extensions/Shaders/ShaderExtensions.cs
index 7a3f1d6..c490109 100644
--- a/ObjectTK.Extensions/Shaders/ShaderExtensions.cs
+++ b/ObjectTK.Extensions/Shaders/ShaderExtensions.cs
@@ -4,17 +4,17 @@
 namespace ObjectTK.Extensions.Shaders {
 
 	public static class ShaderFactory {
-		public static VertexShaderStage CreateVertexShader(string Source) {
-			int Handle = GL.CreateShader(ShaderType.VertexShader);
-			GL.ShaderSource(Handle, Source);
-			GL.CompileShader(Handle);
-			return new VertexShaderStage(Handle, Source);
+		public static ShaderStage CreateVertexShader(string Source) {
+			int handle = GL.CreateShader(ShaderType.VertexShader);
+			GL.ShaderSource(handle, Source);
+			GL.CompileShader(handle);
+			return new ShaderStage(ShaderType.VertexShader, handle, Source);
 		}
-		public static FragmentShaderStage CreateFragmentShader(string Source) {
-			int Handle = GL.CreateShader(ShaderType.FragmentShader);
-			GL.ShaderSource(Handle, Source);
-			GL.CompileShader(Handle);
-			return new FragmentShaderStage(Handle, Source);
+		public static ShaderStage CreateFragmentShader(string Source) {
+			int handle = GL.CreateShader(ShaderType.FragmentShader);
+			GL.ShaderSource(handle, Source);
+			GL.CompileShader(handle);
+			return new ShaderStage(ShaderType.FragmentShader, handle, Source);
 		}
 	}
 
diff --git a/ObjectTK.Extensions/Variables/UniformInfoExtensions.cs b/ObjectTK.Extensions/Variables/UniformInfoExtensions.cs
index 1415caa..8e128ef 100644
--- a/ObjectTK.Extensions/Variables/UniformInfoExtensions.cs
+++ b/ObjectTK.Extensions/Variables/UniformInfoExtensions.cs
@@ -8,17 +8,17 @@
 namespace ObjectTK.Extensions.Variables {
 	public static class UniformInfoExtensions {
 
-		public static void Set<T>(this UniformInfo<T> Uniform, T Value) {
-			Uniform.SetAction?.Invoke(Uniform.Location, Value);
+		public static void Set<T>(this ShaderUniformInfo<T> shaderUniform, T Value) {
+			shaderUniform.SetAction?.Invoke(shaderUniform.Location, Value);
 		}
 	}
 
-	public class UniformInfo<T> : UniformInfo {
+	public class ShaderUniformInfo<T> : ShaderUniformInfo {
 
 		internal Action<int, T> SetAction;
 
-		public UniformInfo(int ProgramHandle, string Name, int Location, int UniformSize, ActiveUniformType UniformType, bool Active) :
-			base(ProgramHandle, Name, Location, UniformSize, UniformType, Active) {
+		public ShaderUniformInfo(int ProgramHandle, string Name, int Location, int UniformSize, ActiveUniformType UniformType, bool Active) :
+			base(Name, Location, UniformSize, UniformType) {
 			SetAction = UniformSetAction.FindAction<T>();
 		}
 
diff --git a/ObjectTK.Extensions/Variables/VertexAttributeInfoExtensions.cs b/ObjectTK.Extensions/Variables/VertexAttributeInfoExtensions.cs
index ee15434..acfd3ae 100644
--- a/ObjectTK.Extensions/Variables/VertexAttributeInfoExtensions.cs
+++ b/ObjectTK.Extensions/Variables/VertexAttributeInfoExtensions.cs
@@ -7,12 +7,12 @@ public static class VertexAttributeInfoExtensions {
 
 
 	}
-
-	public class VertexAttributeInfo<T> : VertexAttributeInfo {
-		public VertexAttributeInfo(int ProgramHandle, string Name, bool Active, int Index, int Components, ActiveAttribType ActiveAttribType, VertexAttribPointerType VertexAttribPointerType, bool Normalized) :
-			base(ProgramHandle, Name, Active, Index, Components, ActiveAttribType, VertexAttribPointerType, Normalized) {
-		}
-	}
+	//
+	// public class ShaderAttributeInfo<T> : ShaderAttributeInfo {
+	// 	public ShaderAttributeInfo(int ProgramHandle, string Name, bool Active, int Index, int Components, ActiveAttribType ActiveAttribType, VertexAttribPointerType VertexAttribPointerType, bool Normalized) :
+	// 		base(Name, Active, Index, Components, ActiveAttribType, VertexAttribPointerType, Normalized) {
+	// 	}
+	// }
 
 	[AttributeUsage(AttributeTargets.Property)]
 	public class VertexAttribAttribute : Attribute {

From 5b1c907b6c349c00f49aff92b52c54bbe22b578a Mon Sep 17 00:00:00 2001
From: varon <varon-github@outlook.com>
Date: Tue, 10 Nov 2020 12:03:13 +0200
Subject: [PATCH 17/52] Basic drawing

---
 Examples/Examples/HelloTriangle.cs            |  61 +++---
 .../Examples/HelloTriangleWithExtensions.cs   |   4 +-
 ObjectTK.Data/Buffers/Buffer.cs               | 106 +++++++++-
 ObjectTK.Data/Buffers/VertexArrayObject.cs    |   9 +-
 ObjectTK.Data/GLFactory.cs                    | 199 ++++++++++++++++++
 ObjectTK.Data/Shaders/ShaderCompiler.cs       |   3 -
 6 files changed, 334 insertions(+), 48 deletions(-)
 create mode 100644 ObjectTK.Data/GLFactory.cs

diff --git a/Examples/Examples/HelloTriangle.cs b/Examples/Examples/HelloTriangle.cs
index f018c91..57b51a0 100644
--- a/Examples/Examples/HelloTriangle.cs
+++ b/Examples/Examples/HelloTriangle.cs
@@ -2,6 +2,7 @@
 using System;
 using System.Collections.Generic;
 using System.Drawing;
+using ObjectTK.Data;
 using ObjectTK.Data.Buffers;
 using ObjectTK.Data.Shaders;
 using ObjectTK.Data.Variables;
@@ -12,13 +13,13 @@
 namespace Examples.Examples {
 
 	[ExampleProject("Hello Triangle")]
-	public class HelloTriangle : ExampleWindow {
+	public sealed class HelloTriangle : ExampleWindow {
 
-		private ShaderProgram ShaderProgram;
-		private Buffer<Vector3> VBO;
-		private VertexArrayObject VAO;
+		private ShaderProgram _shaderProgram;
+		private Buffer<Vector3> _vbo;
+		private VertexArrayObject _vao;
 
-		private readonly string VertSource = @"
+		private const string VertSource = @"
 				#version 330 core
 
 				uniform mat4 ModelViewProjectionMatrix;
@@ -28,7 +29,8 @@ void main(void) {
 					gl_Position = ModelViewProjectionMatrix * vec4(InPosition, 1.0);
 				}
 			";
-		private readonly string FragSource = @"
+
+		private const string FragSource = @"
 				#version 330	
 
 				out vec4 FragColor;
@@ -42,47 +44,40 @@ void main()
 		protected override void OnLoad() {
 			base.OnLoad();
 
-			var shaderProgram = ShaderCompiler.VertexFrag("Solid Color", VertSource, FragSource);
+			var shaderProgram = GLFactory.Shader.VertexFrag("Solid Color", VertSource, FragSource);
+			_shaderProgram = shaderProgram;
 			GL.UseProgram(shaderProgram.Handle);
-			ShaderProgram = shaderProgram;
-
+			
+			
 			var vertices = new[] { new Vector3(-1, -1, 0), new Vector3(1, -1, 0), new Vector3(0, 1, 0) };
-
-			VBO = new Buffer<Vector3>(GL.GenBuffer(), 0);
-			VBO.ElementCount = 3;
-			GL.BindBuffer(BufferTarget.ArrayBuffer, VBO.Handle);
-			GL.BufferData(BufferTarget.ArrayBuffer, VBO.ElementSize * VBO.ElementCount, vertices, BufferUsageHint.StaticDraw);
-
-			VAO = new VertexArrayObject(GL.GenVertexArray());
-			GL.BindVertexArray(VAO.Handle);
-			GL.VertexAttribPointer(0, 3, VertexAttribPointerType.Float, false, 3 * sizeof(float), 0);
-			GL.EnableVertexAttribArray(0);
-			GL.BindBuffer(BufferTarget.ArrayBuffer, VBO.Handle);
-
+			_vbo = GLFactory.Buffer.ArrayBuffer("Positions", vertices);
+			_vao = GLFactory.VAO.FromBuffers("Triangle", _vbo);
+			
 			ActiveCamera.Position = new Vector3(0, 0, 3);
 
 			GL.ClearColor(Color.MidnightBlue);
 		}
 
-		private void OnUnload(object sender, EventArgs e) {
-			base.OnUnload();
-
-			GL.DeleteProgram(ShaderProgram.Handle);
-			GL.DeleteVertexArray(VAO.Handle);
-			GL.DeleteBuffer(VBO.Handle);
-		}
-
 		protected override void OnRenderFrame(FrameEventArgs e) {
 			base.OnRenderFrame(e);
 			GL.Viewport(0, 0, Size.X, Size.Y);
 			GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
 
-			Matrix4 MVPMatrix = ActiveCamera.ViewProjectionMatrix;
-			GL.UniformMatrix4(ShaderProgram.Uniforms["ModelViewProjectionMatrix"].Location, false, ref MVPMatrix);
-
-			GL.DrawArrays(PrimitiveType.Triangles, 0, VBO.ElementCount);
+			var mvpMatrix = ActiveCamera.ViewProjectionMatrix;
+			GL.UniformMatrix4(_shaderProgram.Uniforms["ModelViewProjectionMatrix"].Location, false, ref mvpMatrix);
 
+			GL.BindVertexArray(_vao.Handle);
+			GL.DrawArrays(PrimitiveType.Triangles, 0, _vao.ElementCount);
+			GL.BindVertexArray(0);
 			SwapBuffers();
 		}
+		
+		protected override void OnUnload() {
+			base.OnUnload();
+
+			GL.DeleteProgram(_shaderProgram.Handle);
+			GL.DeleteVertexArray(_vao.Handle);
+			GL.DeleteBuffer(_vbo.Handle);
+		}
 	}
 }
diff --git a/Examples/Examples/HelloTriangleWithExtensions.cs b/Examples/Examples/HelloTriangleWithExtensions.cs
index 20d2ab7..79d1ccc 100644
--- a/Examples/Examples/HelloTriangleWithExtensions.cs
+++ b/Examples/Examples/HelloTriangleWithExtensions.cs
@@ -25,10 +25,10 @@ protected override void OnLoad() {
 
             var Vertices = new[] { new Vector3(-1, -1, 0), new Vector3(1, -1, 0), new Vector3(0, 1, 0) };
 
-            VBO = new Buffer<Vector3>(GL.GenBuffer(), 0);
+            VBO = new Buffer<Vector3>("Positions", GL.GenBuffer(), 0);
             VBO.BufferData(BufferTarget.ArrayBuffer, Vertices);
 
-            VAO = new VertexArrayObject(GL.GenVertexArray());
+            VAO = new VertexArrayObject("Triangle", GL.GenVertexArray(), Vertices.Length);
             VAO.BindVertexAttribute(ShaderProgram.Variables.InPosition, VBO);
 
             ActiveCamera.Position = new Vector3(0, 0, 3);
diff --git a/ObjectTK.Data/Buffers/Buffer.cs b/ObjectTK.Data/Buffers/Buffer.cs
index 305a834..42549e6 100644
--- a/ObjectTK.Data/Buffers/Buffer.cs
+++ b/ObjectTK.Data/Buffers/Buffer.cs
@@ -1,24 +1,112 @@
-using OpenTK.Graphics.OpenGL;
+using System;
+using System.Collections.Generic;
+using System.Drawing;
+using OpenTK.Graphics.OpenGL;
 using OpenTK.Mathematics;
-using GL = OpenTK.Graphics.ES11.GL;
 
 namespace ObjectTK.Data.Buffers {
-	
+
 	/// Corresponds to an OpenGL Buffer.
 	/// Typically this is a vertex/index/whatever buffer.
-	public class Buffer<T> where T : unmanaged {
-		
+	public class Buffer {
+		/// The name of this buffer
+		public string Name { get; set; }
 		/// The OpenGL Handle for this.
 		public int Handle { get; }
-		/// Size in bytes of each element in the buffer.
+		/// The GL data type (float, int, etc). (Vector2 -> float)
+		public VertexAttribPointerType AttribType { get; }
+		/// The number of components in each element. (Vector2 -> 2)
+		public int ComponentCount { get; }
+		/// Size in bytes of each element in the buffer (Vector2 -> 8 bytes)
 		public int ElementSize { get; }
-		/// The number of elements in this buffer.
+		/// The number of elements in this buffer. (based on the data set in this buffer)
 		public int ElementCount { get; set; }
 
-		public unsafe Buffer(int handle, int elementCount) {
+		public Buffer(string name, int handle, VertexAttribPointerType attribType, int componentCount, int elementSize, int elementCount) {
+			Name = name;
 			Handle = handle;
-			ElementSize = sizeof(T);
+			AttribType = attribType;
+			ComponentCount = componentCount;
+			ElementSize = elementSize;
 			ElementCount = elementCount;
 		}
 	}
+	
+	internal static class BufferHelper {
+		internal struct TypeToGLInfoCache {
+			public VertexAttribPointerType AttribPointerType;
+			public int ComponentCount;
+
+			public TypeToGLInfoCache(VertexAttribPointerType attribPointerType, int componentCount) {
+				AttribPointerType = attribPointerType;
+				ComponentCount = componentCount;
+			}
+		}
+		
+		private static readonly Dictionary<Type, TypeToGLInfoCache> InfoCache = new Dictionary<Type, TypeToGLInfoCache>();
+
+		private static void Add<T2>(VertexAttribPointerType vapt, int componentCount) {
+			InfoCache[typeof(T2)] = new TypeToGLInfoCache(VertexAttribPointerType.Float, 3);
+		}
+		
+		
+		static BufferHelper() {
+			Add<byte>(VertexAttribPointerType.Byte, 1);
+			Add<sbyte>(VertexAttribPointerType.UnsignedByte, 1);
+
+			Add<Color>(VertexAttribPointerType.UnsignedByte, 4);
+
+			Add<short>(VertexAttribPointerType.Short, 1);
+			Add<ushort>(VertexAttribPointerType.UnsignedShort, 1);
+			
+			Add<uint>(VertexAttribPointerType.UnsignedInt, 1);
+			
+			Add<int>(VertexAttribPointerType.Int, 1);
+			Add<Vector2i>(VertexAttribPointerType.Int, 2);
+			Add<Vector3i>(VertexAttribPointerType.Int, 3);
+			Add<Vector4i>(VertexAttribPointerType.Int, 4);
+
+			Add<Half>(VertexAttribPointerType.HalfFloat, 1);
+			Add<Vector2h>(VertexAttribPointerType.HalfFloat, 2);
+			Add<Vector3h>(VertexAttribPointerType.HalfFloat, 3);
+			Add<Vector4h>(VertexAttribPointerType.HalfFloat, 4);
+			
+			Add<float>(VertexAttribPointerType.Float, 1);
+			Add<Vector2>(VertexAttribPointerType.Float, 2);
+			Add<Vector3>(VertexAttribPointerType.Float, 3);
+			Add<Vector4>(VertexAttribPointerType.Float, 4);
+			Add<Color4>(VertexAttribPointerType.Float, 4);
+			
+			Add<double>(VertexAttribPointerType.Double, 1);
+			Add<Vector2d>(VertexAttribPointerType.Double, 2);
+			Add<Vector3d>(VertexAttribPointerType.Double, 3);
+			Add<Vector4d>(VertexAttribPointerType.Double, 4);
+
+			Add<Quaternion>(VertexAttribPointerType.Float, 4);
+			Add<Quaterniond>(VertexAttribPointerType.Double, 4);
+			
+			// numerics
+
+			Add<System.Numerics.Vector2>(VertexAttribPointerType.Float, 2);
+			Add<System.Numerics.Vector3>(VertexAttribPointerType.Float, 3);
+			Add<System.Numerics.Vector4>(VertexAttribPointerType.Float, 4);
+			
+		}
+
+		internal static TypeToGLInfoCache GetData<T>() {
+			return InfoCache[typeof(T)];
+		}
+	}
+	
+	/// Corresponds to an OpenGL Buffer.
+	/// Typically this is a vertex/index/whatever buffer.
+	/// Strongly typed buffer. This can be upcast to a normal buffer if generic usage is required.
+	public class Buffer<T> : Buffer where T : unmanaged {
+
+
+		public unsafe Buffer(string name, int handle, int elementCount) : base(name, handle, BufferHelper.GetData<T>().AttribPointerType,
+			BufferHelper.GetData<T>().ComponentCount, sizeof(T), elementCount) {
+			
+		}
+	}
 }
diff --git a/ObjectTK.Data/Buffers/VertexArrayObject.cs b/ObjectTK.Data/Buffers/VertexArrayObject.cs
index 301cbe1..268094f 100644
--- a/ObjectTK.Data/Buffers/VertexArrayObject.cs
+++ b/ObjectTK.Data/Buffers/VertexArrayObject.cs
@@ -3,10 +3,17 @@
 	/// An OpenGL Vertex array object.
 	public class VertexArrayObject {
 		
+		/// The name of this object.
+		public string Name { get; }
+		/// The OpenGL handle. Use this to interact with OpenGL.
 		public int Handle { get; }
+		/// The number of elements in this VAO.
+		public int ElementCount { get; }
 
-		public VertexArrayObject(int handle) {
+		public VertexArrayObject(string name, int handle, int elementCount) {
+			Name = name;
 			Handle = handle;
+			ElementCount = elementCount;
 		}
 	}
 }
diff --git a/ObjectTK.Data/GLFactory.cs b/ObjectTK.Data/GLFactory.cs
new file mode 100644
index 0000000..f2bba1b
--- /dev/null
+++ b/ObjectTK.Data/GLFactory.cs
@@ -0,0 +1,199 @@
+using System;
+using System.ComponentModel;
+using JetBrains.Annotations;
+using ObjectTK.Data.Buffers;
+using ObjectTK.Data.Internal;
+using ObjectTK.Data.Shaders;
+using OpenTK.Graphics.OpenGL;
+using OpenTK.Mathematics;
+using Buffer = ObjectTK.Data.Buffers.Buffer;
+
+namespace ObjectTK.Data {
+
+    namespace Internal {
+        
+        [EditorBrowsable(EditorBrowsableState.Advanced)]
+        public sealed class GLShaderFactory {
+            public static GLShaderFactory Instance { get; } = new GLShaderFactory();
+            private GLShaderFactory() { }
+
+            [MustUseReturnValue]
+            [NotNull]
+            public ShaderProgram VertexFrag(string name, string vertexSource, string fragSource) {
+                return ShaderCompiler.VertexFrag(name, vertexSource, fragSource);
+            }
+            
+            // Hide the default members of this object for a cleaner API.
+            
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            public override bool Equals(object obj)
+            {
+                // ReSharper disable once BaseObjectEqualsIsObjectEquals
+                return base.Equals(obj);
+            }
+
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            public override int GetHashCode()
+            {
+                // ReSharper disable once BaseObjectGetHashCodeCallInGetHashCode
+                return base.GetHashCode();
+            }
+
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            // ReSharper disable once AnnotateCanBeNullTypeMember
+            public override string ToString()
+            {
+                return base.ToString();
+            }
+
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            [NotNull]
+            public new Type GetType() {
+                return base.GetType();
+            }
+
+        }
+        
+        [EditorBrowsable(EditorBrowsableState.Advanced)]
+        public sealed class GLBufferFactory {
+            public static GLBufferFactory Instance { get; } = new GLBufferFactory();
+            private GLBufferFactory() { }
+            
+            // Hide the default members of this object for a cleaner API.
+            
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            public override bool Equals(object obj)
+            {
+                // ReSharper disable once BaseObjectEqualsIsObjectEquals
+                return base.Equals(obj);
+            }
+
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            public override int GetHashCode()
+            {
+                // ReSharper disable once BaseObjectGetHashCodeCallInGetHashCode
+                return base.GetHashCode();
+            }
+
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            // ReSharper disable once AnnotateCanBeNullTypeMember
+            public override string ToString()
+            {
+                return base.ToString();
+            }
+            
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            [NotNull]
+            // ReSharper disable once UnusedMember.Global
+            public new Type GetType() {
+                return base.GetType();
+            }
+
+
+            [NotNull]
+            [MustUseReturnValue]
+            public Buffer<Vector3> ArrayBuffer<T>(string name, [NotNull] T[] vertices, BufferUsageHint usageHint = BufferUsageHint.StaticDraw) where T: unmanaged {
+                var vbo = GL.GenBuffer();
+                var label = $"Buffer: {name}";
+                GL.ObjectLabel(ObjectLabelIdentifier.Buffer, vbo,label.Length, label);
+                GL.BindBuffer(BufferTarget.ArrayBuffer, vbo);
+                int elemSize;
+                unsafe {
+                    elemSize = sizeof(T);
+                }
+                GL.BufferData(BufferTarget.ArrayBuffer, elemSize * vertices.Length, vertices, usageHint);
+                GL.BindBuffer(BufferTarget.ArrayBuffer, 0);
+                return new Buffer<Vector3>(name, vbo, vertices.Length);
+            }
+        }
+    
+    
+        [EditorBrowsable(EditorBrowsableState.Advanced)]
+        public sealed class GLVertexArrayObjectFactory {
+            public static GLVertexArrayObjectFactory Instance { get; } = new GLVertexArrayObjectFactory();
+            private GLVertexArrayObjectFactory() { }
+            
+            // Hide the default members of this object for a cleaner API.
+            
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            public override bool Equals(object obj)
+            {
+                // ReSharper disable once BaseObjectEqualsIsObjectEquals
+                return base.Equals(obj);
+            }
+
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            public override int GetHashCode()
+            {
+                // ReSharper disable once BaseObjectGetHashCodeCallInGetHashCode
+                return base.GetHashCode();
+            }
+
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            // ReSharper disable once AnnotateCanBeNullTypeMember
+            public override string ToString()
+            {
+                return base.ToString();
+            }
+            
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            [NotNull]
+            // ReSharper disable once UnusedMember.Global
+            public new Type GetType() {
+                return base.GetType();
+            }
+
+            [NotNull]
+            [MustUseReturnValue]
+            public VertexArrayObject FromBuffers([NotNull] string name, [NotNull] params Buffer[] buffers) {
+                var length = buffers[0].ElementCount;
+                #if DEBUG
+                for (int i = 0; i < buffers.Length; i++) {
+                    var b = buffers[i];
+                    if (b.ElementCount != length) {
+                        throw new ArgumentException($"The provided buffers must have the same number of elements.\n" +
+                                                    $"The buffer {b.Name} with length {b.ElementCount} did not match the expected length of {length}");
+                    }
+                }
+                #endif
+                
+                
+                
+                var vao = GL.GenVertexArray();
+                var label = $"VertexArray: {name}";
+                GL.ObjectLabel(ObjectLabelIdentifier.VertexArray,vao, name.Length, label);
+                GL.BindVertexArray(vao);
+                for (int i = 0; i < buffers.Length; i++) {
+                    var buffer = buffers[i];
+                    GL.BindBuffer(BufferTarget.ArrayBuffer, buffer.Handle);
+                    GL.EnableVertexAttribArray(i);
+                    GL.VertexAttribPointer(i, buffer.ComponentCount, buffer.AttribType, false, buffer.ElementSize,0);
+                }
+                // clean up:
+                GL.BindBuffer(BufferTarget.ArrayBuffer, 0);
+                GL.BindVertexArray(0);
+                
+                return new VertexArrayObject(name, vao, length);
+            }
+
+
+        }
+
+    }
+
+    /// Top-level class responsible for creating all OpenGL objects.
+    /// ------
+    /// Usage: GLFactory.Shader.VertexFrag() 
+    public static class GLFactory {
+
+        public static readonly GLShaderFactory Shader = GLShaderFactory.Instance;
+        public static readonly GLBufferFactory Buffer = GLBufferFactory.Instance;
+        public static readonly GLVertexArrayObjectFactory VertexArrayObject = GLVertexArrayObjectFactory.Instance;
+        /// Alias for VertexArrayObject
+        // ReSharper disable once InconsistentNaming
+        public static readonly GLVertexArrayObjectFactory VAO = VertexArrayObject;
+
+    }
+    
+    
+}
diff --git a/ObjectTK.Data/Shaders/ShaderCompiler.cs b/ObjectTK.Data/Shaders/ShaderCompiler.cs
index 049be0b..8c310f7 100644
--- a/ObjectTK.Data/Shaders/ShaderCompiler.cs
+++ b/ObjectTK.Data/Shaders/ShaderCompiler.cs
@@ -8,7 +8,6 @@ namespace ObjectTK.Data.Shaders {
     
     public static class ShaderCompiler {
         
-        
         /// Helper method that compiles a shader stage (part of a ShaderProgram) or throws an exception if failure occurs.
         [MustUseReturnValue]
         [NotNull]
@@ -30,8 +29,6 @@ public static ShaderStage CompileShaderStage(ShaderType shaderType, string name,
             return new ShaderStage(shaderType, handle, source);
         }
         
-        
-        /// Shader Handle (int) -> ShaderProgram class.
         [NotNull]
         [MustUseReturnValue]
         public static ShaderProgram Introspect(int prog, ShaderStage[] stages) {

From d7b869280c59be07f60980701fa5696e4bcfdcd2 Mon Sep 17 00:00:00 2001
From: varon <varon-github@outlook.com>
Date: Tue, 10 Nov 2020 13:06:34 +0200
Subject: [PATCH 18/52] Add 2D camera abstraction

---
 Examples/Entry.cs                             |  82 ++++++-----
 .../ExtensionPrograms/BasicProgram.cs         |  17 ++-
 Examples/Examples/HelloTriangle.cs            | 134 ++++++++++--------
 ObjectTK.Data/Camera2D.cs                     |  41 ++++++
 ObjectTK.Data/GLFactory.cs                    |   5 +-
 ObjectTK.Data/Transform2D.cs                  |  14 ++
 ObjectTK.Tools/Cameras/Camera.cs              |   7 +-
 7 files changed, 185 insertions(+), 115 deletions(-)
 create mode 100644 ObjectTK.Data/Camera2D.cs
 create mode 100644 ObjectTK.Data/Transform2D.cs

diff --git a/Examples/Entry.cs b/Examples/Entry.cs
index c203a1b..6cd3b01 100644
--- a/Examples/Entry.cs
+++ b/Examples/Entry.cs
@@ -1,47 +1,45 @@
-using OpenTK.Windowing.Desktop;
-using System;
-using System.Collections.Generic;
+using System;
 using System.Linq;
 using System.Reflection;
+using Examples.Examples;
+using OpenTK.Windowing.Desktop;
 
 namespace Examples {
-	class Entry {
-		static void Main(string[] args) {
-
-			var Examples = Assembly.GetExecutingAssembly().GetTypes()
-				.Where(_ => _ != typeof(ExampleWindow) && typeof(ExampleWindow).IsAssignableFrom(_))
-				.Select(Type => 
-				new {
-					Caption = Type.GetCustomAttributes<ExampleProjectAttribute>(false).FirstOrDefault()?.Caption ?? nameof(Type),
-					Type = Type
-				}).ToArray();
-
-			while (PromptForExample(out Type Example)) {
-				using (var ExampleWindow = (GameWindow)Activator.CreateInstance(Example)) {
-					ExampleWindow.Run();
-				}
-			}
-
-			bool PromptForExample(out Type Example) {
-				Example = null;
-				int Count = 1;
-				Console.WriteLine("Select example: ");
-
-				foreach (var Pair in Examples) {
-					Console.WriteLine($"{Count++} - {Pair.Caption}");
-				}
-
-				string input = Console.ReadLine();
-				if (int.TryParse(input, out int Selection) && Selection - 1 >= 0 && Selection - 1 < Examples.Length) {
-					Example = Examples[Selection - 1].Type;
-					return true;
-				}
-
-				return false;
-			}
-
-
-		}
-
-	}
+    internal class Entry {
+        private static void Main(string[] args) {
+            using var gw = new HelloTriangle();
+            gw.Run();
+            //
+            // var Examples = Assembly.GetExecutingAssembly().GetTypes()
+            //     .Where(_ => _ != typeof(ExampleWindow) && typeof(ExampleWindow).IsAssignableFrom(_))
+            //     .Select(Type =>
+            //         new {
+            //             Caption = Type.GetCustomAttributes<ExampleProjectAttribute>(false).FirstOrDefault()?.Caption ?? nameof(Type), Type
+            //         }).ToArray();
+            //
+            // while (PromptForExample(out var Example)) {
+            //     using (var ExampleWindow = (GameWindow) Activator.CreateInstance(Example)) {
+            //         ExampleWindow.Run();
+            //     }
+            // }
+            //
+            // bool PromptForExample(out Type Example) {
+            //     Example = null;
+            //     var Count = 1;
+            //     Console.WriteLine("Select example: ");
+            //
+            //     foreach (var Pair in Examples) {
+            //         Console.WriteLine($"{Count++} - {Pair.Caption}");
+            //     }
+            //
+            //     var input = Console.ReadLine();
+            //     if (int.TryParse(input, out var Selection) && Selection - 1 >= 0 && Selection - 1 < Examples.Length) {
+            //         Example = Examples[Selection - 1].Type;
+            //         return true;
+            //     }
+            //
+            //     return false;
+            // }
+        }
+    }
 }
diff --git a/Examples/Examples/ExtensionPrograms/BasicProgram.cs b/Examples/Examples/ExtensionPrograms/BasicProgram.cs
index 344a269..334bffb 100644
--- a/Examples/Examples/ExtensionPrograms/BasicProgram.cs
+++ b/Examples/Examples/ExtensionPrograms/BasicProgram.cs
@@ -1,16 +1,15 @@
 using ObjectTK.Data.Variables;
 using ObjectTK.Extensions.Shaders;
 using ObjectTK.Extensions.Variables;
-using OpenTK.Graphics.OpenGL;
 using OpenTK.Mathematics;
 
 namespace Examples.Examples.Programs {
+    [VertexShaderSource("BasicShader.Vertex")]
+    [FragmentShaderSource("BasicShader.Fragment")]
+    public class BasicProgram {
+        [VertexAttrib()]
+        public ShaderAttributeInfo InPosition { get; set; }
 
-	[VertexShaderSource("BasicShader.Vertex")]
-	[FragmentShaderSource("BasicShader.Fragment")]
-	public class BasicProgram {
-		[VertexAttrib(VertexAttribPointerType.Float)]
-		public ShaderAttributeInfo InPosition { get; set; }
-		public ShaderUniformInfo<Matrix4> ModelViewProjectionMatrix { get; set; }
-	}
-}
+        public ShaderUniformInfo<Matrix4> ModelViewProjectionMatrix { get; set; }
+    }
+}
\ No newline at end of file
diff --git a/Examples/Examples/HelloTriangle.cs b/Examples/Examples/HelloTriangle.cs
index 57b51a0..a9ef2a0 100644
--- a/Examples/Examples/HelloTriangle.cs
+++ b/Examples/Examples/HelloTriangle.cs
@@ -1,83 +1,103 @@
-
-using System;
-using System.Collections.Generic;
-using System.Drawing;
+using System.Drawing;
 using ObjectTK.Data;
 using ObjectTK.Data.Buffers;
 using ObjectTK.Data.Shaders;
-using ObjectTK.Data.Variables;
 using OpenTK.Graphics.OpenGL;
 using OpenTK.Mathematics;
 using OpenTK.Windowing.Common;
+using OpenTK.Windowing.Desktop;
 
 namespace Examples.Examples {
-
-	[ExampleProject("Hello Triangle")]
-	public sealed class HelloTriangle : ExampleWindow {
-
-		private ShaderProgram _shaderProgram;
-		private Buffer<Vector3> _vbo;
-		private VertexArrayObject _vao;
-
-		private const string VertSource = @"
+    internal static class ShaderSource {
+        public const string Vertex = @"
 				#version 330 core
 
 				uniform mat4 ModelViewProjectionMatrix;
+
 				layout(location = 0) in vec3 InPosition;
+				layout(location = 1) in vec4 InColor;
+
+
+				out vec4 VColor;
 
 				void main(void) {
 					gl_Position = ModelViewProjectionMatrix * vec4(InPosition, 1.0);
+					VColor = InColor;
 				}
 			";
 
-		private const string FragSource = @"
-				#version 330	
+        public const string Fragment = @"
+				#version 330
+	
+				in vec4 VColor;
 
 				out vec4 FragColor;
 
 				void main()
 				{
-					FragColor = vec4(1);
+					FragColor = VColor;
 				}
 			";
-
-		protected override void OnLoad() {
-			base.OnLoad();
-
-			var shaderProgram = GLFactory.Shader.VertexFrag("Solid Color", VertSource, FragSource);
-			_shaderProgram = shaderProgram;
-			GL.UseProgram(shaderProgram.Handle);
-			
-			
-			var vertices = new[] { new Vector3(-1, -1, 0), new Vector3(1, -1, 0), new Vector3(0, 1, 0) };
-			_vbo = GLFactory.Buffer.ArrayBuffer("Positions", vertices);
-			_vao = GLFactory.VAO.FromBuffers("Triangle", _vbo);
-			
-			ActiveCamera.Position = new Vector3(0, 0, 3);
-
-			GL.ClearColor(Color.MidnightBlue);
-		}
-
-		protected override void OnRenderFrame(FrameEventArgs e) {
-			base.OnRenderFrame(e);
-			GL.Viewport(0, 0, Size.X, Size.Y);
-			GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
-
-			var mvpMatrix = ActiveCamera.ViewProjectionMatrix;
-			GL.UniformMatrix4(_shaderProgram.Uniforms["ModelViewProjectionMatrix"].Location, false, ref mvpMatrix);
-
-			GL.BindVertexArray(_vao.Handle);
-			GL.DrawArrays(PrimitiveType.Triangles, 0, _vao.ElementCount);
-			GL.BindVertexArray(0);
-			SwapBuffers();
-		}
-		
-		protected override void OnUnload() {
-			base.OnUnload();
-
-			GL.DeleteProgram(_shaderProgram.Handle);
-			GL.DeleteVertexArray(_vao.Handle);
-			GL.DeleteBuffer(_vbo.Handle);
-		}
-	}
+    }
+    
+    [ExampleProject("Hello Triangle")]
+    public sealed class HelloTriangle : GameWindow {
+
+        private ShaderProgram _shaderProgram;
+        private VertexArrayObject _vao;
+        private Buffer<Vector3> _positionsVbo;
+        private Buffer<Color4> _colorsVbo;
+        private readonly Camera2D _camera = new Camera2D();
+
+        public HelloTriangle()
+            : base(new GameWindowSettings(), new NativeWindowSettings {Size = new Vector2i(800, 600), Title = "Hello Triangle (Basic)"}) { }
+
+        protected override void OnLoad() {
+            base.OnLoad();
+
+            // create the shader program
+            _shaderProgram = GLFactory.Shader.VertexFrag("Vertex Color", ShaderSource.Vertex, ShaderSource.Fragment);
+            
+            // create the triangle to draw
+            var positions = new[] {new Vector3(-1, -1, 0), new Vector3(1, -1, 0), new Vector3(0, 1, 0)};
+            var colors = new[] {Color4.Cornsilk, Color4.OrangeRed, Color4.DarkOliveGreen};
+            _positionsVbo = GLFactory.Buffer.ArrayBuffer("Positions", positions);
+            _colorsVbo = GLFactory.Buffer.ArrayBuffer("Colors", colors);
+            _vao = GLFactory.VAO.FromBuffers("Triangle", _positionsVbo, _colorsVbo);
+        }
+
+        protected override void OnRenderFrame(FrameEventArgs e) {
+            base.OnRenderFrame(e);
+            // set up the viewport and camera (if the screen size has changed).
+            GL.Viewport(0, 0, Size.X, Size.Y);
+            _camera.AspectRatio = (float) Size.X / Size.Y;
+            
+            // clear the screen
+            GL.ClearColor(Color.MidnightBlue);
+            GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
+            
+            
+            // set up the shader and the uniforms
+            GL.UseProgram(_shaderProgram.Handle);
+            var mvpMatrix = _camera.ViewProjection;
+            GL.UniformMatrix4(_shaderProgram.Uniforms["ModelViewProjectionMatrix"].Location, false, ref mvpMatrix);
+
+            // draw the triangle
+            GL.BindVertexArray(_vao.Handle);
+            GL.DrawArrays(PrimitiveType.Triangles, 0, _vao.ElementCount);
+            GL.BindVertexArray(0);
+            
+            // swap to display on the screen
+            SwapBuffers();
+        }
+
+        protected override void OnUnload() {
+            base.OnUnload();
+
+            GL.DeleteProgram(_shaderProgram.Handle);
+            GL.DeleteVertexArray(_vao.Handle);
+            GL.DeleteBuffer(_positionsVbo.Handle);
+        }
+    }
 }
+	
diff --git a/ObjectTK.Data/Camera2D.cs b/ObjectTK.Data/Camera2D.cs
new file mode 100644
index 0000000..0187b03
--- /dev/null
+++ b/ObjectTK.Data/Camera2D.cs
@@ -0,0 +1,41 @@
+using OpenTK.Mathematics;
+
+namespace ObjectTK.Data {
+    public class Camera2D {
+        public Transform2D Transform { get; } = new Transform2D();
+
+        /// The near clipping plane for this camera.
+        public int NearClip { get; set; } = 1;
+
+        /// The far clipping plane for this camera.
+        public int FarClip { get; set; } = 100;
+
+
+        /// The number of units covered in the vertical of this camera.
+        public float VerticalSize { get; set; } = 10;
+
+        /// Given by viewport/screen width/height<br/>
+        /// The aspect ratio of the viewport. This should match the window or viewport's aspect ratio.
+        /// This is used to derive the horizontal size from the vertical height.
+        /// <see cref="VerticalSize" />
+        public float AspectRatio { get; set; } = 1;
+
+        public Vector2 Position {
+            get => Transform.Position;
+            set => Transform.Position = value;
+        }
+
+        public float Rotation {
+            get => Transform.Rotation;
+            set => Transform.Rotation = value;
+        }
+
+        public float HorizontalSize => VerticalSize * AspectRatio;
+
+        public Matrix4 Projection => Matrix4.CreateOrthographic(HorizontalSize, VerticalSize, NearClip, FarClip);
+
+        public Matrix4 View => Matrix4.CreateRotationZ(Rotation) * Matrix4.CreateTranslation(Position.X, Position.Y, -10);
+
+        public Matrix4 ViewProjection => View * Projection;
+    }
+}
diff --git a/ObjectTK.Data/GLFactory.cs b/ObjectTK.Data/GLFactory.cs
index f2bba1b..39376b7 100644
--- a/ObjectTK.Data/GLFactory.cs
+++ b/ObjectTK.Data/GLFactory.cs
@@ -92,7 +92,7 @@ public override string ToString()
 
             [NotNull]
             [MustUseReturnValue]
-            public Buffer<Vector3> ArrayBuffer<T>(string name, [NotNull] T[] vertices, BufferUsageHint usageHint = BufferUsageHint.StaticDraw) where T: unmanaged {
+            public Buffer<T> ArrayBuffer<T>(string name, [NotNull] T[] vertices, BufferUsageHint usageHint = BufferUsageHint.StaticDraw) where T: unmanaged {
                 var vbo = GL.GenBuffer();
                 var label = $"Buffer: {name}";
                 GL.ObjectLabel(ObjectLabelIdentifier.Buffer, vbo,label.Length, label);
@@ -103,7 +103,7 @@ public Buffer<Vector3> ArrayBuffer<T>(string name, [NotNull] T[] vertices, Buffe
                 }
                 GL.BufferData(BufferTarget.ArrayBuffer, elemSize * vertices.Length, vertices, usageHint);
                 GL.BindBuffer(BufferTarget.ArrayBuffer, 0);
-                return new Buffer<Vector3>(name, vbo, vertices.Length);
+                return new Buffer<T>(name, vbo, vertices.Length);
             }
         }
     
@@ -176,7 +176,6 @@ public VertexArrayObject FromBuffers([NotNull] string name, [NotNull] params Buf
                 return new VertexArrayObject(name, vao, length);
             }
 
-
         }
 
     }
diff --git a/ObjectTK.Data/Transform2D.cs b/ObjectTK.Data/Transform2D.cs
new file mode 100644
index 0000000..54878c6
--- /dev/null
+++ b/ObjectTK.Data/Transform2D.cs
@@ -0,0 +1,14 @@
+using OpenTK.Mathematics;
+
+namespace ObjectTK.Data {
+    public class Transform2D {
+        
+        /// The position of this object on the X/Y plane.
+        public Vector2 Position { get; set; }
+        /// [DEGREES]. The orientation of this object, clockwise about the Z Axis (through the screen).<br/>
+        /// 0 degrees = pointing up to the top of the screen.<br/>
+        /// 90 degrees = pointing to the right of the screen.<br/>
+        /// etc.
+        public float Rotation { get; set; }
+    }
+}
diff --git a/ObjectTK.Tools/Cameras/Camera.cs b/ObjectTK.Tools/Cameras/Camera.cs
index e6ecd09..e1a1e2b 100644
--- a/ObjectTK.Tools/Cameras/Camera.cs
+++ b/ObjectTK.Tools/Cameras/Camera.cs
@@ -27,8 +27,7 @@ public class Camera {
 		public float FarClippingPlaneDistance { get; set; } = 1000.0f;
 
 		public Ray GetPickingRay(Vector2 MousePosition) {
-
-			Matrix4 UnViewProjectionMatrix = Matrix4.Invert(ViewProjectionMatrix);
+			Matrix4 unViewProjectionMatrix = Matrix4.Invert(ViewProjectionMatrix);
 
 			Vector3 Near = Vector3.Unproject(
 				new Vector3(MousePosition.X, Viewport.Size.Y - MousePosition.Y, NearClippingPlaneDistance),
@@ -38,7 +37,7 @@ public Ray GetPickingRay(Vector2 MousePosition) {
 				Viewport.Size.Y,
 				NearClippingPlaneDistance,
 				FarClippingPlaneDistance,
-				UnViewProjectionMatrix);
+				unViewProjectionMatrix);
 
 			Vector3 Far = Vector3.Unproject(
 				new Vector3(MousePosition.X, Viewport.Size.Y - MousePosition.Y, FarClippingPlaneDistance),
@@ -48,7 +47,7 @@ public Ray GetPickingRay(Vector2 MousePosition) {
 				Viewport.Size.Y,
 				NearClippingPlaneDistance,
 				FarClippingPlaneDistance,
-				UnViewProjectionMatrix);
+				unViewProjectionMatrix);
 
 			Vector3 Direction = (Far - Near).Normalized();
 

From b970c4d7319e78623f0deb24c20bd7bf02c5a667 Mon Sep 17 00:00:00 2001
From: varon <varon-github@outlook.com>
Date: Tue, 10 Nov 2020 13:10:19 +0200
Subject: [PATCH 19/52] Adjust root namespace for data package

---
 ObjectTK.Data/ObjectTK.Data.csproj | 1 +
 1 file changed, 1 insertion(+)

diff --git a/ObjectTK.Data/ObjectTK.Data.csproj b/ObjectTK.Data/ObjectTK.Data.csproj
index dcadcac..5834461 100644
--- a/ObjectTK.Data/ObjectTK.Data.csproj
+++ b/ObjectTK.Data/ObjectTK.Data.csproj
@@ -3,6 +3,7 @@
   <PropertyGroup>
     <TargetFramework>netcoreapp3.1</TargetFramework>
     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+    <RootNamespace>ObjectTK</RootNamespace>
   </PropertyGroup>
 
   <ItemGroup>

From 54330afa4cbff9af24a1de6c12a7fc5bdc143393 Mon Sep 17 00:00:00 2001
From: varon <varon-github@outlook.com>
Date: Tue, 10 Nov 2020 13:19:24 +0200
Subject: [PATCH 20/52] Reoriganize and simplify packages

---
 Examples/Examples.csproj                         |  3 ++-
 .../Examples/ExtensionPrograms/BasicProgram.cs   |  4 ++--
 Examples/Examples/HelloTriangle.cs               |  8 ++++----
 Examples/Examples/HelloTriangleWithExtensions.cs |  7 ++++---
 {ObjectTK.Data => ObjectTK.2D}/Camera2D.cs       |  2 +-
 ObjectTK.2D/ObjectTK.2D.csproj                   | 16 ++++++++++++++++
 {ObjectTK.Data => ObjectTK.2D}/Transform2D.cs    |  2 +-
 .../AttributeExtensions.cs                       |  2 +-
 {ObjectTK.Data => ObjectTK.Core}/GLFactory.cs    | 15 +++++++--------
 .../GLObjects}/Buffer.cs                         |  2 +-
 .../GLObjects}/ShaderAttributeInfo.cs            |  2 +-
 .../GLObjects}/ShaderProgram.cs                  |  6 +++---
 .../GLObjects}/ShaderStage.cs                    |  2 +-
 .../GLObjects}/ShaderUniformInfo.cs              |  2 +-
 .../GLObjects}/Textures.cs                       |  4 ++--
 .../GLObjects/VertexArray.cs                     |  6 +++---
 .../ObjectTK.Core.csproj                         |  0
 ObjectTK.Core/Shaders/Material.cs                |  5 +++++
 .../Shaders/ShaderCompiler.cs                    |  4 ++--
 ObjectTK.Data/Shaders/Material.cs                |  9 ---------
 ObjectTK.Extensions/Buffers/BufferExtensions.cs  |  2 +-
 .../Buffers/VertexArrayExtensions.cs             | 11 +++++------
 ObjectTK.Extensions/ObjectTK.Extensions.csproj   |  2 +-
 ObjectTK.Extensions/Shaders/Material.cs          |  2 +-
 ObjectTK.Extensions/Shaders/ProgramExtensions.cs |  6 +++---
 ObjectTK.Extensions/Shaders/ProgramFactory.cs    |  6 +++---
 ObjectTK.Extensions/Shaders/ShaderExtensions.cs  |  3 ++-
 .../Variables/UniformInfoExtensions.cs           |  4 ++--
 .../Variables/VertexAttributeInfoExtensions.cs   |  3 +--
 ObjectTK.Tools/ObjectTK.Tools.csproj             |  2 +-
 ObjectTK.sln                                     |  8 +++++++-
 31 files changed, 84 insertions(+), 66 deletions(-)
 rename {ObjectTK.Data => ObjectTK.2D}/Camera2D.cs (98%)
 create mode 100644 ObjectTK.2D/ObjectTK.2D.csproj
 rename {ObjectTK.Data => ObjectTK.2D}/Transform2D.cs (94%)
 rename {ObjectTK.Data => ObjectTK.Core}/AttributeExtensions.cs (98%)
 rename {ObjectTK.Data => ObjectTK.Core}/GLFactory.cs (95%)
 rename {ObjectTK.Data/Buffers => ObjectTK.Core/GLObjects}/Buffer.cs (99%)
 rename {ObjectTK.Data/Variables => ObjectTK.Core/GLObjects}/ShaderAttributeInfo.cs (95%)
 rename {ObjectTK.Data/Shaders => ObjectTK.Core/GLObjects}/ShaderProgram.cs (88%)
 rename {ObjectTK.Data/Shaders => ObjectTK.Core/GLObjects}/ShaderStage.cs (91%)
 rename {ObjectTK.Data/Variables => ObjectTK.Core/GLObjects}/ShaderUniformInfo.cs (95%)
 rename {ObjectTK.Data/Textures => ObjectTK.Core/GLObjects}/Textures.cs (99%)
 rename ObjectTK.Data/Buffers/VertexArrayObject.cs => ObjectTK.Core/GLObjects/VertexArray.cs (70%)
 rename ObjectTK.Data/ObjectTK.Data.csproj => ObjectTK.Core/ObjectTK.Core.csproj (100%)
 create mode 100644 ObjectTK.Core/Shaders/Material.cs
 rename {ObjectTK.Data => ObjectTK.Core}/Shaders/ShaderCompiler.cs (98%)
 delete mode 100644 ObjectTK.Data/Shaders/Material.cs

diff --git a/Examples/Examples.csproj b/Examples/Examples.csproj
index 8f2985b..79f5b38 100644
--- a/Examples/Examples.csproj
+++ b/Examples/Examples.csproj
@@ -6,7 +6,8 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <ProjectReference Include="..\ObjectTK.Data\ObjectTK.Data.csproj" />
+    <ProjectReference Include="..\ObjectTK.2D\ObjectTK.2D.csproj" />
+    <ProjectReference Include="..\ObjectTK.Core\ObjectTK.Core.csproj" />
     <ProjectReference Include="..\ObjectTK.Extensions\ObjectTK.Extensions.csproj" />
     <ProjectReference Include="..\ObjectTK.Tools\ObjectTK.Tools.csproj" />
   </ItemGroup>
diff --git a/Examples/Examples/ExtensionPrograms/BasicProgram.cs b/Examples/Examples/ExtensionPrograms/BasicProgram.cs
index 334bffb..ef2aee9 100644
--- a/Examples/Examples/ExtensionPrograms/BasicProgram.cs
+++ b/Examples/Examples/ExtensionPrograms/BasicProgram.cs
@@ -1,6 +1,6 @@
-using ObjectTK.Data.Variables;
-using ObjectTK.Extensions.Shaders;
+using ObjectTK.Extensions.Shaders;
 using ObjectTK.Extensions.Variables;
+using ObjectTK.GLObjects;
 using OpenTK.Mathematics;
 
 namespace Examples.Examples.Programs {
diff --git a/Examples/Examples/HelloTriangle.cs b/Examples/Examples/HelloTriangle.cs
index a9ef2a0..18d1634 100644
--- a/Examples/Examples/HelloTriangle.cs
+++ b/Examples/Examples/HelloTriangle.cs
@@ -1,7 +1,7 @@
 using System.Drawing;
-using ObjectTK.Data;
-using ObjectTK.Data.Buffers;
-using ObjectTK.Data.Shaders;
+using ObjectTK;
+using ObjectTK.GLObjects;
+using ObjectTK.Shaders;
 using OpenTK.Graphics.OpenGL;
 using OpenTK.Mathematics;
 using OpenTK.Windowing.Common;
@@ -44,7 +44,7 @@ void main()
     public sealed class HelloTriangle : GameWindow {
 
         private ShaderProgram _shaderProgram;
-        private VertexArrayObject _vao;
+        private VertexArray _vao;
         private Buffer<Vector3> _positionsVbo;
         private Buffer<Color4> _colorsVbo;
         private readonly Camera2D _camera = new Camera2D();
diff --git a/Examples/Examples/HelloTriangleWithExtensions.cs b/Examples/Examples/HelloTriangleWithExtensions.cs
index 79d1ccc..6c49b48 100644
--- a/Examples/Examples/HelloTriangleWithExtensions.cs
+++ b/Examples/Examples/HelloTriangleWithExtensions.cs
@@ -1,10 +1,11 @@
 using System;
 using System.Drawing;
 using Examples.Examples.Programs;
-using ObjectTK.Data.Buffers;
+using ObjectTK;
 using ObjectTK.Extensions.Buffers;
 using ObjectTK.Extensions.Shaders;
 using ObjectTK.Extensions.Variables;
+using ObjectTK.GLObjects;
 using OpenTK.Graphics.OpenGL;
 using OpenTK.Mathematics;
 using OpenTK.Windowing.Common;
@@ -15,7 +16,7 @@ public class HelloTriangleWithExtensions : ExampleWindow {
 		
         private ShaderProgram<BasicProgram> ShaderProgram;
         private Buffer<Vector3> VBO;
-        private VertexArrayObject VAO;
+        private VertexArray VAO;
 
         protected override void OnLoad() {
             base.OnLoad();
@@ -28,7 +29,7 @@ protected override void OnLoad() {
             VBO = new Buffer<Vector3>("Positions", GL.GenBuffer(), 0);
             VBO.BufferData(BufferTarget.ArrayBuffer, Vertices);
 
-            VAO = new VertexArrayObject("Triangle", GL.GenVertexArray(), Vertices.Length);
+            VAO = new VertexArray("Triangle", GL.GenVertexArray(), Vertices.Length);
             VAO.BindVertexAttribute(ShaderProgram.Variables.InPosition, VBO);
 
             ActiveCamera.Position = new Vector3(0, 0, 3);
diff --git a/ObjectTK.Data/Camera2D.cs b/ObjectTK.2D/Camera2D.cs
similarity index 98%
rename from ObjectTK.Data/Camera2D.cs
rename to ObjectTK.2D/Camera2D.cs
index 0187b03..5eaa40a 100644
--- a/ObjectTK.Data/Camera2D.cs
+++ b/ObjectTK.2D/Camera2D.cs
@@ -1,6 +1,6 @@
 using OpenTK.Mathematics;
 
-namespace ObjectTK.Data {
+namespace ObjectTK._2D {
     public class Camera2D {
         public Transform2D Transform { get; } = new Transform2D();
 
diff --git a/ObjectTK.2D/ObjectTK.2D.csproj b/ObjectTK.2D/ObjectTK.2D.csproj
new file mode 100644
index 0000000..40b390e
--- /dev/null
+++ b/ObjectTK.2D/ObjectTK.2D.csproj
@@ -0,0 +1,16 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+    <PropertyGroup>
+        <TargetFramework>netcoreapp3.1</TargetFramework>
+        <RootNamespace>ObjectTK._2D</RootNamespace>
+    </PropertyGroup>
+
+    <ItemGroup>
+        <PackageReference Include="JetBrains.Annotations" Version="2020.1.0" />
+        <PackageReference Include="OpenTK" Version="4.0.6" />
+    </ItemGroup>
+
+    <ItemGroup>
+      <ProjectReference Include="..\ObjectTK.Core\ObjectTK.Core.csproj" />
+    </ItemGroup>
+</Project>
diff --git a/ObjectTK.Data/Transform2D.cs b/ObjectTK.2D/Transform2D.cs
similarity index 94%
rename from ObjectTK.Data/Transform2D.cs
rename to ObjectTK.2D/Transform2D.cs
index 54878c6..48cf524 100644
--- a/ObjectTK.Data/Transform2D.cs
+++ b/ObjectTK.2D/Transform2D.cs
@@ -1,6 +1,6 @@
 using OpenTK.Mathematics;
 
-namespace ObjectTK.Data {
+namespace ObjectTK._2D {
     public class Transform2D {
         
         /// The position of this object on the X/Y plane.
diff --git a/ObjectTK.Data/AttributeExtensions.cs b/ObjectTK.Core/AttributeExtensions.cs
similarity index 98%
rename from ObjectTK.Data/AttributeExtensions.cs
rename to ObjectTK.Core/AttributeExtensions.cs
index 91a2381..f2dea01 100644
--- a/ObjectTK.Data/AttributeExtensions.cs
+++ b/ObjectTK.Core/AttributeExtensions.cs
@@ -4,7 +4,7 @@
 using VAPT = OpenTK.Graphics.OpenGL.VertexAttribPointerType;
 
 
-namespace ObjectTK.Data {
+namespace ObjectTK {
     public static class AttributeExtensions {
 
         public static VAPT ToVertexAttribPointerType(this AAT attrib) {
diff --git a/ObjectTK.Data/GLFactory.cs b/ObjectTK.Core/GLFactory.cs
similarity index 95%
rename from ObjectTK.Data/GLFactory.cs
rename to ObjectTK.Core/GLFactory.cs
index 39376b7..ff0f5ff 100644
--- a/ObjectTK.Data/GLFactory.cs
+++ b/ObjectTK.Core/GLFactory.cs
@@ -1,14 +1,13 @@
 using System;
 using System.ComponentModel;
 using JetBrains.Annotations;
-using ObjectTK.Data.Buffers;
-using ObjectTK.Data.Internal;
-using ObjectTK.Data.Shaders;
+using ObjectTK.GLObjects;
+using ObjectTK.Internal;
+using ObjectTK.Shaders;
 using OpenTK.Graphics.OpenGL;
-using OpenTK.Mathematics;
-using Buffer = ObjectTK.Data.Buffers.Buffer;
+using Buffer = ObjectTK.GLObjects.Buffer;
 
-namespace ObjectTK.Data {
+namespace ObjectTK {
 
     namespace Internal {
         
@@ -145,7 +144,7 @@ public override string ToString()
 
             [NotNull]
             [MustUseReturnValue]
-            public VertexArrayObject FromBuffers([NotNull] string name, [NotNull] params Buffer[] buffers) {
+            public VertexArray FromBuffers([NotNull] string name, [NotNull] params Buffer[] buffers) {
                 var length = buffers[0].ElementCount;
                 #if DEBUG
                 for (int i = 0; i < buffers.Length; i++) {
@@ -173,7 +172,7 @@ public VertexArrayObject FromBuffers([NotNull] string name, [NotNull] params Buf
                 GL.BindBuffer(BufferTarget.ArrayBuffer, 0);
                 GL.BindVertexArray(0);
                 
-                return new VertexArrayObject(name, vao, length);
+                return new VertexArray(name, vao, length);
             }
 
         }
diff --git a/ObjectTK.Data/Buffers/Buffer.cs b/ObjectTK.Core/GLObjects/Buffer.cs
similarity index 99%
rename from ObjectTK.Data/Buffers/Buffer.cs
rename to ObjectTK.Core/GLObjects/Buffer.cs
index 42549e6..28ebfcd 100644
--- a/ObjectTK.Data/Buffers/Buffer.cs
+++ b/ObjectTK.Core/GLObjects/Buffer.cs
@@ -4,7 +4,7 @@
 using OpenTK.Graphics.OpenGL;
 using OpenTK.Mathematics;
 
-namespace ObjectTK.Data.Buffers {
+namespace ObjectTK.GLObjects {
 
 	/// Corresponds to an OpenGL Buffer.
 	/// Typically this is a vertex/index/whatever buffer.
diff --git a/ObjectTK.Data/Variables/ShaderAttributeInfo.cs b/ObjectTK.Core/GLObjects/ShaderAttributeInfo.cs
similarity index 95%
rename from ObjectTK.Data/Variables/ShaderAttributeInfo.cs
rename to ObjectTK.Core/GLObjects/ShaderAttributeInfo.cs
index 579f148..ee08c5f 100644
--- a/ObjectTK.Data/Variables/ShaderAttributeInfo.cs
+++ b/ObjectTK.Core/GLObjects/ShaderAttributeInfo.cs
@@ -1,6 +1,6 @@
 using OpenTK.Graphics.OpenGL;
 
-namespace ObjectTK.Data.Variables {
+namespace ObjectTK.GLObjects {
 	public class ShaderAttributeInfo {
 		public string Name { get; set; }
 		public int Location { get; set; }
diff --git a/ObjectTK.Data/Shaders/ShaderProgram.cs b/ObjectTK.Core/GLObjects/ShaderProgram.cs
similarity index 88%
rename from ObjectTK.Data/Shaders/ShaderProgram.cs
rename to ObjectTK.Core/GLObjects/ShaderProgram.cs
index 0bd3583..00485ef 100644
--- a/ObjectTK.Data/Shaders/ShaderProgram.cs
+++ b/ObjectTK.Core/GLObjects/ShaderProgram.cs
@@ -1,7 +1,7 @@
-using ObjectTK.Data.Variables;
-using System.Collections.Generic;
+using System.Collections.Generic;
+using ObjectTK.Shaders;
 
-namespace ObjectTK.Data.Shaders {
+namespace ObjectTK.GLObjects {
 
 	/// See: https://www.khronos.org/opengl/wiki/Shader
 	public class ShaderProgram {
diff --git a/ObjectTK.Data/Shaders/ShaderStage.cs b/ObjectTK.Core/GLObjects/ShaderStage.cs
similarity index 91%
rename from ObjectTK.Data/Shaders/ShaderStage.cs
rename to ObjectTK.Core/GLObjects/ShaderStage.cs
index 0ec84f6..4236785 100644
--- a/ObjectTK.Data/Shaders/ShaderStage.cs
+++ b/ObjectTK.Core/GLObjects/ShaderStage.cs
@@ -1,6 +1,6 @@
 using OpenTK.Graphics.OpenGL;
 
-namespace ObjectTK.Data.Shaders {
+namespace ObjectTK.GLObjects {
 	/// https://www.khronos.org/opengl/wiki/Shader#Stages
 	public class ShaderStage {
 		
diff --git a/ObjectTK.Data/Variables/ShaderUniformInfo.cs b/ObjectTK.Core/GLObjects/ShaderUniformInfo.cs
similarity index 95%
rename from ObjectTK.Data/Variables/ShaderUniformInfo.cs
rename to ObjectTK.Core/GLObjects/ShaderUniformInfo.cs
index cb05b47..e8691d1 100644
--- a/ObjectTK.Data/Variables/ShaderUniformInfo.cs
+++ b/ObjectTK.Core/GLObjects/ShaderUniformInfo.cs
@@ -1,6 +1,6 @@
 using OpenTK.Graphics.OpenGL;
 
-namespace ObjectTK.Data.Variables {
+namespace ObjectTK.GLObjects {
 	public class ShaderUniformInfo {
 		//TODO FIXME: Name[] for array uniform variables can be challenging.
 		/// The name of this uniform in the array
diff --git a/ObjectTK.Data/Textures/Textures.cs b/ObjectTK.Core/GLObjects/Textures.cs
similarity index 99%
rename from ObjectTK.Data/Textures/Textures.cs
rename to ObjectTK.Core/GLObjects/Textures.cs
index a5e2528..e743368 100644
--- a/ObjectTK.Data/Textures/Textures.cs
+++ b/ObjectTK.Core/GLObjects/Textures.cs
@@ -1,6 +1,6 @@
 using OpenTK.Graphics.OpenGL;
 
-namespace ObjectTK.Data.Textures {
+namespace ObjectTK.GLObjects {
 	public interface ITexture {
 		int Handle { get; }
 		string Name { get; set; }
@@ -204,4 +204,4 @@ public Texture3D(int Handle, string Name, SizedInternalFormat InternalFormat, in
 			this.MipLevels = MipLevels;
 		}
 	}
-}
\ No newline at end of file
+}
diff --git a/ObjectTK.Data/Buffers/VertexArrayObject.cs b/ObjectTK.Core/GLObjects/VertexArray.cs
similarity index 70%
rename from ObjectTK.Data/Buffers/VertexArrayObject.cs
rename to ObjectTK.Core/GLObjects/VertexArray.cs
index 268094f..749c55e 100644
--- a/ObjectTK.Data/Buffers/VertexArrayObject.cs
+++ b/ObjectTK.Core/GLObjects/VertexArray.cs
@@ -1,7 +1,7 @@
-namespace ObjectTK.Data.Buffers {
+namespace ObjectTK.GLObjects {
 	
 	/// An OpenGL Vertex array object.
-	public class VertexArrayObject {
+	public class VertexArray {
 		
 		/// The name of this object.
 		public string Name { get; }
@@ -10,7 +10,7 @@ public class VertexArrayObject {
 		/// The number of elements in this VAO.
 		public int ElementCount { get; }
 
-		public VertexArrayObject(string name, int handle, int elementCount) {
+		public VertexArray(string name, int handle, int elementCount) {
 			Name = name;
 			Handle = handle;
 			ElementCount = elementCount;
diff --git a/ObjectTK.Data/ObjectTK.Data.csproj b/ObjectTK.Core/ObjectTK.Core.csproj
similarity index 100%
rename from ObjectTK.Data/ObjectTK.Data.csproj
rename to ObjectTK.Core/ObjectTK.Core.csproj
diff --git a/ObjectTK.Core/Shaders/Material.cs b/ObjectTK.Core/Shaders/Material.cs
new file mode 100644
index 0000000..f9301da
--- /dev/null
+++ b/ObjectTK.Core/Shaders/Material.cs
@@ -0,0 +1,5 @@
+namespace ObjectTK.Shaders {
+	public class Material {
+	}
+
+}
diff --git a/ObjectTK.Data/Shaders/ShaderCompiler.cs b/ObjectTK.Core/Shaders/ShaderCompiler.cs
similarity index 98%
rename from ObjectTK.Data/Shaders/ShaderCompiler.cs
rename to ObjectTK.Core/Shaders/ShaderCompiler.cs
index 8c310f7..472abbf 100644
--- a/ObjectTK.Data/Shaders/ShaderCompiler.cs
+++ b/ObjectTK.Core/Shaders/ShaderCompiler.cs
@@ -1,10 +1,10 @@
 using System;
 using System.Collections.Generic;
 using JetBrains.Annotations;
-using ObjectTK.Data.Variables;
+using ObjectTK.GLObjects;
 using OpenTK.Graphics.OpenGL;
 
-namespace ObjectTK.Data.Shaders {
+namespace ObjectTK.Shaders {
     
     public static class ShaderCompiler {
         
diff --git a/ObjectTK.Data/Shaders/Material.cs b/ObjectTK.Data/Shaders/Material.cs
deleted file mode 100644
index 9aed016..0000000
--- a/ObjectTK.Data/Shaders/Material.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace ObjectTK.Data.Shaders {
-	public class Material {
-	}
-
-}
diff --git a/ObjectTK.Extensions/Buffers/BufferExtensions.cs b/ObjectTK.Extensions/Buffers/BufferExtensions.cs
index b085ec5..9305ae8 100644
--- a/ObjectTK.Extensions/Buffers/BufferExtensions.cs
+++ b/ObjectTK.Extensions/Buffers/BufferExtensions.cs
@@ -1,4 +1,4 @@
-using ObjectTK.Data.Buffers;
+using ObjectTK.GLObjects;
 using OpenTK.Graphics.OpenGL;
 
 namespace ObjectTK.Extensions.Buffers {
diff --git a/ObjectTK.Extensions/Buffers/VertexArrayExtensions.cs b/ObjectTK.Extensions/Buffers/VertexArrayExtensions.cs
index 43c7c17..ec51720 100644
--- a/ObjectTK.Extensions/Buffers/VertexArrayExtensions.cs
+++ b/ObjectTK.Extensions/Buffers/VertexArrayExtensions.cs
@@ -1,16 +1,15 @@
-using ObjectTK.Data.Buffers;
+using ObjectTK.GLObjects;
 using OpenTK.Graphics.OpenGL;
-using ObjectTK.Data.Variables;
 
 namespace ObjectTK.Extensions.Buffers {
 	public static class VertexArrayExtensions {
 
-		public static void Bind(this VertexArrayObject vertexArrayObject) {
-			GL.BindVertexArray(vertexArrayObject.Handle);
+		public static void Bind(this VertexArray vertexArray) {
+			GL.BindVertexArray(vertexArray.Handle);
 		}
 
-		public static void BindVertexAttribute<T>(this VertexArrayObject vertexArrayObject, ShaderAttributeInfo shaderAttributeInfo, Buffer<T> Buffer) where T : unmanaged {
-			vertexArrayObject.Bind();
+		public static void BindVertexAttribute<T>(this VertexArray vertexArray, ShaderAttributeInfo shaderAttributeInfo, Buffer<T> Buffer) where T : unmanaged {
+			vertexArray.Bind();
 			GL.VertexAttribPointer(shaderAttributeInfo.Location, Buffer.ElementCount, VertexAttribPointerType.Float, false, Buffer.ElementSize, 0);
 			GL.EnableVertexAttribArray(shaderAttributeInfo.Location);
 			GL.BindBuffer(BufferTarget.ArrayBuffer, Buffer.Handle);
diff --git a/ObjectTK.Extensions/ObjectTK.Extensions.csproj b/ObjectTK.Extensions/ObjectTK.Extensions.csproj
index b215520..1856cfc 100644
--- a/ObjectTK.Extensions/ObjectTK.Extensions.csproj
+++ b/ObjectTK.Extensions/ObjectTK.Extensions.csproj
@@ -5,7 +5,7 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <ProjectReference Include="..\ObjectTK.Data\ObjectTK.Data.csproj" />
+    <ProjectReference Include="..\ObjectTK.Core\ObjectTK.Core.csproj" />
   </ItemGroup>
 
 </Project>
diff --git a/ObjectTK.Extensions/Shaders/Material.cs b/ObjectTK.Extensions/Shaders/Material.cs
index a61e0cf..a005455 100644
--- a/ObjectTK.Extensions/Shaders/Material.cs
+++ b/ObjectTK.Extensions/Shaders/Material.cs
@@ -20,7 +20,7 @@
 
 using System;
 using System.Reflection;
-using ObjectTK.Data.Variables;
+using ObjectTK.GLObjects;
 
 namespace ObjectTK.Extensions.Shaders {
     public class Material<T> where T : class, new() {
diff --git a/ObjectTK.Extensions/Shaders/ProgramExtensions.cs b/ObjectTK.Extensions/Shaders/ProgramExtensions.cs
index 3d76803..53eab25 100644
--- a/ObjectTK.Extensions/Shaders/ProgramExtensions.cs
+++ b/ObjectTK.Extensions/Shaders/ProgramExtensions.cs
@@ -1,9 +1,9 @@
-using ObjectTK.Data.Shaders;
-using ObjectTK.Data.Variables;
-using ObjectTK.Extensions.Variables;
+using ObjectTK.Extensions.Variables;
 using OpenTK.Graphics.OpenGL;
 using System.Collections.Generic;
 using System.Reflection;
+using ObjectTK.GLObjects;
+using ObjectTK.Shaders;
 
 namespace ObjectTK.Extensions.Shaders {
 
diff --git a/ObjectTK.Extensions/Shaders/ProgramFactory.cs b/ObjectTK.Extensions/Shaders/ProgramFactory.cs
index 0a7536a..ef66ac0 100644
--- a/ObjectTK.Extensions/Shaders/ProgramFactory.cs
+++ b/ObjectTK.Extensions/Shaders/ProgramFactory.cs
@@ -1,6 +1,4 @@
-using ObjectTK.Data.Shaders;
-using ObjectTK.Data.Variables;
-using ObjectTK.Extensions.Variables;
+using ObjectTK.Extensions.Variables;
 using OpenTK.Graphics.OpenGL;
 using System;
 using System.Collections.Generic;
@@ -8,6 +6,8 @@
 using System.Linq;
 using System.Reflection;
 using System.Text;
+using ObjectTK.GLObjects;
+using ObjectTK.Shaders;
 
 namespace ObjectTK.Extensions.Shaders {
 	public class ProgramFactory {
diff --git a/ObjectTK.Extensions/Shaders/ShaderExtensions.cs b/ObjectTK.Extensions/Shaders/ShaderExtensions.cs
index c490109..a1cb186 100644
--- a/ObjectTK.Extensions/Shaders/ShaderExtensions.cs
+++ b/ObjectTK.Extensions/Shaders/ShaderExtensions.cs
@@ -1,4 +1,5 @@
-using ObjectTK.Data.Shaders;
+using ObjectTK.GLObjects;
+using ObjectTK.Shaders;
 using OpenTK.Graphics.OpenGL;
 
 namespace ObjectTK.Extensions.Shaders {
diff --git a/ObjectTK.Extensions/Variables/UniformInfoExtensions.cs b/ObjectTK.Extensions/Variables/UniformInfoExtensions.cs
index 8e128ef..d660995 100644
--- a/ObjectTK.Extensions/Variables/UniformInfoExtensions.cs
+++ b/ObjectTK.Extensions/Variables/UniformInfoExtensions.cs
@@ -1,9 +1,9 @@
-using ObjectTK.Data.Variables;
-using OpenTK.Graphics.OpenGL;
+using OpenTK.Graphics.OpenGL;
 using OpenTK.Mathematics;
 using System;
 using System.Collections.Generic;
 using System.Drawing;
+using ObjectTK.GLObjects;
 
 namespace ObjectTK.Extensions.Variables {
 	public static class UniformInfoExtensions {
diff --git a/ObjectTK.Extensions/Variables/VertexAttributeInfoExtensions.cs b/ObjectTK.Extensions/Variables/VertexAttributeInfoExtensions.cs
index acfd3ae..5bc6fe4 100644
--- a/ObjectTK.Extensions/Variables/VertexAttributeInfoExtensions.cs
+++ b/ObjectTK.Extensions/Variables/VertexAttributeInfoExtensions.cs
@@ -1,5 +1,4 @@
-using ObjectTK.Data.Variables;
-using OpenTK.Graphics.OpenGL;
+using OpenTK.Graphics.OpenGL;
 using System;
 
 namespace ObjectTK.Extensions.Variables {
diff --git a/ObjectTK.Tools/ObjectTK.Tools.csproj b/ObjectTK.Tools/ObjectTK.Tools.csproj
index 82bc7cb..d09f5fc 100644
--- a/ObjectTK.Tools/ObjectTK.Tools.csproj
+++ b/ObjectTK.Tools/ObjectTK.Tools.csproj
@@ -9,7 +9,7 @@
   </ItemGroup>
 
   <ItemGroup>
-    <ProjectReference Include="..\ObjectTK.Data\ObjectTK.Data.csproj" />
+    <ProjectReference Include="..\ObjectTK.Core\ObjectTK.Core.csproj" />
   </ItemGroup>
 
 </Project>
diff --git a/ObjectTK.sln b/ObjectTK.sln
index 17403b1..5e23e1a 100644
--- a/ObjectTK.sln
+++ b/ObjectTK.sln
@@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
 # Visual Studio Version 16
 VisualStudioVersion = 16.0.30114.105
 MinimumVisualStudioVersion = 10.0.40219.1
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ObjectTK.Data", "ObjectTK.Data\ObjectTK.Data.csproj", "{163450BD-24E0-4C3E-A310-3AEBD709E065}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ObjectTK.Core", "ObjectTK.Core\ObjectTK.Core.csproj", "{163450BD-24E0-4C3E-A310-3AEBD709E065}"
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ObjectTK.Extensions", "ObjectTK.Extensions\ObjectTK.Extensions.csproj", "{DE7D5895-068B-42CF-B69A-D5E3AAE7E43B}"
 EndProject
@@ -11,6 +11,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Examples", "Examples\Exampl
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ObjectTK.Tools", "ObjectTK.Tools\ObjectTK.Tools.csproj", "{B5DCB84E-3E09-4F37-B06E-68565756624F}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ObjectTK.2D", "ObjectTK.2D\ObjectTK.2D.csproj", "{77B6C529-5DD8-4A76-8577-E50F0F06F7F2}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
@@ -33,6 +35,10 @@ Global
 		{B5DCB84E-3E09-4F37-B06E-68565756624F}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{B5DCB84E-3E09-4F37-B06E-68565756624F}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{B5DCB84E-3E09-4F37-B06E-68565756624F}.Release|Any CPU.Build.0 = Release|Any CPU
+		{77B6C529-5DD8-4A76-8577-E50F0F06F7F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{77B6C529-5DD8-4A76-8577-E50F0F06F7F2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{77B6C529-5DD8-4A76-8577-E50F0F06F7F2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{77B6C529-5DD8-4A76-8577-E50F0F06F7F2}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE

From 51cf183a3b0cc960e27c777d1389bf4b31805a60 Mon Sep 17 00:00:00 2001
From: varon <varon-github@outlook.com>
Date: Tue, 10 Nov 2020 13:21:24 +0200
Subject: [PATCH 21/52] move all files into src directory

---
 ObjectTK.sln                                           | 10 +++++-----
 .../Examples}/Data/Shaders/BasicShader.glsl            |  0
 {Examples => src/Examples}/Entry.cs                    |  0
 {Examples => src/Examples}/ExampleProjectAttribute.cs  |  0
 {Examples => src/Examples}/ExampleWindow.cs            |  0
 {Examples => src/Examples}/Examples.csproj             |  0
 .../Examples/ExtensionPrograms/BasicProgram.cs         |  0
 {Examples => src/Examples}/Examples/HelloTriangle.cs   |  0
 .../Examples}/Examples/HelloTriangleWithExtensions.cs  |  0
 {ObjectTK.2D => src/ObjectTK.2D}/Camera2D.cs           |  0
 {ObjectTK.2D => src/ObjectTK.2D}/ObjectTK.2D.csproj    |  0
 {ObjectTK.2D => src/ObjectTK.2D}/Transform2D.cs        |  0
 .../ObjectTK.Core}/AttributeExtensions.cs              |  0
 {ObjectTK.Core => src/ObjectTK.Core}/GLFactory.cs      |  0
 .../ObjectTK.Core}/GLObjects/Buffer.cs                 |  0
 .../ObjectTK.Core}/GLObjects/ShaderAttributeInfo.cs    |  0
 .../ObjectTK.Core}/GLObjects/ShaderProgram.cs          |  0
 .../ObjectTK.Core}/GLObjects/ShaderStage.cs            |  0
 .../ObjectTK.Core}/GLObjects/ShaderUniformInfo.cs      |  0
 .../ObjectTK.Core}/GLObjects/Textures.cs               |  0
 .../ObjectTK.Core}/GLObjects/VertexArray.cs            |  0
 .../ObjectTK.Core}/ObjectTK.Core.csproj                |  0
 .../ObjectTK.Core}/Shaders/Material.cs                 |  0
 .../ObjectTK.Core}/Shaders/ShaderCompiler.cs           |  0
 .../ObjectTK.Extensions}/Buffers/BufferExtensions.cs   |  0
 .../Buffers/VertexArrayExtensions.cs                   |  0
 .../ObjectTK.Extensions}/ObjectTK.Extensions.csproj    |  0
 .../ObjectTK.Extensions}/Shaders/Material.cs           |  0
 .../ObjectTK.Extensions}/Shaders/ProgramExtensions.cs  |  0
 .../ObjectTK.Extensions}/Shaders/ProgramFactory.cs     |  0
 .../ObjectTK.Extensions}/Shaders/ShaderAttributes.cs   |  0
 .../ObjectTK.Extensions}/Shaders/ShaderExtensions.cs   |  0
 .../Variables/UniformInfoExtensions.cs                 |  0
 .../Variables/VertexAttributeInfoExtensions.cs         |  0
 {ObjectTK.Tools => src/ObjectTK.Tools}/CameraWindow.cs |  0
 .../ObjectTK.Tools}/Cameras/Camera.cs                  |  0
 .../ObjectTK.Tools}/Cameras/CameraProjectionType.cs    |  0
 {ObjectTK.Tools => src/ObjectTK.Tools}/FrameTimer.cs   |  0
 .../ObjectTK.Tools}/Mathematics/Ray.cs                 |  0
 .../ObjectTK.Tools}/ObjectTK.Tools.csproj              |  0
 40 files changed, 5 insertions(+), 5 deletions(-)
 rename {Examples => src/Examples}/Data/Shaders/BasicShader.glsl (100%)
 rename {Examples => src/Examples}/Entry.cs (100%)
 rename {Examples => src/Examples}/ExampleProjectAttribute.cs (100%)
 rename {Examples => src/Examples}/ExampleWindow.cs (100%)
 rename {Examples => src/Examples}/Examples.csproj (100%)
 rename {Examples => src/Examples}/Examples/ExtensionPrograms/BasicProgram.cs (100%)
 rename {Examples => src/Examples}/Examples/HelloTriangle.cs (100%)
 rename {Examples => src/Examples}/Examples/HelloTriangleWithExtensions.cs (100%)
 rename {ObjectTK.2D => src/ObjectTK.2D}/Camera2D.cs (100%)
 rename {ObjectTK.2D => src/ObjectTK.2D}/ObjectTK.2D.csproj (100%)
 rename {ObjectTK.2D => src/ObjectTK.2D}/Transform2D.cs (100%)
 rename {ObjectTK.Core => src/ObjectTK.Core}/AttributeExtensions.cs (100%)
 rename {ObjectTK.Core => src/ObjectTK.Core}/GLFactory.cs (100%)
 rename {ObjectTK.Core => src/ObjectTK.Core}/GLObjects/Buffer.cs (100%)
 rename {ObjectTK.Core => src/ObjectTK.Core}/GLObjects/ShaderAttributeInfo.cs (100%)
 rename {ObjectTK.Core => src/ObjectTK.Core}/GLObjects/ShaderProgram.cs (100%)
 rename {ObjectTK.Core => src/ObjectTK.Core}/GLObjects/ShaderStage.cs (100%)
 rename {ObjectTK.Core => src/ObjectTK.Core}/GLObjects/ShaderUniformInfo.cs (100%)
 rename {ObjectTK.Core => src/ObjectTK.Core}/GLObjects/Textures.cs (100%)
 rename {ObjectTK.Core => src/ObjectTK.Core}/GLObjects/VertexArray.cs (100%)
 rename {ObjectTK.Core => src/ObjectTK.Core}/ObjectTK.Core.csproj (100%)
 rename {ObjectTK.Core => src/ObjectTK.Core}/Shaders/Material.cs (100%)
 rename {ObjectTK.Core => src/ObjectTK.Core}/Shaders/ShaderCompiler.cs (100%)
 rename {ObjectTK.Extensions => src/ObjectTK.Extensions}/Buffers/BufferExtensions.cs (100%)
 rename {ObjectTK.Extensions => src/ObjectTK.Extensions}/Buffers/VertexArrayExtensions.cs (100%)
 rename {ObjectTK.Extensions => src/ObjectTK.Extensions}/ObjectTK.Extensions.csproj (100%)
 rename {ObjectTK.Extensions => src/ObjectTK.Extensions}/Shaders/Material.cs (100%)
 rename {ObjectTK.Extensions => src/ObjectTK.Extensions}/Shaders/ProgramExtensions.cs (100%)
 rename {ObjectTK.Extensions => src/ObjectTK.Extensions}/Shaders/ProgramFactory.cs (100%)
 rename {ObjectTK.Extensions => src/ObjectTK.Extensions}/Shaders/ShaderAttributes.cs (100%)
 rename {ObjectTK.Extensions => src/ObjectTK.Extensions}/Shaders/ShaderExtensions.cs (100%)
 rename {ObjectTK.Extensions => src/ObjectTK.Extensions}/Variables/UniformInfoExtensions.cs (100%)
 rename {ObjectTK.Extensions => src/ObjectTK.Extensions}/Variables/VertexAttributeInfoExtensions.cs (100%)
 rename {ObjectTK.Tools => src/ObjectTK.Tools}/CameraWindow.cs (100%)
 rename {ObjectTK.Tools => src/ObjectTK.Tools}/Cameras/Camera.cs (100%)
 rename {ObjectTK.Tools => src/ObjectTK.Tools}/Cameras/CameraProjectionType.cs (100%)
 rename {ObjectTK.Tools => src/ObjectTK.Tools}/FrameTimer.cs (100%)
 rename {ObjectTK.Tools => src/ObjectTK.Tools}/Mathematics/Ray.cs (100%)
 rename {ObjectTK.Tools => src/ObjectTK.Tools}/ObjectTK.Tools.csproj (100%)

diff --git a/ObjectTK.sln b/ObjectTK.sln
index 5e23e1a..4d0b457 100644
--- a/ObjectTK.sln
+++ b/ObjectTK.sln
@@ -3,15 +3,15 @@ Microsoft Visual Studio Solution File, Format Version 12.00
 # Visual Studio Version 16
 VisualStudioVersion = 16.0.30114.105
 MinimumVisualStudioVersion = 10.0.40219.1
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ObjectTK.Core", "ObjectTK.Core\ObjectTK.Core.csproj", "{163450BD-24E0-4C3E-A310-3AEBD709E065}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ObjectTK.Core", "src\ObjectTK.Core\ObjectTK.Core.csproj", "{163450BD-24E0-4C3E-A310-3AEBD709E065}"
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ObjectTK.Extensions", "ObjectTK.Extensions\ObjectTK.Extensions.csproj", "{DE7D5895-068B-42CF-B69A-D5E3AAE7E43B}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ObjectTK.Extensions", "src\ObjectTK.Extensions\ObjectTK.Extensions.csproj", "{DE7D5895-068B-42CF-B69A-D5E3AAE7E43B}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Examples", "Examples\Examples.csproj", "{AF523BFF-E1A2-45CF-B9CE-F14F3A16536E}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Examples", "src\Examples\Examples.csproj", "{AF523BFF-E1A2-45CF-B9CE-F14F3A16536E}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ObjectTK.Tools", "ObjectTK.Tools\ObjectTK.Tools.csproj", "{B5DCB84E-3E09-4F37-B06E-68565756624F}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ObjectTK.Tools", "src\ObjectTK.Tools\ObjectTK.Tools.csproj", "{B5DCB84E-3E09-4F37-B06E-68565756624F}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ObjectTK.2D", "ObjectTK.2D\ObjectTK.2D.csproj", "{77B6C529-5DD8-4A76-8577-E50F0F06F7F2}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ObjectTK.2D", "src\ObjectTK.2D\ObjectTK.2D.csproj", "{77B6C529-5DD8-4A76-8577-E50F0F06F7F2}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
diff --git a/Examples/Data/Shaders/BasicShader.glsl b/src/Examples/Data/Shaders/BasicShader.glsl
similarity index 100%
rename from Examples/Data/Shaders/BasicShader.glsl
rename to src/Examples/Data/Shaders/BasicShader.glsl
diff --git a/Examples/Entry.cs b/src/Examples/Entry.cs
similarity index 100%
rename from Examples/Entry.cs
rename to src/Examples/Entry.cs
diff --git a/Examples/ExampleProjectAttribute.cs b/src/Examples/ExampleProjectAttribute.cs
similarity index 100%
rename from Examples/ExampleProjectAttribute.cs
rename to src/Examples/ExampleProjectAttribute.cs
diff --git a/Examples/ExampleWindow.cs b/src/Examples/ExampleWindow.cs
similarity index 100%
rename from Examples/ExampleWindow.cs
rename to src/Examples/ExampleWindow.cs
diff --git a/Examples/Examples.csproj b/src/Examples/Examples.csproj
similarity index 100%
rename from Examples/Examples.csproj
rename to src/Examples/Examples.csproj
diff --git a/Examples/Examples/ExtensionPrograms/BasicProgram.cs b/src/Examples/Examples/ExtensionPrograms/BasicProgram.cs
similarity index 100%
rename from Examples/Examples/ExtensionPrograms/BasicProgram.cs
rename to src/Examples/Examples/ExtensionPrograms/BasicProgram.cs
diff --git a/Examples/Examples/HelloTriangle.cs b/src/Examples/Examples/HelloTriangle.cs
similarity index 100%
rename from Examples/Examples/HelloTriangle.cs
rename to src/Examples/Examples/HelloTriangle.cs
diff --git a/Examples/Examples/HelloTriangleWithExtensions.cs b/src/Examples/Examples/HelloTriangleWithExtensions.cs
similarity index 100%
rename from Examples/Examples/HelloTriangleWithExtensions.cs
rename to src/Examples/Examples/HelloTriangleWithExtensions.cs
diff --git a/ObjectTK.2D/Camera2D.cs b/src/ObjectTK.2D/Camera2D.cs
similarity index 100%
rename from ObjectTK.2D/Camera2D.cs
rename to src/ObjectTK.2D/Camera2D.cs
diff --git a/ObjectTK.2D/ObjectTK.2D.csproj b/src/ObjectTK.2D/ObjectTK.2D.csproj
similarity index 100%
rename from ObjectTK.2D/ObjectTK.2D.csproj
rename to src/ObjectTK.2D/ObjectTK.2D.csproj
diff --git a/ObjectTK.2D/Transform2D.cs b/src/ObjectTK.2D/Transform2D.cs
similarity index 100%
rename from ObjectTK.2D/Transform2D.cs
rename to src/ObjectTK.2D/Transform2D.cs
diff --git a/ObjectTK.Core/AttributeExtensions.cs b/src/ObjectTK.Core/AttributeExtensions.cs
similarity index 100%
rename from ObjectTK.Core/AttributeExtensions.cs
rename to src/ObjectTK.Core/AttributeExtensions.cs
diff --git a/ObjectTK.Core/GLFactory.cs b/src/ObjectTK.Core/GLFactory.cs
similarity index 100%
rename from ObjectTK.Core/GLFactory.cs
rename to src/ObjectTK.Core/GLFactory.cs
diff --git a/ObjectTK.Core/GLObjects/Buffer.cs b/src/ObjectTK.Core/GLObjects/Buffer.cs
similarity index 100%
rename from ObjectTK.Core/GLObjects/Buffer.cs
rename to src/ObjectTK.Core/GLObjects/Buffer.cs
diff --git a/ObjectTK.Core/GLObjects/ShaderAttributeInfo.cs b/src/ObjectTK.Core/GLObjects/ShaderAttributeInfo.cs
similarity index 100%
rename from ObjectTK.Core/GLObjects/ShaderAttributeInfo.cs
rename to src/ObjectTK.Core/GLObjects/ShaderAttributeInfo.cs
diff --git a/ObjectTK.Core/GLObjects/ShaderProgram.cs b/src/ObjectTK.Core/GLObjects/ShaderProgram.cs
similarity index 100%
rename from ObjectTK.Core/GLObjects/ShaderProgram.cs
rename to src/ObjectTK.Core/GLObjects/ShaderProgram.cs
diff --git a/ObjectTK.Core/GLObjects/ShaderStage.cs b/src/ObjectTK.Core/GLObjects/ShaderStage.cs
similarity index 100%
rename from ObjectTK.Core/GLObjects/ShaderStage.cs
rename to src/ObjectTK.Core/GLObjects/ShaderStage.cs
diff --git a/ObjectTK.Core/GLObjects/ShaderUniformInfo.cs b/src/ObjectTK.Core/GLObjects/ShaderUniformInfo.cs
similarity index 100%
rename from ObjectTK.Core/GLObjects/ShaderUniformInfo.cs
rename to src/ObjectTK.Core/GLObjects/ShaderUniformInfo.cs
diff --git a/ObjectTK.Core/GLObjects/Textures.cs b/src/ObjectTK.Core/GLObjects/Textures.cs
similarity index 100%
rename from ObjectTK.Core/GLObjects/Textures.cs
rename to src/ObjectTK.Core/GLObjects/Textures.cs
diff --git a/ObjectTK.Core/GLObjects/VertexArray.cs b/src/ObjectTK.Core/GLObjects/VertexArray.cs
similarity index 100%
rename from ObjectTK.Core/GLObjects/VertexArray.cs
rename to src/ObjectTK.Core/GLObjects/VertexArray.cs
diff --git a/ObjectTK.Core/ObjectTK.Core.csproj b/src/ObjectTK.Core/ObjectTK.Core.csproj
similarity index 100%
rename from ObjectTK.Core/ObjectTK.Core.csproj
rename to src/ObjectTK.Core/ObjectTK.Core.csproj
diff --git a/ObjectTK.Core/Shaders/Material.cs b/src/ObjectTK.Core/Shaders/Material.cs
similarity index 100%
rename from ObjectTK.Core/Shaders/Material.cs
rename to src/ObjectTK.Core/Shaders/Material.cs
diff --git a/ObjectTK.Core/Shaders/ShaderCompiler.cs b/src/ObjectTK.Core/Shaders/ShaderCompiler.cs
similarity index 100%
rename from ObjectTK.Core/Shaders/ShaderCompiler.cs
rename to src/ObjectTK.Core/Shaders/ShaderCompiler.cs
diff --git a/ObjectTK.Extensions/Buffers/BufferExtensions.cs b/src/ObjectTK.Extensions/Buffers/BufferExtensions.cs
similarity index 100%
rename from ObjectTK.Extensions/Buffers/BufferExtensions.cs
rename to src/ObjectTK.Extensions/Buffers/BufferExtensions.cs
diff --git a/ObjectTK.Extensions/Buffers/VertexArrayExtensions.cs b/src/ObjectTK.Extensions/Buffers/VertexArrayExtensions.cs
similarity index 100%
rename from ObjectTK.Extensions/Buffers/VertexArrayExtensions.cs
rename to src/ObjectTK.Extensions/Buffers/VertexArrayExtensions.cs
diff --git a/ObjectTK.Extensions/ObjectTK.Extensions.csproj b/src/ObjectTK.Extensions/ObjectTK.Extensions.csproj
similarity index 100%
rename from ObjectTK.Extensions/ObjectTK.Extensions.csproj
rename to src/ObjectTK.Extensions/ObjectTK.Extensions.csproj
diff --git a/ObjectTK.Extensions/Shaders/Material.cs b/src/ObjectTK.Extensions/Shaders/Material.cs
similarity index 100%
rename from ObjectTK.Extensions/Shaders/Material.cs
rename to src/ObjectTK.Extensions/Shaders/Material.cs
diff --git a/ObjectTK.Extensions/Shaders/ProgramExtensions.cs b/src/ObjectTK.Extensions/Shaders/ProgramExtensions.cs
similarity index 100%
rename from ObjectTK.Extensions/Shaders/ProgramExtensions.cs
rename to src/ObjectTK.Extensions/Shaders/ProgramExtensions.cs
diff --git a/ObjectTK.Extensions/Shaders/ProgramFactory.cs b/src/ObjectTK.Extensions/Shaders/ProgramFactory.cs
similarity index 100%
rename from ObjectTK.Extensions/Shaders/ProgramFactory.cs
rename to src/ObjectTK.Extensions/Shaders/ProgramFactory.cs
diff --git a/ObjectTK.Extensions/Shaders/ShaderAttributes.cs b/src/ObjectTK.Extensions/Shaders/ShaderAttributes.cs
similarity index 100%
rename from ObjectTK.Extensions/Shaders/ShaderAttributes.cs
rename to src/ObjectTK.Extensions/Shaders/ShaderAttributes.cs
diff --git a/ObjectTK.Extensions/Shaders/ShaderExtensions.cs b/src/ObjectTK.Extensions/Shaders/ShaderExtensions.cs
similarity index 100%
rename from ObjectTK.Extensions/Shaders/ShaderExtensions.cs
rename to src/ObjectTK.Extensions/Shaders/ShaderExtensions.cs
diff --git a/ObjectTK.Extensions/Variables/UniformInfoExtensions.cs b/src/ObjectTK.Extensions/Variables/UniformInfoExtensions.cs
similarity index 100%
rename from ObjectTK.Extensions/Variables/UniformInfoExtensions.cs
rename to src/ObjectTK.Extensions/Variables/UniformInfoExtensions.cs
diff --git a/ObjectTK.Extensions/Variables/VertexAttributeInfoExtensions.cs b/src/ObjectTK.Extensions/Variables/VertexAttributeInfoExtensions.cs
similarity index 100%
rename from ObjectTK.Extensions/Variables/VertexAttributeInfoExtensions.cs
rename to src/ObjectTK.Extensions/Variables/VertexAttributeInfoExtensions.cs
diff --git a/ObjectTK.Tools/CameraWindow.cs b/src/ObjectTK.Tools/CameraWindow.cs
similarity index 100%
rename from ObjectTK.Tools/CameraWindow.cs
rename to src/ObjectTK.Tools/CameraWindow.cs
diff --git a/ObjectTK.Tools/Cameras/Camera.cs b/src/ObjectTK.Tools/Cameras/Camera.cs
similarity index 100%
rename from ObjectTK.Tools/Cameras/Camera.cs
rename to src/ObjectTK.Tools/Cameras/Camera.cs
diff --git a/ObjectTK.Tools/Cameras/CameraProjectionType.cs b/src/ObjectTK.Tools/Cameras/CameraProjectionType.cs
similarity index 100%
rename from ObjectTK.Tools/Cameras/CameraProjectionType.cs
rename to src/ObjectTK.Tools/Cameras/CameraProjectionType.cs
diff --git a/ObjectTK.Tools/FrameTimer.cs b/src/ObjectTK.Tools/FrameTimer.cs
similarity index 100%
rename from ObjectTK.Tools/FrameTimer.cs
rename to src/ObjectTK.Tools/FrameTimer.cs
diff --git a/ObjectTK.Tools/Mathematics/Ray.cs b/src/ObjectTK.Tools/Mathematics/Ray.cs
similarity index 100%
rename from ObjectTK.Tools/Mathematics/Ray.cs
rename to src/ObjectTK.Tools/Mathematics/Ray.cs
diff --git a/ObjectTK.Tools/ObjectTK.Tools.csproj b/src/ObjectTK.Tools/ObjectTK.Tools.csproj
similarity index 100%
rename from ObjectTK.Tools/ObjectTK.Tools.csproj
rename to src/ObjectTK.Tools/ObjectTK.Tools.csproj

From 697afd81a1a581cf2465d40a1887ea7f26185641 Mon Sep 17 00:00:00 2001
From: varon <varon-github@outlook.com>
Date: Tue, 10 Nov 2020 13:22:12 +0200
Subject: [PATCH 22/52] Compile fixes

---
 src/Examples/Examples/HelloTriangle.cs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/Examples/Examples/HelloTriangle.cs b/src/Examples/Examples/HelloTriangle.cs
index 18d1634..e8664c4 100644
--- a/src/Examples/Examples/HelloTriangle.cs
+++ b/src/Examples/Examples/HelloTriangle.cs
@@ -1,7 +1,7 @@
 using System.Drawing;
 using ObjectTK;
+using ObjectTK._2D;
 using ObjectTK.GLObjects;
-using ObjectTK.Shaders;
 using OpenTK.Graphics.OpenGL;
 using OpenTK.Mathematics;
 using OpenTK.Windowing.Common;

From 2884ec5b25a5873a1cceeeff6aa28d77ea98961c Mon Sep 17 00:00:00 2001
From: varon <varon-github@outlook.com>
Date: Tue, 10 Nov 2020 15:06:03 +0200
Subject: [PATCH 23/52] Update to OpenTK 4.1, QOL changes

---
 src/Examples/Examples/HelloTriangle.cs   | 32 +++++++++++++++---------
 src/ObjectTK.2D/ObjectTK.2D.csproj       |  2 +-
 src/ObjectTK.Core/GLFactory.cs           |  2 +-
 src/ObjectTK.Core/ObjectTK.Core.csproj   |  2 +-
 src/ObjectTK.Tools/ObjectTK.Tools.csproj |  2 +-
 5 files changed, 24 insertions(+), 16 deletions(-)

diff --git a/src/Examples/Examples/HelloTriangle.cs b/src/Examples/Examples/HelloTriangle.cs
index e8664c4..6f2858e 100644
--- a/src/Examples/Examples/HelloTriangle.cs
+++ b/src/Examples/Examples/HelloTriangle.cs
@@ -27,22 +27,28 @@ void main(void) {
 			";
 
         public const string Fragment = @"
-				#version 330
-	
-				in vec4 VColor;
+			#version 330
 
-				out vec4 FragColor;
+			in vec4 VColor;
 
-				void main()
-				{
-					FragColor = VColor;
-				}
-			";
+			out vec4 FragColor;
+
+			void main()
+			{
+				FragColor = VColor;
+			}
+		";
     }
     
     [ExampleProject("Hello Triangle")]
     public sealed class HelloTriangle : GameWindow {
 
+	    private static readonly NativeWindowSettings WindowSettings = new NativeWindowSettings {
+		    Size = new Vector2i(800, 600),
+		    Title = "Hello Triangle (Basic)",
+	    };
+	    private static readonly GameWindowSettings GameWindowSettings = new GameWindowSettings();
+	    
         private ShaderProgram _shaderProgram;
         private VertexArray _vao;
         private Buffer<Vector3> _positionsVbo;
@@ -50,11 +56,12 @@ public sealed class HelloTriangle : GameWindow {
         private readonly Camera2D _camera = new Camera2D();
 
         public HelloTriangle()
-            : base(new GameWindowSettings(), new NativeWindowSettings {Size = new Vector2i(800, 600), Title = "Hello Triangle (Basic)"}) { }
+            : base(GameWindowSettings, WindowSettings) {
+        }
 
         protected override void OnLoad() {
             base.OnLoad();
-
+            
             // create the shader program
             _shaderProgram = GLFactory.Shader.VertexFrag("Vertex Color", ShaderSource.Vertex, ShaderSource.Fragment);
             
@@ -63,7 +70,8 @@ protected override void OnLoad() {
             var colors = new[] {Color4.Cornsilk, Color4.OrangeRed, Color4.DarkOliveGreen};
             _positionsVbo = GLFactory.Buffer.ArrayBuffer("Positions", positions);
             _colorsVbo = GLFactory.Buffer.ArrayBuffer("Colors", colors);
-            _vao = GLFactory.VAO.FromBuffers("Triangle", _positionsVbo, _colorsVbo);
+            _vao = GLFactory.VertexArray.FromBuffers("Triangle", _positionsVbo, _colorsVbo);
+
         }
 
         protected override void OnRenderFrame(FrameEventArgs e) {
diff --git a/src/ObjectTK.2D/ObjectTK.2D.csproj b/src/ObjectTK.2D/ObjectTK.2D.csproj
index 40b390e..a7966fa 100644
--- a/src/ObjectTK.2D/ObjectTK.2D.csproj
+++ b/src/ObjectTK.2D/ObjectTK.2D.csproj
@@ -7,7 +7,7 @@
 
     <ItemGroup>
         <PackageReference Include="JetBrains.Annotations" Version="2020.1.0" />
-        <PackageReference Include="OpenTK" Version="4.0.6" />
+        <PackageReference Include="OpenTK" Version="4.1.0" />
     </ItemGroup>
 
     <ItemGroup>
diff --git a/src/ObjectTK.Core/GLFactory.cs b/src/ObjectTK.Core/GLFactory.cs
index ff0f5ff..92d4a40 100644
--- a/src/ObjectTK.Core/GLFactory.cs
+++ b/src/ObjectTK.Core/GLFactory.cs
@@ -189,7 +189,7 @@ public static class GLFactory {
         public static readonly GLVertexArrayObjectFactory VertexArrayObject = GLVertexArrayObjectFactory.Instance;
         /// Alias for VertexArrayObject
         // ReSharper disable once InconsistentNaming
-        public static readonly GLVertexArrayObjectFactory VAO = VertexArrayObject;
+        public static readonly GLVertexArrayObjectFactory VertexArray = VertexArrayObject;
 
     }
     
diff --git a/src/ObjectTK.Core/ObjectTK.Core.csproj b/src/ObjectTK.Core/ObjectTK.Core.csproj
index 5834461..a846987 100644
--- a/src/ObjectTK.Core/ObjectTK.Core.csproj
+++ b/src/ObjectTK.Core/ObjectTK.Core.csproj
@@ -8,7 +8,7 @@
 
   <ItemGroup>
     <PackageReference Include="JetBrains.Annotations" Version="2020.1.0" />
-    <PackageReference Include="OpenTK" Version="4.0.6" />
+    <PackageReference Include="OpenTK" Version="4.1.0" />
   </ItemGroup>
 
 </Project>
diff --git a/src/ObjectTK.Tools/ObjectTK.Tools.csproj b/src/ObjectTK.Tools/ObjectTK.Tools.csproj
index d09f5fc..b3651ea 100644
--- a/src/ObjectTK.Tools/ObjectTK.Tools.csproj
+++ b/src/ObjectTK.Tools/ObjectTK.Tools.csproj
@@ -5,7 +5,7 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <PackageReference Include="OpenTK" Version="4.0.6" />
+    <PackageReference Include="OpenTK" Version="4.1.0" />
   </ItemGroup>
 
   <ItemGroup>

From 9b9438cca67b04538a56b84833363f91d49ab926 Mon Sep 17 00:00:00 2001
From: varon <varon-github@outlook.com>
Date: Tue, 10 Nov 2020 15:52:26 +0200
Subject: [PATCH 24/52] WIP:build system

---
 .config/dotnet-tools.json     |  12 ++
 .paket/Paket.Restore.targets  | 276 ++++++++++++++++++++++++++++
 .paket/paket.bootstrapper.exe | Bin 0 -> 72424 bytes
 .paket/paket.targets          | 130 ++++++++++++++
 README.md                     |  41 +++++
 RELEASE_NOTES.md              |   3 +
 build.cmd                     |   8 +
 build.fsx                     | 294 ++++++++++++++++++++++++++++++
 build.fsx.lock                | 326 ++++++++++++++++++++++++++++++++++
 build.sh                      |  39 ++++
 10 files changed, 1129 insertions(+)
 create mode 100644 .config/dotnet-tools.json
 create mode 100644 .paket/Paket.Restore.targets
 create mode 100644 .paket/paket.bootstrapper.exe
 create mode 100644 .paket/paket.targets
 create mode 100644 README.md
 create mode 100644 RELEASE_NOTES.md
 create mode 100644 build.cmd
 create mode 100644 build.fsx
 create mode 100644 build.fsx.lock
 create mode 100644 build.sh

diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json
new file mode 100644
index 0000000..2d31f95
--- /dev/null
+++ b/.config/dotnet-tools.json
@@ -0,0 +1,12 @@
+{
+  "version": 1,
+  "isRoot": true,
+  "tools": {
+    "fake-cli": {
+      "version": "5.19.0",
+      "commands": [
+        "fake"
+      ]
+    }
+  }
+}
\ No newline at end of file
diff --git a/.paket/Paket.Restore.targets b/.paket/Paket.Restore.targets
new file mode 100644
index 0000000..072e852
--- /dev/null
+++ b/.paket/Paket.Restore.targets
@@ -0,0 +1,276 @@
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <!-- Prevent dotnet template engine to parse this file -->
+  <!--/-:cnd:noEmit-->
+  <PropertyGroup>
+    <!-- make MSBuild track this file for incremental builds. -->
+    <!-- ref https://blogs.msdn.microsoft.com/msbuild/2005/09/26/how-to-ensure-changes-to-a-custom-target-file-prompt-a-rebuild/ -->
+    <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
+    <!-- Mark that this target file has been loaded.  -->
+    <IsPaketRestoreTargetsFileLoaded>true</IsPaketRestoreTargetsFileLoaded>
+    <PaketToolsPath>$(MSBuildThisFileDirectory)</PaketToolsPath>
+    <PaketRootPath>$(MSBuildThisFileDirectory)..\</PaketRootPath>
+    <PaketRestoreCacheFile>$(PaketRootPath)paket-files\paket.restore.cached</PaketRestoreCacheFile>
+    <PaketLockFilePath>$(PaketRootPath)paket.lock</PaketLockFilePath>
+    <MonoPath Condition="'$(MonoPath)' == '' And Exists('/Library/Frameworks/Mono.framework/Commands/mono')">/Library/Frameworks/Mono.framework/Commands/mono</MonoPath>
+    <MonoPath Condition="'$(MonoPath)' == ''">mono</MonoPath>
+    <!-- Paket command -->
+    <PaketExePath Condition=" '$(PaketExePath)' == '' AND Exists('$(PaketRootPath)paket.exe')">$(PaketRootPath)paket.exe</PaketExePath>
+    <PaketExePath Condition=" '$(PaketExePath)' == '' ">$(PaketToolsPath)paket.exe</PaketExePath>
+    <PaketCommand Condition=" '$(OS)' == 'Windows_NT'">"$(PaketExePath)"</PaketCommand>
+    <PaketCommand Condition=" '$(OS)' != 'Windows_NT' ">$(MonoPath) --runtime=v4.0.30319 "$(PaketExePath)"</PaketCommand>
+
+    <!-- .net core fdd -->
+    <_PaketExeExtension>$([System.IO.Path]::GetExtension("$(PaketExePath)"))</_PaketExeExtension>
+    <PaketCommand Condition=" '$(_PaketExeExtension)' == '.dll' ">dotnet "$(PaketExePath)"</PaketCommand>
+
+    <!-- no extension is a shell script -->
+    <PaketCommand Condition=" '$(_PaketExeExtension)' == '' ">"$(PaketExePath)"</PaketCommand>
+
+    <PaketBootStrapperExePath Condition=" '$(PaketBootStrapperExePath)' == '' AND Exists('$(PaketRootPath)paket.bootstrapper.exe')">$(PaketRootPath)paket.bootstrapper.exe</PaketBootStrapperExePath>
+    <PaketBootStrapperExePath Condition=" '$(PaketBootStrapperExePath)' == '' ">$(PaketToolsPath)paket.bootstrapper.exe</PaketBootStrapperExePath>
+    <PaketBootStrapperCommand Condition=" '$(OS)' == 'Windows_NT'">"$(PaketBootStrapperExePath)"</PaketBootStrapperCommand>
+    <PaketBootStrapperCommand Condition=" '$(OS)' != 'Windows_NT' ">$(MonoPath) --runtime=v4.0.30319 "$(PaketBootStrapperExePath)"</PaketBootStrapperCommand>
+
+    <!-- Disable automagic references for F# dotnet sdk -->
+    <!-- This will not do anything for other project types -->
+    <!-- see https://github.com/fsharp/fslang-design/blob/master/RFCs/FS-1032-fsharp-in-dotnet-sdk.md -->
+    <DisableImplicitFSharpCoreReference>true</DisableImplicitFSharpCoreReference>
+    <DisableImplicitSystemValueTupleReference>true</DisableImplicitSystemValueTupleReference>
+  </PropertyGroup>
+
+  <Target Name="PaketRestore" Condition="'$(PaketRestoreDisabled)' != 'True'" BeforeTargets="_GenerateDotnetCliToolReferenceSpecs;_GenerateProjectRestoreGraphPerFramework;_GenerateRestoreGraphWalkPerFramework;CollectPackageReferences" >
+
+    <!-- Step 1 Check if lockfile is properly restored -->
+    <PropertyGroup>
+      <PaketRestoreRequired>true</PaketRestoreRequired>
+      <NoWarn>$(NoWarn);NU1603</NoWarn>
+    </PropertyGroup>
+
+    <!-- Because ReadAllText is slow on osx/linux, try to find shasum and awk -->
+    <PropertyGroup>
+        <PaketRestoreCachedHasher Condition="'$(OS)' != 'Windows_NT' And '$(PaketRestoreCachedHasher)' == '' And Exists('/usr/bin/shasum') And Exists('/usr/bin/awk')">/usr/bin/shasum $(PaketRestoreCacheFile) | /usr/bin/awk '{ print $1 }'</PaketRestoreCachedHasher>
+        <PaketRestoreLockFileHasher Condition="'$(OS)' != 'Windows_NT' And '$(PaketRestoreLockFileHash)' == '' And Exists('/usr/bin/shasum') And Exists('/usr/bin/awk')">/usr/bin/shasum $(PaketLockFilePath) | /usr/bin/awk '{ print $1 }'</PaketRestoreLockFileHasher>
+    </PropertyGroup>
+
+    <!-- If shasum and awk exist get the hashes -->
+    <Exec Condition=" '$(PaketRestoreCachedHasher)' != '' " Command="$(PaketRestoreCachedHasher)" ConsoleToMSBuild='true'>
+        <Output TaskParameter="ConsoleOutput" PropertyName="PaketRestoreCachedHash" />
+    </Exec>
+    <Exec Condition=" '$(PaketRestoreLockFileHasher)' != '' " Command="$(PaketRestoreLockFileHasher)" ConsoleToMSBuild='true'>
+        <Output TaskParameter="ConsoleOutput" PropertyName="PaketRestoreLockFileHash" />
+    </Exec>
+
+    <PropertyGroup Condition="Exists('$(PaketRestoreCacheFile)') ">
+      <!-- if no hash has been done yet fall back to just reading in the files and comparing them -->
+      <PaketRestoreCachedHash Condition=" '$(PaketRestoreCachedHash)' == '' ">$([System.IO.File]::ReadAllText('$(PaketRestoreCacheFile)'))</PaketRestoreCachedHash>
+      <PaketRestoreLockFileHash Condition=" '$(PaketRestoreLockFileHash)' == '' ">$([System.IO.File]::ReadAllText('$(PaketLockFilePath)'))</PaketRestoreLockFileHash>
+      <PaketRestoreRequired>true</PaketRestoreRequired>
+      <PaketRestoreRequired Condition=" '$(PaketRestoreLockFileHash)' == '$(PaketRestoreCachedHash)' ">false</PaketRestoreRequired>
+      <PaketRestoreRequired Condition=" '$(PaketRestoreLockFileHash)' == '' ">true</PaketRestoreRequired>
+    </PropertyGroup>
+
+    <!-- Do a global restore if required -->
+    <Exec Command='$(PaketBootStrapperCommand)' Condition="Exists('$(PaketBootStrapperExePath)') AND !(Exists('$(PaketExePath)'))" ContinueOnError="false" />
+    <Exec Command='$(PaketCommand) restore' Condition=" '$(PaketRestoreRequired)' == 'true' " ContinueOnError="false" />
+
+    <!-- Step 2 Detect project specific changes -->
+    <PropertyGroup>
+      <PaketReferencesCachedFilePath>$(MSBuildProjectDirectory)\obj\$(MSBuildProjectFile).paket.references.cached</PaketReferencesCachedFilePath>
+      <!-- MyProject.fsproj.paket.references has the highest precedence -->
+      <PaketOriginalReferencesFilePath>$(MSBuildProjectFullPath).paket.references</PaketOriginalReferencesFilePath>
+      <!-- MyProject.paket.references -->
+      <PaketOriginalReferencesFilePath Condition=" !Exists('$(PaketOriginalReferencesFilePath)')">$(MSBuildProjectDirectory)\$(MSBuildProjectName).paket.references</PaketOriginalReferencesFilePath>
+      <!-- paket.references -->
+      <PaketOriginalReferencesFilePath Condition=" !Exists('$(PaketOriginalReferencesFilePath)')">$(MSBuildProjectDirectory)\paket.references</PaketOriginalReferencesFilePath>
+      <PaketResolvedFilePath>$(MSBuildProjectDirectory)\obj\$(MSBuildProjectFile).$(TargetFramework).paket.resolved</PaketResolvedFilePath>
+      <PaketRestoreRequired>true</PaketRestoreRequired>
+      <PaketRestoreRequiredReason>references-file-or-cache-not-found</PaketRestoreRequiredReason>
+    </PropertyGroup>
+
+    <!-- Step 2 a Detect changes in references file -->
+    <PropertyGroup Condition="Exists('$(PaketOriginalReferencesFilePath)') AND Exists('$(PaketReferencesCachedFilePath)') ">
+      <PaketRestoreCachedHash>$([System.IO.File]::ReadAllText('$(PaketReferencesCachedFilePath)'))</PaketRestoreCachedHash>
+      <PaketRestoreReferencesFileHash>$([System.IO.File]::ReadAllText('$(PaketOriginalReferencesFilePath)'))</PaketRestoreReferencesFileHash>
+      <PaketRestoreRequiredReason>references-file</PaketRestoreRequiredReason>
+      <PaketRestoreRequired Condition=" '$(PaketRestoreReferencesFileHash)' == '$(PaketRestoreCachedHash)' ">false</PaketRestoreRequired>
+    </PropertyGroup>
+
+    <PropertyGroup Condition="!Exists('$(PaketOriginalReferencesFilePath)') AND !Exists('$(PaketReferencesCachedFilePath)') ">
+      <!-- If both don't exist there is nothing to do. -->
+      <PaketRestoreRequired>false</PaketRestoreRequired>
+    </PropertyGroup>
+
+    <!-- Step 2 b detect relevant changes in project file (new targetframework) -->
+    <PropertyGroup Condition=" !Exists('$(PaketResolvedFilePath)') AND '$(TargetFramework)' != '' ">
+      <PaketRestoreRequired>true</PaketRestoreRequired>
+      <PaketRestoreRequiredReason>target-framework '$(TargetFramework)'</PaketRestoreRequiredReason>
+    </PropertyGroup>
+
+    <!-- Step 3 Restore project specific stuff if required -->
+    <Message Condition=" '$(PaketRestoreRequired)' == 'true' " Importance="low" Text="Detected a change ('$(PaketRestoreRequiredReason)') in the project file '$(MSBuildProjectFullPath)', calling paket restore" />
+    <Exec Command='$(PaketCommand) restore --project "$(MSBuildProjectFullPath)"' Condition=" '$(PaketRestoreRequired)' == 'true' " ContinueOnError="false" />
+
+    <!-- This shouldn't actually happen, but just to be sure. -->
+    <Error Condition=" !Exists('$(PaketResolvedFilePath)') AND '$(TargetFramework)' != '' AND '$(ResolveNuGetPackages)' != 'False' " Text="Paket file '$(PaketResolvedFilePath)' is missing while restoring $(MSBuildProjectFile). Please delete 'paket-files/paket.restore.cached' and call 'paket restore'." />
+
+    <!-- Step 4 forward all msbuild properties (PackageReference, DotNetCliToolReference) to msbuild -->
+    <ReadLinesFromFile Condition="Exists('$(PaketResolvedFilePath)')" File="$(PaketResolvedFilePath)" >
+      <Output TaskParameter="Lines" ItemName="PaketReferencesFileLines"/>
+    </ReadLinesFromFile>
+
+    <ItemGroup Condition=" Exists('$(PaketResolvedFilePath)') AND '@(PaketReferencesFileLines)' != '' " >
+      <PaketReferencesFileLinesInfo Include="@(PaketReferencesFileLines)" >
+        <PackageName>$([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[0])</PackageName>
+        <PackageVersion>$([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[1])</PackageVersion>
+        <AllPrivateAssets>$([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[4])</AllPrivateAssets>
+      </PaketReferencesFileLinesInfo>
+      <PackageReference Include="%(PaketReferencesFileLinesInfo.PackageName)">
+        <Version>%(PaketReferencesFileLinesInfo.PackageVersion)</Version>
+        <PrivateAssets Condition="%(PaketReferencesFileLinesInfo.AllPrivateAssets) == 'true'">All</PrivateAssets>
+      </PackageReference>
+    </ItemGroup>
+
+    <PropertyGroup>
+      <PaketCliToolFilePath>$(MSBuildProjectDirectory)/obj/$(MSBuildProjectFile).paket.clitools</PaketCliToolFilePath>
+    </PropertyGroup>
+
+    <ReadLinesFromFile File="$(PaketCliToolFilePath)" >
+      <Output TaskParameter="Lines" ItemName="PaketCliToolFileLines"/>
+    </ReadLinesFromFile>
+
+    <ItemGroup Condition=" '@(PaketCliToolFileLines)' != '' " >
+      <PaketCliToolFileLinesInfo Include="@(PaketCliToolFileLines)" >
+        <PackageName>$([System.String]::Copy('%(PaketCliToolFileLines.Identity)').Split(',')[0])</PackageName>
+        <PackageVersion>$([System.String]::Copy('%(PaketCliToolFileLines.Identity)').Split(',')[1])</PackageVersion>
+      </PaketCliToolFileLinesInfo>
+      <DotNetCliToolReference Include="%(PaketCliToolFileLinesInfo.PackageName)">
+        <Version>%(PaketCliToolFileLinesInfo.PackageVersion)</Version>
+      </DotNetCliToolReference>
+    </ItemGroup>
+
+    <!-- Disabled for now until we know what to do with runtime deps - https://github.com/fsprojects/Paket/issues/2964
+    <PropertyGroup>
+      <RestoreConfigFile>$(MSBuildProjectDirectory)/obj/$(MSBuildProjectFile).NuGet.Config</RestoreConfigFile>
+    </PropertyGroup> -->
+
+  </Target>
+
+  <Target Name="PaketDisableDirectPack" AfterTargets="_IntermediatePack" BeforeTargets="GenerateNuspec" Condition="('$(IsPackable)' == '' Or '$(IsPackable)' == 'true') And Exists('$(MSBuildProjectDirectory)/obj/$(MSBuildProjectFile).references')" >
+    <PropertyGroup>
+      <ContinuePackingAfterGeneratingNuspec>false</ContinuePackingAfterGeneratingNuspec>
+    </PropertyGroup>
+  </Target>
+
+  <Target Name="PaketOverrideNuspec" AfterTargets="GenerateNuspec" Condition="('$(IsPackable)' == '' Or '$(IsPackable)' == 'true') And Exists('$(MSBuildProjectDirectory)/obj/$(MSBuildProjectFile).references')" >
+    <ItemGroup>
+      <_NuspecFilesNewLocation Include="$(BaseIntermediateOutputPath)$(Configuration)\*.nuspec"/>
+    </ItemGroup>
+
+    <PropertyGroup>
+      <PaketProjectFile>$(MSBuildProjectDirectory)/$(MSBuildProjectFile)</PaketProjectFile>
+      <ContinuePackingAfterGeneratingNuspec>true</ContinuePackingAfterGeneratingNuspec>
+      <UseNewPack>false</UseNewPack>
+      <UseNewPack Condition=" '$(NuGetToolVersion)' != '4.0.0' ">true</UseNewPack>
+      <AdjustedNuspecOutputPath>$(BaseIntermediateOutputPath)$(Configuration)</AdjustedNuspecOutputPath>
+      <AdjustedNuspecOutputPath Condition="@(_NuspecFilesNewLocation) == ''">$(BaseIntermediateOutputPath)</AdjustedNuspecOutputPath>
+    </PropertyGroup>
+
+    <ItemGroup>
+      <_NuspecFiles Include="$(AdjustedNuspecOutputPath)\*.nuspec"/>
+    </ItemGroup>
+
+    <Exec Command='$(PaketCommand) fix-nuspecs files "@(_NuspecFiles)" project-file "$(PaketProjectFile)" ' Condition="@(_NuspecFiles) != ''" />
+
+    <ConvertToAbsolutePath Condition="@(_NuspecFiles) != ''" Paths="@(_NuspecFiles)">
+      <Output TaskParameter="AbsolutePaths" PropertyName="NuspecFileAbsolutePath" />
+    </ConvertToAbsolutePath>      
+        
+
+    <!-- Call Pack -->
+    <PackTask Condition="$(UseNewPack)"
+              PackItem="$(PackProjectInputFile)"
+              PackageFiles="@(_PackageFiles)"
+              PackageFilesToExclude="@(_PackageFilesToExclude)"
+              PackageVersion="$(PackageVersion)"
+              PackageId="$(PackageId)"
+              Title="$(Title)"
+              Authors="$(Authors)"
+              Description="$(Description)"
+              Copyright="$(Copyright)"
+              RequireLicenseAcceptance="$(PackageRequireLicenseAcceptance)"
+              LicenseUrl="$(PackageLicenseUrl)"
+              ProjectUrl="$(PackageProjectUrl)"
+              IconUrl="$(PackageIconUrl)"
+              ReleaseNotes="$(PackageReleaseNotes)"
+              Tags="$(PackageTags)"
+              DevelopmentDependency="$(DevelopmentDependency)"
+              BuildOutputInPackage="@(_BuildOutputInPackage)"
+              TargetPathsToSymbols="@(_TargetPathsToSymbols)"
+              TargetFrameworks="@(_TargetFrameworks)"
+              AssemblyName="$(AssemblyName)"
+              PackageOutputPath="$(PackageOutputAbsolutePath)"
+              IncludeSymbols="$(IncludeSymbols)"
+              IncludeSource="$(IncludeSource)"
+              PackageTypes="$(PackageType)"
+              IsTool="$(IsTool)"
+              RepositoryUrl="$(RepositoryUrl)"
+              RepositoryType="$(RepositoryType)"
+              SourceFiles="@(_SourceFiles->Distinct())"
+              NoPackageAnalysis="$(NoPackageAnalysis)"
+              MinClientVersion="$(MinClientVersion)"
+              Serviceable="$(Serviceable)"
+              FrameworkAssemblyReferences="@(_FrameworkAssemblyReferences)"
+              ContinuePackingAfterGeneratingNuspec="$(ContinuePackingAfterGeneratingNuspec)"
+              NuspecOutputPath="$(AdjustedNuspecOutputPath)"
+              IncludeBuildOutput="$(IncludeBuildOutput)"
+              BuildOutputFolder="$(BuildOutputTargetFolder)"
+              ContentTargetFolders="$(ContentTargetFolders)"
+              RestoreOutputPath="$(RestoreOutputAbsolutePath)"
+              NuspecFile="$(NuspecFileAbsolutePath)"
+              NuspecBasePath="$(NuspecBasePath)"
+              NuspecProperties="$(NuspecProperties)"/>
+
+    <PackTask Condition="! $(UseNewPack)"
+              PackItem="$(PackProjectInputFile)"
+              PackageFiles="@(_PackageFiles)"
+              PackageFilesToExclude="@(_PackageFilesToExclude)"
+              PackageVersion="$(PackageVersion)"
+              PackageId="$(PackageId)"
+              Title="$(Title)"
+              Authors="$(Authors)"
+              Description="$(Description)"
+              Copyright="$(Copyright)"
+              RequireLicenseAcceptance="$(PackageRequireLicenseAcceptance)"
+              LicenseUrl="$(PackageLicenseUrl)"
+              ProjectUrl="$(PackageProjectUrl)"
+              IconUrl="$(PackageIconUrl)"
+              ReleaseNotes="$(PackageReleaseNotes)"
+              Tags="$(PackageTags)"
+              TargetPathsToAssemblies="@(_TargetPathsToAssemblies->'%(FinalOutputPath)')"
+              TargetPathsToSymbols="@(_TargetPathsToSymbols)"
+              TargetFrameworks="@(_TargetFrameworks)"
+              AssemblyName="$(AssemblyName)"
+              PackageOutputPath="$(PackageOutputAbsolutePath)"
+              IncludeSymbols="$(IncludeSymbols)"
+              IncludeSource="$(IncludeSource)"
+              PackageTypes="$(PackageType)"
+              IsTool="$(IsTool)"
+              RepositoryUrl="$(RepositoryUrl)"
+              RepositoryType="$(RepositoryType)"
+              SourceFiles="@(_SourceFiles->Distinct())"
+              NoPackageAnalysis="$(NoPackageAnalysis)"
+              MinClientVersion="$(MinClientVersion)"
+              Serviceable="$(Serviceable)"
+              AssemblyReferences="@(_References)"
+              ContinuePackingAfterGeneratingNuspec="$(ContinuePackingAfterGeneratingNuspec)"
+              NuspecOutputPath="$(AdjustedNuspecOutputPath)"
+              IncludeBuildOutput="$(IncludeBuildOutput)"
+              BuildOutputFolder="$(BuildOutputTargetFolder)"
+              ContentTargetFolders="$(ContentTargetFolders)"
+              RestoreOutputPath="$(RestoreOutputAbsolutePath)"
+              NuspecFile="$(NuspecFileAbsolutePath)"
+              NuspecBasePath="$(NuspecBasePath)"
+              NuspecProperties="$(NuspecProperties)"/>
+  </Target>
+  <!--/+:cnd:noEmit-->
+</Project>
diff --git a/.paket/paket.bootstrapper.exe b/.paket/paket.bootstrapper.exe
new file mode 100644
index 0000000000000000000000000000000000000000..81df15f98183f6e9aaa981ba4927ab18aa8c6d83
GIT binary patch
literal 72424
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
V;p=**E0gYoX_w6j@S&UC{{_n6yhZ>3

literal 0
HcmV?d00001

diff --git a/.paket/paket.targets b/.paket/paket.targets
new file mode 100644
index 0000000..ad11fac
--- /dev/null
+++ b/.paket/paket.targets
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+  <PropertyGroup>
+    <!-- Enable the restore command to run before builds -->
+    <RestorePackages Condition=" '$(RestorePackages)' == '' ">true</RestorePackages>
+    <PaketToolsPath>$(MSBuildThisFileDirectory)</PaketToolsPath>
+    <PaketRootPath>$(MSBuildThisFileDirectory)..\</PaketRootPath>
+    <PaketLockFilePath>$(PaketRootPath)paket.lock</PaketLockFilePath>
+    <PaketRestoreCacheFile>$(PaketRootPath)paket-files\paket.restore.cached</PaketRestoreCacheFile>
+    <MonoPath Condition="'$(MonoPath)' == '' And Exists('/Library/Frameworks/Mono.framework/Commands/mono')">/Library/Frameworks/Mono.framework/Commands/mono</MonoPath>
+    <MonoPath Condition="'$(MonoPath)' == ''">mono</MonoPath>
+
+    <!-- Disable test for CLI tool completely - overrideable via properties in projects or via environment variables -->
+    <PaketDisableCliTest Condition=" '$(PaketDisableCliTest)' == '' ">False</PaketDisableCliTest>
+  </PropertyGroup>
+
+  <!-- Resolve how paket should be called -->
+  <!-- Current priority is: local (1: repo root, 2: .paket folder) => 3: as CLI tool => as bootstrapper (4: proj Bootstrapper style, 5: BootstrapperExeDir) => 6: global path variable -->
+  <Target Name="SetPaketCommand" >
+    <!-- Test if paket is available in the standard locations. If so, that takes priority. Case 1/2 - non-windows specific -->
+    <PropertyGroup Condition=" '$(OS)' != 'Windows_NT' ">
+      <!-- no windows, try native paket as default, root => tool -->
+      <PaketExePath Condition=" '$(PaketExePath)' == '' AND Exists('$(PaketRootPath)paket') ">$(PaketRootPath)paket</PaketExePath>
+      <PaketExePath Condition=" '$(PaketExePath)' == '' AND Exists('$(PaketToolsPath)paket') ">$(PaketToolsPath)paket</PaketExePath>
+    </PropertyGroup>
+
+    <!-- Test if paket is available in the standard locations. If so, that takes priority. Case 2/2 - same across platforms -->
+    <PropertyGroup>
+      <!-- root => tool -->
+      <PaketExePath Condition=" '$(PaketExePath)' == '' AND Exists('$(PaketRootPath)paket.exe') ">$(PaketRootPath)paket.exe</PaketExePath>
+      <PaketExePath Condition=" '$(PaketExePath)' == '' AND Exists('$(PaketToolsPath)paket.exe') ">$(PaketToolsPath)paket.exe</PaketExePath>
+    </PropertyGroup>
+
+    <!-- If paket hasn't be found in standard locations, test for CLI tool usage. -->
+    <!-- First test: Is CLI configured to be used in "dotnet-tools.json"? - can result in a false negative; only a positive outcome is reliable. -->
+    <PropertyGroup Condition=" '$(PaketExePath)' == '' ">
+      <_DotnetToolsJson Condition="Exists('$(PaketRootPath)/.config/dotnet-tools.json')">$([System.IO.File]::ReadAllText("$(PaketRootPath)/.config/dotnet-tools.json"))</_DotnetToolsJson>
+      <_ConfigContainsPaket Condition=" '$(_DotnetToolsJson)' != ''">$(_DotnetToolsJson.Contains('"paket"'))</_ConfigContainsPaket>
+      <_ConfigContainsPaket Condition=" '$(_ConfigContainsPaket)' == ''">false</_ConfigContainsPaket>
+    </PropertyGroup>
+
+    <!-- Second test: Call 'dotnet paket' and see if it returns without an error. Mute all the output. Only run if previous test failed and the test has not been disabled. -->
+    <!-- WARNING: This method can lead to processes hanging forever, and should be used as little as possible. See https://github.com/fsprojects/Paket/issues/3705 for details. -->
+    <Exec Condition=" '$(PaketExePath)' == '' AND !$(PaketDisableCliTest) AND !$(_ConfigContainsPaket)" Command="dotnet paket --version" IgnoreExitCode="true" StandardOutputImportance="low" StandardErrorImportance="low" >
+      <Output TaskParameter="ExitCode" PropertyName="LocalPaketToolExitCode" />
+    </Exec>
+
+    <!-- If paket is installed as CLI use that. Again, only if paket haven't already been found in standard locations. -->
+    <PropertyGroup Condition=" '$(PaketExePath)' == '' AND ($(_ConfigContainsPaket) OR '$(LocalPaketToolExitCode)' == '0') ">
+      <_PaketCommand>dotnet paket</_PaketCommand>
+    </PropertyGroup>
+
+    <!-- If neither local files nor CLI tool can be found, final attempt is searching for boostrapper config before falling back to global path variable. -->
+    <PropertyGroup Condition=" '$(PaketExePath)' == '' AND '$(_PaketCommand)' == '' ">
+      <!-- Test for bootstrapper setup -->
+      <PaketExePath Condition=" '$(PaketExePath)' == '' AND '$(PaketBootstrapperStyle)' == 'proj' ">$(PaketToolsPath)paket</PaketExePath>
+      <PaketExePath Condition=" '$(PaketExePath)' == '' AND Exists('$(PaketBootStrapperExeDir)') ">$(PaketBootStrapperExeDir)paket</PaketExePath>
+
+      <!-- If all else fails, use global path approach. -->
+      <PaketExePath Condition=" '$(PaketExePath)' == ''">paket</PaketExePath>
+    </PropertyGroup>
+
+    <!-- If not using CLI, setup correct execution command. -->
+    <PropertyGroup Condition=" '$(_PaketCommand)' == '' ">
+      <_PaketExeExtension>$([System.IO.Path]::GetExtension("$(PaketExePath)"))</_PaketExeExtension>
+      <_PaketCommand Condition=" '$(_PaketCommand)' == '' AND '$(_PaketExeExtension)' == '.dll' ">dotnet "$(PaketExePath)"</_PaketCommand>
+      <_PaketCommand Condition=" '$(_PaketCommand)' == '' AND '$(OS)' != 'Windows_NT' AND '$(_PaketExeExtension)' == '.exe' ">$(MonoPath) --runtime=v4.0.30319 "$(PaketExePath)"</_PaketCommand>
+      <_PaketCommand Condition=" '$(_PaketCommand)' == '' ">"$(PaketExePath)"</_PaketCommand>
+    </PropertyGroup>
+
+    <!-- The way to get a property to be available outside the target is to use this task. -->
+    <CreateProperty Value="$(_PaketCommand)">
+      <Output TaskParameter="Value" PropertyName="PaketCommand"/>
+    </CreateProperty>
+
+  </Target>
+
+  <Choose> <!-- MyProject.fsproj.paket.references has the highest precedence -->
+    <When Condition="Exists('$(MSBuildProjectFullPath).paket.references')">
+      <PropertyGroup>
+        <PaketReferences>$(MSBuildProjectFullPath).paket.references</PaketReferences>
+      </PropertyGroup>
+    </When> <!-- MyProject.paket.references -->
+    <When Condition="Exists('$(MSBuildProjectDirectory)\$(MSBuildProjectName).paket.references')">
+      <PropertyGroup>
+        <PaketReferences>$(MSBuildProjectDirectory)\$(MSBuildProjectName).paket.references</PaketReferences>
+      </PropertyGroup>
+    </When> <!-- paket.references -->
+    <When Condition="Exists('$(MSBuildProjectDirectory)\paket.references')">
+      <PropertyGroup>
+        <PaketReferences>$(MSBuildProjectDirectory)\paket.references</PaketReferences>
+      </PropertyGroup>
+    </When> <!-- Set to empty if a reference file isn't found matching one of the 3 format options -->
+    <Otherwise>
+      <PropertyGroup>
+        <PaketReferences></PaketReferences>
+      </PropertyGroup>
+    </Otherwise>
+  </Choose>
+
+  <PropertyGroup>
+    <!-- We need to ensure packages are restored prior to assembly resolve -->
+    <BuildDependsOn Condition="$(RestorePackages) == 'true'">RestorePackages; $(BuildDependsOn);</BuildDependsOn>
+  </PropertyGroup>
+
+  <Target Name="RestorePackages" DependsOnTargets="SetPaketCommand">
+
+    <PropertyGroup>
+      <!-- Commands -->
+      <RestoreCommand>$(PaketCommand) restore --references-file "$(PaketReferences)"</RestoreCommand>
+      <PaketRestoreRequired>true</PaketRestoreRequired>
+    </PropertyGroup>
+
+    <PropertyGroup Condition="Exists('$(PaketRestoreCacheFile)') ">
+      <PaketRestoreCachedHash>$([System.IO.File]::ReadAllText('$(PaketRestoreCacheFile)'))</PaketRestoreCachedHash>
+      <PaketRestoreLockFileHash>$([System.IO.File]::ReadAllText('$(PaketLockFilePath)'))</PaketRestoreLockFileHash>
+      <PaketRestoreRequired>true</PaketRestoreRequired>
+      <PaketRestoreRequired Condition=" '$(PaketRestoreLockFileHash)' == '$(PaketRestoreCachedHash)' ">false</PaketRestoreRequired>
+      <PaketRestoreRequired Condition=" '$(PaketRestoreLockFileHash)' == '' ">true</PaketRestoreRequired>
+    </PropertyGroup>
+
+    <Exec Command="$(RestoreCommand)"
+          IgnoreStandardErrorWarningFormat="true"
+          WorkingDirectory="$(PaketRootPath)"
+          ContinueOnError="false"
+          Condition=" '$(PaketRestoreRequired)' == 'true' AND Exists('$(PaketReferences)') AND '$(PaketReferences)' != '' "
+    />
+  </Target>
+</Project>
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..ff386a4
--- /dev/null
+++ b/README.md
@@ -0,0 +1,41 @@
+ObjectTK
+======
+
+
+ObjectTK is an extensible convenience layer for OpenGL. By itself, ObjectTK does not attempt to OO-ify the OpenGL API, but rather provide useful everyday classes which consolidate and simplify OpenGL operations.
+
+ObjectTK is currently under rapid active development.
+
+Features
+========
+
+- Highest possible performance.
+- Full interop with "normal" OpenGL.
+- Well-defined data types for all GL objects.
+- Easy shader compiler.
+- Highly extensible object model.
+- Zero-overhead abstraction.
+
+ObjectTK is directly run and managed by [The OpenTK Team](https://opentk.github.io/).
+
+We'd love you to come and join us on the Discord!
+[![Discord](https://discordapp.com/api/guilds/337627185248468993/widget.png)](https://discord.gg/GZTYR4s)
+
+## Getting started:
+
+1. [Install via NuGet](https://www.nuget.org/packages/ObjectTk)
+2. Create things you need via `GLFactory`.
+
+## Build instructions
+
+Need Help?
+==========
+
+Come chat with us on [Discord](https://discord.gg/6HqD48s).
+
+We're happy to help with anything from learning OpenGL to advanced OpenTK questions.
+
+License
+=======
+
+ObjectTK is distributed under the permissive MIT license and is absolutely free.
diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md
new file mode 100644
index 0000000..f558d00
--- /dev/null
+++ b/RELEASE_NOTES.md
@@ -0,0 +1,3 @@
+### 2.0.0-pre.1
+    * Start of release notes for v2.
+    * Initial testing of build automation.
\ No newline at end of file
diff --git a/build.cmd b/build.cmd
new file mode 100644
index 0000000..0b3d544
--- /dev/null
+++ b/build.cmd
@@ -0,0 +1,8 @@
+REM Install .NET Core (https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-install-script)
+
+@powershell -NoProfile -ExecutionPolicy unrestricted -Command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; &([scriptblock]::Create((Invoke-WebRequest -useb 'https://dot.net/v1/dotnet-install.ps1'))) --version 3.1.100"
+
+SET PATH=%LOCALAPPDATA%\Microsoft\dotnet;%PATH%
+.paket\paket.bootstrapper.exe
+dotnet tool restore
+dotnet fake run build.fsx %* 
\ No newline at end of file
diff --git a/build.fsx b/build.fsx
new file mode 100644
index 0000000..e73de2a
--- /dev/null
+++ b/build.fsx
@@ -0,0 +1,294 @@
+open System
+open System.IO
+open System.Threading
+open Fake.Core
+open Fake.DotNet
+open Fake.DotNet.NuGet
+open Fake.IO
+
+#r "paket:
+storage: packages
+nuget Fake.IO.FileSystem
+nuget Fake.DotNet.MSBuild
+nuget Fake.DotNet.Testing.XUnit2
+nuget Fake.DotNet.AssemblyInfoFile
+nuget Fake.DotNet.NuGet prerelease
+nuget Fake.DotNet.Paket
+nuget Fake.DotNet.Cli
+nuget Fake.Core.Target
+nuget Fake.Net.Http
+nuget Fake.Api.Github
+nuget xunit.runner.console
+nuget NuGet.CommandLine
+nuget Fake.Core.ReleaseNotes //"
+
+#load "./.fake/build.fsx/intellisense.fsx"
+
+open Fake.IO
+open Fake.IO.FileSystemOperators
+open Fake.IO.Globbing.Operators
+
+// ---------
+// Configuration
+// ---------
+
+let project = "ObjectTK"
+
+let authors = [ "Team OpenTK" ]
+
+let summary = "High-performance, extensible and unopinionated implementation of Data types and utilities for OpenGL & game development. A convenience layer above OpenTK aiming to speed up and simplify common tasks."
+
+let license = "https://opensource.org/licenses/MIT"
+
+let projectUrl = "https://github.com/opentk/objecttk"
+
+let iconUrl = "https://raw.githubusercontent.com/opentk/opentk/master/docs/files/img/logo.png"
+
+let description =
+    "High-performance, extensible and unopinionated implementation of Data types and utilities for OpenGL & game development. A convenience layer above OpenTK aiming to speed up and simplify common tasks.
+    
+    OpenTK comes with simple and easy to follow tutorials for learning *modern* OpenGL. These are written by the community and represent all of the best practices to get you started.
+    Learn how to use OpenTK here:
+    https://opentk.net/learn/index.html
+
+    Sample projects that accompany the tutorial can be found here:
+    https://github.com/opentk/LearnOpenTK
+
+    We have a very active discord server, if you need help, want to help, or are just curious, come join us!
+    https://discord.gg/6HqD48s
+
+    "
+
+let tags = "ObjectTK OpenTK OpenGL OpenGLES GLES OpenAL OpenCL C# F# .NET Mono Vector Math Game Graphics Sound"
+
+let copyright = "Copyright (c) 2020 The OpenTK Team."
+
+let solutionFile = "OpenTK.sln"
+
+let gitOwner = "opentk"
+
+let gitHome = "https://github.com/" + gitOwner
+
+// The name of the project on GitHub
+let gitName = "objecttk"
+
+// The url for the raw files hosted
+let gitRaw = Environment.environVarOrDefault "gitRaw" "https://raw.github.com/objecttk"
+
+// Read additional information from the release notes document
+let release = ReleaseNotes.load "RELEASE_NOTES.md"
+
+// ---------
+// Properties
+// ---------
+
+let binDir = "./bin/"
+let buildDir = binDir </> "build"
+let nugetDir = binDir </> "nuget"
+let testDir = binDir </> "test"
+
+// ---------
+// Projects & Assemblies
+// ---------
+
+let toolProjects =
+    !! "src/Generators/**/*.??proj"
+
+let releaseProjects =
+    !! "src/**/*.??proj"
+    -- "src/Generator/**"
+    -- "src/Generator.Bind/**"
+    -- "src/Generator.Converter/**"
+    -- "src/Generator.Rewrite/**"
+    -- "src/SpecificationOpenGL/**"
+    -- "src/OpenAL/OpenALGenerator/**"
+    -- "src/OpenAL/OpenALTest/**"
+    -- "src/OpenAL/OpenTK.OpenAL.Extensions/**"
+
+
+// Absolutely all test projects.
+let allTestProjects =
+    !! "tests/**/*.??proj"
+
+// Test projects excluding integration tests (don't run on CI).
+let ciTestProjects =
+    allTestProjects
+    -- "tests/**/*.Integration.??proj"
+
+let nugetCommandRunnerPath =
+    ".fake/build.fsx/packages/NuGet.CommandLine/tools/NuGet.exe" |> Fake.IO.Path.convertWindowsToCurrentPath
+
+// ---------
+// Other Targets
+// ---------
+
+// Lazily install DotNet SDK in the correct version if not available
+let install =
+    lazy
+        (if (DotNet.getVersion id).StartsWith "3" then id
+         else DotNet.install (fun options -> { options with Version = DotNet.Version "3.1.100" }))
+
+// Define general properties across various commands (with arguments)
+let inline withWorkDir wd = DotNet.Options.lift install.Value >> DotNet.Options.withWorkingDirectory wd
+
+// Set general properties without arguments
+let inline dotnetSimple arg = DotNet.Options.lift install.Value arg
+
+module DotNet =
+    let run optionsFn framework projFile args =
+        DotNet.exec (dotnetSimple >> optionsFn) "run" (sprintf "-f %s -p \"%s\" %s" framework projFile args)
+
+    let runWithDefaultOptions framework projFile args = run id framework projFile args
+
+let asArgs args = args |> String.concat " "
+
+// ---------
+// Build Targets
+// ---------
+
+Target.create "Clean" <| fun _ ->
+    !! ("./src" </> "OpenTK.Graphics" </> "**/*.*")
+    ++ (nugetDir </> "*.nupkg")
+    -- ("./src" </> "OpenTK.Graphics" </> "Enums/*.cs")
+    -- ("./src" </> "OpenTK.Graphics" </> "*.cs")
+    -- ("./src" </> "OpenTK.Graphics" </> "*.csproj")
+    -- ("./src" </> "OpenTK.Graphics" </> "ES11/Helper.cs")
+    -- ("./src" </> "OpenTK.Graphics" </> "ES20/Helper.cs")
+    -- ("./src" </> "OpenTK.Graphics" </> "ES30/Helper.cs")
+    -- ("./src" </> "OpenTK.Graphics" </> "OpenGL2/Helper.cs")
+    -- ("./src" </> "OpenTK.Graphics" </> "OpenGL4/Helper.cs")
+    -- ("./src" </> "OpenTK.Graphics" </> "paket")
+    |> Seq.iter(Shell.rm)
+
+Target.create "Restore" (fun _ -> DotNet.restore dotnetSimple "ObjectTK.sln" |> ignore)
+
+Target.create "Build"( fun _ ->
+    let setOptions a =
+        let customParams = sprintf "/p:DontGenBindings=true/p:PackageVersion=%s/p:ProductVersion=%s" release.AssemblyVersion release.NugetVersion
+        DotNet.Options.withCustomParams (Some customParams) (dotnetSimple a)
+
+    for proj in releaseProjects do
+        DotNet.build setOptions proj
+    )
+
+open System.IO
+
+Target.create "CreateNuGetPackage" (fun _ ->
+    Directory.CreateDirectory nugetDir |> ignore
+    let notes = release.Notes |> List.reduce (fun s1 s2 -> s1 + "\n" + s2)
+
+    for proj in releaseProjects do
+        Trace.logf "Creating nuget package for Project: %s" proj
+
+        let dir = Path.GetDirectoryName proj
+        let templatePath = Path.Combine(dir, "paket")
+        let oldTmplCont = File.ReadAllText templatePath
+        let newTmplCont = oldTmplCont.Insert(oldTmplCont.Length, sprintf "\nversion \n\t%s\nauthors \n\t%s\nowners \n\t%s\n"
+                release.NugetVersion
+                (authors |> List.reduce (fun s a -> s + " " + a))
+                (authors |> List.reduce (fun s a -> s + " " + a))).Replace("#VERSION#", release.NugetVersion)
+        File.WriteAllText(templatePath + ".template", newTmplCont)
+        let setParams (p:Paket.PaketPackParams) =
+            { p with
+                  ReleaseNotes = notes
+                  OutputPath = Path.GetFullPath(nugetDir)
+                  WorkingDir = dir
+                  Version = release.NugetVersion
+            }
+        Paket.pack setParams
+    )
+
+Target.create "CreateMetaPackage" (fun _ ->
+    let notes = release.Notes |> List.reduce (fun s1 s2 -> s1 + "\n" + s2)
+
+    let deps =
+        releaseProjects
+        |> Seq.toList
+        |> List.map (fun p -> Path.GetFileNameWithoutExtension(p), release.NugetVersion)
+
+    let setParams (p:NuGet.NuGetParams) =
+        { p with
+            Version = release.NugetVersion
+            Authors = authors
+            Project = project
+            Dependencies = deps
+            Summary = summary
+            Description = description
+            Copyright = copyright
+            WorkingDir = binDir
+            OutputPath = nugetDir
+//                AccessKey = myAccessKey
+            Publish = false
+            ReleaseNotes = notes
+            Tags = tags
+            Properties = [
+                "Configuration", Environment.environVarOrDefault "buildMode" "Release"
+            ]
+        }
+    Trace.logf "Creating metapackage from objecttk.nuspec"
+    NuGet.NuGet setParams "objecttk.nuspec"
+    )
+
+// ---------
+// Release Targets
+// ---------
+
+open Fake.Api
+
+Target.create "ReleaseOnGitHub" (fun _ ->
+    let token =
+        match Environment.environVarOrDefault "opentk_github_token" "" with
+        | s when not (System.String.IsNullOrWhiteSpace s) -> s
+        | _ ->
+            failwith
+                "please set the github_token environment variable to a github personal access token with repro access."
+
+    let files = !!"bin/*" |> Seq.toList
+
+    GitHub.createClientWithToken token
+    |> GitHub.draftNewRelease gitOwner gitName release.NugetVersion (release.SemVer.PreRelease <> None) release.Notes
+    //|> GitHub.uploadFiles files
+    |> GitHub.publishDraft
+    |> Async.RunSynchronously)
+
+Target.create "ReleaseOnNuGet" (fun _ ->
+    let apiKey =
+        match Environment.environVarOrDefault "opentk_nuget_api_key" "" with
+        | s when not (System.String.IsNullOrWhiteSpace s) -> s
+        | _ -> failwith "please set the nuget_api_key environment variable to a nuget access token."
+
+    !! (nugetDir </> "*.nupkg")
+    |> Seq.iter
+        (DotNet.nugetPush (fun opts ->
+            { opts with
+                PushParams =
+                    { opts.PushParams with
+                        ApiKey = Some apiKey
+                        Source = Some "nuget.org" } })))
+
+Target.create "ReleaseOnAll" ignore
+
+// ---------
+// Target relations
+// ---------
+
+Target.create "All" ignore
+
+open Fake.Core.TargetOperators
+
+"Clean"
+  ==> "Restore"
+  ==> "Build"
+  ==> "All"
+  ==> "CreateNuGetPackage"
+  ==> "CreateMetaPackage"
+  ==> "ReleaseOnNuGet"
+  ==> "ReleaseOnGithub"
+  ==> "ReleaseOnAll"
+
+// ---------
+// Startup
+// ---------
+
+// Run all targets by default. Invoke 'build <Target>' to override
+Target.runOrDefault "All"
diff --git a/build.fsx.lock b/build.fsx.lock
new file mode 100644
index 0000000..e7c4796
--- /dev/null
+++ b/build.fsx.lock
@@ -0,0 +1,326 @@
+STORAGE: PACKAGES
+RESTRICTION: == netstandard2.0
+NUGET
+  remote: https://api.nuget.org/v3/index.json
+    BlackFox.VsWhere (1.1)
+      FSharp.Core (>= 4.2.3)
+      Microsoft.Win32.Registry (>= 4.7)
+    Fake.Api.Github (5.20.3)
+      FSharp.Core (>= 4.7.2)
+      Octokit (>= 0.48)
+    Fake.Core.CommandLineParsing (5.20.3)
+      FParsec (>= 1.1.1)
+      FSharp.Core (>= 4.7.2)
+    Fake.Core.Context (5.20.3)
+      FSharp.Core (>= 4.7.2)
+    Fake.Core.Environment (5.20.3)
+      FSharp.Core (>= 4.7.2)
+    Fake.Core.FakeVar (5.20.3)
+      Fake.Core.Context (>= 5.20.3)
+      FSharp.Core (>= 4.7.2)
+    Fake.Core.Process (5.20.3)
+      Fake.Core.Environment (>= 5.20.3)
+      Fake.Core.FakeVar (>= 5.20.3)
+      Fake.Core.String (>= 5.20.3)
+      Fake.Core.Trace (>= 5.20.3)
+      Fake.IO.FileSystem (>= 5.20.3)
+      FSharp.Core (>= 4.7.2)
+      System.Collections.Immutable (>= 1.7.1)
+    Fake.Core.ReleaseNotes (5.20.3)
+      Fake.Core.SemVer (>= 5.20.3)
+      Fake.Core.String (>= 5.20.3)
+      FSharp.Core (>= 4.7.2)
+    Fake.Core.SemVer (5.20.3)
+      FSharp.Core (>= 4.7.2)
+    Fake.Core.String (5.20.3)
+      FSharp.Core (>= 4.7.2)
+    Fake.Core.Target (5.20.3)
+      Fake.Core.CommandLineParsing (>= 5.20.3)
+      Fake.Core.Context (>= 5.20.3)
+      Fake.Core.Environment (>= 5.20.3)
+      Fake.Core.FakeVar (>= 5.20.3)
+      Fake.Core.Process (>= 5.20.3)
+      Fake.Core.String (>= 5.20.3)
+      Fake.Core.Trace (>= 5.20.3)
+      FSharp.Control.Reactive (>= 4.4.2)
+      FSharp.Core (>= 4.7.2)
+    Fake.Core.Tasks (5.20.3)
+      Fake.Core.Trace (>= 5.20.3)
+      FSharp.Core (>= 4.7.2)
+    Fake.Core.Trace (5.20.3)
+      Fake.Core.Environment (>= 5.20.3)
+      Fake.Core.FakeVar (>= 5.20.3)
+      FSharp.Core (>= 4.7.2)
+    Fake.Core.Xml (5.20.3)
+      Fake.Core.String (>= 5.20.3)
+      FSharp.Core (>= 4.7.2)
+    Fake.DotNet.AssemblyInfoFile (5.20.3)
+      Fake.Core.Environment (>= 5.20.3)
+      Fake.Core.String (>= 5.20.3)
+      Fake.Core.Trace (>= 5.20.3)
+      Fake.IO.FileSystem (>= 5.20.3)
+      FSharp.Core (>= 4.7.2)
+    Fake.DotNet.Cli (5.20.3)
+      Fake.Core.Environment (>= 5.20.3)
+      Fake.Core.Process (>= 5.20.3)
+      Fake.Core.String (>= 5.20.3)
+      Fake.Core.Trace (>= 5.20.3)
+      Fake.DotNet.MSBuild (>= 5.20.3)
+      Fake.DotNet.NuGet (>= 5.20.3)
+      Fake.IO.FileSystem (>= 5.20.3)
+      FSharp.Core (>= 4.7.2)
+      Mono.Posix.NETStandard (>= 1.0)
+      Newtonsoft.Json (>= 12.0.3)
+    Fake.DotNet.MSBuild (5.20.3)
+      BlackFox.VsWhere (>= 1.1)
+      Fake.Core.Environment (>= 5.20.3)
+      Fake.Core.Process (>= 5.20.3)
+      Fake.Core.String (>= 5.20.3)
+      Fake.Core.Trace (>= 5.20.3)
+      Fake.IO.FileSystem (>= 5.20.3)
+      FSharp.Core (>= 4.7.2)
+      MSBuild.StructuredLogger (>= 2.1.176)
+    Fake.DotNet.NuGet (5.20.3)
+      Fake.Core.Environment (>= 5.20.3)
+      Fake.Core.Process (>= 5.20.3)
+      Fake.Core.SemVer (>= 5.20.3)
+      Fake.Core.String (>= 5.20.3)
+      Fake.Core.Tasks (>= 5.20.3)
+      Fake.Core.Trace (>= 5.20.3)
+      Fake.Core.Xml (>= 5.20.3)
+      Fake.IO.FileSystem (>= 5.20.3)
+      Fake.Net.Http (>= 5.20.3)
+      FSharp.Core (>= 4.7.2)
+      Newtonsoft.Json (>= 12.0.3)
+      NuGet.Protocol (>= 5.6)
+    Fake.DotNet.Paket (5.20.3)
+      Fake.Core.Process (>= 5.20.3)
+      Fake.Core.String (>= 5.20.3)
+      Fake.Core.Trace (>= 5.20.3)
+      Fake.DotNet.Cli (>= 5.20.3)
+      Fake.IO.FileSystem (>= 5.20.3)
+      FSharp.Core (>= 4.7.2)
+    Fake.DotNet.Testing.XUnit2 (5.20.3)
+      Fake.Core.Process (>= 5.20.3)
+      Fake.Core.String (>= 5.20.3)
+      Fake.Core.Trace (>= 5.20.3)
+      Fake.IO.FileSystem (>= 5.20.3)
+      Fake.Testing.Common (>= 5.20.3)
+      FSharp.Core (>= 4.7.2)
+    Fake.IO.FileSystem (5.20.3)
+      Fake.Core.String (>= 5.20.3)
+      FSharp.Core (>= 4.7.2)
+    Fake.Net.Http (5.20.3)
+      Fake.Core.Trace (>= 5.20.3)
+      FSharp.Core (>= 4.7.2)
+    Fake.Testing.Common (5.20.3)
+      Fake.Core.Trace (>= 5.20.3)
+      FSharp.Core (>= 4.7.2)
+    FParsec (1.1.1)
+      FSharp.Core (>= 4.3.4)
+    FSharp.Control.Reactive (4.4.2)
+      FSharp.Core (>= 4.7.2)
+      System.Reactive (>= 4.4.1)
+    FSharp.Core (5.0)
+    Microsoft.Build (16.7)
+    Microsoft.Build.Framework (16.7)
+      System.Security.Permissions (>= 4.7)
+    Microsoft.Build.Tasks.Core (16.7)
+      Microsoft.Build.Framework (>= 16.7)
+      Microsoft.Build.Utilities.Core (>= 16.7)
+      Microsoft.Win32.Registry (>= 4.3)
+      System.CodeDom (>= 4.4)
+      System.Collections.Immutable (>= 1.5)
+      System.Reflection.Metadata (>= 1.6)
+      System.Reflection.TypeExtensions (>= 4.1)
+      System.Resources.Extensions (>= 4.6)
+      System.Security.Permissions (>= 4.7)
+      System.Threading.Tasks.Dataflow (>= 4.9)
+    Microsoft.Build.Utilities.Core (16.7)
+      Microsoft.Build.Framework (>= 16.7)
+      Microsoft.Win32.Registry (>= 4.3)
+      System.Collections.Immutable (>= 1.5)
+      System.Security.Permissions (>= 4.7)
+      System.Text.Encoding.CodePages (>= 4.0.1)
+    Microsoft.NETCore.Platforms (5.0)
+    Microsoft.NETCore.Targets (5.0)
+    Microsoft.Win32.Registry (5.0)
+      System.Buffers (>= 4.5.1)
+      System.Memory (>= 4.5.4)
+      System.Security.AccessControl (>= 5.0)
+      System.Security.Principal.Windows (>= 5.0)
+    Mono.Posix.NETStandard (1.0)
+    MSBuild.StructuredLogger (2.1.215)
+      Microsoft.Build (>= 16.4)
+      Microsoft.Build.Framework (>= 16.4)
+      Microsoft.Build.Tasks.Core (>= 16.4)
+      Microsoft.Build.Utilities.Core (>= 16.4)
+    Newtonsoft.Json (12.0.3)
+    NuGet.CommandLine (5.7)
+    NuGet.Common (5.8)
+      NuGet.Frameworks (>= 5.8)
+    NuGet.Configuration (5.8)
+      NuGet.Common (>= 5.8)
+      System.Security.Cryptography.ProtectedData (>= 4.4)
+    NuGet.Frameworks (5.8)
+    NuGet.Packaging (5.7)
+      Newtonsoft.Json (>= 9.0.1)
+      NuGet.Configuration (>= 5.7)
+      NuGet.Versioning (>= 5.7)
+      System.Dynamic.Runtime (>= 4.3)
+      System.Security.Cryptography.Cng (>= 5.0.0-preview.3.20214.6)
+      System.Security.Cryptography.Pkcs (>= 5.0.0-preview.3.20214.6)
+    NuGet.Protocol (5.7)
+      NuGet.Packaging (>= 5.7)
+      System.Dynamic.Runtime (>= 4.3)
+    NuGet.Versioning (5.8)
+    Octokit (0.48)
+    System.Buffers (4.5.1)
+    System.CodeDom (5.0)
+    System.Collections (4.3)
+      Microsoft.NETCore.Platforms (>= 1.1)
+      Microsoft.NETCore.Targets (>= 1.1)
+      System.Runtime (>= 4.3)
+    System.Collections.Immutable (5.0)
+      System.Memory (>= 4.5.4)
+    System.Diagnostics.Debug (4.3)
+      Microsoft.NETCore.Platforms (>= 1.1)
+      Microsoft.NETCore.Targets (>= 1.1)
+      System.Runtime (>= 4.3)
+    System.Dynamic.Runtime (4.3)
+      System.Collections (>= 4.3)
+      System.Diagnostics.Debug (>= 4.3)
+      System.Linq (>= 4.3)
+      System.Linq.Expressions (>= 4.3)
+      System.ObjectModel (>= 4.3)
+      System.Reflection (>= 4.3)
+      System.Reflection.Emit (>= 4.3)
+      System.Reflection.Emit.ILGeneration (>= 4.3)
+      System.Reflection.Primitives (>= 4.3)
+      System.Reflection.TypeExtensions (>= 4.3)
+      System.Resources.ResourceManager (>= 4.3)
+      System.Runtime (>= 4.3)
+      System.Runtime.Extensions (>= 4.3)
+      System.Threading (>= 4.3)
+    System.Formats.Asn1 (5.0)
+      System.Buffers (>= 4.5.1)
+      System.Memory (>= 4.5.4)
+    System.Globalization (4.3)
+      Microsoft.NETCore.Platforms (>= 1.1)
+      Microsoft.NETCore.Targets (>= 1.1)
+      System.Runtime (>= 4.3)
+    System.IO (4.3)
+      Microsoft.NETCore.Platforms (>= 1.1)
+      Microsoft.NETCore.Targets (>= 1.1)
+      System.Runtime (>= 4.3)
+      System.Text.Encoding (>= 4.3)
+      System.Threading.Tasks (>= 4.3)
+    System.Linq (4.3)
+      System.Collections (>= 4.3)
+      System.Diagnostics.Debug (>= 4.3)
+      System.Resources.ResourceManager (>= 4.3)
+      System.Runtime (>= 4.3)
+      System.Runtime.Extensions (>= 4.3)
+    System.Linq.Expressions (4.3)
+      System.Collections (>= 4.3)
+      System.Diagnostics.Debug (>= 4.3)
+      System.Globalization (>= 4.3)
+      System.IO (>= 4.3)
+      System.Linq (>= 4.3)
+      System.ObjectModel (>= 4.3)
+      System.Reflection (>= 4.3)
+      System.Reflection.Emit (>= 4.3)
+      System.Reflection.Emit.ILGeneration (>= 4.3)
+      System.Reflection.Emit.Lightweight (>= 4.3)
+      System.Reflection.Extensions (>= 4.3)
+      System.Reflection.Primitives (>= 4.3)
+      System.Reflection.TypeExtensions (>= 4.3)
+      System.Resources.ResourceManager (>= 4.3)
+      System.Runtime (>= 4.3)
+      System.Runtime.Extensions (>= 4.3)
+      System.Threading (>= 4.3)
+    System.Memory (4.5.4)
+      System.Buffers (>= 4.5.1)
+      System.Numerics.Vectors (>= 4.4)
+      System.Runtime.CompilerServices.Unsafe (>= 4.5.3)
+    System.Numerics.Vectors (4.5)
+    System.ObjectModel (4.3)
+      System.Collections (>= 4.3)
+      System.Diagnostics.Debug (>= 4.3)
+      System.Resources.ResourceManager (>= 4.3)
+      System.Runtime (>= 4.3)
+      System.Threading (>= 4.3)
+    System.Reactive (4.4.1)
+      System.Runtime.InteropServices.WindowsRuntime (>= 4.3)
+      System.Threading.Tasks.Extensions (>= 4.5.4)
+    System.Reflection (4.3)
+      Microsoft.NETCore.Platforms (>= 1.1)
+      Microsoft.NETCore.Targets (>= 1.1)
+      System.IO (>= 4.3)
+      System.Reflection.Primitives (>= 4.3)
+      System.Runtime (>= 4.3)
+    System.Reflection.Emit (4.7)
+      System.Reflection.Emit.ILGeneration (>= 4.7)
+    System.Reflection.Emit.ILGeneration (4.7)
+    System.Reflection.Emit.Lightweight (4.7)
+      System.Reflection.Emit.ILGeneration (>= 4.7)
+    System.Reflection.Extensions (4.3)
+      Microsoft.NETCore.Platforms (>= 1.1)
+      Microsoft.NETCore.Targets (>= 1.1)
+      System.Reflection (>= 4.3)
+      System.Runtime (>= 4.3)
+    System.Reflection.Metadata (5.0)
+      System.Collections.Immutable (>= 5.0)
+    System.Reflection.Primitives (4.3)
+      Microsoft.NETCore.Platforms (>= 1.1)
+      Microsoft.NETCore.Targets (>= 1.1)
+      System.Runtime (>= 4.3)
+    System.Reflection.TypeExtensions (4.7)
+    System.Resources.Extensions (5.0)
+      System.Memory (>= 4.5.4)
+    System.Resources.ResourceManager (4.3)
+      Microsoft.NETCore.Platforms (>= 1.1)
+      Microsoft.NETCore.Targets (>= 1.1)
+      System.Globalization (>= 4.3)
+      System.Reflection (>= 4.3)
+      System.Runtime (>= 4.3)
+    System.Runtime (4.3.1)
+      Microsoft.NETCore.Platforms (>= 1.1.1)
+      Microsoft.NETCore.Targets (>= 1.1.3)
+    System.Runtime.CompilerServices.Unsafe (5.0)
+    System.Runtime.Extensions (4.3.1)
+      Microsoft.NETCore.Platforms (>= 1.1.1)
+      Microsoft.NETCore.Targets (>= 1.1.3)
+      System.Runtime (>= 4.3.1)
+    System.Runtime.InteropServices.WindowsRuntime (4.3)
+      System.Runtime (>= 4.3)
+    System.Security.AccessControl (5.0)
+      System.Security.Principal.Windows (>= 5.0)
+    System.Security.Cryptography.Cng (5.0)
+    System.Security.Cryptography.Pkcs (5.0)
+      System.Buffers (>= 4.5.1)
+      System.Formats.Asn1 (>= 5.0)
+      System.Memory (>= 4.5.4)
+      System.Security.Cryptography.Cng (>= 5.0)
+    System.Security.Cryptography.ProtectedData (5.0)
+      System.Memory (>= 4.5.4)
+    System.Security.Permissions (5.0)
+      System.Security.AccessControl (>= 5.0)
+    System.Security.Principal.Windows (5.0)
+    System.Text.Encoding (4.3)
+      Microsoft.NETCore.Platforms (>= 1.1)
+      Microsoft.NETCore.Targets (>= 1.1)
+      System.Runtime (>= 4.3)
+    System.Text.Encoding.CodePages (5.0)
+      System.Runtime.CompilerServices.Unsafe (>= 5.0)
+    System.Threading (4.3)
+      System.Runtime (>= 4.3)
+      System.Threading.Tasks (>= 4.3)
+    System.Threading.Tasks (4.3)
+      Microsoft.NETCore.Platforms (>= 1.1)
+      Microsoft.NETCore.Targets (>= 1.1)
+      System.Runtime (>= 4.3)
+    System.Threading.Tasks.Dataflow (5.0)
+    System.Threading.Tasks.Extensions (4.5.4)
+      System.Runtime.CompilerServices.Unsafe (>= 4.5.3)
+    xunit.runner.console (2.4.1)
diff --git a/build.sh b/build.sh
new file mode 100644
index 0000000..8e0c9e2
--- /dev/null
+++ b/build.sh
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+set -e -o
+
+function version_compare() {
+    ver1=(${1//./ })
+    ver2=(${2//./ })
+
+    len1=${#ver1[@]}
+    len2=${#ver2[@]}
+
+    vlen=$(($len1 < $len2 ? $len1 : $len2))
+    
+    for ((i=0;i<vlen;i++))
+    do
+        if [ ${ver1[$i]} -gt ${ver2[$i]} ]; then
+            return 1
+        fi
+    done
+    return 0
+}
+
+MINIMAL_DOTNET_VERSION=3.1.100
+
+EXIT_CODE=0
+
+CURRENT_DOTNET_VERSION=$(dotnet --version 2> /dev/null) || EXIT_CODE=$?
+
+if (($EXIT_CODE == 0)) && version_compare "$MINIMAL_DOTNET_VERSION" "$CURRENT_DOTNET_VERSION"; then
+    echo "dotnet command already installed"
+else
+    # Install .NET Core (https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-install-script)
+    curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --version 3.1.100
+
+    PATH="~/.dotnet:$PATH"
+fi
+
+dotnet tool restore
+dotnet fake run build.fsx $@
\ No newline at end of file

From b1f42b0cf53db42764088b2bf81f473424489058 Mon Sep 17 00:00:00 2001
From: varon <varon-github@outlook.com>
Date: Tue, 10 Nov 2020 18:25:51 +0200
Subject: [PATCH 25/52] Working one-step build

---
 .gitignore                             |  5 +++-
 build.fsx                              | 13 ++--------
 objectTK.nuspec                        | 16 ++++++++++++
 paket.dependencies                     |  7 +++++
 paket.lock                             | 36 ++++++++++++++++++++++++++
 src/ObjectTK.2D/ObjectTK.2D.csproj     |  4 +++
 src/ObjectTK.2D/paket                  |  8 ++++++
 src/ObjectTK.Core/ObjectTK.Core.csproj |  4 +++
 src/ObjectTK.Core/paket                |  8 ++++++
 9 files changed, 89 insertions(+), 12 deletions(-)
 create mode 100644 objectTK.nuspec
 create mode 100644 paket.dependencies
 create mode 100644 paket.lock
 create mode 100644 src/ObjectTK.2D/paket
 create mode 100644 src/ObjectTK.Core/paket

diff --git a/.gitignore b/.gitignore
index 259653e..f7b314d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -360,4 +360,7 @@ MigrationBackup/
 
 # Fody - auto-generated XML schema
 FodyWeavers.xsd
-.idea 
+.idea 
+
+# packet.template files are autogenerated
+paket.template
diff --git a/build.fsx b/build.fsx
index e73de2a..ca657b3 100644
--- a/build.fsx
+++ b/build.fsx
@@ -91,19 +91,10 @@ let testDir = binDir </> "test"
 // Projects & Assemblies
 // ---------
 
-let toolProjects =
-    !! "src/Generators/**/*.??proj"
 
 let releaseProjects =
-    !! "src/**/*.??proj"
-    -- "src/Generator/**"
-    -- "src/Generator.Bind/**"
-    -- "src/Generator.Converter/**"
-    -- "src/Generator.Rewrite/**"
-    -- "src/SpecificationOpenGL/**"
-    -- "src/OpenAL/OpenALGenerator/**"
-    -- "src/OpenAL/OpenALTest/**"
-    -- "src/OpenAL/OpenTK.OpenAL.Extensions/**"
+    !! "src/ObjectTK.Core/*.??proj"
+    ++ "src/ObjectTK.2D/*.??proj"
 
 
 // Absolutely all test projects.
diff --git a/objectTK.nuspec b/objectTK.nuspec
new file mode 100644
index 0000000..580e9aa
--- /dev/null
+++ b/objectTK.nuspec
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
+    <metadata>
+        <id>ObjectTK</id>
+        <version>1</version>
+        <copyright>@copyright@</copyright>
+        <tags>@tags@</tags>
+        <description>@description@</description>
+        <authors>@authors@</authors>
+        <releaseNotes>@releaseNotes@</releaseNotes>
+        <projectUrl>https://github.com/opentk/opentk</projectUrl>
+        <license type="expression">MIT</license>
+        <iconUrl>https://api.nuget.org/v3-flatcontainer/opentk/3.1.0/icon</iconUrl>
+        @dependencies@
+    </metadata>
+</package>
diff --git a/paket.dependencies b/paket.dependencies
new file mode 100644
index 0000000..8843b6a
--- /dev/null
+++ b/paket.dependencies
@@ -0,0 +1,7 @@
+framework: netcoreapp3.1
+
+source https://api.nuget.org/v3/index.json
+
+// open packages
+nuget FAKE ~> 4.62
+nuget OpenTK >= 4.1
\ No newline at end of file
diff --git a/paket.lock b/paket.lock
new file mode 100644
index 0000000..1db978f
--- /dev/null
+++ b/paket.lock
@@ -0,0 +1,36 @@
+RESTRICTION: == netcoreapp3.1
+NUGET
+  remote: https://api.nuget.org/v3/index.json
+    FAKE (4.64.18)
+    OpenTK (4.1)
+      OpenTK.Compute (>= 4.1)
+      OpenTK.Core (>= 4.1)
+      OpenTK.Graphics (>= 4.1)
+      OpenTK.Input (>= 4.1)
+      OpenTK.Mathematics (>= 4.1)
+      OpenTK.OpenAL (>= 4.1)
+      OpenTK.Windowing.Common (>= 4.1)
+      OpenTK.Windowing.Desktop (>= 4.1)
+      OpenTK.Windowing.GraphicsLibraryFramework (>= 4.1)
+    OpenTK.Compute (4.1)
+    OpenTK.Core (4.1)
+    OpenTK.Graphics (4.1)
+      OpenTK.Core (>= 4.1 < 4.2)
+      OpenTK.Mathematics (>= 4.1 < 4.2)
+    OpenTK.Input (4.1)
+    OpenTK.Mathematics (4.1)
+    OpenTK.OpenAL (4.1)
+      OpenTK.Core (>= 4.1 < 4.2)
+      OpenTK.Mathematics (>= 4.1 < 4.2)
+    OpenTK.redist.glfw (3.3.0-pre20200830200122)
+    OpenTK.Windowing.Common (4.1)
+      OpenTK.Core (>= 4.1 < 4.2)
+      OpenTK.Mathematics (>= 4.1 < 4.2)
+    OpenTK.Windowing.Desktop (4.1)
+      OpenTK.Core (>= 4.1 < 4.2)
+      OpenTK.Mathematics (>= 4.1 < 4.2)
+      OpenTK.Windowing.Common (>= 4.1 < 4.2)
+      OpenTK.Windowing.GraphicsLibraryFramework (>= 4.1 < 4.2)
+    OpenTK.Windowing.GraphicsLibraryFramework (4.1)
+      OpenTK.Core (>= 4.1 < 4.2)
+      OpenTK.redist.glfw (>= 3.3.0-pre20200830200122 < 3.4.0-pre)
diff --git a/src/ObjectTK.2D/ObjectTK.2D.csproj b/src/ObjectTK.2D/ObjectTK.2D.csproj
index a7966fa..b5f7d45 100644
--- a/src/ObjectTK.2D/ObjectTK.2D.csproj
+++ b/src/ObjectTK.2D/ObjectTK.2D.csproj
@@ -5,6 +5,10 @@
         <RootNamespace>ObjectTK._2D</RootNamespace>
     </PropertyGroup>
 
+    <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
+      <DocumentationFile>bin\Release\ObjectTK.2D.xml</DocumentationFile>
+    </PropertyGroup>
+
     <ItemGroup>
         <PackageReference Include="JetBrains.Annotations" Version="2020.1.0" />
         <PackageReference Include="OpenTK" Version="4.1.0" />
diff --git a/src/ObjectTK.2D/paket b/src/ObjectTK.2D/paket
new file mode 100644
index 0000000..9481fae
--- /dev/null
+++ b/src/ObjectTK.2D/paket
@@ -0,0 +1,8 @@
+type file
+id ObjectTK.2D
+description
+    Holds 2D specific parts of ObjectTK.
+files
+    bin\Release\netcoreapp3.1\ObjectTK.2D.dll ==> lib\netcoreapp3.1
+    bin\Release\netcoreapp3.1\ObjectTK.2D.xml ==> lib\netcoreapp3.1
+    bin\Release\netcoreapp3.1\ObjectTK.2D.pdb ==> lib\netcoreapp3.1
\ No newline at end of file
diff --git a/src/ObjectTK.Core/ObjectTK.Core.csproj b/src/ObjectTK.Core/ObjectTK.Core.csproj
index a846987..5ec1c2c 100644
--- a/src/ObjectTK.Core/ObjectTK.Core.csproj
+++ b/src/ObjectTK.Core/ObjectTK.Core.csproj
@@ -6,6 +6,10 @@
     <RootNamespace>ObjectTK</RootNamespace>
   </PropertyGroup>
 
+  <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
+    <DocumentationFile>bin\Release\ObjectTK.Core.xml</DocumentationFile>
+  </PropertyGroup>
+
   <ItemGroup>
     <PackageReference Include="JetBrains.Annotations" Version="2020.1.0" />
     <PackageReference Include="OpenTK" Version="4.1.0" />
diff --git a/src/ObjectTK.Core/paket b/src/ObjectTK.Core/paket
new file mode 100644
index 0000000..8f61eae
--- /dev/null
+++ b/src/ObjectTK.Core/paket
@@ -0,0 +1,8 @@
+type file
+id ObjectTK.2D
+description
+    Holds 2D specific parts of ObjectTK.
+files
+    bin\Release\netcoreapp3.1\ObjectTK.Core.dll ==> lib\netcoreapp3.1
+    bin\Release\netcoreapp3.1\ObjectTK.Core.xml ==> lib\netcoreapp3.1
+    bin\Release\netcoreapp3.1\ObjectTK.Core.pdb ==> lib\netcoreapp3.1
\ No newline at end of file

From 745063c86be4bc199093370d28d28b741ed90c00 Mon Sep 17 00:00:00 2001
From: varon <varon-github@outlook.com>
Date: Thu, 12 Nov 2020 13:25:54 +0200
Subject: [PATCH 26/52] simplifications & API tweaks

---
 src/Examples/Examples/HelloTriangle.cs |  2 +-
 src/ObjectTK.Core/GLFactory.cs         | 11 ++++-------
 2 files changed, 5 insertions(+), 8 deletions(-)

diff --git a/src/Examples/Examples/HelloTriangle.cs b/src/Examples/Examples/HelloTriangle.cs
index 6f2858e..e7c39c0 100644
--- a/src/Examples/Examples/HelloTriangle.cs
+++ b/src/Examples/Examples/HelloTriangle.cs
@@ -68,10 +68,10 @@ protected override void OnLoad() {
             // create the triangle to draw
             var positions = new[] {new Vector3(-1, -1, 0), new Vector3(1, -1, 0), new Vector3(0, 1, 0)};
             var colors = new[] {Color4.Cornsilk, Color4.OrangeRed, Color4.DarkOliveGreen};
+            
             _positionsVbo = GLFactory.Buffer.ArrayBuffer("Positions", positions);
             _colorsVbo = GLFactory.Buffer.ArrayBuffer("Colors", colors);
             _vao = GLFactory.VertexArray.FromBuffers("Triangle", _positionsVbo, _colorsVbo);
-
         }
 
         protected override void OnRenderFrame(FrameEventArgs e) {
diff --git a/src/ObjectTK.Core/GLFactory.cs b/src/ObjectTK.Core/GLFactory.cs
index 92d4a40..a4ad0e5 100644
--- a/src/ObjectTK.Core/GLFactory.cs
+++ b/src/ObjectTK.Core/GLFactory.cs
@@ -108,9 +108,9 @@ public Buffer<T> ArrayBuffer<T>(string name, [NotNull] T[] vertices, BufferUsage
     
     
         [EditorBrowsable(EditorBrowsableState.Advanced)]
-        public sealed class GLVertexArrayObjectFactory {
-            public static GLVertexArrayObjectFactory Instance { get; } = new GLVertexArrayObjectFactory();
-            private GLVertexArrayObjectFactory() { }
+        public sealed class GLVertexArrayFactory {
+            public static GLVertexArrayFactory Instance { get; } = new GLVertexArrayFactory();
+            private GLVertexArrayFactory() { }
             
             // Hide the default members of this object for a cleaner API.
             
@@ -186,10 +186,7 @@ public static class GLFactory {
 
         public static readonly GLShaderFactory Shader = GLShaderFactory.Instance;
         public static readonly GLBufferFactory Buffer = GLBufferFactory.Instance;
-        public static readonly GLVertexArrayObjectFactory VertexArrayObject = GLVertexArrayObjectFactory.Instance;
-        /// Alias for VertexArrayObject
-        // ReSharper disable once InconsistentNaming
-        public static readonly GLVertexArrayObjectFactory VertexArray = VertexArrayObject;
+        public static readonly GLVertexArrayFactory VertexArray = GLVertexArrayFactory.Instance;
 
     }
     

From f570f69fa7ad4e17f0218abfbbfe91941875dede Mon Sep 17 00:00:00 2001
From: varon <varon-github@outlook.com>
Date: Fri, 13 Nov 2020 10:04:38 +0200
Subject: [PATCH 27/52] Update package id

---
 src/ObjectTK.Core/paket | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/ObjectTK.Core/paket b/src/ObjectTK.Core/paket
index 8f61eae..0cf12d8 100644
--- a/src/ObjectTK.Core/paket
+++ b/src/ObjectTK.Core/paket
@@ -1,7 +1,7 @@
 type file
-id ObjectTK.2D
+id ObjectTK.Core
 description
-    Holds 2D specific parts of ObjectTK.
+    Holds fundamental abstractions of OpenGL and core components of ObjectTK.
 files
     bin\Release\netcoreapp3.1\ObjectTK.Core.dll ==> lib\netcoreapp3.1
     bin\Release\netcoreapp3.1\ObjectTK.Core.xml ==> lib\netcoreapp3.1

From 384a2ecf7768a5cddf06657384dc58a3fd1adc19 Mon Sep 17 00:00:00 2001
From: varon <varon-github@outlook.com>
Date: Fri, 13 Nov 2020 10:04:49 +0200
Subject: [PATCH 28/52] fix shader compiler bug

---
 src/ObjectTK.Core/Shaders/ShaderCompiler.cs | 1 -
 1 file changed, 1 deletion(-)

diff --git a/src/ObjectTK.Core/Shaders/ShaderCompiler.cs b/src/ObjectTK.Core/Shaders/ShaderCompiler.cs
index 472abbf..32b70be 100644
--- a/src/ObjectTK.Core/Shaders/ShaderCompiler.cs
+++ b/src/ObjectTK.Core/Shaders/ShaderCompiler.cs
@@ -46,7 +46,6 @@ public static ShaderProgram Introspect(int prog, ShaderStage[] stages) {
                     Size = count,
                     ActiveAttribType = attrType,
                 };
-                GL.VertexAttribPointer(0, 3, VertexAttribPointerType.Float, false, 3 * sizeof(float), 0);
             }
             
             // inspect the uniforms

From 40b6db0f43fe8b16985898795480a3d144effc35 Mon Sep 17 00:00:00 2001
From: varon <varon-github@outlook.com>
Date: Fri, 13 Nov 2020 10:07:13 +0200
Subject: [PATCH 29/52] API additions & fixes

---
 src/ObjectTK.Core/GLFactory.cs             | 16 ++++++++++++++--
 src/ObjectTK.Core/GLObjects/VertexArray.cs |  2 +-
 2 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/src/ObjectTK.Core/GLFactory.cs b/src/ObjectTK.Core/GLFactory.cs
index a4ad0e5..824d11d 100644
--- a/src/ObjectTK.Core/GLFactory.cs
+++ b/src/ObjectTK.Core/GLFactory.cs
@@ -104,6 +104,7 @@ public Buffer<T> ArrayBuffer<T>(string name, [NotNull] T[] vertices, BufferUsage
                 GL.BindBuffer(BufferTarget.ArrayBuffer, 0);
                 return new Buffer<T>(name, vbo, vertices.Length);
             }
+            
         }
     
     
@@ -174,9 +175,20 @@ public VertexArray FromBuffers([NotNull] string name, [NotNull] params Buffer[]
                 
                 return new VertexArray(name, vao, length);
             }
-
+            
+            
+            /// Loads a vertex and fragment shader from an embedded resource in the executing assembly.
+            [Pure]
+            [NotNull]
+            public VertexArray IndexAndVertexBuffers([NotNull] string name, Buffer<int> indexBuffer, params Buffer[] vertexBuffers) {
+                var b = FromBuffers(name, vertexBuffers);
+                GL.BindVertexArray(b.Handle);
+                GL.BindBuffer(BufferTarget.ElementArrayBuffer, indexBuffer.Handle);
+                GL.BindVertexArray(0);
+                b.ElementCount = indexBuffer.ElementCount;
+                return b;
+            }
         }
-
     }
 
     /// Top-level class responsible for creating all OpenGL objects.
diff --git a/src/ObjectTK.Core/GLObjects/VertexArray.cs b/src/ObjectTK.Core/GLObjects/VertexArray.cs
index 749c55e..bb4c6e2 100644
--- a/src/ObjectTK.Core/GLObjects/VertexArray.cs
+++ b/src/ObjectTK.Core/GLObjects/VertexArray.cs
@@ -8,7 +8,7 @@ public class VertexArray {
 		/// The OpenGL handle. Use this to interact with OpenGL.
 		public int Handle { get; }
 		/// The number of elements in this VAO.
-		public int ElementCount { get; }
+		public int ElementCount { get; set; }
 
 		public VertexArray(string name, int handle, int elementCount) {
 			Name = name;

From 9ee63c89a6443db1771b13676f5e4668b11b7ad6 Mon Sep 17 00:00:00 2001
From: varon <varon-github@outlook.com>
Date: Fri, 13 Nov 2020 10:08:55 +0200
Subject: [PATCH 30/52] add new API for element array buffers

---
 src/ObjectTK.Core/GLFactory.cs             | 6 +++---
 src/ObjectTK.Core/GLObjects/VertexArray.cs | 6 +++++-
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/ObjectTK.Core/GLFactory.cs b/src/ObjectTK.Core/GLFactory.cs
index 824d11d..3ac1249 100644
--- a/src/ObjectTK.Core/GLFactory.cs
+++ b/src/ObjectTK.Core/GLFactory.cs
@@ -173,11 +173,10 @@ public VertexArray FromBuffers([NotNull] string name, [NotNull] params Buffer[]
                 GL.BindBuffer(BufferTarget.ArrayBuffer, 0);
                 GL.BindVertexArray(0);
                 
-                return new VertexArray(name, vao, length);
+                return new VertexArray(name, vao, length, false);
             }
             
-            
-            /// Loads a vertex and fragment shader from an embedded resource in the executing assembly.
+            /// Creates a vertex array from the 
             [Pure]
             [NotNull]
             public VertexArray IndexAndVertexBuffers([NotNull] string name, Buffer<int> indexBuffer, params Buffer[] vertexBuffers) {
@@ -186,6 +185,7 @@ public VertexArray IndexAndVertexBuffers([NotNull] string name, Buffer<int> inde
                 GL.BindBuffer(BufferTarget.ElementArrayBuffer, indexBuffer.Handle);
                 GL.BindVertexArray(0);
                 b.ElementCount = indexBuffer.ElementCount;
+                b.HasElementArrayBuffer = true;
                 return b;
             }
         }
diff --git a/src/ObjectTK.Core/GLObjects/VertexArray.cs b/src/ObjectTK.Core/GLObjects/VertexArray.cs
index bb4c6e2..d0498f8 100644
--- a/src/ObjectTK.Core/GLObjects/VertexArray.cs
+++ b/src/ObjectTK.Core/GLObjects/VertexArray.cs
@@ -9,11 +9,15 @@ public class VertexArray {
 		public int Handle { get; }
 		/// The number of elements in this VAO.
 		public int ElementCount { get; set; }
+		
+		/// If this vertex array has an element array buffer (i.e. should be displayed using indexed drawing).
+		public bool HasElementArrayBuffer { get; set; }
 
-		public VertexArray(string name, int handle, int elementCount) {
+		public VertexArray(string name, int handle, int elementCount, int hasElementArrayBuffer) {
 			Name = name;
 			Handle = handle;
 			ElementCount = elementCount;
+			HasElementArrayBuffer = hasElementArrayBuffer;
 		}
 	}
 }

From 03b65757148ef12c22e2beb886446aec1391868f Mon Sep 17 00:00:00 2001
From: varon <varon-github@outlook.com>
Date: Fri, 13 Nov 2020 10:09:41 +0200
Subject: [PATCH 31/52] Release 2.0.0-pre.2

---
 RELEASE_NOTES.md | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md
index f558d00..c1f8a11 100644
--- a/RELEASE_NOTES.md
+++ b/RELEASE_NOTES.md
@@ -1,3 +1,8 @@
+### 2.0.0-pre.2
+    * Fix error in shader compiler.
+    * Add support for indexed vertex arrays.
+
+
 ### 2.0.0-pre.1
     * Start of release notes for v2.
-    * Initial testing of build automation.
\ No newline at end of file
+    * Initial testing of build automation.

From 0a08a72d5245b7819a96d11c33af9101709f547d Mon Sep 17 00:00:00 2001
From: varon <varon-github@outlook.com>
Date: Fri, 13 Nov 2020 10:13:00 +0200
Subject: [PATCH 32/52] Fix build

---
 src/Examples/Examples/HelloTriangleWithExtensions.cs | 2 +-
 src/ObjectTK.Core/GLObjects/VertexArray.cs           | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/Examples/Examples/HelloTriangleWithExtensions.cs b/src/Examples/Examples/HelloTriangleWithExtensions.cs
index 6c49b48..e8754dd 100644
--- a/src/Examples/Examples/HelloTriangleWithExtensions.cs
+++ b/src/Examples/Examples/HelloTriangleWithExtensions.cs
@@ -29,7 +29,7 @@ protected override void OnLoad() {
             VBO = new Buffer<Vector3>("Positions", GL.GenBuffer(), 0);
             VBO.BufferData(BufferTarget.ArrayBuffer, Vertices);
 
-            VAO = new VertexArray("Triangle", GL.GenVertexArray(), Vertices.Length);
+            VAO = new VertexArray("Triangle", GL.GenVertexArray(), Vertices.Length,false);
             VAO.BindVertexAttribute(ShaderProgram.Variables.InPosition, VBO);
 
             ActiveCamera.Position = new Vector3(0, 0, 3);
diff --git a/src/ObjectTK.Core/GLObjects/VertexArray.cs b/src/ObjectTK.Core/GLObjects/VertexArray.cs
index d0498f8..961cea0 100644
--- a/src/ObjectTK.Core/GLObjects/VertexArray.cs
+++ b/src/ObjectTK.Core/GLObjects/VertexArray.cs
@@ -13,7 +13,7 @@ public class VertexArray {
 		/// If this vertex array has an element array buffer (i.e. should be displayed using indexed drawing).
 		public bool HasElementArrayBuffer { get; set; }
 
-		public VertexArray(string name, int handle, int elementCount, int hasElementArrayBuffer) {
+		public VertexArray(string name, int handle, int elementCount, bool hasElementArrayBuffer) {
 			Name = name;
 			Handle = handle;
 			ElementCount = elementCount;

From 4db61a6eed18a5828393d0451021bc656dd57303 Mon Sep 17 00:00:00 2001
From: varon <varon-github@outlook.com>
Date: Fri, 13 Nov 2020 10:24:34 +0200
Subject: [PATCH 33/52] Adjust labelling

---
 src/ObjectTK.Core/GLFactory.cs | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/ObjectTK.Core/GLFactory.cs b/src/ObjectTK.Core/GLFactory.cs
index 3ac1249..c152d3d 100644
--- a/src/ObjectTK.Core/GLFactory.cs
+++ b/src/ObjectTK.Core/GLFactory.cs
@@ -94,8 +94,8 @@ public override string ToString()
             public Buffer<T> ArrayBuffer<T>(string name, [NotNull] T[] vertices, BufferUsageHint usageHint = BufferUsageHint.StaticDraw) where T: unmanaged {
                 var vbo = GL.GenBuffer();
                 var label = $"Buffer: {name}";
-                GL.ObjectLabel(ObjectLabelIdentifier.Buffer, vbo,label.Length, label);
                 GL.BindBuffer(BufferTarget.ArrayBuffer, vbo);
+                GL.ObjectLabel(ObjectLabelIdentifier.Buffer, vbo,label.Length, label);
                 int elemSize;
                 unsafe {
                     elemSize = sizeof(T);
@@ -161,8 +161,8 @@ public VertexArray FromBuffers([NotNull] string name, [NotNull] params Buffer[]
                 
                 var vao = GL.GenVertexArray();
                 var label = $"VertexArray: {name}";
-                GL.ObjectLabel(ObjectLabelIdentifier.VertexArray,vao, name.Length, label);
                 GL.BindVertexArray(vao);
+                GL.ObjectLabel(ObjectLabelIdentifier.VertexArray,vao, name.Length, label);
                 for (int i = 0; i < buffers.Length; i++) {
                     var buffer = buffers[i];
                     GL.BindBuffer(BufferTarget.ArrayBuffer, buffer.Handle);

From f408d56a32625fb10b80058593861aeed140b5a3 Mon Sep 17 00:00:00 2001
From: varon <varon-github@outlook.com>
Date: Fri, 13 Nov 2020 10:25:20 +0200
Subject: [PATCH 34/52] Release 2.0.0-pre.3

---
 RELEASE_NOTES.md | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md
index c1f8a11..8709b1a 100644
--- a/RELEASE_NOTES.md
+++ b/RELEASE_NOTES.md
@@ -1,3 +1,5 @@
+### 2.0.0-pre.3
+    * Fix labelling error.
 ### 2.0.0-pre.2
     * Fix error in shader compiler.
     * Add support for indexed vertex arrays.

From 36ecd880c411fe8594fe4db540ff412ed121656b Mon Sep 17 00:00:00 2001
From: varon <varon-github@outlook.com>
Date: Fri, 13 Nov 2020 11:54:57 +0200
Subject: [PATCH 35/52] Fix component count in buffers

---
 src/ObjectTK.Core/GLObjects/Buffer.cs | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/ObjectTK.Core/GLObjects/Buffer.cs b/src/ObjectTK.Core/GLObjects/Buffer.cs
index 28ebfcd..82a25d7 100644
--- a/src/ObjectTK.Core/GLObjects/Buffer.cs
+++ b/src/ObjectTK.Core/GLObjects/Buffer.cs
@@ -46,10 +46,9 @@ public TypeToGLInfoCache(VertexAttribPointerType attribPointerType, int componen
 		private static readonly Dictionary<Type, TypeToGLInfoCache> InfoCache = new Dictionary<Type, TypeToGLInfoCache>();
 
 		private static void Add<T2>(VertexAttribPointerType vapt, int componentCount) {
-			InfoCache[typeof(T2)] = new TypeToGLInfoCache(VertexAttribPointerType.Float, 3);
+			InfoCache[typeof(T2)] = new TypeToGLInfoCache(vapt, componentCount);
 		}
 		
-		
 		static BufferHelper() {
 			Add<byte>(VertexAttribPointerType.Byte, 1);
 			Add<sbyte>(VertexAttribPointerType.UnsignedByte, 1);

From 9c6b1df75a3ffcc05c2e97fc53089dca847e971c Mon Sep 17 00:00:00 2001
From: varon <varon-github@outlook.com>
Date: Fri, 13 Nov 2020 11:55:49 +0200
Subject: [PATCH 36/52] Release 2.0.0-pre.4

---
 RELEASE_NOTES.md | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md
index 8709b1a..1a7cc5e 100644
--- a/RELEASE_NOTES.md
+++ b/RELEASE_NOTES.md
@@ -1,5 +1,9 @@
+### 2.0.0-pre.4
+    * Fix component count error in buffers.
+
 ### 2.0.0-pre.3
     * Fix labelling error.
+
 ### 2.0.0-pre.2
     * Fix error in shader compiler.
     * Add support for indexed vertex arrays.

From 8036c46aa04dc90f6b5145c665736e75d3dbab64 Mon Sep 17 00:00:00 2001
From: varon <varon-github@outlook.com>
Date: Sat, 21 Nov 2020 15:01:47 +0200
Subject: [PATCH 37/52] Add texture config

---
 src/ObjectTK.Core/TextureConfig.cs | 54 ++++++++++++++++++++++++++++++
 1 file changed, 54 insertions(+)
 create mode 100644 src/ObjectTK.Core/TextureConfig.cs

diff --git a/src/ObjectTK.Core/TextureConfig.cs b/src/ObjectTK.Core/TextureConfig.cs
new file mode 100644
index 0000000..894f4bd
--- /dev/null
+++ b/src/ObjectTK.Core/TextureConfig.cs
@@ -0,0 +1,54 @@
+using System;
+using System.ComponentModel;
+using JetBrains.Annotations;
+using OpenTK.Graphics.OpenGL;
+
+namespace ObjectTK {
+
+    public class TextureConfig {
+
+        public TextureMagFilter MagFilter { get; set; } = TextureMagFilter.Linear;
+        public TextureMinFilter MinFilter { get; set; } = TextureMinFilter.LinearMipmapNearest;
+
+        /// The format the OpenGL stores this texture data in, internally.
+        /// By default, this is an RGBA 8BPP (8 bits per pixel) format.
+        public PixelInternalFormat InternalFormat { get; set; } = PixelInternalFormat.Rgba;
+        
+        /// The format of the data used to create this texture.
+        public PixelFormat PixelFormat { get; set; } = PixelFormat.Bgra;
+        /// The data type of each pixel's channel used to create this texture.
+        public PixelType PixelType { get; set; } = PixelType.UnsignedByte;
+
+        /// If mipmaps should be generated for this texture (if applicable).
+        public bool GenerateMipmaps { get; set; } = true;
+        
+        // Hide the default members of this object for a cleaner API.
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public override bool Equals(object obj)
+        {
+            // ReSharper disable once BaseObjectEqualsIsObjectEquals
+            return base.Equals(obj);
+        }
+
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public override int GetHashCode()
+        {
+            // ReSharper disable once BaseObjectGetHashCodeCallInGetHashCode
+            return base.GetHashCode();
+        }
+
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        // ReSharper disable once AnnotateCanBeNullTypeMember
+        public override string ToString()
+        {
+            return base.ToString();
+        }
+
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        [NotNull]
+        public new Type GetType() {
+            return base.GetType();
+        }
+    }
+    
+}

From ed5e448d028eca87bf865bdf0b0db6107b1f6d21 Mon Sep 17 00:00:00 2001
From: varon <varon-github@outlook.com>
Date: Sat, 21 Nov 2020 15:01:59 +0200
Subject: [PATCH 38/52] Add texture factory

---
 src/ObjectTK.Core/GLFactory.cs          | 57 +++++++++++++++++++++---
 src/ObjectTK.Core/GLObjects/Textures.cs | 58 ++++++++++++-------------
 2 files changed, 78 insertions(+), 37 deletions(-)

diff --git a/src/ObjectTK.Core/GLFactory.cs b/src/ObjectTK.Core/GLFactory.cs
index c152d3d..0fe21ac 100644
--- a/src/ObjectTK.Core/GLFactory.cs
+++ b/src/ObjectTK.Core/GLFactory.cs
@@ -23,7 +23,6 @@ public ShaderProgram VertexFrag(string name, string vertexSource, string fragSou
             }
             
             // Hide the default members of this object for a cleaner API.
-            
             [EditorBrowsable(EditorBrowsableState.Never)]
             public override bool Equals(object obj)
             {
@@ -50,7 +49,56 @@ public override string ToString()
             public new Type GetType() {
                 return base.GetType();
             }
+        }
+        
+        
+        [EditorBrowsable(EditorBrowsableState.Advanced)]
+        public sealed class GLTextureFactory {
+            public static GLTextureFactory Instance { get; } = new GLTextureFactory();
+            private GLTextureFactory() { }
+            
+            /// Creates a texture from a raw pointer.
+            /// This is typically used for creation from a bitmap.
+            [NotNull]
+            [MustUseReturnValue]
+            public Texture2D Create2D(string name, [NotNull] TextureConfig cfg, int width, int height, IntPtr data) {
+                var t = GL.GenTexture();
+                GL.BindTexture(TextureTarget.Texture2D, t);
+                GL.TexImage2D(TextureTarget.Texture2D, 0,cfg.InternalFormat, width, height, 0, cfg.PixelFormat, cfg.PixelType, data);
+                GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int) cfg.MagFilter);
+                GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int) cfg.MinFilter);
+                GL.ObjectLabel(ObjectLabelIdentifier.Texture, t, name.Length, name);
+                GL.BindTexture(TextureTarget.Texture2D, 0);
+                return new Texture2D(t, name, cfg.InternalFormat, width, height);
+            }
+
+            // Hide the default members of this object for a cleaner API.
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            public override bool Equals(object obj)
+            {
+                // ReSharper disable once BaseObjectEqualsIsObjectEquals
+                return base.Equals(obj);
+            }
+
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            public override int GetHashCode()
+            {
+                // ReSharper disable once BaseObjectGetHashCodeCallInGetHashCode
+                return base.GetHashCode();
+            }
 
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            // ReSharper disable once AnnotateCanBeNullTypeMember
+            public override string ToString()
+            {
+                return base.ToString();
+            }
+
+            [EditorBrowsable(EditorBrowsableState.Never)]
+            [NotNull]
+            public new Type GetType() {
+                return base.GetType();
+            }
         }
         
         [EditorBrowsable(EditorBrowsableState.Advanced)]
@@ -104,10 +152,8 @@ public Buffer<T> ArrayBuffer<T>(string name, [NotNull] T[] vertices, BufferUsage
                 GL.BindBuffer(BufferTarget.ArrayBuffer, 0);
                 return new Buffer<T>(name, vbo, vertices.Length);
             }
-            
         }
     
-    
         [EditorBrowsable(EditorBrowsableState.Advanced)]
         public sealed class GLVertexArrayFactory {
             public static GLVertexArrayFactory Instance { get; } = new GLVertexArrayFactory();
@@ -157,8 +203,6 @@ public VertexArray FromBuffers([NotNull] string name, [NotNull] params Buffer[]
                 }
                 #endif
                 
-                
-                
                 var vao = GL.GenVertexArray();
                 var label = $"VertexArray: {name}";
                 GL.BindVertexArray(vao);
@@ -199,8 +243,7 @@ public static class GLFactory {
         public static readonly GLShaderFactory Shader = GLShaderFactory.Instance;
         public static readonly GLBufferFactory Buffer = GLBufferFactory.Instance;
         public static readonly GLVertexArrayFactory VertexArray = GLVertexArrayFactory.Instance;
-
+        public static readonly GLTextureFactory Texture = GLTextureFactory.Instance;
     }
     
-    
 }
diff --git a/src/ObjectTK.Core/GLObjects/Textures.cs b/src/ObjectTK.Core/GLObjects/Textures.cs
index e743368..2015524 100644
--- a/src/ObjectTK.Core/GLObjects/Textures.cs
+++ b/src/ObjectTK.Core/GLObjects/Textures.cs
@@ -5,17 +5,17 @@ public interface ITexture {
 		int Handle { get; }
 		string Name { get; set; }
 		TextureTarget TextureTarget { get; }
-		SizedInternalFormat InternalFormat { get; set; }
+		PixelInternalFormat InternalFormat { get; set; }
 	}
 
 	public sealed class Texture1D : ITexture {
 		public int Handle { get; }
 		public string Name { get; set; }
-		public SizedInternalFormat InternalFormat { get; set; }
+		public PixelInternalFormat InternalFormat { get; set; }
 		public TextureTarget TextureTarget => TextureTarget.Texture1D;
 		public int Width { get; set; }
 		public int MipLevels { get; set; }
-		public Texture1D(int Handle, string Name, SizedInternalFormat InternalFormat, int Width, int MipLevels) {
+		public Texture1D(int Handle, string Name, PixelInternalFormat InternalFormat, int Width, int MipLevels) {
 			this.Handle = Handle;
 			this.Name = Name;
 			this.InternalFormat = InternalFormat;
@@ -28,30 +28,28 @@ public Texture1D(int Handle, string Name, SizedInternalFormat InternalFormat, in
 	public sealed class Texture2D : ITexture {
 		public int Handle { get; }
 		public string Name { get; set; }
-		public SizedInternalFormat InternalFormat { get; set; }
 		public TextureTarget TextureTarget => TextureTarget.Texture2D;
+		public PixelInternalFormat InternalFormat { get; set; }
 		public int Width { get; set; }
 		public int Height { get; set; }
-		public int MipLevels { get; set; }
-		public Texture2D(int Handle, string Name, SizedInternalFormat InternalFormat, int Width, int Height, int MipLevels) {
-			this.Handle = Handle;
-			this.Name = Name;
-			this.InternalFormat = InternalFormat;
-			this.Width = Width;
-			this.Height = Height;
-			this.MipLevels = MipLevels;
+		public Texture2D(int handle, string name, PixelInternalFormat internalFormat, int width, int height) {
+			Handle = handle;
+			Name = name;
+			InternalFormat = internalFormat;
+			Width = width;
+			Height = height;
 		}
 	}
 
 	public sealed class Texture1DArray : ITexture {
 		public int Handle { get; }
 		public string Name { get; set; }
-		public SizedInternalFormat InternalFormat { get; set; }
+		public PixelInternalFormat InternalFormat { get; set; }
 		public TextureTarget TextureTarget => TextureTarget.Texture1DArray;
 		public int Width { get; set; }
 		public int Layers { get; set; }
 		public int MipLevels { get; set; }
-		public Texture1DArray(int Handle, string Name, SizedInternalFormat InternalFormat, int Width, int Layers, int MipLevels) {
+		public Texture1DArray(int Handle, string Name, PixelInternalFormat InternalFormat, int Width, int Layers, int MipLevels) {
 			this.Handle = Handle;
 			this.Name = Name;
 			this.InternalFormat = InternalFormat;
@@ -64,13 +62,13 @@ public Texture1DArray(int Handle, string Name, SizedInternalFormat InternalForma
 	public sealed class Texture2DArray : ITexture {
 		public int Handle { get; }
 		public string Name { get; set; }
-		public SizedInternalFormat InternalFormat { get; set; }
+		public PixelInternalFormat InternalFormat { get; set; }
 		public TextureTarget TextureTarget => TextureTarget.Texture2DArray;
 		public int Width { get; set; }
 		public int Height { get; set; }
 		public int Layers { get; set; }
 		public int MipLevels { get; set; }
-		public Texture2DArray(int Handle, string Name, SizedInternalFormat InternalFormat, int Width, int Height, int Layers, int MipLevels) {
+		public Texture2DArray(int Handle, string Name, PixelInternalFormat InternalFormat, int Width, int Height, int Layers, int MipLevels) {
 			this.Handle = Handle;
 			this.Name = Name;
 			this.InternalFormat = InternalFormat;
@@ -84,13 +82,13 @@ public Texture2DArray(int Handle, string Name, SizedInternalFormat InternalForma
 	public sealed class Texture2DMultisample : ITexture {
 		public int Handle { get; }
 		public string Name { get; set; }
-		public SizedInternalFormat InternalFormat { get; set; }
+		public PixelInternalFormat InternalFormat { get; set; }
 		public TextureTarget TextureTarget => TextureTarget.Texture2DMultisample;
 		public int Width { get; set; }
 		public int Height { get; set; }
 		public int Samples { get; set; }
 		public bool FixedSampleLocations { get; set; }
-		public Texture2DMultisample(int Handle, string Name, SizedInternalFormat InternalFormat, int Width, int Height, int Samples, bool FixedSampleLocations) {
+		public Texture2DMultisample(int Handle, string Name, PixelInternalFormat InternalFormat, int Width, int Height, int Samples, bool FixedSampleLocations) {
 			this.Handle = Handle;
 			this.Name = Name;
 			this.InternalFormat = InternalFormat;
@@ -104,14 +102,14 @@ public Texture2DMultisample(int Handle, string Name, SizedInternalFormat Interna
 	public sealed class Texture2DMultisampleArray : ITexture {
 		public int Handle { get; }
 		public string Name { get; set; }
-		public SizedInternalFormat InternalFormat { get; set; }
+		public PixelInternalFormat InternalFormat { get; set; }
 		public TextureTarget TextureTarget => TextureTarget.Texture2DMultisampleArray;
 		public int Width { get; set; }
 		public int Height { get; set; }
 		public int Samples { get; set; }
 		public bool FixedSampleLocations { get; set; }
 		public int Layers { get; set; }
-		public Texture2DMultisampleArray(int Handle, string Name, SizedInternalFormat InternalFormat, int Width, int Height, int Layers, int Samples, bool FixedSampleLocations) {
+		public Texture2DMultisampleArray(int Handle, string Name, PixelInternalFormat InternalFormat, int Width, int Height, int Layers, int Samples, bool FixedSampleLocations) {
 			this.Handle = Handle;
 			this.Name = Name;
 			this.InternalFormat = InternalFormat;
@@ -126,11 +124,11 @@ public Texture2DMultisampleArray(int Handle, string Name, SizedInternalFormat In
 	public sealed class TextureRectangle : ITexture {
 		public int Handle { get; }
 		public string Name { get; set; }
-		public SizedInternalFormat InternalFormat { get; set; }
+		public PixelInternalFormat InternalFormat { get; set; }
 		public TextureTarget TextureTarget => TextureTarget.TextureRectangle;
 		public int Width { get; set; }
 		public int Height { get; set; }
-		public TextureRectangle(int Handle, string Name, SizedInternalFormat InternalFormat, int Width, int Height) {
+		public TextureRectangle(int Handle, string Name, PixelInternalFormat InternalFormat, int Width, int Height) {
 			this.Handle = Handle;
 			this.Name = Name;
 			this.InternalFormat = InternalFormat;
@@ -142,11 +140,11 @@ public TextureRectangle(int Handle, string Name, SizedInternalFormat InternalFor
 	public sealed class TextureCubeMap : ITexture {
 		public int Handle { get; }
 		public string Name { get; set; }
-		public SizedInternalFormat InternalFormat { get; set; }
+		public PixelInternalFormat InternalFormat { get; set; }
 		public TextureTarget TextureTarget => TextureTarget.TextureCubeMap;
 		public int Size { get; set; }
 		public int MipLevels { get; set; }
-		public TextureCubeMap(int Handle, string Name, SizedInternalFormat InternalFormat, int Size, int MipLevels) {
+		public TextureCubeMap(int Handle, string Name, PixelInternalFormat InternalFormat, int Size, int MipLevels) {
 			this.Handle = Handle;
 			this.Name = Name;
 			this.InternalFormat = InternalFormat;
@@ -158,12 +156,12 @@ public TextureCubeMap(int Handle, string Name, SizedInternalFormat InternalForma
 	public sealed class TextureCubeMapArray : ITexture {
 		public int Handle { get; }
 		public string Name { get; set; }
-		public SizedInternalFormat InternalFormat { get; set; }
+		public PixelInternalFormat InternalFormat { get; set; }
 		public TextureTarget TextureTarget => TextureTarget.TextureCubeMapArray;
 		public int Size { get; set; }
 		public int Layers { get; set; }
 		public int MipLevels { get; set; }
-		public TextureCubeMapArray(int Handle, string Name, SizedInternalFormat InternalFormat, int Size, int Layers, int MipLevels) {
+		public TextureCubeMapArray(int Handle, string Name, PixelInternalFormat InternalFormat, int Size, int Layers, int MipLevels) {
 			this.Handle = Handle;
 			this.Name = Name;
 			this.InternalFormat = InternalFormat;
@@ -176,10 +174,10 @@ public TextureCubeMapArray(int Handle, string Name, SizedInternalFormat Internal
 	public sealed class TextureBuffer : ITexture {
 		public int Handle { get; }
 		public string Name { get; set; }
-		public SizedInternalFormat InternalFormat { get; set; }
+		public PixelInternalFormat InternalFormat { get; set; }
 		public TextureTarget TextureTarget => TextureTarget.TextureBuffer;
 		//TODO: I don't know much about this texture type
-		public TextureBuffer(int Handle, string Name, SizedInternalFormat InternalFormat) {
+		public TextureBuffer(int Handle, string Name, PixelInternalFormat InternalFormat) {
 			this.Handle = Handle;
 			this.InternalFormat = InternalFormat;
 		}
@@ -188,13 +186,13 @@ public TextureBuffer(int Handle, string Name, SizedInternalFormat InternalFormat
 	public sealed class Texture3D : ITexture {
 		public int Handle { get; }
 		public string Name { get; set; }
-		public SizedInternalFormat InternalFormat { get; set; }
+		public PixelInternalFormat InternalFormat { get; set; }
 		public TextureTarget TextureTarget => TextureTarget.Texture3D;
 		public int Width { get; set; }
 		public int Height { get; set; }
 		public int Layers { get; set; }
 		public int MipLevels { get; set; }
-		public Texture3D(int Handle, string Name, SizedInternalFormat InternalFormat, int Width, int Height, int Layers, int MipLevels) {
+		public Texture3D(int Handle, string Name, PixelInternalFormat InternalFormat, int Width, int Height, int Layers, int MipLevels) {
 			this.Handle = Handle;
 			this.Name = Name;
 			this.InternalFormat = InternalFormat;

From abcdc9f7e5e5983ec2f3a2d37c79ede241f9af7c Mon Sep 17 00:00:00 2001
From: varon <varon-github@outlook.com>
Date: Sat, 21 Nov 2020 15:02:06 +0200
Subject: [PATCH 39/52] Add zoom to camera

---
 src/ObjectTK.2D/Camera2D.cs | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/src/ObjectTK.2D/Camera2D.cs b/src/ObjectTK.2D/Camera2D.cs
index 5eaa40a..9d24c1f 100644
--- a/src/ObjectTK.2D/Camera2D.cs
+++ b/src/ObjectTK.2D/Camera2D.cs
@@ -1,3 +1,4 @@
+using JetBrains.Annotations;
 using OpenTK.Mathematics;
 
 namespace ObjectTK._2D {
@@ -37,5 +38,13 @@ public float Rotation {
         public Matrix4 View => Matrix4.CreateRotationZ(Rotation) * Matrix4.CreateTranslation(Position.X, Position.Y, -10);
 
         public Matrix4 ViewProjection => View * Projection;
+        
+        /// 'Zooms in' the camera by a percentage by manipulating the VerticalSize relative to its current value.
+        /// Zoom delta is expressed in percent:
+        /// 1.0 = 1%.
+        /// 100.0 = 100% Zoom.
+        public void ZoomIn([NotNull] float zoomDelta) {            
+            VerticalSize += zoomDelta * VerticalSize / 100.0f;
+        }
     }
 }

From b5164d6bee7eb83c5b18b069fa9ed8d3c15bdfcc Mon Sep 17 00:00:00 2001
From: varon <varon-github@outlook.com>
Date: Sat, 21 Nov 2020 15:02:50 +0200
Subject: [PATCH 40/52] Release 2.0.0-pre.5

---
 RELEASE_NOTES.md | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md
index 1a7cc5e..6dff633 100644
--- a/RELEASE_NOTES.md
+++ b/RELEASE_NOTES.md
@@ -1,3 +1,8 @@
+### 2.0.0-pre.5
+    * Add textures to GLFactory + TextureConfig
+    * Add Zoom functionality to Camera2D
+
+
 ### 2.0.0-pre.4
     * Fix component count error in buffers.
 

From 5c32c3927380501ade35dfdce0e3eb7bf7bf548e Mon Sep 17 00:00:00 2001
From: varon <varon-github@outlook.com>
Date: Sat, 21 Nov 2020 15:04:38 +0200
Subject: [PATCH 41/52] Add aspectRatio to texture

---
 src/ObjectTK.Core/GLObjects/Textures.cs | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/ObjectTK.Core/GLObjects/Textures.cs b/src/ObjectTK.Core/GLObjects/Textures.cs
index 2015524..fb45d49 100644
--- a/src/ObjectTK.Core/GLObjects/Textures.cs
+++ b/src/ObjectTK.Core/GLObjects/Textures.cs
@@ -32,6 +32,10 @@ public sealed class Texture2D : ITexture {
 		public PixelInternalFormat InternalFormat { get; set; }
 		public int Width { get; set; }
 		public int Height { get; set; }
+		
+		/// The ratio of Width/Height
+		public float AspectRatio => (float) Width / Height;
+		
 		public Texture2D(int handle, string name, PixelInternalFormat internalFormat, int width, int height) {
 			Handle = handle;
 			Name = name;

From 62e10dca4141ab5d1bc972029de0c9d1ed7d62f5 Mon Sep 17 00:00:00 2001
From: varon <varon-github@outlook.com>
Date: Sat, 21 Nov 2020 15:27:53 +0200
Subject: [PATCH 42/52] Add copy/default API to texture config

---
 src/ObjectTK.Core/TextureConfig.cs | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

diff --git a/src/ObjectTK.Core/TextureConfig.cs b/src/ObjectTK.Core/TextureConfig.cs
index 894f4bd..574cbaf 100644
--- a/src/ObjectTK.Core/TextureConfig.cs
+++ b/src/ObjectTK.Core/TextureConfig.cs
@@ -5,7 +5,7 @@
 
 namespace ObjectTK {
 
-    public class TextureConfig {
+    public sealed class TextureConfig {
 
         public TextureMagFilter MagFilter { get; set; } = TextureMagFilter.Linear;
         public TextureMinFilter MinFilter { get; set; } = TextureMinFilter.LinearMipmapNearest;
@@ -21,6 +21,24 @@ public class TextureConfig {
 
         /// If mipmaps should be generated for this texture (if applicable).
         public bool GenerateMipmaps { get; set; } = true;
+
+        /// The default texture configuration. Should be good for most cases.
+        [NotNull]
+        public static TextureConfig Default => new TextureConfig();
+
+        /// Creates a copy of this <see cref="TextureConfig"/>
+        [Pure]
+        [NotNull]
+        public TextureConfig Copy() {
+            return new TextureConfig {
+                GenerateMipmaps = GenerateMipmaps,
+                InternalFormat = InternalFormat,
+                MagFilter = MagFilter,
+                MinFilter = MinFilter,
+                PixelFormat = PixelFormat,
+                PixelType = PixelType
+            };
+        }
         
         // Hide the default members of this object for a cleaner API.
         [EditorBrowsable(EditorBrowsableState.Never)]

From 282db6a80927f4ca724e2b6da2b88ac09695dd7d Mon Sep 17 00:00:00 2001
From: varon <varon-github@outlook.com>
Date: Sat, 21 Nov 2020 15:28:37 +0200
Subject: [PATCH 43/52] Release 2.0.0-pre.6

---
 RELEASE_NOTES.md | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md
index 6dff633..d9362fb 100644
--- a/RELEASE_NOTES.md
+++ b/RELEASE_NOTES.md
@@ -1,3 +1,6 @@
+### 2.0.0-pre.6
+    * Add texture config default object + copy method.
+
 ### 2.0.0-pre.5
     * Add textures to GLFactory + TextureConfig
     * Add Zoom functionality to Camera2D

From ccab76002ef784ef8ddbc09a578d84f174f777c8 Mon Sep 17 00:00:00 2001
From: varon <varon-github@outlook.com>
Date: Sat, 21 Nov 2020 15:31:42 +0200
Subject: [PATCH 44/52] Fix texture labelling

---
 src/ObjectTK.Core/GLFactory.cs | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/ObjectTK.Core/GLFactory.cs b/src/ObjectTK.Core/GLFactory.cs
index 0fe21ac..6ab2038 100644
--- a/src/ObjectTK.Core/GLFactory.cs
+++ b/src/ObjectTK.Core/GLFactory.cs
@@ -63,11 +63,12 @@ private GLTextureFactory() { }
             [MustUseReturnValue]
             public Texture2D Create2D(string name, [NotNull] TextureConfig cfg, int width, int height, IntPtr data) {
                 var t = GL.GenTexture();
+                var label = $"Texture2D: {name}";
                 GL.BindTexture(TextureTarget.Texture2D, t);
                 GL.TexImage2D(TextureTarget.Texture2D, 0,cfg.InternalFormat, width, height, 0, cfg.PixelFormat, cfg.PixelType, data);
                 GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int) cfg.MagFilter);
                 GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int) cfg.MinFilter);
-                GL.ObjectLabel(ObjectLabelIdentifier.Texture, t, name.Length, name);
+                GL.ObjectLabel(ObjectLabelIdentifier.Texture, t, label.Length, label);
                 GL.BindTexture(TextureTarget.Texture2D, 0);
                 return new Texture2D(t, name, cfg.InternalFormat, width, height);
             }

From 5ab330bb230136da4e06ee07ab2ed3e3b9269689 Mon Sep 17 00:00:00 2001
From: varon <varon-github@outlook.com>
Date: Sat, 21 Nov 2020 15:32:20 +0200
Subject: [PATCH 45/52] Release 2.0.0-pre.7

---
 RELEASE_NOTES.md | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md
index d9362fb..aac8b9e 100644
--- a/RELEASE_NOTES.md
+++ b/RELEASE_NOTES.md
@@ -1,3 +1,6 @@
+### 2.0.0-pre.7
+    * Fix texture labelling
+
 ### 2.0.0-pre.6
     * Add texture config default object + copy method.
 

From 4cdf28dcbea7ac3a7b6656411d4f0595edd418cd Mon Sep 17 00:00:00 2001
From: varon <varon-github@outlook.com>
Date: Sat, 21 Nov 2020 16:23:50 +0200
Subject: [PATCH 46/52] fix mipmap gen

---
 src/ObjectTK.Core/GLFactory.cs     | 4 ++++
 src/ObjectTK.Core/TextureConfig.cs | 3 ++-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/ObjectTK.Core/GLFactory.cs b/src/ObjectTK.Core/GLFactory.cs
index 6ab2038..4882ee4 100644
--- a/src/ObjectTK.Core/GLFactory.cs
+++ b/src/ObjectTK.Core/GLFactory.cs
@@ -69,6 +69,10 @@ public Texture2D Create2D(string name, [NotNull] TextureConfig cfg, int width, i
                 GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int) cfg.MagFilter);
                 GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int) cfg.MinFilter);
                 GL.ObjectLabel(ObjectLabelIdentifier.Texture, t, label.Length, label);
+                if (cfg.GenerateMipmaps) {
+                    GL.GenerateMipmap(GenerateMipmapTarget.Texture2D);
+                }
+                
                 GL.BindTexture(TextureTarget.Texture2D, 0);
                 return new Texture2D(t, name, cfg.InternalFormat, width, height);
             }
diff --git a/src/ObjectTK.Core/TextureConfig.cs b/src/ObjectTK.Core/TextureConfig.cs
index 574cbaf..a43cf8f 100644
--- a/src/ObjectTK.Core/TextureConfig.cs
+++ b/src/ObjectTK.Core/TextureConfig.cs
@@ -19,7 +19,8 @@ public sealed class TextureConfig {
         /// The data type of each pixel's channel used to create this texture.
         public PixelType PixelType { get; set; } = PixelType.UnsignedByte;
 
-        /// If mipmaps should be generated for this texture (if applicable).
+        /// If mipmaps should be generated for this texture.
+        /// You almost certainly want this to be on.
         public bool GenerateMipmaps { get; set; } = true;
 
         /// The default texture configuration. Should be good for most cases.

From 2b099ba18c2e2782c76466ca09f241144847ea6c Mon Sep 17 00:00:00 2001
From: varon <varon-github@outlook.com>
Date: Sat, 21 Nov 2020 16:24:18 +0200
Subject: [PATCH 47/52] Release 2.0.0-pre.8

---
 RELEASE_NOTES.md | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md
index aac8b9e..cceaf6a 100644
--- a/RELEASE_NOTES.md
+++ b/RELEASE_NOTES.md
@@ -1,3 +1,6 @@
+### 2.0.0-pre.8
+    * Fix mipmap generation
+
 ### 2.0.0-pre.7
     * Fix texture labelling
 

From 87023a62c0bb906248927451cd9ffad84419aebc Mon Sep 17 00:00:00 2001
From: varon <varon-github@outlook.com>
Date: Sat, 28 Nov 2020 20:05:21 +0200
Subject: [PATCH 48/52] Formatting + convenience

---
 src/Examples/Examples/HelloTriangle.cs        |   1 +
 src/ObjectTK.Core/GLFactory.cs                |  16 +-
 src/ObjectTK.Core/GLObjects/ShaderProgram.cs  |   1 -
 src/ObjectTK.Core/GLObjects/Textures.cs       | 157 +++++++++---------
 src/ObjectTK.Core/ObjectTK.Core.csproj        |   1 +
 src/ObjectTK.Core/TextureConfig.cs            |   4 +
 .../Buffers/VertexArrayExtensions.cs          |  12 +-
 7 files changed, 108 insertions(+), 84 deletions(-)

diff --git a/src/Examples/Examples/HelloTriangle.cs b/src/Examples/Examples/HelloTriangle.cs
index e7c39c0..d2ec1b5 100644
--- a/src/Examples/Examples/HelloTriangle.cs
+++ b/src/Examples/Examples/HelloTriangle.cs
@@ -72,6 +72,7 @@ protected override void OnLoad() {
             _positionsVbo = GLFactory.Buffer.ArrayBuffer("Positions", positions);
             _colorsVbo = GLFactory.Buffer.ArrayBuffer("Colors", colors);
             _vao = GLFactory.VertexArray.FromBuffers("Triangle", _positionsVbo, _colorsVbo);
+            
         }
 
         protected override void OnRenderFrame(FrameEventArgs e) {
diff --git a/src/ObjectTK.Core/GLFactory.cs b/src/ObjectTK.Core/GLFactory.cs
index 4882ee4..8427e00 100644
--- a/src/ObjectTK.Core/GLFactory.cs
+++ b/src/ObjectTK.Core/GLFactory.cs
@@ -1,5 +1,7 @@
 using System;
 using System.ComponentModel;
+using System.Drawing;
+using System.Drawing.Imaging;
 using JetBrains.Annotations;
 using ObjectTK.GLObjects;
 using ObjectTK.Internal;
@@ -65,9 +67,11 @@ public Texture2D Create2D(string name, [NotNull] TextureConfig cfg, int width, i
                 var t = GL.GenTexture();
                 var label = $"Texture2D: {name}";
                 GL.BindTexture(TextureTarget.Texture2D, t);
-                GL.TexImage2D(TextureTarget.Texture2D, 0,cfg.InternalFormat, width, height, 0, cfg.PixelFormat, cfg.PixelType, data);
+                GL.TexImage2D(TextureTarget.Texture2D, 0, cfg.InternalFormat, width, height, 0, cfg.PixelFormat, cfg.PixelType, data);
                 GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int) cfg.MagFilter);
                 GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int) cfg.MinFilter);
+                GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapS, (int) cfg.WrapS);
+                GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapS, (int) cfg.WrapS);
                 GL.ObjectLabel(ObjectLabelIdentifier.Texture, t, label.Length, label);
                 if (cfg.GenerateMipmaps) {
                     GL.GenerateMipmap(GenerateMipmapTarget.Texture2D);
@@ -76,6 +80,16 @@ public Texture2D Create2D(string name, [NotNull] TextureConfig cfg, int width, i
                 GL.BindTexture(TextureTarget.Texture2D, 0);
                 return new Texture2D(t, name, cfg.InternalFormat, width, height);
             }
+            
+            /// Creates a 2D texture from a bitmap.
+            [NotNull]
+            [MustUseReturnValue]
+            public Texture2D FromBitmap([NotNull] string name, [NotNull] TextureConfig cfg, [NotNull] Bitmap bmp) {
+                var rect = new Rectangle(0, 0, bmp.Width, bmp.Height);
+                var bitmapData = bmp.LockBits(rect, ImageLockMode.ReadOnly, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
+                return Create2D(name, cfg, bmp.Width, bmp.Height, bitmapData.Scan0);
+            }
+
 
             // Hide the default members of this object for a cleaner API.
             [EditorBrowsable(EditorBrowsableState.Never)]
diff --git a/src/ObjectTK.Core/GLObjects/ShaderProgram.cs b/src/ObjectTK.Core/GLObjects/ShaderProgram.cs
index 00485ef..5ac8c5c 100644
--- a/src/ObjectTK.Core/GLObjects/ShaderProgram.cs
+++ b/src/ObjectTK.Core/GLObjects/ShaderProgram.cs
@@ -1,5 +1,4 @@
 using System.Collections.Generic;
-using ObjectTK.Shaders;
 
 namespace ObjectTK.GLObjects {
 
diff --git a/src/ObjectTK.Core/GLObjects/Textures.cs b/src/ObjectTK.Core/GLObjects/Textures.cs
index fb45d49..10d7cae 100644
--- a/src/ObjectTK.Core/GLObjects/Textures.cs
+++ b/src/ObjectTK.Core/GLObjects/Textures.cs
@@ -8,24 +8,23 @@ public interface ITexture {
 		PixelInternalFormat InternalFormat { get; set; }
 	}
 
-	public sealed class Texture1D : ITexture {
+	public class Texture1D : ITexture {
 		public int Handle { get; }
 		public string Name { get; set; }
 		public PixelInternalFormat InternalFormat { get; set; }
 		public TextureTarget TextureTarget => TextureTarget.Texture1D;
 		public int Width { get; set; }
 		public int MipLevels { get; set; }
-		public Texture1D(int Handle, string Name, PixelInternalFormat InternalFormat, int Width, int MipLevels) {
-			this.Handle = Handle;
-			this.Name = Name;
-			this.InternalFormat = InternalFormat;
-			this.Width = Width;
-			this.MipLevels = MipLevels;
+		public Texture1D(int handle, string name, PixelInternalFormat internalFormat, int width, int mipLevels) {
+			Handle = handle;
+			Name = name;
+			InternalFormat = internalFormat;
+			Width = width;
+			MipLevels = mipLevels;
 		}
-
 	}
 
-	public sealed class Texture2D : ITexture {
+	public class Texture2D : ITexture {
 		public int Handle { get; }
 		public string Name { get; set; }
 		public TextureTarget TextureTarget => TextureTarget.Texture2D;
@@ -45,7 +44,7 @@ public Texture2D(int handle, string name, PixelInternalFormat internalFormat, in
 		}
 	}
 
-	public sealed class Texture1DArray : ITexture {
+	public class Texture1DArray : ITexture {
 		public int Handle { get; }
 		public string Name { get; set; }
 		public PixelInternalFormat InternalFormat { get; set; }
@@ -53,17 +52,17 @@ public sealed class Texture1DArray : ITexture {
 		public int Width { get; set; }
 		public int Layers { get; set; }
 		public int MipLevels { get; set; }
-		public Texture1DArray(int Handle, string Name, PixelInternalFormat InternalFormat, int Width, int Layers, int MipLevels) {
-			this.Handle = Handle;
-			this.Name = Name;
-			this.InternalFormat = InternalFormat;
-			this.Width = Width;
-			this.Layers = Layers;
-			this.MipLevels = MipLevels;
+		public Texture1DArray(int handle, string name, PixelInternalFormat internalFormat, int width, int layers, int mipLevels) {
+			Handle = handle;
+			Name = name;
+			InternalFormat = internalFormat;
+			Width = width;
+			Layers = layers;
+			MipLevels = mipLevels;
 		}
 	}
 
-	public sealed class Texture2DArray : ITexture {
+	public class Texture2DArray : ITexture {
 		public int Handle { get; }
 		public string Name { get; set; }
 		public PixelInternalFormat InternalFormat { get; set; }
@@ -72,18 +71,18 @@ public sealed class Texture2DArray : ITexture {
 		public int Height { get; set; }
 		public int Layers { get; set; }
 		public int MipLevels { get; set; }
-		public Texture2DArray(int Handle, string Name, PixelInternalFormat InternalFormat, int Width, int Height, int Layers, int MipLevels) {
-			this.Handle = Handle;
-			this.Name = Name;
-			this.InternalFormat = InternalFormat;
-			this.Width = Width;
-			this.Height = Height;
-			this.Layers = Layers;
-			this.MipLevels = MipLevels;
+		public Texture2DArray(int handle, string name, PixelInternalFormat internalFormat, int width, int height, int layers, int mipLevels) {
+			this.Handle = handle;
+			this.Name = name;
+			this.InternalFormat = internalFormat;
+			this.Width = width;
+			this.Height = height;
+			this.Layers = layers;
+			this.MipLevels = mipLevels;
 		}
 	}
 
-	public sealed class Texture2DMultisample : ITexture {
+	public class Texture2DMultisample : ITexture {
 		public int Handle { get; }
 		public string Name { get; set; }
 		public PixelInternalFormat InternalFormat { get; set; }
@@ -92,18 +91,18 @@ public sealed class Texture2DMultisample : ITexture {
 		public int Height { get; set; }
 		public int Samples { get; set; }
 		public bool FixedSampleLocations { get; set; }
-		public Texture2DMultisample(int Handle, string Name, PixelInternalFormat InternalFormat, int Width, int Height, int Samples, bool FixedSampleLocations) {
-			this.Handle = Handle;
-			this.Name = Name;
-			this.InternalFormat = InternalFormat;
-			this.Width = Width;
-			this.Height = Height;
-			this.Samples = Samples;
-			this.FixedSampleLocations = FixedSampleLocations;
+		public Texture2DMultisample(int handle, string name, PixelInternalFormat internalFormat, int width, int height, int samples, bool fixedSampleLocations) {
+			Handle = handle;
+			Name = name;
+			InternalFormat = internalFormat;
+			Width = width;
+			Height = height;
+			Samples = samples;
+			FixedSampleLocations = fixedSampleLocations;
 		}
 	}
 
-	public sealed class Texture2DMultisampleArray : ITexture {
+	public class Texture2DMultisampleArray : ITexture {
 		public int Handle { get; }
 		public string Name { get; set; }
 		public PixelInternalFormat InternalFormat { get; set; }
@@ -113,47 +112,47 @@ public sealed class Texture2DMultisampleArray : ITexture {
 		public int Samples { get; set; }
 		public bool FixedSampleLocations { get; set; }
 		public int Layers { get; set; }
-		public Texture2DMultisampleArray(int Handle, string Name, PixelInternalFormat InternalFormat, int Width, int Height, int Layers, int Samples, bool FixedSampleLocations) {
-			this.Handle = Handle;
-			this.Name = Name;
-			this.InternalFormat = InternalFormat;
-			this.Width = Width;
-			this.Height = Height;
-			this.Layers = Layers;
-			this.Samples = Samples;
-			this.FixedSampleLocations = FixedSampleLocations;
+		public Texture2DMultisampleArray(int handle, string name, PixelInternalFormat internalFormat, int width, int height, int layers, int samples, bool fixedSampleLocations) {
+			Handle = handle;
+			Name = name;
+			InternalFormat = internalFormat;
+			Width = width;
+			Height = height;
+			Layers = layers;
+			Samples = samples;
+			FixedSampleLocations = fixedSampleLocations;
 		}
 	}
 
-	public sealed class TextureRectangle : ITexture {
+	public class TextureRectangle : ITexture {
 		public int Handle { get; }
 		public string Name { get; set; }
 		public PixelInternalFormat InternalFormat { get; set; }
 		public TextureTarget TextureTarget => TextureTarget.TextureRectangle;
 		public int Width { get; set; }
 		public int Height { get; set; }
-		public TextureRectangle(int Handle, string Name, PixelInternalFormat InternalFormat, int Width, int Height) {
-			this.Handle = Handle;
-			this.Name = Name;
-			this.InternalFormat = InternalFormat;
-			this.Width = Width;
-			this.Height = Height;
+		public TextureRectangle(int handle, string name, PixelInternalFormat internalFormat, int width, int height) {
+			Handle = handle;
+			Name = name;
+			InternalFormat = internalFormat;
+			Width = width;
+			Height = height;
 		}
 	}
 
-	public sealed class TextureCubeMap : ITexture {
+	public class TextureCubeMap : ITexture {
 		public int Handle { get; }
 		public string Name { get; set; }
 		public PixelInternalFormat InternalFormat { get; set; }
 		public TextureTarget TextureTarget => TextureTarget.TextureCubeMap;
 		public int Size { get; set; }
 		public int MipLevels { get; set; }
-		public TextureCubeMap(int Handle, string Name, PixelInternalFormat InternalFormat, int Size, int MipLevels) {
-			this.Handle = Handle;
-			this.Name = Name;
-			this.InternalFormat = InternalFormat;
-			this.Size = Size;
-			this.MipLevels = MipLevels;
+		public TextureCubeMap(int handle, string name, PixelInternalFormat internalFormat, int size, int mipLevels) {
+			Handle = handle;
+			Name = name;
+			InternalFormat = internalFormat;
+			Size = size;
+			MipLevels = mipLevels;
 		}
 	}
 
@@ -165,29 +164,29 @@ public sealed class TextureCubeMapArray : ITexture {
 		public int Size { get; set; }
 		public int Layers { get; set; }
 		public int MipLevels { get; set; }
-		public TextureCubeMapArray(int Handle, string Name, PixelInternalFormat InternalFormat, int Size, int Layers, int MipLevels) {
-			this.Handle = Handle;
-			this.Name = Name;
-			this.InternalFormat = InternalFormat;
-			this.Size = Size;
-			this.Layers = Layers;
-			this.MipLevels = MipLevels;
+		public TextureCubeMapArray(int handle, string name, PixelInternalFormat internalFormat, int size, int layers, int mipLevels) {
+			Handle = handle;
+			Name = name;
+			InternalFormat = internalFormat;
+			Size = size;
+			Layers = layers;
+			MipLevels = mipLevels;
 		}
 	}
 
-	public sealed class TextureBuffer : ITexture {
+	public class TextureBuffer : ITexture {
 		public int Handle { get; }
 		public string Name { get; set; }
 		public PixelInternalFormat InternalFormat { get; set; }
 		public TextureTarget TextureTarget => TextureTarget.TextureBuffer;
 		//TODO: I don't know much about this texture type
-		public TextureBuffer(int Handle, string Name, PixelInternalFormat InternalFormat) {
-			this.Handle = Handle;
-			this.InternalFormat = InternalFormat;
+		public TextureBuffer(int handle, string name, PixelInternalFormat internalFormat) {
+			Handle = handle;
+			InternalFormat = internalFormat;
 		}
 	}
 
-	public sealed class Texture3D : ITexture {
+	public class Texture3D : ITexture {
 		public int Handle { get; }
 		public string Name { get; set; }
 		public PixelInternalFormat InternalFormat { get; set; }
@@ -196,14 +195,14 @@ public sealed class Texture3D : ITexture {
 		public int Height { get; set; }
 		public int Layers { get; set; }
 		public int MipLevels { get; set; }
-		public Texture3D(int Handle, string Name, PixelInternalFormat InternalFormat, int Width, int Height, int Layers, int MipLevels) {
-			this.Handle = Handle;
-			this.Name = Name;
-			this.InternalFormat = InternalFormat;
-			this.Width = Width;
-			this.Height = Height;
-			this.Layers = Layers;
-			this.MipLevels = MipLevels;
+		public Texture3D(int handle, string name, PixelInternalFormat internalFormat, int width, int height, int layers, int mipLevels) {
+			Handle = handle;
+			Name = name;
+			InternalFormat = internalFormat;
+			Width = width;
+			Height = height;
+			Layers = layers;
+			MipLevels = mipLevels;
 		}
 	}
 }
diff --git a/src/ObjectTK.Core/ObjectTK.Core.csproj b/src/ObjectTK.Core/ObjectTK.Core.csproj
index 5ec1c2c..13e5277 100644
--- a/src/ObjectTK.Core/ObjectTK.Core.csproj
+++ b/src/ObjectTK.Core/ObjectTK.Core.csproj
@@ -13,6 +13,7 @@
   <ItemGroup>
     <PackageReference Include="JetBrains.Annotations" Version="2020.1.0" />
     <PackageReference Include="OpenTK" Version="4.1.0" />
+    <PackageReference Include="System.Drawing.Common" Version="5.0.0" />
   </ItemGroup>
 
 </Project>
diff --git a/src/ObjectTK.Core/TextureConfig.cs b/src/ObjectTK.Core/TextureConfig.cs
index a43cf8f..c1b2ccf 100644
--- a/src/ObjectTK.Core/TextureConfig.cs
+++ b/src/ObjectTK.Core/TextureConfig.cs
@@ -10,6 +10,10 @@ public sealed class TextureConfig {
         public TextureMagFilter MagFilter { get; set; } = TextureMagFilter.Linear;
         public TextureMinFilter MinFilter { get; set; } = TextureMinFilter.LinearMipmapNearest;
 
+        public TextureWrapMode WrapS { get; set; } = TextureWrapMode.Repeat;
+        public TextureWrapMode WrapT { get; set; } = TextureWrapMode.Repeat;
+        public TextureWrapMode WrapR { get; set; } = TextureWrapMode.Repeat;
+
         /// The format the OpenGL stores this texture data in, internally.
         /// By default, this is an RGBA 8BPP (8 bits per pixel) format.
         public PixelInternalFormat InternalFormat { get; set; } = PixelInternalFormat.Rgba;
diff --git a/src/ObjectTK.Extensions/Buffers/VertexArrayExtensions.cs b/src/ObjectTK.Extensions/Buffers/VertexArrayExtensions.cs
index ec51720..535f6d4 100644
--- a/src/ObjectTK.Extensions/Buffers/VertexArrayExtensions.cs
+++ b/src/ObjectTK.Extensions/Buffers/VertexArrayExtensions.cs
@@ -1,12 +1,18 @@
-using ObjectTK.GLObjects;
+using JetBrains.Annotations;
+using ObjectTK.GLObjects;
 using OpenTK.Graphics.OpenGL;
 
 namespace ObjectTK.Extensions.Buffers {
 	public static class VertexArrayExtensions {
-
-		public static void Bind(this VertexArray vertexArray) {
+		
+		
+		public static void Bind([NotNull] this VertexArray vertexArray) {
 			GL.BindVertexArray(vertexArray.Handle);
 		}
+		
+		public static void Unbind([NotNull] this VertexArray vertexArray) {
+			GL.BindVertexArray(0);
+		}
 
 		public static void BindVertexAttribute<T>(this VertexArray vertexArray, ShaderAttributeInfo shaderAttributeInfo, Buffer<T> Buffer) where T : unmanaged {
 			vertexArray.Bind();

From 9ef36c398e6e96b35feaee438b450f5208d1134f Mon Sep 17 00:00:00 2001
From: varon <varon-github@outlook.com>
Date: Sat, 28 Nov 2020 20:07:55 +0200
Subject: [PATCH 49/52] Add docs on extension

---
 src/ObjectTK.Core/GLFactory.cs | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/ObjectTK.Core/GLFactory.cs b/src/ObjectTK.Core/GLFactory.cs
index 8427e00..86bbc83 100644
--- a/src/ObjectTK.Core/GLFactory.cs
+++ b/src/ObjectTK.Core/GLFactory.cs
@@ -254,9 +254,12 @@ public VertexArray IndexAndVertexBuffers([NotNull] string name, Buffer<int> inde
         }
     }
 
-    /// Top-level class responsible for creating all OpenGL objects.
-    /// ------
-    /// Usage: GLFactory.Shader.VertexFrag() 
+    /// Extensible, top-level class responsible for creating all OpenGL objects.<br></br>
+    /// ------<br></br>
+    /// Usage: GLFactory.Shader.VertexFrag()<br></br>
+    ///  <br></br>
+    /// To extend this class, add extension methods to the GLxFactory types, where 'x' is one of the field names.<br></br>
+    /// e.g. <see cref="GLShaderFactory"/> or <see cref="GLVertexArrayFactory"/>
     public static class GLFactory {
 
         public static readonly GLShaderFactory Shader = GLShaderFactory.Instance;

From 58a57a8ed82d34073015784789954a10942dfcaa Mon Sep 17 00:00:00 2001
From: varon <varon-github@outlook.com>
Date: Sat, 28 Nov 2020 20:13:17 +0200
Subject: [PATCH 50/52] Factory improvements

---
 .../Factories/GLBufferFactory.cs              |  97 +++++++
 .../Factories/GLShaderFactory.cs              |  48 ++++
 .../Factories/GLTextureFactory.cs             |  76 ++++++
 .../Factories/GLVertexArrayFactory.cs         |  89 ++++++
 src/ObjectTK.Core/GLFactory.cs                | 255 ------------------
 src/ObjectTK.Core/Internal/ListExtensions.cs  |  29 ++
 6 files changed, 339 insertions(+), 255 deletions(-)
 create mode 100644 src/ObjectTK.Core/Factories/GLBufferFactory.cs
 create mode 100644 src/ObjectTK.Core/Factories/GLShaderFactory.cs
 create mode 100644 src/ObjectTK.Core/Factories/GLTextureFactory.cs
 create mode 100644 src/ObjectTK.Core/Factories/GLVertexArrayFactory.cs
 create mode 100644 src/ObjectTK.Core/Internal/ListExtensions.cs

diff --git a/src/ObjectTK.Core/Factories/GLBufferFactory.cs b/src/ObjectTK.Core/Factories/GLBufferFactory.cs
new file mode 100644
index 0000000..2098788
--- /dev/null
+++ b/src/ObjectTK.Core/Factories/GLBufferFactory.cs
@@ -0,0 +1,97 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using JetBrains.Annotations;
+using ObjectTK.GLObjects;
+using ObjectTK.Internal;
+using OpenTK.Graphics.OpenGL;
+
+// ReSharper disable once CheckNamespace
+namespace ObjectTK {
+    [EditorBrowsable(EditorBrowsableState.Advanced)]
+    public sealed class GLBufferFactory {
+        public static GLBufferFactory Instance { get; } = new GLBufferFactory();
+        private GLBufferFactory() { }
+        
+        // Hide the default members of this object for a cleaner API.
+        
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public override bool Equals(object obj)
+        {
+            // ReSharper disable once BaseObjectEqualsIsObjectEquals
+            return base.Equals(obj);
+        }
+
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public override int GetHashCode()
+        {
+            // ReSharper disable once BaseObjectGetHashCodeCallInGetHashCode
+            return base.GetHashCode();
+        }
+
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        // ReSharper disable once AnnotateCanBeNullTypeMember
+        public override string ToString()
+        {
+            return base.ToString();
+        }
+        
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        [NotNull]
+        // ReSharper disable once UnusedMember.Global
+        public new Type GetType() {
+            return base.GetType();
+        }
+
+
+        [NotNull]
+        [MustUseReturnValue]
+        public Buffer<T> ArrayBuffer<T>(string name, [NotNull] T[] vertices, BufferUsageHint usageHint = BufferUsageHint.StaticDraw) where T: unmanaged {
+            var vbo = GL.GenBuffer();
+            var label = $"Buffer: {name}";
+            GL.BindBuffer(BufferTarget.ArrayBuffer, vbo);
+            GL.ObjectLabel(ObjectLabelIdentifier.Buffer, vbo,label.Length, label);
+            int elemSize;
+            unsafe {
+                elemSize = sizeof(T);
+            }
+            GL.BufferData(BufferTarget.ArrayBuffer, elemSize * vertices.Length, vertices, usageHint);
+            GL.BindBuffer(BufferTarget.ArrayBuffer, 0);
+            return new Buffer<T>(name, vbo, vertices.Length);
+        }
+        
+        /// Creates an array buffer from a List.
+        /// This does not perform any memory copy or allocation, as this directly accesses the internal array used by the list.
+        /// This has identical performance to the T[] overloads.
+        [Pure]
+        [MustUseReturnValue]
+        public Buffer<T> ArrayBuffer<T>(string name, List<T> list, BufferUsageHint usageHint = BufferUsageHint.StaticDraw) where T : unmanaged {
+            var arr = list.GetInternalArray();
+            return ArrayBuffer(name, arr, usageHint);
+        }
+        
+        /// Creates an array buffer from a List. This matches against the type, trying to find a number of fast-path options.<br></br>
+        /// If those fast-paths are found, then this does not perform any memory copy or allocation as this directly accesses the internal array used by the list.
+        /// In this case, this has identical performance to the T[] overloads.<br></br>
+        /// Supported fast-paths are:<br></br>
+        /// T[]<br></br>
+        /// List&lt;T&gt;<br></br>
+        [NotNull]
+        [MustUseReturnValue]
+        public Buffer<T> ArrayBuffer<T>(string name, IReadOnlyList<T> list, BufferUsageHint usageHint = BufferUsageHint.StaticDraw) where T : unmanaged {
+            if (list is T[] arr) {
+                return ArrayBuffer(name, arr, usageHint);
+            }
+
+            if (list is List<T> resizeArr) {
+                return ArrayBuffer(name, resizeArr, usageHint);
+            }
+            // slow path, but whatever:
+            var copy = new T[list.Count];
+            for (var i = 0; i < list.Count; i++) {
+                copy[i] = list[i];
+            }
+            return ArrayBuffer(name, copy, usageHint);
+        }
+    }
+}
diff --git a/src/ObjectTK.Core/Factories/GLShaderFactory.cs b/src/ObjectTK.Core/Factories/GLShaderFactory.cs
new file mode 100644
index 0000000..3ecab4f
--- /dev/null
+++ b/src/ObjectTK.Core/Factories/GLShaderFactory.cs
@@ -0,0 +1,48 @@
+using System;
+using System.ComponentModel;
+using JetBrains.Annotations;
+using ObjectTK.GLObjects;
+using ObjectTK.Shaders;
+
+// ReSharper disable once CheckNamespace
+namespace ObjectTK {
+    [EditorBrowsable(EditorBrowsableState.Advanced)]
+    public sealed class GLShaderFactory {
+        public static GLShaderFactory Instance { get; } = new GLShaderFactory();
+        private GLShaderFactory() { }
+
+        [MustUseReturnValue]
+        [NotNull]
+        public ShaderProgram VertexFrag(string name, string vertexSource, string fragSource) {
+            return ShaderCompiler.VertexFrag(name, vertexSource, fragSource);
+        }
+            
+        // Hide the default members of this object for a cleaner API.
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public override bool Equals(object obj)
+        {
+            // ReSharper disable once BaseObjectEqualsIsObjectEquals
+            return base.Equals(obj);
+        }
+
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public override int GetHashCode()
+        {
+            // ReSharper disable once BaseObjectGetHashCodeCallInGetHashCode
+            return base.GetHashCode();
+        }
+
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        // ReSharper disable once AnnotateCanBeNullTypeMember
+        public override string ToString()
+        {
+            return base.ToString();
+        }
+
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        [NotNull]
+        public new Type GetType() {
+            return base.GetType();
+        }
+    }
+}
diff --git a/src/ObjectTK.Core/Factories/GLTextureFactory.cs b/src/ObjectTK.Core/Factories/GLTextureFactory.cs
new file mode 100644
index 0000000..fb10e9d
--- /dev/null
+++ b/src/ObjectTK.Core/Factories/GLTextureFactory.cs
@@ -0,0 +1,76 @@
+using System;
+using System.ComponentModel;
+using System.Drawing;
+using System.Drawing.Imaging;
+using JetBrains.Annotations;
+using ObjectTK.GLObjects;
+using OpenTK.Graphics.OpenGL;
+
+// ReSharper disable once CheckNamespace
+namespace ObjectTK {
+    [EditorBrowsable(EditorBrowsableState.Advanced)]
+    public sealed class GLTextureFactory {
+        public static GLTextureFactory Instance { get; } = new GLTextureFactory();
+        private GLTextureFactory() { }
+        
+        /// Creates a texture from a raw pointer.
+        /// This is typically used for creation from a bitmap.
+        [NotNull]
+        [MustUseReturnValue]
+        public Texture2D Create2D(string name, [NotNull] TextureConfig cfg, int width, int height, IntPtr data) {
+            var t = GL.GenTexture();
+            var label = $"Texture2D: {name}";
+            GL.BindTexture(TextureTarget.Texture2D, t);
+            GL.TexImage2D(TextureTarget.Texture2D, 0, cfg.InternalFormat, width, height, 0, cfg.PixelFormat, cfg.PixelType, data);
+            GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int) cfg.MagFilter);
+            GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int) cfg.MinFilter);
+            GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapS, (int) cfg.WrapS);
+            GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapS, (int) cfg.WrapS);
+            GL.ObjectLabel(ObjectLabelIdentifier.Texture, t, label.Length, label);
+            if (cfg.GenerateMipmaps) {
+                GL.GenerateMipmap(GenerateMipmapTarget.Texture2D);
+            }
+            
+            GL.BindTexture(TextureTarget.Texture2D, 0);
+            return new Texture2D(t, name, cfg.InternalFormat, width, height);
+        }
+        
+        /// Creates a 2D texture from a bitmap.
+        [NotNull]
+        [MustUseReturnValue]
+        public Texture2D FromBitmap([NotNull] string name, [NotNull] TextureConfig cfg, [NotNull] Bitmap bmp) {
+            var rect = new Rectangle(0, 0, bmp.Width, bmp.Height);
+            var bitmapData = bmp.LockBits(rect, ImageLockMode.ReadOnly, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
+            return Create2D(name, cfg, bmp.Width, bmp.Height, bitmapData.Scan0);
+        }
+
+
+        // Hide the default members of this object for a cleaner API.
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public override bool Equals(object obj)
+        {
+            // ReSharper disable once BaseObjectEqualsIsObjectEquals
+            return base.Equals(obj);
+        }
+
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public override int GetHashCode()
+        {
+            // ReSharper disable once BaseObjectGetHashCodeCallInGetHashCode
+            return base.GetHashCode();
+        }
+
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        // ReSharper disable once AnnotateCanBeNullTypeMember
+        public override string ToString()
+        {
+            return base.ToString();
+        }
+
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        [NotNull]
+        public new Type GetType() {
+            return base.GetType();
+        }
+    }
+}
diff --git a/src/ObjectTK.Core/Factories/GLVertexArrayFactory.cs b/src/ObjectTK.Core/Factories/GLVertexArrayFactory.cs
new file mode 100644
index 0000000..b2b47e7
--- /dev/null
+++ b/src/ObjectTK.Core/Factories/GLVertexArrayFactory.cs
@@ -0,0 +1,89 @@
+using System;
+using System.ComponentModel;
+using JetBrains.Annotations;
+using ObjectTK.GLObjects;
+using OpenTK.Graphics.OpenGL;
+using Buffer = ObjectTK.GLObjects.Buffer;
+
+// ReSharper disable once CheckNamespace
+namespace ObjectTK {
+    [EditorBrowsable(EditorBrowsableState.Advanced)]
+    public sealed class GLVertexArrayFactory {
+        public static GLVertexArrayFactory Instance { get; } = new GLVertexArrayFactory();
+        private GLVertexArrayFactory() { }
+        
+        // Hide the default members of this object for a cleaner API.
+        
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public override bool Equals(object obj)
+        {
+            // ReSharper disable once BaseObjectEqualsIsObjectEquals
+            return base.Equals(obj);
+        }
+
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public override int GetHashCode()
+        {
+            // ReSharper disable once BaseObjectGetHashCodeCallInGetHashCode
+            return base.GetHashCode();
+        }
+
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        // ReSharper disable once AnnotateCanBeNullTypeMember
+        public override string ToString()
+        {
+            return base.ToString();
+        }
+        
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        [NotNull]
+        // ReSharper disable once UnusedMember.Global
+        public new Type GetType() {
+            return base.GetType();
+        }
+
+        [NotNull]
+        [MustUseReturnValue]
+        public VertexArray FromBuffers([NotNull] string name, [NotNull] params Buffer[] buffers) {
+            var length = buffers[0].ElementCount;
+            #if DEBUG
+            for (int i = 0; i < buffers.Length; i++) {
+                var b = buffers[i];
+                if (b.ElementCount != length) {
+                    throw new ArgumentException($"The provided buffers must have the same number of elements.\n" +
+                                                $"The buffer {b.Name} with length {b.ElementCount} did not match the expected length of {length}");
+                }
+            }
+            #endif
+            
+            var vao = GL.GenVertexArray();
+            var label = $"VertexArray: {name}";
+            GL.BindVertexArray(vao);
+            GL.ObjectLabel(ObjectLabelIdentifier.VertexArray,vao, name.Length, label);
+            for (int i = 0; i < buffers.Length; i++) {
+                var buffer = buffers[i];
+                GL.BindBuffer(BufferTarget.ArrayBuffer, buffer.Handle);
+                GL.EnableVertexAttribArray(i);
+                GL.VertexAttribPointer(i, buffer.ComponentCount, buffer.AttribType, false, buffer.ElementSize,0);
+            }
+            // clean up:
+            GL.BindBuffer(BufferTarget.ArrayBuffer, 0);
+            GL.BindVertexArray(0);
+            
+            return new VertexArray(name, vao, length, false);
+        }
+        
+        /// Creates a vertex array from the 
+        [Pure]
+        [NotNull]
+        public VertexArray IndexAndVertexBuffers([NotNull] string name, Buffer<int> indexBuffer, params Buffer[] vertexBuffers) {
+            var b = FromBuffers(name, vertexBuffers);
+            GL.BindVertexArray(b.Handle);
+            GL.BindBuffer(BufferTarget.ElementArrayBuffer, indexBuffer.Handle);
+            GL.BindVertexArray(0);
+            b.ElementCount = indexBuffer.ElementCount;
+            b.HasElementArrayBuffer = true;
+            return b;
+        }
+    }
+}
diff --git a/src/ObjectTK.Core/GLFactory.cs b/src/ObjectTK.Core/GLFactory.cs
index 86bbc83..1921689 100644
--- a/src/ObjectTK.Core/GLFactory.cs
+++ b/src/ObjectTK.Core/GLFactory.cs
@@ -1,259 +1,4 @@
-using System;
-using System.ComponentModel;
-using System.Drawing;
-using System.Drawing.Imaging;
-using JetBrains.Annotations;
-using ObjectTK.GLObjects;
-using ObjectTK.Internal;
-using ObjectTK.Shaders;
-using OpenTK.Graphics.OpenGL;
-using Buffer = ObjectTK.GLObjects.Buffer;
-
 namespace ObjectTK {
-
-    namespace Internal {
-        
-        [EditorBrowsable(EditorBrowsableState.Advanced)]
-        public sealed class GLShaderFactory {
-            public static GLShaderFactory Instance { get; } = new GLShaderFactory();
-            private GLShaderFactory() { }
-
-            [MustUseReturnValue]
-            [NotNull]
-            public ShaderProgram VertexFrag(string name, string vertexSource, string fragSource) {
-                return ShaderCompiler.VertexFrag(name, vertexSource, fragSource);
-            }
-            
-            // Hide the default members of this object for a cleaner API.
-            [EditorBrowsable(EditorBrowsableState.Never)]
-            public override bool Equals(object obj)
-            {
-                // ReSharper disable once BaseObjectEqualsIsObjectEquals
-                return base.Equals(obj);
-            }
-
-            [EditorBrowsable(EditorBrowsableState.Never)]
-            public override int GetHashCode()
-            {
-                // ReSharper disable once BaseObjectGetHashCodeCallInGetHashCode
-                return base.GetHashCode();
-            }
-
-            [EditorBrowsable(EditorBrowsableState.Never)]
-            // ReSharper disable once AnnotateCanBeNullTypeMember
-            public override string ToString()
-            {
-                return base.ToString();
-            }
-
-            [EditorBrowsable(EditorBrowsableState.Never)]
-            [NotNull]
-            public new Type GetType() {
-                return base.GetType();
-            }
-        }
-        
-        
-        [EditorBrowsable(EditorBrowsableState.Advanced)]
-        public sealed class GLTextureFactory {
-            public static GLTextureFactory Instance { get; } = new GLTextureFactory();
-            private GLTextureFactory() { }
-            
-            /// Creates a texture from a raw pointer.
-            /// This is typically used for creation from a bitmap.
-            [NotNull]
-            [MustUseReturnValue]
-            public Texture2D Create2D(string name, [NotNull] TextureConfig cfg, int width, int height, IntPtr data) {
-                var t = GL.GenTexture();
-                var label = $"Texture2D: {name}";
-                GL.BindTexture(TextureTarget.Texture2D, t);
-                GL.TexImage2D(TextureTarget.Texture2D, 0, cfg.InternalFormat, width, height, 0, cfg.PixelFormat, cfg.PixelType, data);
-                GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int) cfg.MagFilter);
-                GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int) cfg.MinFilter);
-                GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapS, (int) cfg.WrapS);
-                GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapS, (int) cfg.WrapS);
-                GL.ObjectLabel(ObjectLabelIdentifier.Texture, t, label.Length, label);
-                if (cfg.GenerateMipmaps) {
-                    GL.GenerateMipmap(GenerateMipmapTarget.Texture2D);
-                }
-                
-                GL.BindTexture(TextureTarget.Texture2D, 0);
-                return new Texture2D(t, name, cfg.InternalFormat, width, height);
-            }
-            
-            /// Creates a 2D texture from a bitmap.
-            [NotNull]
-            [MustUseReturnValue]
-            public Texture2D FromBitmap([NotNull] string name, [NotNull] TextureConfig cfg, [NotNull] Bitmap bmp) {
-                var rect = new Rectangle(0, 0, bmp.Width, bmp.Height);
-                var bitmapData = bmp.LockBits(rect, ImageLockMode.ReadOnly, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
-                return Create2D(name, cfg, bmp.Width, bmp.Height, bitmapData.Scan0);
-            }
-
-
-            // Hide the default members of this object for a cleaner API.
-            [EditorBrowsable(EditorBrowsableState.Never)]
-            public override bool Equals(object obj)
-            {
-                // ReSharper disable once BaseObjectEqualsIsObjectEquals
-                return base.Equals(obj);
-            }
-
-            [EditorBrowsable(EditorBrowsableState.Never)]
-            public override int GetHashCode()
-            {
-                // ReSharper disable once BaseObjectGetHashCodeCallInGetHashCode
-                return base.GetHashCode();
-            }
-
-            [EditorBrowsable(EditorBrowsableState.Never)]
-            // ReSharper disable once AnnotateCanBeNullTypeMember
-            public override string ToString()
-            {
-                return base.ToString();
-            }
-
-            [EditorBrowsable(EditorBrowsableState.Never)]
-            [NotNull]
-            public new Type GetType() {
-                return base.GetType();
-            }
-        }
-        
-        [EditorBrowsable(EditorBrowsableState.Advanced)]
-        public sealed class GLBufferFactory {
-            public static GLBufferFactory Instance { get; } = new GLBufferFactory();
-            private GLBufferFactory() { }
-            
-            // Hide the default members of this object for a cleaner API.
-            
-            [EditorBrowsable(EditorBrowsableState.Never)]
-            public override bool Equals(object obj)
-            {
-                // ReSharper disable once BaseObjectEqualsIsObjectEquals
-                return base.Equals(obj);
-            }
-
-            [EditorBrowsable(EditorBrowsableState.Never)]
-            public override int GetHashCode()
-            {
-                // ReSharper disable once BaseObjectGetHashCodeCallInGetHashCode
-                return base.GetHashCode();
-            }
-
-            [EditorBrowsable(EditorBrowsableState.Never)]
-            // ReSharper disable once AnnotateCanBeNullTypeMember
-            public override string ToString()
-            {
-                return base.ToString();
-            }
-            
-            [EditorBrowsable(EditorBrowsableState.Never)]
-            [NotNull]
-            // ReSharper disable once UnusedMember.Global
-            public new Type GetType() {
-                return base.GetType();
-            }
-
-
-            [NotNull]
-            [MustUseReturnValue]
-            public Buffer<T> ArrayBuffer<T>(string name, [NotNull] T[] vertices, BufferUsageHint usageHint = BufferUsageHint.StaticDraw) where T: unmanaged {
-                var vbo = GL.GenBuffer();
-                var label = $"Buffer: {name}";
-                GL.BindBuffer(BufferTarget.ArrayBuffer, vbo);
-                GL.ObjectLabel(ObjectLabelIdentifier.Buffer, vbo,label.Length, label);
-                int elemSize;
-                unsafe {
-                    elemSize = sizeof(T);
-                }
-                GL.BufferData(BufferTarget.ArrayBuffer, elemSize * vertices.Length, vertices, usageHint);
-                GL.BindBuffer(BufferTarget.ArrayBuffer, 0);
-                return new Buffer<T>(name, vbo, vertices.Length);
-            }
-        }
-    
-        [EditorBrowsable(EditorBrowsableState.Advanced)]
-        public sealed class GLVertexArrayFactory {
-            public static GLVertexArrayFactory Instance { get; } = new GLVertexArrayFactory();
-            private GLVertexArrayFactory() { }
-            
-            // Hide the default members of this object for a cleaner API.
-            
-            [EditorBrowsable(EditorBrowsableState.Never)]
-            public override bool Equals(object obj)
-            {
-                // ReSharper disable once BaseObjectEqualsIsObjectEquals
-                return base.Equals(obj);
-            }
-
-            [EditorBrowsable(EditorBrowsableState.Never)]
-            public override int GetHashCode()
-            {
-                // ReSharper disable once BaseObjectGetHashCodeCallInGetHashCode
-                return base.GetHashCode();
-            }
-
-            [EditorBrowsable(EditorBrowsableState.Never)]
-            // ReSharper disable once AnnotateCanBeNullTypeMember
-            public override string ToString()
-            {
-                return base.ToString();
-            }
-            
-            [EditorBrowsable(EditorBrowsableState.Never)]
-            [NotNull]
-            // ReSharper disable once UnusedMember.Global
-            public new Type GetType() {
-                return base.GetType();
-            }
-
-            [NotNull]
-            [MustUseReturnValue]
-            public VertexArray FromBuffers([NotNull] string name, [NotNull] params Buffer[] buffers) {
-                var length = buffers[0].ElementCount;
-                #if DEBUG
-                for (int i = 0; i < buffers.Length; i++) {
-                    var b = buffers[i];
-                    if (b.ElementCount != length) {
-                        throw new ArgumentException($"The provided buffers must have the same number of elements.\n" +
-                                                    $"The buffer {b.Name} with length {b.ElementCount} did not match the expected length of {length}");
-                    }
-                }
-                #endif
-                
-                var vao = GL.GenVertexArray();
-                var label = $"VertexArray: {name}";
-                GL.BindVertexArray(vao);
-                GL.ObjectLabel(ObjectLabelIdentifier.VertexArray,vao, name.Length, label);
-                for (int i = 0; i < buffers.Length; i++) {
-                    var buffer = buffers[i];
-                    GL.BindBuffer(BufferTarget.ArrayBuffer, buffer.Handle);
-                    GL.EnableVertexAttribArray(i);
-                    GL.VertexAttribPointer(i, buffer.ComponentCount, buffer.AttribType, false, buffer.ElementSize,0);
-                }
-                // clean up:
-                GL.BindBuffer(BufferTarget.ArrayBuffer, 0);
-                GL.BindVertexArray(0);
-                
-                return new VertexArray(name, vao, length, false);
-            }
-            
-            /// Creates a vertex array from the 
-            [Pure]
-            [NotNull]
-            public VertexArray IndexAndVertexBuffers([NotNull] string name, Buffer<int> indexBuffer, params Buffer[] vertexBuffers) {
-                var b = FromBuffers(name, vertexBuffers);
-                GL.BindVertexArray(b.Handle);
-                GL.BindBuffer(BufferTarget.ElementArrayBuffer, indexBuffer.Handle);
-                GL.BindVertexArray(0);
-                b.ElementCount = indexBuffer.ElementCount;
-                b.HasElementArrayBuffer = true;
-                return b;
-            }
-        }
-    }
-
     /// Extensible, top-level class responsible for creating all OpenGL objects.<br></br>
     /// ------<br></br>
     /// Usage: GLFactory.Shader.VertexFrag()<br></br>
diff --git a/src/ObjectTK.Core/Internal/ListExtensions.cs b/src/ObjectTK.Core/Internal/ListExtensions.cs
new file mode 100644
index 0000000..54ef20c
--- /dev/null
+++ b/src/ObjectTK.Core/Internal/ListExtensions.cs
@@ -0,0 +1,29 @@
+using System;
+using System.Collections.Generic;
+using System.Reflection;
+using System.Reflection.Emit;
+
+namespace ObjectTK.Internal {
+    internal static class UnsafeListExtensions {
+        private static class ArrayAccessor<T>
+        {
+            internal static readonly Func<List<T>, T[]> GetUnderlyingArray;
+
+            static ArrayAccessor()
+            {
+                var dm = new DynamicMethod("get", MethodAttributes.Static | MethodAttributes.Public, CallingConventions.Standard, typeof(T[]), new[] { typeof(List<T>) }, typeof(ArrayAccessor<T>), true);
+                var il = dm.GetILGenerator();
+                il.Emit(OpCodes.Ldarg_0); // Load List<T> argument
+                il.Emit(OpCodes.Ldfld, typeof(List<T>).GetField("_items", BindingFlags.NonPublic | BindingFlags.Instance)!); // Replace argument by field
+                il.Emit(OpCodes.Ret); // Return field
+                GetUnderlyingArray = (Func<List<T>, T[]>)dm.CreateDelegate(typeof(Func<List<T>, T[]>));
+            }
+        }
+            
+        // ReSharper disable once ReturnTypeCanBeEnumerable.Global
+        internal static T[] GetInternalArray<T>(this List<T> list)
+        {
+            return ArrayAccessor<T>.GetUnderlyingArray(list);
+        }
+    }
+}

From 4f1d1ed3b171b36c65b4cc8762f45d4453441924 Mon Sep 17 00:00:00 2001
From: varon <varon-github@outlook.com>
Date: Sat, 28 Nov 2020 20:19:38 +0200
Subject: [PATCH 51/52] Add buffers to vertex array

---
 .../Factories/GLVertexArrayFactory.cs         |  7 ++--
 src/ObjectTK.Core/GLObjects/VertexArray.cs    | 39 +++++++++++++++----
 2 files changed, 34 insertions(+), 12 deletions(-)

diff --git a/src/ObjectTK.Core/Factories/GLVertexArrayFactory.cs b/src/ObjectTK.Core/Factories/GLVertexArrayFactory.cs
index b2b47e7..38d10a7 100644
--- a/src/ObjectTK.Core/Factories/GLVertexArrayFactory.cs
+++ b/src/ObjectTK.Core/Factories/GLVertexArrayFactory.cs
@@ -70,10 +70,10 @@ public VertexArray FromBuffers([NotNull] string name, [NotNull] params Buffer[]
             GL.BindBuffer(BufferTarget.ArrayBuffer, 0);
             GL.BindVertexArray(0);
             
-            return new VertexArray(name, vao, length, false);
+            return new VertexArray(name, vao, buffers, null);
         }
         
-        /// Creates a vertex array from the 
+        /// Creates a vertex array from the provided index and vertex buffers.
         [Pure]
         [NotNull]
         public VertexArray IndexAndVertexBuffers([NotNull] string name, Buffer<int> indexBuffer, params Buffer[] vertexBuffers) {
@@ -81,8 +81,7 @@ public VertexArray IndexAndVertexBuffers([NotNull] string name, Buffer<int> inde
             GL.BindVertexArray(b.Handle);
             GL.BindBuffer(BufferTarget.ElementArrayBuffer, indexBuffer.Handle);
             GL.BindVertexArray(0);
-            b.ElementCount = indexBuffer.ElementCount;
-            b.HasElementArrayBuffer = true;
+            b.IndexBuffer = indexBuffer;
             return b;
         }
     }
diff --git a/src/ObjectTK.Core/GLObjects/VertexArray.cs b/src/ObjectTK.Core/GLObjects/VertexArray.cs
index 961cea0..c014335 100644
--- a/src/ObjectTK.Core/GLObjects/VertexArray.cs
+++ b/src/ObjectTK.Core/GLObjects/VertexArray.cs
@@ -1,23 +1,46 @@
-namespace ObjectTK.GLObjects {
+using JetBrains.Annotations;
+
+namespace ObjectTK.GLObjects {
 	
 	/// An OpenGL Vertex array object.
 	public class VertexArray {
 		
 		/// The name of this object.
 		public string Name { get; }
+		
 		/// The OpenGL handle. Use this to interact with OpenGL.
 		public int Handle { get; }
-		/// The number of elements in this VAO.
-		public int ElementCount { get; set; }
+
+		/// The buffers associated with this vertex array.
+		[NotNull]
+		[ItemNotNull]
+		public Buffer[] Buffers { get; set; }
+
 		
-		/// If this vertex array has an element array buffer (i.e. should be displayed using indexed drawing).
-		public bool HasElementArrayBuffer { get; set; }
+		/// The element array buffer for this object.
+		/// If this is present, the vertex array should be displayed using indexed drawing.
+		[CanBeNull]
+		public Buffer IndexBuffer { get; set; }
+		
+		
+		/// The number of elements to draw. If there is an element buffer, this is the length.
+		/// If there is no element buffer, this is the length of the first buffer in the <see cref="Buffers"/> array.
+		public int ElementCount {
+			get
+			{
+				if (IndexBuffer != null) {
+					return IndexBuffer.ElementCount;
+				}
+				
+				return Buffers[0].ElementCount;
+			}
+		}
 
-		public VertexArray(string name, int handle, int elementCount, bool hasElementArrayBuffer) {
+		public VertexArray(string name, int handle, [NotNull] Buffer[] buffers, [CanBeNull] Buffer indexBuffer) {
 			Name = name;
 			Handle = handle;
-			ElementCount = elementCount;
-			HasElementArrayBuffer = hasElementArrayBuffer;
+			Buffers = buffers;
+			IndexBuffer = indexBuffer;
 		}
 	}
 }

From 48232754ce41c3ebd67a73399cae4a2b5b70a5c1 Mon Sep 17 00:00:00 2001
From: varon <varon-github@outlook.com>
Date: Sat, 28 Nov 2020 20:21:04 +0200
Subject: [PATCH 52/52] Release 2.0.0-pre.9

---
 RELEASE_NOTES.md | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md
index cceaf6a..5b9fe34 100644
--- a/RELEASE_NOTES.md
+++ b/RELEASE_NOTES.md
@@ -1,3 +1,7 @@
+### 2.0.0-pre.9
+    * Vertex buffer improvements
+    * New fast GLFactory.Buffer methods on lists.
+
 ### 2.0.0-pre.8
     * Fix mipmap generation