OpenGL on Windows 7

Started by
36 comments, last by MARS_999 14 years, 4 months ago
I'm working on a game that uses OpenGL for both the OS X and Windows versions. From what I'm reading online, support for OpenGL in Windows 7 is a bit spotty; it seems it's basically left up to the hardware vendors, and in many cases users are having to jump through some hoops - install drivers manually and so on - in order to get OpenGL working on their systems. My game is a little more towards the casual side, and I think a lot of potential users might be deterred by having to install drivers or deal with other similar technical issues. With this in mind, I'm thinking of switching to Direct3D for the Windows version. This will take some work, so I thought I'd post here first to make sure my appraisal of the situation isn't off base. Would switching APIs be the best bet in this case? Or is the OpenGL Windows 7 situation not as bad as it seems?
Advertisement
Since you are a member here from 2003, I don't know if you know this or not, but there are no GL drivers with ANY Windows version. Users always had to install the graphics driver.
I'm talking about the Microsoft Windows CD (Win98, Me, 2000, XP, Vista).
The specially made CD for Dell or whatever include the drivers (All drivers), probably because they don't want users to call them for technical support.
Sig: http://glhlib.sourceforge.net
an open source GLU replacement library. Much more modern than GLU.
float matrix[16], inverse_matrix[16];
glhLoadIdentityf2(matrix);
glhTranslatef2(matrix, 0.0, 0.0, 5.0);
glhRotateAboutXf2(matrix, angleInRadians);
glhScalef2(matrix, 1.0, 1.0, -1.0);
glhQuickInvertMatrixf2(matrix, inverse_matrix);
glUniformMatrix4fv(uniformLocation1, 1, FALSE, matrix);
glUniformMatrix4fv(uniformLocation2, 1, FALSE, inverse_matrix);
Quote:Original post by jyk
Would switching APIs be the best bet in this case? Or is the OpenGL Windows 7 situation not as bad as it seems?


If they have a vendor provided graphics card they should already have a driver installed for that graphics card. If they're n00b then they just have the card & driver which came with their machine which means that it should be correct. If they're elite they put in their own upgrade card which means that they should know how to install the correct driver.

Further, PC games for the last forever have always told you to make sure you have the latest driver for your graphics card before playing and/or if you experience any problems. This is just as true for DirectX as it is for OpenGL: windows doesn't provide drivers for hardware accelerated DirectX either. Anything that uses hardware relies on the hardware vendor to supply drivers.

-me
Quote:Original post by jyk
I'm working on a game that uses OpenGL for both the OS X and Windows versions. From what I'm reading online, support for OpenGL in Windows 7 is a bit spotty; it seems it's basically left up to the hardware vendors, and in many cases users are having to jump through some hoops - install drivers manually and so on - in order to get OpenGL working on their systems.


Wow, sounds like Vista all over again.

DirectX is probably your best bet. Many users will not know how to install a driver, and the Intel graphics chipset has(or at least had) a pretty rough OpenGL driver. A lot of people getting PCs have the Intel graphics chipset.

Quote:Original post by Palidine
Further, PC games for the last forever have always told you to make sure you have the latest driver for your graphics card before playing and/or if you experience any problems. This is just as true for DirectX as it is for OpenGL: windows doesn't provide drivers for hardware accelerated DirectX either. Anything that uses hardware relies on the hardware vendor to supply drivers.


The casual game market is a bit different. It's quite possible that a person buying a casual game has no idea how to update a driver, and more than likely have the original driver that came with the computer.

Check out Super Play, the SNES inspired Game Engine: http://www.superplay.info

Quote:Original post by cdoty
DirectX is probably your best bet.


Why would you say that? MS doesn't provide DirectX drivers either... Driver means "provided by the hardware vendor". It doesn't matter whether you use DirectX or OpenGL, you are still bound to the vendor-specific drivers for your 3D cards/chipsets

Quote:Original post by cdoty
The casual game market is a bit different. It's quite possible that a person buying a casual game has no idea how to update a driver, and more than likely have the original driver that came with the computer.


In which case, as I said, it doesn't matter whether you use DirectX or OpenGL, it'll still be broken. Those being your only choices for hardware accelerated 3D graphics, your users would then be out of luck.

Repeat after me: to get hardware acceleration you need a vendor supplied driver.

As you said, practically speaking, everyone has a "correct" driver installed for their machine. The casual market has what came in their PC so it already has the driver installed by the PC manufacturer. If it's an old driver it probably has bugs that later drivers fixed; those bugs could affect your game. If so the user would need to update to be able to run your game (again, doesn't matter if it's DirectX or OpenGL: except there may be different bugs depending on the API)

Welcome to PC game development [smile]

-me
To echo and reinforce what V-man and Paladine have said, Mac is the *only* desktop operating system which ships with all graphics drivers as part of the OS (however lousy those drivers may be).

Windows and linux variants both require the user to manually install vendor-specific graphics drivers. For Windows this is usually a straightforward/painless process, while for linux, more often than not, it is like pushing boulders uphill with a toothpick...

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

