Back to the beginning of class HT_Renderer


HT_Renderer::draw_3d_polygon

Purpose

Draws a filled polygon, specified in 3D object coordinates.Synopsis
void draw_3d_polygon (
    HT_Rendition const &       hr,
    HT_Polygon &               polygon
)
Details This draws a filled polygon, specified by the object polygon.

polygon->count() and polygon->points() specify an array of vertices that define the polygon, which may have arbitrary complexity. Specifically, the face boundary is a closed, connected polyline. It may enclose a non-convex region, but may not intersect itself.

The polygon is filled with a constant color, determined by the face color attribute in the rendition, possibly overlaid with a pattern given by the face pattern and contrast color attributes.

This routine does not draw a polygon edge distinct from the face color. An application which wants edged polygons must explicitly draw the edge with a call to draw_3d_polyline.


HT_Renderer::draw_3d_polyline

Purpose

Draws a polyline, specified in 3D object coordinates.Synopsis
void draw_3d_polyline (
    HT_Rendition const &       hr,
    HT_Polyline const &        polyline // Polyline descriptor
)
Attributes For a description of the applicable attributes, see class HT_Render:public HT_Object, 2D and DC drawing methods, draw_dc_polyline.Details polyline->count() is the number of vertices, that is, one plus the number of polyline segments.

polyline->points() points to an array of points giving the polyline vertices in order.
 
 


HT_Renderer::draw_3d_polymarker

Purpose

Draws a set of markers at positions specified in 3D object coordinates.Synopsis
void draw_3d_polymarker (
    HT_Rendition const & hr,
    HT_Polymarker & polymarker
)
Details This draws a set of markers of a type determined by the value of the marker symbol attribute.

polyline->count() is the number of polymarkers to draw.

polyline->points() points to an array of points giving the polymarker vertices.


HT_Renderer::draw_3d_polytriangle

Purpose

Draws a filled polytriangle specified in 3D object coordinates.
void draw_3d_polytriangle (
    HT_Rendition const &       hr,
    HT_Polytriangle &          polytriangle
)
Details polytriangle->count() is the number of vertices of the polytriangle.

polytriangle->points() points to an array of polytriangle->count() points, forming polytriangle->count()-2 triangles. Each triple of successive points are the vertices of one triangle of the strip.

This routine does not draw a triangle edge distinct from the face color. An application which needs edged polygons must explicitly draw in the edge with a call to draw_3d_polyline.



HT_Renderer::draw_3d_shell

Purpose

Draws a collection of triangle strips with indexed face and vertex colors, normals, edge colors and normals, and texture map parameters, specified in 3D object coordinates.  In contrast to HT_Tristrip, HT_Shell specifies vertex coordinates, parameters, and normals indirectly by index.  This permits a more compact and flexible description of geometry.Synopsis
void draw_3d_shell (
    HT_Rendition const &       hr,
    HT_Shell const &           shell // Shell descriptor
)
Details This is used to draw strips of triangles with indexed face and vertex colors, normals, edge colors and normals, and texture map parameters, specified in 3D object coordinates.

shell->points(), if not null, points to an array of HT_Point that contains the vertices referenced in all the triangle strips.

shell->points_d(), if not null, points to an array of HT_Point_D that contains the vertices referenced in all the triangle strips.

shell->strips() gives the number of strips.

shell->lengths() is an array of strip lengths.

shell->set_indices(num_strips, lengths, vertex_indices) defines the sequences of vertices and faces defining the tristrips. The first parameter specifies the number of strips. The second parameter gives an array of integers specifying the number of vertices in each strip. The last parameter gives an array of lists specifying the connectivity of each strip.

For example, the shell of Figure 6a consists of two triangle strips of length 5 and 6.  The first strip is specified by vertex indices {4, 2, 3, 1, 0}} and the second by {0, 5, 3, 6, 4, 7}.
int num_strips = 2;
int * lengths[] = {5, 6};
int * connectivities[] = {4, 2, 3, 1, 0, 0, 5, 3, 6, 4, 7};
HT_Point points[] = {v0, v1, v2, v3, v4, v5, v6, v7};
HT_Shell shell(8, points);
shell.set_indices (num_strips, lengths, connectivities);
 
