opengl.renderer.lean: Make 'free_Models' and 'free_Impostors' components of 'Item' for performance.
This commit is contained in:
@@ -7,7 +7,6 @@ with
|
|||||||
openGL.Geometry. lit_textured_skinned,
|
openGL.Geometry. lit_textured_skinned,
|
||||||
openGL.Geometry.lit_colored_textured_skinned,
|
openGL.Geometry.lit_colored_textured_skinned,
|
||||||
openGL.Font.texture,
|
openGL.Font.texture,
|
||||||
openGL.Server,
|
|
||||||
openGL.Tasks,
|
openGL.Tasks,
|
||||||
openGL.IO,
|
openGL.IO,
|
||||||
openGL.Errors,
|
openGL.Errors,
|
||||||
@@ -24,9 +23,6 @@ with
|
|||||||
ada.Task_Identification,
|
ada.Task_Identification,
|
||||||
ada.unchecked_Deallocation;
|
ada.unchecked_Deallocation;
|
||||||
|
|
||||||
with GL.Binding;
|
|
||||||
-- gdk.GLContext;
|
|
||||||
|
|
||||||
|
|
||||||
package body openGL.Renderer.lean
|
package body openGL.Renderer.lean
|
||||||
is
|
is
|
||||||
@@ -190,32 +186,30 @@ is
|
|||||||
procedure free_old_Models (Self : in out Item)
|
procedure free_old_Models (Self : in out Item)
|
||||||
is
|
is
|
||||||
use Model;
|
use Model;
|
||||||
|
|
||||||
free_Models : graphics_Models with Convention => C; -- Convention C is for performance.
|
|
||||||
Last : Natural;
|
Last : Natural;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
Self.obsolete_Models.fetch (free_Models, Last);
|
Self.obsolete_Models.fetch (Self.free_Models, Last);
|
||||||
|
|
||||||
for i in 1 .. Last
|
for i in 1 .. Last
|
||||||
loop
|
loop
|
||||||
free (free_Models (i));
|
free (Self.free_Models (i));
|
||||||
end loop;
|
end loop;
|
||||||
end free_old_Models;
|
end free_old_Models;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
procedure free_old_Impostors (Self : in out Item)
|
procedure free_old_Impostors (Self : in out Item)
|
||||||
is
|
is
|
||||||
use Impostor;
|
use Impostor;
|
||||||
|
|
||||||
free_Impostors : Impostor_Set with Convention => C; -- Convention C is for performance.
|
|
||||||
Last : Natural;
|
Last : Natural;
|
||||||
begin
|
begin
|
||||||
Self.obsolete_Impostors.fetch (free_Impostors, Last);
|
Self.obsolete_Impostors.fetch (Self.free_Impostors, Last);
|
||||||
|
|
||||||
for i in 1 .. Last
|
for i in 1 .. Last
|
||||||
loop
|
loop
|
||||||
free (free_Impostors (i));
|
free (Self.free_Impostors (i));
|
||||||
end loop;
|
end loop;
|
||||||
end free_old_Impostors;
|
end free_old_Impostors;
|
||||||
|
|
||||||
@@ -1098,7 +1092,7 @@ is
|
|||||||
is
|
is
|
||||||
begin
|
begin
|
||||||
return Self.Lights.Exists (Id);
|
return Self.Lights.Exists (Id);
|
||||||
end;
|
end Exists;
|
||||||
|
|
||||||
|
|
||||||
function Light (Self : in out Item; Id : in openGL.light.Id_t) return openGL.Light.item
|
function Light (Self : in out Item; Id : in openGL.light.Id_t) return openGL.Light.item
|
||||||
|
|||||||
@@ -315,6 +315,9 @@ private
|
|||||||
obsolete_Models : safe_Models;
|
obsolete_Models : safe_Models;
|
||||||
obsolete_Impostors : safe_Impostors;
|
obsolete_Impostors : safe_Impostors;
|
||||||
|
|
||||||
|
free_Models : graphics_Models;
|
||||||
|
free_Impostors : impostor_Set;
|
||||||
|
|
||||||
texture_Pool : aliased Texture.Pool;
|
texture_Pool : aliased Texture.Pool;
|
||||||
|
|
||||||
safe_Camera_updates_Map
|
safe_Camera_updates_Map
|
||||||
|
|||||||
Reference in New Issue
Block a user