GetString(GR_GL_VERSION)问题
我在看你呵呵笑 2024-07-05 16:36:32
请问third_party/skia/src/gpu/gl/GrGLAssembleInterface.cpp中
const char* verStr = reinterpret_cast<const char*>(GetString(GR_GL_VERSION));
if (nullptr == verStr) {
return nullptr;
}
这部分代码是从哪里拿数据的啊,这里返回nullptr是什么原因导致的呢
您需要先 登录 才能评论/回答
全部评论(12)
以上实现是为了获取OpenGL的版本,GetString往接口里面实现看,应该最终调用到OpenGL的API:glGetString,GR_GL_VERSION对应值0x1F02,到Mesa3D就是
#define GL_VERSION 0x1F02
赞
2024-07-05 16:52:30
引用:“看mesa里没有定义glGetString函数啊,这是执行到哪里去了”
查阅官方文档,知道它是做什么的就可以了
https://learn.microsoft.com/zh-cn/windows/win32/opengl/glgetstring
赞
引用:“上面的代码有GetString()的宏定义 #define GET_PROC_LOCAL(F) GrGL##F##Fn* F = (GrGL##F##Fn*)get(ctx, "gl" #F) GET_PROC_LOCAL(GetString); 展开就是 GrGLGetStringFn* GetString = (GrGLGetStringFn*)get(ctx, "”
看mesa里没有定义glGetString函数啊,这是执行到哪里去了
赞
引用:“上面的代码有GetString()的宏定义 #define GET_PROC_LOCAL(F) GrGL##F##Fn* F = (GrGL##F##Fn*)get(ctx, "gl" #F) GET_PROC_LOCAL(GetString); 展开就是 GrGLGetStringFn* GetString = (GrGLGetStringFn*)get(ctx, "”
那我这里是不是有可能调用不到glGetString这个函数导致这里返回null了
赞
引用:“能写一下third_party/skia中的GetString的调用流程吗,没追到”
上面的代码有GetString()的宏定义
#define GET_PROC_LOCAL(F) GrGL##F##Fn* F = (GrGL##F##Fn*)get(ctx, "gl" #F)
GET_PROC_LOCAL(GetString);
展开就是
GrGLGetStringFn* GetString = (GrGLGetStringFn*)get(ctx, "glGetString")
赞
引用:“所以skia调用GetString,最后就是调用到mesa3d/src/mesa/main/getstring.c中的_mesa_GetString函数吗”
看你最近都在弄Mesa3D的吧,在里面加点Log看下是否调用到
赞
查看全部11条回复
查看全部12条回答/评论