DarkRadiant: master 95e03eea

Author Committer Branch Timestamp Parent
greebo greebo master 30.12.2017 08:10 master f3282b62
Changeset Implement 298292ad in a different way. Turns out it's a problematic case to have a sigc::signal with thousands of slots in it, since for each disconnect() call the signal implementation checks *all* remaining slots for emptiness, which takes a *lot* of time when the map is freed. Introduce a Shader::Observer interface and store those in a std::set for fast lookup of existing observers.
mod - include/irender.h Diff File
mod - libs/SurfaceShader.h Diff File
mod - radiant/render/backend/OpenGLShader.cpp Diff File
mod - radiant/render/backend/OpenGLShader.h Diff File