Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: Torvald от Апрель 05, 2012, 21:44



Название: [решено] bindTexture и созданный вручную QImage
Отправлено: Torvald от Апрель 05, 2012, 21:44
Создаю QImage:
Код:
QImage tex(16, 16, QImage::Format_ARGB32);
Заполняю чем-нибудь:
Код:
QPainter p;
p.begin(&tex);
p.fillRect(0, 0, 16, 16, QBrush(QColor::fromRgbF(0,0,0,0)));
p.end();
Пытаюсь создать текстуру:
Код:
bindTexture(tex);
На этом месте (bindTexture) программа виснет. Никакой ошибки, ничего в консоль не пишет, просто виснет, как будто бы попал в вечный цикл (процессор нагружен полностью).
Подскажите, в чем проблема?
Если грузить текстуру из файла, то все работает нормально. Я думаю вместе с содержимом файла подгружается его мета-информация, которая как то используется внутри bindTexture, но которую я не могу задать (да и не знаю что задавать) когда сам создаю текстуру во время работы приложения.


Название: Re: bindTexture и созданный вручную QImage
Отправлено: Torvald от Апрель 06, 2012, 08:10
Решил проблему.
Оказалось что вышеописанная функция выполнялась в конструкторе QGLWidget и видимо что то не успевало инициализироваться и все висло. Этого косяка не возникало когда я грузил с диска наверное потому, что пока файл грузился с диска конструктор успевал инициализировать все что ему нужно :)
И ведь я знал что так делать нельзя и все равно попался :( Ну да ладно, может кто еще столкнется с этим, тогда этот пост надеюсь поможет :D