|
|
|
@ -2,7 +2,7 @@ |
|
|
|
|
olcPixelGameEngine.h |
|
|
|
|
|
|
|
|
|
+-------------------------------------------------------------+ |
|
|
|
|
| OneLoneCoder Pixel Game Engine v2.01 | |
|
|
|
|
| OneLoneCoder Pixel Game Engine v2.02 | |
|
|
|
|
| "What do you need? Pixels... Lots of Pixels..." - javidx9 | |
|
|
|
|
+-------------------------------------------------------------+ |
|
|
|
|
|
|
|
|
@ -131,6 +131,7 @@ |
|
|
|
|
David Barr, aka javidx9, ©OneLoneCoder 2018, 2019, 2020 |
|
|
|
|
|
|
|
|
|
2.01: Made renderer and platform static for multifile projects |
|
|
|
|
2.02: Added Decal destructor, optimised Pixel constructor |
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
@ -453,6 +454,7 @@ namespace olc |
|
|
|
|
{ |
|
|
|
|
public: |
|
|
|
|
Decal(olc::Sprite* spr); |
|
|
|
|
virtual ~Decal(); |
|
|
|
|
void Update(); |
|
|
|
|
|
|
|
|
|
public: // But dont touch
|
|
|
|
@ -499,6 +501,7 @@ namespace olc |
|
|
|
|
virtual void DrawDecalQuad(const olc::DecalInstance& decal) = 0; |
|
|
|
|
virtual uint32_t CreateTexture(const uint32_t width, const uint32_t height) = 0; |
|
|
|
|
virtual void UpdateTexture(uint32_t id, olc::Sprite* spr) = 0; |
|
|
|
|
virtual uint32_t DeleteTexture(const uint32_t id) = 0; |
|
|
|
|
virtual void ApplyTexture(uint32_t id) = 0; |
|
|
|
|
virtual void UpdateViewport(const olc::vi2d& pos, const olc::vi2d& size) = 0; |
|
|
|
|
virtual void ClearBuffer(olc::Pixel p, bool bDepth) = 0; |
|
|
|
@ -789,7 +792,8 @@ namespace olc |
|
|
|
|
{ r = 0; g = 0; b = 0; a = nDefaultAlpha; } |
|
|
|
|
|
|
|
|
|
Pixel::Pixel(uint8_t red, uint8_t green, uint8_t blue, uint8_t alpha) |
|
|
|
|
{ r = red; g = green; b = blue; a = alpha; } |
|
|
|
|
{ n = red | (green << 8) | (blue << 16) | (alpha << 24); } // Thanks jarekpelczar
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Pixel::Pixel(uint32_t p) |
|
|
|
|
{ n = p; } |
|
|
|
@ -968,6 +972,15 @@ namespace olc |
|
|
|
|
renderer->UpdateTexture(id, sprite); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Decal::~Decal() |
|
|
|
|
{ |
|
|
|
|
if (id != -1) |
|
|
|
|
{ |
|
|
|
|
renderer->DeleteTexture(id); |
|
|
|
|
id = -1; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// O------------------------------------------------------------------------------O
|
|
|
|
@ -2386,6 +2399,12 @@ namespace olc |
|
|
|
|
return id; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
uint32_t DeleteTexture(const uint32_t id) override |
|
|
|
|
{ |
|
|
|
|
glDeleteTextures(1, &id);
|
|
|
|
|
return id; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void UpdateTexture(uint32_t id, olc::Sprite* spr) override |
|
|
|
|
{ |
|
|
|
|
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, spr->width, spr->height, 0, GL_RGBA, GL_UNSIGNED_BYTE, spr->GetData()); |
|
|
|
|