Explorar o código

Added win32 projects for UI module and IDE

Ivan Safrin %!s(int64=10) %!d(string=hai) anos
pai
achega
139dacdf5e

+ 27 - 1
build/windows/win32/Polycode.sln

@@ -7,6 +7,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PolycodeCore", "PolycodeCor
 EndProject
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TemplateApp", "TemplateApp\TemplateApp.vcxproj", "{E09F38FA-C860-4E70-8FA4-45DD7165778B}"
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TemplateApp", "TemplateApp\TemplateApp.vcxproj", "{E09F38FA-C860-4E70-8FA4-45DD7165778B}"
 EndProject
 EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PolycodeStudio", "PolycodeStudio\PolycodeStudio.vcxproj", "{A9A71037-BC64-45D6-B872-90EF22ABB23A}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PolycodeUI", "PolycodeUI\PolycodeUI.vcxproj", "{3E46FB61-BF79-46C9-8D1A-A6FFF1EA49FA}"
+EndProject
 Global
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Mixed Platforms = Debug|Mixed Platforms
 		Debug|Mixed Platforms = Debug|Mixed Platforms
@@ -39,7 +43,29 @@ Global
 		{E09F38FA-C860-4E70-8FA4-45DD7165778B}.Release|Mixed Platforms.Build.0 = Release|Win32
 		{E09F38FA-C860-4E70-8FA4-45DD7165778B}.Release|Mixed Platforms.Build.0 = Release|Win32
 		{E09F38FA-C860-4E70-8FA4-45DD7165778B}.Release|Win32.ActiveCfg = Release|Win32
 		{E09F38FA-C860-4E70-8FA4-45DD7165778B}.Release|Win32.ActiveCfg = Release|Win32
 		{E09F38FA-C860-4E70-8FA4-45DD7165778B}.Release|Win32.Build.0 = Release|Win32
 		{E09F38FA-C860-4E70-8FA4-45DD7165778B}.Release|Win32.Build.0 = Release|Win32
-		{E09F38FA-C860-4E70-8FA4-45DD7165778B}.Release|x64.ActiveCfg = Release|Win32
+		{E09F38FA-C860-4E70-8FA4-45DD7165778B}.Release|x64.ActiveCfg = Release|x64
+		{A9A71037-BC64-45D6-B872-90EF22ABB23A}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
+		{A9A71037-BC64-45D6-B872-90EF22ABB23A}.Debug|Mixed Platforms.Build.0 = Debug|Win32
+		{A9A71037-BC64-45D6-B872-90EF22ABB23A}.Debug|Win32.ActiveCfg = Debug|Win32
+		{A9A71037-BC64-45D6-B872-90EF22ABB23A}.Debug|Win32.Build.0 = Debug|Win32
+		{A9A71037-BC64-45D6-B872-90EF22ABB23A}.Debug|x64.ActiveCfg = Debug|x64
+		{A9A71037-BC64-45D6-B872-90EF22ABB23A}.Debug|x64.Build.0 = Debug|x64
+		{A9A71037-BC64-45D6-B872-90EF22ABB23A}.Release|Mixed Platforms.ActiveCfg = Release|Win32
+		{A9A71037-BC64-45D6-B872-90EF22ABB23A}.Release|Mixed Platforms.Build.0 = Release|Win32
+		{A9A71037-BC64-45D6-B872-90EF22ABB23A}.Release|Win32.ActiveCfg = Release|Win32
+		{A9A71037-BC64-45D6-B872-90EF22ABB23A}.Release|Win32.Build.0 = Release|Win32
+		{A9A71037-BC64-45D6-B872-90EF22ABB23A}.Release|x64.ActiveCfg = Release|x64
+		{3E46FB61-BF79-46C9-8D1A-A6FFF1EA49FA}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
+		{3E46FB61-BF79-46C9-8D1A-A6FFF1EA49FA}.Debug|Mixed Platforms.Build.0 = Debug|Win32
+		{3E46FB61-BF79-46C9-8D1A-A6FFF1EA49FA}.Debug|Win32.ActiveCfg = Debug|Win32
+		{3E46FB61-BF79-46C9-8D1A-A6FFF1EA49FA}.Debug|Win32.Build.0 = Debug|Win32
+		{3E46FB61-BF79-46C9-8D1A-A6FFF1EA49FA}.Debug|x64.ActiveCfg = Debug|x64
+		{3E46FB61-BF79-46C9-8D1A-A6FFF1EA49FA}.Debug|x64.Build.0 = Debug|x64
+		{3E46FB61-BF79-46C9-8D1A-A6FFF1EA49FA}.Release|Mixed Platforms.ActiveCfg = Release|Win32
+		{3E46FB61-BF79-46C9-8D1A-A6FFF1EA49FA}.Release|Mixed Platforms.Build.0 = Release|Win32
+		{3E46FB61-BF79-46C9-8D1A-A6FFF1EA49FA}.Release|Win32.ActiveCfg = Release|Win32
+		{3E46FB61-BF79-46C9-8D1A-A6FFF1EA49FA}.Release|Win32.Build.0 = Release|Win32
+		{3E46FB61-BF79-46C9-8D1A-A6FFF1EA49FA}.Release|x64.ActiveCfg = Release|x64
 	EndGlobalSection
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
 		HideSolutionNode = FALSE

BIN=BIN
build/windows/win32/PolycodeStudio/Polycode.rc


+ 236 - 0
build/windows/win32/PolycodeStudio/PolycodeStudio.vcxproj

