/*************************************************************************

	formZ by autodessys, Inc.
	Copyright c 1994 autodessys, Inc.  All rights reserved.
	
	
	File :	fz_rndr_api.h
	
	By :	Tim Hanes
	
	Created on :  		04 November	2002
	Last Updated on :  	04 November	2002
	
	Description :	
					
***************************************************************************/

#ifndef __FORMZ_RNDR_API_H
#define __FORMZ_RNDR_API_H 1

#include "fzpl_plugin.h"


#include "fz_ffmt_type_api.h"
#include "fz_view_api.h"
#include "fz_rmtl_api.h"
#include "fz_fuim_api.h"
#include "fz_expt_vect_api.h"
#include "fz_iost_api.h"
#include "fz_cmnd_api.h"

#ifdef __cplusplus
extern "C" {
#endif

/* @doc EXTERNAL rndr */

/********************************************************************************************************

	@module	formZ Renderer

	@desc	formZ renderer callback functions.  This section describes the functionality needed to
			create a plugin Renderer. <nl>
			
			In formZ, there are seven built-in rendering types: Wire Frame, Interactive Shaded, Quick Paint,
			Surface Render, Hidden Line, Shaded Render and RenderZone. Additional rendering types may be
			added by creating a renderer plugin and registering a callback function set, which provides
			functions called by formZ to render the modeling scene on the screen. Each plugin renderer
			will automatically be added to the Display menu, below the standard formZ renderers. In
			general, a plugin renderer will fall into one of three categories: vector line or polygonal
			drawing, such as Wire Frame, Hidden Line or Quick Paint, interactive rendering such as 
			Interactive Shaded or static pixel based rendering, such as Shaded Render or RenderZone.
			Depending on the category, different screen drawing methods need to be used. Vector and
			polygonal renderers may draw directly to the screen. Interactive renderers usually employ some
			kind of hardware assisted display. Static pixel based renderers must use the formZ supplied
			image buffer to store and display the image. A renderer should represent the modeling scene in
			a faithful manner. That is, the projections of the objects on the screen should match those of
			the other rendering types. formZ offers utility functions, which facilitate the transformation
			of a 3d point through the display pipeline to the screen space. If a renderer provides a shaded
			display of the scene, surface colors and lighting should be taken into account. While it is not
			possible to execute the RenderZone shaders of a surface style in a plugin, the renderer is free
			to create its own artistic or realistic shading of surfaces based on the color of a surface
			style or based on its own surface style attribute. Lighting effects can be incorporated in a
			renderer anywhere from simple to accurate illumination. All parameters of the lights in a scene
			can be retrieved by a renderer through formZ API functions. It is up to the renderer whether or not to use
			this information to create the illumination of the shaded surfaces. If a renderer is pixel
			based, the image is automatically exported to a 2d file format when the Export Image command
			is chosen from the File menu. Vector and polygonal renderers should implement an export
			callback function, which writes out the rendered graphics to a 2d file. 

	@toc	rndr_cbak

*********************************************************************************************************/

/********************************************************************************************************

	@enum	

	@desc	Render type identifier. This enum is used in the fz_rndr_cbak_info function, which tells
			formZ what kind of renderer a plugin is.
			
	@avail	5.0.0.0
			
	@see	<auto>

	@toc	rndr_cbak

*********************************************************************************************************/
typedef enum fz_rndr_type_enum
{	
	FZ_RNDR_TYPE_PIXEL = 0,		/*	@emem	Pixel based renderer. The image is generated, for example, through a
											traditional raytrace or z-buffer scanline algorithm. The image
											is automatically stored by formZ in an image buffer, which is
											drawn to the screen and used for image export. The RenderZone
											display mode is an example of a pixel based renderer. */
	FZ_RNDR_TYPE_VECTR,			/*	@emem	Vector based renderer. The image is drawn on the screen through
											line drawing commands. It is the responsibility of the renderer
											to perform the drawing and image export. Wire Frame is a vector
											based renderer. */
	FZ_RNDR_TYPE_POLYS,			/*	@emem	Polygon based renderer. The image is drawn on the screen by
											plotting the faces of objects as filled polygons, usually
											in depth sorted order. It is the responsibility of the renderer
											to perform the drawing and image export. Surface Render is a polygon
											based renderer.  */
	
	FZ_RNDR_TYPE_MAX
} fz_rndr_type_enum;

/********************************************************************************************************

	@enum	

	@desc	Render behavior identifier. This enum is used in the fz_rndr_cbak_info function, which tells
			formZ whether a renderer is fast enough to be used interactively or whether a renderer
			produces static images. Wire Frame and Interactive Shaded are interactive renderers.
			RenderZone is a static renderer.
			
	@avail	5.0.0.0
			
	@see	<auto>

	@toc	rndr_cbak

*********************************************************************************************************/
typedef enum fz_rndr_behave_enum
{	
	FZ_RNDR_BEHAVE_INTERACT = 0,		/*	@emem	The renderer is an interactive renderer. */
	FZ_RNDR_BEHAVE_STATIC,				/*	@emem	The renderer produces static images. */
	FZ_RNDR_BEHAVE_INTERACT_DISPLAY,	/*	@emem	The renderer is an interactive navigation/display (ie vizualize but not a working environment) . */

	FZ_RNDR_BEHAVE_MAX
} fz_rndr_behave_enum;


/********************************************************************************************************

	@enum	

	@desc	Render display attribute identifier. This enum is used in the fz_rndr_cbak_disp_attr function, 
			which tells formZ what kind of extra graphics the renderer is drawing on the screen.
			
	@avail	5.0.0.0
			
	@see	<auto>

	@toc	rndr_cbak

*********************************************************************************************************/
typedef enum fz_rndr_disp_attr_enum
{	
	FZ_RNDR_DISP_ATTR_GRID = 0,		/*	@emem	The renderer draws the grid. */
	FZ_RNDR_DISP_ATTR_AXIS,			/*	@emem	The renderer draw the world and reference plane axes */
	FZ_RNDR_DISP_ATTR_MARQUEE,		/*	@emem	The renderer draws the axis markers */
	FZ_RNDR_DISP_ATTR_LITE,			/*	@emem	The renderer draws the graphic representation of lights */
	FZ_RNDR_DISP_ATTR_ULAY,			/*	@emem	The renderer draws the underlay image */
	
	FZ_RNDR_DISP_ATTR_MAX
	
} fz_rndr_disp_attr_enum;

/********************************************************************************************************

	@enum	

	@desc	Render attribute identifier. This enum is used in the fz_rndr_cbak_attr function, 
			which tells formZ what kind of capabilities a renderer has. This function receives 
			a question in the form of an enum, and the function needs to return TRUE or FALSE 
			as an answer to that question. Based on the answer, formZ will take the appropriate 
			action with that renderer in various settings. For example, formZ may call this 
			function with the FZ_RNDR_ATTR_IN_PVIEW enum. If the function returns TRUE, the rendering 
			mode will be offered in dialogs, which offer object preview renderings, such as 
			the Sweep Edit dialog. If the answer is FALSE, the rendering in not offered.
			
	@avail	5.0.0.0
			
	@see	<auto>

	@toc	rndr_cbak

*********************************************************************************************************/
typedef enum fz_rndr_attr_enum
{	
	FZ_RNDR_ATTR_RADIOS = 0,			/*	@emem	If the renderer is capable to display the illumination of a radiosity 
													solution, it should return TRUE and FALSE otherwise */
	
	FZ_RNDR_ATTR_RADIOS_PVIEW,			/*	@emem	If the renderer is capable to display the illumination of a radiosity 
													solution and it is fast enough to do this while generating the solution,
													it should return TRUE and FALSE otherwise. */
	
	FZ_RNDR_ATTR_ALPHA_CHANNEL,			/*	@emem	If the renderer is a static pixel renderer and it supports the alpha 
													channel and the current options have this setting turned on, the function 
													should return TRUE and FALSE otherwise. */
	
	FZ_RNDR_ATTR_SUN_ONLY,				/*	@emem	If the renderer performs only simple illumination and only uses one
													light, the sun light, it should return TRUE and FALSE otherwise. */
	
	FZ_RNDR_ATTR_CAN_SS,				/*	@emem	If the renderer's image can be supersampled, either by a built in method or by drawing
													the image larger, it should return TRUE and FALSE otherwise. */
	
	FZ_RNDR_ATTR_IN_PVIEW,				/*	@emem	If the renderer should be offered in a dialog with an object preview 
													window, such as the Sweep Edit dialog, the function should return TRUE. */

	FZ_RNDR_ATTR_STAY_IN_IACT_MODE,		/*  @emem	If the function returns TRUE to this question, the rendering mode 
													is switched from the current rendering mode to an interactive rendering 
													mode, after performing an object creation or editing operation or a 
													view manipulation. TRUE should only be returned if the renderer 
													itself is non-interactive. For example, when creating a new object 
													and the current rendering mode is RenderZone, formZ will temporarily 
													switch to Wire Frame or Interactive Shaded while the object is 
													rubberbanded. After that, the rendering mode returns to RenderZone. 
													This is because, the RenderZone attribute function return FALSE 
													to the FZ_RNDR_ATTR_STAY_IN_IACT_MODE question. If it would return 
													TRUE, the objects would still be displayed in Wire Frame or Interactive 
													Shaded after the creation is finished. */
													
	FZ_RNDR_ATTR_USE_PARTIAL_IMAGE,		/*	@emem	If the renderer returns TRUE to this question, the standard set image 
													size option will automatically be added at the bottom of the renderers 
													options dialog. TRUE should only be returned for static pixel renderers. */
													
	FZ_RNDR_ATTR_USE_SAVE_IMAGE,		/*	@emem	If the renderer returns TRUE to this question, the standard save image 
													option will automatically be added at the bottom of the renderers options 
													dialog. TRUE should only be returned for non-interactive renderers, 
													which provide higher quality images, which may take a longer time to 
													generate */
	
	FZ_RNDR_ATTR_USE_SHAD_PROJ_OPTS,	/*	@emem	If the renderer returns TRUE to this question, the standard Smooth Shading
													options tab in the Project Rendering Options dialog will be offered. 
													The renderer is expected to use these settings when creating smooth shaded 
													images in a pixel based rendering. The smooth shading settings of a project 
													can be acquired with the API call fz_proj_rndr_opts_sshd_get. */
	
	FZ_RNDR_ATTR_USE_GEOM_PROJ_OPTS_OBSOLETE,	/*	@emem	Obsolete: 6.5.0.0.  Smooth geometry resolution options should now be included in the
													Renderer's options, if desired.  formZ no longer offers these as project
													rendering options, and therefore does not use the plugin renderer's response to this
													inquiry.
													<br>
													If the renderer returns TRUE to this question, the standard Geometry options 
													tab in the Project Rendering Options dialog will be offered. The renderer 
													is expected to use these settings when rendering parametric and smooth 
													objects using the high level surfaces of the smooth and parametric objets.
													FALSE should be returned, if the facets of smooth objects are always used 
													to render the scene. The geometry settings of a project can be acquired with 
													the API call fz_proj_rndr_opts_geom_get. */
	
	FZ_RNDR_ATTR_USE_TCTL_PROJ_OPTS,	/*	@emem	If the renderer returns TRUE to this question, the standard Texture 
													Map Control options tab in the Project Rendering Options dialog will 
													be offered. The renderer is expected to use these settings when rendering 
													textures. The renderer should use the global texture map control 
													settings for objects which do not have a texture map control attribute. 
													FALSE should be returned, if the renderer does not deal with textures. 
													The texture map control settings of a project can be acquired with the 
													API call fz_proj_rndr_opts_tctl_get. */
	
	FZ_RNDR_ATTR_HANDLE_PIXBUFF,		/*	@emem	Under certain circumstances, a rendering is not intended to be displayed 
													on the screen but needs to be stored in a pixel buffer. formZ will 
													automatically handle this if the renderer is a static pixel renderer 
													or uses the fzrt drawing commands. In this case, FALSE should be answered 
													to this question. However, if the renderer does not use standard drawing 
													command, but uses hardware assistance, it must fill in the pixel buffer and 
													must answer TRUE to this question. Pixel buffer related API functions can be 
													found in the fzrt (formZ runtime) function set. */
	
	FZ_RNDR_ATTR_HANDLE_PANORAMIC,		/*	@emem	Does the renderer handle panoramic drawing. This should only be answered TRUE
													if panoramic views are supported ( fz_rndr_cbak_handle_view  must return TRUE for
													FZ_VIEW_TYPE_PANORAMIC) and the renderer is a vector or polygon renderer.
													In this case, drawing of panoramic images is solely the responsibility of the
													renderer. If panoramic views are supported, but FALSE is answered to this question,
													formZ will handle the drawing of the panorama for the renderer. This is also
													automatically the case, if the renderer is a static pixel renderer. This is done
													by asking the renderer to create a set of narrow perspectives, which are turned
													90 degrees. The width of these strips is the Smoothness parameter of the panoramic
													view type. */
	FZ_RNDR_ATTR_IS_BACKGROUND,			/*	@emem	Is the renderer executing in a background process. This should only be answered TRUE
													if the main rendering occurs in a background process and the renderer allows
													the user to continue working, while the rendered image is calculated. If this
													is the case, the renderer is expected to fire off the background rendering
													process inside the fz_rndr_cbak_image_disp callback function and give control
													back to formZ immediately. */
													
	FZ_RNDR_ATTR_USES_TMAPS,			/*	@emem	This should be answered TRUE, if the renderer is using the texture maps of a surface 
													style. For example, if a surface style has the Color Image Map shader and the renderer 
													uses this texture map when rendering a surface, TRUE should be returned. Note, that not 
													all possible texture maps of a surface style need to be supported (such as bump, 
													ambient, diffuse etc). However, at least color and transparency maps should 
													when answering TRUE.	*/
	FZ_RNDR_ATTR_HANDLE_SMOD,			/*	@emem	This should be answered TRUE, if the renderer renders smooth (ACIS) object
													using their analytic surface gemotry (i.e. renders them as smooth as possible).
													It should be answered as FALSE, if the facetted topolofy is always rendered */
	FZ_RNDR_ATTR_USES_LINKED_FILES,		/*	@emem	This should be answered TRUE, if the renderer uses linked, external files, such
													as texture maps or other files, that need to be found on disk in order for
													the renderer to proceed. These are the same files as are retreived with the
													fz_rndr_cbak_proj_linked_files callback. That is, if the renderer implements
													this callback and will report linked files with it, this flag needs to be set to TRUE. */
	FZ_RNDR_ATTR_SHOW_GHOSTED_OBJ,		/*	@emem	This should be answered TRUE, if the renderer currently shows ghosted objects. */
	FZ_RNDR_ATTR_SHOW_GHOSTED_LAYER,	/*	@emem	This should be answered TRUE, if the renderer currently shows ghosted layers. */
	
	FZ_RNDR_ATTR_NO_BACKSAVE_PROJ_DATA,	/*	@emem	The enum is intended as a workaround for an existing bug, which will cause a crash
													if a b3d or formZ 7 file is backsaved to formz version 6.7 or earlier, where the plugin
													writes project data in b3d or v7, but the plugin in v6.7 does not have a project io
													function installed Set this enum to TRUE, to avoid this bug. */
	
	FZ_RNDR_ATTR_NO_ANIMATION_GEN,		/*	@emem	If the renderer is not suitable for animation generation. */
	
	FZ_RNDR_ATTR_MAX

} fz_rndr_attr_enum;

/************************************************************************

	@enum	

	@desc		Tells formZ what information vector data will be tagged with.

	@avail		5.0.0.0

	@toc		rndr_cbak

*************************************************************************/
typedef enum fz_rndr_expt_vect_feature_enum
{
	FZ_RNDR_EXPT_VECT_FEATURE_EXPT_LAYER,			/* @emem Renderer tags vectors with layer pointer. */		
	FZ_RNDR_EXPT_VECT_FEATURE_EXPT_OBJ,				/* @emem Renderer tags vectors with object pointer. */				
	FZ_RNDR_EXPT_VECT_FEATURE_EXPT_FACE,			/* @emem Renderer tags vectors with face index. */				
	FZ_RNDR_EXPT_VECT_FEATURE_EXPT_COLOR,			/* @emem Renderer tags vectors with RGB color. */				
	FZ_RNDR_EXPT_VECT_FEATURE_EXPT_FILL_POLY,		/* @emem Renderer exports filled polygons. */				
				
	FZ_RNDR_EXPT_VECT_FEATURE_MAX			
}  fz_rndr_expt_vect_feature_enum;



/* Renderer Plugin Function Callbacks */

/********************************************************************************************************

	@fsfunc_t	

	@desc		System level init function. formZ calls this function once at system startup. 
				It allows a plugin renderer to perform one time initializations.

	@return		Error codes

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		rndr_cbak	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_cbak_init_func)(
	void
	);
	
/********************************************************************************************************

	@fsfunc_t	

	@desc		System level info function. It is called by formZ to retrieve basic 
				information about the renderer.
	
				The first function argument sets the type of renderer. Three choices are available : 
				pixel, vector or polygonal. A pixel renderer is expected to create a pixel based 
				image, using techniques such as scanline z-buffering or raytracing. 
				The Shaded Render and RenderZone display modes are examples of a pixel renderer. 
				A vector renderer is expected to draw lines to the screen. The basic vector renderer 
				provided by formZ is Wire Frame. A vector renderer is also expected to provide a 
				callback function which exports the lines to a 2d vector format. This callback 
				function is described in more detail below. A polygonal renderer draws the faces 
				of objects as closed and color filled polygons on the screen. The faces are usually 
				sorted in the viewing direction, to provide proper depth display. It is also 
				expected to provide the 2d export callback function. The Quick Paint and Surface Render 
				display modes are examples of a polygonal renderer.

				The behave argument tells formZ, whether the render is fast enough to be 
				executed as an interactive renderer or not. This will allow a user to create 
				and edit objects and manipulate views in real time. Two return values are 
				possible : FZ_RNDR_BEHAVE_INTERACT and FZ_RNDR_BEHAVE_STATIC. If the renderer 
				is interactive, additional callback functions must be supplied. 

				Depending on the combination of type and behavior, different drawing methods 
				need to be used. If a renderer is static and the type is pixel, it must store 
				one horizontal scanline of the rendered image at a time in an image buffer, 
				which is provided by formZ. This is done with the API call fz_rndr_ibuf_add_scanline. 
				If a renderer is interactive, it may use simple screen drawing commands, such 
				as the formZ API functions fzrt_move_to and fzrt_line_to, but must do so fast 
				enough to be reasonably interactive. The formZ Wire Frame drawing mode, for 
				example, uses this technique. An interactive renderer may also use hardware 
				assisted drawing, such as OpenGL. This is done in the Interactive Shaded display 
				mode. Static vector and polygonal renderers may use any drawing method to put the 
				image on the screen.

				formZ manages the storage of the options, window level and project level data 
				for a plugin renderer. To allocate the proper amount of memory, the plugin 
				renderer needs to tell formZ how many bytes are needed for each data block. 
				This is done with the last three function arguments. Typically, a renderer 
				has the options stored in a structure, whose size can be inquired with a 
				sizeof(structure_type) call. If 0 is returned for any of the sizes, no memory 
				will be allocated for the respective data block. The options data holds the 
				parameters for a renderer, that can be set by a user. They are also displayed 
				in the corresponding options dialog, which can be accessed through the Display 
				menu. The project data is information that may be needed by a renderer on a per 
				project level. For example, the renderer may need to keep a copy of the geometry 
				to be rendered. This information would be stored in the project data block. Likewise, 
				the renderer may need to keep information on a per window basis. For example, it may 
				be necessary to keep track of whether the rendering in a window needs to be 
				regenerated since last rendered, or whether the previously rendered image can be 
				displayed from a buffer. This information can be stored in the window data block.


	@return		Error codes

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc	rndr_cbak	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_cbak_info_func)(
	fz_rndr_type_enum		*type,					/*	@parm	<out> |	The type of renderer. */
	fz_rndr_behave_enum		*behave,				/*	@parm	<out> |	The rendering behavior (interactive or static). */
	fzrt_int					*proj_data_size,		/*	@parm	<out> |	The size of the renderer's project data. 	*/
	fzrt_int					*wind_data_size,		/*	@parm	<out> |	The size of the renderer's window data. 	*/
	fzrt_int					*wind_opts_size			/*	@parm	<out> |	The size of the renderer's window options
																		(user interface parameters)	*/
	);


/********************************************************************************************************

	@fsfunc_t	

	@desc		System level finit function. formZ calls this function once, when the user quits formZ. 
				It allows a plugin renderer to perform final cleanup.

	@return		Error codes

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc	rndr_cbak	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_cbak_finit_func)(
	void
	);


/********************************************************************************************************

	@fsfunc_t	

	@desc		Gets the name of a renderer.
				This function is called by formZ to get the name of the renderer. This name shows up in 
				the formZ interface, whenever the title of the renderer is shown. The name function 
				must assign a string to the function's name argument. The length of the string assigned 
				cannot exceed max_len characters. It is recommended, that the renderer's name is stored 
				in a .fzr resource file and retrieved from it, when assigned to the name argument, 
				so that it can be localized for different languages.
				
	@return		Error codes

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc	rndr_cbak	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_cbak_name_func)(
	char	*str_name,		/* @parm	<out> | The name of the renderer, as it will appear in the Display menu. */
	fzrt_int	max_len			/* @parm	<in>  | The maximum number of characters, the name string may contain. */
	);
	
