31.12.2015 / 09:10 | |
StarTek Пользователь Сейчас: Offline
Имя: StarTek Откуда: Навои Регистрация: 14.06.2014
| В параллельном программировании одна оплошность есть. Если ты загружаешь текстуру в opengl (а так же 2d в sfml) - ты должен загружать ее в том потоке, в котором создал окно. Почему? Opengl хранит некоторые переменные в стеке, а стек для потоков отдельный создается. Все что я могу посоветовать - отправляй какой-нибудь сигнал потоку opengl, чтобы он рисовал.
|
31.12.2015 / 10:02 | |
DominaN Пользователь Сейчас: Offline
Имя: Кирилл Откуда: Смоленск Регистрация: 28.09.2011
| Как вариант загружать текстуры в одном потоке, а инициализировать (glTexImage2D) в том, где было создано окно из шареного массива или коллекции (я бы наваял простенькую коллекцию-обертку для struct Texture2D)
Изменено DominaN (31.12 / 10:05) (всего 1 раз) |
1.01.2016 / 11:44 | |
Khorrth Пользователь Сейчас: Offline
Регистрация: 03.12.2015
| Я создаю окошко сразу. Это вроде как называется "глобальная переменная" или я ошибся...( Код примерно такой: RenderWindow MainWindow(...);
...
void Update(RenderWindow *Window) {
... // Catching events;
}
void Initialize() {
... // Loading textures...
}
int main() {
thread Feedback(Update, &MainWindow);
Initialize();
Feedback.join();
}
Отдельно Feedback и отдельно Initialize работают. Изменено Khorrth (1.01 / 11:44) (всего 1 раз) |
1.01.2016 / 15:06 | |
DominaN Пользователь Сейчас: Offline
Имя: Кирилл Откуда: Смоленск Регистрация: 28.09.2011
| thread Feedback(Update, &MainWindow);
Initialize();
местами попробуй поменять |
1.01.2016 / 20:12 | |
Khorrth Пользователь Сейчас: Offline
Регистрация: 03.12.2015
| Мне важно, чтобы в было именно в таком порядке. А то выходит, что при загрузке ресурсов события не проверяются и окошко не отзывчиво(
|
1.01.2016 / 20:32 | |
DominaN Пользователь Сейчас: Offline
Имя: Кирилл Откуда: Смоленск Регистрация: 28.09.2011
| Khorrth, так и должно быть
|
1.01.2016 / 21:04 | |
Khorrth Пользователь Сейчас: Offline
Регистрация: 03.12.2015
| Ни в коем случае!
|
1.01.2016 / 22:16 | |
ДубоХирург Пользователь Сейчас: Offline
Имя: Сергей Откуда: Где-то возле Москвы Регистрация: 01.07.2012
| Нет, я всё-таки не разобрался. Есть нормальный способ поставить GTK+ 3-ей версии без костылей типа MSYS?
|
1.01.2016 / 22:19 | |
Oak Пользователь Сейчас: Offline
Имя: Коля Откуда: Москва Регистрация: 02.06.2010
| ДубоХирург, да, на Linux
__________________
Эль Презеденте |
1.01.2016 / 22:28 | |
ДубоХирург Пользователь Сейчас: Offline
Имя: Сергей Откуда: Где-то возле Москвы Регистрация: 01.07.2012
| Oak, ну да, я так и понял, буду пилить под виртуалкой
На всякий случай: а под винду есть нормальный способ поставить?
|