From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <46697374.1020507@kix.in> Date: Fri, 8 Jun 2007 20:49:16 +0530 From: Anant Narayanan User-Agent: Thunderbird 2.0.0.0 (Macintosh/20070326) MIME-Version: 1.0 To: Fans of the OS Plan 9 from Bell Labs <9fans@cse.psu.edu> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Subject: [9fans] Some libdraw help Topicbox-Message-UUID: 7b924950-ead2-11e9-9d60-3106f5b1d025 Hi All, I'm a little new to libdraw and need some advice on drawing bitmap data onto a window. I have with me some bitmap data on memory, the address of the first byte is known. I also know the width of the bitmap data and the total number of scanlines in it. The number of pixels in each scanline is rounded up so that each scanline is word-aligned. I also know the depth, i.e. the number of bits in a pixel. The color arrangement per pixel depends on the depth. In the case of a 32-bit depth, the 8 most significant bits are to be ignored, the next 8 bits represent the red, the next 8 green and the next 8 blue. For a 16 bit depth, the most significant bit is ignored and the next 15 bits are for red, green and blue respectively. So on for 8, 4, 2 and 1-bit depths. The byte order of the data is the same as that of the host CPU. Finally, I have with me the co-ordinates of a "mask rectangle", i.e. the portion of the bitmap that needs to updated on the screen. Consequently, the first time my function is called, the mask rectangle will be the entire window size; but later calls will contain mask rectangle co-ordinates for portions of the screen that need updating. Now for the questions :) 1) What is the best way to draw this bitmap data onto the screen? Note that the bitmap data on memory will not stick around, I have to copy it. I had a look at the Memimage set of methods, but am not sure that it's the best way to go about it. 2) Do I have to worry about endianness? 3) A general question (un-related to the description above): How can I create a "full-screen" window? "full-screen" means the application has the undivided attention of the user, like many games run in other operating systems. This is different from just resizing the window to the size of the screen because the window border would still be visible in this case :) Help would be most appreciated! Thank you, Regards, -- Anant