CLIM mail archive


Screen update and feeling the bits between your toes

    Date: Fri, 11 Oct 1991 19:44-0000
    From: Scott McKay <>

	Date: Fri, 11 Oct 1991 11:54 EDT
	From:	Jim Mayer <>

	Is there a mechanism within CLIM that would allow me to move areas of
	screen real estate around without redrawing?  The kind of think I am
	thinking of is what most terminal emulators do when they insert a new
	line: rather than redraw the bottom half of the screen, they BITBLT
	the bottom half down one line height's worth of bits.

    I have a working implementation of "pixmaps" for CLIM 1.0 for both
    Genera and CLX, but have not yet installed it.  I also don't know
    exactly how to distribute it once it's installed.

    Regardless of that, keep in mind that COPY-AREA (that's what I call it)
    is a pure device-oriented operation.  It does not move output records or
    presentations, it just moves raw bits.  If you want presentations to
    move, you will have to move them yourself.

    I know I have hacks that can benefit from even this very restricted
    operation, but I don't know if it is enough for anyone else?  Comments
    on this, anyone?

I very often use tools that allow the user to slide/pan etc. a
presentation by (a) erasing the presentation (b) outputting the
presentation onto a raster which (c) tracks the mouse until the mouse is
released and (d) the presentation is represented in the new location and

This technique I find robust and very easy to program and use.

Anything that provides a vehicle to machine independence of this type of
operation would be very valuable.

An extra level of control required is clear control of the "plane" in
which the movements are contrained - ie. pane, frame, screen, ... whilst
being allowed to step into viewport scrolling etc. as required.

BTW, when trying to move the raster about the screen, I constantly loose
when trying to use #+symbolics graphics:draw-image especially in color,
so I have always gone for the lowest level bitblting where I can
understand alus and get performance.

What general approach should I be adopting in order to take this sort
functionality into the new dawn of CLIM and portability?

Follow-Ups: References:

Main Index | Thread Index