mirror of
https://github.com/Relintai/texture_packer.git
synced 2024-11-12 10:15:16 +01:00
Added a background_color property.
This commit is contained in:
parent
6a6b844823
commit
1d8256548c
@ -21,6 +21,13 @@ void TexturePacker::set_keep_original_atlases(const bool value) {
|
||||
_keep_original_atlases = value;
|
||||
}
|
||||
|
||||
Color TexturePacker::get_background_color() const {
|
||||
return _background_color;
|
||||
}
|
||||
void TexturePacker::set_background_color(const Color color) {
|
||||
_background_color = color;
|
||||
}
|
||||
|
||||
Ref<AtlasTexture> TexturePacker::add_texture(Ref<Texture> texture) {
|
||||
Ref<AtlasTexture> atlas_text = texture;
|
||||
|
||||
@ -222,11 +229,20 @@ void TexturePacker::merge() {
|
||||
PoolByteArray data;
|
||||
data.resize(b.size.w * b.size.h * 4);
|
||||
|
||||
// so it's transparent by default
|
||||
for (int j = 0; j < data.size(); ++j) {
|
||||
data.set(j, 0);
|
||||
//Setup background color
|
||||
uint8_t cr = _background_color.r * 255.0;
|
||||
uint8_t cg = _background_color.g * 255.0;
|
||||
uint8_t cb = _background_color.b * 255.0;
|
||||
uint8_t ca = _background_color.a * 255.0;
|
||||
|
||||
for (int j = 0; j < data.size(); j += 4) {
|
||||
data.set(j, cr);
|
||||
data.set(j + 1, cg);
|
||||
data.set(j + 2, cb);
|
||||
data.set(j + 3, ca);
|
||||
}
|
||||
|
||||
//Process rects
|
||||
for (int j = 0; j < b.rects.size(); ++j) {
|
||||
rect_xywhf *r = b.rects[j];
|
||||
|
||||
@ -311,6 +327,10 @@ void TexturePacker::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("set_keep_original_atlases", "value"), &TexturePacker::set_keep_original_atlases);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "keep_original_atlases"), "set_keep_original_atlases", "get_keep_original_atlases");
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_background_color"), &TexturePacker::get_background_color);
|
||||
ClassDB::bind_method(D_METHOD("set_background_color", "color"), &TexturePacker::set_background_color);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::COLOR, "background_color"), "set_background_color", "get_background_color");
|
||||
|
||||
ClassDB::bind_method(D_METHOD("add_texture", "texture"), &TexturePacker::add_texture);
|
||||
ClassDB::bind_method(D_METHOD("get_texture", "index"), &TexturePacker::get_texture);
|
||||
ClassDB::bind_method(D_METHOD("get_original_texture", "index"), &TexturePacker::get_original_texture);
|
||||
|
@ -1,8 +1,9 @@
|
||||
#ifndef TEXTURE_PACKER_H
|
||||
#define TEXTURE_PACKER_H
|
||||
|
||||
#include "core/image.h"
|
||||
#include "core/reference.h"
|
||||
#include "core/image.h"
|
||||
#include "core/color.h"
|
||||
#include "core/ustring.h"
|
||||
#include "core/vector.h"
|
||||
#include "scene/resources/texture.h"
|
||||
@ -23,6 +24,9 @@ public:
|
||||
bool get_keep_original_atlases() const;
|
||||
void set_keep_original_atlases(const bool value);
|
||||
|
||||
Color get_background_color() const;
|
||||
void set_background_color(const Color color);
|
||||
|
||||
Ref<AtlasTexture> add_texture(Ref<Texture> texture);
|
||||
Ref<AtlasTexture> get_texture(int index);
|
||||
Ref<Texture> get_original_texture(int index);
|
||||
@ -50,6 +54,7 @@ private:
|
||||
int _texture_flags;
|
||||
int _max_atlas_size;
|
||||
bool _keep_original_atlases;
|
||||
Color _background_color;
|
||||
|
||||
Vector<rect_xywhf *> _rects;
|
||||
Vector<Ref<ImageTexture> > _generated_textures;
|
||||
|
Loading…
Reference in New Issue
Block a user