How to remove scrolling effect from LED RGB matrix using Arduino Mega

Hi!
I want to make an animation using a 64x64 rgb matrix waveshare led screen and arduino mega. I can upload images as frames but I cannot get rid of the scrolling effect once added an image.

Do you have any idea how to fix this? Is called swap in the code? what are the alternatives to this?

#include "RGBmatrixPanel.h"

#include "bit_bmp.h"
#include "fonts.h"
#include <string.h>
#include <stdlib.h>

// Most of the signal pins are configurable, but the CLK pin has some
// special constraints.  On 8-bit AVR boards it must be on PORTB...
// Pin 11 works on the Arduino Mega.  On 32-bit SAMD boards it must be
// on the same PORT as the RGB data pins (D2-D7)...
// Pin 8 works on the Adafruit Metro M0 or Arduino Zero,
// Pin A4 works on the Adafruit Metro M4 (if using the Adafruit RGB
// Matrix Shield, cut trace between CLK pads and run a wire to A4).

//#define CLK  8   // USE THIS ON ADAFRUIT METRO M0, etc.
//#define CLK A4 // USE THIS ON METRO M4 (not M0)
#define CLK 11 // USE THIS ON ARDUINO MEGA
#define OE   9
#define LAT 10
#define A   A0
#define B   A1
#define C   A2
#define D   A3
#define E   A4

RGBmatrixPanel matrix(A, B, C, D, E, CLK, LAT, OE, false, 64);
//Configure the serial port to use the standard printf function

void setup()
{
  Serial.begin(115200);
  matrix.begin();
  delay(500);
}



void loop()
{
  // Do nothing -- image doesn't change
 Demo_1();
}



/*  @name :  display_Image
 *  @brief:  display an image
 *           The image data is in the "bit_bmp.h"
 *           You can use some tools to get the image data
 *           You can set the data bits which is 8 or 16 and set the MSB first which is true or false on line 1001 of Adafruit_GFX.c
 *  @param:    x   Top left corner x coordinate
 *             y   Top left corner y coordinate
 *         bitmap  byte array with 16-bit color bitmap,the image data is in the "bit_bmp.h"
 *             w   Width of bitmap in pixels
 *             h   Height of bitmap in pixels
 *  @retval: None
 */
void display_Image(int16_t x, int16_t y, const uint16_t bitmap[],int16_t w, int16_t h)
{
  matrix.display_image(x, y, bitmap, w, h);
}


void Demo_1()
{
    
  display_Image(0, 0, gImage_image0, 64, 64);
  delay(10);
  display_Image(0, 0, gImage_image1, 64, 64);
  delay(10);
  display_Image(0, 0, gImage_image2, 64, 64);
  delay(10);


}

The whole image or a few columns?

The whole image!

By scrolling you're meaning that it keeps sending the picture data repeatedly.
Take Demo_1(); out of loop() and place it in setup()

This is not a solution, but an observation.
You are using loop() to call Demo_1() to call display_image() to call matrix.display_image().

Why not call matrix.display_image() directly from loop()?

@eszternagy97 - I agree with pancake. I think your three images, when animated, are creating the scroll effect. Would you upload a short video?

thank you for the ideas! I think the problem is that the screen loads the pixels in order and not at the same time therefore I get the "scrolling effect" every time a new frame loads

I called matrix.display_image() directly from loop() but it doesn't fix the problem

here is a video! Ignore the flickering frequency