Arduino LCD Display drawing image issue
Looking at the SetXY function, it seems the controller might be ILI9341. Here's a datasheet for that controller:
http://www.newhavendisplay.com/app_notes/ILI9341.pdf.

There's two points that strike me at this time; hopefully as new information becomes available, I can extend the answer.

First of all, are the definitions for SCREEN_WIDTH, and SCREEN_HEIGHT correct? It looks to me like they might not be.

Secondly, what pixel data format, e.g. how many bits per pixel, do you set for the LCD. Usually these kinds of LCDs accept data in formats such as RGB565 (16 bits per pixel), BGR233 (8 bits per pixel) or RGB666 (18 bits per pixel). The code for DrawPixelLine suggests that the data is 8 bits per pixel; in my experience this is quite rare, although the striking thing in your image is that the colors seem to be correct. Having the wrong pixel format would explain a lot. 

It's rather odd that there seem to be two different entities for the screen height: SCREEN_HEIGHT and disp_y_size. Are you sure both are correct?



Edit: Based on the ILI9341 datasheet; that controller doesn't support 8-bit pixel depth. Also you declare your data buffer to be of type u_int16. However, in the line draw function, that buffer is cast into an array of char. And I think that in the Arduino (AVR), a char is 8 a bits data type. This would cause incorrect indexing to your data buffer.