Foray Library
rapid prototyping framework for crossplatform development of vulkan hardware ray tracing applications
Loading...
Searching...
No Matches
foray_basics.hpp
Go to the documentation of this file.
1#pragma once
2#include <memory>
3#include <stdint.h>
4#include <string>
5#include <string_view>
6
7#ifndef NDEBUG
8#define FORAY_DEBUG 1
9#endif
10
11namespace foray {
13 using fp32_t = float;
15 using fp64_t = double;
16
19 {
20 public:
21 inline NoMoveDefaults() = default;
22 NoMoveDefaults(const NoMoveDefaults& other) = delete;
23 NoMoveDefaults(NoMoveDefaults&& other) = default;
24 NoMoveDefaults& operator=(const NoMoveDefaults& other) = delete;
25 };
26
29 {
30 protected:
31 virtual void __makeMePolymorphic() {}
32 };
33
35 inline constexpr uint32_t INFLIGHT_FRAME_COUNT = 2;
36} // namespace foray
37
39#define FORAY_GETTER_V(member) \
40 inline auto Get##member() const \
41 { \
42 return m##member; \
43 }
45#define FORAY_SETTER_V(member) \
46 template <typename TIn> \
47 inline auto& Set##member(TIn value) \
48 { \
49 m##member = value; \
50 return *this; \
51 }
52
54#define FORAY_GETTER_MR(member) \
55 inline auto& Get##member() \
56 { \
57 return m##member; \
58 }
60#define FORAY_GETTER_CR(member) \
61 inline const auto& Get##member() const \
62 { \
63 return m##member; \
64 }
66#define FORAY_SETTER_R(member) \
67 template <typename TIn> \
68 inline auto& Set##member(const TIn& value) \
69 { \
70 m##member = value; \
71 return *this; \
72 }
73
75#define FORAY_GETTER_R(member) \
76 FORAY_GETTER_MR(member) \
77 FORAY_GETTER_CR(member)
78
79
81#define FORAY_PROPERTY_V(member) \
82 FORAY_GETTER_V(member) \
83 FORAY_SETTER_V(member)
84
86#define FORAY_PROPERTY_R(member) \
87 FORAY_GETTER_MR(member) \
88 FORAY_GETTER_CR(member) \
89 FORAY_SETTER_R(member)
Simple types for supressing automatic definition of duplicating move constructors & operator.
Definition foray_basics.hpp:19
NoMoveDefaults(NoMoveDefaults &&other)=default
NoMoveDefaults(const NoMoveDefaults &other)=delete
NoMoveDefaults & operator=(const NoMoveDefaults &other)=delete
Simple type for forcing a type to be polymorphic.
Definition foray_basics.hpp:29
virtual void __makeMePolymorphic()
Definition foray_basics.hpp:31
Definition foray_api.hpp:19
constexpr uint32_t INFLIGHT_FRAME_COUNT
Inflight frame count is the amount of frames 'in flight' aka frames recorded on the host before waiti...
Definition foray_basics.hpp:35
float fp32_t
stdint.h style 32 bit floating point type alias (float)
Definition foray_basics.hpp:13
double fp64_t
stdint.h style 64 bit floating point type alias (double)
Definition foray_basics.hpp:15