sead
Loading...
Searching...
No Matches
aglTextureSampler.h
Go to the documentation of this file.
1#pragma once
2
3#include <common/aglShaderLocation.h>
4#include <common/aglTextureData.h>
5#include <gfx/seadColor.h>
6#include <gfx/seadGraphics.h>
7#include <prim/seadBitFlag.h>
8
9namespace agl {
10
12{
13public:
15 TextureSampler(const TextureData& texture_data);
16 virtual ~TextureSampler();
17
18 const TextureData& getTextureData() const { return mTextureData; }
19 void applyTextureData(const TextureData& texture_data);
20
26 );
28
29 void setWrapX(TextureWrapType wrap_x);
30 void setWrapY(TextureWrapType wrap_y);
31 void setWrapZ(TextureWrapType wrap_z);
32
33 void setWrap(
34 TextureWrapType wrap_x,
35 TextureWrapType wrap_y,
36 TextureWrapType wrap_z
37 );
38
39 void setFilterMag(TextureFilterType filter_mag);
40 void setFilterMin(TextureFilterType filter_min);
41 void setFilterMip(TextureMipFilterType filter_mip);
42
43 void setFilter(
44 TextureFilterType filter_mag,
45 TextureFilterType filter_min,
46 TextureMipFilterType filter_mip
47 );
48
49 void setMaxAnisoRatio(TextureAnisoRatio max_aniso);
50
51 void setMipParam(f32 lod_min, f32 lod_max, f32 lod_bias);
52
53 void setDepthCompareEnable(bool enable);
55
56 void setBorderColor(f32 r, f32 g, f32 b, f32 a);
57 void setBorderColor(const sead::Color4f& color);
58
59 void setUnk1(u8 v) { _e9 = v; }
60 u8 getUnk1() const { return _e9; }
61
62 const GX2Texture& getTexture() const;
63
64 bool activate(const SamplerLocation& location, s32 = -1) const;
65
66private:
67 void applyTextureData_(const TextureData& texture_data);
68
69 void initRegs_() const;
70
71 void initTexture_() const;
72 void initWrap_() const;
73 void initFilter_() const;
74 void initMipParam_() const;
75 void initDepthComp_() const;
76 void initBorderColor_() const;
77
78private:
102 mutable bool mHasBorder;
104};
105static_assert(sizeof(TextureSampler) == 0x1A0, "agl::TextureSampler size mismatch");
106
107}
108
109#ifdef __cplusplus
110
111#include <common/aglTextureSampler.hpp>
112
113#endif // __cplusplus
Definition aglShaderLocation.h:127
Definition aglTextureData.h:11
Definition aglTextureSampler.h:12
void setFilterMin(TextureFilterType filter_min)
Definition aglTextureSampler.hpp:90
f32 mLODMin
Definition aglTextureSampler.h:87
void initBorderColor_() const
Definition aglTextureSampler.cpp:131
void setFilter(TextureFilterType filter_mag, TextureFilterType filter_min, TextureMipFilterType filter_mip)
Definition aglTextureSampler.hpp:104
void initFilter_() const
Definition aglTextureSampler.cpp:105
f32 mLODMax
Definition aglTextureSampler.h:88
TextureCompSel mCompB
Definition aglTextureSampler.h:94
const GX2Texture & getTexture() const
Definition aglTextureSampler.hpp:161
TextureCompSel mCompG
Definition aglTextureSampler.h:93
TextureData mTextureData
Definition aglTextureSampler.h:79
TextureCompSel mCompA
Definition aglTextureSampler.h:95
GX2Texture mGX2Texture
Definition aglTextureSampler.h:101
u8 _e9
Definition aglTextureSampler.h:97
const TextureData & getTextureData() const
Definition aglTextureSampler.h:18
TextureWrapType mWrapX
Definition aglTextureSampler.h:83
void setBorderColor(const sead::Color4f &color)
Definition aglTextureSampler.hpp:154
sead::BitFlag8 mFlag
Definition aglTextureSampler.h:103
TextureWrapType mWrapY
Definition aglTextureSampler.h:84
void setFilterMag(TextureFilterType filter_mag)
Definition aglTextureSampler.hpp:83
void setMipParam(f32 lod_min, f32 lod_max, f32 lod_bias)
Definition aglTextureSampler.hpp:124
void initMipParam_() const
Definition aglTextureSampler.cpp:121
bool mIsTextureSet
Definition aglTextureSampler.h:96
void setWrapX(TextureWrapType wrap_x)
Definition aglTextureSampler.hpp:49
void setTextureCompSel(TextureCompSel r, TextureCompSel g, TextureCompSel b, TextureCompSel a)
Definition aglTextureSampler.hpp:25
GX2Sampler mGX2Sampler
Definition aglTextureSampler.h:100
void initRegs_() const
Definition aglTextureSampler.cpp:53
TextureFilterType mFilterMag
Definition aglTextureSampler.h:80
bool mReplaceCompSel
Definition aglTextureSampler.h:91
void setWrapZ(TextureWrapType wrap_z)
Definition aglTextureSampler.hpp:63
void initTexture_() const
Definition aglTextureSampler.cpp:76
TextureAnisoRatio mMaxAniso
Definition aglTextureSampler.h:90
TextureMipFilterType mFilterMip
Definition aglTextureSampler.h:82
sead::Color4f mBorderColor
Definition aglTextureSampler.h:86
void setDepthCompareFunc(sead::Graphics::DepthFunc func)
Definition aglTextureSampler.hpp:140
void initDepthComp_() const
Definition aglTextureSampler.cpp:126
void setFilterMip(TextureMipFilterType filter_mip)
Definition aglTextureSampler.hpp:97
sead::Graphics::DepthFunc mDepthCompareFunc
Definition aglTextureSampler.h:99
void setWrap(TextureWrapType wrap_x, TextureWrapType wrap_y, TextureWrapType wrap_z)
Definition aglTextureSampler.hpp:70
void applyTextureData(const TextureData &texture_data)
Definition aglTextureSampler.hpp:6
TextureSampler()
Definition aglTextureSampler.cpp:5
bool mHasBorder
Definition aglTextureSampler.h:102
u8 getUnk1() const
Definition aglTextureSampler.h:60
void applyTextureData_(const TextureData &texture_data)
Definition aglTextureSampler.cpp:39
TextureFilterType mFilterMin
Definition aglTextureSampler.h:81
TextureWrapType mWrapZ
Definition aglTextureSampler.h:85
bool mDepthCompareEnable
Definition aglTextureSampler.h:98
void setMaxAnisoRatio(TextureAnisoRatio max_aniso)
Definition aglTextureSampler.hpp:117
void setBorderColor(f32 r, f32 g, f32 b, f32 a)
Definition aglTextureSampler.hpp:147
void setWrapY(TextureWrapType wrap_y)
Definition aglTextureSampler.hpp:56
TextureCompSel mCompR
Definition aglTextureSampler.h:92
f32 mLODBias
Definition aglTextureSampler.h:89
void setUnk1(u8 v)
Definition aglTextureSampler.h:59
void setDepthCompareEnable(bool enable)
Definition aglTextureSampler.hpp:133
TextureSampler(const TextureData &texture_data)
void resetTextureCompSel()
Definition aglTextureSampler.hpp:42
bool activate(const SamplerLocation &location, s32=-1) const
Definition aglTextureSampler.cpp:155
virtual ~TextureSampler()
Definition aglTextureSampler.cpp:35
void initWrap_() const
Definition aglTextureSampler.cpp:97
Definition seadGraphics.h:17
DepthFunc
Definition seadGraphics.h:44
Definition aglDisplayList.cpp:5
TextureAnisoRatio
Definition aglTextureEnum.h:120
TextureFilterType
Definition aglTextureEnum.h:105
TextureWrapType
Definition aglTextureEnum.h:130
TextureCompSel
Definition aglTextureEnum.h:92
TextureMipFilterType
Definition aglTextureEnum.h:112
Definition seadAssert.h:44
BitFlag< u8 > BitFlag8
Definition seadBitFlag.h:123
Definition seadColor.h:9