Вниз  C / C++
- 31.12.2015 / 09:10
StarTek
  Пользователь

StarTek 
Сейчас: Offline
В параллельном программировании одна оплошность есть. Если ты загружаешь текстуру в opengl (а так же 2d в sfml) - ты должен загружать ее в том потоке, в котором создал окно. Почему? Opengl хранит некоторые переменные в стеке, а стек для потоков отдельный создается. Все что я могу посоветовать - отправляй какой-нибудь сигнал потоку opengl, чтобы он рисовал.
- 31.12.2015 / 10:02
DominaN
  Пользователь

DominaN 
Сейчас: Offline
Как вариант загружать текстуры в одном потоке, а инициализировать (glTexImage2D) в том, где было создано окно из шареного массива или коллекции (я бы наваял простенькую коллекцию-обертку для struct Texture2D)

Изменено DominaN (31.12 / 10:05) (всего 1 раз)
- 1.01.2016 / 11:44
Khorrth
  Пользователь

Khorrth 
Сейчас: Offline
Я создаю окошко сразу. Это вроде как называется "глобальная переменная" или я ошибся...(
Код примерно такой:
  1. RenderWindow MainWindow(...);
  2. ...
  3. void Update(RenderWindow *Window) {
  4. ... // Catching events;
  5. }
  6. void Initialize() {
  7. ... // Loading textures...
  8. }
  9. int main() {
  10. thread Feedback(Update, &MainWindow);
  11. Initialize();
  12. Feedback.join();
  13. }
Отдельно Feedback и отдельно Initialize работают.

Изменено Khorrth (1.01 / 11:44) (всего 1 раз)
- 1.01.2016 / 15:06
DominaN
  Пользователь

DominaN 
Сейчас: Offline
  1. thread Feedback(Update, &MainWindow);
  2. Initialize();

местами попробуй поменять
- 1.01.2016 / 20:12
Khorrth
  Пользователь

Khorrth 
Сейчас: Offline
Мне важно, чтобы в было именно в таком порядке. А то выходит, что при загрузке ресурсов события не проверяются и окошко не отзывчиво(
- 1.01.2016 / 20:32
DominaN
  Пользователь

DominaN 
Сейчас: Offline
Khorrth, так и должно быть
- 1.01.2016 / 21:04
Khorrth
  Пользователь

Khorrth 
Сейчас: Offline
Ни в коем случае!
- 1.01.2016 / 22:16
ДубоХирург
  Пользователь

ДубоХирург 
Сейчас: Offline
Нет, я всё-таки не разобрался. Есть нормальный способ поставить GTK+ 3-ей версии без костылей типа MSYS?
- 1.01.2016 / 22:19
Oak
  Пользователь

Oak 
Сейчас: Offline
ДубоХирург, да, на Linux
__________________
 Эль Презеденте
- 1.01.2016 / 22:28
ДубоХирург
  Пользователь

ДубоХирург 
Сейчас: Offline
Oak, ну да, я так и понял, буду пилить под виртуалкой

На всякий случай: а под винду есть нормальный способ поставить?
Наверх  Всего сообщений: 2777
Фильтровать сообщения
Поиск по теме
Файлы топика (111)