9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: "andrey mirtchovski" <mirtchovski@gmail.com>
To: "Fans of the OS Plan 9 from Bell Labs" <9fans@cse.psu.edu>
Subject: Re: [9fans] Some libdraw help
Date: Fri,  8 Jun 2007 09:37:25 -0600	[thread overview]
Message-ID: <14ec7b180706080837o29f4436fh76ea771ad5a4524f@mail.gmail.com> (raw)
In-Reply-To: <46697374.1020507@kix.in>

see "loadimage" for the function that creates an Image * from a
bitstream. if you look at the xscreensaves hacks (xscr.tgz in
/contrib/andrey on sources) you'll find a couple that use that hack,
most notably "eruption".

you can fullscreen an application in two ways: use that app instead of
rio (then it'll use the entire screen but you won't be able to resize
it, or run any other draw app); or use a helper function (thanks to
Russ):

    % fullscr=`{echo $vgasize | awk -Fx '{print "0 0 " $1 " " $2}'}
    % window -r $fullscr myapp

cheers!

On 6/8/07, Anant Narayanan <anant@kix.in> wrote:
> 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
>


  reply	other threads:[~2007-06-08 15:37 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-06-08 15:19 Anant Narayanan
2007-06-08 15:37 ` andrey mirtchovski [this message]
2007-06-08 15:40   ` andrey mirtchovski
2007-06-08 15:37 ` Christian Kellermann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=14ec7b180706080837o29f4436fh76ea771ad5a4524f@mail.gmail.com \
    --to=mirtchovski@gmail.com \
    --cc=9fans@cse.psu.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).