Эти мультиплатформенные наборы инструментов обычно поддерживают довольно много бэкэндов, которые рисуют.Несмотря на то, что некоторые наборы инструментов поддерживают OpenGL в качестве своего бэкэнда, по умолчанию обычно используется «родной» бэкэнд.
Посмотрите, например.на Qt .В Windows он использует GDI для рисования в качестве родного бэкэнда.На Linux он использует XRender, я думаю.То же самое на Symbian и Mac.Qt также имеет собственный программный растеризатор.И, конечно, есть бэкэнд OpenGL.
Так почему же приложение, использующее некоторые из этих наборов инструментов с графическим интерфейсом, может занимать меньше памяти, чем простое приложение OpenGL?Если инструментарий использует «родной» бэкэнд, все уже загружено в память, поскольку весьма вероятно, что все видимые графические интерфейсы используют один и тот же API рисования.Нативные API также могут использовать только один буфер, представляющий весь экран, в котором могут рисовать все приложения.
Однако при использовании OpenGL у вас есть собственный буфер, который представляет окно приложения.Не говоря уже о том, что приложение OpenGL обычно имеет несколько кадровых буферов, таких как z-буфер, буфер трафарета, обратный буфер, которые не являются необходимыми для 2D-рисования, но занимают некоторое пространство (даже если это, вероятно, пространство в памяти видеокарты).Наконец, при использовании OpenGL возможно, что необходимые библиотеки еще не загружены.