Движок с нуля
Справочник

Контекст OpenGL

Структура в памяти драйвера: всё, что OpenGL помнит об одном окне. В ней настройки рисования, например цвет очистки, созданные данные и запись о том, куда рисовать. Пока контекст не создан и не сделан текущим, функции gl* работать не могут.

OpenGL — это не набор независимых функций, а машина с состоянием. Вызов glClearColor(0, 0, 0, 1) ничего не рисует: он только запоминает цвет очистки внутри контекста. Следующий glClear возьмёт этот цвет оттуда.

Контекст создаёт оконная библиотека вместе с окном. В нашей программе это делает GLFW, когда создаёт окно, а потом glad загружает адреса функций OpenGL.

Почему функции нужно «загружать»

Функции OpenGL живут в драйвере видеокарты, а не в твоей программе. Адреса этих функций известны только во время работы, когда драйвер уже выбран. glad спрашивает у драйвера адрес каждой функции и записывает его в указатель с тем же именем — после этого glClear(...) в коде действительно вызывает драйвер.