diff options
Diffstat (limited to 'src/graphics')
| -rw-r--r-- | src/graphics/Graphics.cpp | 19 | ||||
| -rw-r--r-- | src/graphics/Graphics.h | 1 |
2 files changed, 20 insertions, 0 deletions
diff --git a/src/graphics/Graphics.cpp b/src/graphics/Graphics.cpp index 0fa5935..11dcac3 100644 --- a/src/graphics/Graphics.cpp +++ b/src/graphics/Graphics.cpp @@ -32,6 +32,25 @@ VideoBuffer::VideoBuffer(VideoBuffer * old): std::copy(old->Buffer, old->Buffer+(old->Width*old->Height), Buffer); }; +void VideoBuffer::Resize(float factor, bool resample) +{ + int newWidth = ((float)Width)*factor; + int newHeight = ((float)Height)*factor; + pixel * newBuffer; + if(resample) + newBuffer = Graphics::resample_img(Buffer, Width, Height, newWidth, newHeight); + else + newBuffer = Graphics::resample_img_nn(Buffer, Width, Height, newWidth, newHeight); + + if(newBuffer) + { + delete[] Buffer; + Buffer = newBuffer; + Width = newWidth; + Height = newHeight; + } +} + int VideoBuffer::SetCharacter(int x, int y, int c, int r, int g, int b, int a) { int i, j, w, bn = 0, ba = 0; diff --git a/src/graphics/Graphics.h b/src/graphics/Graphics.h index edc61e2..53d3ee7 100644 --- a/src/graphics/Graphics.h +++ b/src/graphics/Graphics.h @@ -109,6 +109,7 @@ public: VideoBuffer(const VideoBuffer & old); VideoBuffer(VideoBuffer * old); VideoBuffer(int width, int height); + void Resize(float factor, bool resample = false); TPT_INLINE void BlendPixel(int x, int y, int r, int g, int b, int a) { #ifdef PIX32OGL |