shell.strips() = 2
shell.lengths() = {5, 6}
shell.total_length() = 11
Figure 6a. Sample shell
shell->vertex_colors(), if not null, points to the first of an array of colors associated with the vertices. The color of a particular vertex is indexed by shell->vertex_color_indices().   For example, if color_index[] = {2, 3, 1, 0} and colors[] = {HK_Red, HK_Green, HK_Blue, HK_Black}, then the first vertex is blue, the second is black, the third is green, and the last is red.

shell->vertex_normals(), if not null, points to a vector normal array. The normal of a particular vertex is indexed by shell->vertex_normal_indices().

shell->vertex_parameters(), if not null, points to texture mapping coordinates associated with vertices. When texture mapping is in effect, it points to an array of HT_Parameter. An HT_Parameter consists of a triplet of floats per vertex, containing the u, v, and w parameters. The interface now allows for "n" triplets of texture vertex parameter data to be associated with each vertex.  The first place this is seen is in the set_vertex_parameters() member function. For more information see HT_Vertex_Set::set_vertex_parameters.  The parameter of a particular vertex is indexed by shell->vertex_parameter_indices().

shell->face_normals(), if not null, points to an array of normal vectors associated with faces. The normal of a particular face is indexed by shell->face_normal_indices()

shell->face_colors(), if not null, points to an array of HT_RGB32 colors associated with faces. The color for a particular face is by the indexed by shell->face_color_indices().

For more information see class HT_Shell.
 


HT_Renderer::draw_3d_text

Purpose

This action draws 3D text similar to other geometry, instead of directly calling the Font Engine.
void draw_3d_text (HT_Rendition const & hr,
                           HT_Text const & txt) const
Details The result of the default actions is the same as if you directly called the draw functions on the Font_Engine. In the default implementation the 3d_text action transforms the point and calls the draw_2d_text action.  The (float) 2d_text converts to int and calls the int version of 2d_text.  The int version then calls out to the Font_Engine associated with the font on the Rendition.

This new scheme allows a renderer to replace the text actions and treat text as just another piece of geometry.  For example, a renderer that stores geometry and replays it back later (that is, sorted by position, or multiple times for banded plotting) no longer needs to have special code to deal with text or force tessellation of text into "simple" geometry for storage.

HT_Text is a new class with a different constructor to handle a single or double precision position, and either normal chars, with optional length, or wide chars ¾ unsigned short.

For more information, see draw_2d_text and HT_Font_Engine.
 



HT_Renderer::draw_3d_tristrip

Purpose

Draws a series of connected triangles with associated face and vertex colors, normals, edge colors and normals, and texture map parameters, specified in 3D object coordinatesSynopsis
void draw_3d_tristrip (
    HT_Rendition const &       hr,
    HT_Tristrip const &        tristrip   // Triangle strip descriptor
)
Details This is used to draw strips of triangles with face and vertex colors, normals, edge colors and normals, and texture map parameters, specified in 3D object coordinates.

The tristrip->points() array points to the first of an array of 3D points that contain the vertices of all the triangle strips in the list.

tristrip->connectivity(), if not null, defines the sequences of vertices and faces defining the tristrips. The format of the connectivity list is described in the following steps:

    1. The first three values are the vertices of the first face.
    2. The next value is the face number for these three vertices.
    3. Next is a pair of numbers describing the next face. The first value in the pair is a single vertex for the next face, which uses the second and third vertices of the previous face. The second value is the face number for this next face.
      If the vertex value is negative, then the complement value of the vertex is the vertex number and this also indicates the end of this substrip. The next substrip begins back at step #1.
      If the face number is negative, then the complement value of the face number is the actual face number and this also indicates the end of the tristrip.
    4. Repeat step 3.
For example, a list of 0,1,3,0,2,1,~4,2,0,5,3,3,6,4,4,5,~7,~6 means vertices 0, 1, and 3 form face 0; vertices 1, 3, and 2 form face 1; vertices 3, 2, and ~(~4) form face 2 and we are done with the first substrip. Starting anew, vertices 0, 5, and 3 form face 3; vertices 5, 3, and 6 form face 4, vertices 3, 6, and 4 form face 5; vertices 6, 4, and ~(~7) form face ~(~6) and this is the end of the second substrip and the end of the tristrip. Figure 6 shows a tristrip conforming to the example list
Sample list = { 0,1,3,0,2,1,~4,2,0,5,3,3,6,4,4,5,~7,~6 }
Figure 6. Sample tristrip
tristrip->vertex_colors() , if not null, points to the first of an array of colors associated with the vertices. The color of a particular vertex has the same index in the array as the vertex in tristrip->points().

