OpenGL in a window with a Banshee..!! (it works!)

OpenGL in a window with a Banshee..!! (it works!)

Post by John Finne » Sat, 16 Jan 1999 04:00:00



Whilst having problems with setting up my Creative Labs Banshee card, and
messing round with all the various drivers etc. I came accross the
following:

- Use the Opengl32.dll provided by Creative in the opengl directory on the
  driver CD (about 768k, I think) in your application's base directory..

- In autoexec.bat, enter:
  SET OGL_ENABLE_RUSH_WINDOWING=1

..and you get openGl in a window! (for example, running glquake with:
  glquake -width 400 -height 300 -window
  will give you glquake in a window!)

I imagine that the version of the opengl32.dll provided by creative is
some kind of preview version of the full ICD to be released later..
(even though creative have said in their readme.txt file that their
drivers DON'T support opengl in a window)

It seems to work pretty well, but it isn't as fast as fullscreen (I've
only got a P200MMX, though) (oh - and your desktop needs to be in 16-bit
color or it messes up).

The idea for using the SET command came from looking at the .pdf release
notes supplied with 3dfx's opengl ICD version 2.1 beta, which describes
how to enable windowed support on the voodoo rush.. The limitations of
opengl in a window seem to be similar to those described for the voodoo
rush card.

Happy windowing - and here's looking forward to what the full ICD will be
like :-)

John.

      O   __    John Finney
   __  o /o \/  Southampton University, UK
 \/ o\   \__/\  Final Year -  BSc Computer Science

 
 
 

1. Ouch, wglMakeCurrent() twice DOES work on Banshee/W2K

Hi,

I've been saying 'Voodoo Banshee driver on W2K can't call
wglMakeCurrent() twice' a number of times here. Another example has
proven me wrong; I've d'loaded the CGlView.cpp/.h files from a link on
the OpenGL FAQ, and am using them in a car editor now (MFC/SDI); it
works flawlessly. So probably creating 2 contexts will work here too.
An apology to 3dfx for slamming on their driver! Ok, that's done. Now
for the fix.
With my own window opening code, it seems I can still NOT call
wglMakeCurrent() twice. I must check more with basic example programs
perhaps, but would rather do real work instead of finding out why
(cause other than that, the program that has the 2x wglMakeCurrent()
works fine if it gets by opening the window). But it's annoying, the
90%-way which it works now.

Seems I'm doing things too soon perhaps. I create a rendering context
right after CreateWindowEx(). Although the code is deep inside a big
class library (it's originall X11/SGI code), the window creation is
packed together. So I:

- CreateWindowEx()
(WS_OVERLAPPEDWINDOW|WS_CLIPSIBLING?S|WS_CLIPCHILDREN,
exStyle=WS_EX_APPWINDOW,WS_EX_WINDOWEDGE),
- ShowWindow(hwnd,SW_SHOW)
- SetForegroundWindow(hwnd)
- SetFocus(hwnd)
- hdc=GetDC(hwnd)
- pfd=...
- fmt=ChoosePixelFormat(hdc,&pfd);
- SetPixelFormat(hdc,fmt,pfd)
- hrc=wglCreateContext(hdc)
- wglMakeCurrent(hdc,hrc)
- wglMakeCurrent(hdc,hrc) <= here it always crashes

All in one stretch... (and all with return code error checking)

Could it be I'm creating an RC too soon? Like I should wait for the
window to actually be present? (wait for a WM_xxx event?)
It's good that I've seen some method that works (with MFC though), so
I know it should be possible somehow.

Anybody with bright (or less bright, also fine) ideas I could try?

Thanks,

Ruud van Gaal, GPL Rank +53.25
MarketGraph   : http://www.marketgraph.nl
Pencil art    : http://www.marketgraph.nl/gallery/
Car simulation: http://www.marketgraph.nl/gallery/racer/

2. Modeler

3. glReadPixels(): works under Windows 95, doesn't work under Windows NT

4. New IndyStudio: Questions

5. ExtCreatePen does not work in Windows 2000 but works in Windows 98

6. How to make GIF format?

7. OpenGL on Voodoo Banshee?

8. Creating a phantom picture

9. opengl on creative voodoo banshee

10. Opengl on Creative voodoo Banshee

11. No OpenGL with my Voodoo2 Creative 3D Blaster Banshee

12. opengl and banshee card

13. OpenGL or just my Banshee?