mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-09-10 21:28:32 +09:00
[Feat] (MG_State/TextureState): Add ITextureObject::GetAllSwizzleParams
This commit is contained in:
@@ -53,13 +53,13 @@ namespace MobileGL {
|
|||||||
TextureSwizzleParam TextureObjectBase::GetSwizzleParam(TextureSwizzleParam param) const {
|
TextureSwizzleParam TextureObjectBase::GetSwizzleParam(TextureSwizzleParam param) const {
|
||||||
switch (param) {
|
switch (param) {
|
||||||
case TextureSwizzleParam::Red:
|
case TextureSwizzleParam::Red:
|
||||||
return m_swizzleParams[0];
|
return m_swizzleParams.r();
|
||||||
case TextureSwizzleParam::Green:
|
case TextureSwizzleParam::Green:
|
||||||
return m_swizzleParams[1];
|
return m_swizzleParams.g();
|
||||||
case TextureSwizzleParam::Blue:
|
case TextureSwizzleParam::Blue:
|
||||||
return m_swizzleParams[2];
|
return m_swizzleParams.b();
|
||||||
case TextureSwizzleParam::Alpha:
|
case TextureSwizzleParam::Alpha:
|
||||||
return m_swizzleParams[3];
|
return m_swizzleParams.a();
|
||||||
default:
|
default:
|
||||||
MOBILEGL_ASSERT(false, "TextureObjectBase::GetSwizzleParam: Invalid TextureSwizzleParam: %d",
|
MOBILEGL_ASSERT(false, "TextureObjectBase::GetSwizzleParam: Invalid TextureSwizzleParam: %d",
|
||||||
static_cast<Int>(param));
|
static_cast<Int>(param));
|
||||||
@@ -67,19 +67,23 @@ namespace MobileGL {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const Vec4<TextureSwizzleParam>& TextureObjectBase::GetAllSwizzleParams() const {
|
||||||
|
return m_swizzleParams;
|
||||||
|
}
|
||||||
|
|
||||||
void TextureObjectBase::SetSwizzleParam(TextureSwizzleParam param, TextureSwizzleParam value) {
|
void TextureObjectBase::SetSwizzleParam(TextureSwizzleParam param, TextureSwizzleParam value) {
|
||||||
switch (param) {
|
switch (param) {
|
||||||
case TextureSwizzleParam::Red:
|
case TextureSwizzleParam::Red:
|
||||||
m_swizzleParams[0] = value;
|
m_swizzleParams.r() = value;
|
||||||
break;
|
break;
|
||||||
case TextureSwizzleParam::Green:
|
case TextureSwizzleParam::Green:
|
||||||
m_swizzleParams[1] = value;
|
m_swizzleParams.g() = value;
|
||||||
break;
|
break;
|
||||||
case TextureSwizzleParam::Blue:
|
case TextureSwizzleParam::Blue:
|
||||||
m_swizzleParams[2] = value;
|
m_swizzleParams.b() = value;
|
||||||
break;
|
break;
|
||||||
case TextureSwizzleParam::Alpha:
|
case TextureSwizzleParam::Alpha:
|
||||||
m_swizzleParams[3] = value;
|
m_swizzleParams.a() = value;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
MOBILEGL_ASSERT(false, "TextureObjectBase::SetSwizzleParam: Invalid TextureSwizzleParam: %d",
|
MOBILEGL_ASSERT(false, "TextureObjectBase::SetSwizzleParam: Invalid TextureSwizzleParam: %d",
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ namespace MobileGL {
|
|||||||
virtual void SetBorderColor(const FloatVec4& color) = 0;
|
virtual void SetBorderColor(const FloatVec4& color) = 0;
|
||||||
virtual TextureSwizzleParam GetSwizzleParam(TextureSwizzleParam param) const = 0;
|
virtual TextureSwizzleParam GetSwizzleParam(TextureSwizzleParam param) const = 0;
|
||||||
virtual void SetSwizzleParam(TextureSwizzleParam param, TextureSwizzleParam value) = 0;
|
virtual void SetSwizzleParam(TextureSwizzleParam param, TextureSwizzleParam value) = 0;
|
||||||
|
virtual const Vec4<TextureSwizzleParam>& GetAllSwizzleParams() const = 0;
|
||||||
virtual const UintVec2& GetLevelRange() const = 0;
|
virtual const UintVec2& GetLevelRange() const = 0;
|
||||||
virtual void SetBaseLevel(Uint baseLevel) = 0;
|
virtual void SetBaseLevel(Uint baseLevel) = 0;
|
||||||
virtual void SetMaxLevel(Uint maxLevel) = 0;
|
virtual void SetMaxLevel(Uint maxLevel) = 0;
|
||||||
@@ -48,14 +49,15 @@ namespace MobileGL {
|
|||||||
virtual ~TextureObjectBase() = default;
|
virtual ~TextureObjectBase() = default;
|
||||||
|
|
||||||
// Mipmap ops
|
// Mipmap ops
|
||||||
// Uint GetMipmapLevelCount() const = 0;
|
// Uint GetMipmapLevelCount() const = 0;
|
||||||
// const IntVec3 GetMipmapTexelSize(TextureUploadTarget target, Uint mipmapLevel) const = 0;
|
// const IntVec3 GetMipmapTexelSize(TextureUploadTarget target, Uint mipmapLevel) const =
|
||||||
// const SizeT GetMipmapByteSize(TextureUploadTarget target, Uint mipmapLevel) const = 0;
|
// 0; const SizeT GetMipmapByteSize(TextureUploadTarget target, Uint mipmapLevel) const =
|
||||||
// void AllocateStorage(TextureUploadTarget uploadTarget, Uint mipmapLevel, MipmapInput input) = 0;
|
// 0; void AllocateStorage(TextureUploadTarget uploadTarget, Uint mipmapLevel,
|
||||||
// void UpdateMipmapSubData(TextureUploadTarget uploadTarget, Uint mipmapLevel, DataPtr input) = 0;
|
// MipmapInput input) = 0; void UpdateMipmapSubData(TextureUploadTarget uploadTarget,
|
||||||
// void* MapMipmapData(TextureUploadTarget uploadTarget, Uint mipmapLevel) = 0;
|
// Uint mipmapLevel, DataPtr input) = 0; void* MapMipmapData(TextureUploadTarget
|
||||||
// void MarkStorageDirty(TextureUploadTarget uploadTarget, Uint mipmapLevel, bool dirty) = 0;
|
// uploadTarget, Uint mipmapLevel) = 0; void MarkStorageDirty(TextureUploadTarget
|
||||||
// bool IsStorageDirty(TextureUploadTarget uploadTarget, Uint mipmapLevel) const = 0;
|
// uploadTarget, Uint mipmapLevel, bool dirty) = 0; bool
|
||||||
|
// IsStorageDirty(TextureUploadTarget uploadTarget, Uint mipmapLevel) const = 0;
|
||||||
|
|
||||||
TextureInternalFormat GetFormat() const override;
|
TextureInternalFormat GetFormat() const override;
|
||||||
TextureTarget GetTarget() const override;
|
TextureTarget GetTarget() const override;
|
||||||
@@ -67,6 +69,7 @@ namespace MobileGL {
|
|||||||
const FloatVec4& GetBorderColor() const override;
|
const FloatVec4& GetBorderColor() const override;
|
||||||
void SetBorderColor(const FloatVec4& color) override;
|
void SetBorderColor(const FloatVec4& color) override;
|
||||||
TextureSwizzleParam GetSwizzleParam(TextureSwizzleParam param) const override;
|
TextureSwizzleParam GetSwizzleParam(TextureSwizzleParam param) const override;
|
||||||
|
const Vec4<TextureSwizzleParam>& GetAllSwizzleParams() const override;
|
||||||
void SetSwizzleParam(TextureSwizzleParam param, TextureSwizzleParam value) override;
|
void SetSwizzleParam(TextureSwizzleParam param, TextureSwizzleParam value) override;
|
||||||
const UintVec2& GetLevelRange() const override;
|
const UintVec2& GetLevelRange() const override;
|
||||||
void SetBaseLevel(Uint baseLevel) override;
|
void SetBaseLevel(Uint baseLevel) override;
|
||||||
@@ -78,14 +81,15 @@ namespace MobileGL {
|
|||||||
TextureInternalFormat m_internalFormat = TextureInternalFormat::Unknown;
|
TextureInternalFormat m_internalFormat = TextureInternalFormat::Unknown;
|
||||||
SharedPtr<SamplerObject> m_sampler = nullptr;
|
SharedPtr<SamplerObject> m_sampler = nullptr;
|
||||||
FloatVec4 m_borderColor = {0.0f, 0.0f, 0.0f, 0.0f};
|
FloatVec4 m_borderColor = {0.0f, 0.0f, 0.0f, 0.0f};
|
||||||
TextureSwizzleParam m_swizzleParams[4] = {TextureSwizzleParam::Red, TextureSwizzleParam::Green,
|
Vec4<TextureSwizzleParam> m_swizzleParams = {TextureSwizzleParam::Red, TextureSwizzleParam::Green,
|
||||||
TextureSwizzleParam::Blue, TextureSwizzleParam::Alpha};
|
TextureSwizzleParam::Blue, TextureSwizzleParam::Alpha};
|
||||||
UintVec2 m_levelRange = {0, 1000};
|
UintVec2 m_levelRange = {0, 1000};
|
||||||
};
|
};
|
||||||
|
|
||||||
class TextureObjectWithOneMipmap : public TextureObjectBase {
|
class TextureObjectWithOneMipmap : public TextureObjectBase {
|
||||||
public:
|
public:
|
||||||
TextureObjectWithOneMipmap(TextureTarget target, Uint externalIndex): TextureObjectBase(target, externalIndex) {}
|
TextureObjectWithOneMipmap(TextureTarget target, Uint externalIndex, Bool isDefaultTexture)
|
||||||
|
: TextureObjectBase(target, externalIndex, isDefaultTexture) {}
|
||||||
virtual ~TextureObjectWithOneMipmap() = default;
|
virtual ~TextureObjectWithOneMipmap() = default;
|
||||||
|
|
||||||
Uint GetMipmapLevelCount() const override;
|
Uint GetMipmapLevelCount() const override;
|
||||||
|
|||||||
Reference in New Issue
Block a user