OpenGL a XRender jsou kreslicí API, která umožňují aplikace určitých geometrických transformací.
OpenGL je zaměřeno na kreslicí operace, které má provádět vyhrazená grafická procesorová jednotka (GPU) a poskytuje mnoho funkcí, díky kterým je generování 3D-vypadajícího obrazu velmi snadné (hloubkový buffer, testování hloubky, 4×4 homogenní transformační matice). Ale s OpenGL můžete dělat i 2D vypadající grafiku.
XRender je rozšířením X11 pro podporu metod vykreslování (antialiasing, alpha blending), které není možné provádět pomocí základních funkcí kreslení X11. XRender-API je však optimalizováno pro 2D vypadající grafiku (žádný hloubkový buffer/test, 3×3 transformační matice).
Všimněte si, že XRender není dokonale ortogonální k OpenGL. Zvláště pokud potřebujete antialiasing v OpenGL, musíte k jeho aktivaci použít několik funkcí z XRender.
Jaký je případ použití každé možnosti?
Možnost XRenderu je zde pro podporu systémů, pro které neexistuje řádná podpora OpenGL (nedostatek stabilních ovladačů), ale přijatelná podpora operací XRenderu. Nastavení XRenderu je také o něco jednodušší (z pohledu programátorů) než OpenGL.
Obecně je OpenGL z pohledu programátorů flexibilnější než XRender. Pokud se ptáte, který z nich byste si měli vybrat:Začněte s OpenGL a pokud vše funguje přijatelně, zůstaňte u něj. Možnost XRender je záložní, pokud OpenGL nefunguje správně (nicméně vzhledem k tomu, že dnes XRender v ovladačích sdílí velkou část s OpenGL nebo je ve skutečnosti implementován pomocí OpenGL, už to nemá žádný praktický rozdíl).
Používám XRender, protože KWin s OpenGL rád roztočí CPU bez dobrého důvodu.
Má také nějaké podivné problémy s OBS a hrami běžícími ve wine/Proton.
Vřele doporučuji přejít na XRender na kartách nVidia!