Fix a reuse issue with GLBuffer.

This commit is contained in:
pengweilv
2022-01-18 15:34:06 +08:00
parent 9aa21133b2
commit 7d7f733470
2 changed files with 4 additions and 3 deletions

View File

@@ -38,9 +38,7 @@ std::shared_ptr<GLBuffer> GLBuffer::Make(Context* context, const uint16_t* buffe
return glBuffer;
}
const auto* gl = GLContext::Unwrap(context);
glBuffer = Resource::Wrap(context, new GLBuffer());
glBuffer->uniqueKey = buffer;
glBuffer->_length = length;
glBuffer = Resource::Wrap(context, new GLBuffer(buffer, length));
gl->genBuffers(1, &glBuffer->_bufferID);
if (buffer) {
gl->bindBuffer(GL::ELEMENT_ARRAY_BUFFER, glBuffer->_bufferID);

View File

@@ -37,6 +37,9 @@ class GLBuffer : public Resource {
void computeRecycleKey(BytesKey*) const override;
private:
GLBuffer(const void* uniqueKey, size_t length) : uniqueKey(uniqueKey), _length(length) {
}
void onRelease(Context* context) override;
const void* uniqueKey = nullptr;