[Feat] (MG_State): Add external index getter for each object.

This commit is contained in:
BZLZHH
2025-11-01 11:18:35 +08:00
parent 8da681c720
commit 1269bc76f3
17 changed files with 61 additions and 33 deletions
@@ -4,8 +4,8 @@
namespace MobileGL {
namespace MG_State {
namespace GLState {
BufferObject::BufferObject()
: m_id(0), m_size(0), m_usage(BufferUsage::StaticDraw), m_isMapped(false),
BufferObject::BufferObject(Uint externalIndex)
: m_externalIndex(externalIndex), m_size(0), m_usage(BufferUsage::StaticDraw), m_isMapped(false),
m_mappingAccess(BufferMappingAccessBit::Null), m_dirtyRange({0, 0}), m_mappedRange({0, 0}),
m_dataPtr(MakeShared<Data>()) {}
@@ -156,6 +156,10 @@ namespace MobileGL {
Flags<BufferMappingAccessBit> BufferObject::GetMappingAccess() const {
return m_isMapped ? m_mappingAccess : BufferMappingAccessBit::Null;
}
Uint BufferObject::GetExternalIndex() const {
return m_externalIndex;
}
} // namespace GLState
} // namespace MG_State
} // namespace MobileGL
@@ -53,7 +53,7 @@ namespace MobileGL {
public:
using TargetEnum = BufferTarget;
BufferObject();
BufferObject(Uint externalIndex);
void Resize(SizeT size);
void UploadData(DataPtr data, SizeT atOffset);
@@ -73,9 +73,10 @@ namespace MobileGL {
Range1D GetMappedRange() const;
const SharedPtr<Data> GetDataReadOnly() const;
Flags<BufferMappingAccessBit> GetMappingAccess() const;
Uint GetExternalIndex() const;
private:
Int m_id = 0;
const Uint m_externalIndex = 0;
SizeT m_size = 0;
BufferUsage m_usage = BufferUsage::StaticDraw;
SharedPtr<Data> m_dataPtr;
@@ -24,7 +24,7 @@ namespace MobileGL {
}
SharedPtr<BufferObject> BufferState::CreateBufferObject(Uint index) {
auto bufferObject = MakeShared<BufferObject>();
auto bufferObject = MakeShared<BufferObject>(index);
m_bufferObjects[index] = bufferObject;
return bufferObject;
}