Лучшее общее кроссплатформенное решение для рисования (примитивы, линии и т. Д.) В C ++? - PullRequest
0 голосов
/ 24 ноября 2011

У меня был большой опыт написания на Java, python, C # и C, в основном для хобби. Во всех написанных мною приложениях, которые включают дисплеи (симуляции, графические устройства и т. Д.), Я всегда просто использовал стандартный класс «Canvas» для любой используемой среды (Swing Canvas, .NET Canvas, Pygame, однажды). для питона).

Недостатком этого является то, что все они имеют несколько разные парадигмы на рисунке.

Я начинаю проект на C ++, и мне было интересно, что является лучшим решением для кроссплатформенного рисования. OpenGL, очевидно, очень низкого уровня, но какая-то библиотека поверх OpenGL была бы хороша. Я слышал / читал о таких вещах, как Каир, SDL и т. Д., Но пока не знаю, что делать. Я уже использую wxWidgets для интерфейса, но предпочел бы использовать что-то более стандартное, а не просто холст wxWidgets. Очевидно, что способность рисовать линии и формы важна, а не просто отображать картинки или еще много чего.

Спасибо за любое направление!

Ответы [ 3 ]

2 голосов
/ 24 ноября 2011

Я хотел бы рассмотреть возможность использования Qt , и в особенности его Graphics View framework.(Qt работает в Linux, Windows, MacOSX).

1 голос
/ 24 ноября 2011

SDL - это SimpleMedia Direct Layer, который по сути является общим интерфейсом для взаимодействия с кадровым буфером и аудиоустройствами. Если вы хотите создать окна и тому подобное, у них нет конструкций общего назначения, которые работают кроссплатформенно.

Cairo предназначен для рисования графики, но все еще работает на уровне, который ниже, чем обеспечивает WxWidgets.

C ++ не предоставляет ничего стандартного, поэтому либо вы используете какую-то платформу, либо используете кроссплатформенную библиотеку, такую ​​как Qt (уже упоминавшуюся в Basile), либо придерживаетесь wxWidgets. Оба популярны и широко используются, хотя Qt, вероятно, гораздо более известен и используется (хотя это просто мнение). Я использовал Qt для работы, и он очень кроссплатформенный и довольно простой в использовании (но очень обширный, поэтому приготовьтесь прочитать много документации). К счастью, в нем также много документации и примеров.

Кроме того, и wxWidgets, и Qt имеют привязки на многих языках, так что вы можете взять знания с любым из них и использовать их со многими другими языками.

0 голосов
/ 24 ноября 2011

Open Frameworks очень прост в использовании и содержит множество примеров ...
он не зависит от платформы и как-то напоминает мне о

...