What is libGL?
OpenGL-based programs must link with the libGL library. libGL implements the GLX interface as well as the main OpenGL API entrypoints. When using indirect rendering, libGL creates GLX protocol messages and sends them to the X server via a socket. When using direct rendering, libGL loads the appropriate 3D DRI driver then dispatches OpenGL library calls directly to that driver.
libGL also has the ability to support heterogeneous, multi-head configurations. That means one could have two or more graphics cards (of different types) in one system and libGL would allow an application program to use all of them simultaneously.
Where does libGL reside?
The GLcore extension source code resides at xc/lib/GL/GL/ .
libGL (3D) Driver
A DRI aware 3D driver currently based on Mesa.
How do X modules and X applications communicate?
X modules are loaded like kernel modules, with symbol resolution at load time, and can thus call each other functions. For kernel modules, the communication between applications and modules is done via the /dev/* files.
X applications call X libraries function which creates a packet and sends it to the server via sockets which processes it. That's all well documented in the standard X documentation.
There are 3 ways 3D clients can communicate with the server or each other:
- Via the X protocol requests. There are DRI extensions.
- Via the SAREA (the shared memory segment)
- Via the kernel driver.
출처 : https://dri.freedesktop.org/wiki/libGL/
'Computer science (이동 완료) > 그래픽스' 카테고리의 다른 글
OpenGL vs DirectX (0) | 2023.05.26 |
---|---|
OpenGL 소프트웨어 스택 (DRM,Mesa) (1) | 2023.05.26 |
Mesh, OBJ File (0) | 2023.05.26 |
OpenGL 이란 (0) | 2023.05.26 |