diff options
Diffstat (limited to 'src/libjin/Graphics')
-rw-r--r-- | src/libjin/Graphics/Bitmap.cpp | 11 | ||||
-rw-r--r-- | src/libjin/Graphics/Bitmap.h | 5 | ||||
-rw-r--r-- | src/libjin/Graphics/Graphics.h | 1 | ||||
-rw-r--r-- | src/libjin/Graphics/Image.cpp | 11 | ||||
-rw-r--r-- | src/libjin/Graphics/Image.h | 1 | ||||
-rw-r--r-- | src/libjin/Graphics/Sprite.h | 4 | ||||
-rw-r--r-- | src/libjin/Graphics/Texture.h | 6 |
7 files changed, 31 insertions, 8 deletions
diff --git a/src/libjin/Graphics/Bitmap.cpp b/src/libjin/Graphics/Bitmap.cpp index acfde58..160fda2 100644 --- a/src/libjin/Graphics/Bitmap.cpp +++ b/src/libjin/Graphics/Bitmap.cpp @@ -1,4 +1,5 @@ #include "Bitmap.h" +#define STB_IMAGE_IMPLEMENTATION #include "../3rdparty/stb/stb_image.h" #include "../Math/math.h" @@ -9,6 +10,14 @@ namespace jin namespace graphics { + /* pixelbitmap */ + Bitmap* Bitmap::createBitmap(const void* pixel, unsigned width, unsigned height) + { + Bitmap* bitmap = new Bitmap(width, height); + memcpy(bitmap->pixels, pixel, width*height * sizeof(Color)); + return bitmap; + } + /*static*/ Bitmap* Bitmap::createBitmap(const void* imgData, size_t size) { if (imgData == nullptr) @@ -48,7 +57,7 @@ namespace graphics { } - Bitmap::Bitmap(int w, int h) + Bitmap::Bitmap(unsigned w, unsigned h) { width = w; height = h; diff --git a/src/libjin/Graphics/Bitmap.h b/src/libjin/Graphics/Bitmap.h index 553d999..6264c37 100644 --- a/src/libjin/Graphics/Bitmap.h +++ b/src/libjin/Graphics/Bitmap.h @@ -15,6 +15,7 @@ namespace graphics class Bitmap { public: + static Bitmap* createBitmap(const void* pixel, unsigned width, unsigned height); static Bitmap* createBitmap(const void* imgData, size_t size); static Bitmap* createBitmap(int w, int h, Color color = Color::BLACK); static Bitmap* clone(const Bitmap* bitmap); @@ -37,10 +38,10 @@ namespace graphics protected: Bitmap(); - Bitmap(int w, int h); + Bitmap(unsigned w, unsigned h); Color * pixels; - int width, height; + unsigned width, height; }; diff --git a/src/libjin/Graphics/Graphics.h b/src/libjin/Graphics/Graphics.h index 54889f9..199d2aa 100644 --- a/src/libjin/Graphics/Graphics.h +++ b/src/libjin/Graphics/Graphics.h @@ -10,6 +10,7 @@ #include "Shader.h" #include "window.h" #include "Bitmap.h" +#include "Image.h" #include "./Font/TTF.h" #include "./Font/Text.h" diff --git a/src/libjin/Graphics/Image.cpp b/src/libjin/Graphics/Image.cpp index 6203395..5700f60 100644 --- a/src/libjin/Graphics/Image.cpp +++ b/src/libjin/Graphics/Image.cpp @@ -1,4 +1,5 @@ #include "../3rdparty/stb/stb_image.h" +#include "../Filesystem/Filesystem.h" #include "Image.h" namespace jin @@ -6,6 +7,8 @@ namespace jin namespace graphics { + using namespace filesystem; + /*static*/ Image* Image::createImage(const void* imgData, size_t size) { if (imgData == nullptr) @@ -21,6 +24,14 @@ namespace graphics return image; } + Image* Image::createImage(const char* path) + { + Filesystem* fs = Filesystem::get(); + Buffer buffer; + fs->read(path, &buffer); + return createImage(buffer.data, buffer.size); + } + Image::Image() : Bitmap() { diff --git a/src/libjin/Graphics/Image.h b/src/libjin/Graphics/Image.h index 29546cc..215ac34 100644 --- a/src/libjin/Graphics/Image.h +++ b/src/libjin/Graphics/Image.h @@ -13,6 +13,7 @@ namespace graphics class Image : public Bitmap { public: + static Image* createImage(const char* path); static Image* createImage(const void* imgData, size_t size); ~Image(); diff --git a/src/libjin/Graphics/Sprite.h b/src/libjin/Graphics/Sprite.h index acb8264..0d73464 100644 --- a/src/libjin/Graphics/Sprite.h +++ b/src/libjin/Graphics/Sprite.h @@ -1,5 +1,5 @@ -#ifndef __LIBJIN_IMAGE_H -#define __LIBJIN_IMAGE_H +#ifndef __LIBJIN_SPRITE_H +#define __LIBJIN_SPRITE_H namespace jin { diff --git a/src/libjin/Graphics/Texture.h b/src/libjin/Graphics/Texture.h index 8498666..1704ee7 100644 --- a/src/libjin/Graphics/Texture.h +++ b/src/libjin/Graphics/Texture.h @@ -1,5 +1,5 @@ -#ifndef __LIBJIN_IMAGE_H -#define __LIBJIN_IMAGE_H +#ifndef __LIBJIN_TEXTURE_H +#define __LIBJIN_TEXTURE_H #include "../jin_configuration.h" #if LIBJIN_MODULES_RENDER @@ -28,4 +28,4 @@ namespace graphics } // jin #endif // LIBJIN_MODULES_RENDER -#endif // __LIBJIN_IMAGE_H
\ No newline at end of file +#endif // __LIBJIN_TEXTURE_H
\ No newline at end of file |