Make EGL_NO_MODE_MESA work.

This commit is contained in:
Jon Smirl 2005-05-17 02:12:29 +00:00
parent 167b141e6e
commit e03b5cdf3f
2 changed files with 22 additions and 2 deletions

View file

@ -187,7 +187,7 @@ _eglShowSurfaceMESA(_EGLDriver *drv, EGLDisplay dpy, EGLScreenMESA screen,
_eglError(EGL_BAD_SCREEN_MESA, "eglShowSurfaceMESA");
return EGL_FALSE;
}
if (!mode) {
if (!mode && (m != EGL_NO_MODE_MESA )) {
_eglError(EGL_BAD_MODE_MESA, "eglShowSurfaceMESA");
return EGL_FALSE;
}

View file

@ -731,7 +731,7 @@ fbShowSurfaceMESA(_EGLDriver *drv, EGLDisplay dpy, EGLScreenMESA screen,
if (!_eglShowSurfaceMESA(drv, dpy, screen, surface, m))
return EGL_FALSE;
snprintf(buffer, sizeof(buffer), "%s/%s/mode", sysfs, scrn->fb);
snprintf(buffer, sizeof(buffer), "%s/%s/blank", sysfs, scrn->fb);
file = fopen(buffer, "r+");
if (!file) {
@ -739,6 +739,18 @@ err:
printf("chown all fb sysfs attrib to allow write - %s\n", buffer);
return EGL_FALSE;
}
snprintf(buffer, sizeof(buffer), "%d", (m == EGL_NO_MODE_MESA ? VESA_POWERDOWN : VESA_HSYNC_SUSPEND));
fputs(buffer, file);
fclose(file);
if (m == EGL_NO_MODE_MESA)
return EGL_TRUE;
snprintf(buffer, sizeof(buffer), "%s/%s/mode", sysfs, scrn->fb);
file = fopen(buffer, "r+");
if (!file)
goto err;
fputs(mode->Name, file);
fclose(file);
@ -751,6 +763,14 @@ err:
fputs(buffer, file);
fclose(file);
file = fopen(buffer, "r+");
if (!file)
goto err;
snprintf(buffer, sizeof(buffer), "%d", VESA_NO_BLANKING);
fputs(buffer, file);
fclose(file);
return EGL_TRUE;
}