Fix T75546: Solve possible endless loop in wintab initialisation

Some Wintab drivers report a zero length queue, this causes an unplanned never ending loop.

Differential Revision: https://developer.blender.org/D7392
Reviewed by: Ray Molenkamp
This commit is contained in:
Nicholas Rishel 2020-04-09 16:43:09 -06:00 committed by Ray Molenkamp
parent 5ebbd8f672
commit 1a3928f33c
Notes: blender-bot 2023-02-14 10:11:54 +01:00
Referenced by commit e90d8422d0, Revert "Windows: support high resolution tablet pen events for Wintab"
Referenced by issue #75592, curves displayed incorrectly
Referenced by issue #75583, Cannot navigate in Sculpt mode with Wacom Intuos Pro
Referenced by issue #75583, Cannot navigate in Sculpt mode with Wacom Intuos Pro
Referenced by issue #75546, Blender 2.83 white screen on startup
1 changed files with 2 additions and 3 deletions

View File

@ -1072,11 +1072,10 @@ void GHOST_WindowWin32::initializeWintab()
// Wintab provides no way to determine the maximum queue size aside from checking if attempts
// to change the queue size are successful.
const int maxQueue = 500;
int initialQueueSize = m_wintab.queueSizeGet(m_wintab.context);
int queueSize = initialQueueSize;
int queueSize = m_wintab.queueSizeGet(m_wintab.context);
while (queueSize < maxQueue) {
int testSize = min(queueSize + initialQueueSize, maxQueue);
int testSize = min(queueSize + 16, maxQueue);
if (m_wintab.queueSizeSet(m_wintab.context, testSize)) {
queueSize = testSize;
}