Debating Developing New Project in DirectX or OpenGL

Hi All,

First timer here with a slew of newbie questions tward Win32 development. I’m porting a meteorological (weather) program from DOS to Win32. I wish to (initialy) keep the custom GUI as is for ease of transition to the new product. A more ‘proper’ Win32 GUI may be in the future But I have some questions I hope you can help with.

I’m debating using DirectX or OpenGL for the graphics. The Win32 GDI is OK (I guess) for ‘standard’ stuff but I wish to lay a foundation for more advanced stuff later on’ such as animation & 3D rendering of parameters (temperature, pressure, etc.).
Problem 1: the program is written in Fortran with screen calls in Assembly code & ANSI.SYS device drivers. I’m using Compaq Visual Fortran & I know OpenGL has been ported to Fortran by the folks at NIST. I would imaging that would make it easier to do instead of having to do calls for DirectX in C/C++.

Problem 2: I wish to run the program in Fullscreen mode with everything on the screen scaling to proper perspective for a given screen resolution. The Win32 GDI supports this (bearly) & I know DirecX does but does OpenGL?

Problem 3: This code needs to run on ‘any’ Win32 platform reguardless of video board… even if it means 640x480x16 colors. Can OpenGL do this? I’ve seen threads about some video boards not doing some OpenGL things. I know this may mean sacrificing animation speed but a ‘basic’ drawing display is better than a blank screen!

Problem (question) 4: Can OpenGL be used to impliment a basic 2D GUI with operation done either with the keyboard &/or the mouse & with dynamic menus & data entry?

Problem 5: In using this discussion group, how many are versed in the Fortran version of OpenGL to help me along?

I believe I would feel more comfortable with DirectX but…I’m not that experienced in C/C++, DirectX has not (yet) been ported to Fortran & I’m not experienced ‘shuffling’ between Fortran & C/C++ although it can be done. My experience is in Fortran.

Question, questions, questions…any & all help & advice is welcome. Thanks in advance!

Jeff Krob
jkrob@ezy.net
jkrob@wcda.noaa.gov

1: True, there is fortran-bindings for OpenGL, that would make it alot easier for you to port. However, you might have to get rid of the use of ansi.sys though.

2: Yes, OpenGL supports fullscreen rendering. It’s just a few calls and you have a fullscreen at any resuolution and colordepth.

3: The good thing with OpenGL is that if you have drivers for OpenGL, there is nothing that prevents your program from running. If someone has an old card that doesn’t support hardware acceleration, you can still run the program, but it will be in software and it will still look the same (more or less).

4: Inputs and menus is not a part of OpenGL, so it’s up to you to code. Menus and buttons can be abit tough to code, since you have to do it yourself, unless you want to use Windows native menus if you run windowed mode. Keypresses can easily be detected via the WM_KEYDOWN-message. So the answer is, yes, it can be done.

If you don’t know C/C++ that much, and DirecX is not available for Fortran, then stick to OpenGL, it’s extremely easy to learn and use.

And last but not least, http://nehe.gamedev.net/ got some awesome OpenGL tutorials, most of them available in Fortran aswell.