Python のすべての GUI ツールキットは、C/C++ コードのラッパーです。Java には、Swing のような「純粋な」Java ツールキットがいくつかありますが、最低レベルでは、描画を行い、ユーザー入力を処理するために C コードに依存しています。Java VM では、グラフィックなどの特別なサポートはありません。
GUI が最下位レベルでどのようにレンダリングされるかについては、状況によって異なります。Windows では、ユーザー モード ソフトウェアがビデオ ハードウェアに直接アクセスすることは許可されていません。最終的に、C/C++ GUI コードは、レンダリングを行うために GDI または Direct3D のいずれかを通過する必要があります。カーネル モードの GDI コードは、フレーム バッファーに書き込むことですべてのレンダリング自体を実行できますが、操作をディスプレイ ドライバーに渡すことで高速化もサポートします。一方、Direct3D カーネル コードはほとんどすべてをドライバーに渡し、ドライバーはすべてを GPU に渡します。ほとんどすべてのカーネル モード コードは C で記述されていますが、GPU で実行されるコードは、より高度なシェーディング言語で記述されたハンド コード アセンブリとコードが混在しています。
GPU アセンブリ言語は Intel x86 アセンブリ言語とは大きく異なり、メーカーや GPU の世代によってかなり異なることに注意してください。
Linux やその他の Unix タイプのオペレーティング システムで現在どのような慣行が行われているのかはわかりませんが、以前は、ユーザー モード プロセスである X サーバーにフレーム バッファへの直接アクセスを与えるのが一般的でした。X サーバーの C コードは、最終的にレンダリングを担当していました。おそらく、GPU アクセラレーションがより一般的になった現在、これは少なくともいくらか変化しています。