mirror of
https://gitlab.freedesktop.org/mesa/drm.git
synced 2025-12-26 17:00:12 +01:00
Small update to modedemo
This commit is contained in:
parent
516c7a7b28
commit
87d5f9cb2d
1 changed files with 21 additions and 3 deletions
|
|
@ -201,12 +201,30 @@ int demoCreateScreens(struct demo_driver *driver)
|
|||
|
||||
void demoTakeDownScreen(struct demo_screen *screen)
|
||||
{
|
||||
/* TODO Unrefence the BO */
|
||||
/* TODO Destroy FB */
|
||||
/* TODO take down the mode */
|
||||
int fd = screen->driver->fd;
|
||||
drmBO bo;
|
||||
|
||||
if (screen->crtc)
|
||||
drmModeSetCrtc(fd, screen->crtc->crtc_id, 0, 0, 0, 0, 0, 0);
|
||||
|
||||
if (screen->fb)
|
||||
drmModeRmFB(fd, screen->fb->buffer_id);
|
||||
|
||||
/* maybe we should keep a pointer to the bo on the screen */
|
||||
if (screen->fb && !drmBOReference(fd, screen->fb->handle, &bo)) {
|
||||
drmBOUnreference(fd, &bo);
|
||||
drmBOUnreference(fd, &bo);
|
||||
} else {
|
||||
printf("bo error\n");
|
||||
}
|
||||
|
||||
drmModeFreeOutput(screen->output);
|
||||
drmModeFreeCrtc(screen->crtc);
|
||||
drmModeFreeFB(screen->fb);
|
||||
|
||||
screen->output = NULL;
|
||||
screen->crtc = NULL;
|
||||
screen->fb = NULL;
|
||||
}
|
||||
|
||||
drmModeCrtcPtr demoFindFreeCrtc(struct demo_driver *driver, drmModeOutputPtr output)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue