[Feat] (GL_State/Buffer, GL_Impl/Buffer): implement glBindBufferRange

This commit is contained in:
2025-11-02 10:31:05 +08:00
parent 4b4d38a00a
commit 1d3fbedf29
7 changed files with 28 additions and 6 deletions
@@ -62,7 +62,7 @@ namespace MobileGL {
return m_bufferObjects.find(index) != m_bufferObjects.end();
}
BindingSlot<BufferObject> &
BindingSlotRange1D<BufferObject> &
BufferState::GetBindingPoint(BufferTarget target, Uint index) {
for (SizeT i = 0; i < BufferBindPointTargets.size(); ++i) {
if (BufferBindPointTargets[i] == target) {
@@ -24,7 +24,7 @@ namespace MobileGL {
SharedPtr<BufferObject> CreateBufferObject(Uint index);
BindingSlot<BufferObject>& GetBindingSlot(BufferTarget target);
// For glBindBufferBase / glBindBufferRange
BindingSlot<BufferObject>& GetBindingPoint(BufferTarget target, Uint index);
BindingSlotRange1D<BufferObject>& GetBindingPoint(BufferTarget target, Uint index);
void MarkBufferObjectForDeletion(Uint index);
Bool ValidateName(Uint index) const;
Bool ValidateBufferObject(Uint index) const;
@@ -35,7 +35,7 @@ namespace MobileGL {
Array<BindingSlot<BufferObject>, GlobalBufferTargets.size()> m_bindingSlots;
// TODO: query the count somewhere globally?
// For glBindBufferBase / glBindBufferRange
Array<Array<BindingSlot<BufferObject>, 14>, BufferBindPointTargets.size()> m_bufferBindPointTargets;
Array<Array<BindingSlotRange1D<BufferObject>, 14>, BufferBindPointTargets.size()> m_bufferBindPointTargets;
};
} // namespace GLState
} // namespace MG_State
+1 -1
View File
@@ -65,7 +65,7 @@ namespace MobileGL {
return m_bufferState.GetBindingSlot(target);
}
BindingSlot<BufferObject>& GLContext::GetBufferBindingPoint(BufferTarget target, Uint index) {
BindingSlotRange1D<BufferObject>& GLContext::GetBufferBindingPoint(BufferTarget target, Uint index) {
return m_bufferState.GetBindingPoint(target, index);
}
+1 -1
View File
@@ -32,7 +32,7 @@ namespace MobileGL {
Vector<Uint> GenBufferNames(Uint number);
SharedPtr<BufferObject> GetBufferObject(Uint index);
BindingSlot<BufferObject>& GetBufferBindingSlot(BufferTarget target);
BindingSlot<BufferObject>& GetBufferBindingPoint(BufferTarget target, Uint index);
BindingSlotRange1D<BufferObject>& GetBufferBindingPoint(BufferTarget target, Uint index);
SharedPtr<BufferObject> CreateBufferObject(Uint index);
void MarkBufferObjectForDeletion(Uint index);
Bool ValidateBufferName(Uint index) const;