This commit is contained in:
Dmitry 2023-08-12 14:43:56 +03:00
parent d5c8eb3d64
commit eeacc05f69
210 changed files with 12870 additions and 13488 deletions

View File

@ -45,23 +45,23 @@
</ProjectReference>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>16.0</VCProjectVersion>
<VCProjectVersion>17.0</VCProjectVersion>
<Keyword>Win32Proj</Keyword>
<ProjectGuid>{26bd6e61-e36d-464a-a312-4110adf10083}</ProjectGuid>
<RootNamespace>HelloTexturedCube</RootNamespace>
<WindowsTargetPlatformVersion>10.0.20348.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>10.0.22000.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
@ -79,12 +79,6 @@
<Import Project="..\Verus\Verus.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
@ -93,6 +87,7 @@
<ConformanceMode>true</ConformanceMode>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
@ -113,6 +108,7 @@ xcopy /y $(ProjectDir)src\HelloTexturedCube.dds $(OutDir)Data\Textures\</Command
<ConformanceMode>true</ConformanceMode>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace Game
namespace verus::Game
{
class HelloTexturedCubeGame : public Singleton<HelloTexturedCubeGame>, public BaseGame
{
@ -50,6 +48,5 @@ namespace verus
};
VERUS_TYPEDEFS(HelloTexturedCubeGame);
}
}
#define VERUS_QREF_GAME Game::RHelloTexturedCubeGame game = Game::HelloTexturedCubeGame::I()

View File

@ -45,23 +45,23 @@
</None>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>16.0</VCProjectVersion>
<VCProjectVersion>17.0</VCProjectVersion>
<Keyword>Win32Proj</Keyword>
<ProjectGuid>{bc17acd3-97eb-4d5c-a2c9-574cdaa7576b}</ProjectGuid>
<RootNamespace>HelloTriangle</RootNamespace>
<WindowsTargetPlatformVersion>10.0.20348.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>10.0.22000.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
@ -79,12 +79,6 @@
<Import Project="..\Verus\Verus.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
@ -93,6 +87,7 @@
<ConformanceMode>true</ConformanceMode>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
@ -109,6 +104,7 @@
<ConformanceMode>true</ConformanceMode>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace Game
namespace verus::Game
{
// Epigraph
// "Vulkan (it takes) 1000 lines to draw a triangle"
@ -50,6 +48,5 @@ namespace verus
};
VERUS_TYPEDEFS(HelloTriangleGame);
}
}
#define VERUS_QREF_GAME Game::RHelloTriangleGame game = Game::HelloTriangleGame::I()

View File

@ -11,23 +11,23 @@
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>16.0</VCProjectVersion>
<VCProjectVersion>17.0</VCProjectVersion>
<Keyword>Win32Proj</Keyword>
<ProjectGuid>{EBF1E2F9-65AA-419D-A3D3-AD66EB086E57}</ProjectGuid>
<RootNamespace>PAKBuilder</RootNamespace>
<WindowsTargetPlatformVersion>10.0.20348.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>10.0.22000.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
@ -45,18 +45,13 @@
<Import Project="..\Verus\Verus.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
@ -71,6 +66,7 @@
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>

View File

