From 372a9b5a86b52249e6f132c84a3a8c435f7144a1 Mon Sep 17 00:00:00 2001 From: DeaDDooMER Date: Sun, 25 Feb 2018 16:04:08 +0300 Subject: [PATCH] Fix crashes with nanogl --- src/game/g_gfx.pas | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/src/game/g_gfx.pas b/src/game/g_gfx.pas index 01ada52..df1d3c7 100644 --- a/src/game/g_gfx.pas +++ b/src/game/g_gfx.pas @@ -1628,14 +1628,13 @@ procedure g_GFX_Draw (); a, len: Integer; {$IFDEF USE_NANOGL} type - PVertex = ^Vertex; Vertex = record x, y: GLfloat; r, g, b, a: GLfloat; end; var count: Integer; - v: PVertex; + v: array of Vertex; {$ENDIF} begin if not gpart_dbg_enabled then exit; @@ -1652,10 +1651,9 @@ begin glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); {$IFDEF USE_NANOGL} - len := High(Particles); - v := GetMem(len * SizeOf(Vertex) + 1); count := 0; - for a := 0 to len do + SetLength(v, Length(Particles)); + for a := 0 to High(Particles) do begin with Particles[a] do begin @@ -1672,15 +1670,13 @@ begin end; end; - glVertexPointer(2, GL_FLOAT, SizeOf(Vertex), @v.x); - glColorPointer(4, GL_FLOAT, SizeOf(Vertex), @v.r); + glVertexPointer(2, GL_FLOAT, SizeOf(Vertex), @v[0].x); + glColorPointer(4, GL_FLOAT, SizeOf(Vertex), @v[0].r); glEnableClientState(GL_VERTEX_ARRAY); glEnableClientState(GL_COLOR_ARRAY); glDisableClientState(GL_NORMAL_ARRAY); glDisableClientState(GL_TEXTURE_COORD_ARRAY); - glDrawArrays(GL_POINTS, 0, count - 1); - - Dispose(v); + glDrawArrays(GL_POINTS, 0, count); {$ELSE} glBegin(GL_POINTS); -- 2.29.2