Saga3D API Documentation  1.0-RC4
STexture.h
Go to the documentation of this file.
1 #ifndef __STEXTURE_H_INCLUDED__
2 #define __STEXTURE_H_INCLUDED__
3 
4 #include "ID.h"
5 #include "GraphicsConstants.h"
6 #include "SGPUResource.h"
7 #include "EFilterTypes.h"
8 #include "EMipMapModes.h"
9 #include "ETextureTypes.h"
10 #include "ESamplerAddressModes.h"
11 #include "EPixelFormat.h"
12 #include <cstdint>
13 #include <memory>
14 #include <vector>
15 #include <array>
16 
17 namespace saga
18 {
19 namespace video
20 {
22  {
23  void* Data = nullptr;
24  size_t Size = 0;
25  };
26 
27 
28  struct STexture : public SGPUResource
29  {
39  int Width = 0;
40  int Height = 0;
41  bool IsRenderTarget = false;
42  bool IsDepthAttachment = false;
43  int MipLevels = 1;
44  int SampleCount = 1;
45  float MinLOD = 0.f;
46  float MaxLOD = 0.f;
47  std::uint32_t MaxAnisotropy;
48  std::array<std::array<STextureContent, MAX_MIPMAPS>, MAX_IMAGE_LAYERS> Contents;
49  const void* getData(int face = 0, int level = 0) const { return Contents.at(face).at(level).Data; }
50  };
51 
53 
54 } // namespace scene
55 } // namespace saga
56 
57 #endif // __STEXTURE_H_INCLUDED__
58 
saga::video::STexture::MagFilter
E_FILTER_TYPE MagFilter
Definition: STexture.h:34
saga::video::E_TEXTURE_TYPE
E_TEXTURE_TYPE
Enumeration for all primitive types there are.
Definition: ETextureTypes.h:10
saga::video::STexture::MinLOD
float MinLOD
Definition: STexture.h:45
saga::video::STextureContent
Definition: STexture.h:21
saga::video::STextureContent::Size
size_t Size
Definition: STexture.h:24
saga::video::STexture::AddressModeU
E_SAMPLER_ADDRESS_MODE AddressModeU
Definition: STexture.h:36
EPixelFormat.h
ETextureTypes.h
saga::video::E_TEXTURE_TYPE::TEXTURE_2D
@ TEXTURE_2D
2D texture.
saga::video::E_SAMPLER_ADDRESS_MODE
E_SAMPLER_ADDRESS_MODE
Definition: ESamplerAddressModes.h:9
saga::video::STexture::IsRenderTarget
bool IsRenderTarget
Definition: STexture.h:41
saga::video::E_FILTER_TYPE
E_FILTER_TYPE
Definition: EFilterTypes.h:9
saga::video::SGPUResource
Definition: SGPUResource.h:11
EMipMapModes.h
saga::video::STexture::AddressModeV
E_SAMPLER_ADDRESS_MODE AddressModeV
Definition: STexture.h:37
saga::video::STexture::Type
E_TEXTURE_TYPE Type
Definition: STexture.h:31
saga::video::STexture::SampleCount
int SampleCount
Definition: STexture.h:44
SGPUResource.h
saga::INVALID_ID
constexpr auto INVALID_ID
Definition: ID.h:9
saga::ID
std::uint32_t ID
Type for node ID.
Definition: ID.h:11
saga::video::E_FILTER_TYPE::LINEAR
@ LINEAR
saga::video::E_PIXEL_FORMAT::RGBA8
@ RGBA8
Vulkan swapchain format.
saga::video::TextureHandle
SGPUResource::HandleType TextureHandle
Definition: STexture.h:52
GraphicsConstants.h
ID.h
saga::video::STexture::MaxAnisotropy
std::uint32_t MaxAnisotropy
Definition: STexture.h:47
saga::video::SGPUResource::HandleType
std::uint32_t HandleType
Definition: SGPUResource.h:13
saga::video::STexture::Height
int Height
Definition: STexture.h:40
saga::video::MAX_IMAGE_LAYERS
constexpr auto MAX_IMAGE_LAYERS
Definition: GraphicsConstants.h:10
saga::video::STexture::Width
int Width
Definition: STexture.h:39
saga::video::STexture::AddressModeW
E_SAMPLER_ADDRESS_MODE AddressModeW
Definition: STexture.h:38
saga::video::STexture::MinFilter
E_FILTER_TYPE MinFilter
Definition: STexture.h:33
saga::video::E_SAMPLER_ADDRESS_MODE::CLAMP_TO_EDGE
@ CLAMP_TO_EDGE
saga::video::STexture::TextureID
ID TextureID
Definition: STexture.h:30
saga::video::STexture::MipLevels
int MipLevels
Definition: STexture.h:43
saga::video::STexture::Contents
std::array< std::array< STextureContent, MAX_MIPMAPS >, MAX_IMAGE_LAYERS > Contents
Definition: STexture.h:48
saga::video::E_PIXEL_FORMAT
E_PIXEL_FORMAT
Enumeration for all primitive types there are.
Definition: EPixelFormat.h:10
saga::video::E_MIPMAP_MODE
E_MIPMAP_MODE
Definition: EMipMapModes.h:9
saga::video::STextureContent::Data
void * Data
Definition: STexture.h:23
EFilterTypes.h
saga::video::STexture::MaxLOD
float MaxLOD
Definition: STexture.h:46
ESamplerAddressModes.h
saga::video::STexture
Definition: STexture.h:28
saga::video::STexture::MipMapMode
E_MIPMAP_MODE MipMapMode
Definition: STexture.h:35
saga::video::STexture::getData
const void * getData(int face=0, int level=0) const
Definition: STexture.h:49
saga::video::STexture::Format
E_PIXEL_FORMAT Format
Definition: STexture.h:32
saga
Definition: aabbox3d.h:11
saga::video::STexture::IsDepthAttachment
bool IsDepthAttachment
Definition: STexture.h:42