VkDoubleBuffer(3x)

VkDoubleBuffer - Abstract class supports classes that draw double- buffered graphics

As shipped in IRIX 6.5.5. Unchanged since IRIX 6.5.

NAME
     VkDoubleBuffer - Abstract class supports classes that draw double-
     buffered graphics

INHERITS FROM
     VkComponent : VkCallbackObject

HEADER FILE
     #include <Vk/VkDoubleBuffer.h>

PUBLIC PROTOCOL SUMMARY
   Constructor/Destructor
           VkDoubleBuffer(const char* name, Widget parent);
           virtual void ~VkDoubleBuffer(void);


   Switching Buffers
           virtual void update(void);


PROTECTED PROTOCOL SUMMARY
   Resizing and Refreshing the Canvas
           virtual void resize(void);
           virtual void draw(void) = 0;


   Protected Data Members
           Pixmap _canvas;


           Dimension _width;


           Dimension _height;


CLASS DESCRIPTION
          This class provides support for classes that need to display double
          buffered graphics.  The public interface allows applications to
          drive animations by calling the update() member function at the
          desired interval. The VkDoubleBuffer class calls derived classes'
          draw() member function when the derived class needs to draw a new
          frame.  Derived classes do not need to worry about handling window
          damage, as the VkDoubleBuffer class takes care of this
          automatically.



DERIVING SUBCLASSES
          Derived classes must define the draw member function. This member
          function is expected to display some Xlib text or Xlib graphics by
          drawing to the _canvas member, which is a Drawable. The derived
          class is always drawing to the back buffer, although derived classes
          do not need to be aware of this.

          Derived classes that need to know when the window has been resized
          can override the virtual function resize() to be notified.



FUNCTION DESCRIPTIONS
   resize()
           virtual void resize(void);


          Called when the object's drawable area changes size. The new size
          can be accessed in the _width and _height members.

   draw()
           virtual void draw(void) = 0;


          This pure virtual function must be defined by derived classes. The
          function is expected to use Xlib calls to display graphics in the
          _canvas Drawable.

   VkDoubleBuffer()
           VkDoubleBuffer(const char* name, Widget parent);


          Initialize the VkDoubleBuffer class and create various widgets and
          Pixmaps used to support the double buffering.

   ~VkDoubleBuffer()
           virtual void ~VkDoubleBuffer(void);


          Destroys the pixmaps and graphics contexts used by this class.

   update()
           virtual void update(void);


          Displays the current back buffer of the double-buffered display and
          requests the derived class to redraw a new back buffer.

DATA MEMBER DESCRIPTIONS
   _canvas
           Pixmap _canvas;


          Derived classes always draw to this Drawable. The VkDoubleBuffer
          class copies the contents of this Pixmap as needed.

   _width
           Dimension _width;


          The current width of the available drawing area.

   _height
           Dimension _height;


          The current height of the available drawing area.

EXAMPLE


INHERITED MEMBER FUNCTIONS
   Inherited from VkComponent
          installDestroyHandler(), removeDestroyHandler(), widgetDestroyed(),
          setDefaultResources(), getResources(), callCallbacks(),
          VkComponent(), manage(), unmanage(), baseWidget(), okToQuit(),
          _name, _baseWidget, _w, deleteCallback


   Inherited from VkCallbackObject
          callCallbacks(), addCallback(), removeCallback(),
          removeAllCallbacks()


KNOWN DERIVED CLASSES
     VkMeter, VkPie

CLASSES USED BY THIS CLASS
     VkApp

SEE ALSO
     VkComponent, VkApp
     ViewKit Programmer's Guide
     The X Window System, DEC Press, Bob Sheifler and Jim Gettys
     The X Window System Toolkit, DEC Press, Paul Asente and Ralph Swick
     The OSF/Motif Programmers Reference, Prentice Hall, OSF