@@ -0,0 +1,236 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.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="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{A9A71037-BC64-45D6-B872-90EF22ABB23A}</ProjectGuid>
+    <Keyword>Win32Proj</Keyword>
+    <RootNamespace>PolycodeStudio</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v120</PlatformToolset>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v120</PlatformToolset>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v120</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>Application</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v120</PlatformToolset>
+    <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 Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <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>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <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>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <LinkIncremental>true</LinkIncremental>
+    <IncludePath>..\..\..\..\include;.;$(IncludePath)</IncludePath>
+    <LibraryPath>..\..\..\..\lib\win32\x64;$(LibraryPath)</LibraryPath>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <LinkIncremental>false</LinkIncremental>
+    <IncludePath>..\..\..\..\include;.;$(IncludePath)</IncludePath>
+    <LibraryPath>..\..\..\..\lib\win32\x64;$(LibraryPath)</LibraryPath>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <AdditionalDependencies>Shlwapi.lib;PolycodeUI.lib;ws2_32.lib;opengl32.lib;glew32.lib;zlib.lib;freetype.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;lua5.1.lib;physfs.lib;PolycodeCore.lib;Winmm.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+    <PostBuildEvent>
+      <Command>xcopy /E /Y "$(ProjectDir)\..\..\..\..\assets\ide\*" "$(ProjectDir)"</Command>
+    </PostBuildEvent>
+  </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;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <AdditionalDependencies>Shlwapi.lib;PolycodeUI.lib;ws2_32.lib;opengl32.lib;glew32.lib;zlib.lib;freetype.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;lua5.1.lib;physfs.lib;PolycodeCore.lib;Winmm.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+    <PostBuildEvent>
+      <Command>xcopy /E /Y "$(ProjectDir)\..\..\..\..\assets\ide\*" "$(OutDir)"</Command>
+    </PostBuildEvent>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\..\src\ide\EditorGrid.cpp" />
+    <ClCompile Include="..\..\..\..\src\ide\EntityEditorPropertyView.cpp" />
+    <ClCompile Include="..\..\..\..\src\ide\EntityEditorSettingsView.cpp" />
+    <ClCompile Include="..\..\..\..\src\ide\EntityEditorTreeView.cpp" />
+    <ClCompile Include="..\..\..\..\src\ide\ExampleBrowserWindow.cpp" />
+    <ClCompile Include="..\..\..\..\src\ide\ExportProjectWindow.cpp" />
+    <ClCompile Include="..\..\..\..\src\ide\NewFileWindow.cpp" />
+    <ClCompile Include="..\..\..\..\src\ide\NewProjectWindow.cpp" />
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeClipboard.cpp" />
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeConsole.cpp" />
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeEditor.cpp" />
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeEditorManager.cpp" />
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeEntityEditor.cpp" />
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeFontEditor.cpp" />
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeFrame.cpp" />
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeIDEApp.cpp" />
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeImageEditor.cpp" />
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeMaterialEditor.cpp" />
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeMeshEditor.cpp" />
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeProject.cpp" />
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeProjectBrowser.cpp" />
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeProjectEditor.cpp" />
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeProjectManager.cpp" />
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeProps.cpp" />
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeRemoteDebugger.cpp" />
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeSoundEditor.cpp" />
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeSpriteEditor.cpp" />
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeTextEditor.cpp" />
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeToolLauncher.cpp" />
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeWinIDEView.cpp" />
+    <ClCompile Include="..\..\..\..\src\ide\SettingsWindow.cpp" />
+    <ClCompile Include="..\..\..\..\src\ide\TextureBrowser.cpp" />
+    <ClCompile Include="..\..\..\..\src\ide\ToolWindows.cpp" />
+    <ClCompile Include="..\..\..\..\src\ide\TrackballCamera.cpp" />
+    <ClCompile Include="..\..\..\..\src\ide\TransformGizmo.cpp" />
+    <ClCompile Include="main.cpp" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\..\..\include\polycode\ide\EditorGrid.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\ide\EntityEditorPropertyView.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\ide\EntityEditorSettingsView.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\ide\EntityEditorTreeView.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\ide\ExampleBrowserWindow.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\ide\ExportProjectWindow.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\ide\NewFileWindow.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\ide\NewProjectWindow.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeClipboard.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeConsole.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeEditor.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeEditorManager.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeEntityEditor.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeFontEditor.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeFrame.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeGlobals.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeIDEApp.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeImageEditor.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeMaterialEditor.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeMeshEditor.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeProject.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeProjectBrowser.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeProjectEditor.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeProjectManager.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeProps.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeRemoteDebugger.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeSoundEditor.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeSpriteEditor.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeTextEditor.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeToolLauncher.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeWinIDEView.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\ide\SettingsWindow.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\ide\TextureBrowser.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\ide\ToolWindows.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\ide\TrackballCamera.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\ide\TransformGizmo.h" />
+    <ClInclude Include="resource.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="Polycode.rc" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>

+ 245 - 0
build/windows/win32/PolycodeStudio/PolycodeStudio.vcxproj.filters

@@ -0,0 +1,245 @@
+<?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;hh;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>
+    <ClCompile Include="..\..\..\..\src\ide\EditorGrid.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\ide\EntityEditorPropertyView.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\ide\EntityEditorSettingsView.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\ide\EntityEditorTreeView.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\ide\ExampleBrowserWindow.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\ide\ExportProjectWindow.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\ide\NewFileWindow.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\ide\NewProjectWindow.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeClipboard.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeConsole.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeEditor.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeEditorManager.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeEntityEditor.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeFontEditor.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeFrame.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeIDEApp.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeImageEditor.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeMaterialEditor.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeMeshEditor.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeProject.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeProjectBrowser.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeProjectEditor.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeProjectManager.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeProps.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeRemoteDebugger.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeSoundEditor.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeSpriteEditor.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeTextEditor.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeToolLauncher.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\ide\SettingsWindow.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\ide\TextureBrowser.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\ide\ToolWindows.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\ide\TrackballCamera.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\ide\PolycodeWinIDEView.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\ide\TransformGizmo.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="main.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\..\..\include\polycode\ide\EditorGrid.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\ide\EntityEditorPropertyView.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\ide\EntityEditorSettingsView.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\ide\EntityEditorTreeView.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\ide\ExampleBrowserWindow.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\ide\ExportProjectWindow.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\ide\NewFileWindow.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\ide\NewProjectWindow.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeClipboard.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeConsole.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeEditor.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeEditorManager.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeEntityEditor.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeFontEditor.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeFrame.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeGlobals.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeIDEApp.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeImageEditor.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeMaterialEditor.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeMeshEditor.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeProject.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeProjectBrowser.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeProjectEditor.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeProjectManager.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeProps.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeRemoteDebugger.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeSoundEditor.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeSpriteEditor.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeTextEditor.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeToolLauncher.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\ide\SettingsWindow.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\ide\TextureBrowser.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\ide\ToolWindows.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\ide\TrackballCamera.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\ide\TransformGizmo.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\ide\PolycodeWinIDEView.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="resource.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="Polycode.rc">
+      <Filter>Resource Files</Filter>
+    </ResourceCompile>
+  </ItemGroup>
+</Project>

