2#include "../Examples.hpp"
39 const unsigned* masks,
unsigned count,
bool solo =
false);
40template <
typename T,
typename Mask,
size_t N>
42 const Mask (&masks)[N],
bool solo =
false)
44 unsigned bits =
static_cast<unsigned>(value);
46 for (
size_t i = 0; i < N; ++i)
47 maskBits[i] =
static_cast<unsigned>(masks[i]);
49 value =
static_cast<T
>(bits);
55 const char*
const* labels,
const unsigned* masks,
unsigned count);
56template <
typename T,
typename Mask,
size_t N>
58 const char* (&labels)[N],
const Mask (&masks)[N])
60 unsigned bits =
static_cast<unsigned>(value);
62 for (
size_t i = 0; i < N; ++i)
63 maskBits[i] =
static_cast<unsigned>(masks[i]);
65 value =
static_cast<T
>(bits);
#define GLOBAL_ALLOC
Definition Allocator.hpp:240
#define ENUM_NAME_CONV_BEGIN(T)
Defines convince to_string() method and format_as() [fmt] for the respective enum class Example usage...
Definition Enums.hpp:82
#define ENUM_NAME(E)
Definition Enums.hpp:93
FImportedMesh Examples_MakePlaneMesh(float extent, float y=0.0f, Allocator *alloc=GLOBAL_ALLOC)
Definition Examples.cpp:231
bool Examples_RendererFlagsControls(ExampleInputState &input, ExampleRenderer renderer, RendererConfig &cfg)
Definition Examples.cpp:91
constexpr bool IsProgressivePT(ExampleRenderer renderer)
Definition Examples.hpp:30
FImportedMesh Examples_MakeSphereMesh(float radius, uint32_t segments=32, uint32_t rings=16, Allocator *alloc=GLOBAL_ALLOC)
Definition Examples.cpp:324
void Example_BuildExampleProgressivePathTracerRenderGraph(Renderer *renderer, RendererUBO *globals, RendererResources &gpu, RendererConfig &cfg, RendererOutputs &out)
Definition Examples.cpp:400
bool Examples_RendererSwitchButton(ExampleInputState &input, ExampleRenderer ¤tRenderer)
Definition Examples.cpp:9
ExampleRenderer
Definition Examples.hpp:5
void Example_BuildExampleRasterRenderGraph(Renderer *renderer, RendererUBO *globals, RendererResources &gpu, RendererConfig &cfg, RendererOutputs &out)
Definition Examples.cpp:390
bool Examples_BitmaskCycleButton(ExampleInputState &input, StringView label, unsigned &value, const char *const *labels, const unsigned *masks, unsigned count)
Definition Examples.cpp:52
constexpr bool IsRealtimePT(ExampleRenderer renderer)
Definition Examples.hpp:26
constexpr bool IsRaster(ExampleRenderer renderer)
Definition Examples.hpp:18
constexpr bool IsPathTracer(ExampleRenderer renderer)
Definition Examples.hpp:22
ResourceHandle Examples_BuildTonemappingPass(Renderer *renderer, RendererUBO const *globals, RendererOutputs const &outputs, bool isPresent)
Definition Examples.cpp:161
void Example_BuildExampleRealtimePathtracerRenderGraph(Renderer *renderer, RendererUBO *globals, RendererResources &gpu, RendererConfig &cfg, RendererOutputs &out)
Definition Examples.cpp:406
FImportedMesh Examples_MakeBoxMesh(float size, Allocator *alloc=GLOBAL_ALLOC)
Definition Examples.cpp:263
bool Examples_BitmaskOptionPicker(ExampleInputState &input, unsigned &value, const char *const *labels, const unsigned *masks, unsigned count, bool solo=false)
Definition Examples.cpp:21
void Example_BuildExampleRenderer(ExampleRenderer renderer, Renderer *r, RendererUBO *globals, RendererResources &gpu, RendererConfig &cfg, RendererOutputs &out)
Definition Examples.cpp:412
Allocator interface (noexcept)
Definition Allocator.hpp:29
Renderer implementing a Frame Graph system with automatic resource tracking and synchronization.
Definition Renderer.hpp:377
std::basic_string_view< char > StringView
Alias for std::basic_string_view<char>
Definition Container.hpp:56
Handle ResourceHandle
Definition Renderer.hpp:22
Definition Renderer.hpp:122
Definition Renderer.hpp:310
Definition Renderer.hpp:159
Definition Renderer.hpp:11