Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct
Confused: ANGLE or OpenGL?
I am new to Qt and have just bought the 3 official books on QT. So I am a green horn starting out on Qt. I have been programming using VB6 for more than 10 years and now seriously need to migrate for good.
One questions I still cannot figure out on my own for the past few weeks is which "version" to use for the windows side. In this webpage:
are stated as follows:
Use Desktop OpenGL if
- Your application needs to run on Windows XP. Although it is tempting to use ANGLE as a replacement for missing graphics drivers on this platform, it does not fully work and may lead to crashes, for example, when the security dialog is opened.
bq. Use ANGLE if
- You have a heterogeneous user base with different Windows versions & graphics cards
"a heterogeneous user base with different Windows versions & graphics cards" will definitely include Windows XP.
Naturally, I have user base that run all different version of Windows. Software I write using the simple 2D for stock commodity futures charting. No 3D and nothing fanciful.
Should I use ANGLE or OpenGL?
koahnig last edited by
welcome to devnet
Regardless of your momentary choice you can easily later on. E.g. you can have both types of Qt libs installed and compile your applications with the toolchain you may require. Therefore, it is not a decision for ever.
There seem to be currently also a restriction based on the compiler toolchain you are installing. Prebuilds are apparently not available for MinGW at the time being.
If you plan to use MSVC compilers as toolchains you have the choice.
For starting IMHO it does not really matter to get started. If your choice is MinGW you can start out with the openGL version as available as prebuild. If you really find out that it is better to use a version to be compiled against ANGLE, you can compile a version for yourself (or possibly an ANGLE prebuild will be available then).
When you use Qt creator as your IDE, it is easy to manage different toolchains side by side.
Thanks for the welcome and reply. Much appreciated.
I do understand your reply that the decision does not have to be made now, but later. However, at some point, it has to be made, and I just want to understand this part relating to Windows XP.
While the recommendation is to use ANGLE for heterogeneous user base with different Windows versions & graphics cards, there is also the caution not to use ANGLE if the application needs to run on Windows XP.
I am not sure if I am stuck in the position that I cannot use ANGLE and also I cannot use OpenGL. This is where I think I find the problem of the decision, whether now or later. But then, there are already so many users of Qt and even popular Maya is using Qt, so I just want to seek clarification.
It is precisely this lack of clarity that even after I bought the 3 books, I went to play around with Visual Studio 2012 Ultimate. But still I drift back to QT for the beauty of cross-platform. If I can write once and compile for Win/OSX/Linux, why not. And then iOS/Android/Win8.
A few years ago, the London Stock Exchange system crashed because the .NET system application was just not fast enough to cope with the trading volume.
So I try to avoid .NET if I can.
Yes you can run opengl applications on XP but they must be built with desktop opengl (ANGLE uses DirectX 9 and IIRC XP's supported DirectX is way older that that)
From this article:
It seems it is okay to use ANGLE for application that target all Windows version including Windows XP? And that application developed with Qt ANGLE will not necessarily crash in Windows XP, is this correct?
The crash in Windows XP is it when some graphic codes or calls are not supported? Is simple 2D line drawing okay? Or are they a big no no?
I know I can spend some time learning Qt and then punch out an application to test on all version of Windows and see what happen. But it will still need some time on my part. So if I can find out by asking, it will save the time.
I do understand.
Basically, when I have my software ready, it should be:
MyProduct for all versions of Windows
I want to avoid the situation where:
MyProduct for Windows XP only
MyProduct for all other versions of Windows, except XP
Sorry, my bad, I've mixed two things. You should essentially ensure that it's XP sp 2 and not older when installing your program if built with ANGLE.
Currently, you should rather analyze your OpenGL needs. If they fall in the scope of OpenGL ES 2 then just use the ANGLE build (knowing that you cannot go lower than SP2 for XP which support will reach end of life next year following Microsoft announcement). It will save you driver test/updates on these machines.
Ah... I am beginning to see the light. It is getting beautiful.
So I install Qt ANGLE and develop with it. Software I develop should be safe for all versions of Windows including WinXP SP2.
At present, the VB6 graphic command are the basic line, plot, move, color, print, etc. Should not be a problem, right?
Add to clarify:
I mean, when I migrate to use appropriate graphic commands in Qt.
It should be safe yes.
IFAIK it should not. You might be interested by QWT for your plotting needs
QWT. Qt Widgets?
I will explore them.
Thanks very much.
No (well yes you will probably also need them), i meant the "QWT library":http://qwt.sourceforge.net/ :)