+ 110 - 0
build/windows/win32/PolycodeStudio/main.cpp

@@ -0,0 +1,110 @@
+#include <Polycode.h>
+#include "polycode/ide/PolycodeIDEApp.h"
+#include "polycode/ide/PolycodeWinIDEView.h"
+#include "windows.h"
+#include "resource.h"
+#include <Shlobj.h>
+#include <Shlwapi.h>
+#include <shellapi.h>
+
+extern PolycodeIDEApp *globalApp;
+
+using namespace Polycode;
+
+void registerFileType(String extension, String progId, String app, String defaultIcon, String desc) {
+	HKEY hkey;
+
+	RegCreateKeyEx(HKEY_CLASSES_ROOT,extension.getWDataWithEncoding(String::ENCODING_UTF8),0,0,0,KEY_ALL_ACCESS,0,&hkey,0);
+	RegSetValueEx(hkey,L"",0,REG_SZ,(BYTE*)progId.getWDataWithEncoding(String::ENCODING_UTF8),progId.length() * sizeof(wchar_t));
+	RegCloseKey(hkey);
+
+	RegCreateKeyEx(HKEY_CLASSES_ROOT,L".polyproject\\OpenWithProgIds\\",0,0,0,KEY_ALL_ACCESS,0,&hkey,0);
+	RegSetValueEx(hkey,progId.getWDataWithEncoding(String::ENCODING_UTF8),0,REG_NONE,0,0);
+	RegCloseKey(hkey);
+
+	RegCreateKeyEx(HKEY_CLASSES_ROOT,progId.getWDataWithEncoding(String::ENCODING_UTF8),0,0,0,KEY_ALL_ACCESS,0,&hkey,0);
+	RegSetValueEx(hkey,L"",0,REG_SZ,(BYTE*)desc.getWDataWithEncoding(String::ENCODING_UTF8),desc.length() * sizeof(wchar_t));
+	RegCloseKey(hkey);
+
+	String path = progId + "\\shell\\open\\command\\";
+	RegCreateKeyEx(HKEY_CLASSES_ROOT,path.getWDataWithEncoding(String::ENCODING_UTF8),0,0,0,KEY_ALL_ACCESS,0,&hkey,0);
+	RegSetValueEx(hkey,L"",0,REG_SZ,(BYTE*)app.getWDataWithEncoding(String::ENCODING_UTF8),app.length() * sizeof(wchar_t));
+	RegCloseKey(hkey);
+
+	path = progId + "\\DefaultIcon\\";
+	RegCreateKeyEx(HKEY_CLASSES_ROOT,path.getWDataWithEncoding(String::ENCODING_UTF8),0,0,0,KEY_ALL_ACCESS,0,&hkey,0);
+	RegSetValueEx(hkey,L"",0,REG_SZ,(BYTE*)defaultIcon.getWDataWithEncoding(String::ENCODING_UTF8),defaultIcon.length() * sizeof(wchar_t));
+	RegCloseKey(hkey);
+
+	SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST,0,0);
+
+}
+
+int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
+{
+
+	ChangeWindowMessageFilter(WM_COPYDATA,MSGFLT_ADD);
+
+	int nArgs;
+	LPWSTR *szArglist =  CommandLineToArgvW(GetCommandLineW(), &nArgs);
+	
+	String fileName = "";
+	if(nArgs > 1) {
+		fileName = String(szArglist[1]);
+	}
+
+	fileName = fileName.replace("\\", "/");
+
+	// check if an instance of Polycode is running and bring it up and open file if needed
+	HWND runningHwnd = FindWindow(L"POLYCODEAPPLICATION", L"Polycode");
+	if(runningHwnd) {
+		SwitchToThisWindow(runningHwnd, FALSE);
+		ShowWindow(runningHwnd,SW_NORMAL);
+
+		if(fileName != "") {
+			COPYDATASTRUCT cds;
+			cds.cbData = (fileName.length() * sizeof(wchar_t)) + 1;
+			cds.lpData = fileName.getWDataWithEncoding(String::ENCODING_UTF8);
+			SendMessage(runningHwnd, WM_COPYDATA, 0, (LPARAM)&cds);
+		}
+		return 1;
+	}
+
+	TCHAR FilePath[MAX_PATH] = { 0 };
+	GetModuleFileName( 0, FilePath, MAX_PATH );
+	PathRemoveFileSpec( FilePath );    
+	SetCurrentDirectory( FilePath );
+
+	PolycodeWinIDEView *view = new PolycodeWinIDEView(hInstance, nCmdShow, L"Polycode", true, false);
+	PolycodeIDEApp *app = new PolycodeIDEApp(view);
+
+	globalApp = app;
+
+	if(fileName != "") {
+		app->openProject(fileName);
+	}
+
+	HICON mainIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON1));
+	SendMessage(view->hwnd, WM_SETICON, ICON_SMALL, (LPARAM) mainIcon );
+
+	registerFileType(".polyproject", "Polycode.ProjectFile.1", CoreServices::getInstance()->getCore()->getDefaultWorkingDirectory()+"\\Polycode.exe \"%1\"", CoreServices::getInstance()->getCore()->getDefaultWorkingDirectory()+"\\Polycode.exe,-103", "Polycode Project");
+	registerFileType(".polyapp", "Polycode.Applicaton.1", CoreServices::getInstance()->getCore()->getDefaultWorkingDirectory()+"\\Standalone\\Player\\PolycodePlayer.exe \"%1\"", CoreServices::getInstance()->getCore()->getDefaultWorkingDirectory()+"\\Polycode.exe,-104", "Polycode Application");
+
+	MSG Msg;
+	do {
+		while (PeekMessage(&Msg, NULL, 0, 0, PM_REMOVE)) {
+
+			if (!TranslateAccelerator(view->hwnd, view->haccel, &Msg)) {
+				TranslateMessage(&Msg);
+				DispatchMessage(&Msg);
+			}
+		}
+		if(((Win32Core*)app->core)->hasCopyDataString) {
+			app->openProject(((Win32Core*)app->core)->copyDataString);
+			((Win32Core*)app->core)->hasCopyDataString = false;
+		}
+	} while(app->Update());
+
+	app->saveConfigFile();
+	return Msg.wParam;
+}

