void Buffer::InitializeGPUBuffer()
{
- auto gl = mController.GetGL();
+ auto context = mController.GetCurrentContext();
+ auto gl = mController.GetGL();
+ if(!gl || !context)
+ {
+ return;
+ }
+
gl->GenBuffers(1, &mBufferId);
- gl->BindBuffer(GL_ARRAY_BUFFER, mBufferId);
- gl->BufferData(GL_ARRAY_BUFFER, mCreateInfo.size, nullptr, GL_STATIC_DRAW);
+ context->BindBuffer(GL_ARRAY_BUFFER, mBufferId);
+ gl->BufferData(GL_ARRAY_BUFFER, GLsizeiptr(mCreateInfo.size), nullptr, GL_STATIC_DRAW);
}
void Buffer::DestroyResource()
else
{
auto gl = mController.GetGL();
- gl->DeleteBuffers(1, &mBufferId);
+ if(gl)
+ {
+ gl->DeleteBuffers(1, &mBufferId);
+ }
}
}
void Buffer::Bind(Graphics::BufferUsage bindingTarget) const
{
- auto gl = mController.GetGL();
+ auto context = mController.GetCurrentContext();
+ auto gl = mController.GetGL();
+ if(!gl || !context)
+ {
+ return;
+ }
// CPU allocated buffer may be bound only as Uniform Buffer
// on special binding point
{
case Graphics::BufferUsage::VERTEX_BUFFER:
{
- gl->BindBuffer(GL_ARRAY_BUFFER, mBufferId);
+ context->BindBuffer(GL_ARRAY_BUFFER, mBufferId);
break;
}
case Graphics::BufferUsage::INDEX_BUFFER:
{
- gl->BindBuffer(GL_ELEMENT_ARRAY_BUFFER, mBufferId);
+ context->BindBuffer(GL_ELEMENT_ARRAY_BUFFER, mBufferId);
break;
}
default:
}
}
-} // namespace Dali::Graphics::GLES
\ No newline at end of file
+} // namespace Dali::Graphics::GLES