Tizen Native API
4.0
|
Functions that are used to set the render engine for a given function, and then get that engine working.
The following code snippet shows how they can be used to initialise an evas that uses the X11 software engine:
Evas *evas; Evas_Engine_Info_Software_X11 *einfo; extern Display *display; extern Window win; evas_init(); evas = evas_new(); evas_output_method_set(evas, evas_render_method_lookup("software_x11")); evas_output_size_set(evas, 640, 480); evas_output_viewport_set(evas, 0, 0, 640, 480); einfo = (Evas_Engine_Info_Software_X11 *)evas_engine_info_get(evas); einfo->info.display = display; einfo->info.visual = DefaultVisual(display, DefaultScreen(display)); einfo->info.colormap = DefaultColormap(display, DefaultScreen(display)); einfo->info.drawable = win; einfo->info.depth = DefaultDepth(display, DefaultScreen(display)); evas_engine_info_set(evas, (Evas_Engine_Info *)einfo);
Functions | |
int | evas_render_method_lookup (const char *name) |
Eina_List * | evas_render_method_list (void) |
void | evas_render_method_list_free (Eina_List *list) |
Eina_List* evas_render_method_list | ( | void | ) |
List all the rendering engines compiled into the copy of the Evas library
Calling this will return a handle (pointer) to an Evas linked list. Each node in the linked list will have 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
will be returned.
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);
void evas_render_method_list_free | ( | Eina_List * | list | ) |
This function should be called to free a list of engine names
list | The Eina_List base pointer for the engine list to be freed |
When this function is called it will free 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 will happen.
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);
int evas_render_method_lookup | ( | const char * | name | ) |
Look up a numeric ID from a string name of a rendering engine.
name | the name string of an engine |
This function looks up a numeric return value for the named engine in the string name
. This is a normal C string, NUL 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.
The programmer should NEVER rely on the numeric ID of an engine unless it is returned by this function. Programs should NOT be written accessing render method ID's directly, without first obtaining it from this function.
Example:
int engine_id; Evas *evas; evas_init(); evas = evas_new(); if (!evas) { fprintf(stderr, "ERROR: Canvas creation failed. Fatal error.\n"); exit(-1); } engine_id = evas_render_method_lookup("software_x11"); if (!engine_id) { fprintf(stderr, "ERROR: Requested rendering engine is absent.\n"); exit(-1); } evas_output_method_set(evas, engine_id);