diff options
Diffstat (limited to 'thirdparty/thekla_atlas/godot-changes.patch')
-rw-r--r-- | thirdparty/thekla_atlas/godot-changes.patch | 154 |
1 files changed, 0 insertions, 154 deletions
diff --git a/thirdparty/thekla_atlas/godot-changes.patch b/thirdparty/thekla_atlas/godot-changes.patch deleted file mode 100644 index 0e56403336..0000000000 --- a/thirdparty/thekla_atlas/godot-changes.patch +++ /dev/null @@ -1,154 +0,0 @@ -diff --git a/thirdparty/thekla_atlas/nvmesh/param/AtlasPacker.cpp b/thirdparty/thekla_atlas/nvmesh/param/AtlasPacker.cpp -index 5ce452c..11e635d 100644 ---- a/thirdparty/thekla_atlas/nvmesh/param/AtlasPacker.cpp -+++ b/thirdparty/thekla_atlas/nvmesh/param/AtlasPacker.cpp -@@ -142,9 +142,11 @@ AtlasPacker::AtlasPacker(Atlas * atlas) : m_atlas(atlas), m_bitmap(256, 256) - { - m_width = 0; - m_height = 0; -- -- m_debug_bitmap.allocate(256, 256); -- m_debug_bitmap.fill(Color32(0,0,0,0)); -+ -+ // -- GODOT start -- -+ //m_debug_bitmap.allocate(256, 256); -+ //m_debug_bitmap.fill(Color32(0,0,0,0)); -+ // -- GODOT end -- - } - - AtlasPacker::~AtlasPacker() -@@ -465,7 +467,11 @@ void AtlasPacker::packCharts(int quality, float texelsPerUnit, bool blockAligned - nvDebug("origin: %f %f\n", origin.x, origin.y); - nvDebug("majorAxis: %f %f\n", majorAxis.x, majorAxis.y); - nvDebug("minorAxis: %f %f\n", minorAxis.x, minorAxis.y); -- nvDebugBreak(); -+ // -- GODOT start -- -+ //nvDebugBreak(); -+ m_atlas->setFailed(); -+ return; -+ // -- GODOT end -- - } - //nvCheck(tmp.x >= 0 && tmp.y >= 0); - -@@ -597,8 +603,10 @@ void AtlasPacker::packCharts(int quality, float texelsPerUnit, bool blockAligned - m_bitmap.clearAll(); - if (approximateExtent > m_bitmap.width()) { - m_bitmap.resize(approximateExtent, approximateExtent, false); -- m_debug_bitmap.resize(approximateExtent, approximateExtent); -- m_debug_bitmap.fill(Color32(0,0,0,0)); -+ // -- GODOT start -- -+ //m_debug_bitmap.resize(approximateExtent, approximateExtent); -+ //m_debug_bitmap.fill(Color32(0,0,0,0)); -+ // -- GODOT end -- - } - - -@@ -680,20 +688,24 @@ void AtlasPacker::packCharts(int quality, float texelsPerUnit, bool blockAligned - { - //nvDebug("Resize bitmap (%d, %d).\n", nextPowerOfTwo(w), nextPowerOfTwo(h)); - m_bitmap.resize(nextPowerOfTwo(U32(w)), nextPowerOfTwo(U32(h)), false); -- m_debug_bitmap.resize(nextPowerOfTwo(U32(w)), nextPowerOfTwo(U32(h))); -+ // -- GODOT start -- -+ //m_debug_bitmap.resize(nextPowerOfTwo(U32(w)), nextPowerOfTwo(U32(h))); -+ // -- GODOT end -- - } - - //nvDebug("Add chart at (%d, %d).\n", best_x, best_y); - - addChart(&chart_bitmap, w, h, best_x, best_y, best_r, /*debugOutput=*/NULL); - -+ // -- GODOT start -- - // IC: Output chart again to debug bitmap. -- if (chart->isVertexMapped()) { -+ /*if (chart->isVertexMapped()) { - addChart(&chart_bitmap, w, h, best_x, best_y, best_r, &m_debug_bitmap); - } - else { - addChart(chart, w, h, best_x, best_y, best_r, &m_debug_bitmap); -- } -+ }*/ -+ // -- GODOT end -- - - //float best_angle = 2 * PI * best_r; - -@@ -842,8 +854,10 @@ void AtlasPacker::packCharts(int quality, float texelsPerUnit, bool blockAligned - nvCheck(isAligned(m_width, 4)); - nvCheck(isAligned(m_height, 4)); - -- m_debug_bitmap.resize(m_width, m_height); -- m_debug_bitmap.setFormat(Image::Format_ARGB); -+ // -- GODOT start -- -+ //m_debug_bitmap.resize(m_width, m_height); -+ //m_debug_bitmap.setFormat(Image::Format_ARGB); -+ // -- GODOT end -- - - #if DEBUG_OUTPUT - //outputDebugBitmap("debug_packer_final.tga", m_bitmap, w, h); -diff --git a/thirdparty/thekla_atlas/nvmesh/param/AtlasPacker.h b/thirdparty/thekla_atlas/nvmesh/param/AtlasPacker.h -index 2d305f3..845dbfb 100644 ---- a/thirdparty/thekla_atlas/nvmesh/param/AtlasPacker.h -+++ b/thirdparty/thekla_atlas/nvmesh/param/AtlasPacker.h -@@ -48,7 +48,9 @@ namespace nv - - Atlas * m_atlas; - BitMap m_bitmap; -- Image m_debug_bitmap; -+ // -- GODOT start -- -+ //Image m_debug_bitmap; -+ // -- GODOT end -- - RadixSort m_radix; - - uint m_width; -diff --git a/thirdparty/thekla_atlas/thekla/thekla_atlas.cpp b/thirdparty/thekla_atlas/thekla/thekla_atlas.cpp -index d6f0acc..de1953d 100644 ---- a/thirdparty/thekla_atlas/thekla/thekla_atlas.cpp -+++ b/thirdparty/thekla_atlas/thekla/thekla_atlas.cpp -@@ -2,6 +2,9 @@ - #include "thekla_atlas.h" - - #include <cfloat> -+// -- GODOT start -- -+#include <stdio.h> -+// -- GODOT end -- - - #include "nvmesh/halfedge/Edge.h" - #include "nvmesh/halfedge/Mesh.h" -@@ -112,6 +115,8 @@ static Atlas_Output_Mesh * mesh_atlas_to_output(const HalfEdge::Mesh * mesh, con - output->index_count = face_count * 3; - output->index_array = new int[face_count * 3]; - -+ // -- GODOT start -- -+ int face_ofs = 0; - // Set face indices. - for (int f = 0; f < face_count; f++) { - uint c = charts->faceChartAt(f); -@@ -121,14 +126,26 @@ static Atlas_Output_Mesh * mesh_atlas_to_output(const HalfEdge::Mesh * mesh, con - const Chart * chart = charts->chartAt(c); - nvDebugCheck(chart->faceAt(i) == f); - -+ if (i >= chart->chartMesh()->faceCount()) { -+ printf("WARNING: Faces may be missing in the final vertex, which could not be packed\n"); -+ continue; -+ } -+ - const HalfEdge::Face * face = chart->chartMesh()->faceAt(i); - const HalfEdge::Edge * edge = face->edge; - -- output->index_array[3*f+0] = vertexOffset + edge->vertex->id; -- output->index_array[3*f+1] = vertexOffset + edge->next->vertex->id; -- output->index_array[3*f+2] = vertexOffset + edge->next->next->vertex->id; -+ //output->index_array[3*f+0] = vertexOffset + edge->vertex->id; -+ //output->index_array[3*f+1] = vertexOffset + edge->next->vertex->id; -+ //output->index_array[3*f+2] = vertexOffset + edge->next->next->vertex->id; -+ output->index_array[3 * face_ofs + 0] = vertexOffset + edge->vertex->id; -+ output->index_array[3 * face_ofs + 1] = vertexOffset + edge->next->vertex->id; -+ output->index_array[3 * face_ofs + 2] = vertexOffset + edge->next->next->vertex->id; -+ face_ofs++; - } - -+ output->index_count = face_ofs * 3; -+ // -- GODOT end -- -+ - *error = Atlas_Error_Success; - output->atlas_width = w; - output->atlas_height = h; |