Мое окно opengl расположено, скажем, 50, 50, 100, 100 (x, y, ширина, высота). GPU знает, как нарисовать сцену в этом месте.
Есть ли это? Вы делаете предположения о специфике того, что делают внутренние компоненты системы рендеринга, ОС и графического процессора.
Во многих системах рендеринга, основанных на композиции, операция рендеринга, которую вы генерируете при выполнении команд OpenGL, отрисовывает часть памяти, некоторые данные изображения. Когда вы делаете вызов swap-buffers, это изображение копируется в фактическую область экрана, которую вы видите. Поэтому, когда вы перемещаете окно, все, что происходит, - это то, что изображение, которое вы отображаете, копируется в другое место. Хотя копирование действительно выполняется графическим процессором, операции рендеринга, которые вы вызвали напрямую, не знают, в каком месте в конечном итоге окажутся их результаты.
Даже в системах рендеринга, где вы напрямую визуализируете для отображения памяти, кто может сказать, что то, что вы можете установить в качестве «окна просмотра», не управляется внутренним драйвером OpenGL? Когда вы перемещаете окно из одного места в другое, водитель может просто сместить настройки вашего окна просмотра, и вы не станете мудрее.
В принципе, есть много способов, чтобы это произошло, и какой путь будет выбран, полностью зависит от того, как реализация OpenGL (и сопутствующая ОС / система рендеринга) выбирает обработку местоположений экрана.