Commit graph

283 commits

Author SHA1 Message Date
Dane Springmeyer
52e9531179 always return a value from evaluate_displacement 2014-10-14 21:35:20 -07:00
Jiri Drbalek
1252369292 add horizontal-alignment="adjust" with immutability of style objects in
mind
2014-10-13 12:16:48 +00:00
Dane Springmeyer
885a98f9c1 improve handling of format properties - refs #2516
- changes evaluated_format_properties_ptr to unique_ptr
 - refactors group symbolizer helper to keep scope by
   having each "thunk" own its helper
 - glyph_info can now be noncopyable
 - format node children now need an owner for their
   evaluated_format_ptr so the enclosing parent layout
   now allocates and holds pointers in a deque
 - plus other noncopyable/move constructor fixes
2014-10-12 21:41:59 -07:00
Dane Springmeyer
a9f58c70b4 shuffle complexity into layout constructor
- should reduce mistakes in refactoring
  - gives top level ownership of evaluated_format_properties_ptr to a layout node (#2516)
  - not sure ^^ if this actually keeps it in scope enough for rendering?
  - moves data transformation functions off of text_symbolizer_properties
2014-10-12 16:07:26 -07:00
Dane Springmeyer
f3eba54078 noncopyable glyph_info - refs #2516 2014-10-12 14:24:57 -07:00
Dane Springmeyer
2000c1713d in place construction of glyph_positions 2014-10-12 13:54:07 -07:00
Dane Springmeyer
4e7feaf747 move glyph_positions to new cpp 2014-10-12 13:46:35 -07:00
Dane Springmeyer
39ff0945ef in place construction of pixel_positions 2014-10-12 13:38:18 -07:00
Dane Springmeyer
e4c895d4c1 zero copy usage of text_line 2014-10-12 13:23:03 -07:00
Dane Springmeyer
a648538bcd add more code comments to placement_finder to help explain layouts 2014-10-12 12:18:59 -07:00
Dane Springmeyer
a8c8ea9ac4 reserve space for glyph_pos in renderer prepare_glyphs 2014-10-11 22:59:56 -07:00
Dane Springmeyer
3d142c2712 move evaluate_text_properties to standalone function - refs #2516 2014-10-11 22:48:00 -07:00
Dane Springmeyer
e6a66aaaba finish work to pass font_feature_settings by value - refs #2516 2014-10-11 22:39:40 -07:00
Dane Springmeyer
a61364d263 revert halign support - refs #2426 2014-10-11 20:03:56 -07:00
Dane Springmeyer
477d6cc7ee zero-copy text_item insertion 2014-10-11 19:12:15 -07:00
Dane Springmeyer
eabdf46118 drop unwise glyph_info caching - reverts 99a46f6910 - re-opens #2334 2014-10-11 17:32:41 -07:00
Dane Springmeyer
ba285aa9fa remove unused (after 8bc7a56cda) font_face::char_height_ 2014-10-11 15:55:15 -07:00
Dane Springmeyer
e1eb9fa5b1 reduce pointer usage in text renderer - refs #2516 2014-10-10 18:01:24 -07:00
Dane Springmeyer
8bc7a56cda use real max glyph height
- avoids breakage on fonts lacking an `X` glyph (#2506)
      - avoids needing to create and mutate a temporary glyph (#2516)
      - lots of minor visual changes - mostly improvements notably more correct collision boxes for lines with tall glyphs
2014-10-10 15:18:11 -07:00
artemp
74e872c48b avoid storing evaluated text properties in text_symbolizer_properties (all style related strucures must be read-only)
make process(..) method const
2014-10-10 12:38:06 +01:00
Dane Springmeyer
c6ed108a72 start marking as much of the text structures as const as possible - refs #2516 2014-10-09 23:00:39 -07:00
Dane Springmeyer
2d88f736fe remove uneeded access to format tree 2014-10-09 20:51:43 -07:00
Dane Springmeyer
c26c60e48e remove set_old_style_expression 2014-10-09 20:51:43 -07:00
Dane Springmeyer
364af033a2 stash work on trying to convert font_feature_settings to be passed by value 2014-10-09 19:23:11 -07:00
Dane Springmeyer
536b23bfde fix uneeded pointer indirection with glyph_info/glyph_position 2014-10-09 18:38:29 -07:00
Dane Springmeyer
aed5243302 avoid creating evaluated_format_properties on the stack 2014-10-09 18:24:39 -07:00
Dane Springmeyer
1fead3396b cleanup unused clipped_ member of base_symbolizer_helper after 9835057b0f 2014-10-09 11:40:30 -07:00
Dane Springmeyer
1f29ce7d3d back to using shared_ptr for holding text_placement_info 2014-10-08 16:28:07 -07:00
Dane Springmeyer
a24b29624a remove unused include 2014-10-08 16:27:38 -07:00
Dane Springmeyer
65438f17aa further tests of path expressions for shields 2014-10-08 08:00:59 -07:00
Dane Springmeyer
7ce776a79c fix handling of shield-text-opacity/text-opacity - closes #2507 2014-10-06 21:52:29 -07:00
Dane Springmeyer
737c299341 fix back compat for text-placement-type:dummy - closes #2502 2014-10-06 11:37:39 -07:00
artemp
e8b3083a6a remove std::function usage in text_properties 2014-10-03 16:00:05 +01:00
Dane Springmeyer
f81fc53cbc fix compile on windows of font_feature_settings.cpp - refs #2489 2014-10-02 16:31:16 -07:00
Jiri Drbalek
5861980f91 add wrap-character support to Layout node of TextSymbolizer 2014-10-02 18:34:37 +00:00
artemp
2bab0512ff refactor vertex_cache to use unique_ptr's and less copying 2014-10-02 16:36:50 +01:00
artemp
a04276d90a use c++11 features over boost when available 2014-10-02 15:09:17 +01:00
Jiri Drbalek
667b6e3adc fix compile on ubuntu precise 2014-10-02 12:18:39 +00:00
Dane Springmeyer
d29add9db3 use face_manager_freetype typedef everywhere 2014-10-01 18:54:11 -07:00
Dane Springmeyer
767c51cea2 add missing stdexcept include 2014-10-01 18:51:17 -07:00
Dane Springmeyer
e6fe3cd8a6 new font_library raii class 2014-10-01 18:19:26 -07:00
artemp
745d45bb68 remove std::function from placement loop
(std::function incurs overhead of polymorphic dispatch internally and relatively expensive - avoid using in performance critic code)
2014-10-01 11:26:14 +01:00
Dane Springmeyer
822d3a5bce break apart symbolizer.hpp + fwd declars + svg output grammar impl 2014-09-30 12:50:08 -07:00
Dane Springmeyer
aaec8058fa fix property name in error message 2014-09-29 16:32:46 -07:00
Dane Springmeyer
aa239a65ed remove unneeded include 2014-09-24 12:23:54 -07:00
Jiri Drbalek
31607cb3f4 add text attribute horizontal-alignment="adjust" 2014-09-23 08:49:27 +00:00
Dane Springmeyer
d59529d22f map ExpressionFormat -> Format for 2.3.x back compat - refs #2429 2014-09-22 23:34:36 -07:00
Dane Springmeyer
69dd74e079 rename wrap-char -> wrap-character to match Mapnik 2.3.x - refs #2333 2014-09-19 16:53:03 -07:00
Dane Springmeyer
0c901f790e respect halo-transform in grid_renderer 2014-09-19 15:37:13 -07:00
Dane Springmeyer
9e78712dc4 Merge pull request #2377 from mapycz/3.x-fix-text-on-line-glyph-distance
text rendering with line placement on corners in 3.x
2014-09-19 15:12:32 -07:00
Dane Springmeyer
98adcc2d58 fix compile with clang++ after #2416 2014-09-19 14:51:27 -07:00
Jiri Drbalek
57be44d815 text ligatures off when character-spacing > 0 2014-09-17 19:22:14 +00:00
Jiri Drbalek
2dcfa9e4b7 add font-feature-settings 2014-09-17 19:22:07 +00:00
artemp
e545b68699 revert accidental removal of 'wrap-before' expression 2014-09-11 10:14:36 +01:00
artemp
246336d2b1 Merge branch 'min-dist-compatibility' of git://github.com/MapQuest/mapnik into MapQuest-min-dist-compatibility 2014-09-10 16:20:36 +01:00
artemp
f8dc7b023a text - add ``repeat-wrap-char`` parameter default:false (#2333) 2014-09-10 16:08:41 +01:00
Jordan Hollinger
9b5a9dfe3e Change text-margin option to margin. 2014-09-10 07:45:41 -04:00
artemp
b441586acf text-symbolizer: revive 'wrap-char' property which uses special (naive) line_breaker - ref #2333 2014-09-09 17:30:01 +01:00
artemp
635c3728f2 wrap BreakIterator into std::unique_ptr to avoid leaking memory
(per ICU docs: "The caller owns the returned object and is responsible for deleting it.")
2014-09-08 12:01:22 +01:00
Dane Springmeyer
479b9e13d0 Merge pull request #2383 from MapQuest/min-dist-compatibility
3.x -> 2.3.x compatibility for minimum-distance
2014-09-06 22:50:13 -07:00
Jiri Drbalek
b7e7e29781 fix text rendering with line placement on corners 2014-09-05 10:46:46 +00:00
Jiri Drbalek
1af6f5db10 format 2014-09-05 10:46:46 +00:00
Dane Springmeyer
7d5d02e031 Merge branch 'master' of github.com:mapnik/mapnik into 3x-msvs 2014-09-04 09:22:53 -07:00
Jiri Drbalek
67d8f41a1b fix angle calculation
Conflicts:
	src/text/vertex_cache.cpp
2014-09-03 11:53:23 -07:00
Dane Springmeyer
603ea3811f Merge branch 'master' of github.com:mapnik/mapnik into 3x-msvs 2014-08-30 20:05:33 -07:00
Dane Springmeyer
a8017ddae6 fix std:: prefixing for cmath 2014-08-30 15:13:34 -07:00
Dane Springmeyer
3f6a5ae246 re-enable harfbuzz shaper 2014-08-29 00:05:34 -07:00
Dane Springmeyer
3c66054524 Merge branch 'master' of github.com:mapnik/mapnik into 3x-msvs 2014-08-28 17:23:59 -07:00
artemp
ecfaec1027 rename ctrans.hpp to view_transform.hpp 2014-08-28 10:29:04 +01:00
artemp
de22d5900c rename CoordTransform to view_transform to better reflect its purpose and be consistent 2014-08-28 10:17:15 +01:00
Dane Springmeyer
ee1c2aec47 use icu shaper to avoid needing to build harfbuzz right now - refs #2396 2014-08-26 19:24:06 -07:00
Dane Springmeyer
5789777199 fix issue 7 from #2396 2014-08-26 19:23:24 -07:00
Jordan Hollinger
688dfcabc9 Disallow use of minimum-distance with either repeat-distance or text-margin. 2014-08-22 08:52:45 -04:00
Jordan Hollinger
a28d3dd99c Handle text-margin, repeat-distance, and backward compatible minimum-distance in placement_finder. Update visual tests. 2014-08-21 20:49:00 -04:00
Jordan Hollinger
c8c792277d Add attribute text-margin in place of minimum-distance. 2014-08-20 19:43:36 -04:00
artemp
801848ac97 Merge branch 'jh-min-repeat-distance' of git://github.com/MapQuest/mapnik into MapQuest-jh-min-repeat-distance
Conflicts:
	include/mapnik/renderer_common/process_group_symbolizer.hpp
	src/text/text_properties.cpp
2014-08-18 14:05:14 +01:00
artemp
95cea92a4a convert all boost::variant to util::variant
apart from topojson (TODO)
2014-08-12 13:40:45 +01:00
Jordan Hollinger
726274c2c9 Merge branch 'master' of github.com:mapnik/mapnik into jh-min-repeat-distance 2014-08-11 09:48:04 -04:00
artemp
9bfb41a39f convert symbolizer properties to use util::variant 2014-08-11 13:24:53 +01:00
Dane Springmeyer
8f183ac63a Merge pull request #2345 from mapnik/emplace
use emplace/emplace_back over insert/push_back - refs #2336
2014-08-08 11:30:14 -07:00
artemp
0490b7887c text_symbolizer - ``geometry-transform`` support 2014-08-06 14:54:38 +01:00
artemp
9835057b0f Use vertex_converters in text placement 2014-08-06 13:10:24 +01:00
Dane Springmeyer
ce8aee1994 be explicit about copy needed to safely pass glyph_info into text_line - closes #2337 2014-08-05 17:03:30 -07:00
Dane Springmeyer
d27b45553a use emplace/emplace_back over insert/push_back - refs #2336 2014-08-05 15:19:37 -07:00
Dane Springmeyer
7a013e8151 switch glyph_info cache to an unordered_map (but no perf diff on osx) 2014-08-05 14:31:29 -07:00
Dane Springmeyer
2c9e089317 move harfbuzz_shaper inc + other iwyu fixups 2014-08-05 11:10:49 -07:00
Dane Springmeyer
99a46f6910 re-enable glyph_info caching - refs #2326, #2265, #2334 2014-08-04 19:50:16 -07:00
Dane Springmeyer
75248e3376 remove obsolete wrap-character option for text symbolizer - closes #2333 2014-08-04 12:52:46 -07:00
jhollinger2
0aad860a75 Add repeat-distance to text symbolizer properties.
Update collision detector to handle minimum-distance and repeat-distance seperately.
Update placement_finder to use repeat-distance.
Update group symbolizer to handle minimum-distance and repeat-distance.
2014-08-03 16:10:21 -04:00
Dane Springmeyer
b7ecd00c31 complete support for face-name/fontset-name in <Format> node - closes #1900 2014-07-30 14:16:32 -07:00
Dane Springmeyer
da457eba81 Merge branch 'master' of github.com:mapnik/mapnik 2014-07-30 08:42:03 -07:00
artemp
a6272fc16d fix symbolizer helper 2014-07-30 14:09:15 +01:00
Dane Springmeyer
8646ccc83f start passing fontsets down to format and layout - refs #1900 2014-07-29 18:29:20 -07:00
Dane Springmeyer
1fa31d5d20 remove force-odd-labels - refs #2120 2014-07-29 14:37:29 -07:00
artemp
08c3dd1f88 convert remaining text properties to expressions 2014-07-29 14:43:26 +01:00
artemp
97f87b1946 aggregate text symbolizer properties loading 2014-07-29 10:09:54 +01:00
artemp
9d91f3ca82 c++11 : cleanup crufty code 2014-07-29 10:09:21 +01:00
Dane Springmeyer
cdb075f75f make clipping off by default - closes #2146 2014-07-28 20:31:10 -07:00
Dane Springmeyer
8feedd94cd rename mapnik::boolean to mapnik::boolean_type - closes #1899 2014-07-28 19:46:49 -07:00
artemp
f338028802 fix init order 2014-07-28 17:50:44 +01:00
artemp
0cf6e47006 c++ char_properties -> evaluated_format_properties 2014-07-28 17:22:32 +01:00
artemp
72fd012221 c++ style 2014-07-28 15:16:59 +01:00
artemp
fb3d9cd7b6 convert horizontal/vertical/justify_alignment properties to expressions 2014-07-28 15:09:29 +01:00
artemp
c93b7fd632 cleanup 2014-07-28 12:20:14 +01:00
artemp
51cf60125e rename source files to reflect class name e.g layout -> text_layout 2014-07-28 12:10:34 +01:00
artemp
70059cc346 remove redundant ExpressionFormat node 2014-07-25 14:26:13 +01:00
artemp
37245fdde1 text properties : add framework to handle expressions in enumerations
+ make text-transform an expression
2014-07-25 14:19:41 +01:00
artemp
ff96af0480 tex/formatting/format fix add_expressions 2014-07-24 14:51:34 +01:00
artemp
b53572ab9c update text/formatting/format 2014-07-24 14:45:02 +01:00
artemp
a65239bf4b fix format_node::to_xml - attach format_properties to new_node 2014-07-24 12:13:34 +01:00
artemp
9c39d4ebd2 collect expressions from format_properties 2014-07-24 12:00:46 +01:00
artemp
1927a00ee0 text-properties : make fill and halo-fill expressions 2014-07-24 11:37:16 +01:00
artemp
8502019310 more format_properties expessions 2014-07-23 18:09:18 +01:00
artemp
e67f046a0e start re-factoring char_property (TODO: change name!) 2014-07-23 16:19:14 +01:00
Dane Springmeyer
64e70fb374 iwyu 2014-07-22 22:40:39 -07:00
Dane Springmeyer
28a05c96ef iwyu + faster compile 2014-07-22 19:36:39 -07:00
artemp
498bba7cf8 c++ : pass arg by const ref 2014-07-22 16:09:10 +01:00
artemp
bfc6c61d62 c++ - pass by const ref etc. 2014-07-21 14:46:54 +01:00
artemp
eacde4fe43 remove dummy_shaper 2014-07-21 12:41:31 +01:00
artemp
3c2dd839e4 serialize color properties 2014-07-21 12:28:27 +01:00
artemp
a9062fe112 restore serialization in text_properties and text/formattin/layout 2014-07-21 11:43:59 +01:00
artemp
ee58762bd9 add property_serializer impl 2014-07-21 11:19:26 +01:00
artemp
93d40323c5 orientation -> symbolizer_base::value_type 2014-07-18 15:48:56 +01:00
artemp
594470ee17 expressions in text/formatting/layout (work-in-progress) 2014-07-18 11:18:54 +01:00
artemp
efe0cf57b4 move set_property_from_xml into separate header for re-use 2014-07-18 11:14:28 +01:00
artemp
dcb60d5842 make add_expressions pure virtual in base class 2014-07-17 17:26:54 +01:00
artemp
18d1d0b8d5 fix path_move_dx 2014-07-17 17:26:20 +01:00
artemp
620aa62ab5 remove unused member variable 2014-07-17 17:01:03 +01:00
artemp
21986e5d4a refactor pass 2014-07-17 16:55:22 +01:00
artemp
79c1ac96b4 avoid captures in displacement_evaluator 2014-07-17 16:55:22 +01:00
artemp
8a01cce2f7 move displacement_evaluator_ initialisation
c++ style fixes
2014-07-16 16:34:42 +01:00
artemp
4166fcdd5d store displacement logic in std::function and delay calc until dx/dy are evaluated (layout) 2014-07-16 14:24:00 +01:00
artemp
562058aff6 remove printing to cerr 2014-07-15 16:35:11 +01:00
artemp
6c03a617a5 text displacement expr : more re-factoring and various fixes 2014-07-15 16:31:43 +01:00
artemp
1f17620e18 make methods pure virtual where appropriate
pass std::string by const ref (!)
c++ style
2014-07-15 11:15:26 +01:00
artemp
72bae0d6b8 text properties : displacement expr 2014-07-15 10:15:56 +01:00
artemp
f8fc104e7d more meaningful names 2014-07-14 16:55:57 +01:00
artemp
a66c1ddb06 convert to expressions: text-ratio, wrap-before, rotate-displacement 2014-07-14 16:51:11 +01:00
artemp
24e21cd387 set_property_from_xml helper function 2014-07-14 16:08:58 +01:00
artemp
73bda71710 text_properties : add expression_ptr's to the expression_set 2014-07-14 14:15:36 +01:00
artemp
e066aa924f text_properties : wrap-width 2014-07-11 15:44:44 +01:00
artemp
4afd98a34a text_properties : store 'orientation' parameter in symbolizer_base::value_type 2014-07-11 14:43:56 +01:00
artemp
61c54b3943 c++ style 2014-07-11 10:12:33 +01:00
artemp
c79e74116d cleanups 2014-07-11 09:51:34 +01:00
artemp
9e84b6101b store const* in glyph_t 2014-07-10 12:46:42 +01:00
artemp
203a2c55e6 fix missing make_unique on c++11 compilers 2014-07-10 12:45:51 +01:00
artemp
6cd7026aac pass text_placement_info by ref to placement_finder + formatting 2014-07-10 11:44:46 +01:00
artemp
8c6015ec60 first take at cleaning-up text placement code
(NOTE: get_text_info is temp disabled in python bindings)
2014-07-09 11:31:03 +01:00
artemp
fb1ec4cee0 remove dead code 2014-07-09 10:28:00 +01:00
artemp
04facd3542 mode range ``for loops`` 2014-07-08 17:02:22 +01:00