@ -11,23 +11,23 @@
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>16.0</VCProjectVersion>
<VCProjectVersion>17.0</VCProjectVersion>
<Keyword>Win32Proj</Keyword>
<ProjectGuid>{8269dcce-e226-46e4-b9f6-290ab5df2678}</ProjectGuid>
<RootNamespace>RendererDirect3D11</RootNamespace>
<WindowsTargetPlatformVersion>10.0.20348.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>10.0.22000.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
@ -45,12 +45,6 @@
<Import Project="..\Verus\Verus.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
@ -61,6 +55,7 @@
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<FloatingPointModel>Fast</FloatingPointModel>
<AdditionalIncludeDirectories>$(ProjectDir)src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
@ -80,6 +75,7 @@
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<FloatingPointModel>Fast</FloatingPointModel>
<AdditionalIncludeDirectories>$(ProjectDir)src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
namespace verus::CGI
{
class CommandBufferD3D11 : public BaseCommandBuffer
{
@ -62,4 +60,3 @@ namespace verus
};
VERUS_TYPEDEFS(CommandBufferD3D11);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
namespace verus::CGI
{
class RendererD3D11;
@ -63,4 +61,3 @@ namespace verus
};
VERUS_TYPEDEFS(ExtRealityD3D11);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
namespace verus::CGI
{
class GeometryD3D11 : public BaseGeometry
{
@ -58,4 +56,3 @@ namespace verus
};
VERUS_TYPEDEFS(GeometryD3D11);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
namespace verus::CGI
{
D3D11_COMPARISON_FUNC ToNativeCompareOp(CompareOp compareOp);
@ -21,4 +19,3 @@ namespace verus
CSZ ToNativeSemanticName(ViaUsage usage);
DXGI_FORMAT ToNativeFormat(ViaUsage usage, ViaType type, int components);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
namespace verus::CGI
{
class PipelineD3D11 : public BasePipeline
{
@ -52,4 +50,3 @@ namespace verus
};
VERUS_TYPEDEFS(PipelineD3D11);
}
}

View File

@ -1,11 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
{
namespace RP
namespace verus::CGI::RP
{
class D3DAttachment
{
@ -72,5 +68,3 @@ namespace verus
};
VERUS_TYPEDEFS(D3DFramebuffer);
}
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
namespace verus::CGI
{
typedef Store<CommandBufferD3D11> TStoreCommandBuffers;
typedef Store<GeometryD3D11> TStoreGeometry;
@ -94,6 +92,5 @@ namespace verus
};
VERUS_TYPEDEFS(RendererD3D11);
}
}
#define VERUS_QREF_RENDERER_D3D11 CGI::PRendererD3D11 pRendererD3D11 = CGI::RendererD3D11::P()

View File

@ -191,10 +191,10 @@ void ShaderD3D11::Done()
for (auto& dsd : _vDescriptorSetDesc)
dsd._pConstantBuffer.Reset();
for (auto& x : _mapCompiled)
for (auto& [key, value] : _mapCompiled)
{
VERUS_FOR(i, +Stage::count)
x.second._pBlobs[i].Reset();
value._pBlobs[i].Reset();
}
VERUS_DONE(ShaderD3D11);

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
namespace verus::CGI
{
struct ShaderInclude : public ID3DInclude
{
@ -105,4 +103,3 @@ namespace verus
};
VERUS_TYPEDEFS(ShaderD3D11);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
namespace verus::CGI
{
class TextureD3D11 : public BaseTexture
{
@ -53,4 +51,3 @@ namespace verus
};
VERUS_TYPEDEFS(TextureD3D11);
}
}

View File

@ -11,23 +11,23 @@
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>16.0</VCProjectVersion>
<VCProjectVersion>17.0</VCProjectVersion>
<Keyword>Win32Proj</Keyword>
<ProjectGuid>{53923514-84B2-4B78-889A-8709C6BFA3A5}</ProjectGuid>
<RootNamespace>RendererDirect3D12</RootNamespace>
<WindowsTargetPlatformVersion>10.0.20348.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>10.0.22000.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
@ -45,12 +45,6 @@
<Import Project="..\Verus\Verus.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
@ -61,6 +55,7 @@
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<FloatingPointModel>Fast</FloatingPointModel>
<AdditionalIncludeDirectories>$(ProjectDir)src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
@ -80,6 +75,7 @@
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<FloatingPointModel>Fast</FloatingPointModel>
<AdditionalIncludeDirectories>$(ProjectDir)src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
namespace verus::CGI
{
class CommandBufferD3D12 : public BaseCommandBuffer
{
@ -68,4 +66,3 @@ namespace verus
};
VERUS_TYPEDEFS(CommandBufferD3D12);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
namespace verus::CGI
{
class DescriptorHeap
{
@ -58,4 +56,3 @@ namespace verus
};
VERUS_TYPEDEFS(DynamicDescriptorHeap);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
namespace verus::CGI
{
class RendererD3D12;
@ -64,4 +62,3 @@ namespace verus
};
VERUS_TYPEDEFS(ExtRealityD3D12);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
namespace verus::CGI
{
class GeometryD3D12 : public BaseGeometry
{
@ -69,4 +67,3 @@ namespace verus
};
VERUS_TYPEDEFS(GeometryD3D12);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
namespace verus::CGI
{
D3D12_COMPARISON_FUNC ToNativeCompareOp(CompareOp compareOp);
@ -24,4 +22,3 @@ namespace verus
CSZ ToNativeSemanticName(ViaUsage usage);
DXGI_FORMAT ToNativeFormat(ViaUsage usage, ViaType type, int components);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
namespace verus::CGI
{
class PipelineD3D12 : public BasePipeline
{
@ -34,4 +32,3 @@ namespace verus
};
VERUS_TYPEDEFS(PipelineD3D12);
}
}

View File

@ -1,11 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
{
namespace RP
namespace verus::CGI::RP
{
class D3DAttachment
{
@ -76,5 +72,3 @@ namespace verus
};
VERUS_TYPEDEFS(D3DFramebuffer);
}
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
namespace verus::CGI
{
typedef Store<CommandBufferD3D12> TStoreCommandBuffers;
typedef Store<GeometryD3D12> TStoreGeometry;
@ -124,6 +122,5 @@ namespace verus
};
VERUS_TYPEDEFS(RendererD3D12);
}
}
#define VERUS_QREF_RENDERER_D3D12 CGI::PRendererD3D12 pRendererD3D12 = CGI::RendererD3D12::P()

View File

@ -197,12 +197,12 @@ void ShaderD3D12::Done()
_pRootSignature.Reset(); // Can be shared with another shader, don't check ref count.
for (auto& x : _mapCompiled)
for (auto& [key, value] : _mapCompiled)
{
VERUS_FOR(i, +Stage::count)
{
VERUS_COM_RELEASE_CHECK(x.second._pBlobs[i].Get());
x.second._pBlobs[i].Reset();
VERUS_COM_RELEASE_CHECK(value._pBlobs[i].Get());
value._pBlobs[i].Reset();
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
namespace verus::CGI
{
struct ShaderInclude : public ID3DInclude
{
@ -114,4 +112,3 @@ namespace verus
};
VERUS_TYPEDEFS(ShaderD3D12);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
namespace verus::CGI
{
class TextureD3D12 : public BaseTexture
{
@ -59,4 +57,3 @@ namespace verus
};
VERUS_TYPEDEFS(TextureD3D12);
}
}

View File

@ -11,23 +11,23 @@
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>16.0</VCProjectVersion>
<VCProjectVersion>17.0</VCProjectVersion>
<Keyword>Win32Proj</Keyword>
<ProjectGuid>{C9195A1C-9224-4B40-BBBC-AA90EF3BE3E0}</ProjectGuid>
<RootNamespace>RendererVulkan</RootNamespace>
<WindowsTargetPlatformVersion>10.0.20348.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>10.0.22000.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
@ -45,12 +45,6 @@
<Import Project="..\Verus\Verus.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
@ -61,6 +55,7 @@
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<FloatingPointModel>Fast</FloatingPointModel>
<AdditionalIncludeDirectories>$(ProjectDir)src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
@ -80,6 +75,7 @@
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<FloatingPointModel>Fast</FloatingPointModel>
<AdditionalIncludeDirectories>$(ProjectDir)src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
namespace verus::CGI
{
class CommandBufferVulkan : public BaseCommandBuffer
{
@ -55,4 +53,3 @@ namespace verus
};
VERUS_TYPEDEFS(CommandBufferVulkan);
}
}

View File

@ -98,18 +98,18 @@ bool Descriptors::CreatePool(bool freeDescriptorSet)
vkdpci.flags = freeDescriptorSet ? VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT : 0;
Vector<VkDescriptorPoolSize> vDescriptorPoolSizes;
vDescriptorPoolSizes.reserve(_mapTypeCount.size());
for (const auto& kv : _mapTypeCount)
for (const auto& [key, value] : _mapTypeCount)
{
VkDescriptorPoolSize vkdps;
vkdps.type = kv.first;
vkdps.descriptorCount = kv.second;
vkdps.type = key;
vkdps.descriptorCount = value;
vDescriptorPoolSizes.push_back(vkdps);
switch (kv.first)
switch (key)
{
case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC:
case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC:
vkdpci.maxSets += kv.second;
vkdpci.maxSets += value;
}
}
vkdpci.poolSizeCount = Utils::Cast32(vDescriptorPoolSizes.size());

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
namespace verus::CGI
{
class Descriptors : public Object
{
@ -64,4 +62,3 @@ namespace verus
};
VERUS_TYPEDEFS(Descriptors);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
namespace verus::CGI
{
class RendererVulkan;
@ -62,4 +60,3 @@ namespace verus
};
VERUS_TYPEDEFS(ExtRealityVulkan);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
namespace verus::CGI
{
class GeometryVulkan : public BaseGeometry
{
@ -73,4 +71,3 @@ namespace verus
};
VERUS_TYPEDEFS(GeometryVulkan);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
namespace verus::CGI
{
VkCompareOp ToNativeCompareOp(CompareOp compareOp);
@ -26,4 +24,3 @@ namespace verus
int ToNativeLocation(ViaUsage usage, int usageIndex);
VkFormat ToNativeFormat(ViaUsage usage, ViaType type, int components);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
namespace verus::CGI
{
class PipelineVulkan : public BasePipeline
{
@ -28,4 +26,3 @@ namespace verus
};
VERUS_TYPEDEFS(PipelineVulkan);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
namespace verus::CGI
{
enum class HostAccess : int
{
@ -211,7 +209,6 @@ namespace verus
bool IsAdvancedLineRasterizationSupported() const { return _advancedLineRasterization; }
};
VERUS_TYPEDEFS(RendererVulkan);
}
extern "C"
{

View File

@ -209,12 +209,12 @@ void ShaderVulkan::Done()
for (auto& x : _vDescriptorSetDesc)
VERUS_VULKAN_DESTROY(x._buffer, vmaDestroyBuffer(pRendererVulkan->GetVmaAllocator(), x._buffer, x._vmaAllocation));
_vDescriptorSetDesc.clear();
for (auto& kv : _mapCompiled)
for (auto& [key, value] : _mapCompiled)
{
VERUS_FOR(i, +Stage::count)
{
VERUS_VULKAN_DESTROY(kv.second._shaderModules[i],
vkDestroyShaderModule(pRendererVulkan->GetVkDevice(), kv.second._shaderModules[i], pRendererVulkan->GetAllocator()));
VERUS_VULKAN_DESTROY(value._shaderModules[i],
vkDestroyShaderModule(pRendererVulkan->GetVkDevice(), value._shaderModules[i], pRendererVulkan->GetAllocator()));
}
}
_mapCompiled.clear();

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
namespace verus::CGI
{
class ShaderVulkan : public BaseShader
{
@ -83,4 +81,3 @@ namespace verus
};
VERUS_TYPEDEFS(ShaderVulkan);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
namespace verus::CGI
{
class TextureVulkan : public BaseTexture
{
@ -60,4 +58,3 @@ namespace verus
};
VERUS_TYPEDEFS(TextureVulkan);
}
}

View File

@ -11,23 +11,23 @@
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>16.0</VCProjectVersion>
<VCProjectVersion>17.0</VCProjectVersion>
<Keyword>Win32Proj</Keyword>
<ProjectGuid>{5A1A3E76-7F69-48B6-B1E3-F6BB281B7E73}</ProjectGuid>
<RootNamespace>TextureTool</RootNamespace>
<WindowsTargetPlatformVersion>10.0.20348.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>10.0.22000.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
@ -45,18 +45,13 @@
<Import Project="..\Verus\Verus.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
@ -71,6 +66,7 @@
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>

View File

@ -1,25 +1,25 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29613.14
# Visual Studio Version 17
VisualStudioVersion = 17.7.34003.232
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Verus", "Verus\Verus.vcxproj", "{B154D670-E4B1-4D8A-885C-69546A5BD833}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HelloTexturedCube", "HelloTexturedCube\HelloTexturedCube.vcxproj", "{26BD6E61-E36D-464A-A312-4110ADF10083}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HelloTriangle", "HelloTriangle\HelloTriangle.vcxproj", "{BC17ACD3-97EB-4D5C-A2C9-574CDAA7576B}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PAKBuilder", "PAKBuilder\PAKBuilder.vcxproj", "{EBF1E2F9-65AA-419D-A3D3-AD66EB086E57}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RendererDirect3D11", "RendererDirect3D11\RendererDirect3D11.vcxproj", "{8269DCCE-E226-46E4-B9F6-290AB5DF2678}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RendererDirect3D12", "RendererDirect3D12\RendererDirect3D12.vcxproj", "{53923514-84B2-4B78-889A-8709C6BFA3A5}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RendererVulkan", "RendererVulkan\RendererVulkan.vcxproj", "{C9195A1C-9224-4B40-BBBC-AA90EF3BE3E0}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VulkanShaderCompiler", "VulkanShaderCompiler\VulkanShaderCompiler.vcxproj", "{1EA5F5D1-9138-406D-871B-3CD75343E14C}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PAKBuilder", "PAKBuilder\PAKBuilder.vcxproj", "{EBF1E2F9-65AA-419D-A3D3-AD66EB086E57}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TextureTool", "TextureTool\TextureTool.vcxproj", "{5A1A3E76-7F69-48B6-B1E3-F6BB281B7E73}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HelloTriangle", "HelloTriangle\HelloTriangle.vcxproj", "{BC17ACD3-97EB-4D5C-A2C9-574CDAA7576B}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Verus", "Verus\Verus.vcxproj", "{B154D670-E4B1-4D8A-885C-69546A5BD833}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HelloTexturedCube", "HelloTexturedCube\HelloTexturedCube.vcxproj", "{26BD6E61-E36D-464A-A312-4110ADF10083}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RendererDirect3D11", "RendererDirect3D11\RendererDirect3D11.vcxproj", "{8269DCCE-E226-46E4-B9F6-290AB5DF2678}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VulkanShaderCompiler", "VulkanShaderCompiler\VulkanShaderCompiler.vcxproj", "{1EA5F5D1-9138-406D-871B-3CD75343E14C}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@ -27,10 +27,22 @@ Global
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{B154D670-E4B1-4D8A-885C-69546A5BD833}.Debug|x64.ActiveCfg = Debug|x64
{B154D670-E4B1-4D8A-885C-69546A5BD833}.Debug|x64.Build.0 = Debug|x64
{B154D670-E4B1-4D8A-885C-69546A5BD833}.Release|x64.ActiveCfg = Release|x64
{B154D670-E4B1-4D8A-885C-69546A5BD833}.Release|x64.Build.0 = Release|x64
{26BD6E61-E36D-464A-A312-4110ADF10083}.Debug|x64.ActiveCfg = Debug|x64
{26BD6E61-E36D-464A-A312-4110ADF10083}.Debug|x64.Build.0 = Debug|x64
{26BD6E61-E36D-464A-A312-4110ADF10083}.Release|x64.ActiveCfg = Release|x64
{26BD6E61-E36D-464A-A312-4110ADF10083}.Release|x64.Build.0 = Release|x64
{BC17ACD3-97EB-4D5C-A2C9-574CDAA7576B}.Debug|x64.ActiveCfg = Debug|x64
{BC17ACD3-97EB-4D5C-A2C9-574CDAA7576B}.Debug|x64.Build.0 = Debug|x64
{BC17ACD3-97EB-4D5C-A2C9-574CDAA7576B}.Release|x64.ActiveCfg = Release|x64
{BC17ACD3-97EB-4D5C-A2C9-574CDAA7576B}.Release|x64.Build.0 = Release|x64
{EBF1E2F9-65AA-419D-A3D3-AD66EB086E57}.Debug|x64.ActiveCfg = Debug|x64
{EBF1E2F9-65AA-419D-A3D3-AD66EB086E57}.Debug|x64.Build.0 = Debug|x64
{EBF1E2F9-65AA-419D-A3D3-AD66EB086E57}.Release|x64.ActiveCfg = Release|x64
{EBF1E2F9-65AA-419D-A3D3-AD66EB086E57}.Release|x64.Build.0 = Release|x64
{8269DCCE-E226-46E4-B9F6-290AB5DF2678}.Debug|x64.ActiveCfg = Debug|x64
{8269DCCE-E226-46E4-B9F6-290AB5DF2678}.Debug|x64.Build.0 = Debug|x64
{8269DCCE-E226-46E4-B9F6-290AB5DF2678}.Release|x64.ActiveCfg = Release|x64
{8269DCCE-E226-46E4-B9F6-290AB5DF2678}.Release|x64.Build.0 = Release|x64
{53923514-84B2-4B78-889A-8709C6BFA3A5}.Debug|x64.ActiveCfg = Debug|x64
{53923514-84B2-4B78-889A-8709C6BFA3A5}.Debug|x64.Build.0 = Debug|x64
{53923514-84B2-4B78-889A-8709C6BFA3A5}.Release|x64.ActiveCfg = Release|x64
@ -39,30 +51,18 @@ Global
{C9195A1C-9224-4B40-BBBC-AA90EF3BE3E0}.Debug|x64.Build.0 = Debug|x64
{C9195A1C-9224-4B40-BBBC-AA90EF3BE3E0}.Release|x64.ActiveCfg = Release|x64
{C9195A1C-9224-4B40-BBBC-AA90EF3BE3E0}.Release|x64.Build.0 = Release|x64
{1EA5F5D1-9138-406D-871B-3CD75343E14C}.Debug|x64.ActiveCfg = Debug|x64
{1EA5F5D1-9138-406D-871B-3CD75343E14C}.Debug|x64.Build.0 = Debug|x64
{1EA5F5D1-9138-406D-871B-3CD75343E14C}.Release|x64.ActiveCfg = Release|x64
{1EA5F5D1-9138-406D-871B-3CD75343E14C}.Release|x64.Build.0 = Release|x64
{EBF1E2F9-65AA-419D-A3D3-AD66EB086E57}.Debug|x64.ActiveCfg = Debug|x64
{EBF1E2F9-65AA-419D-A3D3-AD66EB086E57}.Debug|x64.Build.0 = Debug|x64
{EBF1E2F9-65AA-419D-A3D3-AD66EB086E57}.Release|x64.ActiveCfg = Release|x64
{EBF1E2F9-65AA-419D-A3D3-AD66EB086E57}.Release|x64.Build.0 = Release|x64
{5A1A3E76-7F69-48B6-B1E3-F6BB281B7E73}.Debug|x64.ActiveCfg = Debug|x64
{5A1A3E76-7F69-48B6-B1E3-F6BB281B7E73}.Debug|x64.Build.0 = Debug|x64
{5A1A3E76-7F69-48B6-B1E3-F6BB281B7E73}.Release|x64.ActiveCfg = Release|x64
{5A1A3E76-7F69-48B6-B1E3-F6BB281B7E73}.Release|x64.Build.0 = Release|x64
{BC17ACD3-97EB-4D5C-A2C9-574CDAA7576B}.Debug|x64.ActiveCfg = Debug|x64
{BC17ACD3-97EB-4D5C-A2C9-574CDAA7576B}.Debug|x64.Build.0 = Debug|x64
{BC17ACD3-97EB-4D5C-A2C9-574CDAA7576B}.Release|x64.ActiveCfg = Release|x64
{BC17ACD3-97EB-4D5C-A2C9-574CDAA7576B}.Release|x64.Build.0 = Release|x64
{26BD6E61-E36D-464A-A312-4110ADF10083}.Debug|x64.ActiveCfg = Debug|x64
{26BD6E61-E36D-464A-A312-4110ADF10083}.Debug|x64.Build.0 = Debug|x64
{26BD6E61-E36D-464A-A312-4110ADF10083}.Release|x64.ActiveCfg = Release|x64
{26BD6E61-E36D-464A-A312-4110ADF10083}.Release|x64.Build.0 = Release|x64
{8269DCCE-E226-46E4-B9F6-290AB5DF2678}.Debug|x64.ActiveCfg = Debug|x64
{8269DCCE-E226-46E4-B9F6-290AB5DF2678}.Debug|x64.Build.0 = Debug|x64
{8269DCCE-E226-46E4-B9F6-290AB5DF2678}.Release|x64.ActiveCfg = Release|x64
{8269DCCE-E226-46E4-B9F6-290AB5DF2678}.Release|x64.Build.0 = Release|x64
{B154D670-E4B1-4D8A-885C-69546A5BD833}.Debug|x64.ActiveCfg = Debug|x64
{B154D670-E4B1-4D8A-885C-69546A5BD833}.Debug|x64.Build.0 = Debug|x64
{B154D670-E4B1-4D8A-885C-69546A5BD833}.Release|x64.ActiveCfg = Release|x64
{B154D670-E4B1-4D8A-885C-69546A5BD833}.Release|x64.Build.0 = Release|x64
{1EA5F5D1-9138-406D-871B-3CD75343E14C}.Debug|x64.ActiveCfg = Debug|x64
{1EA5F5D1-9138-406D-871B-3CD75343E14C}.Debug|x64.Build.0 = Debug|x64
{1EA5F5D1-9138-406D-871B-3CD75343E14C}.Release|x64.ActiveCfg = Release|x64
{1EA5F5D1-9138-406D-871B-3CD75343E14C}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@ -3,8 +3,8 @@
<ImportGroup Label="PropertySheets" />
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<IncludePath>C:\Compressonator_4.3.206\include;C:\Home\Projects\Verus\verus\Verus\src;C:\Home\Middleware\AMD Tootle 2.3\include;C:\Home\Middleware\bullet3-2.89\src;C:\Home\Middleware\bullet3-2.89\Extras;C:\Home\Middleware\libogg-1.3.5\include;C:\Home\Middleware\libvorbis-1.3.7\include;C:\Home\Middleware\openal-soft-1.22.0-bin\include;C:\Home\Middleware\OpenXR-SDK-release-1.0.27\include;C:\Home\Middleware\SDL2-2.0.22\include;C:\Home\Middleware\WinPixEventRuntime\include;C:\VulkanSDK\1.3.239.0\Include;$(IncludePath)</IncludePath>
<LibraryPath>C:\Compressonator_4.3.206\lib\VS2019\x64;C:\Home\Middleware\bullet3-2.89\bin;C:\Home\Middleware\AMD Tootle 2.3\lib;C:\Home\Middleware\libogg-1.3.5\lib;C:\Home\Middleware\libvorbis-1.3.7\lib2;C:\Home\Middleware\openal-soft-1.22.0-bin\libs\Win64;C:\Home\Middleware\OpenXR-SDK-release-1.0.27\lib;C:\Home\Middleware\SDL2-2.0.22\lib\x64;C:\Home\Middleware\WinPixEventRuntime\lib;C:\VulkanSDK\1.3.239.0\Lib;$(LibraryPath)</LibraryPath>
<IncludePath>C:\Compressonator_4.3.206\include;C:\Home\Projects\Verus\verus\Verus\src;C:\Home\Middleware\AMD Tootle 2.3\include;C:\Home\Middleware\bullet3-3.25\src;C:\Home\Middleware\bullet3-3.25\Extras;C:\Home\Middleware\libogg-1.3.5\include;C:\Home\Middleware\libvorbis-1.3.7\include;C:\Home\Middleware\openal-soft-1.22.0-bin\include;C:\Home\Middleware\OpenXR-SDK-release-1.0.27\include;C:\Home\Middleware\SDL2-2.0.22\include;C:\Home\Middleware\WinPixEventRuntime\include;C:\VulkanSDK\1.3.239.0\Include;$(IncludePath)</IncludePath>
<LibraryPath>C:\Compressonator_4.3.206\lib\VS2019\x64;C:\Home\Middleware\bullet3-3.25\bin;C:\Home\Middleware\AMD Tootle 2.3\lib;C:\Home\Middleware\libogg-1.3.5\lib;C:\Home\Middleware\libvorbis-1.3.7\lib2;C:\Home\Middleware\openal-soft-1.22.0-bin\libs\Win64;C:\Home\Middleware\OpenXR-SDK-release-1.0.27\lib;C:\Home\Middleware\SDL2-2.0.22\lib\x64;C:\Home\Middleware\WinPixEventRuntime\lib;C:\VulkanSDK\1.3.239.0\Lib;$(LibraryPath)</LibraryPath>
</PropertyGroup>
<ItemDefinitionGroup />
<ItemGroup />

View File

@ -11,23 +11,23 @@
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>16.0</VCProjectVersion>
<VCProjectVersion>17.0</VCProjectVersion>
<Keyword>Win32Proj</Keyword>
<ProjectGuid>{B154D670-E4B1-4D8A-885C-69546A5BD833}</ProjectGuid>
<RootNamespace>Verus</RootNamespace>
<WindowsTargetPlatformVersion>10.0.20348.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>10.0.22000.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<PlatformToolset>v143</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
@ -45,12 +45,6 @@
<Import Project="Verus.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
@ -60,6 +54,7 @@
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>verus.h</PrecompiledHeaderFile>
<FloatingPointModel>Fast</FloatingPointModel>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
<Link>
<SubSystem>
@ -78,6 +73,7 @@
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>verus.h</PrecompiledHeaderFile>
<FloatingPointModel>Fast</FloatingPointModel>
<LanguageStandard>stdcpp20</LanguageStandard>
</ClCompile>
<Link>
<SubSystem>
@ -216,7 +212,6 @@
<ClInclude Include="src\Global\Macros.h" />
<ClInclude Include="src\Global\Global.h" />
<ClInclude Include="src\Global\STL.h" />
<ClInclude Include="src\Global\SyntaxHighlight.h" />
<ClInclude Include="src\Global\Typedef.h" />
<ClInclude Include="src\IO\StreamPtr.h" />
<ClInclude Include="src\IO\Vwx.h" />

View File

@ -165,9 +165,6 @@
<ClInclude Include="src\Global\STL.h">
<Filter>src\Global</Filter>
</ClInclude>
<ClInclude Include="src\Global\SyntaxHighlight.h">
<Filter>src\Global</Filter>
</ClInclude>
<ClInclude Include="src\Global\Typedef.h">
<Filter>src\Global</Filter>
</ClInclude>

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace AI
namespace verus::AI
{
struct TaskDriverDelegate
{
@ -56,4 +54,3 @@ namespace verus
};
VERUS_TYPEDEFS(TaskDriver);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace AI
namespace verus::AI
{
class Turret
{
@ -35,4 +33,3 @@ namespace verus
};
VERUS_TYPEDEFS(Turret);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace Anim
namespace verus::Anim
{
struct AnimationDelegate
{
@ -111,4 +109,3 @@ namespace verus
};
VERUS_TYPEDEFS(Animation);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace Anim
namespace verus::Anim
{
template<typename T, bool angle = false>
class Elastic
@ -132,4 +130,3 @@ namespace verus
}
};
}
}

View File

@ -462,16 +462,16 @@ void Motion::Bone::DeleteRedundantKeyframes(float boneAccLength)
// Which keyframe can be removed with the least error?
float leastError = threshold;
int frameWithLeastError = -1;
for (const auto& kv : mapSaved)
for (const auto& [key, value] : mapSaved)
{
const int excludeFrame = kv.first;
const int excludeFrame = key;
if (!excludeFrame || _pMotion->GetFrameCount() == excludeFrame)
continue;
_mapRot.clear();
for (const auto& kv2 : mapSaved)
for (const auto& [key2, value2] : mapSaved)
{
if (kv2.first != excludeFrame)
_mapRot[kv2.first] = kv2.second;
if (key2 != excludeFrame)
_mapRot[key2] = value2;
}
float accError = 0;
@ -523,16 +523,16 @@ void Motion::Bone::DeleteRedundantKeyframes(float boneAccLength)
// Which keyframe can be removed with the least error?
float leastError = threshold;
int frameWithLeastError = -1;
for (const auto& kv : mapSaved)
for (const auto& [key, value] : mapSaved)
{
const int excludeFrame = kv.first;
const int excludeFrame = key;
if (!excludeFrame || _pMotion->GetFrameCount() == excludeFrame)
continue;
_mapPos.clear();
for (const auto& kv2 : mapSaved)
for (const auto& [key2, value2] : mapSaved)
{
if (kv2.first != excludeFrame)
_mapPos[kv2.first] = kv2.second;
if (key2 != excludeFrame)
_mapPos[key2] = value2;
}
float accError = 0;
@ -584,16 +584,16 @@ void Motion::Bone::DeleteRedundantKeyframes(float boneAccLength)
// Which keyframe can be removed with the least error?
float leastError = threshold;
int frameWithLeastError = -1;
for (const auto& kv : mapSaved)
for (const auto& [key, value] : mapSaved)
{
const int excludeFrame = kv.first;
const int excludeFrame = key;
if (!excludeFrame || _pMotion->GetFrameCount() == excludeFrame)
continue;
_mapScale.clear();
for (const auto& kv2 : mapSaved)
for (const auto& [key2, value2] : mapSaved)
{
if (kv2.first != excludeFrame)
_mapScale[kv2.first] = kv2.second;
if (key2 != excludeFrame)
_mapScale[key2] = value2;
}
float accError = 0;
@ -927,10 +927,10 @@ void Motion::Done()
Motion::PBone Motion::GetBoneByIndex(int index)
{
int i = 0;
for (auto& kv : _mapBones)
for (auto& [key, value] : _mapBones)
{
if (i == index)
return &kv.second;
return &value;
i++;
}
return nullptr;
@ -989,9 +989,9 @@ void Motion::Serialize(IO::RStream stream)
stream << _fps;
stream << GetBoneCount();
for (auto& kv : _mapBones)
for (auto& [key, value] : _mapBones)
{
RBone bone = kv.second;
RBone bone = value;
stream.WriteString(_C(bone.GetName()));
bone.Serialize(stream, version);
}
@ -1078,27 +1078,27 @@ void Motion::DeleteRedundantKeyframes(Map<String, float>& mapBoneAccLengths)
void Motion::DeleteOddKeyframes()
{
for (auto& kv : _mapBones)
kv.second.DeleteOddKeyframes();
for (auto& [key, value] : _mapBones)
value.DeleteOddKeyframes();
}
void Motion::InsertLoopKeyframes()
{
for (auto& kv : _mapBones)
kv.second.InsertLoopKeyframes();
for (auto& [key, value] : _mapBones)
value.InsertLoopKeyframes();
}
void Motion::Cut(int frame, bool before)
{
for (auto& kv : _mapBones)
kv.second.Cut(frame, before);
for (auto& [key, value] : _mapBones)
value.Cut(frame, before);
_frameCount = before ? _frameCount - frame : frame + 1;
}
void Motion::Fix(bool speedLimit)
{
for (auto& kv : _mapBones)
kv.second.Fix(speedLimit);
for (auto& [key, value] : _mapBones)
value.Fix(speedLimit);
}
void Motion::ProcessTriggers(float time, PMotionDelegate p, int* pUserTriggerStates)
@ -1110,9 +1110,9 @@ void Motion::ProcessTriggers(float time, PMotionDelegate p, int* pUserTriggerSta
nativeTime = GetNativeDuration() - nativeTime;
int i = 0;
for (auto& kv : _mapBones)
for (auto& [key, value] : _mapBones)
{
PBone pBone = &kv.second;
PBone pBone = &value;
int state = 0;
if (!(_reversed && nativeTime < _fpsInv * 0.5f)) // Avoid edge case for the first frame in reverse.
pBone->ComputeTriggerAt(nativeTime, state);
@ -1132,9 +1132,9 @@ void Motion::ProcessTriggers(float time, PMotionDelegate p, int* pUserTriggerSta
void Motion::ResetTriggers(int* pUserTriggerStates)
{
int i = 0;
for (auto& kv : _mapBones)
for (auto& [key, value] : _mapBones)
{
PBone pBone = &kv.second;
PBone pBone = &value;
int state = 0;
if (_reversed)
pBone->ComputeTriggerAt(GetNativeDuration(), state);
@ -1153,9 +1153,9 @@ void Motion::SkipTriggers(float time, int* pUserTriggerStates)
nativeTime = GetNativeDuration() - nativeTime;
int i = 0;
for (auto& kv : _mapBones)
for (auto& [key, value] : _mapBones)
{
PBone pBone = &kv.second;
PBone pBone = &value;
int state;
pBone->ComputeTriggerAt(nativeTime, state);
if (pUserTriggerStates)
@ -1242,14 +1242,14 @@ void Motion::Exec(CSZ code, PBone pBone, Bone::Channel channel)
}
else
{
for (auto& bone : _mapBones)
for (auto& [key, value] : _mapBones)
{
if (!strcmp(what, "rot"))
bone.second._mapRot.clear();
value._mapRot.clear();
if (!strcmp(what, "pos"))
bone.second._mapPos.clear();
value._mapPos.clear();
if (!strcmp(what, "scale"))
bone.second._mapScale.clear();
value._mapScale.clear();
}
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace Anim
namespace verus::Anim
{
struct MotionDelegate
{
@ -297,9 +295,9 @@ namespace verus
template<typename T>
void ForEachBone(const T& fn)
{
for (auto& kv : _mapBones)
for (auto& [key, value] : _mapBones)
{
if (Continue::no == fn(kv.second))
if (Continue::no == fn(value))
break;
}
}
@ -339,4 +337,3 @@ namespace verus
};
VERUS_TYPEDEFS(Motion);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace Anim
namespace verus::Anim
{
class Orbit
{
@ -44,4 +42,3 @@ namespace verus
};
VERUS_TYPEDEFS(Orbit);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace Anim
namespace verus::Anim
{
// Shaker can load standard wav file, 8-bit mono, and use it as a function of time.
// Works well for camera's shaking effects.
@ -46,4 +44,3 @@ namespace verus
};
VERUS_TYPEDEFS(Shaker);
}
}

View File

@ -16,8 +16,8 @@ Skeleton::~Skeleton()
void Skeleton::operator=(RcSkeleton that)
{
Init();
for (const auto& kv : that._mapBones)
_mapBones[kv.first] = kv.second;
for (const auto& [key, value] : that._mapBones)
_mapBones[key] = value;
_primaryBoneCount = that._primaryBoneCount;
}
@ -36,9 +36,9 @@ void Skeleton::Draw(bool bindPose, PcTransform3 pMat, int selected)
{
VERUS_QREF_DD;
dd.Begin(CGI::DebugDraw::Type::lines, pMat, false);
for (const auto& kv : _mapBones)
for (const auto& [key, value] : _mapBones)
{
PcBone pBone = &kv.second;
PcBone pBone = &value;
PcBone pParent = FindBone(_C(pBone->_parentName));
if (pParent)
{
@ -58,9 +58,9 @@ void Skeleton::Draw(bool bindPose, PcTransform3 pMat, int selected)
}
}
}
for (const auto& kv : _mapBones)
for (const auto& [key, value] : _mapBones)
{
PcBone pBone = &kv.second;
PcBone pBone = &value;
const Transform3 mat = bindPose ? pBone->_matFromBoneSpace : pBone->_matFinal * pBone->_matFromBoneSpace;
const float scale = 0.04f;
@ -122,10 +122,10 @@ Skeleton::PcBone Skeleton::FindBone(CSZ name) const
Skeleton::PBone Skeleton::FindBoneByIndex(int index)
{
for (auto& kv : _mapBones)
for (auto& [key, value] : _mapBones)
{
if (kv.second._shaderIndex == index)
return &kv.second;
if (value._shaderIndex == index)
return &value;
}
return nullptr;
}
@ -134,9 +134,9 @@ void Skeleton::ApplyMotion(RMotion motion, float time, int layeredMotionCount, P
{
if (_ragdollMode)
{
for (auto& kv : _mapBones)
for (auto& [key, value] : _mapBones)
{
RBone bone = kv.second;
RBone bone = value;
if (bone._pRigidBody)
{
btTransform btr;
@ -176,9 +176,9 @@ void Skeleton::ApplyMotion(RMotion motion, float time, int layeredMotionCount, P
_pLayeredMotions = pLayeredMotions;
ResetBones();
for (auto& kv : _mapBones)
for (auto& [key, value] : _mapBones)
{
RBone bone = kv.second;
RBone bone = value;
if (!bone._ready)
{
_pCurrentBone = &bone;
@ -198,9 +198,9 @@ void Skeleton::ApplyMotion(RMotion motion, float time, int layeredMotionCount, P
void Skeleton::UpdateUniformBufferArray(mataff* p) const
{
for (const auto& kv : _mapBones)
for (const auto& [key, value] : _mapBones)
{
RcBone bone = kv.second;
RcBone bone = value;
if (bone._shaderIndex >= 0 && bone._shaderIndex < VERUS_MAX_BONES)
p[bone._shaderIndex] = bone._matFinal.UniformBufferFormat();
}
@ -208,17 +208,17 @@ void Skeleton::UpdateUniformBufferArray(mataff* p) const
void Skeleton::ResetFinalPose()
{
for (auto& kv : _mapBones)
for (auto& [key, value] : _mapBones)
{
kv.second._matFinal = Transform3::identity();
kv.second._matFinalInv = Transform3::identity();
value._matFinal = Transform3::identity();
value._matFinalInv = Transform3::identity();
}
}
void Skeleton::ResetBones()
{
for (auto& kv : _mapBones)
kv.second._ready = false;
for (auto& [key, value] : _mapBones)
value._ready = false;
}
void Skeleton::RecursiveBoneUpdate()
@ -300,8 +300,8 @@ void Skeleton::RecursiveBoneUpdate()
void Skeleton::InsertBonesIntoMotion(RMotion motion) const
{
for (const auto& kv : _mapBones)
motion.InsertBone(_C(kv.first));
for (const auto& [key, value] : _mapBones)
motion.InsertBone(_C(key));
}
void Skeleton::DeleteOutsiders(RMotion motion) const
@ -332,9 +332,9 @@ void Skeleton::AdjustPrimaryBones(const Vector<String>& vPrimaryBones)
if (inverse)
std::swap(addPri, addSec);
for (const auto& kv : _mapBones)
for (const auto& [key, value] : _mapBones)
{
RcBone bone = kv.second;
RcBone bone = value;
if (vPrimaryBones.end() != std::find(vPrimaryBones.begin(), vPrimaryBones.end(), bone._name))
mapSort[bone._shaderIndex + addPri] = bone._name;
else
@ -343,11 +343,11 @@ void Skeleton::AdjustPrimaryBones(const Vector<String>& vPrimaryBones)
_primaryBoneCount = 0;
for (const auto& kv : mapSort)
for (const auto& [key, value] : mapSort)
{
if (kv.first < secondaryOffset) // Primary bone:
if (key < secondaryOffset) // Primary bone:
{
PBone pBone = FindBone(_C(kv.second));
PBone pBone = FindBone(_C(value));
const int newIndex = Utils::Cast32(_mapPrimary.size());
_mapPrimary[pBone->_shaderIndex] = newIndex;
pBone->_shaderIndex = newIndex;
@ -355,7 +355,7 @@ void Skeleton::AdjustPrimaryBones(const Vector<String>& vPrimaryBones)
}
else // Secondary bone:
{
PBone pBone = FindBone(_C(kv.second));
PBone pBone = FindBone(_C(value));
PcBone pParent = FindBone(_C(pBone->_parentName));
bool isPrimary = false;
while (!isPrimary)
@ -400,9 +400,9 @@ void Skeleton::LoadRigInfo(CSZ url)
void Skeleton::LoadRigInfoFromPtr(SZ p)
{
for (auto& kv : _mapBones)
for (auto& [key, value] : _mapBones)
{
RBone bone = kv.second;
RBone bone = value;
bone._rigRot = Vector3(0);
bone._cRot = Vector3(0);
bone._cLimits = Vector3(0);
@ -419,9 +419,9 @@ void Skeleton::LoadRigInfoFromPtr(SZ p)
float massCheck = 0;
if (p)
{
for (auto& kv : _mapBones)
for (auto& [key, value] : _mapBones)
{
RBone bone = kv.second;
RBone bone = value;
bone._rigBone = false;
}
@ -498,12 +498,12 @@ void Skeleton::BeginRagdoll(RcTransform3 matW, RcVector3 impulse, CSZ bone)
const float sleepL = 1.6f;
const float sleepA = 2.5f;
for (auto& kv : _mapBones)
kv.second._ready = true;
for (auto& [key, value] : _mapBones)
value._ready = true;
for (const auto& kv : _mapBones)
for (const auto& [key, value] : _mapBones)
{
PcBone pBone = &kv.second;
PcBone pBone = &value;
PBone pParent = FindBone(_C(pBone->_parentName));
if (pParent && pParent->_rigBone && !pParent->_pShape) // Create a shape for parent bone:
@ -574,9 +574,9 @@ void Skeleton::BeginRagdoll(RcTransform3 matW, RcVector3 impulse, CSZ bone)
const Transform3 matInitC = Transform3::rotationZYX(Vector3(-VERUS_PI / 2, 0, -VERUS_PI / 2));
// Create leaf actors and joints:
for (auto& kv : _mapBones)
for (auto& [key, value] : _mapBones)
{
PBone pBone = &kv.second;
PBone pBone = &value;
PBone pParent = pBone;
do
{
@ -667,9 +667,9 @@ void Skeleton::EndRagdoll()
{
VERUS_QREF_BULLET;
for (auto& kv : _mapBones)
for (auto& [key, value] : _mapBones)
{
RBone bone = kv.second;
RBone bone = value;
if (bone._pConstraint)
{
bullet.GetWorld()->removeConstraint(bone._pConstraint);
@ -678,9 +678,9 @@ void Skeleton::EndRagdoll()
}
}
for (auto& kv : _mapBones)
for (auto& [key, value] : _mapBones)
{
RBone bone = kv.second;
RBone bone = value;
if (bone._pRigidBody)
{
bullet.GetWorld()->removeRigidBody(bone._pRigidBody);
@ -700,9 +700,9 @@ void Skeleton::EndRagdoll()
void Skeleton::BakeMotion(RMotion motion, int frame, bool kinect)
{
for (const auto& kv : _mapBones)
for (const auto& [key, value] : _mapBones)
{
RcBone bone = kv.second;
RcBone bone = value;
if (kinect && !IsKinectBone(_C(bone._name)))
continue;
PcBone pParent = FindBone(_C(bone._parentName));
@ -792,9 +792,9 @@ void Skeleton::AdaptBindPoseOf(RcSkeleton that)
// TODO: improve.
const Point3 origin(0);
for (auto& kv : _mapBones)
for (auto& [key, value] : _mapBones)
{
RBone boneDst = kv.second;
RBone boneDst = value;
PBone pParentDst = FindBone(_C(boneDst._parentName));
PcBone pBoneSrc = that.FindBone(_C(boneDst._name));
PcBone pParentSrc = pBoneSrc ? that.FindBone(_C(pBoneSrc->_parentName)) : nullptr;
@ -850,10 +850,10 @@ void Skeleton::SimpleIK(CSZ boneDriven, CSZ boneDriver, RcVector3 dirDriverSpace
void Skeleton::ProcessKinectData(const BYTE* p, RMotion motion, int frame)
{
for (auto& kv : _mapBones)
for (auto& [key, value] : _mapBones)
{
kv.second._matFinal = Transform3::identity();
kv.second._matExternal = Transform3::identity();
value._matFinal = Transform3::identity();
value._matExternal = Transform3::identity();
}
UINT64 timestamp;
@ -925,9 +925,9 @@ void Skeleton::ProcessKinectData(const BYTE* p, RMotion motion, int frame)
shTwist *= 1 - abs(shAxis.getY());
}
for (auto& kv : _mapBones)
for (auto& [key, value] : _mapBones)
{
RBone bone = kv.second;
RBone bone = value;
if (!IsKinectBone(_C(bone._name)))
continue;
#if 0
@ -970,9 +970,9 @@ void Skeleton::ProcessKinectData(const BYTE* p, RMotion motion, int frame)
VERUS_FOR(i, 4)
{
for (auto& kv : _mapBones)
for (auto& [key, value] : _mapBones)
{
RBone bone = kv.second;
RBone bone = value;
if (IsKinectBone(_C(bone._name)) && !IsKinectLeafBone(_C(bone._name)))
continue;
PBone pParent = FindBone(_C(bone._parentName));
@ -985,10 +985,10 @@ void Skeleton::ProcessKinectData(const BYTE* p, RMotion motion, int frame)
BakeMotion(motion, frame, true);
for (auto& kv : _mapBones)
for (auto& [key, value] : _mapBones)
{
kv.second._matFinal = Transform3::identity();
kv.second._matExternal = Transform3::identity();
value._matFinal = Transform3::identity();
value._matExternal = Transform3::identity();
}
}
@ -1033,9 +1033,9 @@ void Skeleton::LoadKinectBindPose(CSZ xml)
mapData[pElem->Attribute("n")] = pos;
}
for (const auto& kv : _mapBones)
for (const auto& [key, value] : _mapBones)
{
RBone bone = kv.second;
RBone bone = value;
if (!IsKinectBone(_C(bone._name)))
continue;
PBone pParent = FindBone(_C(bone._parentName));
@ -1229,9 +1229,9 @@ Vector3 Skeleton::GetHighestSpeed(RMotion motion, CSZ name, RcVector3 scale, boo
void Skeleton::ComputeBoneLengths(Map<String, float>& m, bool accumulated)
{
for (auto& kv : _mapBones)
for (auto& [key, value] : _mapBones)
{
RcBone bone = kv.second;
RcBone bone = value;
PcBone pParentBone = FindBone(_C(bone._parentName));
float len = 0;
if (pParentBone)
@ -1261,7 +1261,7 @@ void Skeleton::ComputeBoneLengths(Map<String, float>& m, bool accumulated)
}
if (accumulated) // Add leaf bone lengths?
{
for (auto& kv : m)
kv.second += 0.02f;
for (auto& [key, value] : m)
value += 0.02f;
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace Anim
namespace verus::Anim
{
// Standard skeleton, which can be animated using motion object.
// X3D format can support up to 256 bones, but the hardware has certain limitations.
@ -110,15 +108,15 @@ namespace verus
template<typename F>
void ForEachBone(const F& fn)
{
for (auto& kv : _mapBones)
if (Continue::no == fn(kv.second))
for (auto& [key, value] : _mapBones)
if (Continue::no == fn(value))
return;
}
template<typename F>
void ForEachBone(const F& fn) const
{
for (const auto& kv : _mapBones)
if (Continue::no == fn(kv.second))
for (const auto& [key, value] : _mapBones)
if (Continue::no == fn(value))
return;
}
@ -160,4 +158,3 @@ namespace verus
};
VERUS_TYPEDEFS(Skeleton);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace Anim
namespace verus::Anim
{
// Warp manages sphere-based deformations to create such effects like dangling and speech.
// Any other part of the mesh can also be deformed.
@ -80,4 +78,3 @@ namespace verus
};
VERUS_TYPEDEFS(Warp);
}
}

View File

@ -11,10 +11,7 @@ namespace verus
void Free_App();
}
namespace verus
{
namespace App
namespace verus::App
{
void RunEventLoop();
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace App
namespace verus::App
{
enum class DisplayMode : int
{
@ -189,4 +187,3 @@ namespace verus
};
VERUS_TYPEDEFS(Settings);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace App
namespace verus::App
{
class UndoManager : public Object
{
@ -68,4 +66,3 @@ namespace verus
};
VERUS_TYPEDEFS(UndoManager);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace App
namespace verus::App
{
class Window : public Object
{
@ -38,4 +36,3 @@ namespace verus
};
VERUS_TYPEDEFS(Window);
}
}

View File

@ -68,14 +68,14 @@ void AudioSystem::Update()
_streamPlayers[i].Update();
// Update every frame:
for (auto& x : TStoreSounds::_map)
x.second.Update();
for (auto& [key, value] : TStoreSounds::_map)
value.Update();
// Update ~15 times per second:
if (timer.IsEventEvery(67))
{
for (auto& x : TStoreSounds::_map)
x.second.UpdateHRTF();
for (auto& [key, value] : TStoreSounds::_map)
value.UpdateHRTF();
if (VMath::lengthSqr(_listenerDirection) > 0.1f &&
VMath::lengthSqr(_listenerUp) > 0.1f)

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace Audio
namespace verus::Audio
{
typedef StoreUnique<String, Sound> TStoreSounds;
class AudioSystem : public Singleton<AudioSystem>, public Object, private TStoreSounds
@ -42,4 +40,3 @@ namespace verus
};
VERUS_TYPEDEFS(AudioSystem);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#include "verus.h"
namespace verus
{
namespace Audio
namespace verus::Audio
{
size_t read_func(void* ptr, size_t size, size_t nmemb, void* datasource)
{
@ -44,4 +42,3 @@ namespace verus
const ov_callbacks g_oggCallbacks = { read_func, seek_func, close_func, tell_func };
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace Audio
namespace verus::Audio
{
struct OggDataSource
{
@ -20,4 +18,3 @@ namespace verus
extern const ov_callbacks g_oggCallbacks;
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace Audio
namespace verus::Audio
{
struct SoundFlags
{
@ -149,4 +147,3 @@ namespace verus
}
};
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace Audio
namespace verus::Audio
{
class Source
{
@ -54,4 +52,3 @@ namespace verus
};
VERUS_TYPEDEFS(SourcePtr);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace Audio
namespace verus::Audio
{
class Track : public IO::AsyncDelegate
{
@ -80,4 +78,3 @@ namespace verus
};
VERUS_TYPEDEFS(StreamPlayer);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
namespace verus::CGI
{
// View can be a smaller portion of framebuffer with an offset.
enum class ViewportScissorFlags : UINT32
@ -110,4 +108,3 @@ namespace verus
{
};
}
}

View File

@ -3,9 +3,7 @@
#define VERUS_XR_DESTROY(xr, fn) {if (XR_NULL_HANDLE != xr) {fn; xr = XR_NULL_HANDLE;}}
namespace verus
{
namespace CGI
namespace verus::CGI
{
class BaseExtReality : public Object
{
@ -120,4 +118,3 @@ namespace verus
};
VERUS_TYPEDEFS(BaseExtReality);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
namespace verus::CGI
{
class BaseCommandBuffer;
@ -69,4 +67,3 @@ namespace verus
{
};
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
namespace verus::CGI
{
struct PipelineDesc
{
@ -89,4 +87,3 @@ namespace verus
{
};
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
namespace verus::CGI
{
enum class Gapi : int
{
@ -104,10 +102,9 @@ namespace verus
virtual void UpdateUtilization() {}
};
VERUS_TYPEDEFS(BaseRenderer);
}
extern "C"
{
typedef CGI::PBaseRenderer(*PFNCREATERENDERER)(UINT32 version, CGI::BaseRendererDesc* pDesc);
typedef PBaseRenderer(*PFNCREATERENDERER)(UINT32 version, BaseRendererDesc* pDesc);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
namespace verus::CGI
{
struct ShaderDesc
{
@ -100,4 +98,3 @@ namespace verus
{
};
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
namespace verus::CGI
{
struct SamplerDesc
{
@ -153,4 +151,3 @@ namespace verus
{
};
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
namespace verus::CGI
{
class DebugDraw : public Singleton<DebugDraw>, public Object
{
@ -74,4 +72,3 @@ namespace verus
};
VERUS_TYPEDEFS(DebugDraw);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
namespace verus::CGI
{
enum class LightType : int
{
@ -226,4 +224,3 @@ namespace verus
};
VERUS_TYPEDEFS(DeferredShading);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
namespace verus::CGI
{
template<typename T>
class DynamicBuffer : public GeometryPwn
@ -86,4 +84,3 @@ namespace verus
}
};
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
namespace verus::CGI
{
// See: https://vulkan.gpuinfo.org/listformats.php?platform=android
enum class Format : int
@ -51,4 +49,3 @@ namespace verus
srgbBC7 // RGBA.
};
}
}

View File

@ -1,11 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
{
namespace RP
namespace verus::CGI::RP
{
class Attachment
{
@ -89,5 +85,3 @@ namespace verus
};
VERUS_TYPEDEFS(Dependency);
}
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
namespace verus::CGI
{
struct RendererDelegate
{
@ -206,4 +204,3 @@ namespace verus
};
VERUS_TYPEDEFS(Renderer);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
namespace verus::CGI
{
class RendererParser
{
@ -17,4 +15,3 @@ namespace verus
static int SkipSpace(CSZ& p);
};
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
namespace verus::CGI
{
class Scheduled
{
@ -18,4 +16,3 @@ namespace verus
};
VERUS_TYPEDEFS(Scheduled);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
namespace verus::CGI
{
class TextureRAM : public BaseTexture
{
@ -25,4 +23,3 @@ namespace verus
};
VERUS_TYPEDEFS(TextureRAM);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace CGI
namespace verus::CGI
{
enum class CompareOp : int
{
@ -214,4 +212,3 @@ namespace verus
};
VERUS_TYPEDEFS(ViewDesc);
}
}

View File

@ -1,4 +1,4 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
#define VERUS_CT_ASSERT(x) static_assert(x, "VERUS_CT_ASSERT")
#define VERUS_CT_ASSERT(x) static_assert(x)

View File

@ -6,9 +6,7 @@
#define VERUS_LOG_INFO(txt) {StringStream ss_Log; ss_Log << txt; D::Log::I().Write(_C(ss_Log.str()), std::this_thread::get_id(), __FILE__, __LINE__, D::Log::Severity::info);}
#define VERUS_LOG_DEBUG(txt) {StringStream ss_Log; ss_Log << txt; D::Log::I().Write(_C(ss_Log.str()), std::this_thread::get_id(), __FILE__, __LINE__, D::Log::Severity::debug);}
namespace verus
{
namespace D
namespace verus::D
{
class Log : public Singleton<Log>
{
@ -35,4 +33,3 @@ namespace verus
static String ExtractFilename(CSZ filename);
};
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace D
namespace verus::D
{
class Recoverable : public RuntimeError
{
@ -28,6 +26,5 @@ namespace verus
};
VERUS_TYPEDEFS(Recoverable);
}
}
#define VERUS_RECOVERABLE verus::D::Recoverable(std::this_thread::get_id(), __FILE__, __LINE__)

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace D
namespace verus::D
{
// See: https://marknelson.us/posts/2007/11/13/no-exceptions.html
class RuntimeError : public std::exception
@ -63,6 +61,5 @@ namespace verus
};
VERUS_TYPEDEFS(RuntimeError);
}
}
#define VERUS_RUNTIME_ERROR verus::D::RuntimeError(std::this_thread::get_id(), __FILE__, __LINE__)

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace Effects
namespace verus::Effects
{
class Bloom : public Singleton<Bloom>, public Object
{
@ -66,4 +64,3 @@ namespace verus
};
VERUS_TYPEDEFS(Bloom);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace Effects
namespace verus::Effects
{
class Blur : public Singleton<Blur>, public Object
{
@ -124,4 +122,3 @@ namespace verus
};
VERUS_TYPEDEFS(Blur);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace Effects
namespace verus::Effects
{
class Cinema : public Singleton<Cinema>, public Object
{
@ -37,4 +35,3 @@ namespace verus
};
VERUS_TYPEDEFS(Cinema);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace Effects
namespace verus::Effects
{
enum class BillboardType : int
{
@ -185,4 +183,3 @@ namespace verus
};
VERUS_TYPEDEFS(Particles);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace Effects
namespace verus::Effects
{
class Ssao : public Singleton<Ssao>, public Object
{
@ -44,4 +42,3 @@ namespace verus
};
VERUS_TYPEDEFS(Ssao);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace Effects
namespace verus::Effects
{
class Ssr : public Singleton<Ssr>, public Object
{
@ -52,4 +50,3 @@ namespace verus
};
VERUS_TYPEDEFS(Ssr);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace Extra
namespace verus::Extra
{
struct BaseConvertDelegate;
@ -241,4 +239,3 @@ namespace verus
};
VERUS_TYPEDEFS(BaseConvertDelegate);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace Extra
namespace verus::Extra
{
class ConvertGLTF : public Singleton<ConvertGLTF>, public Object, public BaseConvert
{
@ -73,4 +71,3 @@ namespace verus
};
VERUS_TYPEDEFS(ConvertGLTF);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace Extra
namespace verus::Extra
{
class ConvertX : public Singleton<ConvertX>, public Object, public BaseConvert
{
@ -124,4 +122,3 @@ namespace verus
};
VERUS_TYPEDEFS(ConvertX);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace GUI
namespace verus::GUI
{
template<typename T>
struct Animated
@ -115,4 +113,3 @@ namespace verus
};
VERUS_TYPEDEFS(Animator);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace GUI
namespace verus::GUI
{
class Bars : public Widget
{
@ -21,4 +19,3 @@ namespace verus
};
VERUS_TYPEDEFS(Bars);
}
}

View File

@ -1,9 +1,7 @@
// Copyright (C) 2021-2022, Dmitry Maluev (dmaluev@gmail.com). All rights reserved.
#pragma once
namespace verus
{
namespace GUI
namespace verus::GUI
{
class Button : public Widget
{
@ -24,4 +22,3 @@ namespace verus
};
VERUS_TYPEDEFS(Button);
}
}

Some files were not shown because too many files have changed in this diff Show More