/********************************************************************************************************

	@fsfunc_t	

	@desc		Gets the UUID of a renderer.
				This function is called by formZ to get the uuid of the renderer. This unique id is 
				used by formZ to distinguish the renderer from other renderers. The uuid function 
				needs to assign the unique identifier to the function's uuid argument.

	@return		Error codes

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		rndr_cbak	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_cbak_uuid_func)(
	fzrt_UUID_td		uuid			/* @parm	<out> | */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Gets the options dialog UUID of a renderer.
				This function is called by formZ to get the uuid for the options dialog of a renderer. 
				This unique id is used by formZ to distinguish the renderer's options dialog from other 
				dialogs. The uuid function needs to assign the unique identifier to the function's uuid argument.

	@return		Error codes

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		rndr_cbak	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_cbak_opts_uuid_func)(
	fzrt_UUID_td		uuid			/* @parm	<out> | */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Gets the name of the renderer options.
				This function is called by formZ to get the name of the renderers options. This name shows up in 
				the formZ interface, whenever the title of the renderers options is shown. The name function 
				must assign a string to the function's name argument. The length of the string assigned 
				cannot exceed max_len characters. It is recommended, that the renderer's name is stored 
				in a .fzr resource file and retrieved from it, when assigned to the name argument, 
				so that it can be localized for different languages.
				
	@return		Error codes

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc	rndr_cbak	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_cbak_opts_name_func)(
	char	*str_name,		/* @parm	<out> | The name of the renderer, as it will appear in the Display menu. */
	fzrt_int	max_len			/* @parm	<in>  | The maximum number of characters, the name string may contain. */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Returns whether the renderer can handle a particular view.
				The window for the current rendering and the view are passed in. The function should use 
				the view API functions to retrieve the necessary parameters of the view to determine, 
				whether is can faithfully display the geometry in the scene with the view's settings. 
				For example, a renderer may be able to display in a standard perspective, but when the 
				Keep Vertical Lines Straight option is selected, the renderer may not be able to handle 
				the view. In this case the function should return TRUE, if the option is off and FALSE 
				if it is on. Other, more exotic view types such as panoramic, may not be handled at all, 
				in which case FALSE will be returned for all views of that type.

	@return		TRUE, if the renderer can handle the view, FALSE otherwise.

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc	rndr_cbak	

*********************************************************************************************************/
typedef fzrt_boolean  (FZRT_SPEC *fz_rndr_cbak_handle_view_func)(
	fzrt_int			windex,			/* @parm	<in> | project window index */
	fz_view_ptr		view			/* @parm	<in> | the view which the renderer is requested to display. */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Returns whether a renderer has a particular capability.
				The attribute function is intended to tell formZ more detailed information about the renderer. 
				The function receives a question in the form of an enum, and the function needs to return TRUE 
				or FALSE as an answer to that question. Based on the answer, formZ will take the appropriate 
				action with that renderer in various settings. For example, formZ may call this function with 
				the FZ_RNDR_ATTR_IN_PVIEW enum. If the function returns TRUE, the rendering mode will be 
				offered in dialogs, which offer object preview renderings, such as the Sweep Edit dialog. 
				If the answer is FALSE, the rendering in not offered.

	@return		TRUE, if the renderer supports a particular capability, FALSE otherwise.

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc	rndr_cbak	

*********************************************************************************************************/
typedef fzrt_boolean  (FZRT_SPEC *fz_rndr_cbak_attr_func)(
	fzrt_int				windex,			/* @parm	<in> | project window index */
	fz_rndr_attr_enum	rndr_attr		/* @parm	<in> | the type of capability, the renderer is checked for. */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Project data init function. 
				This function needs to be implemented, if the info function returns 
				a size other than 0 for the project data size argument. It is called 
				once, when a new project is created. formZ will allocate a data block of the given 
				size. The project data init function is then called with the pointer to the data 
				and is expected to initialize the data. The project data block is intended 
				to store any runtime data a renderer may need on a per project basis. For example, 
				a renderer may need to create a copy of the geometry to be rendered. This would 
				be stored in the project data.

	@return		Error codes

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		rndr_cbak	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_cbak_proj_data_init_func)(
	fzrt_int			windex,			/* @parm	<in> | project window index */
	fzrt_ptr		proj_data		/* @parm	<in> | Pointer to the project data block, maintained by formZ. */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Project data finit function.
				The project data finit function is complementary to the project data init function. 
				If implemented, it is called when a project is closed. It gives the renderer the opportunity 
				to finit any dynamic data, that was created since the project was opened. 
				If the info function returned 0 for the project data size, this function does 
				not need to be implemented.

	@return		Error codes

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		rndr_cbak	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_cbak_proj_data_finit_func)(
	fzrt_int			windex,			/* @parm	<in> | project window index */
	fzrt_ptr		proj_data		/* @parm	<in_out> | Pointer to the project data block, maintained by formZ. */
	);
	
/********************************************************************************************************

	@fsfunc_t	

	@desc		Project data io function.
				The project data finit function is complementary to the project data init function. 
				If implemented, it is called when a project is saved. It gives the renderer the opportunity 
				to save any data for future sessions. It is called, whenever the project data is written to 
				or read from a file. It is expected from the plugin to keep track of version changes. When writing, 
				the function needs to return a version number back to formZ. When reading, the version of the window 
				options data when written will be passed into this function by formZ. When the options are changed 
				by a plugin, the version number should be increased. Thus, when reading older versions, they can 
				be handled accordingly.

	@return		Error codes

	@avail		6.5.0.0

	@see		

	@exfile		

	@toc		rndr_cbak	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_cbak_proj_data_io_func)(
	fzrt_int					windex,			/* @parm	<in> | project window index */
	fz_iost_ptr				iost, 		/*	@parm	<in> |	The io stream pointer. */
	fz_iost_dir_td_enum		dir,		/*	@parm	<in> |	Reading or writing indicator. */
	fzpl_vers_td * const 	version, 	/*	@parm	<in_out> |	When reading, this is the version with which the window options were written.
																When writing, the parameter needs to be set to the window options'
																current version. It is up to the plugin to keep track of the version. */
	fzrt_ptr				proj_data		/* @parm	<in> | Pointer to the project data block, maintained by formZ. */
	);


/********************************************************************************************************

	@fsfunc_t	

	@desc		Window data init function.
				The window data init function needs to be implemented, if the info function returns 
				a size other than 0 for the window data size argument (see above). It is called once,
				when a new window is created. formZ will allocate a data block of the given size. 
				The window data init function is then called with the pointer to the data and is 
				expected to initialize the data. The window data block is intended to store any 
				runtime data a renderer may need on a per window basis. For example, a renderer 
				may need to keep track whether the last image rendered is still valid or whether 
				any changes made by the user in the meantime have made the image out of date. 
				Such a marker would be stored in the window data.

	@return		Error codes

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc	rndr_cbak	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_cbak_wind_data_init_func)(
	fzrt_int		windex,			/* @parm	<in> | project window index */
	fzrt_ptr	wind_data		/* @parm	<in> | Pointer to the window data block, maintained by formZ. */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Window data finit function.
				The window data finit function is complementary to the window data init function. 
				If implemented, it is called when a window is closed. It gives the renderer the 
				opportunity to finit any dynamic data, that was created since the window was opened. 
				If the info function returned 0 for the window data size, this function does not 
				need to be implemented.

	@return		Error codes

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc	rndr_cbak	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_cbak_wind_data_finit_func)(
	fzrt_int		windex,			/* @parm	<in> | project window index */
	fzrt_ptr	wind_data		/* @parm	<in_out> | Pointer to the window data block, maintained by formZ. */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Window options init function.
				The window options init function needs to be implemented, if the info function 
				returns a size other than 0 for the window options size argument. It is called 
				once, when a new window is created. formZ will allocate a data block of the given 
				size. The window options init function is then called with the pointer to the data 
				and is expected to initialize the data. The window options block is intended to 
				store the options a renderer will expose to the user. For example, a vector renderer 
				may offer a line width parameter.

	@return		Error codes

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		rndr_cbak	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_cbak_wind_opts_init_func)(
	fzrt_int			windex,			/* @parm	<in> | project window index */
	fzrt_ptr		wind_opts		/* @parm	<in> | Pointer to the window options block, maintained by formZ. */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Window options finit function.
				The window options finit function needs to be implemented, if the info function returns a 
				size other than 0 for the window options size argument (see above) and if dynamic data exists 
				in the window options. It is called once, when a window is closed. The window options finit 
				function is then called with the pointer to the data and is expected to free any dynamic data. 

	@return		Error codes

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		rndr_cbak	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_cbak_wind_opts_finit_func)(
	fzrt_int			windex,			/* @parm	<in> | project window index */
	fzrt_ptr		wind_opts		/* @parm	<in_out> | Pointer to the window options block, maintained by formZ. */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Window options io stream function.
				The window options io function needs to be implemented, if the info function returns a size other 
				than 0 for the window options size argument. It is called, whenever the options are written to 
				or read from a file. It is expected from the plugin to keep track of version changes. When writing, 
				the function needs to return a version number back to formZ. When reading, the version of the window 
				options data when written will be passed into this function by formZ. When the options are changed 
				by a plugin, the version number should be increased. Thus, when reading older versions, they can 
				be handled accordingly.

	@return		Error codes

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc	rndr_cbak	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_cbak_wind_opts_io_func)(
	fzrt_int					windex,		/*  @parm	<in> | project window index */
	fz_iost_ptr				iost, 		/*	@parm	<in> |	The io stream pointer. */
	fz_iost_dir_td_enum		dir,		/*	@parm	<in> |	Reading or writing indicator. */
	fzpl_vers_td * const 	version, 	/*	@parm	<in_out> |	When reading, this is the version with which the window options were written.
																When writing, the parameter needs to be set to the window options'
																current version. It is up to the plugin to keep track of the version. */
	fzrt_ptr				wind_opts	/* @parm	<in> | Pointer to the window options block, maintained by formZ. */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Window options defaults function.
				The window options default function needs to be implemented, if the info function returns a size 
				other than 0 for the window options size argument. It is invoked, whenever default values need to 
				be set for the window options of a renderer. The window options defaults function is called with 
				the pointer to the window options data and is expected to set the data to default values. This 
				function may, in essence, be the same as the window options init function. The difference is, that 
				the init function is called only once, when the window is created, whereas the defaults function may 
				be called multiple times.

	@return		Error codes

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc	rndr_cbak	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_cbak_wind_opts_default_func)(
	fzrt_int		windex,		/* @parm	<in> | project window index */
	fzrt_ptr	wind_opts	/* @parm	<in> | Pointer to the window options block, maintained by formZ. */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Window options copy function.
				The window options copy function allows a renderer to copy any dynamic data that may be contained 
				in the window options. If this function is not implemented and the window options are copied, 
				formZ performs a byte by byte copy of the data. This will work well, as fzrt_int as there are no 
				dynamically allocated arrays in the window options. If this is the case, the copy function 
				must be implemented and must copy the arrays from the source to the destination storage.

	@return		Error codes

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		rndr_cbak	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_cbak_wind_opts_copy_func)(
	fzrt_int		src_windex,			/* @parm	<in> | project window index */
	fzrt_ptr	src_wind_opts,		/* @parm	<in> | Pointer to the source window options block. */
	fzrt_int		dst_windex,			/* @parm	<in> | project window index */
	fzrt_ptr	dst_wind_opts		/* @parm	<in> | Pointer to the destination window options block. */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Window options compare function.
				The window options compare function needs to be implemented if the window options contain 
				dynamically allocated data. It is expected to tell formZ whether two sets of options are 
				the same. If this function is not implemented, formZ performs a byte by byte comparison 
				of the options.

	@return		TRUE, if they are equal, FALSE otherwise.

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		rndr_cbak	

*********************************************************************************************************/
typedef fzrt_boolean  (FZRT_SPEC *fz_rndr_cbak_wind_opts_are_equal_func)(
	fzrt_ptr	wind_opts1,		/* @parm	<in> | Pointer to the first window options block. */
	fzrt_ptr	wind_opts2		/* @parm	<in> | Pointer to the second window options block. */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Determines whether a renderer is displaying certain standard formZ graphics, such as 
				grid or axis. The display attribute function is similar to the attribute callback function. 
				It is intended to tell formZ which standard graphics are drawn by the renderer. The function 
				receives a question in form of an enum, and the function needs to return TRUE or FALSE as 
				an answer to that question. Based on the answer, formZ will enable or disable the respective 
				item in the Windows menu. It is still the responsibility of the renderer to draw the actual 
				graphics, such as the grid. formZ provides API functions to perform this task. If this 
				function is not implemented, the answer is assumed to be FALSE.


	@return		TRUE if a particular graphics is used by the renderer, FALSE otherwise.

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		rndr_cbak	

*********************************************************************************************************/
typedef fzrt_boolean  (FZRT_SPEC *fz_rndr_cbak_disp_attr_func)(
	fzrt_int						windex,				/* @parm	<in> | project window index */
	fz_rndr_disp_attr_enum		rndr_disp_attr		/* @parm	<in> | Identifier for which graphics the renderer may support. */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Image display init function.
				This function is called by formZ right before an image is about to be rendered. It gives the 
				plugin the opportunity to perform the setup of image related data. For example, if the 
				renderer needs to make a copy of the geometry to be rendered, it should be done in the 
				image init function. The image init function is also allowed to bring up a progress bar to, 
				for example, inform the user of the progress of creating the rendering data. The actual image 
				display function (see below) which is called right after the image init function, is not 
				allowd to show the progress bar or any dialogs, which obscure the image, while it is generated. 
				If any errors occurred during the image init phase, the function should return an error code to 
				formZ.

	@return		Error codes

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		rndr_cbak	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_cbak_image_init_func)(
	fzrt_int		windex		/* @parm	<in> | project window index */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Image display function.
				The image display function is the main function of a renderer. It is called by formZ anytime 
				the rendering on the screen needs to be refreshed. It is always called after the image 
				init function and before the image finit function. The sub_image argument is only passed as non
				NULL for static pixel renderers. If passed as NULL, the renderer is expected to render the entire 
				image. If it is non NULL, the sub_image rectangle outlines a rectangular portion of the image 
				to be rendered. It is the responsibility of the renderer to not pass more than 
				(sub_image->bottom - sub_image->top) number of scanlines to fz_rndr_ibuf_add_scanline 
				and to make sure that each scanline is exactly (sub_image->right - sub_image->left) pixels 
				wide. The sub_image rectangle is, for example, passed in if the Set Image Size option is 
				checked by the user, or if the renderer is used by the network rendering environment and 
				is asked to render one or more bands of an image.
				
				If the image init function generated an error, it is passed into the display function.
				This gives the display function the opportunity to perform any necessary cleanup because
				of the error. The display function is expected to NOT render the image, if an error is
				passed in.

	@return		Error codes

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		rndr_cbak	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_cbak_image_disp_func)(
	fzrt_int					windex,			/* @parm	<in> | project window index */
	fzrt_error_td			prep_err,		/* @parm	<in> | error code generated by the image init function. */
	fzrt_rect				*subimage		/* @parm	<in_opt> | If passed as NULL, the renderer is expected to 
														display the entire image. If non NULL, the rectangle
														passed in outlines a sub area of the image to be rendered.
														This parameter is only used for static pixel renderers. */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Image display finit function.
				This function is called by formZ right after the image display function. If implemented, 
				it should perform cleanup duties, which need to be done after the image display has been 
				completed.

	@return		Error codes

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc	rndr_cbak	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_cbak_image_finit_func)(
	fzrt_int		windex		/* @parm	<in> | project window index */
	);


/********************************************************************************************************

	@fsfunc_t

	@desc		pre-activate function.
				The activate function is called by formZ, before the rendering mode is switched from another mode
				to the rendering mode defined by this plugin. It gives the renderer the opportunity to offer user options or check dependecies..

	@return		TRUE - render can be activated; FALSE renderer shoucl not be made active

	@avail		9.2.0.0

	@see

	@exfile

	@toc		rndr_cbak

*********************************************************************************************************/
typedef fzrt_boolean  (FZRT_SPEC *fz_rndr_cbak_pre_activate_func)(
	fzrt_int		windex		/* @parm	<in> | project window index */
	);

/********************************************************************************************************

	@fsfunc_t

	@desc		Activate renderer function.
				The activate function is called by formZ, when the rendering mode is switched from another mode
				to the rendering mode defined by this plugin. It gives the renderer the opportunity to perform
				operations which need to be executed once, when a renderer is selected and before the rendering
				is executed.

	@return		Error codes

	@avail		5.0.0.0

	@see

	@exfile

	@toc		rndr_cbak

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_cbak_activate_func)(
	fzrt_int		windex		/* @parm	<in> | project window index */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Deactivate renderer function.
				The deactivate function is called by formZ when the rendering mode is switched from the rendering 
				mode defined by this plugin to another mode. It gives the renderer the opportunity to perform 
				operations which need to be executed once, when a renderer is deselected.

	@return		Error codes

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		rndr_cbak	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_cbak_deactivate_func)(
	fzrt_int		windex		/* @parm	<in> | */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		2d vector/polygon image export function.
				This function is called only for vector and polygon based renderers. it is called when
				the user exports the rendered image to a 2d image file, that supports vector graphics,
				such as Adobe Illustrator or HPGL. The function needs to call the expt_vect
				API functions, which are equivalent to drawing the image on the screen. These functions
				usually take the expt_vect argument passed into this function as an argument as well.
				if this function is not implemented, the rendered image cannot be exported to those
				image file formats.

	@return		Error codes

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc	rndr_cbak	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_cbak_expt_vect_out_func)(
	fzrt_int					windex,			/* @parm	<in> | project window index */
	char					*prg_str,		/* @parm	<in> | The title for the progress bar, if the
															   renderer decides to bring up a progress bar. */
	char					*fname,			/* @parm	<in> | The name of the file being exported. */
	fzrt_boolean			do_back,		/* @parm	<in> | TRUE, if a background needs to be placed
															   underneath the exported graphics. */
	fz_expt_vect_ptr		expt_vect		/* @parm	<in> | The 2d vector/polygon export pointer. This
															   pointer is usually passed on to the API functions
															   which the renderer calls to write the graphics
															   data to file. */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Clear rendering memory function.
				This function is called when the user selects the Clear Rendering Memory item in the 
				Display menu. It is expected to reset all memory that was allocated for the renderer 
				since the creation of the project. As renderers tend to allocate and store large amounts 
				of data, the Clear Rendering Memory command is intended to give memory back to the user 
				for modeling operations. The clear memory function should leave the dynamic data of a 
				renderer in the same state, as when a project is first created.

	@return		Error codes

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		rndr_cbak	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_cbak_proj_clear_mem_func)(
	fzrt_int		windex		/* @parm	<in> | project window index */
	);
	
/********************************************************************************************************

	@fsfunc_t	

	@desc		Collect linked files function.
				This function is called, for example, during a distributed rendering. The renderer needs to tell
				formZ, which external files it needs to execute a rendering. For example, a renderer
				may need image maps for materials and background. In this case, this function needs
				to call the formZ API function fz_rndr_set_linked_file for each image map, that is used
				in a rendering. The distributed rendering process uses this information to copy the linked 
				files to the render clients local machine.

	@return		Error codes

	@avail		5.0.0.0

	@see		fz_rndr_cbak_proj_fix_linked_files

	@exfile		

	@toc		rndr_cbak	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_cbak_proj_linked_files_func)(
	fzrt_int		windex		/* @parm	<in> | project window index */
	);
	
/********************************************************************************************************

	@fsfunc_t	

	@desc		Fix linked files function.
				This function is called, for example, during a distributed rendering. The renderer needs 
				to aquire new file locations (fzrt_floc_ptr) for each linked file, that was reported
				with the fz_rndr_cbak_proj_linked_files callback. This is done via the formZ API function 
				fz_rndr_get_linked_file. Note, that each call to fz_rndr_cbak_proj_linked_files is
				guaranteed to be followed by fz_rndr_cbak_proj_fix_linked_files. It is therefore
				necessary to make as many called to fz_rndr_get_linked_file and in the same order
				as calls to fz_rndr_set_linked_file in fz_rndr_cbak_proj_linked_files.
				
				The two linked files callback are designed to help formZ copy auxillary files, such
				as texture maps to a new directory, when a project is copied. This occurs, for example,
				during network rendering when all files necessary for a rendering need to be copied
				to the client machine. It also occurs when saving with the "Save A Copy As" command
				and using the "Save Image Files" option.

	@return		Error codes

	@avail		7.0.0.0

	@see		fz_rndr_cbak_proj_linked_files

	@exfile		

	@toc		rndr_cbak	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_cbak_proj_fix_linked_files_func)(
	fzrt_int		windex		/* @parm	<in> | project window index */
	);



/********************************************************************************************************

	@fsfunc_t	

	@desc		The image inval function.
				The inval function is called when an area on the screen becomes invalid (i.e. needs to 
				be redrawn because the graphics in that area are no longer up-to-date). A renderer may 
				need to know when this happens, in which case this function should be implemented. 
				The invalidated area could either be a rectangle or an arbitrary shape. If the rect 
				argument is not NULL, the area is a rectangle. Otherwise the rgn argument will be non-NULL
				and the area is an arbitrary region.

	@return		Error codes

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc	rndr_cbak	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_cbak_image_inval_func)(
	fzrt_int				windex,		/* @parm	<in> | project window index */
	fzrt_rect			*rect,		/* @parm	<in_opt> | If not NULL, the screen rectangle that was invalidated. */
	fzrt_rgn_ptr		rgn			/* @parm	<in_opt> | If not NULL, the screen region that was invalidated. */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		The image dirty function.
				formZ calls this function to find out whether any changes made by the user since the image 
				was rendered last have made the image invalid. This function is especially useful when 
				the renderer is a static pixel renderer. As fzrt_int as the image is valid and the screen needs 
				to be redrawn formZ will automatically draw the image buffer, instead of asking the renderer 
				to re-render the scene. In order to accomplish this, the renderer needs to tell formZ, 
				that nothing has occurred in the meantime, that would invalidate the image. The recommended 
				mechanism for this is for the renderer to install a notification function set. In this function 
				set the three callback functions fz_notf_cbak_proj, fz_notf_cbak_wind and fz_notf_cbak_objt 
				should be defined. The fz_notf_cbak_wind function, for example, is called each time an aspect 
				of the window in which a rendering takes place changes. What kind of change occurred is 
				identified by an enum argument to the function. The renderer's window notification callback 
				should then set a "dirty" marker in its window data block. When the fz_rndr_cbak_image_dirty 
				function is invoked by formZ, the renderer then passes back the value of the dirty marker. 
	

	@return		TRUE, if the image is no longer valid, FALSE otherwise.

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc	rndr_cbak	

*********************************************************************************************************/
typedef fzrt_boolean  (FZRT_SPEC *fz_rndr_cbak_image_dirty_func)(
	fzrt_int				windex		/* @parm	<in> | project window index */
	);


