From 0c3d361cebb9001c404b8da83be235e44d3406c6 Mon Sep 17 00:00:00 2001 From: Jan Haller Date: Thu, 1 May 2014 00:35:55 +0200 Subject: [PATCH] Fixed problem with wrongly initialized sf::RenderStates::Default This static variable depended on the global variable sf::BlendAlpha, which may not be constructed yet. --- src/SFML/Graphics/RenderStates.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/SFML/Graphics/RenderStates.cpp b/src/SFML/Graphics/RenderStates.cpp index 2ec3fb895..093d902d6 100644 --- a/src/SFML/Graphics/RenderStates.cpp +++ b/src/SFML/Graphics/RenderStates.cpp @@ -32,7 +32,11 @@ namespace sf { //////////////////////////////////////////////////////////// -const RenderStates RenderStates::Default; +// We cannot use the default constructor here, because it accesses BlendAlpha, which is also global (and dynamically +// initialized). Initialization order of global objects in different translation units is not defined. +const RenderStates RenderStates::Default(BlendMode( + BlendMode::SrcAlpha, BlendMode::OneMinusSrcAlpha, BlendMode::Add, + BlendMode::One, BlendMode::OneMinusSrcAlpha, BlendMode::Add)); ////////////////////////////////////////////////////////////