tristrip->vertex_normals(), if not null, points to the beginning of a vector normal array.

tristrip->vertex_parameters(), if not null, points to texture mapping coordinates associated with vertices. When texture mapping is in effect, it points to an array of HT_Parameter. An HT_Parameter consists of a triplet of floats per vertex, containing the u, v, and w parameters. The interface now allows for "n" triplets of texture vertex parameter data to be associated with each vertex of  tristrips.  The first place this is seen is in the set_vertex_parameters() member function. For more information see HT_Vertex_Set::set_vertex_parameters.

tristrip->face_normals(), if not null, points to the first of an array of normal vectors associated with faces.

tristrip->face_colors(), if not null, points to the first of an array of HT_RGB32 colors associated with faces. The color for a particular face has the same index in this array as its normal in tristrip->face_normals().

For more information see class HT_Tristrip.
 


 


HT_Renderer::draw_dc_bitonal_image

Purpose

Draws a one-bit black and white image.Synopsis
void draw_dc_bitonal_image (
    HT_Rendition const & hr,
    HT_DC_Point const & ul,
    HT_DC_Point const & lr,
    int rb,
    HT_Packed_Bits const * pixels,
    HT_Bitonal_Format const & bitonal_format) const
void draw_dc_bitonal_image (
    HT_Rendition const & hr,
    HT_DCI_Point const & ul,
    HT_DCI_Point const & lr,
    int rb,
    HT_Packed_Bits const * pixels,
    HT_Bitonal_Format const & bitonal_format) const
Details
HT_Renderer::draw_dc_depth..._image

Purpose

Fills a block of a depth buffer with a given depth image.Synopsis
void draw_dc_depth16_image (
    HT_Rendition const & hr,
    HT_DC_Point const & ul,
    HT_DC_Point const & lr,
    int rb,
    HT_Depth16 const * pixels) 
void draw_dc_depth16_image (
    HT_Rendition const & hr,
    HT_DCI_Point const & ul,
    HT_DCI_Point const & lr,
    int rb,
    HT_Depth16 const * pixels) const 
void draw_dc_depth32_image (
    HT_Rendition const & hr,
    HT_DC_Point const & ul,
    HT_DC_Point const & lr,
    int rb,
    HT_Depth32 const * pixels) const 
void draw_dc_depth32_image (
    HT_Rendition const & hr,
    HT_DCI_Point const & ul,
    HT_DCI_Point const & lr,
    int rb,
    HT_Depth32 const * pixels) const
Details This is relevant only to renderers that support Z buffering. It allows the application to fill a block of the Z buffer directly with data from memory. The first form is for 16-bit Z buffers, the second for 32-bit Z buffers.

ul and lr are device coordinates for the corner pixels of the Z-buffer block to be filled.

pixels points to the memory location for the upper left pixel data.

rb is the number of bytes in a row of the memory data.
 
 


HT_Renderer::draw_dc_index8_image

Purpose

Draws an eight-bit indexed color image.Synopsis
void draw_dc_index8_image (
    HT_Rendition const & hr,
    HT_DC_Point const & ul,
    HT_DC_Point const & lr,
    int rb,
    HT_Index8 const * pixels) const 
void draw_dc_index8_image (
    HT_Rendition const & hr,
    HT_DCI_Point const & ul,
    HT_DCI_Point const & lr,
    int rb,
    HT_Index8 const * pixels) const
Details

ul, upper left, and lr, lower right, give the device coordinates of the upper left and lower right corners of the raster on the display. That is, the number of raster lines is ul.y - lr.y + 1. pixels points to an array of HT_Index8, each giving a color index to be written to a pixel on a scan line. rb, row byte, is the number of bytes per scan line. This method applies Z-buffer testing when Z buffering is in effect and the scan is one pixel high. The depth value of each pixel is inferred from the Z values of ul and lr, interpolating across.


HT_Renderer::draw_dc_rgb32_image

Purpose

Draws a 32-bit true color raster that is a consecutive set of 32-bit true-color raster lines.Synopsis Details pixels points to an array of 32-bit words each giving an RGBA four-component color value to be written to a pixel on a scan line. pixels also points to the first scan line that is the one at the top of the image on the display. Subsequent raster lines are referenced by
pixels + n*rb up to n = ul.y - rl.y.
The byte-order interpretation of the 32-bit color value depends on the platform. For more information about RGB color values, see class HT_RGB32.