/********************************************************************************************************

	@fsfunc_t	

	@desc		The dialog template function.
				This function needs to create a dialog template to
				display the window options of the render. This can be
				done using the functions in the fz_fuim_fset
				function set defined in "fz_fuim_api.h". 
	
	@return		Error codes.

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		rndr_cbak	

*********************************************************************************************************/
typedef fzrt_error_td (*fz_rndr_cbak_iface_tmpl_func)(
	fzrt_int						windex,				/* @parm	<in> | project window index 		*/
	fz_fuim_tmpl_ptr 			tmpl_mngr,			/* @parm	<in> | pointer to formZ fuim template manager 	*/		
	fzrt_ptr					wind_opts			/* @parm	<in> | The renderers window options 			*/	
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Function to get a parameter of the renderer.  This function needs to return
				the data value of the parameter of the given index of the renderer
				implementing it.  Implement this function if this renderer will be used with automation
				plugins and scripts.
	
	@return		Error codes.

	@avail		5.0.0.0

	@see		fz_rndr_cbak_set_parm, fz_rndr_get_parm, fz_rndr_set_parm

	@exfile		

	@toc		rndr_cbak

*********************************************************************************************************/
typedef fzrt_error_td (*fz_rndr_cbak_get_parm_func)(
	fzrt_int						windex,				/* @parm	<in> | project window index 		*/
	fzrt_int						parm_indx,			/* @parm	<in> | index of the parameter to retrieve */
	fz_type_td*					data				/* @parm	<out> | parameter data */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Function to set a parameter of the renderer.  This function assigns the given
				data value of the parameter of the given index of the renderer implementing
				it.  Implement this function if this renderer will be used with automation plugins and
				scripts.  Note also, that this function should call the fz_notf_cbak_wind
				with a flag of FZ_NOTF_WIND_OPTS to inform the renderer the renderer's options have
				changed.
	
	@return		Error codes.

	@avail		5.0.0.0

	@see		fz_rndr_cbak_get_parm, fz_rndr_get_parm, fz_rndr_set_parm

	@exfile		

	@toc		rndr_cbak	

*********************************************************************************************************/
typedef fzrt_error_td (*fz_rndr_cbak_set_parm_func)(
	fzrt_int						windex,				/* @parm	<in> | project window index 		*/
	fzrt_int						parm_indx,			/* @parm	<in> | index of the parameter to set */
	fz_type_td*					data				/* @parm	<in> | parameter data */
	);

/************************************************************************
	
	@fsfunc_t

	@desc		Tells formZ what information vector data will be tagged with.
	
			
	@return		FZRT_NOERR on success.  Or:<nl>
				Appropriate error on failure.

	@avail		5.0.0.0

	@toc		rndr_cbak

*************************************************************************/
typedef fzrt_error_td (FZRT_SPEC *fz_rndr_cbak_expt_vect_check_feature_func)(
							fzrt_int windex,
							fz_rndr_expt_vect_feature_enum rndr_expt_vect_feature,
							fzrt_boolean *check
							);

/************************************************************************
	
	@fsfunc_t

	@desc		This optional function will be invoked at a regular interval by formZ
				for all renderers, that answer TRUE to the FZ_RNDR_ATTR_IS_BACKGROUND
				question. It is intended to give a renderer that operates
				in the background a chance to notiy a user, that a previously fired
				rendering is completed. It is IMPORTANT, that the check whether
				such a rendering is complete or not is fast, because frequent
				calls to this callabck are made in the event idle loop.
				
				If a rendering is complete, the renderer may display the image
				in a preview window, or simply put up a dialog that tells
				the user that the rendering is done.
	
			
	@return		none

	@avail		6.0.0.0

	@toc		rndr_cbak

*************************************************************************/
typedef void (FZRT_SPEC *fz_rndr_cbak_notify_user_func)(
							void
							);

/************************************************************************

	@fsfunc_t

	@desc		Instructs a formZ extension to register its help data.
							
	@avail		6.0.0.0

	@toc		rndr_cbak

*************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_cbak_pdf_help_func)(void);


/********************************************************************************************************

	@fsfunc_t	

	@desc		Retuns the bahavr for a renderer. Overides the value retuenrd by fz_rndr_cbak_info

	@return		TRUE, if the renderer supports a particular capability, FALSE otherwise.

	@avail		8.6.0.0

	@see		fz_rndr_cbak_info

	@exfile		

	@toc	rndr_cbak	

*********************************************************************************************************/
typedef fzrt_boolean  (FZRT_SPEC *fz_rndr_cbak_bahave_func)(
	fzrt_int				windex,			/* @parm	<in> | project window index */
	fz_rndr_behave_enum		*rndr_behave	/* @parm	<out> | the behavior of the renderer. */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Render the current scene to a file

	@return		Error codes.

	@avail		8.6.0.1

	@see		fz_rndr_cbak_info

	@exfile		

	@toc	rndr_cbak	

 *********************************************************************************************************/
typedef fzrt_boolean  (FZRT_SPEC *fz_rndr_render_to_file_func)(
	fzrt_int				windex,			/* @parm	<in> | project window index */
	fzrt_floc_ptr			file_floc		/* @parm	<in> | file to save rendering in. */
	);

/************************************************************************

	@plfset	fz_rndr_cbak_fset
	
	@desc	Function set for a plugin renderer.
			The functions in this set need to be supplied by a plugin to create
			a new rendering mode.

	@avail	5.0.0.0

	@toc	rndr_cbak

*************************************************************************/

/********************************************************************************************************

	@fsdef	formZ renderer callbacks function set id.

*********************************************************************************************************/
/* UUID : {021aee61-d6f5-422e-9e3d-1e83d8bce1b1} */
#define FZ_RNDR_CBAK_FSET_TYPE			"\x02\x1a\xee\x61\xd6\xf5\x42\x2e\x9e\x3d\x1e\x83\xd8\xbc\xe1\xb1"	/* Reference 1245 */

/********************************************************************************************************

	@fsdef	formZ renderer callbacks function set name.

*********************************************************************************************************/
#define FZ_RNDR_CBAK_FSET_NAME			"formZ Renderer Callback Function Set"

/********************************************************************************************************

	@fsdef	formZ renderer callbacks function set version.

*********************************************************************************************************/
#define FZ_RNDR_CBAK_FSET_VERSION		FZPL_VERS_MAKE(9,2,0,0)

typedef struct fz_rndr_cbak_fset
{
	fzpl_fset_prvt_data_td					prvt_data;

	/* RENDERER LEVEL */
	fz_rndr_cbak_init_func					fz_rndr_cbak_init;							/* @fsfunc */
	fz_rndr_cbak_info_func					fz_rndr_cbak_info;							/* @fsfunc */
	fz_rndr_cbak_finit_func					fz_rndr_cbak_finit;							/* @fsfunc */
	fz_rndr_cbak_name_func					fz_rndr_cbak_name;							/* @fsfunc */
	fz_rndr_cbak_uuid_func					fz_rndr_cbak_uuid;							/* @fsfunc */
	fz_rndr_cbak_opts_uuid_func				fz_rndr_cbak_opts_uuid;						/* @fsfunc */
	fz_rndr_cbak_opts_name_func				fz_rndr_cbak_opts_name;						/* @fsfunc */
	fz_rndr_cbak_attr_func					fz_rndr_cbak_attr;							/* @fsfunc */
	fz_rndr_cbak_disp_attr_func				fz_rndr_cbak_disp_attr;						/* @fsfunc */
	fz_rndr_cbak_handle_view_func			fz_rndr_cbak_handle_view;					/* @fsfunc */
	fz_rndr_cbak_activate_func				fz_rndr_cbak_activate;						/* @fsfunc */
	fz_rndr_cbak_deactivate_func			fz_rndr_cbak_deactivate;					/* @fsfunc */

	/* PROJECT LEVEL */	
	fz_rndr_cbak_proj_data_init_func		fz_rndr_cbak_proj_data_init;				/* @fsfunc */
	fz_rndr_cbak_proj_data_finit_func		fz_rndr_cbak_proj_data_finit;				/* @fsfunc */
	fz_rndr_cbak_proj_clear_mem_func		fz_rndr_cbak_proj_clear_mem;				/* @fsfunc */
	
	/* WINDOW LEVEL */
	fz_rndr_cbak_wind_data_init_func		fz_rndr_cbak_wind_data_init;				/* @fsfunc */
	fz_rndr_cbak_wind_data_finit_func		fz_rndr_cbak_wind_data_finit;				/* @fsfunc */
	fz_rndr_cbak_wind_opts_init_func		fz_rndr_cbak_wind_opts_init;				/* @fsfunc */
	fz_rndr_cbak_wind_opts_default_func		fz_rndr_cbak_wind_opts_default;				/* @fsfunc */
	fz_rndr_cbak_wind_opts_io_func			fz_rndr_cbak_wind_opts_io;					/* @fsfunc */
	fz_rndr_cbak_wind_opts_copy_func		fz_rndr_cbak_wind_opts_copy;				/* @fsfunc */
	fz_rndr_cbak_wind_opts_are_equal_func	fz_rndr_cbak_wind_opts_are_equal;			/* @fsfunc */
	fz_rndr_cbak_wind_opts_finit_func		fz_rndr_cbak_wind_opts_finit;				/* @fsfunc */
	
	/* IMAGE RELATED */
	fz_rndr_cbak_image_init_func			fz_rndr_cbak_image_init;					/* @fsfunc */
	fz_rndr_cbak_image_disp_func			fz_rndr_cbak_image_disp;					/* @fsfunc */
	fz_rndr_cbak_image_finit_func			fz_rndr_cbak_image_finit;					/* @fsfunc */
	fz_rndr_cbak_image_inval_func			fz_rndr_cbak_image_inval;					/* @fsfunc */
	fz_rndr_cbak_image_dirty_func			fz_rndr_cbak_image_dirty;					/* @fsfunc */
	
	/* IMAGE EXPORT */
	fz_rndr_cbak_expt_vect_out_func			fz_rndr_cbak_expt_vect_out;					/* @fsfunc */

	/* INTERFACE RELATED */
	fz_rndr_cbak_iface_tmpl_func				fz_rndr_cbak_iface_tmpl;						/* @fsfunc */
	fz_rndr_cbak_get_parm_func				fz_rndr_cbak_get_parm;						/* @fsfunc */
	fz_rndr_cbak_set_parm_func				fz_rndr_cbak_set_parm;						/* @fsfunc */
	
	/* PROJECT LEVEL */	
	fz_rndr_cbak_proj_linked_files_func		fz_rndr_cbak_proj_linked_files;				/* @fsfunc */

	/* IMAGE EXPORT */
	fz_rndr_cbak_expt_vect_check_feature_func	fz_rndr_cbak_expt_vect_check_feature;	/* @fsfunc */
	
	/************************************************************************************
	 *																					*
	 *		DO NOT MAKE ANY CHANGES TO THE ABOVE FUNCTIONS!!!							*
	 *		DO NOT ADD ANY FUNCTION ABOVE THIS LINE!!!									*
	 *		@comm  End of version 5.0.0.0 functions.									*
	 *																					*
	 ************************************************************************************/
	
	fz_rndr_cbak_notify_user_func				fz_rndr_cbak_notify_user;	/* @fsfunc */
	fz_rndr_cbak_pdf_help_func					fz_rndr_cbak_pdf_help;		/* @fsfunc */

	/************************************************************************************
	 *																					*
	 *		DO NOT MAKE ANY CHANGES TO THE ABOVE FUNCTIONS!!!							*
	 *		DO NOT ADD ANY FUNCTION ABOVE THIS LINE!!!									*
	 *		@comm  End of version 6.0.0.0 functions.									*
	 *																					*
	 ************************************************************************************/
	
	fz_rndr_cbak_proj_data_io_func				fz_rndr_cbak_proj_data_io;				/* @fsfunc */
	
	/************************************************************************************
	 *																					*
	 *		DO NOT MAKE ANY CHANGES TO THE ABOVE FUNCTIONS!!!							*
	 *		DO NOT ADD ANY FUNCTION ABOVE THIS LINE!!!									*
	 *		@comm  End of version 6.5.0.0 functions.									*
	 *																					*
	 ************************************************************************************/
	 
	fz_rndr_cbak_proj_fix_linked_files_func		fz_rndr_cbak_proj_fix_linked_files;		/* @fsfunc */
	
	fz_cmnd_cbak_syst_icon_file_func			fz_rndr_get_icon_file_obsolete;			/* @fsfunc */
	fz_cmnd_cbak_syst_icon_file2_func			fz_rndr_get_icon_file2;					/* @fsfunc */

	/************************************************************************************
	 *																					*
	 *		DO NOT MAKE ANY CHANGES TO THE ABOVE FUNCTIONS!!!							*
	 *		DO NOT ADD ANY FUNCTION ABOVE THIS LINE!!!									*
	 *		@comm  End of version 7.0.0.0 functions.									*
	 *																					*
	 ************************************************************************************/
	
	fz_rndr_cbak_bahave_func					fz_rndr_cbak_behave;					/* @fsfunc */
	
	/************************************************************************************
	 *																					*
	 *		DO NOT MAKE ANY CHANGES TO THE ABOVE FUNCTIONS!!!							*
	 *		DO NOT ADD ANY FUNCTION ABOVE THIS LINE!!!									*
	 *		@comm  End of version 8.6.0.1 functions.									*
	 *																					*
	 ************************************************************************************/

	fz_rndr_render_to_file_func					fz_rndr_render_to_file;					/* @fsfunc */
	
	/************************************************************************************
	 *																					*
	 *		DO NOT MAKE ANY CHANGES TO THE ABOVE FUNCTIONS!!!							*
	 *		DO NOT ADD ANY FUNCTION ABOVE THIS LINE!!!									*
	 *		@comm  End of version 9.2.0.0 functions.									*
	 *																					*
	 ************************************************************************************/
	
	fz_rndr_cbak_pre_activate_func				fz_rndr_cbak_pre_activate;						/* @fsfunc */
	
}	fz_rndr_cbak_fset;

/********************************************************************************************************

	@module	Rendering

	@desc	This section describes functionality for rendering in formZ. This includes managing
			renderers, render materials, shaders, and exportation of renderings.

	@toc	rndr_top

*********************************************************************************************************/

/********************************************************************************************************

	@module

	@desc	formZ render management functions.  This section describes functionality for managing
			renderers.  This involves querying the renderer's options and setting them.  Utiliy
			functions for setting up distributed renderering, querying information about the renderer,
			performing animation generation, animation exportation, setting the current renderer, 
			are also provide.  One may also setup and perform a RadioZity solution for the scene.
			One may also edit the parameters of RenderZone's post-processes (depth blur,
			exposure correction, lens flare).

	@toc	rndr

*********************************************************************************************************/

/* FORMZ SUPPLIED RENDERERS */
/********************************************************************************************************

	@grpbegin	Renderers

	@desc	Renderer identifiers.

	@avail	5.0.0.0

	@toc	rndr

*********************************************************************************************************/
/********************************************************************************************************
	@gdef		
	@desc	Unique identifier for the Wire Frame Renderer
	@avail	5.0.0.0
*********************************************************************************************************/
/* UUID : {365777ff-5899-4fc3-99bb-fb4504a1979e} */		/* Reference : 45 */
#define FZ_RNDR_WREF_UUID "\x36\x57\x77\xff\x58\x99\x4f\xc3\x99\xbb\xfb\x45\x04\xa1\x97\x9e"
/********************************************************************************************************
	@gdef		
	@desc	Unique identifier for the Interactive Shaded Renderer (WORK)
	@avail	7.0.0.0
*********************************************************************************************************/
/* UUID : {08a10d28-494e-48e7-bf65-84515e9d4b3b} */		/* Reference : 3589 */
#define FZ_RNDR_ISHD_WORK_UUID "\x08\xa1\x0d\x28\x49\x4e\x48\xe7\xbf\x65\x84\x51\x5e\x9d\x4b\x3b"
/********************************************************************************************************
	@gdef		
	@desc	Unique identifier for the Interactive Shaded Renderer
	@avail	5.0.0.0
*********************************************************************************************************/
/* UUID : {5ac8dd57-5f4c-4c57-bbf4-3a4911c5bf00} */		/* Reference : 51 */
#define FZ_RNDR_ISHD_UUID "\x5a\xc8\xdd\x57\x5f\x4c\x4c\x57\xbb\xf4\x3a\x49\x11\xc5\xbf\x00"
/********************************************************************************************************
	@gdef		
	@desc	Unique identifier for the Quick Paint Renderer
	@avail	5.0.0.0
*********************************************************************************************************/
/* UUID : {f70e3b29-3c4f-464b-a8bb-d2bb0e572199} */		/* Reference : 46 */
#define FZ_RNDR_QUIK_UUID_OBSOLETE "\xf7\x0e\x3b\x29\x3c\x4f\x46\x4b\xa8\xbb\xd2\xbb\x0e\x57\x21\x99"
/********************************************************************************************************
	@gdef		
	@desc	Unique identifier for the Hidden Line Renderer
	@avail	5.0.0.0
*********************************************************************************************************/
/* UUID : {b27bf7e9-d610-490e-9930-8ef469eb7b1b} */		/* Reference : 48 */
#define FZ_RNDR_HLIN_UUID "\xb2\x7b\xf7\xe9\xd6\x10\x49\x0e\x99\x30\x8e\xf4\x69\xeb\x7b\x1b"
/********************************************************************************************************
	@gdef		
	@desc	Unique identifier for the Surface Render Renderer
	@avail	5.0.0.0
*********************************************************************************************************/
/* UUID : {81c48924-4c35-4593-b075-774c404e231c} */		/* Reference : 47 */
#define FZ_RNDR_SURF_UUID_OBSOLETE "\x81\xc4\x89\x24\x4c\x35\x45\x93\xb0\x75\x77\x4c\x40\x4e\x23\x1c"
/********************************************************************************************************
	@gdef		
	@desc	Unique identifier for the Shaded Render Renderer
	@avail	5.0.0.0
*********************************************************************************************************/
/* UUID : {69112fbc-34aa-4d71-b603-e7d5678e4d08} */		/* Reference : 49 */
#define FZ_RNDR_SHAD_UUID_OBSOLETE "\x69\x11\x2f\xbc\x34\xaa\x4d\x71\xb6\x03\xe7\xd5\x67\x8e\x4d\x08"
/********************************************************************************************************
	@gdef		
	@desc	Unique identifier for the RenderZone Renderer
	@avail	5.0.0.0
*********************************************************************************************************/
/* UUID : {770dab54-1d4b-4b4f-b1ad-d9e747cb95cf} */		/* Reference : 50 */
#define FZ_RNDR_RZNE_UUID "\x77\x0d\xab\x54\x1d\x4b\x4b\x4f\xb1\xad\xd9\xe7\x47\xcb\x95\xcf"
/********************************************************************************************************
	@grpend		Renderers
*********************************************************************************************************/


/********************************************************************************************************

	@enum	

	@desc	Identifier for what underlying graphics engine to use for Wire Frame renderer.

	@avail	5.0.0.0
			
	@see	

	@toc	rndr

*********************************************************************************************************/
typedef enum fz_rndr_wref_grph_enum
{
	FZ_RNDR_WREF_GRPH_NATIVE = 0,		/* @emem		Native graphics */
	FZ_RNDR_WREF_GRPH_OPENGL,			/* @emem		OpenGl */
	FZ_RNDR_WREF_GRPH_MAX
}fz_rndr_wref_grph_enum;

/********************************************************************************************************

	@enum	

	@desc	Renderer parameters for Wire Frame.  Each renderer has a set of options that can
			be retrieved or changed, and this enum identifies which option is wanted.  This
			is used with the fz_rndr_get_parm, fz_rndr_set_parm render manager functions.
			
	@avail	5.0.0.0
			
	@see	<auto>

	@toc	rndr

*********************************************************************************************************/
typedef enum fz_rndr_wref_parm_enum
{	
	FZ_RNDR_WREF_PARM_BFACES = 0,	/*	@emem		Whether or not to show back faces.
										@ptype		fzrt_boolean
										@default	TRUE
									*/
	FZ_RNDR_WREF_PARM_COLOR,		/*	@emem		Whether or not to show object's color.
										@ptype		fzrt_boolean
										@default	TRUE
									*/
	FZ_RNDR_WREF_PARM_HIDE_GHST,	/*	@emem		Whether or not to hide ghosted objects and layers.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_WREF_PARM_HIDE_GHST_OBJT,/*	@emem		Whether or not to hide ghosted objects.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_WREF_PARM_HIDE_GHST_LAYER,/* @emem		Whether or not to hide ghosted layers.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_WREF_PARM_FACETS,		/*	@emem		Whether or not to show facets of smooth objects.
										@ptype		fzrt_boolean
										@default	TRUE
									*/
	FZ_RNDR_WREF_PARM_FACETS_RES,	/*	@emem		Range for how many facets to show on smooth objects.
										@ptype		short
										@default	40
										@rimin_imax	0 | 127
									*/
	FZ_RNDR_WREF_PARM_ISO_LINES,	/*	@emem		Range for how many iso lines to show on smooth objects.
										@ptype		short
										@default	80
										@rimin_imax	0 | 127
									*/
	FZ_RNDR_WREF_PARM_RADS_MESH,	/*	@emem		Whether or not to draw radiosity mesh.
										@ptype		fzrt_boolean
										@default	TRUE
									*/
	FZ_RNDR_WREF_PARM_RADS_MESH_GHST,/*	@emem		Whether or not to draw radiosity mesh ghosted.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_WREF_PARM_RENDER,		/*	@emem		What type of underlying graphics engine to use for rendering.
										@ptype		fz_rndr_wref_grph_enum
										@default	FZ_RNDR_WREF_GRPH_NATIVE
									*/
	FZ_RNDR_WREF_PARM_RDRW_AUTO,	/*	@emem		Whether or not to redraw buffer automatically.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_WREF_PARM_RDRW_INTV,	/*	@emem		Whether or not to redraw buffer at some interval.
										@ptype		fzrt_boolean
										@default	TRUE
									*/
	FZ_RNDR_WREF_PARM_RDRW_SECS,	/*	@emem		How often to redraw buffer at some interval (in seconds).
										@ptype		double
										@default	0.25
										@rimin_imax	0.001 | 30.0
									*/
	FZ_RNDR_WREF_PARM_MAX
}fz_rndr_wref_parm_enum;


/********************************************************************************************************

	@enum	

	@desc	Identifier for how many pixels to limit texture sizes to.

	@avail	5.0.0.0
			
	@see	

	@toc	rndr

*********************************************************************************************************/
typedef enum fz_rndr_ishd_texture_limit_enum
{
	FZ_RNDR_ISHD_TEXTURE_LIMIT_16 = 0,	/* @emem		16 pixels */
	FZ_RNDR_ISHD_TEXTURE_LIMIT_32,		/* @emem		32 pixels */
	FZ_RNDR_ISHD_TEXTURE_LIMIT_64,		/* @emem		64 pixels */
	FZ_RNDR_ISHD_TEXTURE_LIMIT_128,		/* @emem		128 pixels */
	FZ_RNDR_ISHD_TEXTURE_LIMIT_256,		/* @emem		256 pixels */
	FZ_RNDR_ISHD_TEXTURE_LIMIT_512,		/* @emem		512 pixels */
	FZ_RNDR_ISHD_TEXTURE_LIMIT_1024,	/* @emem		1024 pixels */
	FZ_RNDR_ISHD_TEXTURE_LIMIT_2048,	/* @emem		2048 pixels */
	FZ_RNDR_ISHD_TEXTURE_LIMIT_4096,	/* @emem		4096 pixels */
	FZ_RNDR_ISHD_TEXTURE_LIMIT_MAX
}fz_rndr_ishd_texture_limit_enum;

/********************************************************************************************************

	@enum	

	@desc	Identifier for how to deal with unsupported lights.

	@avail	5.0.0.0
			
	@see	

	@toc	rndr

*********************************************************************************************************/
typedef enum fz_rndr_lite_unsup_enum
{
	FZ_RNDR_LITE_UNSUP_IGNORE = 0,	/* @emem		Ignore them */
	FZ_RNDR_LITE_UNSUP_APPROX,		/* @emem		Approximate them */
	FZ_RNDR_LITE_UNSUP_MAX
}fz_rndr_lite_unsup_enum;

/********************************************************************************************************

	@enum	

	@desc	Renderer parameters for Interactive Shaded Renderer.  Each renderer has a set of options that can
			be retrieved or changed, and this enum identifies which option is wanted.  This
			is used with the fz_rndr_get_parm, fz_rndr_set_parm render manager functions.
			
	@avail	5.0.0.0
			
	@see	<auto>

	@toc	rndr

*********************************************************************************************************/
typedef enum fz_rndr_ishd_parm_enum
{	
	FZ_RNDR_ISHD_PARM_EDGE = 0,		/*	@emem		Whether or not to show edges.
										@ptype		fzrt_boolean
										@default	FALSE
									*/

	FZ_RNDR_ISHD_PARM_COLOR,		/*	@emem		Whether or not to show colors of edges.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_ISHD_PARM_TRNS,			/*	@emem		Whether or not to show transparencies.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_ISHD_PARM_HIDE_GHST,	/*	@emem		Whether or not to hide ghosted objects and layers.
										@ptype		fzrt_boolean
										@default	TRUE
									*/
	FZ_RNDR_ISHD_PARM_HIDE_GHST_OBJT,	/*	@emem		Whether or not to hide ghosted objects.
										@ptype		fzrt_boolean
										@default	TRUE
									*/
	FZ_RNDR_ISHD_PARM_HIDE_GHST_LAYER,	/*	@emem		Whether or not to hide ghosted layers.
										@ptype		fzrt_boolean
										@default	TRUE
									*/
	FZ_RNDR_ISHD_PARM_TEXTURES,		/*	@emem		Whether or not to have textures.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_ISHD_PARM_TLIMIT,		/*	@emem		Number of pixels to limit the size of the texture to.
										@ptype		fz_rndr_ishd_texture_limit_enum
										@default	FZ_RNDR_ISHD_TEXTURE_LIMIT_512
									*/
	FZ_RNDR_ISHD_PARM_FOG,			/*	@emem		Whether or not to have fog.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_ISHD_PARM_FOG_DIST,		/*	@emem		Whether or not to have fog distance calculated from view point.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_ISHD_PARM_DIST_INP,		/*	@emem		Distance from view point where fog begins.
										@ptype		float
										@default	1072.0
										@rimin_imax	0.001 | 1000000000.0
									*/
	FZ_RNDR_ISHD_PARM_FOG_HITHER,	/*	@emem		Whether or not to have fog distance calculated as percentage from hither plane.
										@ptype		fzrt_boolean
										@default	TRUE
									*/
	FZ_RNDR_ISHD_PARM_HITHER_INP,	/*	@emem		Percentage from hither plane where fog begins.
										@ptype		float
										@default	0.5
										@rimin_imax	0.0 | 1.0
									*/
	FZ_RNDR_ISHD_PARM_FOG_COLOR,	/*	@emem		Color of fog.
										@ptype		fz_rgb_float_td
										@default	{1.0, 1.0, 1.0}
									*/
	FZ_RNDR_ISHD_PARM_BGND_MIX,		/*	@emem		Percentage to mix fog with background.
										@ptype		float
										@default	0.5
										@rimin_imax	0.0 | 1.0
									*/
	FZ_RNDR_ISHD_PARM_LITE,			/*	@emem		How to deal with unsupported lights.
										@ptype		fz_rndr_lite_unsup_enum
										@default	FZ_RNDR_LITE_UNSUP_IGNORE
									*/
	FZ_RNDR_ISHD_PARM_LITE_NAT,		/*	@emem		Whether or not to use native lights.
										@ptype		fzrt_boolean
										@default	TRUE
									*/
	FZ_RNDR_ISHD_PARM_LITE_SOFTW,	/*	@emem		Whether or not to use software lights.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_ISHD_PARM_EDGE_INP,		/*	@emem		Width of highlighted lines in pixels.
										@ptype		short
										@default	4
										@rimin_imax	1 | 512
									*/
	FZ_RNDR_ISHD_PARM_SHADOWS,		/*	@emem		Whether or not to have shadows.
										@ptype		fzrt_boolean
										@default	FALSE
										@pavail		6.0.2
									*/
	FZ_RNDR_ISHD_PARM_TLIMIT_PROCEDURAL, /*	@emem	Number of pixels to limit the size of the texture to, procedural textures
										@ptype		fz_rndr_ishd_texture_limit_enum
										@default	FZ_RNDR_ISHD_TEXTURE_LIMIT_512
										@pavail		6.5.0
									*/
	FZ_RNDR_ISHD_PARM_SHADOWS_ACCURATE,	/*	@emem		If using fast shadows.
										@ptype		fzrt_boolean
										@default	FALSE
										@pavail		6.5.0
									*/
	FZ_RNDR_ISHD_PARM_TWO_SIDE_LIGHTING,/*	@emem		If using two-sided lighting
										@ptype		fzrt_boolean
										@default	FALSE
										@pavail		6.5.0
									*/
	FZ_RNDR_ISHD_PARM_BUMPMAPS,     /*	@emem		If using bumpmapping
										@ptype		fzrt_boolean
										@default	FALSE
										@pavail		6.5.0
									*/
	
	FZ_RNDR_ISHD_PARM_MAX
}fz_rndr_ishd_parm_enum;

/********************************************************************************************************

	@enum	

	@desc	Renderer parameters for Quick Paint.  Each renderer has a set of options that can
			be retrieved or changed, and this enum identifies which option is wanted.  This
			is used with the fz_rndr_get_parm, fz_rndr_set_parm render manager functions.
			
	@avail	5.0.0.0
			
	@see	<auto>

	@toc	rndr

*********************************************************************************************************/
typedef enum fz_rndr_quik_parm_enum
{
	FZ_RNDR_QUIK_PARM_COLOR = 0,	/*	@emem		Whether or not to show object's color.
										@ptype		fzrt_boolean
										@default	TRUE
									*/
	FZ_RNDR_QUIK_PARM_EDGE,			/*	@emem		Whether or not to show edges.
										@ptype		fzrt_boolean
										@default	TRUE
									*/
	FZ_RNDR_QUIK_PARM_FACETS,		/*	@emem		Whether or not to show facets of smooth objects.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_QUIK_PARM_SHADOWS,		/*	@emem		Whether or not to calculate shadows.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_QUIK_PARM_TRNS,			/*	@emem		Whether or not to show transparent objects.
										@ptype		fzrt_boolean
										@default	TRUE
									*/
	FZ_RNDR_QUIK_PARM_SURF,			/*	@emem		Whether or not to show transparent objects as solids/surfaces.
										@ptype		fzrt_boolean
										@default	TRUE
									*/
	FZ_RNDR_QUIK_PARM_WIRE,			/*	@emem		Whether or not to show transparent objects as wire frame.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_QUIK_PARM_NORMAL,		/*	@emem		Whether or not to use normal image quality.
										@ptype		fzrt_boolean
										@default	TRUE
									*/
	FZ_RNDR_QUIK_PARM_BETTER,		/*	@emem		Whether or not to use better image quality.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_QUIK_PARM_MAX
}fz_rndr_quik_parm_enum;


/********************************************************************************************************

	@enum	

	@desc	Renderer parameters for Hidden Line.  Each renderer has a set of options that can
			be retrieved or changed, and this enum identifies which option is wanted.  This
			is used with the fz_rndr_get_parm, fz_rndr_set_parm render manager functions.
			
	@avail	5.0.0.0
			
	@see	<auto>

	@toc	rndr

*********************************************************************************************************/
typedef enum fz_rndr_hlin_parm_enum
{
	FZ_RNDR_HLIN_PARM_COLOR = 0,	/*	@emem		Whether or not to show object's color.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_HLIN_PARM_OPEN,			/*	@emem		Whether or not to show open shapes.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_HLIN_PARM_TRNS,			/*	@emem		Whether or not to show transparent objects.
										@ptype		fzrt_boolean
										@default	TRUE
									*/
	FZ_RNDR_HLIN_PARM_SURF,			/*	@emem		Whether or not to show transparent objects as solids/surfaces.
										@ptype		fzrt_boolean
										@default	TRUE
									*/
	FZ_RNDR_HLIN_PARM_WIRE,			/*	@emem		Whether or not to show transparent objects as wire frame.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_HLIN_PARM_ISCT,			/*	@emem		Whether or not to show transparent objects' wire frame intersections.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_HLIN_PARM_HIDE,			/*	@emem		Whether or not to hide edges greater than some angle.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_HLIN_PARM_HIDE_ANGLE,	/*	@emem		The angle at which edges will be hidden.
										@ptype		double
										@default	140
										@rimin_imax	0.01 | 179.99
									*/
	FZ_RNDR_HLIN_PARM_FACETS,		/*	@emem		Whether or not to show facets of smooth objects.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_HLIN_PARM_INTERIOR_PIX,	/*	@emem		# of pixels to display the interior edges.
										@ptype		fzrt_int
										@default	FALSE
									*/
	FZ_RNDR_HLIN_PARM_SILHOUETTE_PIX,/*	@emem		# of pixels to display the silhoutte edges.
									  @ptype		fzrt_int
									  @default	FALSE
									  */
	FZ_RNDR_HLIN_PARM_OBSCURED_EDGES,/*	@emem		Whether or not to show obscured (hidden) edges.
									  @ptype		fzrt_boolean
									  @default	FALSE
									  */
	FZ_RNDR_HLIN_PARM_OBSCURED_PIX,	/*	@emem		# of pixels to display the obscured (hidden) edges
										@ptype		fzrt_int
										@default	FALSE
									 */
	FZ_RNDR_HLIN_PARM_OBSCURED_LSTYL,/*	@emem		# of pixels to display the obscured (hidden) edges
										 @ptype		fz_tag_td
										 @default	FALSE
										 */
	FZ_RNDR_HLIN_PARM_OBSCURED_BACKF,/*	@emem		Whether or not to show back edges (when FZ_RNDR_HLIN_PARM_OBSCURED_EDGES is TRUE).
									  @ptype		fzrt_boolean
									  @default	FALSE
									  */
	FZ_RNDR_HLIN_PARM_MAX
}fz_rndr_hlin_parm_enum;


/********************************************************************************************************

	@enum	

	@desc	Renderer parameters for Surface Render.  Each renderer has a set of options that can
			be retrieved or changed, and this enum identifies which option is wanted.  This
			is used with the fz_rndr_get_parm, fz_rndr_set_parm render manager functions.
			
	@avail	5.0.0.0
			
	@see	<auto>

	@toc	rndr

*********************************************************************************************************/
typedef enum fz_rndr_surf_parm_enum
{
	FZ_RNDR_SURF_PARM_COLOR = 0,	/*	@emem		Whether or not to show object's color.
										@ptype		fzrt_boolean
										@default	TRUE
									*/
	FZ_RNDR_SURF_PARM_EDGE,			/*	@emem		Whether or not to show edges.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_SURF_PARM_QUICK,		/*	@emem		Whether or not to show edges quickly.
										@ptype		fzrt_boolean
										@default	TRUE
									*/
	FZ_RNDR_SURF_PARM_ACCURATE,		/*	@emem		Whether or not to show edges accurately.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_SURF_PARM_FACETS,		/*	@emem		Whether or not to show facets of smooth objects.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_SURF_PARM_SHADOWS,		/*	@emem		Whether or not to show shadows.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_SURF_PARM_TRNS,			/*	@emem		Whether or not to show transparent objects.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_SURF_PARM_SURF,			/*	@emem		Whether or not to show transparent objects as solids/surfaces.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_SURF_PARM_WIRE,			/*	@emem		Whether or not to show transparent objects as wire frame.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_SURF_PARM_ISCT,			/*	@emem		Whether or not to show transparent objects wire frame intersections.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_SURF_PARM_MAX
}fz_rndr_surf_parm_enum;

/********************************************************************************************************

	@enum	

	@desc	Identifier for how to treat shadows during rendering.

	@avail	5.0.0.0
			
	@see	

	@toc	rndr

*********************************************************************************************************/
typedef enum fz_rndr_shadows_enum
{
	FZ_RNDR_SHADOWS_OPAQ = 0,		/* @emem		All Opaque */
	FZ_RNDR_SHADOWS_TRNS,			/* @emem		All Transparent */
	FZ_RNDR_SHADOWS_LITE,			/* @emem		Per Light */
	FZ_RNDR_SHADOWS_MAX
}fz_rndr_shadows_enum;


/********************************************************************************************************

	@enum	

	@desc	Renderer parameters for Shaded Render.  Each renderer has a set of options that can
			be retrieved or changed, and this enum identifies which option is wanted.  This
			is used with the fz_rndr_get_parm, fz_rndr_set_parm render manager functions.
			
	@avail	5.0.0.0
			
	@see	<auto>

	@toc	rndr

*********************************************************************************************************/
typedef enum fz_rndr_shad_parm_enum
{	
	FZ_RNDR_SHAD_PARM_SET_IMG_SIZE = 0,/* @emem		Whether or not to "set image size".
										@ptype		fzrt_boolean 
										@default	FALSE
									*/
	FZ_RNDR_SHAD_PARM_AA,			/*	@emem		Whether or not to do anti-aliasing.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_SHAD_PARM_TRNS,			/*	@emem		Whether or not to do transparencies.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	
	FZ_RNDR_SHAD_PARM_SHADOWS,		/*	@emem		Whether or not to do shadows.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_SHAD_PARM_SHAD_MENU,	/*	@emem		How to deal with shadows during rendering.
										@ptype		fz_rndr_shadows_enum
										@default	FZ_RNDR_SHADOWS_OPAQ
									*/
	FZ_RNDR_SHAD_PARM_GRID,			/*	@emem		Whether or not to have grid and axes.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_SHAD_PARM_GR3D,			/*	@emem		Whether or not to have 3D lines for grid and axes.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_SHAD_PARM_LITE,			/*	@emem		How to deal with unsupported lights.
										@ptype		fz_rndr_lite_unsup_enum
										@default	FZ_RNDR_LITE_UNSUP_IGNORE
									*/
	FZ_RNDR_SHAD_PARM_DCMP,			/*	@emem		Whether or not to decompose non-planar faces.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_SHAD_PARM_SCALE,		/*	@emem		Whether or not to do wire frame line width by scale.
										@ptype		fzrt_boolean
										@default	TRUE
									*/
	FZ_RNDR_SHAD_PARM_SCALE_BY,		/*	@emem		Value to scale wire frame line width by.
										@ptype		float
										@default	1.0
										@rimin_imax	0.001 | 32.0
									*/
	FZ_RNDR_SHAD_PARM_SET,			/*	@emem		Whether or not to do wire frame line width by absolute pixel size.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_SHAD_PARM_SET_TO,		/*	@emem		Absolute value for wire frame line width.
										@ptype		short
										@default	1
										@rimin_imax	1 | 32
									*/
	FZ_RNDR_SHAD_PARM_GEOM_SILH,	/*	@emem		Silhouette quality used when rendering smooth objects using their
													mathematical surface definition rather than their facets.
										@ptype		float
										@default	1
										@rimin_imax	0.0 | 1.0
										@pavail		6.5.0.0
									*/
	FZ_RNDR_SHAD_PARM_GEOM_SURF,	/*	@emem		Surface quality used when rendering smooth objects using their
													mathematical surface definition rather than their facets.
										@ptype		float
										@default	0.5
										@rimin_imax	0.0 | 1.0
										@pavail		6.5.0.0
									*/

	FZ_RNDR_SHAD_PARM_MAX
} fz_rndr_shad_parm_enum;


/********************************************************************************************************

	@enum	

	@desc	These identifiers are no longer used. They are replaced by the new fz_rndr_rzne_style_enum
			identifiers used by the new FZ_RNDR_RZNE_PARM_STYLE parameter

	@avail	5.0.0.0
			
	@see	

	@toc	rndr

*********************************************************************************************************/
typedef enum fz_rndr_rzne_type_enum
{
	FZ_RNDR_RZNE_TYPE_FLAT_OBSOLETE = 0,		/* @emem		Flat shading */
	FZ_RNDR_RZNE_TYPE_GOURAUD_OBSOLETE,			/* @emem		Gouraud shading */
	FZ_RNDR_RZNE_TYPE_PHONG_OBSOLETE,			/* @emem		Phong shading */
	FZ_RNDR_RZNE_TYPE_PVIEW_ZBUFFER_OBSOLETE,	/* @emem		Preview Z-Buffer */
	FZ_RNDR_RZNE_TYPE_FULL_ZBUFFER_OBSOLETE,	/* @emem		Full Z-Buffer */
	FZ_RNDR_RZNE_TYPE_PVIEW_RAYTRACE_OBSOLETE,	/* @emem		Preview Raytrace */
	FZ_RNDR_RZNE_TYPE_FULL_RAYTRACE_OBSOLETE,	/* @emem		Full Raytrace */
	FZ_RNDR_RZNE_TYPE_MAX
}fz_rndr_rzne_type_enum;

/********************************************************************************************************

	@enum	

	@desc	Identifier for what type of shading or raytrace algorithm to use for rendering. Used by the
			FZ_RNDR_RZNE_PARM_STYLE parameter.

	@avail	6.5.0.0
			
	@see	

	@toc	rndr

*********************************************************************************************************/
typedef enum fz_rndr_rzne_style_enum
{
	FZ_RNDR_RZNE_STYLE_SIMPLE = 0,			/* @emem		Simple shading */
	FZ_RNDR_RZNE_STYLE_ZBUFFER,				/* @emem		Z-Buffer based scanline rendering */
	FZ_RNDR_RZNE_STYLE_RAYTRACED,			/* @emem		Raytraced based rendering */
	FZ_RNDR_RZNE_STYLE_MAX
}fz_rndr_rzne_style_enum;

/********************************************************************************************************

	@enum	

	@desc	Identifier for how much super sampling to do.

	@avail	5.0.0.0
			
	@see	

	@toc	rndr

*********************************************************************************************************/
typedef enum fz_rndr_rzne_ssample_enum
{
	FZ_RNDR_RZNE_SSAMPLE_LOW = 0,		/* @emem		Low super sampling 2x2 */
	FZ_RNDR_RZNE_SSAMPLE_MEDIUM,		/* @emem		Medium super sampling 3x3 */
	FZ_RNDR_RZNE_SSAMPLE_HIGH,			/* @emem		High super sampling 4x4 */
	FZ_RNDR_RZNE_SSAMPLE_MAX
}fz_rndr_rzne_ssample_enum;

/********************************************************************************************************

	@enum	

	@desc	Identifier for how to do light intensities in rendering.

	@avail	5.0.0.0
			
	@see	

	@toc	rndr

*********************************************************************************************************/
typedef enum fz_rndr_rzne_lite_intens_enum
{
	FZ_RNDR_RZNE_LITE_INTENS_SIMPLE = 0,	/* @emem		All Simple */
	FZ_RNDR_RZNE_LITE_INTENS_ACCURATE,		/* @emem		All Accurate */
	FZ_RNDR_RZNE_LITE_INTENS_LITE,			/* @emem		Per Light */
	FZ_RNDR_RZNE_LITE_INTENS_MAX
}fz_rndr_rzne_lite_intens_enum;

/********************************************************************************************************

	@enum	

	@desc	Identifier for how to deal with area and line lights.

	@avail	5.0.0.0
			
	@see	

	@toc	rndr

*********************************************************************************************************/
typedef enum fz_rndr_rzne_lite_area_ln_enum
{
	FZ_RNDR_RZNE_LITE_AREA_LN_IGNORE = 0,	/* @emem		Ignore them */
	FZ_RNDR_RZNE_LITE_AREA_LN_APPROX,		/* @emem		Approximate them */
	FZ_RNDR_RZNE_LITE_AREA_LN_USE,			/* @emem		Use them */
	FZ_RNDR_RZNE_LITE_AREA_LN_MAX
}fz_rndr_rzne_lite_area_ln_enum;

/********************************************************************************************************

	@enum	

	@desc	Identifier for how to environment map.

	@avail	5.0.0.0
			
	@see	

	@toc	rndr

*********************************************************************************************************/
typedef enum fz_rndr_rzne_envr_type_enum
{
	FZ_RNDR_RZNE_ENVR_TYPE_CUBIC = 0,	/* @emem		Cubic environment mapping */
	FZ_RNDR_RZNE_ENVR_TYPE_SPHERICAL,	/* @emem		Spherical environment mapping */
	FZ_RNDR_RZNE_ENVR_TYPE_MAX
}fz_rndr_rzne_envr_type_enum;

/********************************************************************************************************

	@enum		Spherical Environment map layout type.

	@desc		Parameter identifiers for a Spherical Environment map layout type. 
			
	@avail		5.0.0.0
			
 	@see		<auto>

	@toc		rndr

*********************************************************************************************************/
typedef enum fz_rndr_rzne_envr_sphr_layout_enum
{
	FZ_RNDR_RZNE_ENVR_SPHR_LAYOUT_PANORAMIC = 0,	/* @emem	Panoramic layout */
	FZ_RNDR_RZNE_ENVR_SPHR_LAYOUT_SPHERIC,			/* @emem	Spheric layout */
	
	FZ_RNDR_RZNE_ENVR_SPHR_LAYOUT_MAX

} fz_rndr_rzne_envr_sphr_layout_enum;

/********************************************************************************************************

	@enum		GI Scene Size.

	@desc		Parameter identifiers for which global illumination scene size. 
			
	@avail		6.5.0.0
			
 	@see		<auto>

	@toc		rndr

*********************************************************************************************************/
typedef enum fz_rndr_rzne_gi_scene_size_enum
{
	FZ_RNDR_RZNE_GI_SCENE_SIZE_SM_OBJ = 0,		/* @emem	Small object */
	FZ_RNDR_RZNE_GI_SCENE_SIZE_LG_OBJ,			/* @emem	Large object */
	FZ_RNDR_RZNE_GI_SCENE_SIZE_ROOM,			/* @emem	Room */
	FZ_RNDR_RZNE_GI_SCENE_SIZE_BLDG,			/* @emem	Building */
	FZ_RNDR_RZNE_GI_SCENE_SIZE_CITY,			/* @emem	City */
	FZ_RNDR_RZNE_GI_SCENE_SIZE_FROM_VIEW,		/* @emem	From View */
	FZ_RNDR_RZNE_GI_SCENE_SIZE_CUSTOM,			/* @emem	Custom defined size */
	
	FZ_RNDR_RZNE_GI_SCENE_SIZE_MAX
} fz_rndr_rzne_gi_scene_size_enum;


/********************************************************************************************************

	@enum		GI quality control presets.

	@desc		Parameter identifiers for which global illumination quality preset level is desired. 
			
	@avail		6.5.0.0
			
 	@see		<auto>

	@toc		rndr

*********************************************************************************************************/
typedef enum fz_rndr_rzne_gi_quality_enum
{
	FZ_RNDR_RZNE_GI_QUALITY_1=0,	/* @emem	Level 1 (Low) */
	FZ_RNDR_RZNE_GI_QUALITY_2,		/* @emem	Level 2 */
	FZ_RNDR_RZNE_GI_QUALITY_3,		/* @emem	Level 3 */
	FZ_RNDR_RZNE_GI_QUALITY_4,		/* @emem	Level 4 */
	FZ_RNDR_RZNE_GI_QUALITY_5,		/* @emem	Level 5 (High) */
	FZ_RNDR_RZNE_GI_QUALITY_CUSTOM,	/* @emem	Custom */
	
	FZ_RNDR_RZNE_GI_QUALITY_MAX
} fz_rndr_rzne_gi_quality_enum;

/********************************************************************************************************

	@enum		AO distance of effect.

	@desc		Parameter identifiers for which ambient occlusion distance is desired. 
			
	@avail		6.5.0.0
			
 	@see		<auto>

	@toc		rndr

*********************************************************************************************************/
typedef enum fz_rndr_rzne_ao_dist_enum
{
	FZ_RNDR_RZNE_AO_DIST_LOW=0,		/* @emem	Low */
	FZ_RNDR_RZNE_AO_DIST_MED,		/* @emem	Medium */
	FZ_RNDR_RZNE_AO_DIST_HIGH,		/* @emem	High */
	FZ_RNDR_RZNE_AO_DIST_CUSTOM,	/* @emem	Custom */
	
	FZ_RNDR_RZNE_AO_DIST_MAX
} fz_rndr_rzne_ao_dist_enum;

/********************************************************************************************************

	@enum		FG level of detail.

	@desc		Parameter identifiers for which level of detail for Final Gather is desired. 
			
	@avail		6.5.0.0
			
 	@see		<auto>

	@toc		rndr

*********************************************************************************************************/
typedef enum fz_rndr_rzne_fg_lod_enum
{
	FZ_RNDR_RZNE_FG_LOD_1=0,	/* @emem	Level of Detail 1 (Low) */
	FZ_RNDR_RZNE_FG_LOD_2,		/* @emem	Level of Detail 2 */
	FZ_RNDR_RZNE_FG_LOD_3,		/* @emem	Level of Detail 3 */
	FZ_RNDR_RZNE_FG_LOD_4,		/* @emem	Level of Detail 4 */
	FZ_RNDR_RZNE_FG_LOD_5,		/* @emem	Level of Detail 5 (High) */
	FZ_RNDR_RZNE_FG_LOD_CUSTOM,	/* @emem	Custom Level of Detail */
	
	FZ_RNDR_RZNE_FG_LOD_MAX
} fz_rndr_rzne_fg_lod_enum;


/********************************************************************************************************

	@enum		FG Specular Illumination.

	@desc		Parameter identifiers for how Specular Illumination is calculated for Final Gather. 
			
	@avail		6.5.0.0
			
 	@see		<auto>

	@toc		rndr

*********************************************************************************************************/
typedef enum fz_rndr_rzne_fg_spec_enum
{
	FZ_RNDR_RZNE_FG_SPEC_DIRECT_NO_DOME=0,	/* @emem	Direct without Dome Lights */
	FZ_RNDR_RZNE_FG_SPEC_DIRECT_DOME,		/* @emem	Direct with Dome Lights */
	FZ_RNDR_RZNE_FG_SPEC_INDIRECT,			/* @emem	Indirect from Final Gather */
	
	FZ_RNDR_RZNE_FG_SPEC_MAX
} fz_rndr_rzne_fg_spec_enum;


/********************************************************************************************************

	@enum	

	@desc	Renderer parameters for RenderZone.  Each renderer has a set of options that can
			be retrieved or changed, and this enum identifies which option is wanted.  This
			is used with the fz_rndr_get_parm, fz_rndr_set_parm render manager functions.
			
	@avail	5.0.0.0
			
	@see	<auto>

	@toc	rndr

*********************************************************************************************************/
typedef enum fz_rndr_rzne_parm_enum
{	
	FZ_RNDR_RZNE_PARM_TYPE_OBSOLETE = 0,/*	@emem		This parameter is no longer supported. it is replaced by the
													new FZ_RNDR_RZNE_PARM_STYLE parameter.
										@ptype		fz_rndr_rzne_type_enum
										@default	FZ_RNDR_RZNE_TYPE_FULL_ZBUFFER
									*/
	FZ_RNDR_RZNE_PARM_MAX_RAYS,		/*	@emem		Maximum number of recursive rays.
										@ptype		short
										@default	8
										@rimin_imax	1 | 64
									*/
	FZ_RNDR_RZNE_PARM_MAX_POLYS_BVOL,/*	@emem		Maximum number of polygons per bounded volume.
										@ptype		short
										@default	8
										@rimin_imax	1 | 32767
									*/
	FZ_RNDR_RZNE_PARM_MAX_DEPTH_BVOL,/*	@emem		Maximum depth of bounding volume subdivision.
										@ptype		short
										@default	8
										@rimin_imax	1 | 16
									*/
	FZ_RNDR_RZNE_PARM_MIN_RAY_CONTRIB,/*@emem		Minimum ray contribution.
										@ptype		float
										@default	0.1
										@rimin_imax	0.0 | 1.0
									*/
	FZ_RNDR_RZNE_PARM_AA_THRESHOLD,	/*	@emem		Anti-alias sampling threshold.
										@ptype		float
										@default	0.1
										@rimin_imax	0.0 | 1.0
									*/
	FZ_RNDR_RZNE_PARM_EST_MEM_USAGE,/*	@emem		Whether or not to display estimated memory usage.
										@ptype		fzrt_boolean 
										@default	FALSE
									*/
	FZ_RNDR_RZNE_PARM_SET_IMG_SIZE_OBSOLETE,	/*	@emem		Whether or not to "set image size". No longer used.
										@ptype		fzrt_boolean 
										@default	FALSE
									*/
	FZ_RNDR_RZNE_PARM_SHADOWS,		/*	@emem		Whether or not to have shadows.
										@ptype		fzrt_boolean 
										@default	TRUE
									*/
	FZ_RNDR_RZNE_PARM_SHAD_MENU,	/*	@emem		What type of shadows to calculate.
										@ptype		fz_rndr_shadows_enum
										@default	FZ_RNDR_SHADOWS_LITE
									*/
	FZ_RNDR_RZNE_PARM_TEXTURES,		/*	@emem		Whether or not to have textures.
										@ptype		fzrt_boolean
										@default	TRUE
									*/
	FZ_RNDR_RZNE_PARM_REFL,			/*	@emem		Whether or not to have reflections.
										@ptype		fzrt_boolean
										@default	TRUE
									*/
	FZ_RNDR_RZNE_PARM_TRNS,			/*	@emem		Whether or not to have transparencies.
										@ptype		fzrt_boolean
										@default	TRUE
									*/
	FZ_RNDR_RZNE_PARM_BUMP,			/*	@emem		Whether or not to have bump mapping.
										@ptype		fzrt_boolean
										@default	TRUE
									*/
	FZ_RNDR_RZNE_PARM_SHDR_AA,		/*	@emem		Whether or not to anti-alias shaders.
										@ptype		fzrt_boolean
										@default	TRUE
									*/
	FZ_RNDR_RZNE_PARM_SUPER,		/*	@emem		Whether or not to super sample.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_RZNE_PARM_SUPER_MENU,	/*	@emem		What level of super sampling.
										@ptype		fz_rndr_rzne_ssample_enum
										@default	FZ_RNDR_RZNE_SSAMPLE_LOW
									*/
	FZ_RNDR_RZNE_PARM_LITE_MENU,	/*	@emem		How to deal with light intensities.
										@ptype		fz_rndr_rzne_lite_intens_enum
										@default	FZ_RNDR_RZNE_LITE_INTENS_LITE
									*/
	FZ_RNDR_RZNE_PARM_AREA_LN_MENU,	/*	@emem		How to deal with area/line lights
										@ptype		fz_rndr_rzne_lite_area_ln_enum
										@default	FZ_RNDR_RZNE_LITE_AREA_LN_USE
									*/
	FZ_RNDR_RZNE_PARM_LITE_GLOW,	/*	@emem		Whether or not to have light glow.
										@ptype		fzrt_boolean
										@default	TRUE
									*/
	FZ_RNDR_RZNE_PARM_ALYS,			/*	@emem		Whether or not to analyze lighting.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_RZNE_PARM_DCMP,			/*	@emem		Whether or not to decompose non-planar faces.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_RZNE_PARM_SCALE,		/*	@emem		Whether or not to do wire frame line width by scale.
										@ptype		fzrt_boolean
										@default	TRUE
									*/
	FZ_RNDR_RZNE_PARM_SCALE_BY,		/*	@emem		Value to scale wire frame line width by.
										@ptype		float
										@default	1.0
										@rimin_imax	0.001 | 32.0
									*/
	FZ_RNDR_RZNE_PARM_SET,			/*	@emem		Whether or not to do wire frame line width by absolute pixel size.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_RZNE_PARM_SET_TO,		/*	@emem		Absolute value for wire frame line width.
										@ptype		short
										@default	1
										@rimin_imax	1 | 32
									*/
	FZ_RNDR_RZNE_PARM_BGND_SHDR,	/*	@emem		Background shader.
										@ptype		fz_shdr_ptr
										@default	Project Color
									*/
	FZ_RNDR_RZNE_PARM_ENVR,			/*	@emem		Whether or not to have environment mapping.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_RZNE_PARM_ENVR_TYPE,	/*	@emem		How to environment map.
										@ptype		fz_rndr_rzne_envr_type_enum
										@default	FZ_RNDR_RZNE_ENVR_TYPE_SPHERICAL
									*/
	FZ_RNDR_RZNE_PARM_ENVR_SHDR,	/*	@emem		Environment shader.
										@ptype		fz_shdr_ptr
										@default	Environment Map
									*/
	FZ_RNDR_RZNE_PARM_ENVR_RES,		/*	@emem		Number of pixels for environment map.
										@ptype		fzrt_int
										@default	256
										@rimin_imax	32 | 16384
									*/
	FZ_RNDR_RZNE_PARM_DEPTH_EFFECT,	/*	@emem		Whether or not to have depth effect (foreground shader).
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_RZNE_PARM_FORE_SHDR,	/*	@emem		Foreground shader (depth effect).
										@ptype		fz_shdr_ptr
										@default	Fog
									*/
	FZ_RNDR_RZNE_PARM_APPLY_ALPHA,	/*	@emem		Whether or not to apply alpha channel.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_RZNE_PARM_GEN_POSTP,	/*	@emem		Whether or not to generate post-process data.
										@ptype		fzrt_boolean
										@default	TRUE
									*/
	FZ_RNDR_RZNE_PARM_EXP_COR,		/*	@emem		Whether or not to correct exposure.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_RZNE_PARM_DEPTH_BLUR,	/*	@emem		Whether or not to have depth blur.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_RZNE_PARM_LENS_FLARE,	/*	@emem		Whether or not to have lens flare.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_RZNE_PARM_STYLE,		/*	@emem		What type of shading or raytrace algorithm to use for rendering.
										@ptype		fz_rndr_rzne_style_enum
										@default	FZ_RNDR_RZNE_STYLE_ZBUFFER
										@pavail		6.5.0.0
									*/
	FZ_RNDR_RZNE_PARM_GEOM_SILH,	/*	@emem		Silhouette quality used when rendering smooth objects using their
													mathematical surface definition rather than their facets.
										@ptype		float
										@default	1
										@rimin_imax	0.0 | 1.0
										@pavail		6.5.0.0
									*/
	FZ_RNDR_RZNE_PARM_GEOM_SURF,	/*	@emem		Surface quality used when rendering smooth objects using their
													mathematical surface definition rather than their facets.
										@ptype		float
										@default	0.5
										@rimin_imax	0.0 | 1.0
										@pavail		6.5.0.0
									*/
	FZ_RNDR_RZNE_PARM_GI_AO,		/*	@emem		Whether or not to enable Ambient Occlusion.
										@ptype		fzrt_boolean
										@default	FALSE
										@pavail		6.5.0.0
									*/
	FZ_RNDR_RZNE_PARM_GI_FG,		/*	@emem		Whether or not to enable Final Gather.
										@ptype		fzrt_boolean
										@default	FALSE
										@pavail		6.5.0.0
									*/
	FZ_RNDR_RZNE_PARM_GI_SCENE_SIZE,/*	@emem		Global Illumination scene size preset.
										@ptype		fz_rndr_rzne_gi_scene_size_enum
										@default	FZ_RNDR_RZNE_GI_SCENE_SIZE_ROOM
										@pavail		6.5.0.0
									*/
	FZ_RNDR_RZNE_PARM_GI_SCENE_SIZE_CUSTOM,/*	@emem		Global Illumination scene size custom value.
										@ptype		double
										@rimin		0
										@pavail		6.5.0.0
									*/
	FZ_RNDR_RZNE_PARM_GI_QUALITY,	/*	@emem		Global Illumination simple quality preset.
										@ptype		fz_rndr_rzne_gi_quality_enum
										@default	FZ_RNDR_RZNE_GI_QUALITY_3
										@pavail		6.5.0.0
									*/
	FZ_RNDR_RZNE_PARM_AO_DIST,		/*	@emem		Ambient Occlusion distance.
										@ptype		fz_rndr_rzne_ao_dist_enum
										@default	FZ_RNDR_RZNE_AO_DIST_MED
										@pavail		6.5.0.0
									*/
	FZ_RNDR_RZNE_PARM_AO_DIST_CUSTOM,/*	@emem		Ambient Occlusion custom distance value.
										@ptype		double
										@rimin		0
										@pavail		6.5.0.0
									*/
	FZ_RNDR_RZNE_PARM_AO_CONTRAST,	/*	@emem		Ambient Occlusion contrast.
										@ptype		float
										@default	1.0
										@rimin_imax	0.0|1.0
										@pavail		6.5.0.0
									*/
	FZ_RNDR_RZNE_PARM_AO_FALLOFF,	/*	@emem		Ambient Occlusion falloff.
										@ptype		float
										@default	0.5
										@rimin_imax	0.0|1.0
										@pavail		6.5.0.0
									*/
	FZ_RNDR_RZNE_PARM_AO_ADD_CONTRAST,	/*	@emem		Ambient Occlusion additional contrast.
										@ptype		float
										@default	0.0
										@rimin_imax	0.0|1.0
										@pavail		6.5.0.0
									*/
	FZ_RNDR_RZNE_PARM_AO_ADD_NOISE,	/*	@emem		Whether or not to add noise to Ambient Occlusion.
										@ptype		fzrt_boolean
										@default	FALSE
										@pavail		6.5.0.0
									*/
	FZ_RNDR_RZNE_PARM_AO_NUM_RAYS,	/*	@emem		Number of rays to use for the Ambient Occlusion quality.
										@ptype		fzrt_int
										@rimin		10
										@pavail		6.5.0.0
									*/
	FZ_RNDR_RZNE_PARM_FG_LOD,		/*	@emem		Final Gather level of detail.
										@ptype		fz_rndr_rzne_fg_lod_enum
										@default	FZ_RNDR_RZNE_FG_LOD_2
										@pavail		6.5.0.0
									*/
	FZ_RNDR_RZNE_PARM_FG_LOD_CUSTOM,/*	@emem		Final Gather level of detail custom value.
										@ptype		double
										@rmin		0
										@pavail		6.5.0.0
									*/
	FZ_RNDR_RZNE_PARM_FG_ADD_RADIOS,/*	@emem		Whether or not to add Radiosity solution to Final Gather solution.
										@ptype		fzrt_boolean
										@default	FALSE
										@pavail		6.5.0.0
									*/
	FZ_RNDR_RZNE_PARM_FG_RADIOS_TIME,/*	@emem		Amount of time (in secs) to spend computing Radiosity solution for Final Gather.
										@ptype		float
										@default	60
										@pavail		6.5.0.0
									*/
	FZ_RNDR_RZNE_PARM_FG_RADIOS_BBOX,/*	@emem		Whether or not to use bounding box in the Radiosity solution for Final Gather.
										@ptype		fzrt_boolean
										@default	FALSE
										@pavail		6.5.0.0
									*/
	FZ_RNDR_RZNE_PARM_FG_RADIOS_KEEP,/*	@emem		Whether or not to keep the Radiosity solution between renderings for Final Gather.
										@ptype		fzrt_boolean
										@default	TRUE
										@pavail		6.5.0.0
									*/
	FZ_RNDR_RZNE_PARM_FG_RADIOS_QUAL,/*	@emem		Quality of the Radiosity solution for Final Gather.
										@ptype		float
										@default	0.5
										@rimin_imax	0.0|1.0
										@pavail		6.5.0.0
									*/
	FZ_RNDR_RZNE_PARM_FG_SPEC,		/*	@emem		Whether or not to include Specular calculations in Final Gather.
										@ptype		fz_rndr_rzne_fg_spec_enum
										@default	FZ_RNDR_RZNE_FG_SPEC_DIRECT_NO_DOME
										@pavail		6.5.0.0
									*/
	FZ_RNDR_RZNE_PARM_FG_SPEC_RAYS,	/*	@emem		Number of rays to use for the Specular calculations in Final Gather.
										@ptype		fzrt_int
										@default	100
										@rimin		11
										@pavail		6.5.0.0
									*/
	FZ_RNDR_RZNE_PARM_FG_SCALE,		/*	@emem		Amount to scale Final Gather results.
										@ptype		float
										@default	1.0
										@rimin		0.0
										@pavail		6.5.0.0
									*/
	FZ_RNDR_RZNE_PARM_FG_SAMP_RADIUS,/*	@emem		Final Gather initial sampling radius (in pixels).
										@ptype		float
										@rimin_imax	2|20
										@pavail		6.5.0.0
									*/
	FZ_RNDR_RZNE_PARM_FG_MIN_RADIUS,/*	@emem		Final Gather sampling minimum radius.
										@ptype		float
										@rmin		0
										@pavail		6.5.0.0
									*/
	FZ_RNDR_RZNE_PARM_FG_MAX_RADIUS,/*	@emem		Final Gather sampling maximum radius.
										@ptype		float
										@rmin		0
										@pavail		6.5.0.0
									*/
	FZ_RNDR_RZNE_PARM_FG_MAX_LENGTH,/*	@emem		Final Gather maximum ray length.
										@ptype		float
										@rmin		0
										@pavail		6.5.0.0
									*/
	FZ_RNDR_RZNE_PARM_FG_NUM_RAYS,/*	@emem		Number of rays to use for Final Gather calculations.
										@ptype		fzrt_int
										@rimin		101
										@pavail		6.5.0.0
									*/
	FZ_RNDR_RZNE_PARM_FG_INTERP,	/*	@emem		Final Gather interpolation quality
										@ptype		float
										@rimin_imax	0.0|1.0
										@pavail		6.5.0.0
									*/
	FZ_RNDR_RZNE_PARM_FG_BEST_DOME,	/*	@emem		Whether or not to have best dome light quality for Final Gather.
										@ptype		fzrt_boolean
										@default	FALSE
										@pavail		6.5.0.0
									*/
	FZ_RNDR_RZNE_PARM_MAX
}fz_rndr_fzne_parm_enum;

/********************************************************************************************************

	@enum	

	@desc	Identifier for how to smooth plain text objects for interactive rendering.
			
	@avail	5.0.0.0
			
	@see	

	@toc	rndr

*********************************************************************************************************/
typedef enum fz_rndr_iact_text_smooth_enum
{
	FZ_RNDR_IACT_TEXT_SMOOTH_OBJ = 0,	/*	@emem	Use text object's smoothness */
	FZ_RNDR_IACT_TEXT_SMOOTH_BBOX,		/*	@emem	Bounding box */
	FZ_RNDR_IACT_TEXT_SMOOTH_OVERRIDE,	/*	@emem	Override smoothness */
	FZ_RNDR_IACT_TEXT_SMOOTH_MAX
}fz_rndr_iact_text_smooth_enum;


/********************************************************************************************************

	@enum	

	@desc	Identifier for how to color plain text objects for interactive rendering.
			
	@avail	5.0.0.0
			
	@see	

	@toc	rndr

*********************************************************************************************************/
typedef enum fz_rndr_iact_text_colr_enum
{
	FZ_RNDR_IACT_TEXT_COLR_OFF = 0,		/*	@emem	Off, or none */
	FZ_RNDR_IACT_TEXT_COLR_BLACK_WHITE,	/*	@emem	Black and white */
	FZ_RNDR_IACT_TEXT_COLR_COLOR,		/*	@emem	Color */
	FZ_RNDR_IACT_TEXT_COLR_MAX
}fz_rndr_iact_text_colr_enum;

/********************************************************************************************************

	@enum	

	@desc	Interactive options parameters shared by multiple renderers.  This enum identifies which
			option is wanted to retrieve or change.  This is used with the fz_rndr_iact_get_parm,
			fz_rndr_iact_set_parm render manager functions.
			
	@avail	5.0.0.0
			
	@see	<auto>

	@toc	rndr

*********************************************************************************************************/
typedef enum fz_rndr_iact_parm_enum
{	
	FZ_RNDR_IACT_PARM_PTS = 0,		/*	@emem		Whether or not to show points.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_IACT_PARM_KEY_PTS,		/*	@emem		Whether or not to show key points.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_IACT_PARM_MARKED_PTS,	/*	@emem		Whether or not to show marked points.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_IACT_PARM_OBJ_BVOL,		/*	@emem		Whether or not to show objects as bounded volume.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_IACT_PARM_NORMALS,		/*	@emem		Whether or not to show faces' normals.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_IACT_PARM_NORM_COLOR,	/*	@emem		Whether or not to show faces' normals with object colors.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_IACT_PARM_NORM_SIZE,	/*	@emem		Size of the faces' normals (in pixels).
										@ptype		short
										@default	30
										@rimin_imax	-128 | 127
									*/
	FZ_RNDR_IACT_PARM_2D_FIRST,		/*	@emem		Whether or not to show first point.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_IACT_PARM_2D_DIR,		/*	@emem		Whether or not to show directions.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_IACT_PARM_OBJ_AXES,		/*	@emem		Whether or not to show object axes.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_IACT_PARM_OBJ_CTR,		/*	@emem		Whether or not to show object centroids.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_IACT_PARM_OBJ_SIZE,		/*	@emem		Size of object's axes.
										@ptype		short
										@default	30
										@rimin_imax	-128 | 127
									*/
	FZ_RNDR_IACT_PARM_LITE_COLOR,	/*	@emem		Whether or not to show light color.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_IACT_PARM_LITE_DIR,		/*	@emem		Whether or not to show light direction.
										@ptype		fzrt_boolean
										@default	TRUE
									*/
	FZ_RNDR_IACT_PARM_CAM_CONE,		/*	@emem		Whether or not to show camera cone.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_IACT_PARM_CAM_SIZE,		/*	@emem		Size of camera cone.
										@ptype		short
										@default	30
										@rimin_imax	-128 | 127
									*/
	FZ_RNDR_IACT_PARM_TEXT_OUTLINE,	/*	@emem		How to draw outlines.
										@ptype		fz_rndr_iact_text_colr_enum
										@default	FZ_RNDR_IACT_TEXT_COLR_COLOR
									*/
	FZ_RNDR_IACT_PARM_TEXT_FILL,	/*	@emem		How to fill text.
										@ptype		fz_rndr_iact_text_colr_enum
										@default	FZ_RNDR_IACT_TEXT_COLR_OFF
									*/
	FZ_RNDR_IACT_PARM_TEXT_SMOOTH_OPTS,/*@emem		How to deal with smoothness.
										@ptype		fz_rndr_iact_text_smooth_enum
										@default	FZ_RNDR_IACT_TEXT_SMOOTH_OBJ
									*/
	FZ_RNDR_IACT_PARM_TEXT_RES,		/*	@emem		Override resolution.
										@ptype		float
										@default	12.0
										@rimin_imax	4.0 | 32.0
									*/
	FZ_RNDR_IACT_PARM_SYM_BVOL,		/*	@emem		Whether or not to show symbols as bounded volumes.
										@ptype		fzrt_boolean
										@default	FALSE
									*/
	FZ_RNDR_IACT_PARM_MAX

} fz_rndr_iact_parm_enum;


/********************************************************************************************************

	@enum	Exposure Correction Type.

	@desc		Parameter identifiers for which type of Exposure Correction to use. 
			
	@avail		6.5.0.0
			
 	@see		<auto>

	@toc		rndr

*********************************************************************************************************/
typedef enum fz_rzpost_exp_cor_type_enum
{
	FZ_RZPOST_EXP_COR_TYPE_SPLINE=0,	/* @emem	Spline correction type */
	FZ_RZPOST_EXP_COR_TYPE_AUTO,		/* @emem	Automatic correction type */
	FZ_RZPOST_EXP_COR_TYPE_BRIGHT,		/* @emem	Brightness & Contrast correction type */
	
	FZ_RZPOST_EXP_COR_TYPE_MAX
} fz_rzpost_exp_cor_type_enum;


/********************************************************************************************************

	@enum	

	@desc	Exposure Correction post-process RenderZone parameters.  This enum identifies which
			option is wanted to retrieve or change.  This is used with the fz_rndr_rzpost_exp_cor_get_parm,
			fz_rndr_rzpost_exp_cor_set_parm render manager functions.
			
	@avail	5.0.0.0
			
	@see	<auto>

	@toc	rndr

*********************************************************************************************************/
typedef enum fz_rndr_rzpost_exp_cor_parm_enum
{	
	FZ_RNDR_RZPOST_EXP_COR_PARM_LUM_DARK = 0,	/*	@emem		Value for luminance dark threshold
													@ptype		float
													@default	25.0
													@rimin_max	0.0 | FZ_RNDR_RZPOST_EXP_COR_PARM_LUM_LIGHT
												*/
	FZ_RNDR_RZPOST_EXP_COR_PARM_LUM_LIGHT,		/*	@emem		Value for luminance light threshold
													@ptype		float
													@default	75.0
													@rmin_imax	FZ_RNDR_RZPOST_EXP_COR_PARM_LUM_DARK | 100.0
												*/
	FZ_RNDR_RZPOST_EXP_COR_PARM_BRIGHT_MIN,		/*	@emem		Value for brightness minimum threshold
													@ptype		float
													@default	0.0
													@rimin_imax	0.0 | FZ_RNDR_RZPOST_EXP_COR_PARM_BRIGHT_DARK
												*/
	FZ_RNDR_RZPOST_EXP_COR_PARM_BRIGHT_DARK,	/*	@emem		Value for brightness dark threshold
													@ptype		float
													@default	25.0
													@rimin_max	FZ_RNDR_RZPOST_EXP_COR_PARM_BRIGHT_MIN | FZ_RNDR_RZPOST_EXP_COR_PARM_BRIGHT_LIGHT
												*/
	FZ_RNDR_RZPOST_EXP_COR_PARM_BRIGHT_LIGHT,	/*	@emem		Value for brightness light threshold
													@ptype		float
													@default	75.0
													@rmin_imax	FZ_RNDR_RZPOST_EXP_COR_PARM_BRIGHT_DARK | FZ_RNDR_RZPOST_EXP_COR_PARM_BRIGHT_MAX
												*/
	FZ_RNDR_RZPOST_EXP_COR_PARM_BRIGHT_MAX,		/*	@emem		Value for brightness maximum threshold
													@ptype		float
													@default	100.0
													@rimin_imax	FZ_RNDR_RZPOST_EXP_COR_PARM_BRIGHT_LIGHT | 100.0
												*/
	FZ_RNDR_RZPOST_EXP_COR_PARM_MAP_RANGE,		/*	@emem		Value for highest luminance value on scale to be used as 100%.
													@ptype		float
													@default	179.0
													@rmin_imax	0.0 | 1000000000.0
												*/
	FZ_RNDR_RZPOST_EXP_COR_PARM_TYPE,			/*	@emem		Type of exposure correction to use.
													@ptype		fz_rzpost_exp_cor_type_enum
													@default	FZ_RZPOST_EXP_COR_TYPE_AUTO
													@pavail		6.5.0.0
												*/
	FZ_RNDR_RZPOST_EXP_COR_PARM_AUTO_BIAS,		/*	@emem		Bias of automatic exposure correction.
													@ptype		float
													@default	0.5
													@rmin_imax	0.0 | 1.0
													@pavail		6.5.0.0
												*/
	FZ_RNDR_RZPOST_EXP_COR_PARM_AUTO_BRIGHT,	/*	@emem		Brightness of automatic exposure correction.
													@ptype		float
													@default	0.1
													@rmin_imax	0.0 | 1.0
													@pavail		6.5.0.0
												*/
	FZ_RNDR_RZPOST_EXP_COR_PARM_BRIGHT,			/*	@emem		Brightness of Brightness & Contrast exposure correction.
													@ptype		float
													@default	0.5
													@rmin_imax	0.0 | 1.0
													@pavail		6.5.0.0
												*/
	FZ_RNDR_RZPOST_EXP_COR_PARM_CONTRAST,		/*	@emem		Constrast of Brightness & Contrast exposure correction.
													@ptype		float
													@default	0.5
													@rmin_imax	0.0 | 1.0
													@pavail		6.5.0.0
												*/

	FZ_RNDR_RZPOST_EXP_COR_PARM_MAX
}fz_rndr_rzpost_exp_cor_parm_enum;


/********************************************************************************************************

	@enum	

	@desc	Depth Blur post-process RenderZone parameters.  This enum identifies which
			option is wanted to retrieve or change.  This is used with the fz_rndr_rzpost_dblur_get_parm,
			fz_rndr_rzpost_dblur_set_parm render manager functions.
			
	@avail	5.0.0.0
			
	@see	<auto>

	@toc	rndr

*********************************************************************************************************/
typedef enum fz_rndr_rzpost_dblur_parm_enum
{	
	FZ_RNDR_RZPOST_DBLUR_PARM_DIST = 0,		/*	@emem		Whether or not to calculate depth blur at an absolute distance.
												@ptype		fzrt_boolean
												@default	FALSE
											*/
	FZ_RNDR_RZPOST_DBLUR_PARM_DIST_NEAR,	/*	@emem		Distance value for where to end near blur.
												@ptype		float
												@default	886.4
												@rmin_imax	0.0 | FZ_RNDR_RZPOST_DBLUR_PARM_DIST_FAR
											*/
	FZ_RNDR_RZPOST_DBLUR_PARM_DIST_FAR,		/*	@emem		Distance value for where to start far blur.
												@ptype		float
												@default	1257.6
												@rimin_imax	FZ_RNDR_RZPOST_DBLUR_PARM_DIST_NEAR | 1000000000.0
											*/
	FZ_RNDR_RZPOST_DBLUR_PARM_HITHER,		/*	@emem		Whether or not to calculate depth blur relative to hither plane.
												@ptype		fzrt_boolean
												@default	TRUE
											*/
	FZ_RNDR_RZPOST_DBLUR_PARM_HITHER_NEAR,	/*	@emem		Distance percentage for where to end near blur.
												@ptype		float
												@default	0.4
												@rmin_imax	0.0 | FZ_RNDR_RZPOST_DBLUR_PARM_HITHER_FAR
											*/
	FZ_RNDR_RZPOST_DBLUR_PARM_HITHER_FAR,	/*	@emem		Distance percentage for where to start far blur.
												@ptype		float
												@default	0.6
												@rimin_imax	FZ_RNDR_RZPOST_DBLUR_PARM_HITHER_NEAR | 1000000000.0
											*/
	FZ_RNDR_RZPOST_DBLUR_PARM_NEAR_BLUR,	/*	@emem		Maximum percentage for near blur (0 = 0%, 5=50%, 10=100%).
												@ptype		short
												@default	5
												@rimin_imax	0 | 10
											*/
	FZ_RNDR_RZPOST_DBLUR_PARM_FAR_BLUR,		/*	@emem		Maximum percentage for far blur (0 = 0%, 5=50%, 10=100%).
												@ptype		short
												@default	5
												@rimin_imax	0 | 10
											*/
	FZ_RNDR_RZPOST_DBLUR_PARM_BGND,			/*	@emem		Whether or not to blur the background.
												@ptype		fzrt_boolean
												@default	FALSE
											*/
	FZ_RNDR_RZPOST_DBLUR_PARM_MAX
}fz_rndr_rzpost_dblur_parm_enum;


/********************************************************************************************************

	@enum	

	@desc	Identifier for how to draw a Lens Flare in RenderZone post-processing.

	@avail	5.0.0.0
			
	@see	

	@toc	rndr

*********************************************************************************************************/
typedef enum fz_rndr_rzpost_lflare_shape_enum
{
	FZ_RNDR_RZPOST_LFLARE_SHAPE_STANDARD = 0,	/* @emem		Standard shape for lens flare */
	FZ_RNDR_RZPOST_LFLARE_SHAPE_35MM,			/* @emem		35mm lens flare */
	FZ_RNDR_RZPOST_LFLARE_SHAPE_50MM,			/* @emem		50mm lens flare */
	FZ_RNDR_RZPOST_LFLARE_SHAPE_105MM,			/* @emem		105mm lens flare */
	FZ_RNDR_RZPOST_LFLARE_SHAPE_POLYS,			/* @emem		Polygons lens flare */
	FZ_RNDR_RZPOST_LFLARE_SHAPE_35MM_POLYS,		/* @emem		35mm Polygons lens flare */
	FZ_RNDR_RZPOST_LFLARE_SHAPE_50MM_POLYS,		/* @emem		50mm Polygons lens flare */
	FZ_RNDR_RZPOST_LFLARE_SHAPE_SPARKS,			/* @emem		Sparks lens flare */
	FZ_RNDR_RZPOST_LFLARE_SHAPE_STARS,			/* @emem		Stars lens flare */
	FZ_RNDR_RZPOST_LFLARE_SHAPE_MAX
}fz_rndr_rzpost_lflare_shape_enum;


/********************************************************************************************************

	@enum	

	@desc	Lens Flare post-process RenderZone parameters.  This enum identifies which
			option is wanted to retrieve or change.  This is used with the fz_rndr_rzpost_lflare_get_parm,
			fz_rndr_rzpost_lflare_set_parm render manager functions.
			
	@avail	5.0.0.0
			
	@see	<auto>

	@toc	rndr

*********************************************************************************************************/
typedef enum fz_rndr_rzpost_lflare_parm_enum
{	
	FZ_RNDR_RZPOST_LFLARE_PARM_SHAPE = 0,	/*	@emem		How to draw the lens flare.
												@ptype		fz_rndr_rzpost_lflare_shape_enum
												@default	FZ_RNDR_RZPOST_LFLARE_SHAPE_STANDARD
											*/
	FZ_RNDR_RZPOST_LFLARE_PARM_GLOW,		/*	@emem		Color of glow.
												@ptype		fz_rgb_float_td
												@default	{1.0, 1.0, 1.0}
											*/
	FZ_RNDR_RZPOST_LFLARE_PARM_HALO,		/*	@emem		Color of halo.
												@ptype		fz_rgb_float_td
												@default	{1.0, 1.0, 1.0}
											*/
	FZ_RNDR_RZPOST_LFLARE_PARM_RAYS,		/*	@emem		Color of rays.
												@ptype		fz_rgb_float_td
												@default	{1.0, 1.0, 1.0}
											*/
	FZ_RNDR_RZPOST_LFLARE_PARM_LUM_MIN,		/*	@emem		Minimum luminance.
												@ptype		float
												@default	300.0
												@rimin_imax	179.0 | 1000000000.0
											*/
	FZ_RNDR_RZPOST_LFLARE_PARM_LUM_MAX,		/*	@emem		Maximum luminance.
												@ptype		float
												@default	1000.0
												@rimin_imax	179.0 | 1000000000.0
											*/
	FZ_RNDR_RZPOST_LFLARE_PARM_AMP,			/*	@emem		Light amplifier.
												@ptype		float
												@default	10.0
												@rimin_imax	0.001 | 1000000000.0
											*/
	FZ_RNDR_RZPOST_LFLARE_PARM_INTENS,		/*	@emem		Intensity (0.0 = 0%, 0.5 = 50%, 1.0 = 100%).
												@ptype		float
												@default	1.0
												@rimin_imax	0.0 | 1000000000.0
											*/
	FZ_RNDR_RZPOST_LFLARE_PARM_SIZE,		/*	@emem		Size (0.0 = 0%, 0.5 = 50%, 1.0 = 100%).
												@ptype		float
												@default	0.5
												@rimin_imax	0.0 | 1000000000.0
											*/
	FZ_RNDR_RZPOST_LFLARE_PARM_ROT,			/*	@emem		Rotation angle (in degrees).
												@ptype		float
												@default	15.0
											*/
	FZ_RNDR_RZPOST_LFLARE_PARM_HOT,			/*	@emem		Whether or not flares from hot spots are shown.
												@ptype		fzrt_boolean
												@default	TRUE
											*/
	FZ_RNDR_RZPOST_LFLARE_PARM_LITE,		/*	@emem		Whether or not flares from lights are shown.
												@ptype		fzrt_boolean
												@default	TRUE
											*/
	FZ_RNDR_RZPOST_LFLARE_PARM_FALLOFF,		/*	@emem		Whether or not to ignore light falloff.
												@ptype		fzrt_boolean
												@default	FALSE
											*/
	FZ_RNDR_RZPOST_LFLARE_PARM_OUT_VIEW,	/*	@emem		Whether or not to use out of view lights.
												@ptype		fzrt_boolean
												@default	FALSE
											*/
	FZ_RNDR_RZPOST_LFLARE_PARM_OBSCUR,		/*	@emem		Whether or not to use obscured lights.
												@ptype		fzrt_boolean
												@default	FALSE
											*/
	FZ_RNDR_RZPOST_LFLARE_PARM_MAX
}fz_rndr_rzpost_lflare_parm_enum;


/********************************************************************************************************

	@enum	

	@desc	QuickTime VR movie type.  This is used with the FZ_RNDR_QTVR_PARM_TYPE parameter.
			
	@avail	5.0.0.0
			
	@see	<auto>

	@toc	rndr

*********************************************************************************************************/
typedef enum fz_rndr_qtvr_type_enum
{
	FZ_RNDR_QTVR_TYPE_OBJT = 0,		/*	@emem		Object movie. */
	FZ_RNDR_QTVR_TYPE_CYL_PAN,		/*	@emem		Cylindrically panoramic movie. */
	FZ_RNDR_QTVR_TYPE_SPH_PAN,		/*	@emem		Spherically panoramic movie. */
	FZ_RNDR_QTVR_TYPE_MAX
}fz_rndr_qtvr_type_enum;

/********************************************************************************************************

	@enum	

	@desc	QuickTime VR object movie view type.  This is used with the FZ_RNDR_QTVR_PARM_OBJT_VIEW_TYPE parameter.
			
	@avail	5.0.0.0
			
	@see	<auto>

	@toc	rndr

*********************************************************************************************************/
typedef enum fz_rndr_qtvr_objt_view_enum
{
	FZ_RNDR_QTVR_OBJT_VIEW_AXO = 0,		/*	@emem		Axonometric view. */
	FZ_RNDR_QTVR_OBJT_VIEW_PERS,		/*	@emem		Perspective view. */
	FZ_RNDR_QTVR_OBJT_VIEW_MAX
}fz_rndr_qtvr_objt_view_enum;

/********************************************************************************************************

	@enum	

	@desc	QuickTime VR object movie view plane.
			
	@avail	5.0.0.0
			
	@see	<auto>

	@toc	rndr

*********************************************************************************************************/
typedef enum fz_rndr_qtvr_objt_view_plane_enum
{
	FZ_RNDR_QTVR_OBJT_VIEW_PLANE_XY = 0,		/*	@emem		XY plane. */
	FZ_RNDR_QTVR_OBJT_VIEW_PLANE_YZ,			/*	@emem		YZ plane. */
	FZ_RNDR_QTVR_OBJT_VIEW_PLANE_ZX,			/*	@emem		ZX plane. */
	FZ_RNDR_QTVR_OBJT_VIEW_PLANE_ARB,			/*	@emem		Arbitrary plane. */
	FZ_RNDR_QTVR_OBJT_VIEW_PLANE_MAX
}fz_rndr_qtvr_objt_view_plane_enum;


/********************************************************************************************************

	@enum	

	@desc	QuickTime VR movie parameters.  This enum identifies which
			option is wanted to retrieve or change.  This is used with the fz_rndr_qtvr_get_parm,
			fz_rndr_qtvr_set_parm render manager functions.
			
	@avail	5.0.0.0
			
	@see	<auto>

	@toc	rndr

*********************************************************************************************************/
typedef enum fz_rndr_qtvr_parm_enum
{
	FZ_RNDR_QTVR_PARM_TYPE = 0,				/*	@emem		Whether or not to use the current panoramic view.
												@ptype		fz_rndr_qtvr_type_enum
												@default	FZ_RNDR_QTVR_TYPE_CYL_PAN
											*/
	FZ_RNDR_QTVR_PARM_CYL_USE_CURRENT,		/*	@emem		Whether or not to use the current panoramic view for cylindrically panoramic movie.
												@ptype		fzrt_boolean
												@default	FALSE
											*/
	FZ_RNDR_QTVR_PARM_CYL_GEN_NEW,			/*	@emem		Whether or not to use a new panoramic view for cylindrically panoramic movie.
												@ptype		fzrt_boolean
												@default	TRUE
											*/
	FZ_RNDR_QTVR_PARM_CYL_DISPLAY_TYPE,		/*	@emem		Which (panoramic) renderer to use for cylindrically panoramic movie.
												@ptype		fzrt_UUID_td
												@default	currently active renderer
											*/
	FZ_RNDR_QTVR_PARM_CYL_RES_WIDTH,		/*	@emem		Image resolution width of cylindrically panoramic movie.
												@ptype		short
												@default	800
												@rimin_imax	48 | 32767
											*/
	FZ_RNDR_QTVR_PARM_CYL_RES_HEIGHT,		/*	@emem		Image resolution height of cylindrically panoramic movie.
												@ptype		short
												@default	200
												@rimin_imax	48 | 32767
											*/
	FZ_RNDR_QTVR_PARM_CYL_VIEW_EYE,			/*	@emem		Eye view point of cylindrically panoramic movie.
												@ptype		fz_xyz_td
												@default	{0, 0, 0}
											*/
	FZ_RNDR_QTVR_PARM_CYL_VIEW_COI,			/*	@emem		Center of interest of cylindrically panoramic movie.
												@ptype		fz_xyz_td
												@default	{0, 700, 0}
											*/
	FZ_RNDR_QTVR_PARM_CYL_VIEW_SPIN,		/*	@emem		Spin angle (in degrees) of cylindrically panoramic movie.
												@ptype		double
												@default	0
											*/
	FZ_RNDR_QTVR_PARM_CYL_VIEW_ANGLE,		/*	@emem		Angle (in degrees) of panoramic view of cylindrically panoramic movie.
												@ptype		double
												@default	360
											*/
	FZ_RNDR_QTVR_PARM_CYL_VIEW_RES,			/*	@emem		Resolution (in pixels) to use for smoothness in cylindrically panoramic movie.
												@ptype		short
												@default	5
												@rimin_imax	1 | 256
											*/
	FZ_RNDR_QTVR_PARM_SPH_DISPLAY_TYPE,		/*	@emem		Which (panoramic) renderer to use for spherically panoramic movie.
												@ptype		fzrt_UUID_td
												@default	currently active renderer
											*/
	FZ_RNDR_QTVR_PARM_SPH_RES,				/*	@emem		Image resolution for spherically panoramic movie.
												@ptype		short
												@default	300
												@rimin_imax	48 | 32767
											*/
	FZ_RNDR_QTVR_PARM_SPH_VIEW_EYE,			/*	@emem		Eye view point for spherically panoramic movie.
												@ptype		fz_xyz_td
												@default	{0, 0, 0}
											*/
	FZ_RNDR_QTVR_PARM_SPH_VIEW_COMPLETE,	/*	@emem		Whether or not to use complete view for spherically panoramic movie.
												@ptype		fzrt_boolean
												@default	TRUE
											*/
	FZ_RNDR_QTVR_PARM_SPH_VIEW_CUSTOM,		/*	@emem		Whether or not to use custom view for spherically panoramic movie.
												@ptype		fzrt_boolean
												@default	FALSE
											*/
	FZ_RNDR_QTVR_PARM_SPH_VIEW_CUSTOM_BEG_PAN,	/*	@emem	Beginning horizontal angle to use for custom view of spherically panoramic movie.
															Must be less than or equal to FZ_RNDR_QTVR_PARM_SPH_VIEW_CUSTOM_END_PAN and within 360 degrees.
												@ptype		double
												@default	-180.0
												@rimin_imax	-360.0 | 360.0
											*/
	FZ_RNDR_QTVR_PARM_SPH_VIEW_CUSTOM_END_PAN,	/*	@emem	Ending horizontal angle to use for custom view of spherically panoramic movie.
															Must be greater than or equal to FZ_RNDR_QTVR_PARM_SPH_VIEW_CUSTOM_BEG_PAN and within 360 degrees.
												@ptype		double
												@default	180.0
												@rimin_imax	-360.0 | 360.0
											*/
	FZ_RNDR_QTVR_PARM_SPH_VIEW_CUSTOM_BEG_TILT,	/*	@emem	Beginning vertical angle to use for custom view of spherically panoramic movie.
															Must be greater than or equal to FZ_RNDR_QTVR_PARM_SPH_VIEW_CUSTOM_END_TILT.
												@ptype		double
												@default	90.0
												@rimin_imax	-90.0 | 90.0
											*/
	FZ_RNDR_QTVR_PARM_SPH_VIEW_CUSTOM_END_TILT,	/*	@emem	Ending vertical angle to use for custom view of spherically panoramic movie.
															Must be less than or equal to FZ_RNDR_QTVR_PARM_SPH_VIEW_CUSTOM_BEG_TILT.
												@ptype		double
												@default	-90.0
												@rimin_imax	-90.0 | 90.0
											*/
	FZ_RNDR_QTVR_PARM_OBJT_DISPLAY_TYPE,	/*	@emem		Which renderer to use for object movie.
												@ptype		fzrt_UUID_td
												@default	currently active renderer
											*/
	FZ_RNDR_QTVR_PARM_OBJT_VIEW_TYPE,		/*	@emem		Which view type to use for object movie.
												@ptype		fz_rndr_qtvr_objt_view_enum
												@default	FZ_RNDR_QTVR_OBJT_VIEW_AXO
											*/
	FZ_RNDR_QTVR_PARM_OBJT_RES_WIDTH,		/*	@emem		Image resolution width of object movie.
												@ptype		short
												@default	300
												@rimin_imax	48 | 32767
											*/
	FZ_RNDR_QTVR_PARM_OBJT_RES_HEIGHT,		/*	@emem		Image resolution height of object movie.
												@ptype		short
												@default	300
												@rimin_imax	48 | 32767
											*/
	FZ_RNDR_QTVR_PARM_OBJT_MOVE_LITE,		/*	@emem		Whether or not to move lights with view for object movie.
												@ptype		fzrt_boolean
												@default	FALSE
											*/
	FZ_RNDR_QTVR_PARM_OBJT_VIEW_PAN_STEPS,	/*	@emem		Number of steps to take horizontally around object for object movie.
												@ptype		fzrt_int
												@default	24
												@rimin_imax	1 | 1000000000
											*/
	FZ_RNDR_QTVR_PARM_OBJT_VIEW_TILT_STEPS,	/*	@emem		Number of steps to take vertically around object for object movie.
												@ptype		fzrt_int
												@default	12
												@rimin_imax	1 | 1000000000
											*/
	FZ_RNDR_QTVR_PARM_OBJT_VIEW_COI,		/*	@emem		Center of interest about which to rotate for object movie.
												@ptype		fz_xyz_td
												@default	{0, 0, 0}
											*/
	FZ_RNDR_QTVR_PARM_OBJT_VIEW_COMPLETE,	/*	@emem		Whether or not to use complete view for object movie.
												@ptype		fzrt_boolean
												@default	TRUE
											*/
	FZ_RNDR_QTVR_PARM_OBJT_VIEW_CUSTOM,		/*	@emem		Whether or not to use custom view for object movie.
												@ptype		fzrt_boolean
												@default	FALSE
											*/
	FZ_RNDR_QTVR_PARM_OBJT_VIEW_CUSTOM_BEG_PAN,	/*	@emem	Beginning horizontal angle to use for custom view of object movie.
															Must be less than or equal to FZ_RNDR_QTVR_PARM_OBJT_VIEW_CUSTOM_END_PAN and within 360 degrees.
												@ptype		double
												@default	-180.0
												@rimin_imax	-360.0 | 360.0
											*/
	FZ_RNDR_QTVR_PARM_OBJT_VIEW_CUSTOM_END_PAN,	/*	@emem	Ending horizontal angle to use for custom view of object movie.
															Must be greater than or equal to FZ_RNDR_QTVR_PARM_OBJT_VIEW_CUSTOM_BEG_PAN and within 360 degrees.
												@ptype		double
												@default	180.0
												@rimin_imax	-360.0 | 360.0
											*/
	FZ_RNDR_QTVR_PARM_OBJT_VIEW_CUSTOM_BEG_TILT,/*	@emem	Beginning vertical angle to use for custom view of object movie.
															Must be greater than or equal to FZ_RNDR_QTVR_PARM_OBJT_VIEW_CUSTOM_END_TILT.
												@ptype		double
												@default	90.0
												@rimin_imax	-90.0 | 90.0
											*/
	FZ_RNDR_QTVR_PARM_OBJT_VIEW_CUSTOM_END_TILT,/*	@emem	Ending vertical angle to use for custom view of object movie.
															Must be less than or equal to FZ_RNDR_QTVR_PARM_OBJT_VIEW_CUSTOM_BEG_TILT.
												@ptype		double
												@default	-90.0
												@rimin_imax	-90.0 | 90.0
											*/
	FZ_RNDR_QTVR_PARM_OBJT_VIEW_ROTATE_PLANE,/*	@emem		Which view type to use for object movie.
												@ptype		fz_rndr_qtvr_objt_view_plane_enum
												@default	FZ_RNDR_QTVR_OBJT_VIEW_PLANE_XY
											*/
	FZ_RNDR_QTVR_PARM_OBJT_VIEW_ZOOM_FIT,	/*	@emem		Whether or not to zoom to fit all objects in object movie.
												@ptype		fzrt_boolean
												@default	TRUE
											*/
	FZ_RNDR_QTVR_PARM_OBJT_VIEW_ZOOM_CURRENT,/*	@emem		Whether or not to use current zoom in object movie.
												@ptype		fzrt_boolean
												@default	TRUE
											*/
	FZ_RNDR_QTVR_PARM_RES_WIDTH,			/*	@emem		Final width of movie.
												@ptype		short
												@default	300
												@rimin_imax	48 | 32767
											*/
	FZ_RNDR_QTVR_PARM_RES_HEIGHT,			/*	@emem		Final height of movie.
												@ptype		short
												@default	300
												@rimin_imax	48 | 32767
											*/
	FZ_RNDR_QTVR_PARM_MAX
}fz_rndr_qtvr_parm_enum;

/********************************************************************************************************

	@enum	

	@desc	Level of super sampling to do for animation generation.
			
	@avail	5.0.0.0
			
	@see	<auto>

	@toc	rndr

*********************************************************************************************************/
typedef enum fz_rndr_anim_gen_ssample_enum
{
	FZ_RNDR_ANIM_GEN_SSAMPLE_LOW = 0, 	/* @emem Low */
	FZ_RNDR_ANIM_GEN_SSAMPLE_MEDIUM, 	/* @emem Medium */
	FZ_RNDR_ANIM_GEN_SSAMPLE_HIGH,	 	/* @emem High */
	FZ_RNDR_ANIM_GEN_SSAMPLE_MAX
}fz_rndr_anim_gen_ssample_enum;

/********************************************************************************************************

	@enum	

	@desc	Level of motion blur to do for animation generation.
			
	@avail	5.0.0.0
			
	@see	<auto>

	@toc	rndr

*********************************************************************************************************/
typedef enum fz_rndr_anim_gen_mblur_enum
{
	FZ_RNDR_ANIM_GEN_MBLUR_LOW = 0, 	/* @emem Low */
	FZ_RNDR_ANIM_GEN_MBLUR_MEDIUM, 		/* @emem Medium */
	FZ_RNDR_ANIM_GEN_MBLUR_HIGH,	 	/* @emem High */
	FZ_RNDR_ANIM_GEN_MBLUR_MAX
}fz_rndr_anim_gen_mblur_enum;

/********************************************************************************************************

	@enum	

	@desc	Level of blur filter to do for animation generation.
			
	@avail	5.0.0.0
			
	@see	<auto>

	@toc	rndr

*********************************************************************************************************/
typedef enum fz_rndr_anim_gen_bfilter_enum
{
	FZ_RNDR_ANIM_GEN_BFILTER_LOW = 0, 	/* @emem Low */
	FZ_RNDR_ANIM_GEN_BFILTER_MEDIUM, 	/* @emem Medium */
	FZ_RNDR_ANIM_GEN_BFILTER_HIGH,	 	/* @emem High */
	FZ_RNDR_ANIM_GEN_BFILTER_MAX
}fz_rndr_anim_gen_bfilter_enum;


/********************************************************************************************************

	@enum	

	@desc	What choice of frames to use for animation generation or exportation.
			
	@avail	5.0.0.0
			
	@see	<auto>

	@toc	rndr

*********************************************************************************************************/
typedef enum fz_anim_frames_enum
{
	FZ_ANIM_FRAMES_ALL = 0, 	/* @emem Use all frames */
	FZ_ANIM_FRAMES_RANGE, 		/* @emem Use a range of frames */
	FZ_ANIM_FRAMES_LIST,	 	/* @emem Use a list of ranges of frames */
	FZ_ANIM_FRAMES_MAX
}fz_anim_frames_enum;

/********************************************************************************************************

	@enum	

	@desc	What type of animation file format to use, if available.
			
	@avail	5.0.0.0
			
	@see	<auto>

	@toc	rndr

*********************************************************************************************************/
typedef enum fz_rndr_anim_gen_file_type_enum
{
	FZ_RNDR_ANIM_GEN_FILE_TYPE_FZ = 0, 	/* @emem formZ animation file type. */
	FZ_RNDR_ANIM_GEN_FILE_TYPE_QT, 		/* @emem QuickTime movie file type */
	FZ_RNDR_ANIM_GEN_FILE_TYPE_AVI,	 	/* @emem AVI file type */
	FZ_RNDR_ANIM_GEN_FILE_TYPE_MAX
}fz_rndr_anim_gen_file_type_enum;

/********************************************************************************************************

	@enum	

	@desc	What type of compression to use for generated animation file, if available.
			
	@avail	5.0.0.0
			
	@see	<auto>

	@toc	rndr

*********************************************************************************************************/
typedef enum fz_rndr_anim_gen_comp_enum
{
	FZ_RNDR_ANIM_GEN_COMP_OFF = 0, 	/* @emem Compression off. */
	FZ_RNDR_ANIM_GEN_COMP_DEFLATE, 	/* @emem Deflate */
	FZ_RNDR_ANIM_GEN_COMP_QT,	 	/* @emem QuickTime */
	FZ_RNDR_ANIM_GEN_COMP_AVI,	 	/* @emem AVI */
	FZ_RNDR_ANIM_GEN_COMP_MAX
}fz_rndr_anim_gen_comp_enum;


/********************************************************************************************************

	@enum	

	@desc	Animation Generation parameters.  This enum identifies which
			option is wanted to retrieve or change.  This is used with the fz_rndr_anim_gen_get_parm,
			fz_rndr_anim_gen_set_parm render manager functions.
			
	@avail	5.0.0.0
			
	@see	<auto>

	@toc	rndr

*********************************************************************************************************/
typedef enum fz_rndr_anim_gen_parm_enum
{
	FZ_RNDR_ANIM_GEN_PARM_DISPLAY_TYPE = 0,	/*	@emem		Type of display renderer to use during animation.
												@ptype		fzrt_UUID_td
												@default	RenderZone
											*/
	FZ_RNDR_ANIM_GEN_PARM_SSAMPLE,			/*	@emem		Whether or not to super sample animation.
												@ptype		fzrt_boolean
												@default	FALSE
											*/
	FZ_RNDR_ANIM_GEN_PARM_SSAMPLE_MENU,		/*	@emem		Level of super sampling to do.
												@ptype		fz_rndr_anim_gen_ssample_enum
												@default	FZ_RNDR_ANIM_GEN_SSAMPLE_LOW
											*/
	FZ_RNDR_ANIM_GEN_PARM_MBLUR,			/*	@emem		Whether or not to do motion blur in animation.
												@ptype		fzrt_boolean
												@default	FALSE
											*/
	FZ_RNDR_ANIM_GEN_PARM_MBLUR_MENU,		/*	@emem		Level of motion blurring to do.
												@ptype		fz_rndr_anim_gen_mblur_enum
												@default	FZ_RNDR_ANIM_GEN_MBLUR_LOW
											*/
	FZ_RNDR_ANIM_GEN_PARM_BFILTER,			/*	@emem		Whether or not to do blur filter in animation.
												@ptype		fzrt_boolean
												@default	FALSE
											*/
	FZ_RNDR_ANIM_GEN_PARM_BFILTER_MENU,		/*	@emem		Level of blur filtering to do.
												@ptype		fz_rndr_anim_gen_bfilter_enum
												@default	FZ_RNDR_ANIM_GEN_bfilter_LOW
											*/
	FZ_RNDR_ANIM_GEN_PARM_FRAMES_MENU,		/*	@emem		What choice of frames to use for animation.
												@ptype		fz_anim_frames_enum
												@default	FZ_ANIM_FRAMES_ALL
											*/
	FZ_RNDR_ANIM_GEN_PARM_FRAME_START,		/*	@emem		Starting frame for range of frames to use for animation.
												@ptype		fzrt_int
												@default	0
												@rimin_imax	0 | FZ_RNDR_ANIM_GEN_PARM_FRAME_END
											*/
	FZ_RNDR_ANIM_GEN_PARM_FRAME_END,		/*	@emem		Ending frame for range of frames to use for animation.
												@ptype		fzrt_int
												@default	last frame index
												@rimin_imax	FZ_RNDR_ANIM_GEN_PARM_FRAME_START | last frame index
											*/
	FZ_RNDR_ANIM_GEN_PARM_FRAME_INCR,		/*	@emem		Whether or not to skip/increment/jump a certain number of frames between frames.
												@ptype		fzrt_boolean
												@default	FALSE
											*/
	FZ_RNDR_ANIM_GEN_PARM_FRAME_INCR_INP,	/*	@emem		Number of frames to increment between frames for range of frames to use for animation.
												@ptype		fzrt_int
												@default	10
												@rimin_imax	1 | number of frames
											*/
	FZ_RNDR_ANIM_GEN_PARM_FRAME_LIST,		/*	@emem		Comma separated list of ranges of frames to use for animation.
												@ptype		char*
												@default	"0 - 299"
											*/
	FZ_RNDR_ANIM_GEN_PARM_LOCAL,			/*	@emem		Whether or not to use local machine to generate animation.  If FALSE, network is used.
												@ptype		fzrt_boolean
												@default	TRUE
											*/
	FZ_RNDR_ANIM_GEN_PARM_FILE_TYPE,		/*	@emem		Type of file to output for animation.
												@ptype		fz_rndr_anim_gen_file_type_enum
												@default	FZ_RNDR_ANIM_GEN_FILE_TYPE_FZ
											*/
	FZ_RNDR_ANIM_GEN_PARM_COMP,				/*	@emem		Type of compression to use for animation output file.
												@ptype		fz_rndr_anim_gen_comp_enum
												@default	FZ_RNDR_ANIM_GEN_COMP_OFF
											*/
	FZ_RNDR_ANIM_GEN_PARM_KEEP_FRAMES,		/*	@emem		Whether or not to keep all existing frames in animation.
												@ptype		fzrt_boolean
												@default	FALSE
											*/
	FZ_RNDR_ANIM_GEN_PARM_PRES_RNDR,		/*	@emem		Whether or not to preserve rendering of existing frames in animation.
												@ptype		fzrt_boolean
												@default	FALSE
											*/
	FZ_RNDR_ANIM_GEN_PARM_MAX
}fz_rndr_anim_gen_parm_enum;




/* Function Set for rndr holding functions until a perminant function set is found for them */

/********************************************************************************************************

	@fsfunc_t	

	@desc		Returns a pointer to the window options of a renderer. The renderer is identified
				by its UUID. The window options storage is maintained by formZ. It is
				a block of memory allocated to the size returned by the renderer's info function.

	@return		Error codes

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc	rndr	

*********************************************************************************************************/
typedef short  (FZRT_SPEC *fz_rndr_wind_opts_get_func)(
	fzrt_int			windex,			/* @parm	<in> | project window index 			*/
	fzrt_UUID_td	rndr_uuid,		/* @parm	<in> | The renderer's UUID 				*/
	fzrt_ptr		*wind_opts		/* @parm	<out> | A pointer to the renderer's window options	*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Returns a pointer to the project data of a renderer. The renderer is identified
				by its UUID. The project data storage is maintained by formZ. It is
				a block of memory allocated to the size returned by the renderer's info function.

	@return		Error codes

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc	rndr	

*********************************************************************************************************/
typedef short  (FZRT_SPEC *fz_rndr_proj_data_get_func)(
	fzrt_int			windex,			/* @parm	<in> | project window index 			*/
	fzrt_UUID_td	rndr_uuid,		/* @parm	<in> | The renderer's UUID 				*/
	fzrt_ptr		*proj_data		/* @parm	<out> | A pointer to the renderer's project data		*/
	);


/********************************************************************************************************

	@fsfunc_t	

	@desc		Returns a pointer to the window data of a renderer. The renderer is identified
				by its UUID.  The window data storage is maintained by formZ. It is
				a block of memory allocated to the size returned by the renderer's info function.

	@return		Error codes

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc	rndr	

*********************************************************************************************************/
typedef short  (FZRT_SPEC *fz_rndr_wind_data_get_func)(
	fzrt_int			windex,			/* @parm	<in> | project window index 			*/
	fzrt_UUID_td	rndr_uuid,		/* @parm	<in> | The renderer's UUID				*/
	fzrt_ptr		*wind_data		/* @parm	<out> | A pointer to the renderer's window data	*/
	);



/********************************************************************************************************

	@fsfunc_t	

	@desc		Invalidates an area of the screen and notifies all renderers 
				that an area of the screen has been invalidated<nl>
				<nl>
				rect	if non-null, the rect to inval <nl>
				rgn  	if non-null, the region to inval <nl>
				<nl>
				NOTE : if rect & rgn are NULL, then it invalidates the entire image_rect

	@return		None

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc	rndr	

*********************************************************************************************************/
typedef void  (FZRT_SPEC *fz_rndr_image_inval_func)(
	fzrt_int			windex,		/* @parm	<in> | project window index 				*/
	fzrt_rect		*rect,		/* @parm	<in_opt> | A rectangle on the screen to be invalidated 	*/
	fzrt_rgn_ptr	rgn			/* @parm	<in_opt> | A region on the screen to be invalidated 	*/
	);


/********************************************************************************************************

	@fsfunc_t	

	@desc		Allows a plugin renderer to tell formZ that it uses a particular file for a rendering.
				This is necessary, so that a distributed rendering can copy all files needed
				by a renderer to the render clients local machines.
				This function can only be called from the fz_rndr_cbak_proj_linked_files callback function.

	@return		Error codes

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc	rndr	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_set_linked_file_func)(
	char 			*ref_name,		/* @parm	<in> | A title string for the linked file. It usually contains
													   where it is used or what kind of file it is. For example:
													   "Surface Style 1 : Color Map" or "Background Map". */
	fzrt_floc_ptr 	floc			/* @parm	<in> | The file locator of the linked file */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Allows a plugin renderer to have formZ return the file spec for a linked
				file, after the file spec was changed.
				This function can only be called from the fz_rndr_cbak_proj_fix_linked_files callback function.

	@return		Error codes

	@avail		7.0.0.0

	@see		

	@exfile		

	@toc	rndr	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_get_linked_file_func)(
	fzrt_floc_ptr 	floc			/* @parm	<in_out> | An allocated floc is passed in and will be
														   updated with the new file location */
	);


/********************************************************************************************************

	@fsfunc_t	

	@desc		Writes a single scanline to the image buffer. This image buffer is automatically
				created and maintained by formZ, if the renderer is a static pixel based renderer.
				Passed into this function are a number of arrays,
				which are assumed to be as fzrt_int as the rendered image is wide. This function must
				be called with consecutive scanlines. It is not possible to pass in the
				scanlines in an arbitrary order. The arrays currently supported are the
				rgb_pixel array, which contains the final color of each rendered pixel, and the 
				optional alpha array, which contains the alpha channel value for each pixel.
				
				The depth and rgb_bg (background rgb) arrays are currently unused.
				

	@return		Error codes

	@avail		5.0.0.0

	@see		

	@exfile		

	@toc	rndr	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_ibuf_add_scanline_func)(
	fzrt_UUID_td		rndr_uuid,		/* @parm	<in> | The renderer's UUID				*/
	fz_rgb_float_td		*rgb_pixel,		/* @parm	<in> | An array with rgb colors, one item for each pixel
														of the scanline. */
	float				*alpha,			/* @parm	<in_opt> | If the current rendering produces an alpha channel,
													 	this array contains the alpha channel values. One
													 	array item for each scanline pixel. */
	float				*depth,			/* @parm	<in_opt> | For future use (pass in NULL). An array with depth values,
														representing the distance of the pixel from
														the eye point. One array item for each scanline pixel. */								 	
	fz_rgb_float_td		*rgb_bg			/* @parm	<in_opt> | For future use (pass in NULL). An array with color pixels,
														representing the background without any surfaces
														rendered. One array item for each scanline pixel. */								 	
	);


/************************************************************************

	@fsfunc_t	
	
	@desc		Returns the width, height and dots per inch (dpi)
				at which the current image is rendered. The dpi
				setting is not important for the image resolution
				(width and height), as those values already contain
				the final number of pixels of the image. The dpi
				setting may be of interest, if printing information
				will be incorporated in the rendering. For example, if
				a rendering needs to create a line, which will print
				at 1mm thickness, the dpi setting is needed.
				
	@return		Error codes.
			
	@avail		5.0.0.0

	@see		

	@exfile		

	@toc		rndr
											
*************************************************************************/
typedef fzrt_error_td	 (FZRT_SPEC *fz_rndr_get_image_resolution_func) (
	fzrt_int	windex,		/* @parm	<in> | project window index */
	fzrt_int	*width, 	/*	@parm <out_opt> | The image width in pixels */
	fzrt_int	*height,	/*	@parm <out_opt> | The image height in pixels */
	fzrt_int	*dpi		/*	@parm <out_opt> | The dots per inch setting of the image. */
	);


/********************************************************************************************************

	@fsfunc_t	

	@desc		Returns the UUID of the renderer which is currently active.
				

	@return		Error codes.

	@avail		5.0.0.0

	@see		fz_rndr_set_current
	
	@exfile		

	@toc		rndr	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_get_current_func)(
	fzrt_int				windex,			/* @parm	<in> | project window index	*/
	fzrt_UUID_td		uuid			/* @parm	<out> | the UUID of the currently active renderer */
	);

	
/********************************************************************************************************

	@fsfunc_t	

	@desc		Selects (makes active) the renderer of the given UUID.
				

	@return		Error codes.

	@avail		5.0.0.0

	@see		fz_rndr_get_current
	
	@exfile		<scdir>/Utilities | util_rndr_files.fsl
	@exfile		<scdir>/Utilities | util_rndr_files_set_parm.fsl

	@toc		rndr	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_set_current_func)(
	fzrt_int				windex,			/* @parm	<in> | project window index	*/
	fzrt_UUID_td		uuid			/* @parm	<in> | the UUID of the renderer to make current */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Selects (makes active) the renderer of the given withou updating the ui to show that it is the 
				active renderer. This should only be used when creating a rendering which a speciifc mode and should be 
				wrapped with a call to fz_rndr_get_current to get the current render and a restore of the 
				current with fz_rndr_set_current_no_ui again.
				

	@return		Error codes.

	@avail		5.0.0.0

	@see		fz_rndr_get_current
	
	@exfile		<scdir>/Utilities | util_rndr_files.fsl
	@exfile		<scdir>/Utilities | util_rndr_files_set_parm.fsl

	@toc		rndr	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_set_current_no_ui_func)(
	fzrt_int				windex,			/* @parm	<in> | project window index	*/
	fzrt_UUID_td		uuid			/* @parm	<in> | the UUID of the renderer to make current */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Gets the parameter indicated by the parameter index of the renderer of the given UUID.
				Each renderer has its own set of parameter options.
				

	@return		Error codes.

	@avail		5.0.0.0

	@see		fz_rndr_set_parm, fz_rndr_wref_parm_enum, fz_rndr_ishd_parm_enum,
				fz_rndr_quik_parm_enum, fz_rndr_hlin_parm_enum, fz_rndr_surf_parm_enum,
				fz_rndr_shad_parm_enum, fz_rndr_rzne_parm_enum
					
	@exfile

	@toc		rndr	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_get_parm_func)(
	fzrt_int				windex,			/* @parm	<in> | project window index	*/
	fzrt_UUID_td		uuid,			/* @parm	<in> | the UUID of the renderer for which to retrieve
														   parameter data. */
	fzrt_int				parm_indx,		/* @parm    <in> | the index of the parameter to retrieve */
	fz_type_td*			data			/* @parm	<out> | parameter data */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Assigns the parameter of the renderer of the given UUID at the given
				parameter index.  Each renderer has its own set of parameter options.
				This function was designed to support a script that desires
				to render multiple images of a scene, each image with different options
				of the renderer being set.


	@return		Error codes.

	@avail		5.0.0.0

	@see		fz_rndr_get_parm, fz_rndr_wref_parm_enum, fz_rndr_ishd_parm_enum,
				fz_rndr_quik_parm_enum, fz_rndr_hlin_parm_enum, fz_rndr_surf_parm_enum,
				fz_rndr_shad_parm_enum, fz_rndr_rzne_parm_enum
	
	@exfile		<scdir>/Utilities | util_rndr_files_set_parm.fsl
	@exfile		<scdir>/Utilities | util_rndr_files.fsl

	@toc		rndr	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_set_parm_func)(
	fzrt_int				windex,			/* @parm	<in> | project window index	*/
	fzrt_UUID_td		uuid,			/* @parm	<in> | the UUID of the renderer for which to retrieve
														   parameter data. */
	fzrt_int				parm_indx,		/* @parm    <in> | the index of the parameter to retrieve */
	fz_type_td*			data			/* @parm	<in> | parameter data */
	);


/********************************************************************************************************

	@fsfunc_t	

	@desc		Gets the parameter indicated by the parameter id of the interactive options.  The
				interactive options can be shared by multiple renderers.
				

	@return		Error codes.

	@avail		5.0.0.0

	@see		fz_rndr_iact_set_parm, fz_rndr_set_parm, fz_rndr_get_parm
					
	@exfile		

	@toc		rndr	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_iact_get_parm_func)(
	fzrt_int					windex,			/* @parm	<in> | project window index	*/
	fz_rndr_iact_parm_enum	parm_id,		/* @parm    <in> | the id of the parameter to retrieve */
	fz_type_td*				data			/* @parm	<out> | parameter data */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Assigns the parameter of the interactive options at the given
				parameter id.  The interactive options can be shared by multiple
				renderers.
				

	@return		Error codes.

	@avail		5.0.0.0

	@see		fz_rndr_iact_get_parm, fz_rndr_set_parm, fz_rndr_get_parm
	
	@exfile		

	@toc		rndr	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_iact_set_parm_func)(
	fzrt_int					windex,			/* @parm	<in> | project window index	*/
	fz_rndr_iact_parm_enum	parm_id,		/* @parm    <in> | the id of the parameter to change */
	fz_type_td*				data			/* @parm	<in> | parameter data */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Invokes the options dialog of the renderer of the given uuid.
				

	@return		Error codes.

	@avail		5.0.0.0

	@see		fz_rndr_wind_opts_get, fz_rndr_wind_data_get, fz_rndr_get_parm,
				fz_rndr_set_parm
	
	@exfile		

	@toc		rndr	

*********************************************************************************************************/
typedef fzrt_error_td (FZRT_SPEC* fz_rndr_wind_opts_dlog_func)(
	fzrt_int				windex,				/* @parm	<in> | project window index */
	fzrt_UUID_td		rndr_uuid			/* @parm	<in> | the options of this renderer's uuid will be invoked */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Renders the scene in windex with the current view and current renderer. 

	@return		Error codes.

	@avail		5.0.0.0

	@see		fz_rndr_set_current, fz_rndr_get_current, fz_rndr_set_parm, fz_rndr_get_parm
	
	@exfile		<scdir>/Utilities | util_rndr_files.fsl
	@exfile		<scdir>/Utilities | util_rndr_files_set_parm.fsl

	@toc		rndr	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_image_rndr_func)(
	fzrt_int					windex			/* @parm	<in> | project window index	*/
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Gets the parameter indicated by the parameter id of the Exposure Correction options of the
				post-process RenderZone interface.
				

	@return		Error codes.

	@avail		5.0.0.0

	@see		fz_rndr_rzpost_exp_cor_set_parm,
				fz_rndr_rzpost_dblur_get_parm, fz_rndr_rzpost_dblur_set_parm,
				fz_rndr_rzpost_lflare_get_parm, fz_rndr_rzpost_lflare_set_parm

	@exfile

	@toc		rndr	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_rzpost_exp_cor_get_parm_func)(
	fzrt_int								windex,			/* @parm	<in> | project window index	*/
	fz_rndr_rzpost_exp_cor_parm_enum	parm_id,		/* @parm    <in> | the id of the parameter to retrieve */
	fz_type_td*							data			/* @parm	<out> | parameter data */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Sets the parameter indicated by the parameter id of the Exposure Correction options of the
				post-process RenderZone interface.
				

	@return		Error codes.

	@avail		5.0.0.0

	@see		fz_rndr_rzpost_exp_cor_get_parm,
				fz_rndr_rzpost_dblur_get_parm, fz_rndr_rzpost_dblur_set_parm,
				fz_rndr_rzpost_lflare_get_parm, fz_rndr_rzpost_lflare_set_parm

	@exfile

	@toc		rndr	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_rzpost_exp_cor_set_parm_func)(
	fzrt_int								windex,			/* @parm	<in> | project window index	*/
	fz_rndr_rzpost_exp_cor_parm_enum	parm_id,		/* @parm    <in> | the id of the parameter to change */
	fz_type_td*							data			/* @parm	<in> | parameter data */
	);


/********************************************************************************************************

	@fsfunc_t	

	@desc		Gets the parameter indicated by the parameter id of the Depth Blur options of the
				post-process RenderZone interface.
				

	@return		Error codes.

	@avail		5.0.0.0

	@see		fz_rndr_rzpost_exp_cor_get_parm, fz_rndr_rzpost_exp_cor_set_parm,
				fz_rndr_rzpost_dblur_set_parm,
				fz_rndr_rzpost_lflare_get_parm, fz_rndr_rzpost_lflare_set_parm

	@exfile

	@toc		rndr	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_rzpost_dblur_get_parm_func)(
	fzrt_int							windex,			/* @parm	<in> | project window index	*/
	fz_rndr_rzpost_dblur_parm_enum	parm_id,		/* @parm    <in> | the id of the parameter to retrieve */
	fz_type_td*						data			/* @parm	<out> | parameter data */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Sets the parameter indicated by the parameter id of the Depth Blur options of the
				post-process RenderZone interface.
				

	@return		Error codes.

	@avail		5.0.0.0

	@see		fz_rndr_rzpost_exp_cor_get_parm, fz_rndr_rzpost_exp_cor_set_parm,
				fz_rndr_rzpost_dblur_get_parm,
				fz_rndr_rzpost_lflare_get_parm, fz_rndr_rzpost_lflare_set_parm

	@exfile

	@toc		rndr	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_rzpost_dblur_set_parm_func)(
	fzrt_int							windex,			/* @parm	<in> | project window index	*/
	fz_rndr_rzpost_dblur_parm_enum	parm_id,		/* @parm    <in> | the id of the parameter to change */
	fz_type_td*						data			/* @parm	<in> | parameter data */
	);


/********************************************************************************************************

	@fsfunc_t	

	@desc		Gets the parameter indicated by the parameter id of the Lens Flare options of the
				post-process RenderZone interface.
				

	@return		Error codes.

	@avail		5.0.0.0

	@see		fz_rndr_rzpost_exp_cor_get_parm, fz_rndr_rzpost_exp_cor_set_parm,
				fz_rndr_rzpost_dblur_get_parm, fz_rndr_rzpost_dblur_set_parm,
				fz_rndr_rzpost_lflare_set_parm

	@exfile

	@toc		rndr	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_rzpost_lflare_get_parm_func)(
	fzrt_int							windex,			/* @parm	<in> | project window index	*/
	fz_rndr_rzpost_lflare_parm_enum	parm_id,		/* @parm    <in> | the id of the parameter to retrieve */
	fz_type_td*						data			/* @parm	<out> | parameter data */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Sets the parameter indicated by the parameter id of the Lens Flare options of the
				post-process RenderZone interface.
				

	@return		Error codes.

	@avail		5.0.0.0

	@see		fz_rndr_rzpost_exp_cor_get_parm, fz_rndr_rzpost_exp_cor_set_parm,
				fz_rndr_rzpost_dblur_get_parm, fz_rndr_rzpost_dblur_set_parm,
				fz_rndr_rzpost_lflare_get_parm

	@exfile

	@toc		rndr	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_rzpost_lflare_set_parm_func)(
	fzrt_int							windex,			/* @parm	<in> | project window index	*/
	fz_rndr_rzpost_lflare_parm_enum	parm_id,		/* @parm    <in> | the id of the parameter to change */
	fz_type_td*						data			/* @parm	<in> | parameter data */
	);


