Merge branch 'blender-v3.4-release'

This commit is contained in:
Sergey Sharybin 2022-11-10 11:05:32 +01:00
commit ec1ab6310a
5 changed files with 32 additions and 10 deletions

View File

@ -1157,6 +1157,18 @@ static void gwl_registry_entry_update_all(GWL_Display *display, const int interf
/** \name Private Utility Functions
* \{ */
static void ghost_wl_display_report_error(struct wl_display *display)
{
int ecode = wl_display_get_error(display);
GHOST_ASSERT(ecode, "Error not set!");
if ((ecode == EPIPE || ecode == ECONNRESET)) {
fprintf(stderr, "The Wayland connection broke. Did the Wayland compositor die?\n");
}
else {
fprintf(stderr, "The Wayland connection experienced a fatal error: %s\n", strerror(ecode));
}
}
/**
* Callback for WAYLAND to run when there is an error.
*
@ -5152,10 +5164,14 @@ bool GHOST_SystemWayland::processEvents(bool waitForEvent)
#endif /* WITH_INPUT_NDOF */
if (waitForEvent) {
wl_display_dispatch(display_->wl_display);
if (wl_display_dispatch(display_->wl_display) == -1) {
ghost_wl_display_report_error(display_->wl_display);
}
}
else {
wl_display_roundtrip(display_->wl_display);
if (wl_display_roundtrip(display_->wl_display) == -1) {
ghost_wl_display_report_error(display_->wl_display);
}
}
if (getEventManager()->getNumEvents() > 0) {

View File

@ -219,7 +219,7 @@ static void xdg_toplevel_handle_close(void *data, xdg_toplevel * /*xdg_toplevel*
static_cast<GWL_Window *>(data)->ghost_window->close();
}
static const xdg_toplevel_listener toplevel_listener = {
static const xdg_toplevel_listener xdg_toplevel_listener = {
xdg_toplevel_handle_configure,
xdg_toplevel_handle_close,
};
@ -322,7 +322,7 @@ static void xdg_toplevel_decoration_handle_configure(
static_cast<GWL_Window *>(data)->xdg_decor->mode = (zxdg_toplevel_decoration_v1_mode)mode;
}
static const zxdg_toplevel_decoration_v1_listener toplevel_decoration_v1_listener = {
static const zxdg_toplevel_decoration_v1_listener xdg_toplevel_decoration_v1_listener = {
xdg_toplevel_decoration_handle_configure,
};
@ -418,7 +418,7 @@ static void surface_handle_leave(void *data,
}
}
static struct wl_surface_listener wl_surface_listener = {
static const struct wl_surface_listener wl_surface_listener = {
surface_handle_enter,
surface_handle_leave,
};
@ -483,7 +483,7 @@ GHOST_WindowWayland::GHOST_WindowWayland(GHOST_SystemWayland *system,
wl_surface_set_buffer_scale(window_->wl_surface, window_->scale);
wl_surface_add_listener(window_->wl_surface, &wl_surface_listener, this);
wl_surface_add_listener(window_->wl_surface, &wl_surface_listener, window_);
window_->egl_window = wl_egl_window_create(
window_->wl_surface, int(window_->size[0]), int(window_->size[1]));
@ -537,13 +537,13 @@ GHOST_WindowWayland::GHOST_WindowWayland(GHOST_SystemWayland *system,
decor.toplevel_decor = zxdg_decoration_manager_v1_get_toplevel_decoration(
system_->xdg_decor_manager(), decor.toplevel);
zxdg_toplevel_decoration_v1_add_listener(
decor.toplevel_decor, &toplevel_decoration_v1_listener, window_);
decor.toplevel_decor, &xdg_toplevel_decoration_v1_listener, window_);
zxdg_toplevel_decoration_v1_set_mode(decor.toplevel_decor,
ZXDG_TOPLEVEL_DECORATION_V1_MODE_SERVER_SIDE);
}
xdg_surface_add_listener(decor.surface, &xdg_surface_listener, window_);
xdg_toplevel_add_listener(decor.toplevel, &toplevel_listener, window_);
xdg_toplevel_add_listener(decor.toplevel, &xdg_toplevel_listener, window_);
if (parentWindow && is_dialog) {
WGL_XDG_Decor_Window &decor_parent =

View File

@ -632,7 +632,7 @@ endif()
# SVG Import
if(True)
set(_svg_render_tests path)
set(_svg_render_tests complex path)
foreach(render_test ${_svg_render_tests})
add_python_test(

View File

@ -50,7 +50,10 @@ def main():
from modules import render_report
report = render_report.Report('IO Curve SVG', output_dir, idiff)
report.set_pixelated(True)
print(test_dir)
test_dir_name = Path(test_dir).name
if test_dir_name == 'complex':
report.set_fail_percent(0.01)
ok = report.run(test_dir, blender, get_arguments, batch=True)

View File

@ -166,6 +166,9 @@ class Report:
def set_fail_threshold(self, threshold):
self.fail_threshold = threshold
def set_fail_percent(self, percent):
self.fail_percent = percent
def set_reference_dir(self, reference_dir):
self.reference_dir = reference_dir