jrv@demon.siemens.com (James R Vallino) (04/30/91)
I'm scoping out an image processing application which I want to be a Windows application. (The marketing folks would like this a lot.) The frame buffer boards which I am looking at are at least 1k x 1k and have 34010 or 34020 processors on them. All of them have TIGA drivers available. I will also create extensions to the TIGA interface to perform my image processing tasks. In looking at the implications of using Windows I have come upon some issues for which I don't have any answers. (If while reading this you think of all the other things which I missed let me know that too!) The major problem I am seeing is the interaction between Windows thinking it owns the display and my image processing routines thinking they own it. Here are some of the ideas which I have come up with for my user interface: - use one monitor for the Windows user interface stuff and a second one for the frame buffer which has my pixel data. This really won't fly. - bag the marketing "benefit" and just create a DOS application. Roll my own user interface menus, etc. We've done that before and can do it again. - use the VGA pass through mode to create two monitors on one. This also won't fly because some of the user interaction requires the image to be visible. VGA pass through gives you one (Windows) or the other (image data) on the single screen but not both at once. - only allow my application to be run maximized and force it to be minimized as soon as it losses the focus. This can probably be done but does not seem like a very good user interface to me. - use a frame buffer with overlay planes. The Windows interface writes to the overlay planes. I would have to reserve one color for transparent where I want my pixel data to show through in the client area for my application. This costs more for my display board. Ignoring that, there is the potential for a problem if another windows application uses the "transparent" color inadvertently. Parts of my image data would bleed through that applications window area. - venture into the unknown and attempt to run my algorithms on my image within a Windows window. First, can a Windows application cleanly get access to one of the extensions I have added to my TIGA interface? Secondly, I have not seen an obvious way in which Windows will tell an application when part of its client area is being overwritten. It assumes that the application can always restore its client area when the WM_PAINT message is sent. For me this is not the case. Some of the pixels stored in the display buffer are my only copies of the processed data. Before Windows jumps in and overwrites any of them I have to be able to save them. I would have to create a shadow copy of the processed data in non-displayed memory on the display board. At that point I must interrupt any processing which the 34010/20 is performing. I would need a board which allows an application to generate an interrupt on the 34010/20. I will either have to stop all image operations at this point or have enough smarts in my algorithms to continue work with some data in displayable memory and the overwritten data which is now in a non-displayed piece of display board memory. If anyone else is pondering, struggling with an application similar to this it would appreciate any comment, condolences, words of advice, words of warning, etc. Thanks for any information. -- Jim Vallino Siemens Corporate Research, Inc., Princeton, NJ jrv@demon.siemens.com princeton!siemens!demon!jrv (609) 734-3331