mirror of
https://github.com/Relintai/rcpp_framework.git
synced 2024-11-14 04:57:21 +01:00
69 lines
1.7 KiB
C++
69 lines
1.7 KiB
C++
#ifndef IMAGE_H
|
|
#define IMAGE_H
|
|
|
|
#include "core/color.h"
|
|
#include "core/rect2.h"
|
|
#include "core/string.h"
|
|
#include "core/vector.h"
|
|
#include <SDL.h>
|
|
|
|
//add an image loader registratin api -> so you can just pass a path in a load method and it will try to find a suitable loader.
|
|
//remove sdl dependency
|
|
//have everything implemented here
|
|
//should have resizing and saving api -> thumbnail generation etc
|
|
//Should be inherited from Reference
|
|
|
|
class Image {
|
|
public:
|
|
void create(const Uint32 flags, const int width, const int height);
|
|
|
|
void enable_transparent_color(const Color &color);
|
|
void disable_transparent_color();
|
|
bool has_transparent_color();
|
|
Color get_transparent_color();
|
|
|
|
Color get_color_mod();
|
|
void set_color_mod(const Color &color);
|
|
|
|
Color get_alpha_mod();
|
|
void set_alpha_mod(const Uint8 alpha);
|
|
|
|
SDL_BlendMode get_blend_mode();
|
|
void set_blend_mode(const SDL_BlendMode mode);
|
|
|
|
Rect2 get_clip_rect();
|
|
void set_clip_rect(const Rect2 &rect);
|
|
|
|
void duplicate(Image *into);
|
|
|
|
void fill_rect(const Rect2 &rect, const Color &color);
|
|
void fill_rects(const Vector<Rect2> &rects, const Color &color);
|
|
void set_pixel(const int x, const int y, const Color &color);
|
|
Color get_pixel(const int x, const int y);
|
|
|
|
void blit_surface(const Image &source, const Rect2 &srcrect, const Rect2 &dstrect);
|
|
|
|
void lock();
|
|
void unlock();
|
|
|
|
void free();
|
|
|
|
void load_bmp(const String &file_name);
|
|
void save_bmp(const String &file_name);
|
|
|
|
Uint32 get_width() const;
|
|
Uint32 get_height() const;
|
|
|
|
SDL_Surface *get_surface();
|
|
void set_surface(SDL_Surface *surface);
|
|
|
|
Image();
|
|
Image(const String &file_name);
|
|
Image(SDL_Surface *surface);
|
|
virtual ~Image();
|
|
|
|
private:
|
|
SDL_Surface *_surface;
|
|
};
|
|
|
|
#endif |