|  |  |  | Cairo: A Vector Graphics Library |  | 
|---|---|---|---|---|
| Top | Description | ||||
#define CAIRO_HAS_SCRIPT_SURFACE cairo_device_t * cairo_script_create (const char *filename); cairo_device_t * cairo_script_create_for_stream (cairo_write_func_t write_func,void *closure); cairo_status_t cairo_script_from_recording_surface (cairo_device_t *script,cairo_surface_t *recording_surface); cairo_script_mode_t cairo_script_get_mode (cairo_device_t *script); enum cairo_script_mode_t; void cairo_script_set_mode (cairo_device_t *script,cairo_script_mode_t mode); cairo_surface_t * cairo_script_surface_create (cairo_device_t *script,cairo_content_t content,double width,double height); cairo_surface_t * cairo_script_surface_create_for_target (cairo_device_t *script,cairo_surface_t *target); void cairo_script_write_comment (cairo_device_t *script,const char *comment,int len);
The script surface provides the ability to render to a native script that matches the cairo drawing model. The scripts can be replayed using tools under the util/cairo-script directoriy, or with cairo-perf-trace.
#define CAIRO_HAS_SCRIPT_SURFACE 1
Defined if the script surface backend is available. The script surface backend is always built in since 1.12.
Since 1.12
cairo_device_t *    cairo_script_create                 (const char *filename);
Creates a output device for emitting the script, used when creating the individual surfaces.
| 
 | the name (path) of the file to write the script to | 
| Returns : | a pointer to the newly created device. The caller
owns the surface and should call cairo_device_destroy()when done
with it.
This function always returns a valid pointer, but it will return a
pointer to a "nil" device if an error such as out of memory
occurs. You can usecairo_device_status()to check for this. | 
Since 1.12
cairo_device_t * cairo_script_create_for_stream (cairo_write_func_t write_func,void *closure);
Creates a output device for emitting the script, used when creating the individual surfaces.
| 
 | callback function passed the bytes written to the script | 
| 
 | user data to be passed to the callback | 
| Returns : | a pointer to the newly created device. The caller
owns the surface and should call cairo_device_destroy()when done
with it.
This function always returns a valid pointer, but it will return a
pointer to a "nil" device if an error such as out of memory
occurs. You can usecairo_device_status()to check for this. | 
Since 1.12
cairo_status_t cairo_script_from_recording_surface (cairo_device_t *script,cairo_surface_t *recording_surface);
Converts the record operations in recording_surface into a script.
| 
 | the script (output device) | 
| 
 | the recording surface to replay | 
| Returns : | CAIRO_STATUS_SUCCESS on successful completion or an error code. | 
Since 1.12
cairo_script_mode_t cairo_script_get_mode               (cairo_device_t *script);
Queries the script for its current output mode.
| 
 | The script (output device) to query | 
| Returns : | the current output mode of the script | 
Since 1.12
typedef enum {
    CAIRO_SCRIPT_MODE_ASCII,
    CAIRO_SCRIPT_MODE_BINARY
} cairo_script_mode_t;
A set of script output variants.
| the output will be in readable text (default). (Since 1.12) | |
| the output will use byte codes. (Since 1.12) | 
Since 1.12
void cairo_script_set_mode (cairo_device_t *script,cairo_script_mode_t mode);
Change the output mode of the script
| 
 | The script (output device) | 
| 
 | the new mode | 
Since 1.12
cairo_surface_t * cairo_script_surface_create (cairo_device_t *script,cairo_content_t content,double width,double height);
Create a new surface that will emit its rendering through script
| 
 | the script (output device) | 
| 
 | the content of the surface | 
| 
 | width in pixels | 
| 
 | height in pixels | 
| Returns : | a pointer to the newly created surface. The caller
owns the surface and should call cairo_surface_destroy()when done
with it.
This function always returns a valid pointer, but it will return a
pointer to a "nil" surface if an error such as out of memory
occurs. You can usecairo_surface_status()to check for this. | 
Since 1.12
cairo_surface_t * cairo_script_surface_create_for_target (cairo_device_t *script,cairo_surface_t *target);
Create a pxoy surface that will render to target and record
the operations to device.
| 
 | the script (output device) | 
| 
 | a target surface to wrap | 
| Returns : | a pointer to the newly created surface. The caller
owns the surface and should call cairo_surface_destroy()when done
with it.
This function always returns a valid pointer, but it will return a
pointer to a "nil" surface if an error such as out of memory
occurs. You can usecairo_surface_status()to check for this. | 
Since 1.12
void cairo_script_write_comment (cairo_device_t *script,const char *comment,int len);
Emit a string verbatim into the script.
| 
 | the script (output device) | 
| 
 | the string to emit | 
| 
 | the length of the sting to write, or -1 to use strlen() | 
Since 1.12