Skip to content

Commit

Permalink
Time to rewrite the entire shader system....
Browse files Browse the repository at this point in the history
  • Loading branch information
PazerOP committed May 30, 2019
1 parent bc125d7 commit 84bc33e
Show file tree
Hide file tree
Showing 46 changed files with 356 additions and 2,055 deletions.
1 change: 1 addition & 0 deletions TF2VulkanUtil/TF2VulkanUtil.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@
<ClInclude Include="include\TF2Vulkan\Util\AutoInit.h" />
<ClInclude Include="include\TF2Vulkan\Util\Buffer.h" />
<ClInclude Include="include\TF2Vulkan\Util\Checked.h" />
<ClInclude Include="include\TF2Vulkan\Util\CollapsingStruct.h" />
<ClInclude Include="include\TF2Vulkan\Util\color.h" />
<ClInclude Include="include\TF2Vulkan\Util\ConstexprCRC.h" />
<ClInclude Include="include\TF2Vulkan\Util\ConstexprRandom.h" />
Expand Down
14 changes: 14 additions & 0 deletions TF2VulkanUtil/include/TF2Vulkan/Util/CollapsingStruct.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#pragma once

namespace Util
{
template<typename TBase1>
struct CollapsingStruct : TBase1
{
};

template<typename TBase1, typename... TBaseOthers>
struct CollapsingStruct : TBase1, CollapsingStruct<TBaseOthers...>
{
};
}
4 changes: 2 additions & 2 deletions TF2VulkanUtil/include/TF2Vulkan/Util/Macros.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

#include <tier0/basetypes.h>

#define ENSURE(condition) { if (!(condition)) ::Util::EnsureConditionFailed(_T(#condition), __FUNCSIG__, __FILE__, __LINE__); }
#define ENSURE(condition) { if (!(condition)) ::Util::EnsureConditionFailed(V_STRINGIFY(#condition), __FUNCSIG__, __FILE__, __LINE__); }

#define ASSERT_MAIN_THREAD() ENSURE(::Util::IsMainThread())

Expand Down Expand Up @@ -49,7 +49,7 @@ namespace Util
#define ALL_STATIC_TYPE_INFO(type) \
::Util::StaticTypeInfo{ sizeof(type), 0, alignof(type) }

#define TF2VULKAN_ENABLE_FUNCTION_LOGGING 1
//#define TF2VULKAN_ENABLE_FUNCTION_LOGGING 1
#define TF2VULKAN_LOCAL_ENABLE_FUNCTION_LOGGING true

#if defined(TF2VULKAN_ENABLE_FUNCTION_LOGGING)
Expand Down
21 changes: 21 additions & 0 deletions TF2VulkanUtil/include/TF2Vulkan/Util/std_charconv.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

#include <charconv>
#include <string_view>
#include <optional>

namespace Util{ namespace charconv
{
Expand Down Expand Up @@ -37,4 +38,24 @@ namespace Util{ namespace charconv
{
return from_chars_result(from_chars(sv.data(), sv.data() + sv.size(), value, base), sv);
}

template<typename T, typename = std::enable_if_t<std::is_floating_point_v<T>>>
std::optional<T> from_chars_v(const std::string_view & sv, std::chars_format fmt = std::chars_format::general)
{
T temp{};
if (from_chars(sv, temp, fmt))
return temp;

return std::nullopt;
}

template<typename T, typename = std::enable_if_t<std::is_integral_v<T>>>
std::optional<T> from_chars_v(const std::string_view & sv, int base = 10)
{
T temp{};
if (from_chars(sv, temp, base))
return temp;

return std::nullopt;
}
} }
32 changes: 20 additions & 12 deletions stdshader_vulkan/src/shaders/BaseShaderNext.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,11 @@ namespace TF2Vulkan{ namespace Shaders
void InitShader(IShaderNextFactory& factory);

protected:
void InitIntParam(int param, IMaterialVar** params, int defaultVal) const;
void InitFloatParam(int param, IMaterialVar** params, float defaultVal) const;
void InitVecParam(int param, IMaterialVar** params, float defaultValX, float defaultValY) const;
void InitVecParam(int param, IMaterialVar** params, float defaultValX, float defaultValY, float defaultValZ) const;
void InitVecParam(int param, IMaterialVar** params, float defaultValX, float defaultValY, float defaultValZ, float defaultValW) const;
[[deprecated]] void InitIntParam(int param, IMaterialVar** params, int defaultVal) const;
[[deprecated]] void InitFloatParam(int param, IMaterialVar** params, float defaultVal) const;
[[deprecated]] void InitVecParam(int param, IMaterialVar** params, float defaultValX, float defaultValY) const;
[[deprecated]] void InitVecParam(int param, IMaterialVar** params, float defaultValX, float defaultValY, float defaultValZ) const;
[[deprecated]] void InitVecParam(int param, IMaterialVar** params, float defaultValX, float defaultValY, float defaultValZ, float defaultValW) const;
virtual void OnInitShader(IShaderNextFactory& instanceMgr) = 0;

void LoadLights(TF2Vulkan::Shaders::ShaderDataCommon& data) const;
Expand Down Expand Up @@ -80,28 +80,36 @@ namespace TF2Vulkan{ namespace Shaders
struct DefaultInstanceRegister
{
T m_Instance;
DefaultInstanceRegister()

template<typename... TArgs>
DefaultInstanceRegister(TArgs&&... args) :
m_Instance(std::move(args)...)
{
GetShaderDLL()->InsertShader(&m_Instance);
}

bool IsRegistered() { return m_Instance.GetNumParams(); }
};

struct EmptyParams {};

template<typename T, typename TParams = EmptyParams, ShaderFlags_t FLAGS = ShaderFlags_t(0)>
template<typename T, typename TParams = ShaderParams<>, ShaderFlags_t FLAGS = ShaderFlags_t(0)>
class ShaderNext : public TParams, public BaseShaderNext
{
protected:
static_assert(is_shader_params_v<TParams>);

using BaseClass = BaseShaderNext;
using Params = TParams;

public:
ShaderNext() : BaseShaderNext(GetAsShaderParams(InitParamIndices(GetParamsObj())), GetShaderParamCount<TParams>())
ShaderNext() : BaseShaderNext(TParams::ParamsBase(), TParams::ParamsCount)
{
}

TParams& GetParamsObj() { return *this; }
const TParams& GetParamsObj() const { return *this; }
void InitShaderParams(IMaterialVar** ppParams, const char* pMaterialName) override
{
BaseClass::InitShaderParams(ppParams, pMaterialName);
TParams::InitParamGroups(ppParams);
}

using InstanceRegister = DefaultInstanceRegister<T>;

Expand Down
52 changes: 0 additions & 52 deletions stdshader_vulkan/src/shaders/BlurFilter.cpp

This file was deleted.

101 changes: 0 additions & 101 deletions stdshader_vulkan/src/shaders/BufferClearObeyStencil.cpp

This file was deleted.

49 changes: 0 additions & 49 deletions stdshader_vulkan/src/shaders/Cable.cpp

This file was deleted.

33 changes: 0 additions & 33 deletions stdshader_vulkan/src/shaders/Compositor.cpp

This file was deleted.

Loading

0 comments on commit 84bc33e

Please sign in to comment.