Google Answers Logo
View Question
 
Q: OpenGL ( Answered 5 out of 5 stars,   5 Comments )
Question  
Subject: OpenGL
Category: Computers > Graphics
Asked by: swisscheese-ga
List Price: $20.00
Posted: 30 Jan 2003 13:28 PST
Expires: 01 Mar 2003 13:28 PST
Question ID: 155383
We are in beta of a free mechanical CAD package that uses OpenGL
extensively. You can download the software at emachineshop.com - the
first online machine shop. Several users report a variety of video
problems such as screen not painting, the 3D view showing bands,
delays, error messages, etc. We are telling users to update their
video drivers but I suspect many users will not be willing to mess
with their system at that level. And many problems are from Win 98
users and they are not likely to upgrade Windows for our sake. How can
we make our code more compatible? To the extent that the problem is
not ours, with OpenGL so popular why are so many video boards not
compatible? Are there better solutions than OpenGL, although it would
probably not be practical to switch at this point.

Request for Question Clarification by maniac-ga on 30 Jan 2003 19:24 PST
Hello Swisscheese,

I found references to a few (but not all) of the problems you
describe. I may need additional information to get them all. Here are
a few pointers to what I found so far...

Search with "Windows 98" opengl problems on Google to get almost 10000
hits. A few of them are:

Errors w/ OpenGL if you do *not* have hardware acceleration
  http://support.microsoft.com/?kbid=240896
occurs when you  move or resize a window.

OpenGL does not work with TNT2
  http://www.experts-exchange.com/Operating_Systems/Win98/Q_11619858.html
a long Q&A session on this particular software / card combination.

Black button when switch from full screen to normal
  http://www.shrugsoft.com/reef/
scroll down about 2/3rd way down for an explanation.

There is also an extensive OpenGL forum at
  http://www.opengl.org/
with a search capability.

Difficulty rendering solids in CADkey 98/99
  http://www.cadkey.com/support/technotes/cadkey/1412.asp
describes a fault isolation and resolution with proper DLL's.

If I am going the right direction, please confirm and provide
additional information on the problems so I can get you a complete
answer.

  --Maniac

Clarification of Question by swisscheese-ga on 31 Jan 2003 05:51 PST
Hi maniac

Thanks for the info. We need to know the simplest way to initialize
the OpenGL context which will work properly on Win98 and with various
video cards. The application uses OpenGL to draw 2d objects in the
workspace and some dialogs and 3d in one dialog - so initialization
must support several contexts (unlike full screen games).

j_philipp-ga - thanks for the tip. Will check it out.

Request for Question Clarification by maniac-ga on 31 Jan 2003 19:42 PST
Hello Swisscheese,

The more I look into this, the worse it looks [sigh]. I do have some
feedback on the other comments and some more good references.

Re: Query & HW Acceleration

According to the FAQ at 
  http://www.opengl.org/developers/faqs/technical/mswindows.htm
(see 5.030)
it states that OpenGL does not have a switch to enable / disable
hardware acceleration. Some vendors may provide this, but it can be
different for each card. You can however draw so that hardware
acceleration is never used. The FAQ describes a technique and has
pointers to source code.

You may want to give your users the option to disable acceleration as
a work around if that is the problem (with a default setting based on
the hardware / drivers you find).

From the same FAQ, there is another long list of possible artifacts
and solutions for the Windows platform.

I also found a number of other references using the search phrase
  opengl windows documentation
or
  opengl windows solutions
A few of particular note included:
  http://www.3dnature.com/glprobs.html
a vendor that openly lists artifacts, card affected, and work arounds.
They also ask their users to run a "benchmark" that collects system
data and performance information to help report problems.
  http://nehe.gamedev.net/
on the right column is a series of tutorials, and the center has
"news" (scroll down for a long list of Open GL related information).
Each tutorial is pretty extensive and has a lot of commentary
associated with it. One of these may provide code fragments that work
better than your existing code.

There are a number of other web pages from these searches that
describe problems with OpenGL and specific combinations of equipment.
I wish I could provide a better answer, but at this point I can't say
for sure if fixes from these sources will "solve" your problem or not.

  --Maniac

Clarification of Question by swisscheese-ga on 01 Feb 2003 10:03 PST
Hi Maniac - Thanks for the info. You have given us enough to work with
for now. If you'll close the answer, I'll rate it.
Answer  
Subject: Re: OpenGL
Answered By: maniac-ga on 01 Feb 2003 15:14 PST
Rated:5 out of 5 stars
 
Hello Swisscheese,

The following will consolidate the clarification requests and other
comments to produce a proper answer.

There are a number of online references to problems identified with
Open GL running on Microsoft Windows platforms, especially Windows 98.
Most of these appear to be related to one of:
 - bugs in a specific device driver
 - lack of compatibility with drivers and versions of Open GL or
applications
 - a mixture of Open GL with other technologies for drawing on the
screen
 - interrupt settings or other low level BIOS / OS interaction

