summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRĂ©mi Verschelde <remi@verschelde.fr>2021-10-07 22:38:07 +0200
committerGitHub <noreply@github.com>2021-10-07 22:38:07 +0200
commit2faf2f822caa4dc7573d2b65063a7edbd1926ce3 (patch)
tree583142f0cac0c3c04bd8749cd44ffdb3c609482a
parent9f9452a738054ce4495d71eec28c060980d210cf (diff)
parent3f11fe4c66056ea88b8de19706e967b6e1661553 (diff)
Merge pull request #53499 from boruok/master-optional-crop-for-texture-atlas-importer
-rw-r--r--editor/import/resource_importer_texture_atlas.cpp7
-rw-r--r--editor/import/resource_importer_texture_atlas.h1
2 files changed, 7 insertions, 1 deletions
diff --git a/editor/import/resource_importer_texture_atlas.cpp b/editor/import/resource_importer_texture_atlas.cpp
index 36fd161c35..cf699599ae 100644
--- a/editor/import/resource_importer_texture_atlas.cpp
+++ b/editor/import/resource_importer_texture_atlas.cpp
@@ -74,6 +74,7 @@ String ResourceImporterTextureAtlas::get_preset_name(int p_idx) const {
void ResourceImporterTextureAtlas::get_import_options(List<ImportOption> *r_options, int p_preset) const {
r_options->push_back(ImportOption(PropertyInfo(Variant::STRING, "atlas_file", PROPERTY_HINT_SAVE_FILE, "*.png"), ""));
r_options->push_back(ImportOption(PropertyInfo(Variant::INT, "import_mode", PROPERTY_HINT_ENUM, "Region,Mesh2D"), 0));
+ r_options->push_back(ImportOption(PropertyInfo(Variant::BOOL, "crop_to_region"), false));
}
String ResourceImporterTextureAtlas::get_option_group_file() const {
@@ -206,6 +207,7 @@ Error ResourceImporterTextureAtlas::import_group_file(const String &p_group_file
ERR_CONTINUE(err != OK);
pack_data.image = image;
+ pack_data.is_cropped = options["crop_to_region"];
int mode = options["import_mode"];
@@ -324,7 +326,10 @@ Error ResourceImporterTextureAtlas::import_group_file(const String &p_group_file
atlas_texture.instantiate();
atlas_texture->set_atlas(cache);
atlas_texture->set_region(Rect2(offset, pack_data.region.size));
- atlas_texture->set_margin(Rect2(pack_data.region.position, pack_data.image->get_size() - pack_data.region.size));
+
+ if (!pack_data.is_cropped) {
+ atlas_texture->set_margin(Rect2(pack_data.region.position, pack_data.image->get_size() - pack_data.region.size));
+ }
texture = atlas_texture;
} else {
diff --git a/editor/import/resource_importer_texture_atlas.h b/editor/import/resource_importer_texture_atlas.h
index b675d12477..d518a120bf 100644
--- a/editor/import/resource_importer_texture_atlas.h
+++ b/editor/import/resource_importer_texture_atlas.h
@@ -38,6 +38,7 @@ class ResourceImporterTextureAtlas : public ResourceImporter {
struct PackData {
Rect2 region;
+ bool is_cropped = false;
bool is_mesh = false;
Vector<int> chart_pieces; //one for region, many for mesh
Vector<Vector<Vector2>> chart_vertices; //for mesh