From a9969d58f83b13460c4cb9d42f6a1317e1fa3b31 Mon Sep 17 00:00:00 2001 From: Kieron Morris Date: Sun, 6 Feb 2022 13:26:12 +0000 Subject: [PATCH] Draw texture function added to Video driver. --- src/driver/video/video.pas | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/driver/video/video.pas b/src/driver/video/video.pas index 1c9b6f46..2ef4c46e 100644 --- a/src/driver/video/video.pas +++ b/src/driver/video/video.pas @@ -22,7 +22,7 @@ unit video; interface uses - lmemorymanager, tracer, color, videotypes, hashmap, util; + lmemorymanager, tracer, color, videotypes, hashmap, util, texture; procedure init(); procedure DrawPixel(X : uint32; Y : uint32; Pixel : TRGB32); @@ -41,6 +41,8 @@ function backBufferWidth : uint32; function backBufferHeight : uint32; function backBufferBpp : uint8; +Procedure basicFDrawTexture(Buffer : PVideoBuffer; X : uint32; Y : uint32; Texture : PTexture); + implementation Procedure dummyFDrawPixel(Buffer : PVideoBuffer; X : uint32; Y : uint32; Pixel : TRGB32); @@ -70,6 +72,19 @@ begin end; end; +Procedure basicFDrawTexture(Buffer : PVideoBuffer; X : uint32; Y : uint32; Texture : PTexture); +var + i, j : uint32; + +begin + //Draw texture to Buffer at x and y + for i:=0 to Texture^.Height - 1 do begin + for j:=0 to Texture^.Width - 1 do begin + DrawPixel(X + j, Y + i, Texture^.Pixels[(i * Texture^.Width) + j]); + end; + end; +end; + procedure basicFDrawLine(Buffer : PVideoBuffer; x1,y1,x2,y2 : uint32; thickness : uint32; Color : TRGB32); var X, Y, DX, DY, DX1, DY1, PX, PY, XE, YE, I : sint32;