use queque instead of list for IDs (thx to rayo)

This commit is contained in:
Alexander Eckart committed 2012-03-17 10:08:59 +01:00
1 parent 3771cc5dc4
commit dfcf9b99af
1 file changed
+14 -19
+14 -19
View File
@@ -47,7 +47,7 @@ namespace Vocaluxe.Lib.Draw
private bool _fullscreen = false; private bool _fullscreen = false;
private List<STexture> _Textures; private List<STexture> _Textures;
private List<int> _IDs; private Queue<int> _IDs;
private List<STextureQueque> _Queque; private List<STextureQueque> _Queque;
private Object MutexTexture = new Object(); private Object MutexTexture = new Object();
@@ -67,11 +67,11 @@ namespace Vocaluxe.Lib.Draw
_Textures = new List<STexture>(); _Textures = new List<STexture>();
_Queque = new List<STextureQueque>(); _Queque = new List<STextureQueque>();
_IDs = new List<int>(); _IDs = new Queue<int>(1000000);
for (int i = 1; i < 1000000; i++) for (int i = 1; i < 1000000; i++)
{ {
_IDs.Add(i); _IDs.Enqueue(i);
} }
//Check AA Mode //Check AA Mode
@@ -553,8 +553,7 @@ namespace Vocaluxe.Lib.Draw
lock (MutexTexture) lock (MutexTexture)
{ {
texture.index = _IDs[0]; texture.index = _IDs.Dequeue();
_IDs.RemoveAt(0);
_Textures.Add(texture); _Textures.Add(texture);
} }
@@ -758,10 +757,9 @@ namespace Vocaluxe.Lib.Draw
lock (MutexTexture) lock (MutexTexture)
{ {
texture.index = _IDs[0]; texture.index = _IDs.Dequeue();
_IDs.RemoveAt(0); _Textures.Add(texture);
} }
_Textures.Add(texture);
return texture; return texture;
} }
@@ -823,11 +821,10 @@ namespace Vocaluxe.Lib.Draw
lock (MutexTexture) lock (MutexTexture)
{ {
texture.index = _IDs[0]; texture.index = _IDs.Dequeue();
_IDs.RemoveAt(0); _Textures.Add(texture);
} }
_Textures.Add(texture);
return texture; return texture;
} }
@@ -889,11 +886,10 @@ namespace Vocaluxe.Lib.Draw
lock (MutexTexture) lock (MutexTexture)
{ {
texture.index = _IDs[0]; texture.index = _IDs.Dequeue();
_IDs.RemoveAt(0); _Textures.Add(texture);
} }
_Textures.Add(texture);
return texture; return texture;
} }
@@ -908,8 +904,7 @@ namespace Vocaluxe.Lib.Draw
lock (MutexTexture) lock (MutexTexture)
{ {
texture.index = _IDs[0]; texture.index = _IDs.Dequeue();
_IDs.RemoveAt(0);
queque.ID = texture.index; queque.ID = texture.index;
_Queque.Add(queque); _Queque.Add(queque);
_Textures.Add(texture); _Textures.Add(texture);
@@ -1036,7 +1031,7 @@ namespace Vocaluxe.Lib.Draw
{ {
if (_Textures[i].index == Texture.index) if (_Textures[i].index == Texture.index)
{ {
_IDs.Add(Texture.index); _IDs.Enqueue(Texture.index);
GL.DeleteTexture(Texture.ID); GL.DeleteTexture(Texture.ID);
if (Texture.PBO > 0) if (Texture.PBO > 0)