summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--build/visual-studio/cpu-hello-world/cpu-hello-world.vcxproj3
-rw-r--r--build/visual-studio/gfx/gfx.vcxproj15
-rw-r--r--build/visual-studio/gfx/gfx.vcxproj.filters21
-rw-r--r--build/visual-studio/gpu-printing/gpu-printing.vcxproj3
-rw-r--r--build/visual-studio/graphics-app-framework/graphics-app-framework.vcxproj175
-rw-r--r--build/visual-studio/graphics-app-framework/graphics-app-framework.vcxproj.filters36
-rw-r--r--build/visual-studio/hello-world/hello-world.vcxproj3
-rw-r--r--build/visual-studio/heterogeneous-hello-world/heterogeneous-hello-world.vcxproj3
-rw-r--r--build/visual-studio/model-viewer/model-viewer.vcxproj3
-rw-r--r--build/visual-studio/render-test-tool/render-test-tool.vcxproj11
-rw-r--r--build/visual-studio/shader-toy/shader-toy.vcxproj3
-rw-r--r--examples/gpu-printing/main.cpp2
-rw-r--r--examples/hello-world/main.cpp2
-rw-r--r--examples/heterogeneous-hello-world/main.cpp2
-rw-r--r--examples/model-viewer/main.cpp8
-rw-r--r--examples/shader-toy/main.cpp2
-rw-r--r--premake5.lua33
-rw-r--r--slang.sln11
-rw-r--r--tools/gfx/cuda/render-cuda.cpp2
-rw-r--r--tools/gfx/d3d/d3d-util.h6
-rw-r--r--tools/gfx/d3d11/render-d3d11.cpp2
-rw-r--r--tools/gfx/d3d12/circular-resource-heap-d3d12.h6
-rw-r--r--tools/gfx/d3d12/descriptor-heap-d3d12.h4
-rw-r--r--tools/gfx/d3d12/render-d3d12.cpp2
-rw-r--r--tools/gfx/d3d12/resource-d3d12.h2
-rw-r--r--tools/gfx/nvapi/nvapi-util.h4
-rw-r--r--tools/gfx/render.h2
-rw-r--r--tools/gfx/vulkan/render-vk.cpp2
-rw-r--r--tools/gfx/vulkan/vk-api.cpp2
-rw-r--r--tools/gfx/vulkan/vk-module.h4
-rw-r--r--tools/gfx/vulkan/vk-swap-chain.cpp2
-rw-r--r--tools/gfx/vulkan/vk-swap-chain.h2
-rw-r--r--tools/graphics-app-framework/gui.cpp (renamed from tools/gfx/gui.cpp)0
-rw-r--r--tools/graphics-app-framework/gui.h (renamed from tools/gfx/gui.h)2
-rw-r--r--tools/graphics-app-framework/model.cpp (renamed from tools/gfx/model.cpp)2
-rw-r--r--tools/graphics-app-framework/model.h (renamed from tools/gfx/model.h)2
-rw-r--r--tools/graphics-app-framework/vector-math.h (renamed from tools/gfx/vector-math.h)0
-rw-r--r--tools/graphics-app-framework/window.h (renamed from tools/gfx/window.h)0
-rw-r--r--tools/graphics-app-framework/windows/win-window.cpp (renamed from tools/gfx/windows/win-window.cpp)0
39 files changed, 306 insertions, 78 deletions
diff --git a/build/visual-studio/cpu-hello-world/cpu-hello-world.vcxproj b/build/visual-studio/cpu-hello-world/cpu-hello-world.vcxproj
index 72c9eac45..9d4c819cf 100644
--- a/build/visual-studio/cpu-hello-world/cpu-hello-world.vcxproj
+++ b/build/visual-studio/cpu-hello-world/cpu-hello-world.vcxproj
@@ -177,6 +177,9 @@
<ProjectReference Include="..\gfx\gfx.vcxproj">
<Project>{222F7498-B40C-4F3F-A704-DDEB91A4484A}</Project>
</ProjectReference>
+ <ProjectReference Include="..\graphics-app-framework\graphics-app-framework.vcxproj">
+ <Project>{3565FE5E-4FA3-11EB-AE93-0242AC130002}</Project>
+ </ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
diff --git a/build/visual-studio/gfx/gfx.vcxproj b/build/visual-studio/gfx/gfx.vcxproj
index 841a11c03..e80387bfa 100644
--- a/build/visual-studio/gfx/gfx.vcxproj
+++ b/build/visual-studio/gfx/gfx.vcxproj
@@ -95,7 +95,7 @@
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>..\..\..;..\..\..\external;..\..\..\source;..\..\..\external\imgui;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>..\..\..;..\..\..\external;..\..\..\source;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<Optimization>Disabled</Optimization>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
@@ -113,7 +113,7 @@
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>..\..\..;..\..\..\external;..\..\..\source;..\..\..\external\imgui;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>..\..\..;..\..\..\external;..\..\..\source;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<Optimization>Disabled</Optimization>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
@@ -131,7 +131,7 @@
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>..\..\..;..\..\..\external;..\..\..\source;..\..\..\external\imgui;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>..\..\..;..\..\..\external;..\..\..\source;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<Optimization>Full</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
@@ -153,7 +153,7 @@
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>..\..\..;..\..\..\external;..\..\..\source;..\..\..\external\imgui;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>..\..\..;..\..\..\external;..\..\..\source;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<Optimization>Full</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
@@ -179,8 +179,6 @@
<ClInclude Include="..\..\..\tools\gfx\d3d12\render-d3d12.h" />
<ClInclude Include="..\..\..\tools\gfx\d3d12\resource-d3d12.h" />
<ClInclude Include="..\..\..\tools\gfx\flag-combiner.h" />
- <ClInclude Include="..\..\..\tools\gfx\gui.h" />
- <ClInclude Include="..\..\..\tools\gfx\model.h" />
<ClInclude Include="..\..\..\tools\gfx\nvapi\nvapi-include.h" />
<ClInclude Include="..\..\..\tools\gfx\nvapi\nvapi-util.h" />
<ClInclude Include="..\..\..\tools\gfx\open-gl\render-gl.h" />
@@ -188,14 +186,12 @@
<ClInclude Include="..\..\..\tools\gfx\render.h" />
<ClInclude Include="..\..\..\tools\gfx\shader-cursor.h" />
<ClInclude Include="..\..\..\tools\gfx\surface.h" />
- <ClInclude Include="..\..\..\tools\gfx\vector-math.h" />
<ClInclude Include="..\..\..\tools\gfx\vulkan\render-vk.h" />
<ClInclude Include="..\..\..\tools\gfx\vulkan\vk-api.h" />
<ClInclude Include="..\..\..\tools\gfx\vulkan\vk-device-queue.h" />
<ClInclude Include="..\..\..\tools\gfx\vulkan\vk-module.h" />
<ClInclude Include="..\..\..\tools\gfx\vulkan\vk-swap-chain.h" />
<ClInclude Include="..\..\..\tools\gfx\vulkan\vk-util.h" />
- <ClInclude Include="..\..\..\tools\gfx\window.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\tools\gfx\cuda\render-cuda.cpp" />
@@ -206,8 +202,6 @@
<ClCompile Include="..\..\..\tools\gfx\d3d12\render-d3d12.cpp" />
<ClCompile Include="..\..\..\tools\gfx\d3d12\resource-d3d12.cpp" />
<ClCompile Include="..\..\..\tools\gfx\flag-combiner.cpp" />
- <ClCompile Include="..\..\..\tools\gfx\gui.cpp" />
- <ClCompile Include="..\..\..\tools\gfx\model.cpp" />
<ClCompile Include="..\..\..\tools\gfx\nvapi\nvapi-util.cpp" />
<ClCompile Include="..\..\..\tools\gfx\open-gl\render-gl.cpp" />
<ClCompile Include="..\..\..\tools\gfx\render-graphics-common.cpp" />
@@ -220,7 +214,6 @@
<ClCompile Include="..\..\..\tools\gfx\vulkan\vk-module.cpp" />
<ClCompile Include="..\..\..\tools\gfx\vulkan\vk-swap-chain.cpp" />
<ClCompile Include="..\..\..\tools\gfx\vulkan\vk-util.cpp" />
- <ClCompile Include="..\..\..\tools\gfx\windows\win-window.cpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
diff --git a/build/visual-studio/gfx/gfx.vcxproj.filters b/build/visual-studio/gfx/gfx.vcxproj.filters
index d55d0d4bb..bfb99449b 100644
--- a/build/visual-studio/gfx/gfx.vcxproj.filters
+++ b/build/visual-studio/gfx/gfx.vcxproj.filters
@@ -33,12 +33,6 @@
<ClInclude Include="..\..\..\tools\gfx\flag-combiner.h">
<Filter>Header Files</Filter>
</ClInclude>
- <ClInclude Include="..\..\..\tools\gfx\gui.h">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\tools\gfx\model.h">
- <Filter>Header Files</Filter>
- </ClInclude>
<ClInclude Include="..\..\..\tools\gfx\nvapi\nvapi-include.h">
<Filter>Header Files</Filter>
</ClInclude>
@@ -60,9 +54,6 @@
<ClInclude Include="..\..\..\tools\gfx\surface.h">
<Filter>Header Files</Filter>
</ClInclude>
- <ClInclude Include="..\..\..\tools\gfx\vector-math.h">
- <Filter>Header Files</Filter>
- </ClInclude>
<ClInclude Include="..\..\..\tools\gfx\vulkan\render-vk.h">
<Filter>Header Files</Filter>
</ClInclude>
@@ -81,9 +72,6 @@
<ClInclude Include="..\..\..\tools\gfx\vulkan\vk-util.h">
<Filter>Header Files</Filter>
</ClInclude>
- <ClInclude Include="..\..\..\tools\gfx\window.h">
- <Filter>Header Files</Filter>
- </ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\tools\gfx\cuda\render-cuda.cpp">
@@ -110,12 +98,6 @@
<ClCompile Include="..\..\..\tools\gfx\flag-combiner.cpp">
<Filter>Source Files</Filter>
</ClCompile>
- <ClCompile Include="..\..\..\tools\gfx\gui.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="..\..\..\tools\gfx\model.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
<ClCompile Include="..\..\..\tools\gfx\nvapi\nvapi-util.cpp">
<Filter>Source Files</Filter>
</ClCompile>
@@ -152,8 +134,5 @@
<ClCompile Include="..\..\..\tools\gfx\vulkan\vk-util.cpp">
<Filter>Source Files</Filter>
</ClCompile>
- <ClCompile Include="..\..\..\tools\gfx\windows\win-window.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
</ItemGroup>
</Project> \ No newline at end of file
diff --git a/build/visual-studio/gpu-printing/gpu-printing.vcxproj b/build/visual-studio/gpu-printing/gpu-printing.vcxproj
index 1640b22e8..9b8834666 100644
--- a/build/visual-studio/gpu-printing/gpu-printing.vcxproj
+++ b/build/visual-studio/gpu-printing/gpu-printing.vcxproj
@@ -183,6 +183,9 @@
<ProjectReference Include="..\gfx\gfx.vcxproj">
<Project>{222F7498-B40C-4F3F-A704-DDEB91A4484A}</Project>
</ProjectReference>
+ <ProjectReference Include="..\graphics-app-framework\graphics-app-framework.vcxproj">
+ <Project>{3565FE5E-4FA3-11EB-AE93-0242AC130002}</Project>
+ </ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
diff --git a/build/visual-studio/graphics-app-framework/graphics-app-framework.vcxproj b/build/visual-studio/graphics-app-framework/graphics-app-framework.vcxproj
new file mode 100644
index 000000000..4de3469c6
--- /dev/null
+++ b/build/visual-studio/graphics-app-framework/graphics-app-framework.vcxproj
@@ -0,0 +1,175 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.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>{3565FE5E-4FA3-11EB-AE93-0242AC130002}</ProjectGuid>
+ <IgnoreWarnCompileDuplicatedFilename>true</IgnoreWarnCompileDuplicatedFilename>
+ <Keyword>Win32Proj</Keyword>
+ <RootNamespace>graphics-app-framework</RootNamespace>
+ <WindowsTargetPlatformVersion>10.0.14393.0</WindowsTargetPlatformVersion>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ <PlatformToolset>v140</PlatformToolset>
+ </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)'=='Debug|x64'">
+ <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 Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <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'">
+ <OutDir>..\..\..\bin\windows-x86\debug\</OutDir>
+ <IntDir>..\..\..\intermediate\windows-x86\debug\graphics-app-framework\</IntDir>
+ <TargetName>graphics-app-framework</TargetName>
+ <TargetExt>.lib</TargetExt>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <OutDir>..\..\..\bin\windows-x64\debug\</OutDir>
+ <IntDir>..\..\..\intermediate\windows-x64\debug\graphics-app-framework\</IntDir>
+ <TargetName>graphics-app-framework</TargetName>
+ <TargetExt>.lib</TargetExt>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>..\..\..\bin\windows-x86\release\</OutDir>
+ <IntDir>..\..\..\intermediate\windows-x86\release\graphics-app-framework\</IntDir>
+ <TargetName>graphics-app-framework</TargetName>
+ <TargetExt>.lib</TargetExt>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <OutDir>..\..\..\bin\windows-x64\release\</OutDir>
+ <IntDir>..\..\..\intermediate\windows-x64\release\graphics-app-framework\</IntDir>
+ <TargetName>graphics-app-framework</TargetName>
+ <TargetExt>.lib</TargetExt>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..\..;..\..\..\external;..\..\..\source;..\..\..\external\imgui;..\..\..\tools\gfx;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ <Optimization>Disabled</Optimization>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..\..;..\..\..\external;..\..\..\source;..\..\..\external\imgui;..\..\..\tools\gfx;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ <Optimization>Disabled</Optimization>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..\..;..\..\..\external;..\..\..\source;..\..\..\external\imgui;..\..\..\tools\gfx;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <Optimization>Full</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <MinimalRebuild>false</MinimalRebuild>
+ <StringPooling>true</StringPooling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <AdditionalIncludeDirectories>..\..\..;..\..\..\external;..\..\..\source;..\..\..\external\imgui;..\..\..\tools\gfx;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <Optimization>Full</Optimization>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <MinimalRebuild>false</MinimalRebuild>
+ <StringPooling>true</StringPooling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\tools\graphics-app-framework\gui.h" />
+ <ClInclude Include="..\..\..\tools\graphics-app-framework\model.h" />
+ <ClInclude Include="..\..\..\tools\graphics-app-framework\vector-math.h" />
+ <ClInclude Include="..\..\..\tools\graphics-app-framework\window.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\tools\graphics-app-framework\gui.cpp" />
+ <ClCompile Include="..\..\..\tools\graphics-app-framework\model.cpp" />
+ <ClCompile Include="..\..\..\tools\graphics-app-framework\windows\win-window.cpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/build/visual-studio/graphics-app-framework/graphics-app-framework.vcxproj.filters b/build/visual-studio/graphics-app-framework/graphics-app-framework.vcxproj.filters
new file mode 100644
index 000000000..04601b510
--- /dev/null
+++ b/build/visual-studio/graphics-app-framework/graphics-app-framework.vcxproj.filters
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{21EB8090-0D4E-1035-B6D3-48EBA215DCB7}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{E9C7FDCE-D52A-8D73-7EB0-C5296AF258F6}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\tools\graphics-app-framework\gui.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\tools\graphics-app-framework\model.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\tools\graphics-app-framework\vector-math.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\tools\graphics-app-framework\window.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\tools\graphics-app-framework\gui.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\tools\graphics-app-framework\model.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\tools\graphics-app-framework\windows\win-window.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/build/visual-studio/hello-world/hello-world.vcxproj b/build/visual-studio/hello-world/hello-world.vcxproj
index 9984aca49..60dde7007 100644
--- a/build/visual-studio/hello-world/hello-world.vcxproj
+++ b/build/visual-studio/hello-world/hello-world.vcxproj
@@ -177,6 +177,9 @@
<ProjectReference Include="..\gfx\gfx.vcxproj">
<Project>{222F7498-B40C-4F3F-A704-DDEB91A4484A}</Project>
</ProjectReference>
+ <ProjectReference Include="..\graphics-app-framework\graphics-app-framework.vcxproj">
+ <Project>{3565FE5E-4FA3-11EB-AE93-0242AC130002}</Project>
+ </ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
diff --git a/build/visual-studio/heterogeneous-hello-world/heterogeneous-hello-world.vcxproj b/build/visual-studio/heterogeneous-hello-world/heterogeneous-hello-world.vcxproj
index b5de40a53..74bd9213b 100644
--- a/build/visual-studio/heterogeneous-hello-world/heterogeneous-hello-world.vcxproj
+++ b/build/visual-studio/heterogeneous-hello-world/heterogeneous-hello-world.vcxproj
@@ -178,6 +178,9 @@
<ProjectReference Include="..\gfx\gfx.vcxproj">
<Project>{222F7498-B40C-4F3F-A704-DDEB91A4484A}</Project>
</ProjectReference>
+ <ProjectReference Include="..\graphics-app-framework\graphics-app-framework.vcxproj">
+ <Project>{3565FE5E-4FA3-11EB-AE93-0242AC130002}</Project>
+ </ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
diff --git a/build/visual-studio/model-viewer/model-viewer.vcxproj b/build/visual-studio/model-viewer/model-viewer.vcxproj
index f1e17ddca..b7523fe4f 100644
--- a/build/visual-studio/model-viewer/model-viewer.vcxproj
+++ b/build/visual-studio/model-viewer/model-viewer.vcxproj
@@ -177,6 +177,9 @@
<ProjectReference Include="..\gfx\gfx.vcxproj">
<Project>{222F7498-B40C-4F3F-A704-DDEB91A4484A}</Project>
</ProjectReference>
+ <ProjectReference Include="..\graphics-app-framework\graphics-app-framework.vcxproj">
+ <Project>{3565FE5E-4FA3-11EB-AE93-0242AC130002}</Project>
+ </ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
diff --git a/build/visual-studio/render-test-tool/render-test-tool.vcxproj b/build/visual-studio/render-test-tool/render-test-tool.vcxproj
index c55e7af5e..b9841e122 100644
--- a/build/visual-studio/render-test-tool/render-test-tool.vcxproj
+++ b/build/visual-studio/render-test-tool/render-test-tool.vcxproj
@@ -99,7 +99,7 @@
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<PreprocessorDefinitions>_DEBUG;SLANG_SHARED_LIBRARY_TOOL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>..\..\..;..\..\..\external;..\..\..\source;..\..\..\tools\gfx;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>..\..\..;..\..\..\external;..\..\..\source;..\..\..\tools\gfx;..\..\..\tools\graphics-app-framework;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<Optimization>Disabled</Optimization>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
@@ -118,7 +118,7 @@
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<PreprocessorDefinitions>_DEBUG;SLANG_SHARED_LIBRARY_TOOL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>..\..\..;..\..\..\external;..\..\..\source;..\..\..\tools\gfx;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>..\..\..;..\..\..\external;..\..\..\source;..\..\..\tools\gfx;..\..\..\tools\graphics-app-framework;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<Optimization>Disabled</Optimization>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
@@ -137,7 +137,7 @@
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<PreprocessorDefinitions>NDEBUG;SLANG_SHARED_LIBRARY_TOOL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>..\..\..;..\..\..\external;..\..\..\source;..\..\..\tools\gfx;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>..\..\..;..\..\..\external;..\..\..\source;..\..\..\tools\gfx;..\..\..\tools\graphics-app-framework;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<Optimization>Full</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
@@ -160,7 +160,7 @@
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<PreprocessorDefinitions>NDEBUG;SLANG_SHARED_LIBRARY_TOOL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>..\..\..;..\..\..\external;..\..\..\source;..\..\..\tools\gfx;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>..\..\..;..\..\..\external;..\..\..\source;..\..\..\tools\gfx;..\..\..\tools\graphics-app-framework;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<Optimization>Full</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
@@ -210,6 +210,9 @@
<ProjectReference Include="..\gfx\gfx.vcxproj">
<Project>{222F7498-B40C-4F3F-A704-DDEB91A4484A}</Project>
</ProjectReference>
+ <ProjectReference Include="..\graphics-app-framework\graphics-app-framework.vcxproj">
+ <Project>{3565FE5E-4FA3-11EB-AE93-0242AC130002}</Project>
+ </ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
diff --git a/build/visual-studio/shader-toy/shader-toy.vcxproj b/build/visual-studio/shader-toy/shader-toy.vcxproj
index a6b07adbc..5c540113b 100644
--- a/build/visual-studio/shader-toy/shader-toy.vcxproj
+++ b/build/visual-studio/shader-toy/shader-toy.vcxproj
@@ -178,6 +178,9 @@
<ProjectReference Include="..\gfx\gfx.vcxproj">
<Project>{222F7498-B40C-4F3F-A704-DDEB91A4484A}</Project>
</ProjectReference>
+ <ProjectReference Include="..\graphics-app-framework\graphics-app-framework.vcxproj">
+ <Project>{3565FE5E-4FA3-11EB-AE93-0242AC130002}</Project>
+ </ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
diff --git a/examples/gpu-printing/main.cpp b/examples/gpu-printing/main.cpp
index 49a8912db..10af0eef7 100644
--- a/examples/gpu-printing/main.cpp
+++ b/examples/gpu-printing/main.cpp
@@ -7,7 +7,7 @@ using Slang::ComPtr;
#include "gfx/render.h"
#include "gfx/d3d11/render-d3d11.h"
-#include "gfx/window.h"
+#include "tools/graphics-app-framework/window.h"
using namespace gfx;
#include <string>
diff --git a/examples/hello-world/main.cpp b/examples/hello-world/main.cpp
index 4a15bd4fa..9618b8c4d 100644
--- a/examples/hello-world/main.cpp
+++ b/examples/hello-world/main.cpp
@@ -34,7 +34,7 @@
//
#include "gfx/render.h"
#include "gfx/d3d11/render-d3d11.h"
-#include "gfx/window.h"
+#include "tools/graphics-app-framework/window.h"
using namespace gfx;
// For the purposes of a small example, we will define the vertex data for a
diff --git a/examples/heterogeneous-hello-world/main.cpp b/examples/heterogeneous-hello-world/main.cpp
index 6159f8d44..8c31e7a4c 100644
--- a/examples/heterogeneous-hello-world/main.cpp
+++ b/examples/heterogeneous-hello-world/main.cpp
@@ -34,7 +34,7 @@
//
#include "gfx/render.h"
#include "gfx/d3d11/render-d3d11.h"
-#include "gfx/window.h"
+#include "tools/graphics-app-framework/window.h"
#include "../../prelude/slang-cpp-types.h"
using namespace gfx;
diff --git a/examples/model-viewer/main.cpp b/examples/model-viewer/main.cpp
index 6687d9338..9507f2e2f 100644
--- a/examples/model-viewer/main.cpp
+++ b/examples/model-viewer/main.cpp
@@ -16,12 +16,12 @@
// We will again make use of a simple graphics API abstraction
// layer, just to keep the examples short and to the point.
//
-#include "gfx/model.h"
+#include "graphics-app-framework/model.h"
#include "gfx/render.h"
#include "gfx/d3d11/render-d3d11.h"
-#include "gfx/vector-math.h"
-#include "gfx/window.h"
-#include "gfx/gui.h"
+#include "graphics-app-framework/vector-math.h"
+#include "graphics-app-framework/window.h"
+#include "graphics-app-framework/gui.h"
using namespace gfx;
// We will use a few utilities from the C++ standard library,
diff --git a/examples/shader-toy/main.cpp b/examples/shader-toy/main.cpp
index 1efc3c745..403456036 100644
--- a/examples/shader-toy/main.cpp
+++ b/examples/shader-toy/main.cpp
@@ -21,7 +21,7 @@ using Slang::ComPtr;
//
#include "gfx/render.h"
#include "gfx/d3d11/render-d3d11.h"
-#include "gfx/window.h"
+#include "tools/graphics-app-framework/window.h"
using namespace gfx;
// In order to display a shader toy effect using rasterization-based shader
diff --git a/premake5.lua b/premake5.lua
index 136b7741e..6fd2788a5 100644
--- a/premake5.lua
+++ b/premake5.lua
@@ -525,7 +525,7 @@ function example(name)
-- and the `gfx` abstraction layer (which in turn
-- depends on the `core` library). We specify all of that here,
-- rather than in each example.
- links { "slang", "core", "gfx" }
+ links { "slang", "core", "gfx", "graphics-app-framework" }
end
--
@@ -697,8 +697,8 @@ toolSharedLibrary "slang-reflection-test"
toolSharedLibrary "render-test"
uuid "61F7EB00-7281-4BF3-9470-7C2EA92620C3"
- includedirs { ".", "external", "source", "tools/gfx" }
- links { "core", "slang", "gfx" }
+ includedirs { ".", "external", "source", "tools/gfx", "tools/graphics-app-framework" }
+ links { "core", "slang", "gfx", "graphics-app-framework" }
if isTargetWindows then
addSourceDir "tools/render-test/windows"
@@ -732,9 +732,7 @@ toolSharedLibrary "render-test"
end
--
--- `gfx` is a utility library for doing GPU rendering
--- and compute, which is used by both our testing and exmaples.
--- It depends on teh `core` library, so we need to declare that:
+-- `gfx` is a abstraction layer for different GPU platforms.
--
tool "gfx"
@@ -744,7 +742,7 @@ tool "gfx"
kind "StaticLib"
pic "On"
- includedirs { ".", "external", "source", "external/imgui" }
+ includedirs { ".", "external", "source" }
-- Will compile across targets
addSourceDir "tools/gfx/nvapi"
@@ -766,7 +764,6 @@ tool "gfx"
addSourceDir "tools/gfx/d3d11"
addSourceDir "tools/gfx/d3d12"
addSourceDir "tools/gfx/cuda"
- addSourceDir "tools/gfx/windows"
if type(cudaPath) == "string" then
defines { "GFX_ENABLE_CUDA" }
@@ -791,7 +788,6 @@ tool "gfx"
--addSourceDir "tools/gfx/vulkan"
--addSourceDir "tools/gfx/open-gl"
end
-
-- If NVAPI is enabled
if enableNvapi then
@@ -811,8 +807,25 @@ tool "gfx"
links { "nvapi64" }
end
+
+--
+-- `graphics-app-framework` contains all the utils for a simple graphics application.
+--
+tool "graphics-app-framework"
+ uuid "3565fe5e-4fa3-11eb-ae93-0242ac130002"
+ kind "StaticLib"
+ pic "On"
-
+ includedirs { ".", "external", "source", "external/imgui", "tools/gfx" }
+
+ addSourceDir "tools/graphics-app-framework"
+
+ -- Include windowing support on Windows.
+ if isTargetWindows then
+ systemversion "10.0.14393.0"
+ addSourceDir "tools/graphics-app-framework/windows"
+ end
+
--
-- The `slangc` command-line application is just a very thin wrapper
-- around the Slang dynamic library, so its build is extermely simple.
diff --git a/slang.sln b/slang.sln
index 6e749ed46..73d45add8 100644
--- a/slang.sln
+++ b/slang.sln
@@ -45,6 +45,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tools", "tools", "{FD47AE19
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gfx", "build\visual-studio\gfx\gfx.vcxproj", "{222F7498-B40C-4F3F-A704-DDEB91A4484A}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "graphics-app-framework", "build\visual-studio\graphics-app-framework\graphics-app-framework.vcxproj", "{3565FE5E-4FA3-11EB-AE93-0242AC130002}"
+EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "slang-cpp-extractor", "build\visual-studio\slang-cpp-extractor\slang-cpp-extractor.vcxproj", "{CA8A30D1-8FA9-4330-B7F7-84709246D8DC}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "slang-embed", "build\visual-studio\slang-embed\slang-embed.vcxproj", "{7F773DD9-EB8F-2403-B43C-B49C2014B99C}"
@@ -173,6 +175,14 @@ Global
{222F7498-B40C-4F3F-A704-DDEB91A4484A}.Release|Win32.Build.0 = Release|Win32
{222F7498-B40C-4F3F-A704-DDEB91A4484A}.Release|x64.ActiveCfg = Release|x64
{222F7498-B40C-4F3F-A704-DDEB91A4484A}.Release|x64.Build.0 = Release|x64
+ {3565FE5E-4FA3-11EB-AE93-0242AC130002}.Debug|Win32.ActiveCfg = Debug|Win32
+ {3565FE5E-4FA3-11EB-AE93-0242AC130002}.Debug|Win32.Build.0 = Debug|Win32
+ {3565FE5E-4FA3-11EB-AE93-0242AC130002}.Debug|x64.ActiveCfg = Debug|x64
+ {3565FE5E-4FA3-11EB-AE93-0242AC130002}.Debug|x64.Build.0 = Debug|x64
+ {3565FE5E-4FA3-11EB-AE93-0242AC130002}.Release|Win32.ActiveCfg = Release|Win32
+ {3565FE5E-4FA3-11EB-AE93-0242AC130002}.Release|Win32.Build.0 = Release|Win32
+ {3565FE5E-4FA3-11EB-AE93-0242AC130002}.Release|x64.ActiveCfg = Release|x64
+ {3565FE5E-4FA3-11EB-AE93-0242AC130002}.Release|x64.Build.0 = Release|x64
{CA8A30D1-8FA9-4330-B7F7-84709246D8DC}.Debug|Win32.ActiveCfg = Debug|Win32
{CA8A30D1-8FA9-4330-B7F7-84709246D8DC}.Debug|Win32.Build.0 = Debug|Win32
{CA8A30D1-8FA9-4330-B7F7-84709246D8DC}.Debug|x64.ActiveCfg = Debug|x64
@@ -220,6 +230,7 @@ Global
{61F7EB00-7281-4BF3-9470-7C2EA92620C3} = {57B5AA5E-C340-1823-CC51-9B17385C7423}
{C5ACCA6E-C04D-4B36-8516-3752B3C13C2F} = {57B5AA5E-C340-1823-CC51-9B17385C7423}
{222F7498-B40C-4F3F-A704-DDEB91A4484A} = {FD47AE19-69FD-260F-F2F1-20E65EA61D13}
+ {3565FE5E-4FA3-11EB-AE93-0242AC130002} = {FD47AE19-69FD-260F-F2F1-20E65EA61D13}
{CA8A30D1-8FA9-4330-B7F7-84709246D8DC} = {FD47AE19-69FD-260F-F2F1-20E65EA61D13}
{7F773DD9-EB8F-2403-B43C-B49C2014B99C} = {FD47AE19-69FD-260F-F2F1-20E65EA61D13}
{66174227-8541-41FC-A6DF-4764FC66F78E} = {FD47AE19-69FD-260F-F2F1-20E65EA61D13}
diff --git a/tools/gfx/cuda/render-cuda.cpp b/tools/gfx/cuda/render-cuda.cpp
index cf77e4ef6..f12e8ee89 100644
--- a/tools/gfx/cuda/render-cuda.cpp
+++ b/tools/gfx/cuda/render-cuda.cpp
@@ -4,7 +4,7 @@
#include "../render.h"
#include <cuda.h>
#include <cuda_runtime_api.h>
-#include "../../source/core/slang-std-writers.h"
+#include "core/slang-std-writers.h"
#include "slang.h"
#endif
diff --git a/tools/gfx/d3d/d3d-util.h b/tools/gfx/d3d/d3d-util.h
index fd7a31d3a..37c277832 100644
--- a/tools/gfx/d3d/d3d-util.h
+++ b/tools/gfx/d3d/d3d-util.h
@@ -3,10 +3,10 @@
#include <stdint.h>
-#include "../../slang-com-helper.h"
+#include "slang-com-helper.h"
-#include "../../slang-com-ptr.h"
-#include "../../source/core/slang-list.h"
+#include "slang-com-ptr.h"
+#include "core/slang-list.h"
#include "../flag-combiner.h"
diff --git a/tools/gfx/d3d11/render-d3d11.cpp b/tools/gfx/d3d11/render-d3d11.cpp
index 48cf7770d..5c04eccf1 100644
--- a/tools/gfx/d3d11/render-d3d11.cpp
+++ b/tools/gfx/d3d11/render-d3d11.cpp
@@ -16,7 +16,7 @@
//#include <slang.h>
-#include "../../slang-com-ptr.h"
+#include "slang-com-ptr.h"
#include "../flag-combiner.h"
// We will be rendering with Direct3D 11, so we need to include
diff --git a/tools/gfx/d3d12/circular-resource-heap-d3d12.h b/tools/gfx/d3d12/circular-resource-heap-d3d12.h
index bf9f412cf..7eacf9572 100644
--- a/tools/gfx/d3d12/circular-resource-heap-d3d12.h
+++ b/tools/gfx/d3d12/circular-resource-heap-d3d12.h
@@ -1,8 +1,8 @@
#pragma once
-#include "../../slang-com-ptr.h"
-#include "../../source/core/slang-list.h"
-#include "../../source/core/slang-free-list.h"
+#include "slang-com-ptr.h"
+#include "core/slang-list.h"
+#include "core/slang-free-list.h"
#include "resource-d3d12.h"
diff --git a/tools/gfx/d3d12/descriptor-heap-d3d12.h b/tools/gfx/d3d12/descriptor-heap-d3d12.h
index a546395d8..642ff59db 100644
--- a/tools/gfx/d3d12/descriptor-heap-d3d12.h
+++ b/tools/gfx/d3d12/descriptor-heap-d3d12.h
@@ -4,8 +4,8 @@
#include <dxgi.h>
#include <d3d12.h>
-#include "../../slang-com-ptr.h"
-#include "../../source/core/slang-list.h"
+#include "slang-com-ptr.h"
+#include "core/slang-list.h"
namespace gfx {
diff --git a/tools/gfx/d3d12/render-d3d12.cpp b/tools/gfx/d3d12/render-d3d12.cpp
index d3f030b88..0376ee304 100644
--- a/tools/gfx/d3d12/render-d3d12.cpp
+++ b/tools/gfx/d3d12/render-d3d12.cpp
@@ -35,7 +35,7 @@ struct ID3D12GraphicsCommandList1 {};
# include "../nvapi/nvapi-include.h"
#endif
-#include "../../slang-com-ptr.h"
+#include "slang-com-ptr.h"
#include "../flag-combiner.h"
#include "resource-d3d12.h"
diff --git a/tools/gfx/d3d12/resource-d3d12.h b/tools/gfx/d3d12/resource-d3d12.h
index 9e3c3262b..7a26854ff 100644
--- a/tools/gfx/d3d12/resource-d3d12.h
+++ b/tools/gfx/d3d12/resource-d3d12.h
@@ -10,7 +10,7 @@
#include <dxgi1_4.h>
#include <d3d12.h>
-#include "../../slang-com-ptr.h"
+#include "slang-com-ptr.h"
#include "../d3d/d3d-util.h"
namespace gfx {
diff --git a/tools/gfx/nvapi/nvapi-util.h b/tools/gfx/nvapi/nvapi-util.h
index 704f4ede4..0bcab7d36 100644
--- a/tools/gfx/nvapi/nvapi-util.h
+++ b/tools/gfx/nvapi/nvapi-util.h
@@ -1,8 +1,8 @@
// nvapi-util.h
#pragma once
-#include "../../slang-com-helper.h"
-#include "../../slang-com-ptr.h"
+#include "slang-com-helper.h"
+#include "slang-com-ptr.h"
namespace gfx {
diff --git a/tools/gfx/render.h b/tools/gfx/render.h
index fb9e10724..ab9af8afb 100644
--- a/tools/gfx/render.h
+++ b/tools/gfx/render.h
@@ -1,8 +1,6 @@
// render.h
#pragma once
-#include "window.h"
-
//#include "shader-input-layout.h"
#include <float.h>
diff --git a/tools/gfx/vulkan/render-vk.cpp b/tools/gfx/vulkan/render-vk.cpp
index 0f6e3cdaa..80393904c 100644
--- a/tools/gfx/vulkan/render-vk.cpp
+++ b/tools/gfx/vulkan/render-vk.cpp
@@ -5,7 +5,7 @@
#include "../render.h"
#include "../render-graphics-common.h"
-#include "../../source/core/slang-smart-pointer.h"
+#include "core/slang-smart-pointer.h"
#include "vk-api.h"
#include "vk-util.h"
diff --git a/tools/gfx/vulkan/vk-api.cpp b/tools/gfx/vulkan/vk-api.cpp
index 50f80aa26..9b51b644c 100644
--- a/tools/gfx/vulkan/vk-api.cpp
+++ b/tools/gfx/vulkan/vk-api.cpp
@@ -1,7 +1,7 @@
// vk-api.cpp
#include "vk-api.h"
-#include "../../source/core/slang-list.h"
+#include "core/slang-list.h"
namespace gfx {
using namespace Slang;
diff --git a/tools/gfx/vulkan/vk-module.h b/tools/gfx/vulkan/vk-module.h
index 4d18823ca..7ddd5da45 100644
--- a/tools/gfx/vulkan/vk-module.h
+++ b/tools/gfx/vulkan/vk-module.h
@@ -1,9 +1,9 @@
// vk-module.h
#pragma once
-#include "../../slang.h"
+#include "slang.h"
-#include "../../slang-com-helper.h"
+#include "slang-com-helper.h"
#if SLANG_WINDOWS_FAMILY
# define VK_USE_PLATFORM_WIN32_KHR 1
diff --git a/tools/gfx/vulkan/vk-swap-chain.cpp b/tools/gfx/vulkan/vk-swap-chain.cpp
index d9b3a495d..21460ce61 100644
--- a/tools/gfx/vulkan/vk-swap-chain.cpp
+++ b/tools/gfx/vulkan/vk-swap-chain.cpp
@@ -3,7 +3,7 @@
#include "vk-util.h"
-#include "../../source/core/slang-list.h"
+#include "core/slang-list.h"
#include <stdlib.h>
#include <stdio.h>
diff --git a/tools/gfx/vulkan/vk-swap-chain.h b/tools/gfx/vulkan/vk-swap-chain.h
index 9b4dfc2c1..893910ea6 100644
--- a/tools/gfx/vulkan/vk-swap-chain.h
+++ b/tools/gfx/vulkan/vk-swap-chain.h
@@ -6,7 +6,7 @@
#include "../render.h"
-#include "../../source/core/slang-list.h"
+#include "core/slang-list.h"
namespace gfx {
diff --git a/tools/gfx/gui.cpp b/tools/graphics-app-framework/gui.cpp
index 8208bd606..8208bd606 100644
--- a/tools/gfx/gui.cpp
+++ b/tools/graphics-app-framework/gui.cpp
diff --git a/tools/gfx/gui.h b/tools/graphics-app-framework/gui.h
index cbec5796f..d2c52de3c 100644
--- a/tools/gfx/gui.h
+++ b/tools/graphics-app-framework/gui.h
@@ -1,7 +1,7 @@
// gui.h
#pragma once
-#include "render.h"
+#include "tools/gfx/render.h"
#include "vector-math.h"
#include "window.h"
diff --git a/tools/gfx/model.cpp b/tools/graphics-app-framework/model.cpp
index ce176727b..5d3a850e4 100644
--- a/tools/gfx/model.cpp
+++ b/tools/graphics-app-framework/model.cpp
@@ -1,6 +1,8 @@
// model.cpp
#include "model.h"
+#include "window.h"
+
#define TINYOBJLOADER_IMPLEMENTATION
#include "../../external/tinyobjloader/tiny_obj_loader.h"
diff --git a/tools/gfx/model.h b/tools/graphics-app-framework/model.h
index 17b16510e..e86940244 100644
--- a/tools/gfx/model.h
+++ b/tools/graphics-app-framework/model.h
@@ -1,7 +1,7 @@
// model.h
#pragma once
-#include "render.h"
+#include "tools/gfx/render.h"
#include "vector-math.h"
#include <vector>
diff --git a/tools/gfx/vector-math.h b/tools/graphics-app-framework/vector-math.h
index e35cb46ac..e35cb46ac 100644
--- a/tools/gfx/vector-math.h
+++ b/tools/graphics-app-framework/vector-math.h
diff --git a/tools/gfx/window.h b/tools/graphics-app-framework/window.h
index e6f886f42..e6f886f42 100644
--- a/tools/gfx/window.h
+++ b/tools/graphics-app-framework/window.h
diff --git a/tools/gfx/windows/win-window.cpp b/tools/graphics-app-framework/windows/win-window.cpp
index 45315a27a..45315a27a 100644
--- a/tools/gfx/windows/win-window.cpp
+++ b/tools/graphics-app-framework/windows/win-window.cpp