mirror of
https://github.com/Ellpeck/MLEM.git
synced 2024-11-22 04:53:29 +01:00
Improved RuntimeTexturePacker speed when using many distinct texture sizes
This commit is contained in:
parent
d450ec3082
commit
ca9c8e6cfd
2 changed files with 10 additions and 1 deletions
|
@ -12,6 +12,10 @@ Jump to version:
|
||||||
|
|
||||||
## 6.2.0 (In Development)
|
## 6.2.0 (In Development)
|
||||||
|
|
||||||
|
### MLEM.Data
|
||||||
|
Improvements
|
||||||
|
- Improved RuntimeTexturePacker speed when using many distinct texture sizes
|
||||||
|
|
||||||
## 6.1.0
|
## 6.1.0
|
||||||
|
|
||||||
### MLEM
|
### MLEM
|
||||||
|
|
|
@ -238,7 +238,12 @@ namespace MLEM.Data {
|
||||||
size.X += request.Padding * 2;
|
size.X += request.Padding * 2;
|
||||||
size.Y += request.Padding * 2;
|
size.Y += request.Padding * 2;
|
||||||
|
|
||||||
var pos = this.firstPossiblePosForSize.TryGetValue(size, out var first) ? first : Point.Zero;
|
// initialize our search position from the cache, or use default (zero)
|
||||||
|
if (!this.firstPossiblePosForSize.TryGetValue(size, out var pos)) {
|
||||||
|
// if our size hasn't been recordet yet, check if a size has been recorded that is smaller in both axes, before which our size definitely won't fit
|
||||||
|
pos = this.firstPossiblePosForSize.OrderByDescending(s => s.Key.X * s.Key.Y).FirstOrDefault(s => s.Key.X <= size.X && s.Key.Y <= size.Y).Value;
|
||||||
|
}
|
||||||
|
|
||||||
var lowestY = int.MaxValue;
|
var lowestY = int.MaxValue;
|
||||||
while (true) {
|
while (true) {
|
||||||
var intersected = false;
|
var intersected = false;
|
||||||
|
|
Loading…
Reference in a new issue