- In libglut.so.3 will call glutCreateWindow
- fgCreateWindow
- fgOpenWindow
- call glxcmds.c::glXCreateNewContext
- call glxcmds.c::CreateContext
- dri_common.c::dri_common_create_context
- drisw_glx.c::drisw_create_context_attribs
- dri_util.c::driCreateContextAttribs
- dri_context.c::dri_create_context
- st_manager.c::st_api_create_context
- context.c::_mesa_initialize
- call dlopen to load necessary lib:libGL.so.1, libGL.so, if success, call dlsym to find glXGetProcAddressARB address.
- when need to use a gl function,load-->get_proc-->glXGetProcAddressARB(glname) to get function address。
- glXGetProcAddressARB call glxcmds.cpp::get_glx_proc_address(name) to find func addr in function table[name]
- glXGetProcAddressARB call mapi_glapi.c::_glapi_get_proc_address-->_glapi_get_stub-->stub_find_public
- call func_name()