+ There are a few important differences between the original xlockmore API
+ and XScreenSaver's implementation:
+
+ - XScreenSaver does not use refresh_hackname or change_hackname.
+
+ - XScreenSaver provides two additional hooks not present in xlockmore:
+ reshape_hackname, and hackname_handle_event. These are respectively
+ equivalent to hackname_reshape and hackname_event in the XScreenSaver
+ API.
+
+ - Under Xlib, MI_CLEARWINDOW doesn't clear the window immediately.
+ Instead, due to double buffering on macOS/iOS/Android, it waits until
+ after init_hackname or draw_hackname returns before clearing. Make
+ sure not to issue any Xlib drawing calls immediately after a call to
+ MI_CLEARWINDOW, as these will be erased. To clear the window
+ immediately, just use XClearWindow.
+