В каких ситуациях лучше предпочесть GDI DirectX / OpenGL

Я новичок в программировании графики, и мне интересно, почему я предпочел бы GDI, а не графику с аппаратным ускорением DirectX / OpenGL?

Есть ли еще веские причины использовать GDI?


person xcrypt    schedule 28.11.2011    source источник


Ответы (1)


В конечном итоге все сводится к тому, что вам нужно. Если вам просто нужна 2D-графика не в реальном времени, GDI сделает именно то, что вам нужно.

С другой стороны, DirectX и OpenGL требуют гораздо больше работы для использования и управления (и обычно используют больше системных ресурсов), хотя они позволяют более быстрое рисование и 3D.

Помните, будьте проще, вам не нужна полноценная 3D-система, чтобы нарисовать пару кругов!

person slugonamission    schedule 28.11.2011
comment
Ага, это. По сути, GDI - это просто. Если вы вообще ничего не делаете и не понимаете, как работают OpenGL или DirectX, то, вероятно, изучать их не в ваших интересах. И GDI зависит от платформы, тогда как OpenGL является кроссплатформенным. - person Andrew Rasmussen; 29.11.2011
comment
Значит, с GDI размер моего exe-файла будет меньше, но отрисовка будет медленнее? Так что в основном, если мне нужно быстрое рисование, я должен использовать DirectX / OpenGL, иначе GDI? Итак, для программ рисования, игр 2D / 3D и т. Д. Было бы более эффективно использовать DX / GL, а для программ, которым не нужно часто обновлять окно, GDI - лучший выбор? - person xcrypt; 29.11.2011
comment
Не совсем. Размер вашей программы не должен сильно меняться, поскольку библиотеки OpenGL / DirectX динамически связаны (хотя, конечно, у вас есть больше кода для их инициализации). GDI будет медленнее, чем D3D / OpenGL, поскольку это косвенный рендеринг. И D3D, и OGL обращаются напрямую к видеокарте, GDI должен работать через Windows и (я думаю) все делается программно. - person slugonamission; 29.11.2011
comment
На самом деле, я думаю, что некоторые более свежие версии Windows пытаются аппаратно ускорить GDI. Тем не менее, если вам нужна очень быстрая 2D или 3D графика, вам понадобится D3D / OGL. - person slugonamission; 29.11.2011
comment
Ну, я знаю, как использовать DX, но я не очень хорошо знаю GDI x) не было бы лучше, если бы я просто всегда использовал его тогда? - person xcrypt; 29.11.2011
comment
По-разному. Как я уже сказал, если вам нужно сделать это быстро, да, вам понадобится DirectX. Если вы можете снизить производительность и не делаете ничего слишком сложного, GDI, вероятно, сделает это. Лучше всего попробовать оба варианта, чтобы понять, какой из них вам подходит. - person slugonamission; 29.11.2011