make lua surface clearing more robust
This commit is contained in:
parent
0fe74f95e7
commit
f75142213b
|
@ -524,6 +524,16 @@ TESTEROO:
|
||||||
SwappableDisplaySurfaceSet luaNativeSurfaceSet = new SwappableDisplaySurfaceSet();
|
SwappableDisplaySurfaceSet luaNativeSurfaceSet = new SwappableDisplaySurfaceSet();
|
||||||
public void SetLuaSurfaceNativePreOSD(DisplaySurface surface) { luaNativeSurfaceSet.SetPending(surface); }
|
public void SetLuaSurfaceNativePreOSD(DisplaySurface surface) { luaNativeSurfaceSet.SetPending(surface); }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Peeks a locked lua surface, or returns null if it isnt locked
|
||||||
|
/// </summary>
|
||||||
|
public DisplaySurface PeekLockedLuaSurface(string name)
|
||||||
|
{
|
||||||
|
if (MapNameToLuaSurface.ContainsKey(name))
|
||||||
|
return MapNameToLuaSurface[name];
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Locks the requested lua surface name
|
/// Locks the requested lua surface name
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -558,9 +568,13 @@ TESTEROO:
|
||||||
{
|
{
|
||||||
foreach (var kvp in LuaSurfaceSets)
|
foreach (var kvp in LuaSurfaceSets)
|
||||||
{
|
{
|
||||||
var surf = LockLuaSurface(kvp.Key);
|
var surf = PeekLockedLuaSurface(kvp.Key);
|
||||||
|
DisplaySurface surfLocked = null;
|
||||||
|
if (surf == null)
|
||||||
|
surf = surfLocked = LockLuaSurface(kvp.Key);
|
||||||
surf.Clear();
|
surf.Clear();
|
||||||
UnlockLuaSurface(surf);
|
if(surfLocked != null)
|
||||||
|
UnlockLuaSurface(surfLocked);
|
||||||
LuaSurfaceSets[kvp.Key].SetPending(null);
|
LuaSurfaceSets[kvp.Key].SetPending(null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue