Photon Common Library 2.0.0-beta
A physically based renderer.
|
Low-level memory allocation routines. More...
#include "Common/assertion.h"
#include <cstddef>
#include <memory>
#include <array>
#include "Common/memory.ipp"
Go to the source code of this file.
Classes | |
struct | ph::detail::AlignedMemoryDeleter |
struct | ph::TAlignedArray< T, N, ALIGNMENT_IN_BYTES > |
Aligned version of std::array . This type shares the same traits as std::array . [class.mem] section 20 (https://timsong-cpp.github.io/cppwp/n3337/class.mem#20) supports that the alignment can pass through to the inherited std::array as long as the derived type is also a standard-layout type. More... | |
Namespaces | |
namespace | ph |
The root for all renderer implementations. | |
namespace | ph::detail |
Implementation detail mainly for internal usages. | |
Typedefs | |
template<typename T > | |
using | ph::TAlignedMemoryUniquePtr = std::unique_ptr<T, detail::AlignedMemoryDeleter> |
Functions | |
void * | ph::detail::allocate_aligned_memory (std::size_t numBytes, std::size_t alignmentInBytes) |
void | ph::detail::free_aligned_memory (void *ptr) |
template<typename T = void> | |
auto | ph::make_aligned_memory (std::size_t numBytes, std::size_t alignmentInBytes) -> TAlignedMemoryUniquePtr< T > |
Create an aligned memory resource. | |
template<typename T > | |
void | ph::from_bytes (const std::byte *srcBytes, T *out_dstValue) |
template<typename T > | |
void | ph::to_bytes (const T &srcValue, std::byte *out_dstBytes) |
template<std::size_t N> | |
void | ph::reverse_bytes (std::byte *bytes) |
template<typename T > | |
T * | ph::start_implicit_lifetime_as (void *ptr) noexcept |
Wrapper for std::start_lifetime_as() . Primarily a fallback when C++23 is not available. This function may touch the storage. For cv overloads or one that does not touch the storage, use std::start_lifetime_as() (requires C++23). | |
template<typename T > | |
T * | ph::start_implicit_lifetime_as_array (void *ptr, std::size_t numArrayElements) noexcept |
Wrapper for std::start_lifetime_as_array() . Primarily a fallback when C++23 is not available. This function may touch the storage. For cv overloads or one that does not touch the storage, use std::start_lifetime_as_array() (requires C++23). | |
Low-level memory allocation routines.