/********************************************************************************************************

	@fsfunc_t	

	@desc		Generates a QuickTime VR movie.
				

	@return		Error codes.

	@avail		5.0.0.0

	@see		fz_rndr_qtvr_get_parm, fz_rndr_qtvr_set_parm, fz_rndr_qtvr_generate

	@exfile

	@toc		rndr	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_qtvr_generate_func)(
	fzrt_int					windex,			/* @parm	<in> | project window index	*/
	fzrt_floc_ptr			floc			/* @parm	<in> | file for QuickTime movie. */
	);




/********************************************************************************************************

	@fsfunc_t	

	@desc		Gets the parameter indicated by the parameter id of the QuickTime VR options.
				

	@return		Error codes.

	@avail		5.0.0.0

	@see		fz_rndr_qtvr_set_parm, fz_rndr_qtvr_generate

	@exfile

	@toc		rndr	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_qtvr_get_parm_func)(
	fzrt_int					windex,			/* @parm	<in> | project window index	*/
	fz_rndr_qtvr_parm_enum	parm_id,		/* @parm    <in> | the id of the parameter to retrieve */
	fz_type_td*				data			/* @parm	<out> | parameter data */
	);


/********************************************************************************************************

	@fsfunc_t	

	@desc		Sets the parameter indicated by the parameter id of the QuickTime VR options.  Use this
				prior to generating any of the QuickTime VR movies with fz_rndr_qtvr_generate.
				

	@return		Error codes.

	@avail		5.0.0.0

	@see		fz_rndr_qtvr_get_parm, fz_rndr_qtvr_generate

	@exfile

	@toc		rndr	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_qtvr_set_parm_func)(
	fzrt_int					windex,			/* @parm	<in> | project window index	*/
	fz_rndr_qtvr_parm_enum	parm_id,		/* @parm    <in> | the id of the parameter to change */
	fz_type_td*				data			/* @parm	<in> | parameter data */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Generates the animation of the current (animation) view.  Returns an error if the current
				view is not an animation view.
				

	@return		Error codes.

	@avail		5.0.0.0

	@see		fz_rndr_anim_gen_get_parm, fz_rndr_anim_gen_set_parm

	@exfile		<scdir>/Utilities | util_anim_generate.fsl

	@toc		rndr	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_anim_generate_func)(
	fzrt_int						windex,			/* @parm	<in> | project window index	*/
	fzrt_floc_ptr				floc			/* @parm	<in> | file for animation. */
	);
	