BIN=BIN
build/windows/win32/PolycodeStudio/resource.h


+ 194 - 0
build/windows/win32/PolycodeUI/PolycodeUI.vcxproj

@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.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="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{3E46FB61-BF79-46C9-8D1A-A6FFF1EA49FA}</ProjectGuid>
+    <Keyword>Win32Proj</Keyword>
+    <RootNamespace>PolycodeUI</RootNamespace>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>StaticLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v120</PlatformToolset>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>StaticLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v120</PlatformToolset>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>StaticLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v120</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>StaticLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v120</PlatformToolset>
+    <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 Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <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>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <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|x64'">
+    <OutDir>..\..\..\..\lib\win32\x64</OutDir>
+    <IncludePath>..\..\..\..\include;$(IncludePath)</IncludePath>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <OutDir>..\..\..\..\lib\win32\x64</OutDir>
+    <IncludePath>..\..\..\..\include;$(IncludePath)</IncludePath>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</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;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <Text Include="ReadMe.txt" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUIBox.cpp" />
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUIButton.cpp" />
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUICheckBox.cpp" />
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUIColorBox.cpp" />
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUIComboBox.cpp" />
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUIElement.cpp" />
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUIEvent.cpp" />
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUIFileDialog.cpp" />
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUIHScrollBar.cpp" />
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUIHSizer.cpp" />
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUIHSlider.cpp" />
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUIIconSelector.cpp" />
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUIImageButton.cpp" />
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUIMenu.cpp" />
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUIMenuBar.cpp" />
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUIScrollContainer.cpp" />
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUITextInput.cpp" />
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUITree.cpp" />
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUITreeContainer.cpp" />
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUITreeEvent.cpp" />
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUIVScrollBar.cpp" />
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUIVSizer.cpp" />
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUIWindow.cpp" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolycodeUI.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUIBox.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUIButton.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUICheckBox.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUIColorBox.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUIComboBox.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUIElement.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUIEvent.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUIFileDialog.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUIHScrollBar.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUIHSizer.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUIHSlider.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUIIconSelector.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUIImageButton.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUIMenu.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUIMenuBar.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUIScrollContainer.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUITextInput.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUITree.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUITreeContainer.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUITreeEvent.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUIVScrollBar.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUIVSizer.h" />
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUIWindow.h" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>

+ 165 - 0
build/windows/win32/PolycodeUI/PolycodeUI.vcxproj.filters

@@ -0,0 +1,165 @@
+<?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;hh;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>
+    <Text Include="ReadMe.txt" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUIBox.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUIButton.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUICheckBox.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUIColorBox.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUIComboBox.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUIElement.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUIEvent.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUIFileDialog.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUIHScrollBar.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUIHSizer.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUIHSlider.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUIIconSelector.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUIImageButton.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUIMenu.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUIMenuBar.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUIScrollContainer.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUITextInput.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUITree.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUITreeContainer.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUITreeEvent.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUIVScrollBar.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUIVSizer.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\..\..\src\modules\ui\PolyUIWindow.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolycodeUI.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUIBox.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUIButton.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUICheckBox.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUIColorBox.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUIComboBox.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUIElement.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUIEvent.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUIFileDialog.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUIHScrollBar.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUIHSizer.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUIHSlider.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUIIconSelector.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUIImageButton.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUIMenu.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUIMenuBar.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUIScrollContainer.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUITextInput.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUITree.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUITreeContainer.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUITreeEvent.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUIVScrollBar.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUIVSizer.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\..\..\include\polycode\modules\ui\PolyUIWindow.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+  </ItemGroup>
+</Project>

+ 29 - 0
build/windows/win32/PolycodeUI/ReadMe.txt

@@ -0,0 +1,29 @@
+========================================================================
+    STATIC LIBRARY : PolycodeUI Project Overview
+========================================================================
+
+AppWizard has created this PolycodeUI library project for you.
+
+No source files were created as part of your project.
+
+
+PolycodeUI.vcxproj
+    This is the main project file for VC++ projects generated using an Application Wizard.
+    It contains information about the version of Visual C++ that generated the file, and
+    information about the platforms, configurations, and project features selected with the
+    Application Wizard.
+
+PolycodeUI.vcxproj.filters
+    This is the filters file for VC++ projects generated using an Application Wizard. 
+    It contains information about the association between the files in your project 
+    and the filters. This association is used in the IDE to show grouping of files with
+    similar extensions under a specific node (for e.g. ".cpp" files are associated with the
+    "Source Files" filter).
+
+/////////////////////////////////////////////////////////////////////////////
+Other notes:
+
+AppWizard uses "TODO:" comments to indicate parts of the source code you
+should add to or customize.
+
+/////////////////////////////////////////////////////////////////////////////

