跨平台绘图库

15
我一直在寻找一个能够从C++调用且可以用于绘制一些相对简单的几何图形,如线条、矩形、圆形和文本(水平和垂直)以及将输出保存为PNG的跨平台2D绘图库。
我认为商业软件包优于开源软件,因为我们希望不必担心许可问题(除非有没有署名条款的BSD样式许可证)。我看过Cairo Graphics,看起来很有前途,但是默认情况下文本渲染看起来不怎么好,升级文本后端会使我们涉足模糊的许可证领域。
我需要它在Windows、Mac和Linux上使用。最好是相对轻量级和易于集成的东西。我考虑过Qt,但那对我们的应用程序来说太重了。
如果你有任何想法,那就太棒了。

2
是的,很遗憾QImageQPainter被埋在QtGui中而不是单独放在一个QtPainting库中。当他们在Qt 4.0中分离库时,它们没有真正可用,需要一个QApplication,但现在你可以在单独的线程中使用它们,所以我认为一个QtPainting库会有很多意义。让我们等待Qt 5 :) - Marc Mutz - mmutz
11个回答

0

1
它是一种具有代码的东西。OpenGL只是用于与GPU通信的标准API。您无法链接到它,也无法购买或下载它。 顺便说一下,直接调用OpenGL函数实际上从来不是跨平台的。像SDL或SFML这样的库是跨平台的。 - cubuspl42
OpenGL有代码。您可以链接到它(opengl32.lib iirc),您可以通过购买图形卡的实现来使用它,也可以在更新驱动程序时下载它。我无法评论跨平台问题,但我猜测SDL和SFML会在底层使用OpenGL来实现跨平台性,即使它是通过抽象层公开的。 - graham.reeds
1
OpenGL的实现有代码,但OpenGL本身没有。你会称POSIX为库吗?仅仅因为它保证在实现它的平台上存在某些函数吗?以下是opengl.org FAQ中的一些引用:“(...)不,OpenGL没有任何源代码。GL是一个规范,可以在这个网站上找到。(...)”,“(...)OpenGL不是一个软件产品。它是一个规范。(...)” - cubuspl42
2
不要因为你不了解OpenGL就称呼我狂热。这并不能解决OP的问题,因为他/她需要一个跨平台渲染库。顺便说一句,我喜欢OpenGL。 - cubuspl42
1
只有OpenGL调用是跨平台的,实际上并没有使用纯OpenGL本身。您需要调用许多特定于平台的函数来创建上下文、初始化与OpenGL相关的内容、创建窗口等等。除非您使用像SDL、SFML等跨平台库。这就是OP正在寻找的。规范本身是无法帮助的。 - cubuspl42
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接