[comp.windows.ms.programmer] Suitability of Windows platform

jdb@reef.cis.ufl.edu (Brian K. W. Hook) (03/07/91)

I am an MS-DOS programmer working in VR (Virtual Reality) research and have
been contemplating doing some work in VR under Windows 3.0.  However, I am
not a Windows programmer so I am not very familiar with the suitability of
its functions.  If someone could please answer these questions via
E-MAIL(!) I would appreciate the help deciding if it is right for my
purposes.

1.  Does Windows support joystick (at all) and mouse and joystick
simultaneously?
2.  Can I write a 8+ bit ONLY application under Windows, or will it dither
to lower (4-bit) resolution?
3.  I understand that I can write a lot of my functions using far calls and
store them in a separate file/library, much like a shared lib under UNIX or
VMS (I believe they are called DLLs).  Please tell me about these.
4.  Does Windows supply me with information on determining the current
hardware (type of processor, video adapter, etc.)?  Most of the tricks I
have heard of determining clock speed and chip type won't work under
enhanced mode windows.
5.  What is the maximum color resolution of Windows?  Will it do 16 or
24-bit color?
6.  How good is Windows in doing frame animation?
7.  How good is Windows in doing high speed (19,200bps) asynch
communications over COM1 and COM2 to another Windows machine?
8.  Does Windows automatically take advantage of a math coprocessor?

This is all to do a real time, rendered architecture design tool that will
allow multiple users to be "inside" a structure of some type and do a
complete walk through.  I do not want to go to a system that is proprietary
since many of the Windows niceties would be very helpful, I daresay
REQUIRED, for what I am doing (multiple instances of the same program, the
help engine, etc.)....

ANY help would be appreciated.

Brian

rdippold@maui.qualcomm.com (Ron Dippold) (03/08/91)

In article <27331@uflorida.cis.ufl.EDU> jdb@reef.cis.ufl.edu (Brian K. W. Hook) writes:
>1.  Does Windows support joystick (at all) and mouse and joystick
>simultaneously?

No built in joystick support.  No problem with you accessing the joystick,
though.

>2.  Can I write a 8+ bit ONLY application under Windows, or will it dither
>to lower (4-bit) resolution?

If your video driver/card can handle 8 bits it will do the true 8 bits, other-
wise it will dither.

>3.  I understand that I can write a lot of my functions using far calls and
>store them in a separate file/library, much like a shared lib under UNIX or
>VMS (I believe they are called DLLs).  Please tell me about these.

It's a Dynamic Link Library.  All you do is tell the compiler to link some
of your modules together into one of these.  When you compile your program
you tell it about the DLL, and whenever it needs one of the functions it will
load it from there.

>4.  Does Windows supply me with information on determining the current
>hardware (type of processor, video adapter, etc.)?  Most of the tricks I
>have heard of determining clock speed and chip type won't work under
>enhanced mode windows.

No idea.  It will tell you colors, resolution of the current video driver.

>5.  What is the maximum color resolution of Windows?  Will it do 16 or
>24-bit color?

It will do 24-bit color.

>6.  How good is Windows in doing frame animation?
It sucks.  Horribly.  You can't do page flipping or any other reasonable
way of animation.

>7.  How good is Windows in doing high speed (19,200bps) asynch
>communications over COM1 and COM2 to another Windows machine?
 
It's even worse.  You will need something like the Hayes ESP card to get
reliable transfers at that rate.

>8.  Does Windows automatically take advantage of a math coprocessor?

It doesn't need to, it doesn't do any floating point math.  Your program can
use it with no problem, however.

bcw@rti.rti.org (Bruce Wright) (03/08/91)

In article <1991Mar8.014410.22510@qualcomm.com>, rdippold@maui.qualcomm.com (Ron Dippold) writes:
> In article <27331@uflorida.cis.ufl.EDU> jdb@reef.cis.ufl.edu (Brian K. W. Hook) writes:
> >4.  Does Windows supply me with information on determining the current
> >hardware (type of processor, video adapter, etc.)?  Most of the tricks I
> >have heard of determining clock speed and chip type won't work under
> >enhanced mode windows.
> 
> No idea.  It will tell you colors, resolution of the current video driver.

