Jump to content

[SOLVED] WidgetSprite крашится при попытки вызова getImage()


photo

Recommended Posts

Posted

Здравствуйте, у меня при попытке обратиться к методу getImage(), класса WidgetSprite, происходит краш.

auto widgetSprite = WidgetSprite::create(m_gui);
auto img = widgetSprite->getImage();

Версия 2.16.1.0.

Posted

Добрый день!

Дело в том, что для WidgetSprite не задано изображение, сначала необходимо выполнить setImage() и только после этого обращаться к нему через getImage() как показано в примере ниже:

int AppWorldLogic::init()
{
	using namespace Unigine;
	ImagePtr sprite_image = Image::create();
	// Создается изображение залитое белым цветом
	sprite_image->create2D(250, 250, Image::FORMAT_RGBA8);
	for (int i = 0; i < sprite_image->getWidth(); ++i)
	{
		for (int j = 0; j < sprite_image->getHeight(); ++j)
		{
			sprite_image->set2D(i, j, Image::Pixel(255, 255, 255, 255));
		}
	}
	// Изображение установлено в WidgetSprite
	WidgetSpritePtr sprite = WidgetSprite::create();
	sprite->setImage(sprite_image);

	// Так как была выделена память, теперь изображение можно вызывать из WidgetSprite
	ImagePtr image;
	image = sprite->getImage();

	// Проверка изображения
	image->save("image_check.png");
	return 1;
}

Спасибо!

Posted

А почему нельзя получить nullptr если изображение не задоно,  было бы удобно использовать для проверки, задано изображение или нет ?

Posted

Добрый день!

1 hour ago, Marsik said:

А почему нельзя получить nullptr если изображение не задоно,  было бы удобно использовать для проверки, задано изображение или нет ?

Это поведение было ошибкой и оно уже исправлено в актуальном релизе. На SDK 2.16 для проверки вы можете использовать следующий способ:

	TexturePtr t = sprite->getRender();
	if (!t)
		return 1;

Спасибо!

Posted
36 minutes ago, Marsik said:

Спасибо!

Пожалуйста!

  • bmyagkov changed the title to [SOLVED] WidgetSprite крашится при попытки вызова getImage()
×
×
  • Create New...