[<<] [<] Page 1 of 1 [>] [>>] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Subject:
Microwindows - Back to Basics
From: Ron ####@####.#### Date: 12 Oct 1999 01:09:48 -0000 Message-Id: <380307E8.8E119092@office.it> Does any one know of a better way to find out what part of a partially covered window to update other than calculating all of the clip rectangles? This "Basic" question has bugged me since the late 80's and I still have not found an "easy'" way to do it. Back then I could fool most of my customers into thinking that their new hardware ran on a "Real" windowing system by just following the simple rule (read scam) that only the infocus window can be updated and only the top window can be in focus. A lot of that hardware is still around and most of the end users still have not caught on. Drawing routines get very fast if you can ignore all those clip points. In 90 or 91 I bought one of those expensive (at that time) 3rd party graphics tool kits that supported lot's of hardware and drawing to virtual screen buffers. I used this new library as the base of my new windowing system for intel hardware but I still had the problem of "what to update" when it came time to repaint the screen. My memory hog of a solution (Remember even 4 meg was a lot back then) was to draw all windows to ram virtual buffers and at repaint time check for overlap on upper windows and then blast all need windows to the screen. Since the screen was being double buffered the extra repaints from overlaps was hidden. Since drawing to ram in 256 color mode was very fast the only real waste - other than all the ram needed - was in the repainting of overlapping windows. The benefits of the system from my point of view - it was simple - the logic of figuring out what to send to the screen was a no brainer. It also didn't suffer from the oh-oh I just ran out of clip rectangles problem. Unfortunately the real world came into play again and the windowing system had to run on a V25 cpu with only 256k of static ram and an EGA card. Back to counting rectangles again. Its now 10 years later and we are still counting rectangles. Is there a better way? | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Subject:
Re: Microwindows - Back to Basics
From: "Greg Haerr" ####@####.#### Date: 12 Oct 1999 01:34:49 -0000 Message-Id: <002201bf1450$b9ecb420$14320cd0@censoft.com> Its now 10 years later and we are still counting rectangles. Is : there a better way? Not that I know of. I spent a good month making sure that all the rectangle management is performed properly in NanoX and Microwindows, and we're still not done. BTW, this method uses a heck of a lot less ram than the method you were using in '91. All this stuff computes rectangles for every graphics context change, and it still runs in ~ 40k. Greg | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[<<] [<] Page 1 of 1 [>] [>>] |