fix: no carregava correctament data/shapes/jailgames.png si s'executava desde fora del directori de l'executable
This commit is contained in:
@@ -1829,7 +1829,7 @@ void Engine::activateShapeInternal(ShapeType type) {
|
|||||||
active_shape_ = std::make_unique<AtomShape>();
|
active_shape_ = std::make_unique<AtomShape>();
|
||||||
break;
|
break;
|
||||||
case ShapeType::PNG_SHAPE:
|
case ShapeType::PNG_SHAPE:
|
||||||
active_shape_ = std::make_unique<PNGShape>("data/shapes/jailgames.png");
|
active_shape_ = std::make_unique<PNGShape>((getResourcesDirectory() + "/data/shapes/jailgames.png").c_str());
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
active_shape_ = std::make_unique<SphereShape>(); // Fallback
|
active_shape_ = std::make_unique<SphereShape>(); // Fallback
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
PNGShape::PNGShape(const char* png_path) {
|
PNGShape::PNGShape(const char* png_path) {
|
||||||
// Cargar PNG desde path
|
// Cargar PNG desde path
|
||||||
if (!loadPNG(png_path)) {
|
if (!loadPNG(png_path)) {
|
||||||
|
std::cerr << "[PNGShape] Usando fallback 10x10" << std::endl;
|
||||||
// Fallback: generar un cuadrado simple si falla la carga
|
// Fallback: generar un cuadrado simple si falla la carga
|
||||||
image_width_ = 10;
|
image_width_ = 10;
|
||||||
image_height_ = 10;
|
image_height_ = 10;
|
||||||
@@ -20,10 +21,12 @@ PNGShape::PNGShape(const char* png_path) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool PNGShape::loadPNG(const char* path) {
|
bool PNGShape::loadPNG(const char* path) {
|
||||||
|
std::cout << "[PNGShape] Intentando cargar: " << path << std::endl;
|
||||||
int width, height, channels;
|
int width, height, channels;
|
||||||
unsigned char* data = stbi_load(path, &width, &height, &channels, 1); // Forzar 1 canal (grayscale)
|
unsigned char* data = stbi_load(path, &width, &height, &channels, 1); // Forzar 1 canal (grayscale)
|
||||||
|
|
||||||
if (!data) {
|
if (!data) {
|
||||||
|
std::cerr << "[PNGShape] ERROR al cargar PNG: " << stbi_failure_reason() << std::endl;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -269,7 +269,7 @@ void ShapeManager::activateShapeInternal(ShapeType type) {
|
|||||||
active_shape_ = std::make_unique<AtomShape>();
|
active_shape_ = std::make_unique<AtomShape>();
|
||||||
break;
|
break;
|
||||||
case ShapeType::PNG_SHAPE:
|
case ShapeType::PNG_SHAPE:
|
||||||
active_shape_ = std::make_unique<PNGShape>("data/shapes/jailgames.png");
|
active_shape_ = std::make_unique<PNGShape>((getResourcesDirectory() + "/data/shapes/jailgames.png").c_str());
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
active_shape_ = std::make_unique<SphereShape>(); // Fallback
|
active_shape_ = std::make_unique<SphereShape>(); // Fallback
|
||||||
|
|||||||
Reference in New Issue
Block a user