opengl.renderer.lean: Make 'free_Models' and 'free_Impostors' components of 'Item' for performance.

This commit is contained in:
Rod Kay
2025-05-24 04:50:53 +10:00
parent 8435439b72
commit de6ab2d36e
2 changed files with 11 additions and 14 deletions

View File

@@ -7,7 +7,6 @@ with
openGL.Geometry. lit_textured_skinned,
openGL.Geometry.lit_colored_textured_skinned,
openGL.Font.texture,
openGL.Server,
openGL.Tasks,
openGL.IO,
openGL.Errors,
@@ -24,9 +23,6 @@ with
ada.Task_Identification,
ada.unchecked_Deallocation;
with GL.Binding;
-- gdk.GLContext;
package body openGL.Renderer.lean
is
@@ -190,32 +186,30 @@ is
procedure free_old_Models (Self : in out Item)
is
use Model;
Last : Natural;
free_Models : graphics_Models with Convention => C; -- Convention C is for performance.
Last : Natural;
begin
Self.obsolete_Models.fetch (free_Models, Last);
Self.obsolete_Models.fetch (Self.free_Models, Last);
for i in 1 .. Last
loop
free (free_Models (i));
free (Self.free_Models (i));
end loop;
end free_old_Models;
procedure free_old_Impostors (Self : in out Item)
is
use Impostor;
free_Impostors : Impostor_Set with Convention => C; -- Convention C is for performance.
Last : Natural;
Last : Natural;
begin
Self.obsolete_Impostors.fetch (free_Impostors, Last);
Self.obsolete_Impostors.fetch (Self.free_Impostors, Last);
for i in 1 .. Last
loop
free (free_Impostors (i));
free (Self.free_Impostors (i));
end loop;
end free_old_Impostors;
@@ -1098,7 +1092,7 @@ is
is
begin
return Self.Lights.Exists (Id);
end;
end Exists;
function Light (Self : in out Item; Id : in openGL.light.Id_t) return openGL.Light.item

View File

@@ -315,6 +315,9 @@ private
obsolete_Models : safe_Models;
obsolete_Impostors : safe_Impostors;
free_Models : graphics_Models;
free_Impostors : impostor_Set;
texture_Pool : aliased Texture.Pool;
safe_Camera_updates_Map