Mail Archives: djgpp/1999/08/03/05:57:59
RaniNmich writes:
> I have opengl95.exe
That's a Windows OpenGL implementation, so you need to be making a
Windows program if you want to use it. You can probably do this with
RSXNT.
If you want to use OpenGL in DOS, get the free MESA implementation
from www.mesa3d.org. This has at various points been usable with
djgpp, but I have a feeling that the current version has some
problems due to lack of anyone maintaining it. There are no particular
reasons why it would be difficult to fix, though, given somebody
who was motivated to do this.
The DOS version of MESA won't give you any hardware acceleration,
but it does have support for some 3d chipsets on other platforms,
particular for 3Dfx cards using the Glide libs, so this is also
doable given someone with the time and motivation to work on it.
> And while I'm at it, can Allegro be used with OpenGL? If so, how?
You can use MESA software rendering to draw onto Allegro bitmap
surfaces. There were some patches that did this a few years ago,
which have probably suffered from code rot by now, but it isn't
a particularly hard thing to do.
Using Allegro alongside a hardware accelerated OpenGL implementation
seems to be pretty much impossible, due to some very different
assumptions about how things should be set up, and conflicts over
who controls the hardware. I did quite a bit of work trying to
get this going using the recent Windows version of Allegro alongside
the Microsoft OpenGL implementation, and although it is possible
to get them both drawing in the same window, this isn't useful
because OpenGL does double buffering with a hidden surface that
Allegro has no way to access, and the repeated switches between
2d and 3d rendering modes causes a complete flush of the 3d
pipeline, which is very harmful to the performance of your code.
This is because the current generation of PC graphics hardware
is optimised for very deep queueing of 3d commands, with the
card often running as much as a frame behind the host processor,
while 2d commands are executed immediately, so when you try to
use both methods of drawing at the same time, you lose a whole
frame each time you switch. Better hardware doesn't have this
problem, but SGI machines tend to be quite expensive :-)
Shawn Hargreaves.
- Raw text -