/********************************************************************************************************

	@fsfunc_t	

	@desc		Gets the parameter indicated by the parameter id of the "Generate Animation" options.
				

	@return		Error codes.

	@avail		5.0.0.0

	@see		fz_rndr_anim_gen_set_parm, fz_rndr_anim_generate

	@exfile

	@toc		rndr	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_anim_gen_get_parm_func)(
	fzrt_int						windex,			/* @parm	<in> | project window index	*/
	fz_view_ptr					view,			/* @parm	<in> | animation view for which to set parameters */
	fz_rndr_anim_gen_parm_enum	parm_id,		/* @parm    <in> | the id of the parameter to retrieve */
	fz_type_td*					data			/* @parm	<out> | parameter data */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Sets the parameter indicated by the parameter id of the "Generate Animation" options.
				

	@return		Error codes.

	@avail		5.0.0.0

	@see		fz_rndr_anim_gen_get_parm, fz_rndr_anim_generate

	@exfile

	@toc		rndr	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_anim_gen_set_parm_func)(
	fzrt_int						windex,			/* @parm	<in> | project window index	*/
	fz_view_ptr					view,			/* @parm	<in> | animation view for which to set parameters */
	fz_rndr_anim_gen_parm_enum	parm_id,		/* @parm    <in> | the id of the parameter to change */
	fz_type_td*					data			/* @parm	<in> | parameter data */
	);