This method applies Z-buffer testing when Z buffering is in effect and the scan is one pixel high. The depth value of each pixel is inferred from the z values of ul and lr interpolating across.


HT_Renderer::end_picture

Purpose

Signals to the driver the end of a sequence of drawing commands for a particular renderer.Synopsis
void end_picture (void)
Details This virtual function must be provided by each driver.

This method is a message from the application to the driver that a sequence of drawing commands has ended.

See Also
HT_Renderer::end_picture_all

Purpose

Signals to the driver the end of a sequence of drawing commands similar to end_picture, but for all preceding renderers in the stack.Synopsis
void end_picture_all (void) alter
Details The virtual function end_picture must be provided by each driver. Similar to end_picture, this method is a message from the application to the driver that a sequence of drawing commands has ended, however, it is applied to all of the preceding renderers in the stack so that each one need not have an end_picture applied separately.See Also

HT_Renderer::establish

Purpose

Reconciles configured options with current option table. Returns zero when succeeded in setting the given configuration values; nonzero otherwise.Synopsis
int establish ()
Details This method establishes the current configuration table by reconciling the options configured by an application. The application typically configures options with the HT_Renderer::set_configure() method. The calls to set_configure set the option values on the renderer's configured option table. The option values, which actually control rendering, are in the current option table, which contains values inherited from the sink renderer as well. After you make a batch of set_configurecalls on the top renderer, you have to update the current configuration table by calling HT_Renderer::establish.See Also establish_all Chapter 3, "Implimenting a New Driver," "establish_configuration", Chapter 4, "Implementing a New Application"
HT_Renderer::establish_all

Purpose

Reconciles configured options with current option table similar to establish, but for all parents of the current device.Synopsis
int establish_all (void) alter
Details
HT_Renderer::establish_configuration

Purpose

This method allows the driver to examine options set by the application, and the method configures itself internally to honor those options. Zero is returned when it has succeeded in setting the given configuration values; otherwise it returns nonzero.Synopsis
int establish_configuration (void) alter
Details Each driver must supply this virtual function.

int establish_configuration( ) is called from HT_Renderer::establish ( ) after the current option table has been updated in accordance with the configured options as set by the application. The function of establish_configuration is to bring the internal state of the driver into consonance with the options that have been set by the application.

For more information, see the section, "establish_configuration" in chapter 3, "Implementing a New Driver."


HT_Renderer::face_pattern_bits

Purpose

Returns definition array for standard face pattern style supported by Heidi.Synopsis
HT_Byte const * face_pattern_bits (
    HT_Face_Pattern         pattern) const
Details The function accepts a face pattern index and returns a pointer to an array of HT_Byte containing information defining the face pattern.

The function accepts a face pattern index and returns a pointer to the bitmap.

The format for the bit patterns is an 8x8 monochromatic bitmap stored in eight sequential bytes. They are the bits of the pattern in row-major order (top row first), with the most significant bit of each byte representing the left-most pixel. The bitmap should be tiled across the face you are drawing. For more information see the section "Face Patterns" in chapter 2, "Heidi Architecture."


HT_Renderer::first_child

Purpose

Returns the first child renderer from the child renderer list.Synopsis
HT_Renderer    first_child (HT_Position & pos) const
Details Given the current position pos, this method returns the first child renderer from the child renderer list and update pos to the new address.
HT_Renderer::get_module_info

Purpose

Returns the HT_Module_Info associated with the renderer.Synopsis
HT_Module_Info   get_module_info ()
Details The return value, HT_Module_Info, contains the path name, type (device, renderer, font engine, or selector), platform (Unknown, Intelx86, Alpha, MIPS ), state (Loaded, Unloaded), and version information of the renderer. This is, however, a rarely used function because the Heidi dynamic library loader has taken care of most of the versioning issues. Thus, it is not necessary to gather this information for an application or a driver.
HT_Renderer::HT_Renderer

Purpose

Constructor for HT_Renderer objects.Synopsis
HT_Renderer ()
HT_Renderer (HT_Pointer<HT_Renderer_Data> const & in)
HT_Renderer (HT_Renderer_Data const * in)
Details The first form should not be used because a renderer either is created from a sink or it is a physical renderer. It is provided in case you need to forward declare a renderer before a sink exists. The second and third form take an HT_Renderer_Data reference and an HT_Renderer_Data pointer, respectively, to create an HT_Renderer.
HT_Renderer::~HT_Renderer