+ 1 - 1
build/windows/win32/TemplateApp/PolycodeTemplateApp.cpp

@@ -21,7 +21,7 @@ PolycodeTemplateApp::PolycodeTemplateApp(PolycodeView *view) {
     scene->getDefaultCamera()->lookAt(Vector3());
     scene->getDefaultCamera()->lookAt(Vector3());
     
     
    test = new ScenePrimitive(ScenePrimitive::TYPE_BOX, 1.0, 1.0, 1.0);
    test = new ScenePrimitive(ScenePrimitive::TYPE_BOX, 1.0, 1.0, 1.0);
-    test->setMaterialByName("Unlit");
+    test->setMaterialByName("DefaultTextured");
 //    test->getShaderPass(0).shaderBinding->loadTextureForParam("diffuse", "white.png");
 //    test->getShaderPass(0).shaderBinding->loadTextureForParam("diffuse", "white.png");
   //  test->getShaderPass(0).shaderBinding->addParam(ProgramParam::PARAM_COLOR, "diffuse_color")->setColor(Color(1.0, 1.0, 1.0, 1.0));
   //  test->getShaderPass(0).shaderBinding->addParam(ProgramParam::PARAM_COLOR, "diffuse_color")->setColor(Color(1.0, 1.0, 1.0, 1.0));
     scene->addChild(test);
     scene->addChild(test);

+ 23 - 0
include/polycode/ide/PolycodeWinIDEView.h

@@ -0,0 +1,23 @@
+#pragma once
+
+#include <winsock2.h>
+#include <windows.h>
+#include "polycode/core/PolyCore.h"
+
+using namespace Polycode;
+
+class PolycodeIDEApp;
+
+namespace Polycode {
+
+class _PolyExport PolycodeWinIDEView : public PolycodeViewBase {
+public:
+	PolycodeWinIDEView(HINSTANCE hInstance, int nCmdShow, LPCTSTR windowTitle, bool resizable = false, bool showDebugConsole = false);
+	~PolycodeWinIDEView();
+
+	HWND hwnd;
+	HACCEL haccel;
+
+};
+
+}

+ 1 - 1
lib

@@ -1 +1 @@
-Subproject commit 1f45a39574ddda0b22c951c86b01612efda30a43
+Subproject commit a83ac0cf15083f86d5bc5770bcb3ab6cea02d6ef

+ 1 - 1
src/core/PolyRenderer.cpp

@@ -415,7 +415,7 @@ void RenderThread::setGraphicsInterface(Core *core, GraphicsInterface *graphicsI
     this->core = core;
     this->core = core;
 }
 }
 
 