Just to chime in on the topic. I think the op is confusing API with drivers. DirectX/openGL by themselves are just API nothing else. To get hardware acceleration for functionality provided by the DirectX/openGL APIs graphic card manufacturer provide drivers for their card. Without drivers some API provide a software fallback which is much slower since...its in software(running on the host CPU). As such in order to get hardware acceleration and driver must have already been installed or will need to be install. There is no other way around it, so I don't think it should be a problem using openGL on Windows 7. If you have the time to learn another API (DirectX) go ahead and give it a try. I used both and in the end they both achieve the same thing...graphics goodness... Hope that clears up any doubts you had.
Quote:Original post by cgrant
Just to chime in on the topic. I think the op is confusing API with drivers. DirectX/openGL by themselves are just API nothing else. To get hardware acceleration for functionality provided by the DirectX/openGL APIs graphic card manufacturer provide drivers for their card.


I think there is some confusion here. If you install Windows from a Microsoft CD/DVD, you get the "manufacturer provide drivers" for DirectX. You get the "benefit" of the hardware.
What you do not get are OpenGL drivers. Microsoft strips out the OpenGL drivers.

For example, if you are on Win95, Win 98, Win Me or Win 2000 without updated drivers, you get GL 1.1 and it renders in software mode.

With Win XP, Microsoft decided to wrap GL around D3D. You still get GL 1.1 but at least it runs fast out of the box (I use the term "fast" to mean faster than software rendering)

And finally, Windows Vista, the OS that is suppose to better. Microsoft provides GL 1.4 but in all fairness, it is useless. It is still a D3D wrapper.

I assume that Win 7 is similar to Vista.

If you are making a casual game, then I think you have nothing to worry about. It will run fast. Just stick with GL 1.1
Sig: http://glhlib.sourceforge.net
an open source GLU replacement library. Much more modern than GLU.
float matrix[16], inverse_matrix[16];
glhLoadIdentityf2(matrix);
glhTranslatef2(matrix, 0.0, 0.0, 5.0);
glhRotateAboutXf2(matrix, angleInRadians);
glhScalef2(matrix, 1.0, 1.0, -1.0);
glhQuickInvertMatrixf2(matrix, inverse_matrix);
glUniformMatrix4fv(uniformLocation1, 1, FALSE, matrix);
glUniformMatrix4fv(uniformLocation2, 1, FALSE, inverse_matrix);
Quote:I think the op is confusing API with drivers.
No, I know the difference between an API and a driver. However, I must admit I've never bought an off-the-shelf PC, so I may have made some incorrect assumptions about what's involved. (Up until recently I did all my development in OS X, and the Windows machines I'm using now were already set up when I got them.)

Basically what I'm trying to determine is, if someone goes to Best Buy and picks up a brand new PC, and then brings it home and installs my game, will it have a better chance of working 'out of the box' if it uses Direct3D for rendering rather than OpenGL?
Quote:If you install Windows from a Microsoft CD/DVD, you get the "manufacturer provide drivers" for DirectX. You get the "benefit" of the hardware.
What you do not get are OpenGL drivers. Microsoft strips out the OpenGL drivers.
Yes, this was the impression I had, and was what led me to consider switching to Direct3D for the Windows version.
Quote:For example, if you are on Win95, Win 98, Win Me or Win 2000 without updated drivers, you get GL 1.1 and it renders in software mode.

With Win XP, Microsoft decided to wrap GL around D3D. You still get GL 1.1 but at least it runs fast out of the box (I use the term "fast" to mean faster than software rendering)

And finally, Windows Vista, the OS that is suppose to better. Microsoft provides GL 1.4 but in all fairness, it is useless. It is still a D3D wrapper.

I assume that Win 7 is similar to Vista.

If you are making a casual game, then I think you have nothing to worry about. It will run fast. Just stick with GL 1.1
Thanks for the info, and yup, 1.1 is definitely all I need. (However, even though the game is casual-ish, it probably does need hardware acceleration to run at an acceptable framerate.)

Maybe the safest thing to do would be to go ahead and make the switch; based on what I've read, it seems it could make things easier for some users (and is unlikely to make things worse, at any rate).

Thanks all for the feedback so far.
Quote:Original post by V-man
With Win XP, Microsoft decided to wrap GL around D3D. You still get GL 1.1 but at least it runs fast out of the box (I use the term "fast" to mean faster than software rendering)

And finally, Windows Vista, the OS that is suppose to better. Microsoft provides GL 1.4 but in all fairness, it is useless. It is still a D3D wrapper.


Why on earth would anyone (intersted in accellerated graphics) *not* use the lastest drivers from his video card vendor?

Why would Microsoft pay video card manufacturers the cost of developing OpenGL drivers for a googlillon copies of Windows (they probably don't though) if what Microsoft really needs is a driver for their own completely different API?

To me, the subject of what Microsoft should or not do died when Linux became an usable alternative for desktop. Now, if you don't like what Microsoft gives you, you have the choice of not buying it and use another OS. Even modify it as you please, if you can.
[size="2"]I like the Walrus best.

This topic is closed to new replies.

Advertisement