Photon Engine 2.0.0-beta
A physically based renderer.
|
#include <PictureData.h>
Public Member Functions | |
PictureData () | |
Creates an empty picture. | |
PictureData (math::Vector2S sizePx, std::size_t numPicComponents, EPicturePixelComponent componentType) | |
Creates a picture with allocated buffer. Use setPixels(const PixelData*, std::size_t) to supply pixel data. | |
template<typename PixelData > | |
PictureData (math::Vector2S sizePx, std::size_t numPicComponents, EPicturePixelComponent componentType, const PixelData *pixelData, std::size_t pixelDataSize) | |
Creates a picture filled with pixel data. | |
PictureData (PictureData &&other) | |
const math::Vector2S & | getSizePx () const |
std::size_t | getWidthPx () const |
std::size_t | getHeightPx () const |
std::size_t | numComponents () const |
EPicturePixelComponent | getComponentType () const |
TSpan< std::byte > | getBytes () |
TSpanView< std::byte > | getBytes () const |
bool | isEmpty () const |
template<typename PixelData > | |
void | setPixels (const PixelData *pixelData, std::size_t numPixelDataElements) |
Set pixel data directly. This method also supports packed pixel data. For example, if RGBA is packed into an int32 , PixelData would be int32 which can contain 4 components. It is up to the user to provide suitably-sized pixelData . | |
template<typename FrameComponent , std::size_t N> | |
TFrame< FrameComponent, N > | toFrame () const |
PictureData & | operator= (PictureData &&rhs) |
Raw data storage of a picture. Has limited ability on pixel data manipulation. It is recommended to convert to TFrame
via toFrame()
for operations on pixel data.
|
inline |
Creates an empty picture.
|
inline |
Creates a picture with allocated buffer. Use setPixels(const PixelData*, std::size_t) to supply pixel data.
|
inline |
Creates a picture filled with pixel data.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Set pixel data directly. This method also supports packed pixel data. For example, if RGBA is packed into an int32
, PixelData
would be int32
which can contain 4 components. It is up to the user to provide suitably-sized pixelData
.
|
inline |