Subject:
|
Re: LDGLite outputting gobble-dee-goo to terminal window
|
Newsgroups:
|
lugnet.cad.dev.mac, lugnet.cad.dev
|
Date:
|
Fri, 25 Jul 2003 16:54:23 GMT
|
Viewed:
|
2465 times
|
| |
| |
In lugnet.cad.dev.mac, Don Heyse wrote:
> In lugnet.cad.dev.mac, Don Heyse wrote:
> > In lugnet.cad.dev.mac, Christopher Masi wrote:
> > >
> > > Whoa, that is weird. Are you calling different drivers or is the OS
> > > doing that? By the way, 640x480 works fine selecting parts and moving
> > > them in -le or -LE mode. 800x600 doesn't, and 1024x740 works as
> > > previously described.
> >
> > The OS is selecting the drivers. If I want to select them myself I
> > have to write all sorts of icky OS specific code.
> >
> > > Man nothing works like you would expect it to when you are programing,
> > > huh :)?
> >
> > It gets worse. I did some searching on this. Apparently, according to
> > the source on this page, I may need to check if my opengl context has
> > been changed anytime the window is resized.
> >
> > http://developer.apple.com/samplecode/Sample_Code/Graphics_3D/Carbon_OpenGL/main.c.htm
> >
> > That means I also have to adjust any OpenGL context dependent bug fixes
> > whenever the the window is resized. I'm opening this discussion up beyond
> > the mac group because I'm hoping someone (like Travis) can tell me if
> > this is true on other platforms besides the Mac.
>
> Found some more info. This makes it even more clear.
>
> http://developer.apple.com/qa/qa2001/qa1209.html
>
> Naturally it only shows icky Cocoa code. I may have to examine the
> apple glut sources to see how much of this is actually handled in glut.
> I wouldn't be suprised to find some bugs there. And I still have to
> change my program's behavior on the fly anyhow.
>
> I've started running into links suggesting that Windows XP suffers from
> this "feature" as well. Yikes!
OK, I looked at the code above, and all it seems to do is tell its OpenGL
context to update every time the window is resized. If their glut doesn't do
this, then it is broken. As far as I know, there isn't any equivalent to this
in Windows. The only real things you can do with an OpenGL context are create
it, delete it, make it current, and make it not current. (There are actually a
number of other wgl functions, but none of them is like the update on the Apple.
You can look up "WGL functions [OpenGL]" in MSDN library if you're interested.)
Having said this, it should be noted that if you have an older video card in
Windows, and resize a relatively small window to be larger than the video card
can handle, it becomes very slow, apparently going into software mode. I'm not
sure how it is handled, but the context doesn't change, and is still listed as
being provided by the video card, not Microsoft (at least with my ATI card at
work).
However, any time you go to fullscreen mode at a different resolution or color
depth, you are supposed to completely destroy your original context, and create
a new one from scratch. This requires you to also destroy and re-create the
window that the context is attached to, because the two are closely linked.
After doing this, you have to rebuild any display lists, rebind any textures,
and do all of your other first-time OpenGL setup.
--Travis Cobbs
|
|
Message has 1 Reply:
Message is in Reply To:
36 Messages in This Thread:
- Entire Thread on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
This Message and its Replies on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
|
|
|
|