The solutions that are suggested by these same sources include:
 - update drivers to a more recent version, perhaps as part of
installing your application
 - disable hardware acceleration (by vendor switch or by using code
that does not allow the hardware to be used)
 - avoid using certain capabilities, perhaps on a card / driver basis;
one vendor suggested disabling multithreaded operation as one possible
solution to avoid display bugs

There are also vendors / tool makers that have decided to collect
additional information or diagnostic by using benchmark or other data
collection programs. They would then use this information to help
isolate the problems and develop work arounds.

Effective search phrases include:
  windows opengl problems
  windows opengl solutions
  windows opengl crash
  windows opengl documentation

Example problems and solutions are listed in the clarification
requests. I will include a few additional items that I found
interesting in my research:

3D Labs Support: System Configuration
  http://www.3dlabs.com/support/troubleshooting/
in particular, note that running Office or Java and Open GL
concurrently can cause screen corruption. They post a registry change
to fix this symptom, but it may also break Direct3D.

Rage Pro under Windows 98
  http://www.geocities.com/ziyadhosein/rprow98.htm
A pretty blunt assessment of driver and software compatibilities. A
particularly good quote is...
  "Your best bet for working OpenGL is to [use a recent release -
lined out!] try them all."

Graphic Rendering and Troubleshooting Guide
  http://www.mathworks.com/support/tech-notes/1200/1201.shtml
A technical note for MATLAB describing a number of compatibility
issues with OpenGL (and other rendering options).

OpenGL and Windows
  http://www.wischik.com/lu/programmer/wingl.html
Scroll down to see a description of an option to load DLL's at
runtime, perhaps under user selection. This may allow you to select
the OpenGL DLL's that work for a particular card / driver combination.
It also has source code on selecting accelerated pixel formats.

Trolltech - changes in 2.3.1
  http://www.trolltech.com/developer/changes/2.3.1.html
Notes they worked around some Windows OpenGL problems in Qt. Since Qt
source code is available, a check of differences may help provide
pointers to how you can fix your code in a similar manner. [though I
can see this might take some time...]

Why you need CS_OWNDC
  http://www.starstonesoftware.com/OpenGL/whyyou.htm
The author makes a correction in the "OpenGL Super Bible", and
highlights an inconsistency between various windows versions.

Good luck with your beta process and product roll out.

  --Maniac
swisscheese-ga rated this answer:5 out of 5 stars and gave an additional tip of: $5.00
Thanks very much for your informed answer. This should keep our
programmers busy for a while :-)

Comments  
Subject: Re: OpenGL
From: j_philipp-ga on 30 Jan 2003 22:20 PST
 
Hello Swisscheese,

Did you think about switching to Direct3D?
For a feature comparison, see:

Direct3D vs. OpenGL: A Comparison (May 2001)
http://www.xmission.com/~legalize/d3d-vs-opengl.html

Good luck!

Search terms:
"directx vs opengl"
Subject: Re: OpenGL
From: hammer-ga on 31 Jan 2003 08:11 PST
 
OpenGL knows how to query a system to determine its capabilities. The
trick is to do the querying and pay very close attention to the
answers. For example, if the system reports that it cannot do hardware
texture mapping, then you are responsible for making sure that you do
not try to do hardware texture mapping on that system. You may want to
look at your code and make sure that you are checking the capabilities
of the system before issuing instructions.

- Hammer
Subject: Re: OpenGL
From: swisscheese-ga on 31 Jan 2003 09:34 PST
 
Hammer - thanks for the tip - we'll look into that angle.
Subject: Re: OpenGL
From: funkywizard-ga on 31 Jan 2003 17:20 PST
 
opengl is a nice thing to use for those video cards that support it,
but many low end (consumer non-gamer oriented) graphics cards do not
support it properly. I am not familiar with the nitty gritty details
of implementing OpenGl, but perhaps you could have an option to
enable/disable graphics acceleration, that is, to make your program do
all open gl graphics computations in a software driven mode, instead
of relying on hardware graphics chip set. Most computers with low end
graphics boards will not run faster in accelerated mode anyway, and
you could have an option for hardware mode for those boards that have
acceleration.
Subject: Re: OpenGL
From: swisscheese-ga on 01 Feb 2003 10:00 PST
 
funkywizard - Thanks for your additional thoughts!

Important Disclaimer: Answers and comments provided on Google Answers are general information, and are not intended to substitute for informed professional medical, psychiatric, psychological, tax, legal, investment, accounting, or other professional advice. Google does not endorse, and expressly disclaims liability for any product, manufacturer, distributor, service or service provider mentioned or any opinion expressed in answers or comments. Please read carefully the Google Answers Terms of Service.

If you feel that you have found inappropriate content, please let us know by emailing us at answers-support@google.com with the question ID listed above. Thank you.
Search Google Answers for
Google Answers  


Google Home - Answers FAQ - Terms of Service - Privacy Policy