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 |