class HT_Renderer_Options
This class collects a set of renderer options, which
essentially all physical renderers require. These include, window extent,
Z-buffer depth, pixel aspect ratio, color system, and palette.
See Also
HT_Device_Options,
HT_Renderer, HT_Option_Table
Methods
alpha_blending, set_alpha_blending
Sets or queries alpha blending, that
is, informing the renderer whether the alpha channel should be taken into
account during drawing, texture mapping, and shading. The default is false.
backing_store, set_backing_store
Gets or sets the background display
to memory other than video memory¾a
variant of double buffering.
bitonal_format, set_bitonal_format
Returns or sets the HT_Bitonal_Format.
buffer_depth, set_buffer_depth
Set or query the Z-buffer depth option in this
renderer options object. The default is 0.
check
Restricts the window extent to the
extent of the parent renderer window.
color_resolution, set_color_resolution
Gets or sets designated values for
color.
color_system, set_color_system
Sets or queries the color system option in this renderer
options object. The default is Mapped_RGB.
double_buffer, set_double_buffer
Gets or sets the swapping of image
updates from the back to the front video display.
line_thickness, set_line_thickness
Gets or sets the scale factor for
default line weight.
local_coordinates, set_local_coordinates
Gets and sets the view coordinates
for the current viewport.
local_extent
The size of the current renderer
window using local coordinates.
optimize
Consolidates the renderer palette
with its child's.
packing_order, set_packing_order
Gets or sets the required order for
bites in an RGB32 image.
palette, set_palette
Sets or queries the palette option in this renderer
options object. The default is an empty palette.
pattern_scale, set_pattern_scale
Gets or sets the overall scale factor
for line patterns.
pixel_aspect, set_pixel_aspect
Sets or queries the pixel aspect ratio option in this
renderer options object. The default is 1.0f.
window_extent, set_window_extent
Sets or queries the window extent options in this renderer
options object. The window origin is added to window size to derive the
window extent.
window_origin, set_window_origin
Sets or queries the window origin in this renderer options
object.
window_size, set_window_size
Sets or queries the window size in
this renderer options object. The default is (0.0f, 0.0f).
Constructor
HT_Renderer_Options
Constructor to initialize a new HT_Renderer_Options
object.
HT_Renderer_Options::alpha_blending,
set_alpha_blending
Purpose
Sets or queries the alpha blending.
The default is false.
Synopsis
HT_Boolean alpha_blending ( )
void set_alpha_blending (HT_Boolean torf)
Details
Sets or queries alpha blending, that
is, informing the renderer whether the alpha channel should be taken into
account during drawing, texture mapping, and shading.
HT_Renderer_Options::backing_store,
set_backing_store
Purpose
Gets or sets the background display
to memory other than video memory¾a
variant of double buffering.
Synopsis
HT_Boolean HT_Renderer_Options::backing_store (void) const
void set_backing_store (HT_Boolean torf) alter;
Details
Instead of swapping the background
image to the front display, as with double buffering,
backing_store allows the copying or
blitting of the background image from memory (other than video memory)
to the front display. This method is more hardware or pipeline dependent
but allows simpler updates.
HT_Renderer_Options::bitonal_format,
set_bitonal_format
Purpose
Returns or sets the HT_Bitonal_Format.
Synopsis
HT_Bitonal_Format HT_Renderer_Options::bitonal_format (void) const
void HT_Renderer_Options::set_bitonal_format (HT_Bitonal_Format bitonal_format) alter
Details
The on bit in a bitonal image may
represent black (On_Bit_Black) or white
(On_Bit_White) depending on the device.
Call set_bitonal_format
with the proper HT_Bitonal_Format enum to
control bitonal image padding. When dithering a true color, index
8, and gray scale image, Heidi standard routines pack the output image
based on the new flags HT_Bitional_Format::MSB and HT_Bitonal_Format::On_Bit_Black.
Both bits are off by default.
Note: These standard routines
will process bitonal images of different padding to the proper format.
In your device driver's draw_dc_bitonal_image,
you should check to see if the new incoming format parameter, bitonal_format,
matches your renderer option of the same name. If not, punt to the
HD_Standard_Draw_DC_Bitonal_Image, which
will repack the image and call your draw_dc_bitonal_image
again.
See Also
For more information, see HT_Bitonal_Format,
HT_Renderer::draw_dc_bitonal_image,
and the section, "bitonal_format,"
of chapter 3, "Implementing a New Driver."
HT_Renderer_Options::buffer_depth,
set_buffer_depth
Purpose
Sets or queries the Z-buffer depth
option in this renderer options object. The default is zero.
Synopsis
int HT_Renderer_Options::buffer_depth (void) const
void HT_Renderer_Options::set_buffer_depth (int bd) alter
Details
The buffer depth is the log2
of the number of bits per pixel in the depth buffer. The first form
returns the buffer depth in this renderer options object. The second form
sets the buffer depth to the value of the argument.
HT_Renderer_Options::check
Purpose
Restricts the window extent to the
extent of the parent renderer window.
Synopsis
void check (HT_Renderer_Options alter & parent)
Details
Given a parent renderer, restrict
this renderer window extent to be no larger than that of the parent.
HT_Renderer_Options::color_resolution,
set_color_resolution
Purpose
Gets or sets the designated values
for color.
Synopsis
int HT_Renderer_Options::color_resolution (void) const
void HT_Renderer_Options::set_color_resolution (int in) alter
Details
The color_resolution
method allows the designation of values for color for certain cases where,
for example, only one level of color is needed when printing just one bit.
Normally the default values for color number 256.
HT_Renderer_Options::color_system,
set_color_system
Purpose
Sets or queries the color system
option in this renderer options object.
Synopsis
HT_Color_System HT_Renderer_Options::color_system (void) const
void HT_Renderer_Options::set_color_system (HT_Color_System cs) alter
Details
The enumerated tag HT_Color_System
has one of the four values Bitonal, Mapped_RGB, Direct_RGB,
Undefined. The first form returns the color system
option in this renderer options object. The second form sets the color
system option to the value of the argument.
As the enumeration implies, Heidi supports
bitonal, 8-bit mapped and 32-bit direct color systems.
HT_Renderer_Options::double_buffer,
set_double_buffer
Purpose
Gets or sets the swapping of image
updates from the back to the front video display.
Synopsis
HT_Boolean HT_Renderer_Options::double_buffer (void) const
void HT_Renderer_Options::set_double_buffer (HT_Boolean torf) alter
Details
This method basically allows a background
image to be drawn in video memory and then swapped with the front display.
This method is not dependent on hardware, however, because the working
buffer is 2 updates old the whole image must be redrawn. Also see the backing_store
method which allows the background image to be stored in hardware or through
the graphics pipeline.
HT_Renderer_Options::HT_Renderer_Options
Purpose
Constructor to initialize a new HT_Renderer_Options
object.
Synopsis
HT_Renderer_Options (HT_Option_Table & option_table)
Details
This function is for use by physical
renderers, not by applications. The physical renderer uses it to construct
the initial current option table, which provides the root of the option
table tree.
HT_Renderer_Options::line_thickness,
set_line_thickness
Purpose
Gets or sets the scale factor for
default line weight.
Synopsis
float HT_Renderer_Options::line_thickness (void) const
void HT_Renderer_Options::set_line_thickness (float thickness) alter
Details
In some situations the line thickness
may be too small to appear correctly on the screen and in this case a scale
factor may be applied. The default scale factor is 1.
HT_Renderer_Options::local_coordinates,
set_local_coordinates
Purpose
Gets and sets the view coordinates
for the current viewport.
Synopsis
HT_Boolean HT_Renderer_Options::local_coordinates (void) const
void HT_Renderer_Options::set_double_buffer (HT_Boolean torf) alter
Details
This function allows Heidi to work
in local coordinates. It tells Heidi to use local coordinates when set
to true. Once the option is set, Heidi will treat the coordinates to be
in the local coordinates whose origin is the lower left corner of the viewport.
The actual place on the device where this gets mapped is defined by the
window_origin
method. The default is false.
HT_Renderer_Options::local_extent
Purpose
The size of the current renderer
window using local coordinates.
Synopsis
HT_Int_Rectangle HT_Renderer_Options::local_extent (void) const
Details
The current renderer window extent
is determined from the local coordinates based on the local window origins
without any regard for the parent renderer¾it
is basically the size of the current window.
HT_Renderer_Options::optimize
Purpose
Consolidates the renderer palette
with its child’s.
Synopsis
HT_Boolean optimize (HT_Renderer_Options alter & child) alter;
Details
If the input child renderer child
has a palette installed,
this function tries to merge it with the renderer palette.
HT_Renderer_Options::packing_order,
set_packing_order
Purpose
Gets or sets the required order for
bites in an RGB32 image.
Synopsis
HT_Packing HT_Renderer_Options::packing_order (void) const
void HT_Renderer_Options::set_packing_order (HT_Packing order) alter
Details
Currently when a driver receives
an image call for raster, the default is set to match the GDI ordering
which is BGRA¾blue,
green, red, alpha. If the bites are packed differently from the system
default, the required order can be set. For example, OpenGL prefers RGBA.
HT_Renderer_Options::palette,
set_palette
Purpose
Sets or queries the palette option
in this renderer options object. The default is an empty palette.
Synopsis
HT_Palette const & HT_Renderer_Options::palette (void) const
void HT_Renderer_Options::set_palette (HT_Palette const & p) alter
Details
The first form returns a reference
to the palette in this renderer options object. The second form sets the
palette in this renderer options object to the palette referenced by the
argument.
HT_Renderer_Options::pattern_scale,
set_pattern_scale
Purpose
Gets or sets the overall scale factor
for line patterns.
Synopsis
float HT_Renderer_Options::pattern_scale (void) const
void HT_Renderer_Options::set_pattern_scale (float scale) alter
Details
pattern_scale is the overall
scale factor for line patterns that is particularly useful for driver writers.
For example, the HT_Device_Requirements
method m_pattern_scale
stores the pattern_scale value and represents
100% of a normal line pattern for video displays. This defaults to 50 pixels.
For hardcopy device calibration, it
is recommended that the pattern_scale
device requirements be set to a number of pixels corresponding to 1/2 inch.
It is the responsibility of the hardcopy driver writer to set the pattern_scale
to a value that correctly represents their particular device.
See Also
For more information see the "Line
Patterns" section of chapter 2, "Heidi Architecture, Renditions,"
HT_Device_Requirements, line_pattern_scale,
line_pattern, line_pattern_lengths
nominal_length and
HT_Line_Pattern.
HT_Renderer_Options::pixel_aspect,
set_pixel_aspect
Purpose
Sets or queries the pixel aspect
ratio option in this renderer options object. The default is 1.0f.
Synopsis
float HT_Renderer_Options::pixel_aspect (void) const
void HT_Renderer_Options::set_pixel_aspect (float ratio) alter
Details
The pixel aspect ratio is the ratio
of the vertical to horizontal size of the physical pixel.
The first form returns the value of
the pixel aspect ratio option, the second from sets it to the argument
value.
HT_Renderer_Options::window_extent,
set_window_extent
Purpose
Sets or queries the window extent
options in this renderer options object.
Synopsis
HT_Int_Rectangle HT_Renderer_Options::window_extent (void) const
void set_window_extent (HT_Int_Rectangle const & we) alter;
Details
The first form returns the value
of the window extent options, the second form sets them to the values determined
by the argument.
The windowextent determines the rectangular
area of the device that comprises the current display surface. It defines
the clipping region. It also participates in the definition of the screen
transformation, as the image of the field of view rectangle in the view
plane.
The window_extent
option is a device coordinate rectangle that determines both the window_origin
and the window_size.
That is, the lower left corner of the window extent rectangle is the window
origin, and the x and y sides of the window extent rectangle
give the components of the window size.
HT_Renderer_Options::window_origin,
set_window_origin
Purpose
Sets or queries the window origin
in this renderer options object.
Synopsis
HT_Int_XY HT_Renderer_Options::window_origin (void) const
void set_window_origin (HT_Int_XY const & wo) alter;
Details
This is the lower left hand corner
of your window coordinate, which is typically (0,0). Unless you
have an offset window system, this should always be (0,0).
HT_Renderer_Options::window_size,
set_window_size
Purpose
Sets or queries the window size in
this renderer options object.
Synopsis
HT_Int_XY HT_Renderer_Options::window_size (void) const
void set_window_size (HT_Int_XY const & ws) alter;
Details
The size of your window, without
consideration of the window origin.