]> git.sesse.net Git - casparcg/commitdiff
[psd] #561 Added support for centered and right justified text.
authorHelge Norberg <helge.norberg@svt.se>
Thu, 9 Mar 2017 17:18:54 +0000 (18:18 +0100)
committerHelge Norberg <helge.norberg@svt.se>
Thu, 9 Mar 2017 17:18:54 +0000 (18:18 +0100)
CHANGELOG
modules/psd/psd_scene_producer.cpp

index 82782149cb0a146efdc0ab8b9db7c6754a6aef6d..f0e1de6b165bc1b28f34019dcd452f35da1a2a9c 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -89,6 +89,8 @@ Producers
       template.\r
   o Color producer:\r
     + Now has support for gradients.\r
+  o PSD producer:\r
+    + Added support for centered and right justified text.\r
 \r
 Mixer\r
 -----\r
index 34492161e4781a22038b97432343b6cd64caba82..cf16622681647b8dfa1e6dd620f3a7b0612bb2e3 100644 (file)
@@ -461,6 +461,19 @@ spl::shared_ptr<core::frame_producer> create_psd_scene_producer(const core::fram
                                //adjustment_y = metrics.bearingY;
                                layer_producer = text_producer;
                                scene_layer = &current.scene()->create_layer(spl::make_shared_ptr(layer_producer), static_cast<int>(psd_layer->text_pos().x) + adjustment_x, static_cast<int>(psd_layer->text_pos().y) + adjustment_y, layer_name);
+
+                               int justification = psd_layer->text_data().get(L"EngineDict.ParagraphRun.RunArray..ParagraphSheet.Properties.Justification", 0);
+
+                               switch (justification)
+                               {
+                               case 1: // Right
+                                       scene_layer->anchor.x = text_producer.get()->pixel_constraints().width;
+                                       break;
+                               case 2: // Center
+                                       scene_layer->anchor.x = text_producer.get()->pixel_constraints().width / 2.0;
+                                       break;
+                               }
+
                                text_producers_by_layer_name.push_back(std::make_pair(layer_name, text_producer));
                        }
                        else