Purpose

Destructor for HT_Renderer objects.Synopsis
~HT_Renderer ()
Details A renderer object is destroyed.
HT_Renderer:: inherited_option_table

Purpose

Returns the inherited configuration option table.Synopsis
HT_Option_Table const & inherited_option_table() const

HT_Renderer:: inherited_renderer_options()

Purpose

Returns the renderer options.Synopsis
HT_Renderer_Options const & inherited_renderer_options() const

HT_Renderer::line_pattern_lengths

Purpose

Returns definition array for standard line styles supported by Heidi.Synopsis
short const * line_pattern_lengths (HT_Line_Pattern pattern) const
Details This method allows access to each line pattern length array. The function accepts a line pattern index and returns a pointer to an array of shorts containing information defining the line pattern.

The first element in the array is a scaling factor for adaptive patterns. It is the total of the lengths of dashes, spaces, dots and so forth in the pattern. This equals 50 in the example following. The second element in the array is a count of spans. This is followed by a set of numbers terminated by -1. The driver should alternate drawing styles for the percentage of pixels given by each successive span number. For the first number in the pair, draw the face color. For the next number in the pair, draw nothing if the pattern mode is Hollow or draw the contrast color if the pattern mode is Filled. Then, alternate with another pair. When the end of the span array has been reached, you should start again at the beginning of the array.

For example the span array for dash_dot looks like this:

    dash_dot[] = {50, 4,     26, 12, 0, 12,                 -1}
    
    pattern_scale = dc->requirements().m_pattern_scale;
    
    where dc is a pointer to a HT_Renderer or HT_Device.
This means that the scale factor is 50, there are 4 spans and the driver should draw 26 * pattern_scale * line_pattern_scale on pixels (the current drawing color), followed by 12 * pattern_scale * line_pattern_scale off pixels (the contrast color ), followed by a single on pixel that is as small as possible. 0, here, means that the line pattern requests a span that is as small as can possibly be draw. 0 is followed by 12 * pattern_scale * line_pattern_scale off pixels, followed by the terminator -1, which indicates that you must then repeat the array for the length of the line.

The HT_Device_Requirements method m_pattern_scale represents 100% of a normal line pattern for video desplays. This defaults to 50 pixels. For hardcopy devices, it is recommended that the pattern_scale device requirements be set to a number of pixels corresponding to 1/2 inch.

The span value is then multiplied by another line scale parameter, line_pattern_scale, which is set at the rendition.
 

See Also For more information, see the section Line Patterns in chapter 2, "Heidi Architecture, Renditions" and HT_Device_Requirements.
HT_Renderer::next_child

Purpose:

Returns the next_child renderer from the child renderer listSynopsis:
HT_Renderer next_child (HT_Position & pos) const
Details: Given the position pointer, this routine returns the current child renderer from the list.
HT_Renderer::number_of_children

Purpose

Returns the number_of_children renderer from the child renderer list.Synopsis
int number_of_children () const

HT_Renderer::{operator=, operator==, operator!=}

Purpose

Compares and assigns renderer data.Synopsis
HT_Renderer const & operator= (HT_Renderer_Data * input) alter {
    m_data = input;
    return *this;
}
HT_Renderer const & operator= (HT_Renderer const & input) alter {
    m_data = input.m_data;
    return *this;
}
HT_Boolean operator== (void * test) {return m_data == test;}
HT_Boolean operator== (HT_Renderer const & other) const {
    return m_data == other.m_data;
}
HT_Boolean operator!= (void * test) {return m_data != test;}
HT_Boolean operator!= (HT_Renderer const & other) const {
    return m_data != other.m_data;
}
Details These methods check to determine if renderer data is the same. In the first two examples the method, operator=, assigns renderer data. In the second two examples the method, operator==, compares renderer data. And, in the third two examples, operator!=, compares two renderers' data to determine if they are equal.
HT_Renderer::parent

Purpose

Returns the sink renderer object of this renderer object.Synopsis
HT_Renderer parent (void) const
Details The parent, the sink directly connected to this renderer object, may be another renderer or a device driver that works directly with a hardware device.
HT_Renderer::query_user_configuration

Purpose