/********************************************************************************************************

	@fsfunc_t	

	@desc		Gets information about the default texture.  This information includes the
				file location of the texture file, the file's format reference id and the
				width and height of the image.
				

	@return		Error codes.

	@avail		5.0.0.0

	@exfile

	@toc		rndr	

*********************************************************************************************************/
typedef fzrt_error_td (FZRT_SPEC *fz_rndr_get_def_texture_func)(
		fzrt_floc_ptr		floc, 				/* @parm <out_opt> | A file location containing the name and path of the default texture map file. */
		fz_ffmt_ref_td		*ffmt_id, 			/* @parm <out_opt> | The file format reference id for the default texture map file. */
		fzrt_int				*width, 			/* @parm <out_opt> | The width (in pixels) of the default texture map image. */
		fzrt_int				*height				/* @parm <out_opt> | The height (in pixels) of the default texture map image. */
		);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Fills a list with all installed renderers. The list needs to be initialized first with the
				api call :<nl>
				
				fz_type_list_init(FZ_TYPE_UUID,&list);		<nl>
															<nl>
				and finalized with							<nl>
															<nl>
				fz_type_list_finit(&list);					<nl>
															<nl>
				afterwards.									<nl>
				

	@return		Error codes.

	@avail		5.0.0.0

	@exfile

	@toc		rndr	

