From d04128a8ef2a43d19018be033612d16010470fd2 Mon Sep 17 00:00:00 2001
From: Alfred Burgess <alfred.burgess95@gmail.com>
Date: Tue, 12 Dec 2023 18:59:16 +0800
Subject: [PATCH] Work towards SDL

---
 assets/animated.png           | Bin 0 -> 839 bytes
 assets/texture_test.png       | Bin 1136 -> 839 bytes
 assets/water_animated.png     | Bin 0 -> 11697 bytes
 include/colour.h              |   8 ++++-
 include/components/cTexture.h |   9 +++++-
 include/window.h              |   8 ++++-
 src/colour.cpp                |  21 +++++++++++--
 src/components/cTexture.cpp   |   7 +++++
 src/window.cpp                |  56 ++++++++++++++++++++++++++++++++--
 9 files changed, 101 insertions(+), 8 deletions(-)
 create mode 100644 assets/animated.png
 create mode 100644 assets/water_animated.png

diff --git a/assets/animated.png b/assets/animated.png
new file mode 100644
index 0000000000000000000000000000000000000000..52206b2bc829ef4384f926d6b508ad7750be6b86
GIT binary patch
literal 839
zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VM%xNb!1@J
z*w6hZkrl}2EbxddW?<ku1j3A>8eR<y3`}=CT^vIy;@)1<?G6oOXuDWECvWB}b{?~h
zD+7ClT@EH~xv6tV<zSlBh8sC<-77kLuBupFRcn%WJj{~Y_OR;VJd+of&!_6%c=PvP
z1N*m%f=6ePBA932x94q--{+UT&&+SW)V8>oxz}oH_x;PN`1|_qmS?YTlraBS5a3{H
z900;V?|jl%mOiQPd3R#E9k$K4mF4q$=L2-;{<nPB<?hV7R<n1{_Y{loHQ7<0pLVl4
zDhRMJ(VaN<G;+<n1A&hpeXn9Ml8c{K_oFcCvuWNOS-t%C{@MHPy_qXt_verC+Ml0}
zHVr@+0<C=fNhi$z!HSQ6Z*yl0o;d0)-*$9y=9wE6=@ReW+046EV|!<>ZOqR7_5<g{
eAL|o;a5K#^ay?(%cORJe89ZJ6T-G@yGywo{SLKud

literal 0
HcmV?d00001

diff --git a/assets/texture_test.png b/assets/texture_test.png
index 597523658634a02502ad20caef19789358a0b5c2..52206b2bc829ef4384f926d6b508ad7750be6b86 100644
GIT binary patch
literal 839
zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k4M?tyST_$yF%}28J29*~C-V}>VM%xNb!1@J
z*w6hZkrl}2EbxddW?<ku1j3A>8eR<y3`}=CT^vIy;@)1<?G6oOXuDWECvWB}b{?~h
zD+7ClT@EH~xv6tV<zSlBh8sC<-77kLuBupFRcn%WJj{~Y_OR;VJd+of&!_6%c=PvP
z1N*m%f=6ePBA932x94q--{+UT&&+SW)V8>oxz}oH_x;PN`1|_qmS?YTlraBS5a3{H
z900;V?|jl%mOiQPd3R#E9k$K4mF4q$=L2-;{<nPB<?hV7R<n1{_Y{loHQ7<0pLVl4
zDhRMJ(VaN<G;+<n1A&hpeXn9Ml8c{K_oFcCvuWNOS-t%C{@MHPy_qXt_verC+Ml0}
zHVr@+0<C=fNhi$z!HSQ6Z*yl0o;d0)-*$9y=9wE6=@ReW+046EV|!<>ZOqR7_5<g{
eAL|o;a5K#^ay?(%cORJe89ZJ6T-G@yGywo{SLKud

literal 1136
zcmeAS@N?(olHy`uVBq!ia0vp^CqS5k2}mkgS)K$^jKx9jP7LeL$-D$|SkfJR9T^xl
z_H+M9WCij$3p^r=85sBugD~Uq{1qucHLRX4jv*CsZ!amXn~*NzdeL0KV2M~KTW5w=
z)`YpvlhX@(7>;X1T@DF1eG<tQ5F*G?z`<0Xd)4ld>ih`vYzFn6zn?vBmgg%eF8=&=
z{`ciO!)$;3J$^Z6^}ioqzGt?W3WTYzY209y$lG$2Gh1PeUj%bv=^-hO)xy^tBIa&j
zJM?M@Dk)!E^iJ;G`T6lOFQmSGeE2qVU8w!uUr$Z0uR6Zp)~a`i`U-bE-Q9X>XZ4Q!
z`Tk$-Z&?4{uXt_MuRrgAzOA>fu{`_VzKUb$M=6Tu-(A=+XZQ5#-`6KI#~$9d*X~^D
w{(Ji@&u)En^Yre^9K$6Q!@L~2ch7G=DSglGuyZO=z*2(2)78&qol`;+0GS`pMF0Q*

diff --git a/assets/water_animated.png b/assets/water_animated.png
new file mode 100644
index 0000000000000000000000000000000000000000..26d2c1cca00109f32fc3874081af9dbffc8a5b7c
GIT binary patch
literal 11697
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
Hu0mjfHvpBl

literal 0
HcmV?d00001

diff --git a/include/colour.h b/include/colour.h
index 8f1f23c..80e875f 100644
--- a/include/colour.h
+++ b/include/colour.h
@@ -13,8 +13,14 @@ struct RGBA{
 class Colour
 {
 	public:
-		Colour( uint8_t r, uint8_t g, uint8_t b, uint8_t a  );
+		Colour();
+		Colour( uint8_t r, uint8_t g, uint8_t b, uint8_t a = 255 );
 		~Colour();
+
+		void brighten( uint8_t delta );
+		void darken( uint8_t delta );
+
+		RGBA getRGBA();
 	private:
 		RGBA _col;
 	
diff --git a/include/components/cTexture.h b/include/components/cTexture.h
index f86b6c6..0afd96c 100644
--- a/include/components/cTexture.h
+++ b/include/components/cTexture.h
@@ -6,6 +6,7 @@
 #include <string>
 #include "components/components-generic.h"
 #include "window.h"
+#include "colour.h"
 #include "maths/vec2.h"
 
 
@@ -18,10 +19,16 @@ class cTexture : public CComponentGeneric
 		bool loadFromFile( std::string path );
 		void free();
 		void render( Vec2 pt );
-		void render( Vec2 pt, SDL_Renderer *renderer, SDL_Rect* clip = NULL );
+		void render( Vec2 pt, SDL_Renderer *renderer, SDL_Rect *clip = NULL );
 
 		int getWidth(){ return this->_width; }
 		int getHeight(){ return this->_height; }
+
+		void setColour( Colour colour );
+		void setColour( uint8_t red, uint8_t green, uint8_t blue );
+		
+		void setBlendMode( SDL_BlendMode blending );
+		void setAlpha( uint8_t alpha );
 	private:
 		SDL_Texture* _texture;
 		uint16_t _width;
diff --git a/include/window.h b/include/window.h
index 75c3b85..bf23aa4 100644
--- a/include/window.h
+++ b/include/window.h
@@ -56,11 +56,17 @@ class Window
 		Logger& _logger;
 		SDL_Window* _window;
 		SDL_Texture* _activeTexture;
+
+		Colour _screenModulation;
 		cTexture* _background;
 		cTexture* _character;
 		cTexture* _textureSprite;
 		SDL_Rect _sprites[4];
+		uint8_t _alpha = 0xff;
 
+		cTexture* _water;
+		const uint8_t _waterFrames = 4;
+		SDL_Rect _waterTicks[4];
 
 		SDL_Renderer* _renderer;
 		SDL_Surface* _screenSurface;
@@ -68,7 +74,7 @@ class Window
 
 		SDL_Rect _drawRect( int x, int y, uint16_t width, uint16_t height );
 		void _drawLine( int16_t x1, int16_t y1, int16_t x2, int16_t y2 );
-		// void _drawLine( Vec2 from, Vec2 to );
+		// void _drawLine( Vec2 from, Vec2 to );	
 		void _drawPoint( Vec2 point );
 		// void _drawPoint( int16_t x, int16_t y );
 		void _drawHex( Vec2 point, uint16_t radius );
diff --git a/src/colour.cpp b/src/colour.cpp
index 75bf78d..7a7f0a7 100644
--- a/src/colour.cpp
+++ b/src/colour.cpp
@@ -1,7 +1,24 @@
 #include "colour.h"
 
-Colour::Colour( uint8_t r, uint8_t g, uint8_t b, uint8_t a  )
+Colour::Colour(  )
+	: _col( {0x00, 0x00, 0x00, 0x00} )
+{}
+Colour::Colour( uint8_t r, uint8_t g, uint8_t b, uint8_t a )
 	: _col( {r,g,b,a} )
 {}
 Colour::~Colour()
-{}
\ No newline at end of file
+{}
+
+RGBA Colour::getRGBA() { return this->_col; }
+void Colour::brighten( uint8_t delta )
+{
+	if( this->_col.r < 0xFF ) this->_col.r += delta;
+	if( this->_col.g < 0xFF ) this->_col.g += delta;
+	if( this->_col.b < 0xFF ) this->_col.b += delta;
+}
+void Colour::darken( uint8_t delta )
+{
+	if( this->_col.r > 0 ) this->_col.r -= delta;
+	if( this->_col.g > 0 ) this->_col.g -= delta;
+	if( this->_col.b > 0 ) this->_col.b -= delta;
+}
\ No newline at end of file
diff --git a/src/components/cTexture.cpp b/src/components/cTexture.cpp
index 8034caf..499ae0f 100644
--- a/src/components/cTexture.cpp
+++ b/src/components/cTexture.cpp
@@ -30,6 +30,7 @@ bool cTexture::loadFromFile( std::string path )
 		SDL_FreeSurface( surface );
 	}
 	this->_texture = texture;
+	this->setBlendMode( SDL_BLENDMODE_BLEND );
 	return texture != NULL;
 }
 
@@ -43,6 +44,12 @@ void cTexture::free()
 	}
 }
 
+void cTexture::setColour( Colour colour ) { this->setColour( colour.getRGBA().r, colour.getRGBA().g, colour.getRGBA().b ); }
+void cTexture::setColour( uint8_t red, uint8_t green, uint8_t blue ) { SDL_SetTextureColorMod( this->_texture, red, green, blue ); }
+
+void cTexture::setBlendMode( SDL_BlendMode blending ) { SDL_SetTextureBlendMode( this->_texture, blending ); }
+void cTexture::setAlpha( uint8_t alpha ) { SDL_SetTextureAlphaMod( this->_texture, alpha ); }
+
 void cTexture::render( Vec2 pt, SDL_Renderer *renderer, SDL_Rect* clip )
 {
 	if( this->_width && this->_height )
diff --git a/src/window.cpp b/src/window.cpp
index 82652ec..b623414 100644
--- a/src/window.cpp
+++ b/src/window.cpp
@@ -14,7 +14,10 @@ Window::Window()
 	this->_renderSurface = nullptr;
 	this->_background = new cTexture();
 	this->_character = new cTexture();
+	this->_water = new cTexture();
 	this->_textureSprite = new cTexture();
+
+	this->_screenModulation = Colour( 0x88, 0x88, 0x88, 0xFF );
 }
 Window::~Window()
 {
@@ -82,6 +85,32 @@ void Window::loadMedia()
 {
 	this->_background->loadFromFile( "assets/background.png" );
 	this->_character->loadFromFile( "assets/person.png" );
+	if( this->_water->loadFromFile( "assets/water_animated	.png" ) )
+	{
+		// Set Frame 1
+		this->_waterTicks[ 0 ].x =   0;
+		this->_waterTicks[ 0 ].y =   0;
+		this->_waterTicks[ 0 ].w = 100;
+		this->_waterTicks[ 0 ].h = 100;
+
+		//Set top right sprite
+		this->_waterTicks[ 1 ].x = 100;
+		this->_waterTicks[ 1 ].y =   0;
+		this->_waterTicks[ 1 ].w = 100;
+		this->_waterTicks[ 1 ].h = 100;
+
+		// Set Frame 3
+		this->_waterTicks[ 2 ].x = 200;
+		this->_waterTicks[ 2 ].y =   0;
+		this->_waterTicks[ 2 ].w = 100;
+		this->_waterTicks[ 2 ].h = 100;
+
+		// Set Frame 4
+		this->_waterTicks[ 3 ].x = 300;
+		this->_waterTicks[ 3 ].y =   0;
+		this->_waterTicks[ 3 ].w = 100;
+		this->_waterTicks[ 3 ].h = 100;	
+	}
 	if( this->_textureSprite->loadFromFile( "assets/texture_test.png" ) )
 	{
 		//Set top left sprite
@@ -126,11 +155,13 @@ void Window::update() {
 	SDL_RenderClear( this->_renderer );
 
 	SDL_Rect bg = this->_createViewport( 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT );
+	this->_background->setColour( this->_screenModulation );
 	this->_background->render( {0,0}, this->_renderer );
 	this->_character->render( {SCREEN_HEIGHT/3,SCREEN_HEIGHT/3}, this->_renderer );
 	// this->_textureSprite->render( {0,0}, this->_renderer );
 
 	//Render top left sprite
+	this->_textureSprite->setAlpha( this->_alpha );
 	this->_textureSprite->render( {0, 0}, this->_renderer, &this->_sprites[ 0 ] );
 	//Render top right sprite
 	this->_textureSprite->render( {SCREEN_WIDTH - this->_sprites[ 1 ].w, 0}, this->_renderer, &this->_sprites[ 1 ] );
@@ -226,7 +257,7 @@ void Window::spawn()
 	} else {
 		if( Window::renderer == NULL )
 		{
-			this->_renderer = SDL_CreateRenderer( this->_window, -1, SDL_RENDERER_ACCELERATED  );
+			this->_renderer = SDL_CreateRenderer( this->_window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC  );
 			if( this->_renderer == NULL )
 			{
 				printf( "Renderer could not be created! SDL Error: %s\n", SDL_GetError() );
@@ -272,8 +303,27 @@ void Window::processInput()
 		if( e.type == SDL_QUIT ) this->_toClose = true;
 		else if( e.type == SDL_KEYDOWN )
 		{
-			if( e.key.keysym.sym == SDLK_ESCAPE ) this->_toClose = true;
-			std::cout << "Key: " << e.key.keysym.sym << std::endl;
+			switch( e.key.keysym.sym )
+			{
+				case SDL_QUIT: this->_toClose = true; break;
+				case SDLK_ESCAPE: this->_toClose = true; break;
+				case SDLK_PAGEUP:
+					this->_screenModulation.brighten( 5 );
+					break;
+				case SDLK_PAGEDOWN:
+					this->_screenModulation.darken( 5 );
+					break;
+				case SDLK_PLUS:
+				case SDLK_KP_PLUS:
+				case SDLK_GREATER:
+					if( this->_alpha < 0xFF ) this->_alpha += 5;
+					break;
+				case SDLK_LESS:
+				case SDLK_MINUS:
+				case SDLK_KP_MINUS:
+					if( this->_alpha > 5 ) this->_alpha -= 5;
+					break;
+			}
 		}
 	}
 }
-- 
GitLab