8 drm_hwc_window_destroy(tdm_hwc_window *hwc_window)
10 tdm_drm_hwc_window_data *hwc_window_data = hwc_window;
12 RETURN_IF_FAIL(hwc_window_data != NULL);
14 LIST_DEL(&hwc_window_data->link);
16 free(hwc_window_data);
20 drm_hwc_window_set_composition_type(tdm_hwc_window *hwc_window,
21 tdm_hwc_window_composition comp_type)
23 tdm_drm_hwc_window_data *hwc_window_data = hwc_window;
24 tdm_drm_hwc_data *hwc_data = hwc_window_data->hwc_data;
26 RETURN_VAL_IF_FAIL(hwc_window_data != NULL, TDM_ERROR_INVALID_PARAMETER);
27 RETURN_VAL_IF_FAIL(hwc_data != NULL, TDM_ERROR_INVALID_PARAMETER);
29 /* change the client_type when it is different from one which has before */
30 if (hwc_window_data->client_type == comp_type)
31 return TDM_ERROR_NONE;
33 hwc_window_data->client_type = comp_type;
35 return TDM_ERROR_NONE;
39 drm_hwc_window_set_buffer_damage(tdm_hwc_window *hwc_window, tdm_region damage)
41 tdm_drm_hwc_window_data *hwc_window_data = hwc_window;
43 RETURN_VAL_IF_FAIL(hwc_window_data != NULL, TDM_ERROR_INVALID_PARAMETER);
47 return TDM_ERROR_NONE;
51 drm_hwc_window_set_info(tdm_hwc_window *hwc_window, tdm_hwc_window_info *info)
53 tdm_drm_hwc_window_data *hwc_window_data = hwc_window;
54 tdm_drm_hwc_data *hwc_data;
56 RETURN_VAL_IF_FAIL(hwc_window_data != NULL, TDM_ERROR_INVALID_PARAMETER);
57 hwc_data = hwc_window_data->hwc_data;
58 RETURN_VAL_IF_FAIL(hwc_data != NULL, TDM_ERROR_INVALID_PARAMETER);
59 RETURN_VAL_IF_FAIL(info != NULL, TDM_ERROR_INVALID_PARAMETER);
61 if (!memcmp(&hwc_window_data->info, info, sizeof(tdm_hwc_window_info)))
62 return TDM_ERROR_NONE;
64 hwc_window_data->info = *info;
66 return TDM_ERROR_NONE;
70 drm_hwc_window_set_buffer(tdm_hwc_window *hwc_window, tbm_surface_h surface)
72 tdm_drm_hwc_window_data *hwc_window_data = hwc_window;
73 tdm_error err = TDM_ERROR_OPERATION_FAILED;
75 RETURN_VAL_IF_FAIL(hwc_window_data != NULL, err);
77 if (hwc_window_data->surface == surface)
78 return TDM_ERROR_NONE;
80 hwc_window_data->surface = surface;
82 return TDM_ERROR_NONE;
86 drm_hwc_window_set_property(tdm_hwc_window *hwc_window, unsigned int id, tdm_value value)
88 tdm_drm_hwc_window_data *hwc_window_data = hwc_window;
90 RETURN_VAL_IF_FAIL(hwc_window_data != NULL, TDM_ERROR_INVALID_PARAMETER);
94 return TDM_ERROR_NONE;
98 drm_hwc_window_get_property(tdm_hwc_window *hwc_window, unsigned int id, tdm_value *value)
100 tdm_drm_hwc_window_data *hwc_window_data = hwc_window;
102 RETURN_VAL_IF_FAIL(hwc_window_data != NULL, TDM_ERROR_INVALID_PARAMETER);
106 return TDM_ERROR_NONE;
110 drm_hwc_window_get_constraints(tdm_hwc_window *hwc_window, int *constraints)
112 tdm_drm_hwc_window_data *hwc_window_data = hwc_window;
114 RETURN_VAL_IF_FAIL(hwc_window_data != NULL, TDM_ERROR_INVALID_PARAMETER);
115 RETURN_VAL_IF_FAIL(constraints != NULL, TDM_ERROR_INVALID_PARAMETER);
120 return TDM_ERROR_NONE;
124 drm_hwc_window_set_name(tdm_hwc_window *hwc_window, const char *name)
126 tdm_drm_hwc_window_data *hwc_window_data = hwc_window;
128 RETURN_VAL_IF_FAIL(hwc_window_data != NULL, TDM_ERROR_INVALID_PARAMETER);
131 return TDM_ERROR_NONE;
133 snprintf(hwc_window_data->name, TDM_NAME_LEN, "%s", name);
135 return TDM_ERROR_NONE;
139 drm_hwc_window_set_cursor_image(tdm_hwc_window *hwc_window, int width, int height, int stride, void *ptr)
141 tdm_drm_hwc_window_data *hwc_window_data = hwc_window;
143 RETURN_VAL_IF_FAIL(hwc_window_data != NULL, TDM_ERROR_INVALID_PARAMETER);
144 RETURN_VAL_IF_FAIL(hwc_window_data->client_type == TDM_HWC_WIN_COMPOSITION_CURSOR, TDM_ERROR_INVALID_PARAMETER);
146 hwc_window_data->cursor_img.width = width;
147 hwc_window_data->cursor_img.height = height;
148 hwc_window_data->cursor_img.stride = stride;
149 hwc_window_data->cursor_img.ptr = ptr;
151 hwc_window_data->cursor_img_refresh = 1;
153 return TDM_ERROR_NONE;