*********************************************************************************************************/
typedef fzrt_error_td (FZRT_SPEC *fz_rndr_get_rndr_list_func)(
		fz_type_list_ptr		list			/* @parm <out> | The list of renderers. */
		);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Fills a list with installed renderers of a given type. The list needs to be initialized first with the
				api call :<nl>
				
				fz_type_list_init(FZ_TYPE_UUID,&list);		<nl>
															<nl>
				and finalized with							<nl>
															<nl>
				fz_type_list_finit(&list);					<nl>
															<nl>
				afterwards.									<nl>
				

	@return		Error codes.

	@avail		5.0.0.0

	@exfile

	@toc		rndr	

*********************************************************************************************************/
typedef fzrt_error_td (FZRT_SPEC *fz_rndr_get_rndr_list_by_type_func)(
		fz_rndr_type_enum		type,			/* @parm <in> | The type of the renderers. */
		fz_type_list_ptr		list			/* @parm <out> | The list of renderers. */
		);


/********************************************************************************************************

	@enum	

	@desc	Parameters of a render image buffer.
			
	@avail	5.0.0.0
			
	@see	<auto>

	@toc	rndr

*********************************************************************************************************/
typedef enum fz_rndr_ibuf_parm_enum
{
	FZ_RNDR_IBUF_PARM_GAMMA		= 0,	/*	@emem	Gamma value. */
										/*	@ptype	double */
	
	FZ_RNDR_IBUF_PARM_MAX
}  fz_rndr_ibuf_parm_enum;

