Lines Matching refs:priv

117 	struct kms_overlay *priv = to_kms_overlay(overlay);  in kms_overlay_show()  local
119 memcpy(priv->image.map, priv->mem, priv->size); in kms_overlay_show()
121 if (!priv->visible) { in kms_overlay_show()
122 attach_to_crtc(priv->fd, priv->crtc, priv->x, priv->y, &priv->image); in kms_overlay_show()
123 priv->visible = true; in kms_overlay_show()
129 struct kms_overlay *priv = to_kms_overlay(overlay); in kms_overlay_hide() local
131 if (priv->visible) { in kms_overlay_hide()
132 detach_from_crtc(priv->fd, priv->crtc); in kms_overlay_hide()
133 priv->visible = false; in kms_overlay_hide()
139 struct kms_overlay *priv = data; in kms_overlay_destroy() local
140 drmIoctl(priv->fd, DRM_IOCTL_MODE_RMFB, &priv->image.name); in kms_overlay_destroy()
141 munmap(priv->image.map, priv->image.size); in kms_overlay_destroy()
142 free(priv->mem); in kms_overlay_destroy()
143 close(priv->fd); in kms_overlay_destroy()
144 free(priv); in kms_overlay_destroy()
223 struct kms_overlay *priv; in kms_overlay_create() local
227 priv = malloc(sizeof(*priv)); in kms_overlay_create()
228 if (priv == NULL) in kms_overlay_create()
231 priv->fd = i915_open(); in kms_overlay_create()
232 if (priv->fd == -1) in kms_overlay_create()
235 kmode = drmModeGetResources(priv->fd); in kms_overlay_create()
240 priv->crtc = 0; in kms_overlay_create()
247 if (drmIoctl(priv->fd, in kms_overlay_create()
256 priv->crtc = get_pipe.crtc_id; in kms_overlay_create()
259 if (priv->crtc == 0) in kms_overlay_create()
262 priv->image.format = DRM_FORMAT_XRGB8888; in kms_overlay_create()
263 priv->image.width = ALIGN(*width, 4); in kms_overlay_create()
264 priv->image.height = ALIGN(*height, 2); in kms_overlay_create()
265 priv->image.stride = ALIGN(4*priv->image.width, 64); in kms_overlay_create()
266 priv->image.size = ALIGN(priv->image.stride * priv->image.height, 4096); in kms_overlay_create()
269 create.size = ALIGN(priv->image.size, 4096); in kms_overlay_create()
270 drmIoctl(priv->fd, DRM_IOCTL_I915_GEM_CREATE, &create); in kms_overlay_create()
274 priv->image.handle = create.handle; in kms_overlay_create()
276 if (!kms_create_fb(priv->fd, &priv->image)) in kms_overlay_create()
281 if (!attach_to_crtc(priv->fd, priv->crtc, 0, 0, &priv->image)) in kms_overlay_create()
283 detach_from_crtc(priv->fd, priv->crtc); in kms_overlay_create()
286 if (drmIoctl(priv->fd, DRM_IOCTL_I915_GEM_MMAP_GTT, &map)) in kms_overlay_create()
289 priv->image.map = mmap(0, create.size, PROT_READ | PROT_WRITE, MAP_SHARED, priv->fd, map.offset); in kms_overlay_create()
290 if (priv->image.map == (void *)-1) in kms_overlay_create()
293 priv->mem = malloc(create.size); in kms_overlay_create()
294 if (priv->mem == NULL) in kms_overlay_create()
297 priv->base.surface = in kms_overlay_create()
298 cairo_image_surface_create_for_data(priv->mem, in kms_overlay_create()
300 priv->image.width, in kms_overlay_create()
301 priv->image.height, in kms_overlay_create()
302 priv->image.stride); in kms_overlay_create()
303 if (cairo_surface_status(priv->base.surface)) in kms_overlay_create()
306 priv->base.show = kms_overlay_show; in kms_overlay_create()
307 priv->base.hide = kms_overlay_hide; in kms_overlay_create()
309 priv->visible = false; in kms_overlay_create()
310 priv->x = 0; in kms_overlay_create()
311 priv->y = 0; in kms_overlay_create()
313 cairo_surface_set_user_data(priv->base.surface, &overlay_key, priv, kms_overlay_destroy); in kms_overlay_create()
315 *width = priv->image.width; in kms_overlay_create()
316 *height = priv->image.height; in kms_overlay_create()
318 drmIoctl(priv->fd, DRM_IOCTL_GEM_CLOSE, &create.handle); in kms_overlay_create()
319 return priv->base.surface; in kms_overlay_create()
322 free(priv->mem); in kms_overlay_create()
324 munmap(priv->image.map, create.size); in kms_overlay_create()
326 drmIoctl(priv->fd, DRM_IOCTL_MODE_RMFB, &priv->image.name); in kms_overlay_create()
328 drmIoctl(priv->fd, DRM_IOCTL_GEM_CLOSE, &create.handle); in kms_overlay_create()
330 close(priv->fd); in kms_overlay_create()
332 free(priv); in kms_overlay_create()