-Renderer::Renderer() {
+Renderer::Renderer() : backingResolutionScaleX(1.0), backingResolutionScaleY(1.0) {
     renderThread = new RenderThread();
     renderThread = new RenderThread();
     Services()->getCore()->createThread(renderThread);
     Services()->getCore()->createThread(renderThread);
     
     

+ 1 - 1
src/ide/EditorGrid.cpp

@@ -20,7 +20,7 @@
  THE SOFTWARE.
  THE SOFTWARE.
  */
  */
  
  
-#include "EditorGrid.h"
+#include "polycode/ide/EditorGrid.h"
 
 
 EditorGridSettingsWindow::EditorGridSettingsWindow(EditorGrid *grid) : UIWindow("Grid Settings", 100, 190) {
 EditorGridSettingsWindow::EditorGridSettingsWindow(EditorGrid *grid) : UIWindow("Grid Settings", 100, 190) {
     
     

+ 1 - 1
src/ide/EntityEditorPropertyView.cpp

@@ -20,7 +20,7 @@
  THE SOFTWARE.
  THE SOFTWARE.
  */
  */
  
  
-#include "EntityEditorPropertyView.h"
+#include "polycode/ide/EntityEditorPropertyView.h"
 
 
 
 
 EntityEditorPropertyView::EntityEditorPropertyView() : UIElement() {
 EntityEditorPropertyView::EntityEditorPropertyView() : UIElement() {

+ 1 - 1
src/ide/EntityEditorSettingsView.cpp

@@ -20,7 +20,7 @@
  THE SOFTWARE.
  THE SOFTWARE.
  */
  */
 
 
-#include "EntityEditorSettingsView.h"
+#include "polycode/ide/EntityEditorSettingsView.h"
 
 
 EntityEditorSettingsView::EntityEditorSettingsView() : UIElement() {
 EntityEditorSettingsView::EntityEditorSettingsView() : UIElement() {
     entityProps = new PropList("ENTITY SETTINGS");
     entityProps = new PropList("ENTITY SETTINGS");

+ 1 - 1
src/ide/EntityEditorTreeView.cpp

@@ -20,7 +20,7 @@
  THE SOFTWARE.
  THE SOFTWARE.
  */
  */
 
 
-#include "EntityEditorTreeView.h"
+#include "polycode/ide/EntityEditorTreeView.h"
 
 
 EntityEditorTreeSheet::EntityEditorTreeSheet() : PropSheet("LIST VIEW", "list_view"){
 EntityEditorTreeSheet::EntityEditorTreeSheet() : PropSheet("LIST VIEW", "list_view"){
     treeContainer = new UITreeContainer("folder.png", "Root", 10, 10);
     treeContainer = new UITreeContainer("folder.png", "Root", 10, 10);

+ 1 - 1
src/ide/ExampleBrowserWindow.cpp

@@ -20,7 +20,7 @@
  THE SOFTWARE.
  THE SOFTWARE.
 */
 */
 
 
-#include "ExampleBrowserWindow.h"
+#include "polycode/ide/ExampleBrowserWindow.h"
 
 
 ExampleBrowserWindow::ExampleBrowserWindow() : UIWindow(L"Example Browser", 320, 400){
 ExampleBrowserWindow::ExampleBrowserWindow() : UIWindow(L"Example Browser", 320, 400){
 	
 	

+ 1 - 1
src/ide/ExportProjectWindow.cpp

@@ -20,7 +20,7 @@
  THE SOFTWARE.
  THE SOFTWARE.
  */
  */
  
  
-#include "ExportProjectWindow.h"
+#include "polycode/ide/ExportProjectWindow.h"
 #include "polycode/ide/PolycodeFrame.h"
 #include "polycode/ide/PolycodeFrame.h"
 
 
 extern PolycodeFrame *globalFrame;
 extern PolycodeFrame *globalFrame;

+ 1 - 1
src/ide/NewFileWindow.cpp

@@ -20,7 +20,7 @@
  THE SOFTWARE.
  THE SOFTWARE.
  */
  */
  
  
-#include "NewFileWindow.h"
+#include "polycode/ide/NewFileWindow.h"
 
 
 NewFileWindow::NewFileWindow() : UIWindow(L"Create New File", 580, 280) {
 NewFileWindow::NewFileWindow() : UIWindow(L"Create New File", 580, 280) {
 	defaultTemplateTree = NULL;
 	defaultTemplateTree = NULL;

+ 1 - 1
src/ide/NewProjectWindow.cpp

@@ -20,7 +20,7 @@
  THE SOFTWARE.
  THE SOFTWARE.
 */
 */
 
 
-#include "NewProjectWindow.h"
+#include "polycode/ide/NewProjectWindow.h"
 #include "polycode/ide/PolycodeFrame.h"
 #include "polycode/ide/PolycodeFrame.h"
 
 
 extern PolycodeFrame *globalFrame;
 extern PolycodeFrame *globalFrame;

+ 3 - 2
src/ide/PolycodeIDEApp.cpp

@@ -68,14 +68,15 @@ core = new POLYCODE_CORE((PolycodeView*)view, 1100, 700,false,false, 0, 0,60, -1
     core->addFileSource("archive", "default.pak");
     core->addFileSource("archive", "default.pak");
     globalPool->loadResourcesFromFolder("default", true);
     globalPool->loadResourcesFromFolder("default", true);
   
   
+	/*
     core->addFileSource("archive", "hdr.pak");
     core->addFileSource("archive", "hdr.pak");
     globalPool->loadResourcesFromFolder("hdr", true);
     globalPool->loadResourcesFromFolder("hdr", true);
-
     core->addFileSource("archive", "api.pak");
     core->addFileSource("archive", "api.pak");
     core->addFileSource("archive", "Physics2D.pak");
     core->addFileSource("archive", "Physics2D.pak");
     core->addFileSource("archive", "Physics3D.pak");
     core->addFileSource("archive", "Physics3D.pak");
     core->addFileSource("archive", "UI.pak");
     core->addFileSource("archive", "UI.pak");
-    
+    */
+
     globalPool->loadResourcesFromFolder("Materials", true);
     globalPool->loadResourcesFromFolder("Materials", true);
 			
 			
 	CoreServices::getInstance()->getFontManager()->registerFont("section", "Fonts/Lato-Black.ttf");
 	CoreServices::getInstance()->getFontManager()->registerFont("section", "Fonts/Lato-Black.ttf");

+ 317 - 0
src/ide/PolycodeWinIDEView.cpp

@@ -0,0 +1,317 @@
+
+#include "polycode/ide/PolycodeWinIDEView.h"
+#include "polycode/ide/PolycodeIDEApp.h"
+#include "polycode/core/PolyWinCore.h"
+#include "polycode/core/PolyCoreServices.h"
+#include "polycode/core/PolyCoreInput.h"
+#include "polycode/core/PolyRenderer.h"
+#include <io.h>
+#include <fcntl.h>
+#include <ios>
+#include "resource.h"
+
+using namespace Polycode;
+
+Win32Core *core = NULL;
+PolycodeIDEApp *globalApp = NULL;
+
+static void OpenConsole()
+{
+    int outHandle, errHandle, inHandle;
+    FILE *outFile, *errFile, *inFile;
+    AllocConsole();
+    CONSOLE_SCREEN_BUFFER_INFO coninfo;
+    GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &coninfo);
+    coninfo.dwSize.Y = 9999;
+    SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE), coninfo.dwSize);
+
+    outHandle = _open_osfhandle((long)GetStdHandle(STD_OUTPUT_HANDLE), _O_TEXT);
+    errHandle = _open_osfhandle((long)GetStdHandle(STD_ERROR_HANDLE),_O_TEXT);
+    inHandle = _open_osfhandle((long)GetStdHandle(STD_INPUT_HANDLE),_O_TEXT );
+
+    outFile = _fdopen(outHandle, "w" );
+    errFile = _fdopen(errHandle, "w");
+    inFile =  _fdopen(inHandle, "r");
+
+    *stdout = *outFile;
+    *stderr = *errFile;
+    *stdin = *inFile;
+
+    setvbuf( stdout, NULL, _IONBF, 0 );
+    setvbuf( stderr, NULL, _IONBF, 0 );
+    setvbuf( stdin, NULL, _IONBF, 0 );
+
+    std::ios::sync_with_stdio();
+
+}
+
+LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
+{
+	int nWidth, nHeight;
+	bool useDefault = false;
+
+	if(!core)
+		return DefWindowProc(hWnd, message, wParam, lParam);
+
+	switch (message)
+	{
+		case WM_COMMAND:
+			switch (LOWORD(wParam))
+			{
+				case ID_FILE_NEW_FILE:
+					globalApp->newFile();
+				break;
+				case ID_FILE_NEW_PROJECT:
+					globalApp->newProject();
+				break;
+				case ID_FILE_NEW_FOLDER:
+					globalApp->newGroup();
+				break;
+				case ID_FILE_OPEN_PROJECT:
+					globalApp->openProject();
+					break;
+				case ID_FILE_CLOSE_FILE:
+					globalApp->closeFile();
+					break;
+				case ID_FILE_CLOSE_PROJECT:
+					globalApp->closeProject();
+					break;
+				case ID_FILE_REMOVE_FILE:
+					globalApp->removeFile();
+					break;
+				case ID_FILE_REFRESH_PROJECT:
+					globalApp->refreshProject();
+					break;
+				case ID_FILE_SAVE_FILE:
+					globalApp->saveFile();
+					break;
+				case ID_FILE_BROWSE_EXAMPLES:
+					globalApp->browseExamples();
+					break;
+				case ID_FILE_EXIT:
+				{
+					 globalApp->saveConfigFile();
+					 bool retVal = globalApp->quitApp();
+					 if (retVal) {
+						 core->Shutdown();
+						 useDefault = true;
+					 }
+				}
+				break;
+
+				case ID_EDIT_UNDO:
+					core->dispatchEvent(new Event(), Core::EVENT_UNDO);
+					break;
+				case ID_EDIT_REDO:
+					core->dispatchEvent(new Event(), Core::EVENT_REDO);
+					break;
+				case ID_EDIT_CUT:
+					core->dispatchEvent(new Event(), Core::EVENT_CUT);
+					break;
+				case ID_EDIT_COPY:
+					core->dispatchEvent(new Event(), Core::EVENT_COPY);
+					break;
+				case ID_EDIT_PASTE:
+					core->dispatchEvent(new Event(), Core::EVENT_PASTE);
+					break;
+				case ID_EDIT_SELECT_ALL:
+					core->dispatchEvent(new Event(), Core::EVENT_SELECT_ALL);
+					break;
+				case ID_EDIT_FIND:
+					globalApp->findText();
+					break;
+				case ID_EDIT_PREFERENCES:
+					globalApp->showSettings();
+				break;
+
+
+				case ID_VIEW_CREATE_TAB:
+					globalApp->createNewTab();
+					break;
+				case ID_VIEW_SELECT_NEXT_TAB:
+					globalApp->showNextTab();
+					break;
+				case ID_VIEW_SELECT_PREV_TAB:
+					globalApp->showPreviousTab();
+					break;
+				case ID_VIEW_CLOSE_TAB:
+					globalApp->closeTab();
+					break;
+				case ID_VIEW_TOGGLE_CONSOLE:
+					globalApp->toggleConsole();
+					break;
+
+				case ID_PROJECT_RUN:
+					globalApp->runProject();
+					break;
+				case ID_PROJECT_EXPORT:
+					globalApp->exportProject();
+					break;
+	
+				case ID_HELP_ABOUT:
+					globalApp->showAbout();
+					break;
+				case ID_HELP_REFERENCE:
+					globalApp->openDocs(); 
+					break;
+			}
+		break;
+	case WM_COPYDATA:
+	{
+		COPYDATASTRUCT *cp = (COPYDATASTRUCT*)lParam;
+		wchar_t *stringData = (wchar_t*)cp->lpData;
+		core->copyDataString = String(stringData);
+		core->hasCopyDataString = true;
+	}
+	break;
+	case WM_SIZE:
+		nWidth = LOWORD(lParam); 
+		nHeight = HIWORD(lParam);
+		if(core) {
+			core->handleViewResize(nWidth, nHeight);
+		}
+	break;
+
+	case WM_MOUSEMOVE:
+		if(core)
+			core->handleMouseMove(lParam,wParam);
+	break;
+
+	case WM_MOUSEWHEEL:
+		if(core)
+			core->handleMouseWheel(lParam,wParam);
+	break;
+
+	case WM_LBUTTONDOWN:
+		if(core)
+			core->handleMouseDown(CoreInput::MOUSE_BUTTON1, lParam,wParam);
+	break;
+	case WM_LBUTTONUP:
+		if(core)
+			core->handleMouseUp(CoreInput::MOUSE_BUTTON1, lParam,wParam);
+	break;
+
+	case WM_RBUTTONDOWN:
+		if(core)
+			core->handleMouseDown(CoreInput::MOUSE_BUTTON2, lParam,wParam);
+	break;
+	case WM_RBUTTONUP:
+		if(core)
+			core->handleMouseUp(CoreInput::MOUSE_BUTTON2, lParam,wParam);
+	break;
+
+#ifndef NO_TOUCH_API
+	case WM_TOUCH:
+		if(core) {
+			if(core->isMultiTouchEnabled()) {
+				core->handleTouchEvent(lParam, wParam);
+			}
+		}
+	break;
+#endif
+
+	case WM_MBUTTONDOWN:
+		if(core)
+			core->handleMouseDown(CoreInput::MOUSE_BUTTON3, lParam,wParam);
+	break;
+	case WM_MBUTTONUP:
+		if(core)
+			core->handleMouseUp(CoreInput::MOUSE_BUTTON3, lParam,wParam);
+	break;
+	case WM_KEYDOWN:
+	case WM_SYSKEYDOWN:
+		if(core) {
+				wchar_t unicodeChar = 0;
+				MSG m;
+				m.hwnd = hWnd;
+				m.message = message;
+				m.wParam = wParam;
+				m.lParam = lParam;
+				m.time = 0;
+				if ( PeekMessage(&m, hWnd, 0, WM_USER, PM_NOREMOVE) && (m.message == WM_CHAR) ) {
+					GetMessage(&m, hWnd, 0, WM_USER);
+			    		unicodeChar = (wchar_t)m.wParam;
+				}
+
+			core->handleKeyDown(lParam,wParam, unicodeChar);
+		}
+	break;
+	case WM_KEYUP:
+	case WM_SYSKEYUP:
+		if(core)
+			core->handleKeyUp(lParam,wParam);
+	break;
+	case WM_CLOSE:
+	{
+		globalApp->saveConfigFile();
+		bool retVal = globalApp->quitApp();
+		if (retVal) {
+			core->Shutdown();
+			useDefault = true;
+		}
+	}
+	break;
+	case WM_DESTROY:
+		PostQuitMessage(0);
+		break;
+	default:
+		useDefault = true;
+		break;
+	}
+	
+	if (useDefault)
+		return DefWindowProc(hWnd, message, wParam, lParam);
+	else
+		return 0;
+}
+
+
+PolycodeWinIDEView::PolycodeWinIDEView(HINSTANCE hInstance, int nCmdShow, LPCTSTR windowTitle, bool resizable, bool showDebugConsole) : PolycodeViewBase() {
+
+	/*
+	typedef BOOL(WINAPI *SetProcessDPIAwarePtr)(VOID);
+	SetProcessDPIAwarePtr set_process_dpi_aware_func = GetProcAddress(GetModuleHandleA("user32.dll"), "SetProcessDPIAware");
+	if (set_process_dpi_aware_func) {
+		set_process_dpi_aware_func();
+	}
+	*/
+	WNDCLASSEX wcex;
+
+	wcex.cbSize = sizeof(WNDCLASSEX);
+	wcex.style			= CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
+	wcex.lpfnWndProc	= WndProc;
+	wcex.cbClsExtra		= 0;
+	wcex.cbWndExtra		= 0;
+	wcex.hInstance		= hInstance;
+	wcex.hIcon			= LoadIcon(hInstance, IDI_APPLICATION);
+	wcex.hCursor		= LoadCursor(NULL, IDC_ARROW);
+	wcex.hbrBackground	= NULL;
+	wcex.lpszMenuName	= MAKEINTRESOURCE(IDR_POLYCODEMENU);
+	wcex.lpszClassName	= L"POLYCODEAPPLICATION";
+	wcex.hIconSm		= LoadIcon(hInstance, IDI_APPLICATION);
+
+	RegisterClassEx(&wcex);
+
+	if(resizable) {
+		hwnd = CreateWindowEx(WS_EX_APPWINDOW, L"POLYCODEAPPLICATION", windowTitle, WS_OVERLAPPEDWINDOW|WS_SYSMENU, 0, 0, 640, 480, NULL, NULL, hInstance, NULL);
+	} else {
+		hwnd = CreateWindowEx(WS_EX_APPWINDOW, L"POLYCODEAPPLICATION", windowTitle, WS_OVERLAPPED|WS_SYSMENU, 0, 0, 640, 480, NULL, NULL, hInstance, NULL);
+	}
+
+	windowData = (void*)&hwnd;
+	this->resizable = resizable;
+
+   ShowWindow(hwnd, nCmdShow);
+   UpdateWindow(hwnd);
+
+   haccel = LoadAccelerators(hInstance, MAKEINTRESOURCE(POLYCODE_ACCELERATORS));
+
+   if(showDebugConsole) {
+		OpenConsole();
+   }
+
+}
+
+PolycodeWinIDEView::~PolycodeWinIDEView() {
+
+}

+ 1 - 1
src/ide/SettingsWindow.cpp

@@ -16,7 +16,7 @@
  THE SOFTWARE.
  THE SOFTWARE.
  */
  */
 
 
-#include "SettingsWindow.h"
+#include "polycode/ide/SettingsWindow.h"
 #include "polycode/ide/PolycodeFrame.h"
 #include "polycode/ide/PolycodeFrame.h"
 #include "polycode/ide/PolycodeTextEditor.h"
 #include "polycode/ide/PolycodeTextEditor.h"
 
 

+ 1 - 1
src/ide/TextureBrowser.cpp

@@ -20,7 +20,7 @@
  THE SOFTWARE.
  THE SOFTWARE.
  */
  */
  
  
-#include "TextureBrowser.h"
+#include "polycode/ide/TextureBrowser.h"
 
 
 AssetEntry::AssetEntry(String assetPath, String assetName, String extension, Resource *resource) : UIElement() {
 AssetEntry::AssetEntry(String assetPath, String assetName, String extension, Resource *resource) : UIElement() {
 
 

+ 1 - 1
src/ide/ToolWindows.cpp

@@ -20,7 +20,7 @@
  THE SOFTWARE.
  THE SOFTWARE.
  */
  */
  
  
-#include "ToolWindows.h"
+#include "polycode/ide/ToolWindows.h"
 #include "polycode/ide/PolycodeToolLauncher.h"
 #include "polycode/ide/PolycodeToolLauncher.h"
 
 
 TextInputPopup::TextInputPopup() : UIWindow(L"", 300, 80) {
 TextInputPopup::TextInputPopup() : UIWindow(L"", 300, 80) {

+ 1 - 1
src/ide/TrackballCamera.cpp

@@ -20,7 +20,7 @@
  THE SOFTWARE.
  THE SOFTWARE.
  */
  */
  
  
-#include "TrackballCamera.h"
+#include "polycode/ide/TrackballCamera.h"
 
 
 
 
 TrackballCamera::TrackballCamera(Camera *targetCamera, Entity *trackballShape) : EventDispatcher() {
 TrackballCamera::TrackballCamera(Camera *targetCamera, Entity *trackballShape) : EventDispatcher() {

+ 1 - 1
src/ide/TransformGizmo.cpp

@@ -20,7 +20,7 @@
  THE SOFTWARE.
  THE SOFTWARE.
  */
  */
  
  
-#include "TransformGizmo.h"
+#include "polycode/ide/TransformGizmo.h"
 #include <cmath>
 #include <cmath>
 
 
 extern UIGlobalMenu *globalMenu;
 extern UIGlobalMenu *globalMenu;