Ответ в теме: Потоки, отрисовка в потоках и как вообще их правильно создавать?

SFML и C++ Уроки \ Разработка игр Форумы SFML System, Window и другие вопросы Потоки, отрисовка в потоках и как вообще их правильно создавать? Ответ в теме: Потоки, отрисовка в потоках и как вообще их правильно создавать?

#4032
+1

Croessmah
Участник
Сообщений:2

Зарегистрирован:
09.07.2016

Репутация:2

 

Фрапс показывает иногда 300 – 500 фпс. Плюс может кратковременно просесть. Если ту же функцию впихнуть вне потока – 1200 стабильно.

А что Вы хотели? Многопоточность требует расходов,

так что если использовать её неправильно,

то можно наоборот сделать всё тормознутей, чем с одним потоком.

Вот только где? Перед чем ? Куда не тыкал все не работает.

Для начала: http://www.sfml-dev.org/tutorials/2.0/graphics-draw.php

Здесь ясно сказано:

SFML supports multi-threaded drawing, and you don’t even have to do anything to make it work. The only thing to remember is to deactivate a window before using it in another thread. That’s because a window (more precisely its OpenGL context) cannot be active in more than one thread at the same time.

так что пусть отрисовкой занимается один поток,

иначе у Вас будут проблемы с отрисовкой/синхронизацией.

Там же есть и пример с использованием потоков, в т.ч. вызов sf::Window::setActive

1. Паттерн пул объектов. полазил, почитал, там темный лес и я решил ну его) И 2. Потоки. Это понравилось больше, и в общем я использую для них библиотеку thread из VS 2015.

В общем случае, пул потоков будет эффективнее и лучше.

Плюс учтите, что нельзя в SFML постоянно создавать новые потоки,

которые будут работать с ресурсами, это приведет к “мнимой” утечке ресурсов.