驱动开发系列62 - glBufferDataARB实现分析
继续挖坑,分析下glBufferDataARB的实现,看看Mesa中如何实现的glBufferDataARB; 先暂停驱动开发系列61- Vulkan 驱动实现-SPIRV到HW指令的实现过程(2)-CSDN博客 ,后面有空再研究。
glBufferData是OpenGL里用来为缓冲区对象分配/初始化数据存储的接口,它对应的实现逻辑在Mesa中的 ./src/mesa/main/bufferobj.c 。 ./src/mesa/main 是Mesa的OpenGL状态跟踪层。 _mesa_BufferData是glBufferData实现函数。它长这样:
2456 void GLAPIENTRY
2457 _mesa_BufferData(GLenum target, GLsizeiptr size,
2458 const GLvoid *data, GLenum usage)
2459 {
2460 GET_CURRENT_CONTEXT(ctx);
2461 struct gl_buffer_object *bufObj;
2462
2463 bufObj = get_buffer(ctx, "glBufferDat