aboutsummaryrefslogtreecommitdiff
path: root/src/libjin/Graphics
diff options
context:
space:
mode:
Diffstat (limited to 'src/libjin/Graphics')
-rw-r--r--src/libjin/Graphics/Bitmap.cpp11
-rw-r--r--src/libjin/Graphics/Bitmap.h5
-rw-r--r--src/libjin/Graphics/Graphics.h1
-rw-r--r--src/libjin/Graphics/Image.cpp11
-rw-r--r--src/libjin/Graphics/Image.h1
-rw-r--r--src/libjin/Graphics/Sprite.h4
-rw-r--r--src/libjin/Graphics/Texture.h6
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