Provides the user a list of configuration options to choose from, and returns the user's preferences.Synopsis
HT_Option_Table & query_user_configuration (void)
Details This is an optional virtual function, which can be filled in when the driver needs to communicate with Heidi users and ask for their preferences, such as the Z-buffer depth. Typically, the driver would bring up a pop-up menu with all of the possible choices, such as Z-buffer depth, number of color for the palette, double buffering, and so forth. Once the user has picked their choices, query_user_configuration returns the list of options in an HT_Option_Table to its caller, who typically stores this information for establish_configuration. This routine can be invoked again when Heidi users want to modify their preferences.

We caution using this function because Heidi applications have to be prepared for the driver's response. For example, the driver may bring up a separate window which obscures part of the application window. In other words, the effect is driver dependent and may not be what the application expects. Furthermore, the driver may not fill in the action all together.
 
 


HT_Renderer::read_dc_color_image

Purpose

Reads back color data from frame buffer to a memory blockSynopsis
void read_dc_color_image (HT_Rendition const & hr,
        HT_DC_Point const & ul,
        HT_DC_Point const & lr,
        HT_Image_Format const & format,
        HT_Shared_Image alter & image) const {
    m_data->read_dc_color_image (hr, ul, lr, format, image);
}
Details This routine copies from the frame buffer data to the image. ul and lr give device coordinates of the corners of the rectangle region of the frame buffer to be read back. This method allocates storage for an HT_Shared_Imageobject with image format designated by format. Note that HT_Image_Format now takes a reference or pointer according to the situation, that is, it can use the any method which reads the image from any format; or device_specific which makes use of its own internal format.
HT_Renderer:: read_dc_depth_image

Purpose

Reads depth data from Z buffer to memory block.Synopsis
void read_dc_depth_image (HT_Rendition const & hr,

        HT_DC_Point const & ul,
        HT_DC_Point const & lr,
        HT_Image_Format const & format,
        HT_Shared_Image alter & image) const {
    m_data->read_dc_depth_image (hr, ul, lr, format, image);
}
Details ul and lr give device coordinates of the corners of the rectangle region of the Z buffer to be read back.

This method allocates storage for an HT_Shared_Image object with image format determined from format. Then the method copies depth data from the depth buffer to image. Note that HT_Image_Format now takes a reference or pointer according to the situation, that is, it can use the any method which reads the image from any format; or device_splecific which makes use of its own internal format.
 
 


HT_Renderer::set_configure

Purpose

Sets renderer configuration parameters and returns a boolean to indicate if the operation succeeds.Synopsis Details Options are stored in (name, value) pairs. The option values may be set using member functions of the HT_Option_Value class. This routine sets the current option value for a given option name. After modifying all necessary options, the application reconciles them to the driver by calling establish() which calls the function establish_configuration()¾this must be supplied by each driver.

For example, you set a particular option name on a particular renderer *rend using three or more function calls:

rend->set_configure("Window Origin", HT_Option_Value (x, y));
This function sets the "Window Origin" option to (x,y). In this case, the option value is an array of two ints.

HT_Renderer::update

Purpose

Signals to the renderer the end of a display frame. Synopsis
void update(HT_Int_Rectangle const & bounds)alter
void update(void)alter
Details Causes the renderer to perform all of the work needed following all of the drawing calls comprising a complete frame.

All drivers must provide a method for the virtual function update(HT_Int_Rectangle & bounds).

The first form tells this renderer that the effects of the update action do not extend beyond the rectangle bounds, which specifies a region of the device surface in device coordinates. The second form is equivalent to the first with bounds equal to the entire window as defined in the current option table. The benefit in using the first form, when bounds is smaller than the entire window, depends on the renderer.
 

See Also update_all,Chapter 3, "Implimenting a New Driver," "update," Chapter 4, "Implementing a New Application."

HT_Update_Status is an abstract base class defining the interface to support update progress or cancel functionality. It provides a mechanism to monitor the progress of potentially lengthy update() operations and to cancel update(), if necessary to save time.


HT_Renderer::update_all

Purpose

Signals to the renderer the end of a display frame but for all of the parents of the current device. Synopsis
void update_all (HT_Int_Rectangle const & bounds) alter
void update_all (void) alter
Details Causes the renderer to perform all of the work needed following all of the drawing calls comprising a complete frame, similar to update, but for all parents of the current device. See Also For further details, see the update method and class HT_Update_Status.