Tizen Native API
Render Engine Functions

This goup provides functions that are used to set the render engine for a given function, and then get that engine working.

Remarks:
The following code snippet shows how they can be used to initialise an evas that uses the X11 software engine:

Functions

int evas_render_method_lookup (const char *name)
 Looks up a numeric ID from a string name of a rendering engine.
Eina_Listevas_render_method_list (void)
 Lists all the rendering engines compiled into the copy of the Evas library.
void evas_render_method_list_free (Eina_List *list)
 Frees the list of engine names.
void evas_output_method_set (Evas *e, int render_method)
 Sets the output engine for the given evas.
int evas_output_method_get (const Evas *e)
 Gets the number of the output engines used for the given evas.
Evas_Engine_Infoevas_engine_info_get (const Evas *e)
 Gets the current render engine info struct from the given evas.
Eina_Bool evas_engine_info_set (Evas *e, Evas_Engine_Info *info)
 Applies the engine settings for the given evas from the given Evas_Engine_Info structure.

Function Documentation

Gets the current render engine info struct from the given evas.

Since :
2.3.1
Remarks:
The returned structure is publicly modifiable. The contents are valid until either evas_engine_info_set or evas_render are called.
You do not have to free this structure.
Parameters:
[in]eThe given evas
Returns:
A pointer to the Engine Info structure
NULL is returned if an engine has not yet been assigned.

Applies the engine settings for the given evas from the given Evas_Engine_Info structure.

Since :
2.3.1
Remarks:
To get the Evas_Engine_Info structure to use, call evas_engine_info_get. Do not try to obtain a pointer to an Evas_Engine_Info structure in any other way.
You need to call this function at least once before you can create objects on an evas or render that evas. Some engines allow their settings to be changed more than once.
Once called, the info pointer should be considered invalid.
Parameters:
[in]eThe pointer to the Evas canvas
[in]infoThe pointer to the Engine Info to use
Returns:
EINA_TRUE if the engine setting is applied successfully,
otherwise EINA_FALSE if an error occurred
int evas_output_method_get ( const Evas e)

Gets the number of the output engines used for the given evas.

Since :
2.3.1
Parameters:
[in]eThe given evas
Returns:
The ID number of the output engine being used
0 is returned if there is an error.
void evas_output_method_set ( Evas e,
int  render_method 
)

Sets the output engine for the given evas.

Since :
2.3.1
Remarks:
Once the output engine for an evas is set, any attempt to change it is ignored. The value for render_method can be found using evas_render_method_lookup.
Parameters:
[in]eThe given evas
[in]render_methodThe numeric engine value to use

Lists all the rendering engines compiled into the copy of the Evas library.

Since :
2.3.1
Remarks:
Calling this returns a handle (pointer) to an Evas linked list. Each node in the linked list has the data pointer be a (char *) pointer to the name string of the rendering engine available. The strings should never be modified, neither should the list be modified. This list should be cleaned up as soon as the program no longer needs it using evas_render_method_list_free(). If no engines are available from Evas, NULL is returned.
The following is an example:
 Eina_List *engine_list, *l;
 char *engine_name;

 engine_list = evas_render_method_list();
 if (!engine_list)
   {
     fprintf(stderr, "ERROR: Evas supports no engines! Exit.\n");
     exit(-1);
   }
 printf("Available Evas Engines:\n");
 EINA_LIST_FOREACH(engine_list, l, engine_name)
     printf("%s\n", engine_name);
 evas_render_method_list_free(engine_list);
Returns:
A linked list whose data members are C strings of engine names

Frees the list of engine names.

Since :
2.3.1
Remarks:
When this function is called it frees the engine list passed in as list. The list should only be a list of engines generated by calling evas_render_method_list(). If list is NULL, nothing happens.

Example:

 Eina_List *engine_list, *l;
 char *engine_name;

 engine_list = evas_render_method_list();
 if (!engine_list)
   {
     fprintf(stderr, "ERROR: Evas supports no engines! Exit.\n");
     exit(-1);
   }
 printf("Available Evas Engines:\n");
 EINA_LIST_FOREACH(engine_list, l, engine_name)
     printf("%s\n", engine_name);
 evas_render_method_list_free(engine_list);
Parameters:
[in]listThe Eina_List base pointer for the engine list to be freed
int evas_render_method_lookup ( const char *  name)

Looks up a numeric ID from a string name of a rendering engine.

This function looks up a numeric return value for the named engine in the string name. This is a normal C string, NULL byte terminated. The name is case sensitive. If the rendering engine is available, a numeric ID for that engine is returned that is not 0. If the engine is not available, 0 is returned, indicating an invalid engine.

Since :
2.3.1
Remarks:
You should NEVER rely on the numeric ID of an engine unless it is returned by this function. You should NOT write programs written accessing render method ID's directly, without first obtaining it from this function.
The following is an example.
Parameters:
[in]nameThe name string of an engine
Returns:
A numeric (opaque) ID for the rendering engine