Если этот вопрос не задан, дайте мне знать, так как я не хочу загромождать платформу оффтопными c вопросами!
В любом случае, мне сложно найти информацию о что на самом деле происходит, когда изображение рендерится из-за некоторого кода, который я написал.
Скажем, я хотел сложить числа 5 и 3. ЦП записал 5 в один регистр и 3 в другой. ALU позаботится о вычислениях и выводе 8. Ничего страшного, CPU использует MOVE и ADD для получения результата.
Однако я не нахожу никакой информации о том, что происходит, когда я хочу чтобы нарисовать прямоугольник. Для большинства языков программирования существуют импортируемые фреймворки, которые позволяют вам это делать. В SpriteKit (Swift & Obj c), например, вы должны написать что-то вроде
let node = SKSpriteNode(color: .white, size: CGSize(width: 200, height: 300))
и добавить node
к SKScene
(просто сцена, содержащая childNodes
) и белый прямоугольник "волшебным образом" будет отображаться. Я хотел бы знать, что происходит под капотом. Почему именно эта структура позволяет рисовать прямоугольник? Какой ассемблерный код (скажем, для Intel Core M) заставляет GPU вычислять, как будет выглядеть этот прямоугольник? И как SpriteKit опирается на основы Swift / Objective C, чтобы на самом деле это делать (и могу ли я сделать это сам)?
Может быть, странный вопрос, но я чувствую, что должен знать (да, иногда мне тоже любопытно). Спасибо.
PS Мне бы очень хотелось получить действительно подробный ответ, а не «CPU 'говорит' GPU рисовать прямоугольник» - CPU не могут разговаривать!