nanogui: Keep pixmap temporarily when GrMoveWindow()!


Previous by date: 20 Aug 2002 07:14:28 -0000 Re: set a timer when move the window!, Alex Holden
Next by date: 20 Aug 2002 07:14:28 -0000 Re: set a timer when move the window!, wang
Previous in thread:
Next in thread:

Subject: Keep pixmap temporarily when GrMoveWindow()!
From: "wang" ####@####.####
Date: 20 Aug 2002 07:14:28 -0000
Message-Id:

   In former mail,I have suggest we should cache the 
pixmap for a while when calling GrMoveWindow(),Jordan 
write:
>its a difficult thing to implement,especially without
>using much more memory resources that we should (ie,
>backing store).			
   Yep,I agree ,if we allocate a pixmap but do not release
it ,it should be a great waste of limited memory,so I 
say we should temporarily keep it ,and if we do not 
need it ,just release it.this is how I implement so:
   1.I difine a new pixmap_buffer structure:
     typedef struct{
            GR_WINDOW_ID pixid;
            GR_WINDOW_ID winid;
            time_t call_time;
     }pixmap_buffer;
     pixmap_buffer  pix_buffer;
   2.Every time when we call GrMoveWindow() ,it first 
look up pix_buffer.pixid,if it's null ,just allocate a pixmap.
and set the create time to pix_buffer.call_time.
or it's not null(currently not released),but not the window
we want cached in it ,just release it and reallocate a pixmap.
and set pix_buffer.winid to the id of the window we want move.
then do what we have done.   however ,if it's not null and the 
cached window is what we want ,just copy it to the new area.
GrMoveWindow() does not releade the pixmap,this is what we 
should do next step.
   3.In every GrSelect() loop ,we check pix_buffer.pixid ,if 
it's null ,just go ahead ,otherwise ,get current time ,compare 
with the create time of the pixmap ,if more than 5s(I think a 
dragging should less than 5s or even less),release the pixmap ,and 
set all members of pix_buffer to null.
   By the way I want to make it optional.

 also if you have enough memory ,you can cache more than one or
two windows for dragging or some other use such as expose.

  Any comments are welcome!

   
        wang
####@####.####
          2002-08-20




Previous by date: 20 Aug 2002 07:14:28 -0000 Re: set a timer when move the window!, Alex Holden
Next by date: 20 Aug 2002 07:14:28 -0000 Re: set a timer when move the window!, wang
Previous in thread:
Next in thread:


Powered by ezmlm-browse 0.20.