3#include <common/aglTextureEnum.h>
4#include <math/seadMathCalcCommon.h>
22 u32 getWidth(s32 mip_level = 0)
const {
return sead::Mathi::max(mSurface.width >> mip_level, mMinWidth); }
23 u32 getHeight(s32 mip_level = 0)
const {
return sead::Mathi::max(mSurface.height >> mip_level, mMinHeight); }
27 u32 getSliceNum(s32 mip_level = 0)
const {
return sead::Mathi::max(mSurface.depth >> mip_level, mMinSlice); }
35 void setMipPtr(
void* ptr) { mSurface.mipPtr = ptr; }
58 initialize_(cTextureType_2D, format, width, height, 1, mip_level_num, cMultiSampleType_1x);
63 initialize_(cTextureType_3D, format, width, height, slice_num, mip_level_num, cMultiSampleType_1x);
68 initialize_(cTextureType_CubeMap, format, width, height, 6, mip_level_num, cMultiSampleType_1x);
73 initialize_(cTextureType_CubeMap, format, width, height, array_num * 6, mip_level_num, cMultiSampleType_1x);
78 initialize_(cTextureType_2D_Array, format, width, height, array_num, mip_level_num, cMultiSampleType_1x);
83 initialize_(cTextureType_2D_MSAA, format, width, height, 1, 1, multi_sample_type);
94 void copyTo_(
const TextureData* dst, s32 dst_slice, s32 dst_mip_level, s32 src_slice, s32 src_mip_level,
bool restore_state)
const;
99 copyTo_(dst, slice, mip_level, slice, mip_level,
false);
102 void copyTo(
const TextureData* dst, s32 dst_slice, s32 dst_mip_level, s32 src_slice, s32 src_mip_level)
const
104 copyTo_(dst, dst_slice, dst_mip_level, src_slice, src_mip_level,
false);
128static_assert(
sizeof(
TextureData) == 0x9C,
"agl::TextureData size mismatch");
134 mSurface.dim == rhs.mSurface.dim &&
135 mSurface.width == rhs.mSurface.width &&
136 mSurface.height == rhs.mSurface.height &&
137 mSurface.depth == rhs.mSurface.depth &&
138 mSurface.numMips == rhs.mSurface.numMips &&
139 mSurface.format == rhs.mSurface.format &&
140 mSurface.swizzle == rhs.mSurface.swizzle &&
141 mSurface.tileMode == rhs.mSurface.tileMode &&
142 mSurface.aa == rhs.mSurface.aa
Definition aglTextureData.h:11
u32 getWidth(s32 mip_level=0) const
Definition aglTextureData.h:22
u32 getHeight(s32 mip_level=0) const
Definition aglTextureData.h:23
TextureType getTextureType() const
Definition aglTextureData.h:20
void initializeSize_(u32 width, u32 height, u32 slice_num)
Definition aglTextureData.cpp:106
u32 mMinWidth
Definition aglTextureData.h:119
GX2Surface mSurface
Definition aglTextureData.h:118
void setImagePtr(void *ptr)
Definition aglTextureData.h:30
void setMipPtr(void *ptr)
Definition aglTextureData.h:35
void copyTo(const TextureData *dst, s32 slice, s32 mip_level) const
Definition aglTextureData.h:97
const GX2Surface & getSurface() const
Definition aglTextureData.h:41
MultiSampleType getMultiSampleType() const
Definition aglTextureData.h:25
void initialize(TextureFormat format, u32 width, u32 height, u32 mip_level_num)
Definition aglTextureData.h:56
void copyToAll(const TextureData *dst) const
Definition aglTextureData.cpp:65
void copyTo_(const TextureData *dst, s32 dst_slice, s32 dst_mip_level, s32 src_slice, s32 src_mip_level, bool restore_state) const
Definition aglTextureData.cpp:38
void * getImagePtr() const
Definition aglTextureData.h:29
u32 mMinSlice
Definition aglTextureData.h:121
void copyTo(const TextureData *dst, s32 dst_slice, s32 dst_mip_level, s32 src_slice, s32 src_mip_level) const
Definition aglTextureData.h:102
u32 getMipByteSize() const
Definition aglTextureData.h:37
TextureCompSel mCompA
Definition aglTextureData.h:126
void invalidateGPUCache() const
Definition aglTextureData.cpp:29
TextureCompSel mCompB
Definition aglTextureData.h:125
TextureCompSel getComponentA() const
Definition aglTextureData.h:46
virtual ~TextureData()
Definition aglTextureData.h:14
u32 mMinHeight
Definition aglTextureData.h:120
void initializeCubeMapArray(TextureFormat format, u32 width, u32 height, u32 array_num, u32 mip_level_num)
Definition aglTextureData.h:71
void initializeCubeMap(TextureFormat format, u32 width, u32 height, u32 mip_level_num)
Definition aglTextureData.h:66
u32 getMipLevelNum() const
Definition aglTextureData.h:86
TextureFormat mFormat
Definition aglTextureData.h:117
void setMipLevelNum(u32 mip_level_num)
Definition aglTextureData.cpp:23
void initialize3D(TextureFormat format, u32 width, u32 height, u32 slice_num, u32 mip_level_num)
Definition aglTextureData.h:61
TextureFormat getTextureFormat() const
Definition aglTextureData.h:19
u32 mMaxMipLevel
Definition aglTextureData.h:122
void setTextureCompSel(TextureCompSel r, TextureCompSel g, TextureCompSel b, TextureCompSel a)
Definition aglTextureData.h:48
TextureCompSel getComponentB() const
Definition aglTextureData.h:45
TextureCompSel mCompG
Definition aglTextureData.h:124
u32 getImageByteSize() const
Definition aglTextureData.h:32
TextureCompSel getComponentG() const
Definition aglTextureData.h:44
bool operator==(const TextureData &rhs) const
Definition aglTextureData.h:131
bool operator!=(const TextureData &rhs) const
Definition aglTextureData.h:17
void setSurfaceSwizzle(u32 swizzle)
Definition aglTextureData.h:89
void * getMipPtr() const
Definition aglTextureData.h:34
u32 getAlignment() const
Definition aglTextureData.h:39
TextureCompSel getComponentR() const
Definition aglTextureData.h:43
void initialize_(TextureType type, TextureFormat format, u32 width, u32 height, u32 slice_num, u32 mip_level_num, MultiSampleType multi_sample_type)
Definition aglTextureData.cpp:77
TextureCompSel mCompR
Definition aglTextureData.h:123
TextureData()
Definition aglTextureData.cpp:10
void initializeMultiSample(TextureFormat format, u32 width, u32 height, MultiSampleType multi_sample_type)
Definition aglTextureData.h:81
u32 getSliceNum(s32 mip_level=0) const
Definition aglTextureData.h:27
void initializeFromSurface(const GX2Surface &surface)
Definition aglTextureData.cpp:143
void initializeArray(TextureFormat format, u32 width, u32 height, u32 array_num, u32 mip_level_num)
Definition aglTextureData.h:76
Definition aglDisplayList.cpp:5
TextureFormat
Definition aglTextureEnum.h:10
MultiSampleType
Definition aglTextureEnum.h:139
TextureCompSel
Definition aglTextureEnum.h:92
TextureType
Definition aglTextureEnum.h:77