Photon Engine 2.0.0-beta
A physically based renderer.
Loading...
Searching...
No Matches
Image.h
Go to the documentation of this file.
1#pragma once
2
4#include "Math/TVector3.h"
7#include "SDL/sdl_interface.h"
9
10#include <Common/config.h>
11#include <Common/primitive_type.h>
12
13#include <memory>
14
15namespace ph { class CookingContext; }
16
17namespace ph
18{
19
20class Image : public TSdlResourceBase<ESdlTypeCategory::Ref_Image>
21{
22public:
24
25 inline static constexpr auto ARRAY_SIZE = ArrayType::NUM_ELEMENTS;
26
27public:
33 virtual std::shared_ptr<TTexture<Image::ArrayType>> genNumericTexture(
34 const CookingContext& ctx) = 0;
35
41 virtual std::shared_ptr<TTexture<math::Spectrum>> genColorTexture(
42 const CookingContext& ctx) = 0;
43
44public:
46 {
47 ClassType clazz("image");
48 clazz.docName("Image");
49 clazz.description("A block of data.");
50 return clazz;
51 }
52};
53
54}// end namespace ph
Information about the world being cooked.
Definition CookingContext.h:24
Definition Image.h:21
virtual std::shared_ptr< TTexture< Image::ArrayType > > genNumericTexture(const CookingContext &ctx)=0
virtual std::shared_ptr< TTexture< math::Spectrum > > genColorTexture(const CookingContext &ctx)=0
static constexpr auto ARRAY_SIZE
Definition Image.h:25
PH_DEFINE_SDL_CLASS(TSdlOwnerClass< Image >)
Definition Image.h:45
SDL binding type for a canonical SDL resource class.
Definition TSdlOwnerClass.h:23
A convenient ISdlResource with core requirements implemented. This class is similar to SdlResourceBas...
Definition TSdlResourceBase.h:16
static constexpr auto NUM_ELEMENTS
Definition TArithmeticArrayBase.h:36
Definition TArithmeticArray.h:13
The root for all renderer implementations.
Definition EEngineProject.h:6