Path: utzoo!utgpu!news-server.csri.toronto.edu!bonnie.concordia.ca!thunder.mcrcim.mcgill.edu!snorkelwacker.mit.edu!mintaka!wookumz.ai.mit.edu!rjc From: rjc@wookumz.ai.mit.edu (Ray Cromwell) Newsgroups: comp.sys.amiga.programmer Subject: Sharing layers.library with intuition Message-ID: <1991Jan11.001055.2055@mintaka.lcs.mit.edu> Date: 11 Jan 91 00:10:55 GMT Sender: daemon@mintaka.lcs.mit.edu (Lucifer Maleficius) Followup-To: comp.sys.amiga.programmer Organization: None Lines: 55 Hi. I've been doing some experimenting lately and started designing an alternative 'window' system to intuition. I don't intend it as a replacement, or even to distribute it, so please no debates. (although it would be nice to have a few alternative GUI's on the Amiga, e.g. Xwindows, Motif) Ok, so what is the proper way to 'share' a screen with intuition? I tried to do something like this: BOOL GetScreenData(&myscreen,sizeof(myscreen),WBENCHSCREEN,NULL); MyLayer=CreateUpfrontLayer(&myscreen.LayerInfo,&myscreen.BitMap,x,y,x1,y1, NULL); myrast=MyLayer->rp; This gets me a layer on the screen that I can render into, but it doesn't open up 'on top of' the data and windows underneath. Instead it 'takes over' the data in that region. So my layer ends up stealing part of the bitmap that was underneath belonging to my shell window. I realize what I'm doing is probably considered voodoo, however, I'm only experimenting. So how do I 'share' intuition's screen and let it know about it? And what am I doing wrong in the above example? I was thinking of some neat looks for my 'simulated' windows once I get past this hurdle, such as having the MenuBar/Menus pull down from the window title(inside the window) instead of at the top of the screen. (the menus would also support huge menu bars by making them superbitmaps, and having a scrollup/down menuitem as standard. I also want to hack in some window effects like masked windows, windows that explode/collaspe [like Mac], and wipes/effects.) I'd also like to report a bug in PDC. The last update causes a recoverable alert(under 1.3) on my system. The Alert is 00038005 which has something to do with an OpenLibrary/MathLib (from exec/alerts.h) I had to go back to the older version. Funny, PDC works fine standalone, but when launched from the CCX frontend, it causes that alert. For Commodore gurus, why is LayersBase only a LONG(APTR) I assumed it would atleast keep a simple structure, say, to store its internal damage lists? Why does graphics/intuition keep pointers laying around to other library bases? (such as in IntuitionBase) Shouldn't the system libraries abide the same rules we do, and open other libraries to obtain their bases instead of performing inter-library rom-jumping? (ok, i'm making a huge assumption here since I haven't disassembled them.) Finally 2 more question. (cause I'm curious) 1)How do graphics library/icon library implement icons/bobs? Are they layers, or are they implemented seperately? 2) In a rough estimate, how many lines of source code does the entire OS take up? (1.3/2.0) and what compiler/system is it developed on? Unix, Vax, or Amiga?