The GetWinFlags routine will return whether you have an 80x87, which
processor you are running on (8086/186/286/386/486), whether you are
running in 386 mode, standard mode, or real mode, and so forth.  It
doesn't return the clock speed.  I don't know if there's a standard 
way to get the hardware clock speed under Windows - it's probably an 
undocumented interface if there is.

As I mentioned to someone else interested in animation, Windows doesn't
really provide very good support for animation, or for 3-d viewing for
that matter.  Doing bitblt's is sufficient for some simple levels of
animation, and may be sufficient for your purposes given a sufficiently 
fast machine and how much jerkyness you can stand.

Good luck -

						Bruce C. Wright

johnm@spudge.UUCP (John Munsch) (03/08/91)

In article <1991Mar8.014410.22510@qualcomm.com> rdippold@maui.qualcomm.com (Ron Dippold) writes:
>In article <27331@uflorida.cis.ufl.EDU> jdb@reef.cis.ufl.edu (Brian K. W. Hook) writes:
>>1.  Does Windows support joystick (at all) and mouse and joystick
>>simultaneously?
>
>No built in joystick support.  No problem with you accessing the joystick,
>though.

Multimedia Windows adds joystick support.  Consult the article on Multimedia
Windows in the latest issue of Microsoft Systems Journal for more information.

>>2.  Can I write a 8+ bit ONLY application under Windows, or will it dither
>>to lower (4-bit) resolution?
>If your video driver/card can handle 8 bits it will do the true 8 bits, other-
>wise it will dither.

Windows 3.0 is capable of dithering ONLY solid areas of color for you.  If you
blit 8 bit data to a 4 bit display driver you will not get a dithered version
of the bitmap, you will get a version of the bitmap with weird colors.  Any 
bitmap dithering must be done by you, if you want any.  If you don't then
Windows will happily let you take advantage of 8, 16, or 24 bit display
adapters.

>>6.  How good is Windows in doing frame animation?
>It sucks.  Horribly.  You can't do page flipping or any other reasonable
>way of animation.

If you had a video card with a high speed blitter and a video driver that took
advantage of it, it wouldn't be so bad.  It wouldn't be as smooth as animation
on an Amiga because ther are no provisions for double buffering, but it wouldn't
be terrible.  Without a blitter though, it sucks louder than a Hoover.  Believe
me, I've done it.

John Munsch

bcw@rti.rti.org (Bruce Wright) (03/11/91)

In article <28223@spudge.UUCP>, johnm@spudge.UUCP (John Munsch) writes:
> In article <1991Mar8.014410.22510@qualcomm.com> rdippold@maui.qualcomm.com (Ron Dippold) writes:
> >In article <27331@uflorida.cis.ufl.EDU> jdb@reef.cis.ufl.edu (Brian K. W. Hook) writes:
> >>6.  How good is Windows in doing frame animation?
> >It sucks.  Horribly.  You can't do page flipping or any other reasonable
> >way of animation.
> If you had a video card with a high speed blitter and a video driver that
> took advantage of it, it wouldn't be so bad.  It wouldn't be as smooth as
> animation on an Amiga because ther are no provisions for double buffering,
> but it wouldn't be terrible.  Without a blitter though, it sucks louder 
> than a Hoover.  Believe me, I've done it.

It sort of depends on what kind of animation you want.  If you want
full-screen real-time animation, maybe even with perspective a la 
Flight Simulator, this comment is probably justified.  If you would be 
satisfied with a cartoon-like animation of small object(s) moving 
against a static background, the bitblt operation is sufficient, though 
it might be a bit jerky on 4.77 MHz 8088 machines or even on slow 
286 machines, depending on how big the objects are and how many of 
them there are.  If you just want to show occasional movement of the
observer in a static 3-d environment, it may be barely adequate.

On true full-screen animation you might even be able to see the new
bitmap roll down the screen on top of the old bitmap, especially on a
slow machine (probably not on a fast 386 though).

The multimedia version of Windows (and presumably Windows V3.1 when
it finally comes out) is supposed to have a more efficient bitblt
algorithm that takes advantage of 286 and 386 instructions if it
is running on one of those machines.  I don't know if it would make
enough difference to make true animation reasonable, but Microsoft
themselves say that the first release of the multimedia version will
concentrate on sound rather than on video - waiting for the video
hardware to catch up with things like hardware blitters.

						Bruce C. Wright