/********************************************************************************************************

	@fsfunc_t	

	@desc		Gets parameter values for a render image buffer.
				

	@return		Error codes.

	@avail		5.0.0.0

	@see		
					
	@exfile

	@toc		rndr	

*********************************************************************************************************/
typedef fzrt_error_td  (FZRT_SPEC *fz_rndr_ibuf_get_parm_func)(
	fzrt_int					windex,			/* @parm	<in> | project window index	*/
	fzrt_UUID_td			rndr_uuid,		/* @parm	<in> | the UUID of the renderer for which to retrieve
														   parameter data. Use FZRT_UUID_NULL for the current renderer. */
	fz_rndr_ibuf_parm_enum	which,			/* @parm    <in> | the index of the parameter to retrieve */
	fz_type_td*				value			/* @parm	<out> | parameter data */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Checks whether a given renderer posseses a certain capability (attribute). The renderer
				is identified by its uuid. If FZRT_UUID_NULL is passed for the uuid, the current
				renderer is used. The type of capability is determined by the fz_rndr_attr_enum
				function argument. If the renderer has the given capability. *resp will be returned as
				TRUE, and as FALSE otherwise.
				This function allows a plugin, for example, to test whether the current rendering mode
				supports texture maps or handles panoramic images.
				

	@return		Error codes.

	@avail		6.0.0.5

	@see		
					
	@exfile

	@toc		rndr	

*********************************************************************************************************/
typedef fzrt_error_td (FZRT_SPEC *fz_rndr_get_attr_func)(
	fzrt_int					windex,			/* @parm	<in> | project window index	*/
	fzrt_UUID_td			rndr_uuid,		/* @parm	<in> | the UUID of the renderer for which to get an attribute.
															   Use FZRT_UUID_NULL for the current renderer. */
	fz_rndr_attr_enum		rndr_attr,		/* @parm	<in> | the type of capability, the renderer is checked for. */
	fzrt_boolean 			*resp			/* @parm	<out> | TRUE, if the renderer has the capability it is tested for, FALSE otherwise. */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Checks whether a given renderer posseses a certain display capability, wuch as being able to
				draw the grid. The renderer is identified by its uuid. If FZRT_UUID_NULL is passed for the uuid, the current
				renderer is used. The type of capability is determined by the fz_rndr_disp_attr_enum
				function argument. If the renderer has the given capability. *resp will be returned as
				TRUE, and as FALSE otherwise.
				

	@return		Error codes.

	@avail		6.0.0.5

	@see		
					
	@exfile

	@toc		rndr	

*********************************************************************************************************/
typedef fzrt_error_td (FZRT_SPEC *fz_rndr_get_disp_attr_func)(
	fzrt_int					windex,			/* @parm	<in> | project window index	*/
	fzrt_UUID_td			rndr_uuid,		/* @parm	<in> | the UUID of the renderer for which to get an attribute.
															   Use FZRT_UUID_NULL for the current renderer. */
	fz_rndr_disp_attr_enum	rndr_disp_attr,	/* @parm	<in> | the type of display capability, the renderer is checked for. */
	fzrt_boolean 			*resp			/* @parm	<out> | TRUE, if the renderer has the capability it is tested for, FALSE otherwise. */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Checks whether a given renderer is pixel, vector or polygon based.
				

	@return		Error codes.

	@avail		6.0.0.5

	@see		
					
	@exfile

	@toc		rndr	

*********************************************************************************************************/
typedef fzrt_error_td (FZRT_SPEC *fz_rndr_get_type_func)(
	fzrt_int					windex,			/* @parm	<in> | project window index	*/
	fzrt_UUID_td			rndr_uuid,		/* @parm	<in> | the UUID of the renderer for which to get the type.
															   Use FZRT_UUID_NULL for the current renderer. */
	fz_rndr_type_enum		*rndr_type		/* @parm	<out> | the type of renderer. */
	);

/********************************************************************************************************

	@fsfunc_t	

	@desc		Returns the bhavior of a renderer. This can be interactive, such as Wireframe or Interactive Shaded, 
				or static, such as Hidden Line or RenderZone.
				

	@return		Error codes.

	@avail		6.0.0.5

	@see		
					
	@exfile

	@toc		rndr	

*********************************************************************************************************/
typedef fzrt_error_td (FZRT_SPEC *fz_rndr_get_behave_func)(
	fzrt_int					windex,			/* @parm	<in> | project window index	*/
	fzrt_UUID_td			rndr_uuid,		/* @parm	<in> | the UUID of the renderer for which to get the behavior.
															   Use FZRT_UUID_NULL for the current renderer. */
	fz_rndr_behave_enum		*rndr_behave	/* @parm	<out> | the behavior of the renderer. */
	);

/********************************************************************************************************
 
 @fsfunc_t
 
 @desc		Checks the state of the render area (ie limited area of image to render) and optionaly returs the rectangle to render
 
 @return	True if render area is enabled (else FALSE meaning rending entire image extents).

 @avail		8.0.2.0
 
 @see
 
 @exfile
 
 @toc		rndr
 
 *********************************************************************************************************/
typedef fzrt_boolean (FZRT_SPEC *fz_rndr_area_rect_get_active_func)(
	fzrt_int				windex			/* @parm	<in> | project window index	*/
	);
	
/********************************************************************************************************
 
 @fsfunc_t
 
 @desc		Sets the state of the render area (enable or disable)
 
 @return	Error codes.
 
 @avail		8.0.2.0
 
 @see
 
 @exfile
 
 @toc		rndr
 
 *********************************************************************************************************/
typedef fzrt_error_td (FZRT_SPEC *fz_rndr_area_rect_set_active_func)(
	fzrt_int				windex,			/* @parm	<in> | project window index	*/
	fzrt_boolean			enable);		/* @parm	<in> | enable or disable)	*/

/********************************************************************************************************
 
 @fsfunc_t
 
 @desc		Gets the rectangle of the render area (in window coordinates)
 
 @return	Error codes.
 
 @avail		8.0.2.0
 
 @see
 
 @exfile
 
 @toc		rndr
 
 *********************************************************************************************************/
typedef fzrt_error_td (FZRT_SPEC *fz_rndr_area_rect_get_func)(
	fzrt_int				windex,			/* @parm	<in> | project window index	*/
	fzrt_rect				*rndr_area		/* @parm	<out> | render area rectangle (window coordinates))	*/
	);

/********************************************************************************************************
 
 @fsfunc_t
 
 @desc		Sets the rectangle of the render area (in window coordinates)
 
 @return	Error codes.
 
 @avail		8.0.2.0
 
 @see
 
 @exfile
 
 @toc		rndr
 
 *********************************************************************************************************/
typedef fzrt_error_td (FZRT_SPEC *fz_rndr_area_rect_set_func)(
	fzrt_int				windex,			/* @parm	<in> | project window index	*/
	fzrt_rect				*rndr_area		/* @parm	<in> | render area rectangle (window coordinates))	*/
	);


/********************************************************************************************************
 
 @fsfunc_t
 
 @desc		draws the buffer to the windows port. Buffer must be packed pixels width*height*4 (RGBA), buffer == NULL removes previous display
 
 @return	Error codes.

 @avail		8.1.0.0
 
 @see
 
 @exfile
 
 @toc		rndr
 
 *********************************************************************************************************/
typedef fzrt_error_td (FZRT_SPEC *fz_rndr_buffer_init_func)(
	fzrt_int			windex			/* @parm	<in> | project window index	*/
	);
	
/********************************************************************************************************
 
 @fsfunc_t
 
 @desc		draws the buffer to the windows port. Buffer must be packed pixels width*height*4 (RGBA), buffer == NULL removes previous display
 
 @return	Error codes.

 @avail		8.1.0.0
 
 @see
 
 @exfile
 
 @toc		rndr
 
 *********************************************************************************************************/
typedef fzrt_error_td (FZRT_SPEC *fz_rndr_buffer_finit_func)(
	fzrt_int			windex			/* @parm	<in> | project window index	*/
	);

/********************************************************************************************************
 
 @fsfunc_t
 
 @desc		draws the buffer to the windows port. Buffer must be packed pixels width*height*4 (RGBA), buffer == NULL removes previous display
 
 @return	Error codes.

 @avail		8.1.0.0
 
 @see
 
 @exfile
 
 @toc		rndr
 
 *********************************************************************************************************/
typedef fzrt_error_td (FZRT_SPEC *fz_rndr_buffer_update_func)(
	fzrt_int			windex,			/* @parm	<in> | project window index	*/
	unsigned char		*buffer,		/* @parm	<in> | buffer to draw	*/
	fzrt_rect			*rect			/* @parm	<in> | rectangle of buffer (in parent windex coord system, NULL to use image rect)	*/
	);

/********************************************************************************************************
 
 @fsfunc_t
 
 @desc		Gets the buffer formZ is expecting the renderer to draw to. If the buffer is NULL, formZ is expecting a normal rendering pattern to be followed
 
 @return	Error codes.

 @avail		8.5.0.0
 
 @see
 
 @exfile
 
 @toc		rndr
 
 *********************************************************************************************************/
typedef fzrt_error_td (FZRT_SPEC *fz_rndr_disp_pbuf_get_func)(
	fzrt_int			windex,			/* @parm	<in> | project window index	*/
	fzrt_pbuf_ptr		*pbuf			/* @parm	<in> | buffer to draw to */
	);
	

/************************************************************************

	@fset	fz_rndr_mngr_fset
	
	@desc	Rendering support function set.  These functions are useful for
			controlling rendering in formZ.

	@avail	5.0.0.0

	@toc	rndr

*************************************************************************/

/********************************************************************************************************

	@fsdef	Rendering support function set UUID.

*********************************************************************************************************/
/* UUID : {da23a30c-d5b3-4007-b29c-40946dd7be3f} */
#define FZ_RNDR_MNGR_FSET_TYPE		"\xda\x23\xa3\x0c\xd5\xb3\x40\x07\xb2\x9c\x40\x94\x6d\xd7\xbe\x3f"	/* Reference : 1950 */

/********************************************************************************************************

	@fsdef	Rendering support function set name

*********************************************************************************************************/
#define FZ_RNDR_MNGR_FSET_NAME		"formZ Render Manager Functions"

/********************************************************************************************************

	@fsdef	Rendering support function set version

*********************************************************************************************************/
#define FZ_RNDR_MNGR_FSET_VERSION	FZPL_VERS_MAKE(8,5,0,0)

typedef struct fz_rndr_mngr_fset
{
	fzpl_fset_prvt_data_td						prvt_data;

	fz_rndr_wind_opts_get_func				fz_rndr_wind_opts_get;				/* @fsfunc */
	fz_rndr_proj_data_get_func				fz_rndr_proj_data_get;				/* @fsfunc */
	fz_rndr_wind_data_get_func				fz_rndr_wind_data_get;				/* @fsfunc */
	fz_rndr_ibuf_add_scanline_func			fz_rndr_ibuf_add_scanline;			/* @fsfunc */
	fz_rndr_get_image_resolution_func		fz_rndr_get_image_resolution;		/* @fsfunc */
	fz_rndr_image_inval_func 				fz_rndr_image_inval;				/* @fsfunc */
	fz_rndr_set_linked_file_func			fz_rndr_set_linked_file;			/* @fsfunc */
	fz_rndr_get_current_func				fz_rndr_get_current;				/* @fsfunc */
	fz_rndr_set_current_func				fz_rndr_set_current;				/* @fsfunc */
	fz_rndr_get_parm_func					fz_rndr_get_parm;					/* @fsfunc */
	fz_rndr_set_parm_func					fz_rndr_set_parm;					/* @fsfunc */
	fz_rndr_iact_get_parm_func				fz_rndr_iact_get_parm;				/* @fsfunc */
	fz_rndr_iact_set_parm_func				fz_rndr_iact_set_parm;				/* @fsfunc */
	fz_rndr_wind_opts_dlog_func				fz_rndr_wind_opts_dlog;				/* @fsfunc */
	fz_rndr_image_rndr_func					fz_rndr_image_rndr;					/* @fsfunc */
	fz_rndr_rzpost_exp_cor_get_parm_func	fz_rndr_rzpost_exp_cor_get_parm;	/* @fsfunc */
	fz_rndr_rzpost_exp_cor_set_parm_func	fz_rndr_rzpost_exp_cor_set_parm;	/* @fsfunc */
	fz_rndr_rzpost_dblur_get_parm_func		fz_rndr_rzpost_dblur_get_parm;		/* @fsfunc */
	fz_rndr_rzpost_dblur_set_parm_func		fz_rndr_rzpost_dblur_set_parm;		/* @fsfunc */
	fz_rndr_rzpost_lflare_get_parm_func		fz_rndr_rzpost_lflare_get_parm;		/* @fsfunc */
	fz_rndr_rzpost_lflare_set_parm_func		fz_rndr_rzpost_lflare_set_parm;		/* @fsfunc */
	fz_rndr_qtvr_generate_func				fz_rndr_qtvr_generate;				/* @fsfunc */
	fz_rndr_qtvr_get_parm_func				fz_rndr_qtvr_get_parm;				/* @fsfunc */
	fz_rndr_qtvr_set_parm_func				fz_rndr_qtvr_set_parm;				/* @fsfunc */
	fz_rndr_anim_generate_func				fz_rndr_anim_generate;				/* @fsfunc */
	fz_rndr_anim_gen_get_parm_func			fz_rndr_anim_gen_get_parm;			/* @fsfunc */
	fz_rndr_anim_gen_set_parm_func			fz_rndr_anim_gen_set_parm;			/* @fsfunc */
	fz_rndr_get_def_texture_func			fz_rndr_get_def_texture;			/* @fsfunc */
	fz_rndr_get_rndr_list_func			fz_rndr_get_rndr_list;			/* @fsfunc */
	fz_rndr_get_rndr_list_by_type_func	fz_rndr_get_rndr_list_by_type;	/* @fsfunc */

	fz_rndr_ibuf_get_parm_func				fz_rndr_ibuf_get_parm;				/* @fsfunc */
	
	/************************************************************************************
	 *																					*
	 *		DO NOT MAKE ANY CHANGES TO THE ABOVE FUNCTIONS!!!							*
	 *		DO NOT ADD ANY FUNCTION ABOVE THIS LINE!!!									*
	 *		@comm  End of version 5.0.0.0 functions.									*
	 *																					*
	 ************************************************************************************/
	fz_rndr_get_attr_func					fz_rndr_get_attr;					/* @fsfunc */
	fz_rndr_get_disp_attr_func				fz_rndr_get_disp_attr;				/* @fsfunc */
	fz_rndr_get_type_func					fz_rndr_get_type;					/* @fsfunc */
	fz_rndr_get_behave_func					fz_rndr_get_behave;					/* @fsfunc */

	/************************************************************************************
	 *																					*
	 *		DO NOT MAKE ANY CHANGES TO THE ABOVE FUNCTIONS!!!							*
	 *		DO NOT ADD ANY FUNCTION ABOVE THIS LINE!!!									*
	 *		@comm  End of version 6.5.0.0 (and older) functions.						*
	 *																					*
	 ************************************************************************************/
	 
	fz_rndr_get_linked_file_func			fz_rndr_get_linked_file;			/* @fsfunc */
	fz_cmnd_cbak_syst_icon_file_func		dummy_func;							/* @fsfunc */
	fz_cmnd_cbak_syst_icon_file2_func		dummy2_func;						/* @fsfunc */
	fz_rndr_set_current_no_ui_func			fz_rndr_set_current_no_ui;			/* @fsfunc */
	
	
	/************************************************************************************
	 *																					*
	 *		DO NOT MAKE ANY CHANGES TO THE ABOVE FUNCTIONS!!!							*
	 *		DO NOT ADD ANY FUNCTION ABOVE THIS LINE!!!									*
	 *		@comm  End of version 7.0.0.0 (and older) functions.						*
	 *																					*
	 ************************************************************************************/
	
	fz_rndr_area_rect_get_func				fz_rndr_area_rect_get;					/* @fsfunc */
	fz_rndr_area_rect_set_func				fz_rndr_area_rect_set;					/* @fsfunc */
	fz_rndr_area_rect_set_active_func		fz_rndr_area_rect_set_active;			/* @fsfunc */
	fz_rndr_area_rect_get_active_func		fz_rndr_area_rect_get_active;			/* @fsfunc */
	
	/************************************************************************************
	 *																					*
	 *		DO NOT MAKE ANY CHANGES TO THE ABOVE FUNCTIONS!!!							*
	 *		DO NOT ADD ANY FUNCTION ABOVE THIS LINE!!!									*
	 *		@comm  End of version 8.0.2.0 (and older) functions.						*
	 *																					*
	 ************************************************************************************/
	
	fz_rndr_buffer_init_func				fz_rndr_buffer_init;					/* @fsfunc */
	fz_rndr_buffer_finit_func				fz_rndr_buffer_finit;					/* @fsfunc */
	fz_rndr_buffer_update_func				fz_rndr_buffer_update;					/* @fsfunc */
	fz_rndr_disp_pbuf_get_func				fz_rndr_disp_pbuf_get;
	
	/************************************************************************************
	 *																					*
	 *		DO NOT MAKE ANY CHANGES TO THE ABOVE FUNCTIONS!!!							*
	 *		DO NOT ADD ANY FUNCTION ABOVE THIS LINE!!!									*
	 *		@comm  End of version 8.5.0.0 (and older) functions.						*
	 *																					*
	 ************************************************************************************/

}	fz_rndr_mngr_fset;
																							
#ifdef __cplusplus
}
#endif

#endif /*__FORMZ_RNDR_H */																	
																							
																							
																							
																							
																							
																					
																							
																							
