Ken Thomases ken@codeweavers.com writes:
It's the difference between code which, when a surface is destroyed, simply decrements that count in user32 vs. one which has to search in two different lists to see if there are any remaining surfaces for that window and, if there aren't, clearing the "flag" in user32. It's not particularly difficult, it's just simpler and cleaner with a count. Putting it in the driver means adding complexity into each driver.
This entire piece of functionality in user32 is for the benefit of the driver. It's all implementation detail. I don't understand why it shouldn't take the form that's most suited to the needs of the driver.
Sure, but IMO if the driver needs this it's doing something wrong. Maybe I just don't understand what you are trying to do, but the notion of an arbitrary number of surfaces per window doesn't make any sense to me.