changeset 4764:102675835e08

Removed Daniel's test code
author Sam Lantinga <slouken@libsdl.org>
date Sun, 22 Aug 2010 12:39:56 -0700
parents 518d1679d2d0
children 7b1d35d98294
files EXCLUDE/GLIMM/GLIMM.sln EXCLUDE/GLIMM/GLIMM.vcproj EXCLUDE/GLIMM/include/App.hpp EXCLUDE/GLIMM/include/IMM.hpp EXCLUDE/GLIMM/include/Video_Mode.hpp EXCLUDE/GLIMM/include/Window.hpp EXCLUDE/GLIMM/include/Window_Listener.hpp EXCLUDE/GLIMM/src/App.cpp EXCLUDE/GLIMM/src/IMM.cpp EXCLUDE/GLIMM/src/Main.cpp EXCLUDE/GLIMM/src/Video_Mode.cpp EXCLUDE/GLIMM/src/Window.cpp EXCLUDE/GLTSF/GLTSF.sln EXCLUDE/GLTSF/GLTSF.vcproj EXCLUDE/GLTSF/GLTSF.vcxproj EXCLUDE/GLTSF/GLTSF.vcxproj.filters EXCLUDE/GLTSF/GLTSF_vs2008.sln EXCLUDE/GLTSF/include/App.hpp EXCLUDE/GLTSF/include/TSF.hpp EXCLUDE/GLTSF/include/Video_Mode.hpp EXCLUDE/GLTSF/include/Window.hpp EXCLUDE/GLTSF/include/Window_Listener.hpp EXCLUDE/GLTSF/src/App.cpp EXCLUDE/GLTSF/src/Main.cpp EXCLUDE/GLTSF/src/TSF.cpp EXCLUDE/GLTSF/src/Video_Mode.cpp EXCLUDE/GLTSF/src/Window.cpp
diffstat 27 files changed, 0 insertions(+), 2751 deletions(-) [+]
line wrap: on
line diff
--- a/EXCLUDE/GLIMM/GLIMM.sln	Sun Aug 22 12:39:27 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 10.00
-# Visual Studio 2008
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GLIMM", "GLIMM.vcproj", "{F21B830F-20A9-4473-B67A-21D1743C6E19}"
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|Win32 = Debug|Win32
-		Release|Win32 = Release|Win32
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{F21B830F-20A9-4473-B67A-21D1743C6E19}.Debug|Win32.ActiveCfg = Debug|Win32
-		{F21B830F-20A9-4473-B67A-21D1743C6E19}.Debug|Win32.Build.0 = Debug|Win32
-		{F21B830F-20A9-4473-B67A-21D1743C6E19}.Release|Win32.ActiveCfg = Release|Win32
-		{F21B830F-20A9-4473-B67A-21D1743C6E19}.Release|Win32.Build.0 = Release|Win32
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-EndGlobal
--- a/EXCLUDE/GLIMM/GLIMM.vcproj	Sun Aug 22 12:39:27 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,233 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="GLIMM"
-	ProjectGUID="{F21B830F-20A9-4473-B67A-21D1743C6E19}"
-	RootNamespace="GLIMM"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="196613"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)bin"
-			IntermediateDirectory="obj\$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="include"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="imm32.lib"
-				LinkIncremental="2"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)bin"
-			IntermediateDirectory="obj\$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				EnableIntrinsicFunctions="true"
-				AdditionalIncludeDirectories="include"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="imm32.lib"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath=".\src\App.cpp"
-				>
-			</File>
-			<File
-				RelativePath=".\src\IMM.cpp"
-				>
-			</File>
-			<File
-				RelativePath=".\src\Main.cpp"
-				>
-			</File>
-			<File
-				RelativePath=".\src\Video_Mode.cpp"
-				>
-			</File>
-			<File
-				RelativePath=".\src\Window.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-			<File
-				RelativePath=".\include\App.hpp"
-				>
-			</File>
-			<File
-				RelativePath=".\include\IMM.hpp"
-				>
-			</File>
-			<File
-				RelativePath=".\include\Video_Mode.hpp"
-				>
-			</File>
-			<File
-				RelativePath=".\include\Window.hpp"
-				>
-			</File>
-			<File
-				RelativePath=".\include\Window_Listener.hpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
--- a/EXCLUDE/GLIMM/include/App.hpp	Sun Aug 22 12:39:27 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-#ifndef APP_HPP
-#define APP_HPP
-
-#include "Window.hpp"
-
-class App : public Window_Listener
-{
-public:
-	App();
-	virtual ~App();
-
-	void Initialize();
-	void Finalize();
-
-	void Run();
-
-	virtual void On_Close();
-	virtual void On_Key_Down(int Key);
-	virtual void On_Key_Up(int Key);
-	virtual void On_Char(unsigned int Char);
-	virtual void On_Resized(unsigned int Width, unsigned int Height);
-	virtual void On_Mouse_Button_Down(Mouse_Button Button);
-
-private:
-	void Update();
-	void Draw();
-
-	static const int Width = 800;
-	static const int Height = 600;
-	static const int Bits_Per_Pixel = 32;
-	static const bool Fullscreen = true;
-
-	Window my_Window;
-	bool my_Done;
-};
-
-#endif
--- a/EXCLUDE/GLIMM/include/IMM.hpp	Sun Aug 22 12:39:27 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-#ifndef IMM_HPP
-#define IMM_HPP
-
-#define WIN32_LEAN_AND_MEAN
-#include <Windows.h>
-#include <msctf.h>
-
-class IMM
-{
-public:
-	IMM();
-	~IMM();
-
-	void Initialize(HWND Window);
-	void Finalize();
-
-	LRESULT Handle_Message(HWND Window, UINT Message, WPARAM wParam, LPARAM lParam, bool &Ate);
-
-	void Enable();
-	void Disable();
-	bool Is_Enabled();
-	void Toggle();
-
-	void Focus_Gained();
-	void Focus_Lost();
-
-private:
-	void Update_Input_Locale();
-	void Cancel_Composition();
-	void Input_Language_Changed();
-
-	bool my_COM_Initialized;
-	ITfThreadMgr *my_Thread_Manager;
-	HWND my_Window;
-	HIMC my_Context;
-	HKL my_HKL;
-	bool my_Vertical_Candidates;
-	bool my_Enabled;
-};
-
-#endif
--- a/EXCLUDE/GLIMM/include/Video_Mode.hpp	Sun Aug 22 12:39:27 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-#ifndef VIDEO_MODE_HPP
-#define VIDEO_MODE_HPP
-
-#include <cstddef>
-
-class Video_Mode
-{
-public:
-	Video_Mode();
-	Video_Mode(unsigned int The_Width, unsigned int The_Height, unsigned int The_Bits_Per_Pixel);
-
-	static Video_Mode Get_Desktop_Mode();
-
-	static std::size_t Get_Mode_Count();
-	static Video_Mode Get_Mode(std::size_t Index);
-
-	bool Is_Valid() const;
-
-	bool operator==(const Video_Mode &Mode) const;
-	bool operator!=(const Video_Mode &Mode) const;
-
-	unsigned int Width;
-	unsigned int Height;
-	unsigned int Bits_Per_Pixel;
-
-private:
-	static void Initialize_Modes();
-};
-
-#endif
--- a/EXCLUDE/GLIMM/include/Window.hpp	Sun Aug 22 12:39:27 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-#ifndef WINDOW_HPP
-#define WINDOW_HPP
-
-#include <string>
-
-#define WIN32_LEAN_AND_MEAN
-#include <Windows.h>
-
-#include "Video_Mode.hpp"
-#include "Window_Listener.hpp"
-#include "IMM.hpp"
-
-class Window
-{
-public:
-	Window();
-	~Window();
-
-	void Initialize(const std::wstring &Title, const Video_Mode &Mode, bool Fullscreen);
-	void Finalize();
-
-	void Set_Listener(Window_Listener *Listener);
-
-	void Show();
-	void Hide();
-
-	void Handle_Events();
-	void Display();
-
-	void Show_Cursor();
-	void Hide_Cursor();
-
-	HWND Get_Handle();
-	IMM &Get_IMM();
-
-private:
-	static const wchar_t *Window_Class_Name;
-
-	void Register_Class();
-	void Unregister_Class();
-
-	void Create_Window(const std::wstring &Title, const Video_Mode &Mode, bool Fullscreen);
-	void Destroy_Window();
-
-	void Create_Context(const Video_Mode &Mode);
-	void Destroy_Context();
-
-	void Switch_To_Fullscreen(const Video_Mode &Mode);
-
-	LRESULT Handle_Message(HWND Handle, UINT Message, WPARAM wParam, LPARAM lParam);
-	static LRESULT CALLBACK Window_Procedure(HWND Handle, UINT Message, WPARAM wParam, LPARAM lParam);
-
-	HWND my_Handle;
-	Video_Mode my_Video_Mode;
-	bool my_Fullscreen;
-	HDC my_Device_Context;
-	HGLRC my_GL_Context;
-	bool my_Class_Registered;
-	Window_Listener *my_Listener;
-	IMM my_IMM;
-};
-
-#endif
--- a/EXCLUDE/GLIMM/include/Window_Listener.hpp	Sun Aug 22 12:39:27 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-#ifndef WINDOW_LISTENER_HPP
-#define WINDOW_LISTENER_HPP
-
-enum Mouse_Button
-{
-	Mouse_Button_Left,
-	Mouse_Button_Right
-};
-
-class Window_Listener
-{
-public:
-	virtual void On_Close(){}
-	virtual void On_Key_Down(int Key){}
-	virtual void On_Key_Up(int Key){}
-	virtual void On_Char(unsigned int Char){}
-	virtual void On_Resized(unsigned int Width, unsigned int Height){}
-	virtual void On_Mouse_Button_Down(Mouse_Button Button){}
-	virtual void On_Mouse_Button_Up(Mouse_Button Button){}
-
-};
-
-#endif
--- a/EXCLUDE/GLIMM/src/App.cpp	Sun Aug 22 12:39:27 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,113 +0,0 @@
-#include "App.hpp"
-#include <GL/gl.h>
-#include <GL/glu.h>
-
-#pragma comment(lib, "glu32.lib")
-
-GLfloat Rotation = 0.0f;
-
-App::App() : my_Done(false)
-{
-
-}
-
-App::~App()
-{
-	Finalize();
-}
-
-void App::Initialize()
-{
-	Finalize();
-
-	my_Window.Initialize(L"GLIMM", Video_Mode(Width, Height, Bits_Per_Pixel), Fullscreen);
-	my_Window.Set_Listener(this);
-	my_Window.Show();
-	my_Window.Hide_Cursor();
-}
-
-void App::Finalize()
-{
-	my_Window.Finalize();
-}
-
-void App::Run()
-{
-	Initialize();
-	while (!my_Done)
-	{
-		my_Window.Handle_Events();
-
-		Update();
-		Draw();
-		my_Window.Display();
-	}
-}
-
-void App::On_Close()
-{
-	my_Done = true;
-	my_Window.Hide();
-}
-
-void App::On_Key_Down(int Key)
-{
-	switch (Key)
-	{
-	case VK_ESCAPE:
-		On_Close();
-		break;
-	}
-}
-
-void App::On_Key_Up(int Key)
-{
-
-}
-
-void App::On_Char(unsigned int Char)
-{
-	printf("Char: U+%04X\n", Char);
-}
-
-void App::On_Resized(unsigned int Width, unsigned int Height)
-{
-	glViewport(0, 0, Width, Height);
-	glMatrixMode(GL_PROJECTION);
-	glLoadIdentity();
-
-	glMatrixMode(GL_MODELVIEW);
-	glLoadIdentity();
-}
-
-void App::On_Mouse_Button_Down(Mouse_Button Button)
-{
-	switch (Button)
-	{
-	case Mouse_Button_Left:
-		my_Window.Get_IMM().Toggle();
-		break;
-	}
-}
-
-void App::Update()
-{
-	Rotation += 0.2f;
-}
-
-void App::Draw()
-{
-	glClear(GL_COLOR_BUFFER_BIT);
-
-	glLoadIdentity();
-	glRotatef(Rotation, 0.0f, 0.0f, -1.0f);
-
-	glBegin(GL_TRIANGLES);
-		glColor3f(0.7f, 0.0f, 0.0f);
-		glVertex3f(0.0f, 0.5f, 0.0f);
-		glColor3f(0.0f, 0.7f, 0.0f);
-		glVertex3f(-0.5f, -0.5f, 0.0f);
-		glColor3f(0.0f, 0.0f, 0.7f);
-		glVertex3f(0.5f, -0.5f, 0.0f);
-	glEnd();
-}
--- a/EXCLUDE/GLIMM/src/IMM.cpp	Sun Aug 22 12:39:27 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,237 +0,0 @@
-#include "IMM.hpp"
-#include <stdexcept>
-
-IMM::IMM() : my_COM_Initialized(false),
-			 my_Thread_Manager(0),
-			 my_Window(0),
-			 my_Context(0),
-			 my_HKL(0),
-			 my_Vertical_Candidates(false),
-			 my_Enabled(false)
-{
-
-}
-
-IMM::~IMM()
-{
-	Finalize();
-}
-
-void IMM::Initialize(HWND Window)
-{
-	Finalize();
-
-	my_Window = Window;
-
-	if (SUCCEEDED(CoInitializeEx(NULL, COINIT_APARTMENTTHREADED)))
-	{
-		my_COM_Initialized = true;
-		if (SUCCEEDED(CoCreateInstance(CLSID_TF_ThreadMgr, NULL, CLSCTX_INPROC_SERVER, IID_ITfThreadMgr, reinterpret_cast<LPVOID *>(&my_Thread_Manager))))
-		{
-			ITfDocumentMgr *Document_Manager = 0;
-			if (SUCCEEDED(my_Thread_Manager->AssociateFocus(Window, NULL, &Document_Manager)))
-			{
-				if (Document_Manager)
-					Document_Manager->Release();
-			}
-			else
-				printf("Warning: ITfThreadMgr->AssociateFocus failed\n");
-		}
-		else
-			printf("Warning: Failed to create ITfThreadMgr instance\n");
-	}
-	else
-		printf("Warning: Failed to initialize COM\n");
-
-	ImmDisableTextFrameService((DWORD)-1);
-
-	my_Context = ImmGetContext(my_Window);
-	ImmReleaseContext(my_Window, my_Context);
-	if (!my_Context)
-		throw std::runtime_error("No context (No IME installed?)");
-
-	Update_Input_Locale();
-	Cancel_Composition();
-	Disable();
-}
-
-void IMM::Finalize()
-{
-	if (my_Thread_Manager)
-	{
-		my_Thread_Manager->Release();
-		my_Thread_Manager = 0;
-	}
-	if (my_COM_Initialized)
-	{
-		CoUninitialize();
-		my_COM_Initialized = false;
-	}
-}
-
-#define GET_LANG(hkl) LOWORD((hkl))
-#define GET_PRIMLANG(hkl) ((WORD)PRIMARYLANGID(GET_LANG((hkl))))
-#define GET_SUBLANG(hkl) SUBLANGID(GET_LANG((hkl)))
-
-void IMM::Update_Input_Locale()
-{
-	static HKL Previous_HKL = 0;
-	my_HKL = GetKeyboardLayout(0);
-	if (Previous_HKL == my_HKL)
-		return;
-
-	Previous_HKL = my_HKL;
-	my_Vertical_Candidates = false;
-	switch (GET_PRIMLANG(my_HKL))
-	{
-	case LANG_CHINESE:
-		my_Vertical_Candidates = true;
-		switch (GET_SUBLANG(my_HKL))
-		{
-		case SUBLANG_CHINESE_SIMPLIFIED:
-			my_Vertical_Candidates = false;
-			break;
-		}
-		break;
-	case LANG_JAPANESE:
-		my_Vertical_Candidates = true;
-		break;
-	}
-}
-
-LRESULT IMM::Handle_Message(HWND Window, UINT Message, WPARAM wParam, LPARAM lParam, bool &Ate)
-{
-	Ate = false;
-	switch (Message)
-	{
-	case WM_INPUTLANGCHANGE:
-		Input_Language_Changed();
-		break;
-	case WM_IME_SETCONTEXT:
-		lParam = 0;
-		break;
-	case WM_IME_STARTCOMPOSITION:
-		Ate = true;
-		break;
-	case WM_IME_COMPOSITION:
-		{
-			Ate = true;
-			HIMC Context = ImmGetContext(Window);
-			if (!Context)
-				break;
-
-			if (lParam & GCS_RESULTSTR)
-			{
-				LONG Length = ImmGetCompositionStringW(Context, GCS_RESULTSTR, 0, 0);
-				std::wstring Composition(Length / sizeof(wchar_t), 0);
-				Length = ImmGetCompositionStringW(Context, GCS_RESULTSTR, &Composition[0], Composition.size() * sizeof(Composition[0]));
-				printf("GCS_RESULTSTR: ");
-				for (LONG i = 0; i < Length / sizeof(wchar_t); ++i)
-					printf("U+%04X ", Composition[i]);
-
-				printf("\n");
-			}
-			if (lParam & GCS_COMPSTR)
-			{
-				LONG Length = ImmGetCompositionStringW(Context, GCS_COMPSTR, 0, 0);
-				std::wstring Composition(Length / sizeof(wchar_t), 0);
-				Length = ImmGetCompositionStringW(Context, GCS_COMPSTR, &Composition[0], Composition.size() * sizeof(Composition[0]));
-				printf("GCS_COMPSTR: ");
-				for (LONG i = 0; i < Length / sizeof(wchar_t); ++i)
-					printf("U+%04X ", Composition[i]);
-
-				printf("\n");
-			}
-			ImmReleaseContext(Window, Context);
-		}
-		break;
-	case WM_IME_ENDCOMPOSITION:
-		break;
-	case WM_IME_NOTIFY:
-		switch (wParam)
-		{
-		case IMN_SETCONVERSIONMODE:
-
-			break;
-		case IMN_SETOPENSTATUS:
-			Update_Input_Locale();
-			break;
-		case IMN_OPENCANDIDATE:
-		case IMN_CHANGECANDIDATE:
-			Ate = true;
-			break;
-		case IMN_CLOSECANDIDATE:
-			Ate = true;
-			break;
-		default:
-			Ate = true;
-			break;
-		}
-		break;
-	}
-	return 0;
-}
-
-void IMM::Enable()
-{
-	ImmAssociateContext(my_Window, my_Context);
-	Update_Input_Locale();
-	my_Enabled = true;
-	printf("* Enabled\n");
-}
-
-void IMM::Disable()
-{
-	ImmAssociateContext(my_Window, 0);
-	my_Enabled = false;
-	printf("* Disabled\n");
-}
-
-bool IMM::Is_Enabled()
-{
-	return my_Enabled;
-}
-
-void IMM::Toggle()
-{
-	if (my_Enabled)
-		Disable();
-	else
-		Enable();
-}
-
-void IMM::Focus_Gained()
-{
-	if (my_Enabled)
-		Enable();
-}
-
-void IMM::Focus_Lost()
-{
-	bool Enabled = my_Enabled;
-	Cancel_Composition();
-	Disable();
-	my_Enabled = Enabled;
-}
-
-void IMM::Cancel_Composition()
-{
-	HIMC hIMC = ImmGetContext(my_Window);
-	if (!hIMC)
-		return;
-
-	ImmNotifyIME(hIMC, NI_COMPOSITIONSTR, CPS_CANCEL, 0);
-	ImmNotifyIME(hIMC, NI_CLOSECANDIDATE, 0, 0);
-	ImmReleaseContext(my_Window, hIMC);
-}
-
-void IMM::Input_Language_Changed()
-{
-	Update_Input_Locale();
-	HWND hwndImeDef = ImmGetDefaultIMEWnd(my_Window);
-	if (hwndImeDef)
-	{
-		SendMessageA(hwndImeDef, WM_IME_CONTROL, IMC_OPENSTATUSWINDOW, 0);
-		SendMessageA(hwndImeDef, WM_IME_CONTROL, IMC_CLOSESTATUSWINDOW, 0);
-	}
-}
--- a/EXCLUDE/GLIMM/src/Main.cpp	Sun Aug 22 12:39:27 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-#include "App.hpp"
-#include <stdexcept>
-
-int main(int argc, char *argv[])
-{
-	int Result = EXIT_SUCCESS;
-	try
-	{
-		App theApp;
-		theApp.Run();
-	}
-	catch (const std::exception& e)
-	{
-		printf("Error: %s\n", e.what());
-		Result = EXIT_FAILURE;
-	}
-	catch (...)
-	{
-		printf("Unhandled exception\n");
-		Result = EXIT_FAILURE;
-	}
-	system("PAUSE");
-	return Result;
-}
--- a/EXCLUDE/GLIMM/src/Video_Mode.cpp	Sun Aug 22 12:39:27 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,100 +0,0 @@
-#include "Video_Mode.hpp"
-#include <vector>
-#include <algorithm>
-#define WIN32_LEAN_AND_MEAN
-#include <Windows.h>
-
-namespace
-{
-
-	typedef std::vector<Video_Mode> Video_Mode_List;
-	Video_Mode_List Supported_Modes;
-
-	struct Compare_Modes
-	{
-		bool operator()(const Video_Mode &Mode_1, const Video_Mode &Mode_2) const
-		{
-			if (Mode_1.Bits_Per_Pixel > Mode_2.Bits_Per_Pixel)
-				return true;
-			else if (Mode_1.Bits_Per_Pixel < Mode_2.Bits_Per_Pixel)
-				return false;
-			else if (Mode_1.Width > Mode_2.Width)
-				return true;
-			else if (Mode_1.Width < Mode_2.Width)
-				return false;
-			else
-				return Mode_1.Height > Mode_2.Height;
-		}
-	};
-
-}
-
-Video_Mode::Video_Mode() : Width(0),
-						   Height(0),
-						   Bits_Per_Pixel(0)
-{
-
-}
-
-Video_Mode::Video_Mode(unsigned int The_Width, unsigned int The_Height, unsigned int The_Bits_Per_Pixel)
-	: Width(The_Width),
-	  Height(The_Height),
-	  Bits_Per_Pixel(The_Bits_Per_Pixel)
-{
-
-}
-
-Video_Mode Video_Mode::Get_Desktop_Mode()
-{
-	DEVMODE Device_Mode = {0};
-	Device_Mode.dmSize = sizeof(Device_Mode);
-	EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &Device_Mode);
-	return Video_Mode(Device_Mode.dmPelsWidth, Device_Mode.dmPelsHeight, Device_Mode.dmBitsPerPel);
-}
-
-std::size_t Video_Mode::Get_Mode_Count()
-{
-	Initialize_Modes();
-	return Supported_Modes.size();
-}
-
-Video_Mode Video_Mode::Get_Mode(std::size_t Index)
-{
-	Initialize_Modes();
-	return Supported_Modes[Index];
-}
-
-bool Video_Mode::Is_Valid() const
-{
-	Initialize_Modes();
-	return Supported_Modes.end() != std::find(Supported_Modes.begin(), Supported_Modes.end(), *this);
-}
-
-bool Video_Mode::operator==(const Video_Mode &Mode) const
-{
-	return (Width == Mode.Width
-		&&  Height == Mode.Height
-		&&  Bits_Per_Pixel == Mode.Bits_Per_Pixel);
-}
-
-bool Video_Mode::operator!=(const Video_Mode &Mode) const
-{
-	return !(*this == Mode);
-}
-
-void Video_Mode::Initialize_Modes()
-{
-	static bool Initialized = false;
-	if (!Initialized)
-	{
-		DEVMODE Device_Mode = {0};
-		Device_Mode.dmSize = sizeof(Device_Mode);
-		for (std::size_t i = 0; 0 != EnumDisplaySettings(NULL, i, &Device_Mode); ++i)
-		{
-			Video_Mode Mode(Device_Mode.dmPelsWidth, Device_Mode.dmPelsHeight, Device_Mode.dmBitsPerPel);
-			if (Supported_Modes.end() == std::find(Supported_Modes.begin(), Supported_Modes.end(), Mode))
-				Supported_Modes.push_back(Mode);
-		}
-		std::sort(Supported_Modes.begin(), Supported_Modes.end(), Compare_Modes());
-	}
-}
--- a/EXCLUDE/GLIMM/src/Window.cpp	Sun Aug 22 12:39:27 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,317 +0,0 @@
-#include "Window.hpp"
-#include <gl/GL.h>
-
-#pragma comment(lib, "opengl32.lib")
-
-const wchar_t *Window::Window_Class_Name = L"GLTSF";
-
-Window::Window() : my_Handle(0),
-				   my_Device_Context(0),
-				   my_GL_Context(0),
-				   my_Class_Registered(false),
-				   my_Listener(0)
-{
-
-}
-
-Window::~Window()
-{
-	Finalize();
-	Show_Cursor();
-}
-
-void Window::Initialize(const std::wstring &Title, const Video_Mode &Mode, bool Fullscreen)
-{
-	Finalize();
-
-	my_Video_Mode = Mode;
-	if (!my_Video_Mode.Is_Valid())
-		throw std::runtime_error("Invalid video mode");
-
-	my_Fullscreen = Fullscreen;
-	Register_Class();
-	Create_Window(Title, Mode, Fullscreen);
-	Show();
-	my_IMM.Initialize(my_Handle);
-}
-
-void Window::Finalize()
-{
-	my_IMM.Finalize();
-	Destroy_Window();
-	Unregister_Class();
-}
-
-void Window::Set_Listener(Window_Listener *Listener)
-{
-	my_Listener = Listener;
-}
-
-void Window::Show()
-{
-	if (my_Handle)
-		ShowWindow(my_Handle, SW_SHOW);
-}
-
-void Window::Hide()
-{
-	if (my_Handle)
-		ShowWindow(my_Handle, SW_HIDE);
-}
-
-void Window::Handle_Events()
-{
-	MSG Message = {0};
-	while (PeekMessageW(&Message, NULL, 0, 0, PM_REMOVE))
-	{
-		TranslateMessage(&Message);
-		DispatchMessageW(&Message);
-	}
-}
-
-void Window::Display()
-{
-	if (my_Device_Context && my_GL_Context)
-		SwapBuffers(my_Device_Context);
-}
-
-void Window::Show_Cursor()
-{
-	ShowCursor(TRUE);
-}
-
-void Window::Hide_Cursor()
-{
-	ShowCursor(FALSE);
-}
-
-HWND Window::Get_Handle()
-{
-	return my_Handle;
-}
-
-IMM & Window::Get_IMM()
-{
-	return my_IMM;
-}
-
-void Window::Register_Class()
-{
-	WNDCLASSEXW Window_Class = {0};
-	Window_Class.cbSize = sizeof(Window_Class);
-	Window_Class.style = 0;
-	Window_Class.lpfnWndProc = &Window::Window_Procedure;
-	Window_Class.cbClsExtra = 0;
-	Window_Class.cbWndExtra = 0;
-	Window_Class.hInstance = GetModuleHandle(NULL);
-	Window_Class.hIcon = NULL;
-	Window_Class.hCursor = NULL;
-	Window_Class.hbrBackground = NULL;
-	Window_Class.lpszMenuName = NULL;
-	Window_Class.lpszClassName = Window_Class_Name;
-	Window_Class.hIconSm = NULL;
-	if (0 == RegisterClassExW(&Window_Class))
-		throw std::runtime_error("Failed to register window class");
-
-	my_Class_Registered = true;
-}
-
-void Window::Unregister_Class()
-{
-	if (my_Class_Registered)
-	{
-		if (0 == UnregisterClassW(Window_Class_Name, GetModuleHandle(NULL)))
-			printf("Warning: Failed to unregister window class\n");
-
-		my_Class_Registered = false;
-	}
-}
-
-void Window::Create_Window(const std::wstring &Title, const Video_Mode &Mode, bool Fullscreen)
-{
-	HDC Screen_DC = GetDC(NULL);
-	int Left = (GetDeviceCaps(Screen_DC, HORZRES) - my_Video_Mode.Width) / 2;
-	int Top = (GetDeviceCaps(Screen_DC, VERTRES) - my_Video_Mode.Height) / 2;
-	int Width = my_Video_Mode.Width;
-	int Height = my_Video_Mode.Height;
-	ReleaseDC(NULL, Screen_DC);
-
-	DWORD Style = WS_CAPTION | WS_MINIMIZEBOX | WS_SYSMENU;
-	if (!my_Fullscreen)
-	{
-		RECT Rect = {0, 0, Width, Height};
-		AdjustWindowRect(&Rect, Style, false);
-		Width = Rect.right - Rect.left;
-		Height = Rect.bottom - Rect.top;
-	}
-	my_Handle = CreateWindowW(Window_Class_Name, Title.c_str(), Style, Left, Top, Width, Height, NULL, NULL, GetModuleHandle(NULL), this);
-	if (!my_Handle)
-		throw std::runtime_error("Failed to create window");
-
-	if (Fullscreen)
-		Switch_To_Fullscreen(Mode);
-
-	Create_Context(Mode);
-
-	RECT Rect = {0};
-	GetClientRect(my_Handle, &Rect);
-	//TODO: ...
-}
-
-void Window::Destroy_Window()
-{
-	Destroy_Context();
-	if (my_Handle)
-	{
-		DestroyWindow(my_Handle);
-		my_Handle = 0;
-
-		if (my_Fullscreen)
-			ChangeDisplaySettings(NULL, 0);
-	}
-}
-
-void Window::Create_Context(const Video_Mode &Mode)
-{
-	my_Device_Context = GetDC(my_Handle);
-	if (!my_Device_Context)
-		throw std::runtime_error("Failed to get device context");
-
-	PIXELFORMATDESCRIPTOR Pixel_Descriptor = {0};
-	Pixel_Descriptor.nSize = sizeof(Pixel_Descriptor);
-	Pixel_Descriptor.nVersion = 1;
-	Pixel_Descriptor.iLayerType = PFD_MAIN_PLANE;
-	Pixel_Descriptor.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER;
-	Pixel_Descriptor.iPixelType = PFD_TYPE_RGBA;
-	Pixel_Descriptor.cColorBits = static_cast<BYTE>(Mode.Bits_Per_Pixel);
-	Pixel_Descriptor.cDepthBits = 24;
-	Pixel_Descriptor.cStencilBits = 8;
-	Pixel_Descriptor.cAlphaBits = Mode.Bits_Per_Pixel == 32 ? 8 : 0;
-
-	int Best_Format = ChoosePixelFormat(my_Device_Context, &Pixel_Descriptor);
-	if (0 == Best_Format)
-		throw std::runtime_error("Failed to find suitable pixel format");
-
-	PIXELFORMATDESCRIPTOR Actual_Format = {0};
-	Actual_Format.nSize = sizeof(Actual_Format);
-	Actual_Format.nVersion = 1;
-	DescribePixelFormat(my_Device_Context, Best_Format, sizeof(Actual_Format), &Actual_Format);
-	if (!SetPixelFormat(my_Device_Context, Best_Format, &Actual_Format))
-		throw std::runtime_error("Failed to set device pixel format");
-
-	my_GL_Context = wglCreateContext(my_Device_Context);
-	if (!my_GL_Context)
-		throw std::runtime_error("Failed to create OpenGL context");
-
-	wglMakeCurrent(my_Device_Context, my_GL_Context);
-}
-
-void Window::Destroy_Context()
-{
-	if (my_GL_Context)
-	{
-		wglDeleteContext(my_GL_Context);
-		my_GL_Context = 0;
-	}
-	if (my_Device_Context)
-	{
-		ReleaseDC(my_Handle, my_Device_Context);
-		my_Device_Context = 0;
-	}
-}
-
-void Window::Switch_To_Fullscreen(const Video_Mode &Mode)
-{
-	DEVMODE Device_Mode = {0};
-	Device_Mode.dmSize = sizeof(Device_Mode);
-	Device_Mode.dmPelsWidth = Mode.Width;
-	Device_Mode.dmPelsHeight = Mode.Height;
-	Device_Mode.dmBitsPerPel = Mode.Bits_Per_Pixel;
-	Device_Mode.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT | DM_BITSPERPEL;
-
-	if (DISP_CHANGE_SUCCESSFUL != ChangeDisplaySettings(&Device_Mode, CDS_FULLSCREEN))
-		throw std::runtime_error("Failed to change to fullscreen mode");
-
-	SetWindowLong(my_Handle, GWL_STYLE, WS_POPUP | WS_CLIPCHILDREN | WS_CLIPSIBLINGS);
-	SetWindowLong(my_Handle, GWL_EXSTYLE, WS_EX_APPWINDOW);
-
-	SetWindowPos(my_Handle, HWND_TOP, 0, 0, Mode.Width, Mode.Height, SWP_FRAMECHANGED);
-}
-
-LRESULT CALLBACK Window::Window_Procedure(HWND Handle, UINT Message, WPARAM wParam, LPARAM lParam)
-{
-	switch (Message)
-	{
-	case WM_CREATE:
-		{
-			LONG This = reinterpret_cast<LONG>(reinterpret_cast<CREATESTRUCT *>(lParam)->lpCreateParams);
-			SetWindowLongPtr(Handle, GWLP_USERDATA, This);
-			return 0;
-		}
-		break;
-	case WM_DESTROY:
-		PostQuitMessage(0);
-		return 0;
-		break;
-	default:
-		{
-			Window* Win = reinterpret_cast<Window *>(GetWindowLongPtr(Handle, GWLP_USERDATA));
-			if (Win)
-				return Win->Handle_Message(Handle, Message, wParam, lParam);
-		}
-		break;
-	}
-	return DefWindowProcW(Handle, Message, wParam, lParam);
-}
-
-#define Call_Listener(x)\
-	if (my_Listener) my_Listener->x
-
-LRESULT Window::Handle_Message(HWND Handle, UINT Message, WPARAM wParam, LPARAM lParam)
-{
-	bool IMM_Message = false;
-	LRESULT Result = my_IMM.Handle_Message(Handle, Message, wParam, lParam, IMM_Message);
-	if (IMM_Message)
-		return Result;
-
-	switch (Message)
-	{
-	case WM_SIZE:
-		Call_Listener(On_Resized(LOWORD(lParam), HIWORD(lParam)));
-		break;
-	case WM_CLOSE:
-		Call_Listener(On_Close());
-		break;
-	case WM_KEYDOWN:
-		Call_Listener(On_Key_Down(wParam));
-		break;
-	case WM_KEYUP:
-		Call_Listener(On_Key_Up(wParam));
-		break;
-	case WM_CHAR:
-		Call_Listener(On_Char(wParam));
-		break;
-	case WM_SETFOCUS:
-			my_IMM.Focus_Gained();
-		break;
-	case WM_KILLFOCUS:
-			my_IMM.Focus_Lost();
-		break;
-	case WM_LBUTTONDOWN:
-		Call_Listener(On_Mouse_Button_Down(Mouse_Button_Left));
-		break;
-	case WM_LBUTTONUP:
-		Call_Listener(On_Mouse_Button_Up(Mouse_Button_Left));
-		break;
-	case WM_RBUTTONDOWN:
-		Call_Listener(On_Mouse_Button_Down(Mouse_Button_Right));
-		break;
-	case WM_RBUTTONUP:
-		Call_Listener(On_Mouse_Button_Up(Mouse_Button_Right));
-		break;
-	default:
-		return DefWindowProcW(Handle, Message, wParam, lParam);
-		break;
-	}
-	return 0;
-}
--- a/EXCLUDE/GLTSF/GLTSF.sln	Sun Aug 22 12:39:27 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual Studio 2010
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GLTSF", "GLTSF.vcxproj", "{790D58BA-E5F6-4286-A9C6-0DC28779789D}"
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|Win32 = Debug|Win32
-		Release|Win32 = Release|Win32
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{790D58BA-E5F6-4286-A9C6-0DC28779789D}.Debug|Win32.ActiveCfg = Debug|Win32
-		{790D58BA-E5F6-4286-A9C6-0DC28779789D}.Debug|Win32.Build.0 = Debug|Win32
-		{790D58BA-E5F6-4286-A9C6-0DC28779789D}.Release|Win32.ActiveCfg = Release|Win32
-		{790D58BA-E5F6-4286-A9C6-0DC28779789D}.Release|Win32.Build.0 = Release|Win32
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-EndGlobal
--- a/EXCLUDE/GLTSF/GLTSF.vcproj	Sun Aug 22 12:39:27 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,231 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="GLTSF"
-	ProjectGUID="{FC8A9A48-6667-4BDE-8E9B-5859408AEE83}"
-	RootNamespace="GLTSF"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="196613"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)bin"
-			IntermediateDirectory="obj\$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="include"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				LinkIncremental="2"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)bin"
-			IntermediateDirectory="obj\$(ConfigurationName)"
-			ConfigurationType="1"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				EnableIntrinsicFunctions="true"
-				AdditionalIncludeDirectories="include"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="true"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				LinkIncremental="1"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath=".\src\App.cpp"
-				>
-			</File>
-			<File
-				RelativePath=".\src\Main.cpp"
-				>
-			</File>
-			<File
-				RelativePath=".\src\TSF.cpp"
-				>
-			</File>
-			<File
-				RelativePath=".\src\Video_Mode.cpp"
-				>
-			</File>
-			<File
-				RelativePath=".\src\Window.cpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-			<File
-				RelativePath=".\include\App.hpp"
-				>
-			</File>
-			<File
-				RelativePath=".\include\TSF.hpp"
-				>
-			</File>
-			<File
-				RelativePath=".\include\Video_Mode.hpp"
-				>
-			</File>
-			<File
-				RelativePath=".\include\Window.hpp"
-				>
-			</File>
-			<File
-				RelativePath=".\include\Window_Listener.hpp"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
--- a/EXCLUDE/GLTSF/GLTSF.vcxproj	Sun Aug 22 12:39:27 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|Win32">
-      <Configuration>Debug</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|Win32">
-      <Configuration>Release</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <ProjectGuid>{790D58BA-E5F6-4286-A9C6-0DC28779789D}</ProjectGuid>
-    <Keyword>Win32Proj</Keyword>
-    <RootNamespace>GLTSF</RootNamespace>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <UseDebugLibraries>true</UseDebugLibraries>
-    <CharacterSet>Unicode</CharacterSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-    <ConfigurationType>Application</ConfigurationType>
-    <UseDebugLibraries>false</UseDebugLibraries>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-    <CharacterSet>Unicode</CharacterSet>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <ImportGroup Label="ExtensionSettings">
-  </ImportGroup>
-  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <LinkIncremental>true</LinkIncremental>
-    <OutDir>$(SolutionDir)bin\</OutDir>
-    <IntDir>obj\$(Configuration)\</IntDir>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <LinkIncremental>false</LinkIncremental>
-    <OutDir>$(SolutionDir)bin\</OutDir>
-    <IntDir>obj\$(Configuration)\</IntDir>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <ClCompile>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <Optimization>Disabled</Optimization>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-    </ClCompile>
-    <Link>
-      <SubSystem>Console</SubSystem>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <ClCompile>
-      <WarningLevel>Level3</WarningLevel>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <Optimization>MaxSpeed</Optimization>
-      <FunctionLevelLinking>true</FunctionLevelLinking>
-      <IntrinsicFunctions>true</IntrinsicFunctions>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-    </ClCompile>
-    <Link>
-      <SubSystem>Console</SubSystem>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-      <OptimizeReferences>true</OptimizeReferences>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <ClInclude Include="include\App.hpp" />
-    <ClInclude Include="include\TSF.hpp" />
-    <ClInclude Include="include\Video_Mode.hpp" />
-    <ClInclude Include="include\Window.hpp" />
-    <ClInclude Include="include\Window_Listener.hpp" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="src\App.cpp" />
-    <ClCompile Include="src\Main.cpp" />
-    <ClCompile Include="src\TSF.cpp" />
-    <ClCompile Include="src\Video_Mode.cpp" />
-    <ClCompile Include="src\Window.cpp" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-  </ImportGroup>
-</Project>
\ No newline at end of file
--- a/EXCLUDE/GLTSF/GLTSF.vcxproj.filters	Sun Aug 22 12:39:27 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup>
-    <Filter Include="Source Files">
-      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
-      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
-    </Filter>
-    <Filter Include="Header Files">
-      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
-      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
-    </Filter>
-    <Filter Include="Resource Files">
-      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
-      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
-    </Filter>
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="include\App.hpp">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="include\Video_Mode.hpp">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="include\Window.hpp">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="include\Window_Listener.hpp">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="include\TSF.hpp">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="src\App.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="src\Main.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="src\Video_Mode.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="src\Window.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="src\TSF.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-  </ItemGroup>
-</Project>
\ No newline at end of file
--- a/EXCLUDE/GLTSF/GLTSF_vs2008.sln	Sun Aug 22 12:39:27 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 10.00
-# Visual Studio 2008
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GLTSF", "GLTSF.vcproj", "{FC8A9A48-6667-4BDE-8E9B-5859408AEE83}"
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|Win32 = Debug|Win32
-		Release|Win32 = Release|Win32
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{FC8A9A48-6667-4BDE-8E9B-5859408AEE83}.Debug|Win32.ActiveCfg = Debug|Win32
-		{FC8A9A48-6667-4BDE-8E9B-5859408AEE83}.Debug|Win32.Build.0 = Debug|Win32
-		{FC8A9A48-6667-4BDE-8E9B-5859408AEE83}.Release|Win32.ActiveCfg = Release|Win32
-		{FC8A9A48-6667-4BDE-8E9B-5859408AEE83}.Release|Win32.Build.0 = Release|Win32
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-EndGlobal
--- a/EXCLUDE/GLTSF/include/App.hpp	Sun Aug 22 12:39:27 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-#ifndef APP_HPP
-#define APP_HPP
-
-#include "Window.hpp"
-
-class App : public Window_Listener
-{
-public:
-	App();
-	virtual ~App();
-
-	void Initialize();
-	void Finalize();
-
-	void Run();
-
-	virtual void On_Close();
-	virtual void On_Key_Down(int Key);
-	virtual void On_Key_Up(int Key);
-	virtual void On_Char(unsigned int Char);
-	virtual void On_Resized(unsigned int Width, unsigned int Height);
-
-private:
-	void Update();
-	void Draw();
-
-	static const int Width = 800;
-	static const int Height = 600;
-	static const int Bits_Per_Pixel = 32;
-	static const bool Fullscreen = true;
-
-	Window my_Window;
-	bool my_Done;
-};
-
-#endif
--- a/EXCLUDE/GLTSF/include/TSF.hpp	Sun Aug 22 12:39:27 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-#ifndef TSF_HPP
-#define TSF_HPP
-
-#include <msctf.h>
-#include <atlbase.h>
-
-class TSF
-{
-public:
-	static void Initialize();
-	static void Finalize();
-
-private:
-	class TSF_Text_Store : public ITextStoreACP, public ITfContextOwnerCompositionSink
-	{
-	public:
-		//IUnknown
-		STDMETHODIMP QueryInterface(REFIID riid, void **ppvObject);
-		STDMETHODIMP_(ULONG) AddRef();
-		STDMETHODIMP_(ULONG) Release();
-
-		//ITextStoreACP
-		STDMETHODIMP AdviseSink(REFIID riid, IUnknown *punk, DWORD dwMask);
-		STDMETHODIMP UnadviseSink(IUnknown *punk);
-		STDMETHODIMP RequestLock(DWORD dwLockFlags, HRESULT *phrSession);
-		STDMETHODIMP GetStatus(TS_STATUS *pdcs);
-		STDMETHODIMP QueryInsert(LONG acpTestStart, LONG acpTestEnd, ULONG cch, LONG *pacpResultStart, LONG *pacpResultEnd);
-		STDMETHODIMP GetSelection(ULONG ulIndex, ULONG ulCount, TS_SELECTION_ACP *pSelection, ULONG *pcFetched);
-		STDMETHODIMP SetSelection(ULONG ulCount, const TS_SELECTION_ACP *pSelection);
-		STDMETHODIMP GetText(LONG acpStart, LONG acpEnd, WCHAR *pchPlain, ULONG cchPlainReq, ULONG *pcchPlainRet, TS_RUNINFO *prgRunInfo, ULONG cRunInfoReq, ULONG *pcRunInfoRet, LONG *pacpNext);
-		STDMETHODIMP SetText(DWORD dwFlags, LONG acpStart, LONG acpEnd, const WCHAR *pchText, ULONG cch, TS_TEXTCHANGE *pChange);
-		STDMETHODIMP GetFormattedText(LONG acpStart, LONG acpEnd, IDataObject **ppDataObject);
-		STDMETHODIMP GetEmbedded(LONG acpPos, REFGUID rguidService, REFIID riid, IUnknown **ppunk);
-		STDMETHODIMP QueryInsertEmbedded(const GUID *pguidService, const FORMATETC *pFormatEtc, BOOL *pfInsertable);
-		STDMETHODIMP InsertEmbedded(DWORD dwFlags, LONG acpStart, LONG acpEnd, IDataObject *pDataObject, TS_TEXTCHANGE *pChange);
-		STDMETHODIMP InsertTextAtSelection(DWORD dwFlags, const WCHAR *pchText, ULONG cch, LONG *pacpStart, LONG *pacpEnd, TS_TEXTCHANGE *pChange);
-		STDMETHODIMP InsertEmbeddedAtSelection(DWORD dwFlags, IDataObject *pDataObject, LONG *pacpStart, LONG *pacpEnd, TS_TEXTCHANGE *pChange);
-		STDMETHODIMP RequestSupportedAttrs(DWORD dwFlags, ULONG cFilterAttrs, const TS_ATTRID *paFilterAttrs);
-		STDMETHODIMP RequestAttrsAtPosition(LONG acpPos, ULONG cFilterAttrs, const TS_ATTRID *paFilterAttrs, DWORD dwFlags);
-		STDMETHODIMP RequestAttrsTransitioningAtPosition(LONG acpPos, ULONG cFilterAttrs, const TS_ATTRID *paFilterAttrs, DWORD dwFlags);
-		STDMETHODIMP FindNextAttrTransition(LONG acpStart, LONG acpHalt, ULONG cFilterAttrs, const TS_ATTRID *paFilterAttrs, DWORD dwFlags, LONG *pacpNext, BOOL *pfFound, LONG *plFoundOffset);
-		STDMETHODIMP RetrieveRequestedAttrs(ULONG ulCount, TS_ATTRVAL *paAttrVals, ULONG *pcFetched);
-		STDMETHODIMP GetEndACP(LONG *pacp);
-		STDMETHODIMP GetActiveView(TsViewCookie *pvcView);
-		STDMETHODIMP GetACPFromPoint(TsViewCookie vcView, const POINT *ptScreen, DWORD dwFlags, LONG *pacp);
-		STDMETHODIMP GetTextExt(TsViewCookie vcView, LONG acpStart, LONG acpEnd, RECT *prc, BOOL *pfClipped);
-		STDMETHODIMP GetScreenExt(TsViewCookie vcView, RECT *prc);
-		STDMETHODIMP GetWnd(TsViewCookie vcView, HWND *phwnd);
-
-		//ITfOwnerCompositionSink
-		STDMETHODIMP OnStartComposition(ITfCompositionView *pComposition, BOOL *pfOk);
-		STDMETHODIMP OnUpdateComposition(ITfCompositionView *pComposition, ITfRange *pRangeNew);
-		STDMETHODIMP OnEndComposition(ITfCompositionView *pComposition);
-
-		void Initialize();
-		void Finalize();
-
-		TSF_Text_Store();
-		~TSF_Text_Store();
-
-	private:
-		ULONG my_Reference_Count;
-		CComPtr<ITfDocumentMgr> my_Document_Manager;
-		CComPtr<ITfContext> my_Context;
-		DWORD my_Edit_Cookie;
-		CComPtr<ITextStoreACPSink> my_Sink;
-		DWORD my_Sink_Mask;
-		DWORD my_Lock;
-		DWORD my_Lock_Queued;
-		CComPtr<ITfCompositionView> my_Composition_View;
-		TS_SELECTION_ACP my_Composition_Selection;
-	};
-
-	TSF();
-
-	static bool COM_Initialized;
-
-	static CComPtr<ITfThreadMgr> Thread_Manager;
-	static TfClientId Client_Id;
-	static TSF_Text_Store *Text_Store;
-};
-
-#endif
--- a/EXCLUDE/GLTSF/include/Video_Mode.hpp	Sun Aug 22 12:39:27 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-#ifndef VIDEO_MODE_HPP
-#define VIDEO_MODE_HPP
-
-#include <cstddef>
-
-class Video_Mode
-{
-public:
-	Video_Mode();
-	Video_Mode(unsigned int The_Width, unsigned int The_Height, unsigned int The_Bits_Per_Pixel);
-
-	static Video_Mode Get_Desktop_Mode();
-
-	static std::size_t Get_Mode_Count();
-	static Video_Mode Get_Mode(std::size_t Index);
-
-	bool Is_Valid() const;
-
-	bool operator==(const Video_Mode &Mode) const;
-	bool operator!=(const Video_Mode &Mode) const;
-
-	unsigned int Width;
-	unsigned int Height;
-	unsigned int Bits_Per_Pixel;
-
-private:
-	static void Initialize_Modes();
-};
-
-#endif
--- a/EXCLUDE/GLTSF/include/Window.hpp	Sun Aug 22 12:39:27 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-#ifndef WINDOW_HPP
-#define WINDOW_HPP
-
-#include <string>
-
-#define WIN32_LEAN_AND_MEAN
-#include <Windows.h>
-
-#include "Video_Mode.hpp"
-#include "Window_Listener.hpp"
-#include "TSF.hpp"
-
-class Window
-{
-public:
-	Window();
-	~Window();
-
-	void Initialize(const std::wstring &Title, const Video_Mode &Mode, bool Fullscreen);
-	void Finalize();
-
-	void Set_Listener(Window_Listener *Listener);
-
-	void Show();
-	void Hide();
-
-	void Handle_Events();
-	void Display();
-
-	void Show_Cursor();
-	void Hide_Cursor();
-
-private:
-	static const wchar_t *Window_Class_Name;
-
-	void Register_Class();
-	void Unregister_Class();
-
-	void Create_Window(const std::wstring &Title, const Video_Mode &Mode, bool Fullscreen);
-	void Destroy_Window();
-
-	void Create_Context(const Video_Mode &Mode);
-	void Destroy_Context();
-
-	void Switch_To_Fullscreen(const Video_Mode &Mode);
-
-	LRESULT Handle_Message(HWND Handle, UINT Message, WPARAM wParam, LPARAM lParam);
-	static LRESULT CALLBACK Window_Procedure(HWND Handle, UINT Message, WPARAM wParam, LPARAM lParam);
-
-	HWND my_Handle;
-	Video_Mode my_Video_Mode;
-	bool my_Fullscreen;
-	HDC my_Device_Context;
-	HGLRC my_GL_Context;
-	bool my_Class_Registered;
-	Window_Listener *my_Listener;
-};
-
-#endif
--- a/EXCLUDE/GLTSF/include/Window_Listener.hpp	Sun Aug 22 12:39:27 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-#ifndef WINDOW_LISTENER_HPP
-#define WINDOW_LISTENER_HPP
-
-class Window_Listener
-{
-public:
-	virtual void On_Close(){}
-	virtual void On_Key_Down(int Key){}
-	virtual void On_Key_Up(int Key){}
-	virtual void On_Char(unsigned int Char){}
-	virtual void On_Resized(unsigned int Width, unsigned int Height){}
-};
-
-#endif
--- a/EXCLUDE/GLTSF/src/App.cpp	Sun Aug 22 12:39:27 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,105 +0,0 @@
-#include "App.hpp"
-#include "TSF.hpp"
-#include <GL/gl.h>
-#include <GL/glu.h>
-
-#pragma comment(lib, "glu32.lib")
-
-GLfloat Rotation = 0.0f;
-
-App::App() : my_Done(false)
-{
-	TSF::Initialize();
-}
-
-App::~App()
-{
-	Finalize();
-	TSF::Finalize();
-}
-
-void App::Initialize()
-{
-	Finalize();
-
-	my_Window.Initialize(L"GLTSF", Video_Mode(Width, Height, Bits_Per_Pixel), Fullscreen);
-	my_Window.Set_Listener(this);
-	my_Window.Show();
-	my_Window.Hide_Cursor();
-}
-
-void App::Finalize()
-{
-	my_Window.Finalize();
-}
-
-void App::Run()
-{
-	Initialize();
-	while (!my_Done)
-	{
-		my_Window.Handle_Events();
-
-		Update();
-		Draw();
-		my_Window.Display();
-	}
-}
-
-void App::On_Close()
-{
-	my_Done = true;
-	my_Window.Hide();
-}
-
-void App::On_Key_Down(int Key)
-{
-	switch (Key)
-	{
-	case VK_ESCAPE:
-		On_Close();
-		break;
-	}
-}
-
-void App::On_Key_Up(int Key)
-{
-
-}
-
-void App::On_Char(unsigned int Char)
-{
-	printf("Char: U+%04X\n", Char);
-}
-
-void App::On_Resized(unsigned int Width, unsigned int Height)
-{
-	glViewport(0, 0, Width, Height);
-	glMatrixMode(GL_PROJECTION);
-	glLoadIdentity();
-
-	glMatrixMode(GL_MODELVIEW);
-	glLoadIdentity();
-}
-
-void App::Update()
-{
-	Rotation += 0.2f;
-}
-
-void App::Draw()
-{
-	glClear(GL_COLOR_BUFFER_BIT);
-
-	glLoadIdentity();
-	glRotatef(Rotation, 0.0f, 0.0f, -1.0f);
-
-	glBegin(GL_TRIANGLES);
-		glColor3f(0.7f, 0.0f, 0.0f);
-		glVertex3f(0.0f, 0.5f, 0.0f);
-		glColor3f(0.0f, 0.7f, 0.0f);
-		glVertex3f(-0.5f, -0.5f, 0.0f);
-		glColor3f(0.0f, 0.0f, 0.7f);
-		glVertex3f(0.5f, -0.5f, 0.0f);
-	glEnd();
-}
--- a/EXCLUDE/GLTSF/src/Main.cpp	Sun Aug 22 12:39:27 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-#include "App.hpp"
-#include <stdexcept>
-
-int main(int argc, char *argv[])
-{
-	int Result = EXIT_SUCCESS;
-	try
-	{
-		App theApp;
-		theApp.Run();
-	}
-	catch (const std::exception& e)
-	{
-		printf("Error: %s\n", e.what());
-		Result = EXIT_FAILURE;
-	}
-	catch (...)
-	{
-		printf("Unhandled exception\n");
-		Result = EXIT_FAILURE;
-	}
-	system("PAUSE");
-	return Result;
-}
--- a/EXCLUDE/GLTSF/src/TSF.cpp	Sun Aug 22 12:39:27 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,360 +0,0 @@
-#include "TSF.hpp"
-#include <stdexcept>
-
-bool TSF::COM_Initialized = false;
-CComPtr<ITfThreadMgr> TSF::Thread_Manager;
-TfClientId TSF::Client_Id;
-TSF::TSF_Text_Store *TSF::Text_Store = NULL;
-
-void TSF::Initialize()
-{
-	if (!COM_Initialized)
-	{
-		HRESULT hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
-		if (S_OK != hr && S_FALSE != hr)
-			throw std::runtime_error("Failed to initialize COM");
-
-		COM_Initialized = true;
-	}
-	if (!Thread_Manager)
-	{
-		if (FAILED(CoCreateInstance(CLSID_TF_ThreadMgr, NULL, CLSCTX_INPROC_SERVER, IID_ITfThreadMgr, reinterpret_cast<void **>(&Thread_Manager))))
-			throw std::runtime_error("Failed to create ITfThreadMgr instance");
-
-		if (FAILED(Thread_Manager->Activate(&Client_Id)))
-			throw std::runtime_error("ITfThreadMgr::Activate failed");
-
-		Text_Store = new TSF_Text_Store;
-		Text_Store->Initialize();
-	}
-}
-
-void TSF::Finalize()
-{
-	if (Thread_Manager)
-	{
-		Thread_Manager->Deactivate();
-		Thread_Manager = NULL;
-	}
-	if (COM_Initialized)
-	{
-		CoUninitialize();
-		COM_Initialized = false;
-	}
-}
-
-STDMETHODIMP TSF::TSF_Text_Store::QueryInterface(REFIID riid, void **ppvObject)
-{
-	*ppvObject = NULL;
-	if (IID_IUnknown == riid || IID_ITextStoreACP == riid)
-		*ppvObject = static_cast<ITextStoreACP *>(this);
-	else if (IID_ITfContextOwnerCompositionSink == riid)
-		*ppvObject = static_cast<ITfContextOwnerCompositionSink *>(this);
-
-	if (*ppvObject)
-	{
-		AddRef();
-		return S_OK;
-	}
-	return E_NOINTERFACE;
-}
-
-STDMETHODIMP_(ULONG) TSF::TSF_Text_Store::AddRef()
-{
-	return ++my_Reference_Count;
-}
-
-STDMETHODIMP_(ULONG) TSF::TSF_Text_Store::Release()
-{
-	--my_Reference_Count;
-	if (0 != my_Reference_Count)
-		return my_Reference_Count;
-
-	delete this;
-	return 0;
-}
-
-#define CHECK_CONDITION(condition, retval, function, line)						\
-	if (!condition)																\
-	{																			\
-		printf("%s:%d: Condition failure: %s\n", function, line, #condition);	\
-	}
-
-#define ENSURE(condition, retval)	CHECK_CONDITION(condition, retval, __FUNCTION__, __LINE__)
-
-STDMETHODIMP TSF::TSF_Text_Store::AdviseSink(REFIID riid, IUnknown *punk, DWORD dwMask)
-{
-	ENSURE(punk && IID_ITextStoreACP == riid, E_INVALIDARG);
-
-	if (!my_Sink)
-	{
-		HRESULT hr = punk->QueryInterface(&my_Sink);
-		ENSURE(SUCCEEDED(hr) && my_Sink, E_UNEXPECTED);
-	}
-	else
-	{
-		CComPtr<IUnknown> Unknown_1, Unknown_2;
-		punk->QueryInterface(&Unknown_1);
-		my_Sink->QueryInterface(&Unknown_2);
-		if (Unknown_1 != Unknown_2)
-			return CONNECT_E_ADVISELIMIT;
-	}
-	my_Sink_Mask = dwMask;
-	return S_OK;
-}
-
-STDMETHODIMP TSF::TSF_Text_Store::UnadviseSink(IUnknown *punk)
-{
-	ENSURE(punk, E_INVALIDARG);
-	ENSURE(my_Sink, CONNECT_E_NOCONNECTION);
-
-	CComPtr<IUnknown> Unknown_1, Unknown_2;
-	punk->QueryInterface(&Unknown_1);
-	my_Sink->QueryInterface(&Unknown_2);
-
-	if (Unknown_1 != Unknown_2)
-		return CONNECT_E_NOCONNECTION;
-
-	my_Sink = NULL;
-	my_Sink_Mask = 0;
-	return S_OK;
-}
-
-STDMETHODIMP TSF::TSF_Text_Store::RequestLock(DWORD dwLockFlags, HRESULT *phrSession)
-{
-	ENSURE(my_Sink, E_FAIL);
-	ENSURE(phrSession, E_INVALIDARG);
-	if (my_Lock)
-	{
-		if (TS_LF_READ == (my_Lock & TS_LF_READWRITE)
-			&& TS_LF_READWRITE == (dwLockFlags & TS_LF_READWRITE)
-			&& !(dwLockFlags & TS_LF_SYNC))
-		{
-			*phrSession = TS_S_ASYNC;
-			my_Lock_Queued = dwLockFlags & (~TS_LF_SYNC);
-		}
-		else
-		{
-			*phrSession = TS_E_SYNCHRONOUS;
-			return E_FAIL;
-		}
-	}
-	else
-	{
-		my_Lock = dwLockFlags & (~TS_LF_SYNC);
-		*phrSession = my_Sink->OnLockGranted(my_Lock);
-		while (my_Lock_Queued)
-		{
-			my_Lock = my_Lock_Queued;
-			my_Lock_Queued = 0;
-			my_Sink->OnLockGranted(my_Lock);
-		}
-		my_Lock = 0;
-	}
-	return S_OK;
-}
-
-STDMETHODIMP TSF::TSF_Text_Store::GetStatus(TS_STATUS *pdcs)
-{
-	ENSURE(pdcs, E_INVALIDARG);
-	pdcs->dwDynamicFlags = 0;
-	pdcs->dwStaticFlags = TS_SS_NOHIDDENTEXT;
-	return S_OK;
-}
-
-STDMETHODIMP TSF::TSF_Text_Store::QueryInsert(LONG acpTestStart, LONG acpTestEnd, ULONG cch, LONG *pacpResultStart, LONG *pacpResultEnd)
-{
-	ENSURE(0 <= acpTestStart && acpTestStart <= acpTestEnd && pacpResultStart && pacpResultEnd, E_INVALIDARG);
-
-	*pacpResultStart = acpTestStart;
-	*pacpResultEnd = acpTestStart + cch;
-	return S_OK;
-}
-
-STDMETHODIMP TSF::TSF_Text_Store::GetSelection(ULONG ulIndex, ULONG ulCount, TS_SELECTION_ACP *pSelection, ULONG *pcFetched)
-{
-	ENSURE(TS_LF_READ == (my_Lock && TS_LF_READ), TS_E_NOLOCK);
-	ENSURE(ulCount && pSelection && pcFetched, E_INVALIDARG);
-
-	*pcFetched = 0;
-	ENSURE(TS_DEFAULT_SELECTION == ulIndex || 0 == ulIndex, TS_E_NOSELECTION);
-	if (my_Composition_View)
-	{
-		*pSelection = my_Composition_Selection;
-	}
-	else
-	{
-		//TODO
-	}
-	*pcFetched = 1;
-	return S_OK;
-}
-
-STDMETHODIMP TSF::TSF_Text_Store::SetSelection(ULONG ulCount, const TS_SELECTION_ACP *pSelection)
-{
-	return E_NOTIMPL;
-}
-
-STDMETHODIMP TSF::TSF_Text_Store::GetText(LONG acpStart, LONG acpEnd, WCHAR *pchPlain, ULONG cchPlainReq, ULONG *pcchPlainRet, TS_RUNINFO *prgRunInfo, ULONG cRunInfoReq, ULONG *pcRunInfoRet, LONG *pacpNext)
-{
-	ENSURE(TS_LF_READ == (my_Lock & TS_LF_READ), TS_E_NOLOCK);
-	ENSURE(pcchPlainRet && (pchPlain || prgRunInfo)
-		&& (!cchPlainReq == !pchPlain)
-		&& (!cRunInfoReq == !prgRunInfo), E_INVALIDARG);
-	ENSURE(0 <= acpStart && -1 <= acpEnd
-		&& (-1 == acpEnd || acpStart <= acpEnd), TS_E_INVALIDPOS);
-
-	*pcchPlainRet = 0;
-	if (pchPlain && cchPlainReq) *pchPlain = 0;
-	if (pcRunInfoRet) *pcRunInfoRet = 0;
-	//TODO
-	return S_OK;
-}
-
-STDMETHODIMP TSF::TSF_Text_Store::SetText(DWORD dwFlags, LONG acpStart, LONG acpEnd, const WCHAR *pchText, ULONG cch, TS_TEXTCHANGE *pChange)
-{
-	return E_NOTIMPL;
-}
-
-STDMETHODIMP TSF::TSF_Text_Store::GetFormattedText(LONG acpStart, LONG acpEnd, IDataObject **ppDataObject)
-{
-	//not needed
-	return E_NOTIMPL;
-}
-
-STDMETHODIMP TSF::TSF_Text_Store::GetEmbedded(LONG acpPos, REFGUID rguidService, REFIID riid, IUnknown **ppunk)
-{
-	//not needed
-	return E_NOTIMPL;
-}
-
-STDMETHODIMP TSF::TSF_Text_Store::QueryInsertEmbedded(const GUID *pguidService, const FORMATETC *pFormatEtc, BOOL *pfInsertable)
-{
-	if (!pfInsertable)
-		return E_INVALIDARG;
-
-	//Not supported
-	*pfInsertable = FALSE;
-	return E_NOTIMPL;
-}
-
-STDMETHODIMP TSF::TSF_Text_Store::InsertEmbedded(DWORD dwFlags, LONG acpStart, LONG acpEnd, IDataObject *pDataObject, TS_TEXTCHANGE *pChange)
-{
-	return E_NOTIMPL;
-}
-
-STDMETHODIMP TSF::TSF_Text_Store::InsertTextAtSelection(DWORD dwFlags, const WCHAR *pchText, ULONG cch, LONG *pacpStart, LONG *pacpEnd, TS_TEXTCHANGE *pChange)
-{
-	return E_NOTIMPL;
-}
-
-STDMETHODIMP TSF::TSF_Text_Store::InsertEmbeddedAtSelection(DWORD dwFlags, IDataObject *pDataObject, LONG *pacpStart, LONG *pacpEnd, TS_TEXTCHANGE *pChange)
-{
-	//not needed
-	return E_NOTIMPL;
-}
-
-STDMETHODIMP TSF::TSF_Text_Store::RequestSupportedAttrs(DWORD dwFlags, ULONG cFilterAttrs, const TS_ATTRID *paFilterAttrs)
-{
-	//not needed
-	return E_NOTIMPL;
-}
-
-STDMETHODIMP TSF::TSF_Text_Store::RequestAttrsAtPosition(LONG acpPos, ULONG cFilterAttrs, const TS_ATTRID *paFilterAttrs, DWORD dwFlags)
-{
-	//not needed
-	return E_NOTIMPL;
-}
-
-STDMETHODIMP TSF::TSF_Text_Store::RequestAttrsTransitioningAtPosition(LONG acpPos, ULONG cFilterAttrs, const TS_ATTRID *paFilterAttrs, DWORD dwFlags)
-{
-	//not needed
-	return E_NOTIMPL;
-}
-
-STDMETHODIMP TSF::TSF_Text_Store::FindNextAttrTransition(LONG acpStart, LONG acpHalt, ULONG cFilterAttrs, const TS_ATTRID *paFilterAttrs, DWORD dwFlags, LONG *pacpNext, BOOL *pfFound, LONG *plFoundOffset)
-{
-	//not needed
-	return E_NOTIMPL;
-}
-
-STDMETHODIMP TSF::TSF_Text_Store::RetrieveRequestedAttrs(ULONG ulCount, TS_ATTRVAL *paAttrVals, ULONG *pcFetched)
-{
-	//not needed
-	return E_NOTIMPL;
-}
-
-STDMETHODIMP TSF::TSF_Text_Store::GetEndACP(LONG *pacp)
-{
-	return E_NOTIMPL;
-}
-
-STDMETHODIMP TSF::TSF_Text_Store::GetActiveView(TsViewCookie *pvcView)
-{
-	return E_NOTIMPL;
-}
-
-STDMETHODIMP TSF::TSF_Text_Store::GetACPFromPoint(TsViewCookie vcView, const POINT *ptScreen, DWORD dwFlags, LONG *pacp)
-{
-	return E_NOTIMPL;
-}
-
-STDMETHODIMP TSF::TSF_Text_Store::GetTextExt(TsViewCookie vcView, LONG acpStart, LONG acpEnd, RECT *prc, BOOL *pfClipped)
-{
-	return E_NOTIMPL;
-}
-
-STDMETHODIMP TSF::TSF_Text_Store::GetScreenExt(TsViewCookie vcView, RECT *prc)
-{
-	return E_NOTIMPL;
-}
-
-STDMETHODIMP TSF::TSF_Text_Store::GetWnd(TsViewCookie vcView, HWND *phwnd)
-{
-	return E_NOTIMPL;
-}
-
-STDMETHODIMP TSF::TSF_Text_Store::OnStartComposition(ITfCompositionView *pComposition, BOOL *pfOk)
-{
-	return E_NOTIMPL;
-}
-
-STDMETHODIMP TSF::TSF_Text_Store::OnUpdateComposition(ITfCompositionView *pComposition, ITfRange *pRangeNew)
-{
-	return E_NOTIMPL;
-}
-
-STDMETHODIMP TSF::TSF_Text_Store::OnEndComposition(ITfCompositionView *pComposition)
-{
-	return E_NOTIMPL;
-}
-
-TSF::TSF_Text_Store::TSF_Text_Store() : my_Reference_Count(1),
-										my_Edit_Cookie(0),
-										my_Lock(0),
-										my_Lock_Queued(0)
-{
-
-}
-
-TSF::TSF_Text_Store::~TSF_Text_Store()
-{
-
-}
-
-void TSF::TSF_Text_Store::Initialize()
-{
-	if (FAILED(Thread_Manager->CreateDocumentMgr(&my_Document_Manager)))
-		throw std::runtime_error("Failed to create document manager");
-
-	if (FAILED(my_Document_Manager->CreateContext(Client_Id, 0, static_cast<ITextStoreACP *>(this), &my_Context, &my_Edit_Cookie)))
-		throw std::runtime_error("Failed to create document context");
-
-	if (FAILED(my_Document_Manager->Push(my_Context)))
-		throw std::runtime_error("Failed to push context");
-}
-
-void TSF::TSF_Text_Store::Finalize()
-{
-
-}
--- a/EXCLUDE/GLTSF/src/Video_Mode.cpp	Sun Aug 22 12:39:27 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,100 +0,0 @@
-#include "Video_Mode.hpp"
-#include <vector>
-#include <algorithm>
-#define WIN32_LEAN_AND_MEAN
-#include <Windows.h>
-
-namespace
-{
-
-	typedef std::vector<Video_Mode> Video_Mode_List;
-	Video_Mode_List Supported_Modes;
-
-	struct Compare_Modes
-	{
-		bool operator()(const Video_Mode &Mode_1, const Video_Mode &Mode_2) const
-		{
-			if (Mode_1.Bits_Per_Pixel > Mode_2.Bits_Per_Pixel)
-				return true;
-			else if (Mode_1.Bits_Per_Pixel < Mode_2.Bits_Per_Pixel)
-				return false;
-			else if (Mode_1.Width > Mode_2.Width)
-				return true;
-			else if (Mode_1.Width < Mode_2.Width)
-				return false;
-			else
-				return Mode_1.Height > Mode_2.Height;
-		}
-	};
-
-}
-
-Video_Mode::Video_Mode() : Width(0),
-						   Height(0),
-						   Bits_Per_Pixel(0)
-{
-
-}
-
-Video_Mode::Video_Mode(unsigned int The_Width, unsigned int The_Height, unsigned int The_Bits_Per_Pixel)
-	: Width(The_Width),
-	  Height(The_Height),
-	  Bits_Per_Pixel(The_Bits_Per_Pixel)
-{
-
-}
-
-Video_Mode Video_Mode::Get_Desktop_Mode()
-{
-	DEVMODE Device_Mode = {0};
-	Device_Mode.dmSize = sizeof(Device_Mode);
-	EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &Device_Mode);
-	return Video_Mode(Device_Mode.dmPelsWidth, Device_Mode.dmPelsHeight, Device_Mode.dmBitsPerPel);
-}
-
-std::size_t Video_Mode::Get_Mode_Count()
-{
-	Initialize_Modes();
-	return Supported_Modes.size();
-}
-
-Video_Mode Video_Mode::Get_Mode(std::size_t Index)
-{
-	Initialize_Modes();
-	return Supported_Modes[Index];
-}
-
-bool Video_Mode::Is_Valid() const
-{
-	Initialize_Modes();
-	return Supported_Modes.end() != std::find(Supported_Modes.begin(), Supported_Modes.end(), *this);
-}
-
-bool Video_Mode::operator==(const Video_Mode &Mode) const
-{
-	return (Width == Mode.Width
-		&&  Height == Mode.Height
-		&&  Bits_Per_Pixel == Mode.Bits_Per_Pixel);
-}
-
-bool Video_Mode::operator!=(const Video_Mode &Mode) const
-{
-	return !(*this == Mode);
-}
-
-void Video_Mode::Initialize_Modes()
-{
-	static bool Initialized = false;
-	if (!Initialized)
-	{
-		DEVMODE Device_Mode = {0};
-		Device_Mode.dmSize = sizeof(Device_Mode);
-		for (std::size_t i = 0; 0 != EnumDisplaySettings(NULL, i, &Device_Mode); ++i)
-		{
-			Video_Mode Mode(Device_Mode.dmPelsWidth, Device_Mode.dmPelsHeight, Device_Mode.dmBitsPerPel);
-			if (Supported_Modes.end() == std::find(Supported_Modes.begin(), Supported_Modes.end(), Mode))
-				Supported_Modes.push_back(Mode);
-		}
-		std::sort(Supported_Modes.begin(), Supported_Modes.end(), Compare_Modes());
-	}
-}
--- a/EXCLUDE/GLTSF/src/Window.cpp	Sun Aug 22 12:39:27 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,281 +0,0 @@
-#include "Window.hpp"
-#include <gl/GL.h>
-
-#pragma comment(lib, "opengl32.lib")
-
-const wchar_t *Window::Window_Class_Name = L"GLTSF";
-
-Window::Window() : my_Handle(0),
-				   my_Device_Context(0),
-				   my_GL_Context(0),
-				   my_Class_Registered(false),
-				   my_Listener(0)
-{
-
-}
-
-Window::~Window()
-{
-	Finalize();
-	Show_Cursor();
-}
-
-void Window::Initialize(const std::wstring &Title, const Video_Mode &Mode, bool Fullscreen)
-{
-	Finalize();
-
-	my_Video_Mode = Mode;
-	if (!my_Video_Mode.Is_Valid())
-		throw std::runtime_error("Invalid video mode");
-
-	my_Fullscreen = Fullscreen;
-	Register_Class();
-	Create_Window(Title, Mode, Fullscreen);
-}
-
-void Window::Finalize()
-{
-	Destroy_Window();
-	Unregister_Class();
-}
-
-void Window::Set_Listener(Window_Listener *Listener)
-{
-	my_Listener = Listener;
-}
-
-void Window::Register_Class()
-{
-	WNDCLASSEXW Window_Class = {0};
-	Window_Class.cbSize = sizeof(Window_Class);
-	Window_Class.style = 0;
-	Window_Class.lpfnWndProc = &Window::Window_Procedure;
-	Window_Class.cbClsExtra = 0;
-	Window_Class.cbWndExtra = 0;
-	Window_Class.hInstance = GetModuleHandle(NULL);
-	Window_Class.hIcon = NULL;
-	Window_Class.hCursor = NULL;
-	Window_Class.hbrBackground = NULL;
-	Window_Class.lpszMenuName = NULL;
-	Window_Class.lpszClassName = Window_Class_Name;
-	Window_Class.hIconSm = NULL;
-	if (0 == RegisterClassExW(&Window_Class))
-		throw std::runtime_error("Failed to register window class");
-
-	my_Class_Registered = true;
-}
-
-void Window::Unregister_Class()
-{
-	if (my_Class_Registered)
-	{
-		if (0 == UnregisterClassW(Window_Class_Name, GetModuleHandle(NULL)))
-			printf("Warning: Failed to unregister window class\n");
-
-		my_Class_Registered = false;
-	}
-}
-
-void Window::Create_Window(const std::wstring &Title, const Video_Mode &Mode, bool Fullscreen)
-{
-	HDC Screen_DC = GetDC(NULL);
-	int Left = (GetDeviceCaps(Screen_DC, HORZRES) - my_Video_Mode.Width) / 2;
-	int Top = (GetDeviceCaps(Screen_DC, VERTRES) - my_Video_Mode.Height) / 2;
-	int Width = my_Video_Mode.Width;
-	int Height = my_Video_Mode.Height;
-	ReleaseDC(NULL, Screen_DC);
-
-	DWORD Style = WS_CAPTION | WS_MINIMIZEBOX | WS_SYSMENU;
-	if (!my_Fullscreen)
-	{
-		RECT Rect = {0, 0, Width, Height};
-		AdjustWindowRect(&Rect, Style, false);
-		Width = Rect.right - Rect.left;
-		Height = Rect.bottom - Rect.top;
-	}
-	my_Handle = CreateWindowW(Window_Class_Name, Title.c_str(), Style, Left, Top, Width, Height, NULL, NULL, GetModuleHandle(NULL), this);
-	if (!my_Handle)
-		throw std::runtime_error("Failed to create window");
-
-	if (Fullscreen)
-		Switch_To_Fullscreen(Mode);
-
-	Create_Context(Mode);
-
-	RECT Rect = {0};
-	GetClientRect(my_Handle, &Rect);
-	//TODO: ...
-}
-
-void Window::Destroy_Window()
-{
-	Destroy_Context();
-	if (my_Handle)
-	{
-		DestroyWindow(my_Handle);
-		my_Handle = 0;
-
-		if (my_Fullscreen)
-			ChangeDisplaySettings(NULL, 0);
-	}
-}
-
-void Window::Create_Context(const Video_Mode &Mode)
-{
-	my_Device_Context = GetDC(my_Handle);
-	if (!my_Device_Context)
-		throw std::runtime_error("Failed to get device context");
-
-	PIXELFORMATDESCRIPTOR Pixel_Descriptor = {0};
-	Pixel_Descriptor.nSize = sizeof(Pixel_Descriptor);
-	Pixel_Descriptor.nVersion = 1;
-	Pixel_Descriptor.iLayerType = PFD_MAIN_PLANE;
-	Pixel_Descriptor.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER;
-	Pixel_Descriptor.iPixelType = PFD_TYPE_RGBA;
-	Pixel_Descriptor.cColorBits = static_cast<BYTE>(Mode.Bits_Per_Pixel);
-	Pixel_Descriptor.cDepthBits = 24;
-	Pixel_Descriptor.cStencilBits = 8;
-	Pixel_Descriptor.cAlphaBits = Mode.Bits_Per_Pixel == 32 ? 8 : 0;
-
-	int Best_Format = ChoosePixelFormat(my_Device_Context, &Pixel_Descriptor);
-	if (0 == Best_Format)
-		throw std::runtime_error("Failed to find suitable pixel format");
-
-	PIXELFORMATDESCRIPTOR Actual_Format = {0};
-	Actual_Format.nSize = sizeof(Actual_Format);
-	Actual_Format.nVersion = 1;
-	DescribePixelFormat(my_Device_Context, Best_Format, sizeof(Actual_Format), &Actual_Format);
-	if (!SetPixelFormat(my_Device_Context, Best_Format, &Actual_Format))
-		throw std::runtime_error("Failed to set device pixel format");
-
-	my_GL_Context = wglCreateContext(my_Device_Context);
-	if (!my_GL_Context)
-		throw std::runtime_error("Failed to create OpenGL context");
-
-	wglMakeCurrent(my_Device_Context, my_GL_Context);
-}
-
-void Window::Destroy_Context()
-{
-	if (my_GL_Context)
-	{
-		wglDeleteContext(my_GL_Context);
-		my_GL_Context = 0;
-	}
-	if (my_Device_Context)
-	{
-		ReleaseDC(my_Handle, my_Device_Context);
-		my_Device_Context = 0;
-	}
-}
-
-void Window::Switch_To_Fullscreen(const Video_Mode &Mode)
-{
-	DEVMODE Device_Mode = {0};
-	Device_Mode.dmSize = sizeof(Device_Mode);
-	Device_Mode.dmPelsWidth = Mode.Width;
-	Device_Mode.dmPelsHeight = Mode.Height;
-	Device_Mode.dmBitsPerPel = Mode.Bits_Per_Pixel;
-	Device_Mode.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT | DM_BITSPERPEL;
-
-	if (DISP_CHANGE_SUCCESSFUL != ChangeDisplaySettings(&Device_Mode, CDS_FULLSCREEN))
-		throw std::runtime_error("Failed to change to fullscreen mode");
-
-	SetWindowLong(my_Handle, GWL_STYLE, WS_POPUP | WS_CLIPCHILDREN | WS_CLIPSIBLINGS);
-	SetWindowLong(my_Handle, GWL_EXSTYLE, WS_EX_APPWINDOW);
-
-	SetWindowPos(my_Handle, HWND_TOP, 0, 0, Mode.Width, Mode.Height, SWP_FRAMECHANGED);
-}
-
-LRESULT CALLBACK Window::Window_Procedure(HWND Handle, UINT Message, WPARAM wParam, LPARAM lParam)
-{
-	switch (Message)
-	{
-	case WM_CREATE:
-		{
-			LONG This = reinterpret_cast<LONG>(reinterpret_cast<CREATESTRUCT *>(lParam)->lpCreateParams);
-			SetWindowLongPtr(Handle, GWLP_USERDATA, This);
-			return 0;
-		}
-		break;
-	case WM_DESTROY:
-		PostQuitMessage(0);
-		return 0;
-		break;
-	default:
-		{
-			Window* Win = reinterpret_cast<Window *>(GetWindowLongPtr(Handle, GWLP_USERDATA));
-			if (Win)
-				return Win->Handle_Message(Handle, Message, wParam, lParam);
-		}
-		break;
-	}
-	return DefWindowProcW(Handle, Message, wParam, lParam);
-}
-
-#define Call_Listener(x)\
-	if (my_Listener) my_Listener->x
-
-LRESULT Window::Handle_Message(HWND Handle, UINT Message, WPARAM wParam, LPARAM lParam)
-{
-	switch (Message)
-	{
-	case WM_SIZE:
-		Call_Listener(On_Resized(LOWORD(lParam), HIWORD(lParam)));
-		break;
-	case WM_CLOSE:
-		Call_Listener(On_Close());
-		break;
-	case WM_KEYDOWN:
-		Call_Listener(On_Key_Down(wParam));
-		break;
-	case WM_KEYUP:
-		Call_Listener(On_Key_Up(wParam));
-		break;
-	case WM_CHAR:
-		Call_Listener(On_Char(wParam));
-		break;
-	default:
-		return DefWindowProcW(Handle, Message, wParam, lParam);
-		break;
-	}
-	return 0;
-}
-
-void Window::Show()
-{
-	if (my_Handle)
-		ShowWindow(my_Handle, SW_SHOW);
-}
-
-void Window::Hide()
-{
-	if (my_Handle)
-		ShowWindow(my_Handle, SW_HIDE);
-}
-
-void Window::Handle_Events()
-{
-	MSG Message = {0};
-	while (PeekMessageW(&Message, NULL, 0, 0, PM_REMOVE))
-	{
-		TranslateMessage(&Message);
-		DispatchMessageW(&Message);
-	}
-}
-
-void Window::Display()
-{
-	if (my_Device_Context && my_GL_Context)
-		SwapBuffers(my_Device_Context);
-}
-
-void Window::Show_Cursor()
-{
-	ShowCursor(TRUE);
-}
-
-void Window::Hide_Cursor()
-{
-	ShowCursor(FALSE);
-}