mathematical 1.4.2 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +11 -21
  3. data/ext/mathematical/extconf.rb +21 -12
  4. data/ext/mathematical/lasem/Makefile +10 -10
  5. data/ext/mathematical/lasem/docs/Makefile +9 -9
  6. data/ext/mathematical/lasem/docs/reference/Makefile +9 -9
  7. data/ext/mathematical/lasem/docs/reference/lasem/Makefile +15 -9
  8. data/ext/mathematical/lasem/docs/reference/lasem/lasem-decl-list.txt +245 -0
  9. data/ext/mathematical/lasem/docs/reference/lasem/lasem-decl.txt +856 -0
  10. data/ext/mathematical/lasem/docs/reference/lasem/lasem-overrides.txt +0 -0
  11. data/ext/mathematical/lasem/itex2mml/Makefile +9 -9
  12. data/ext/mathematical/lasem/src/Makefile +34 -13
  13. data/ext/mathematical/lasem/src/lasemrender.c +13 -7
  14. data/ext/mathematical/lasem/src/lsmdomenumtypes.c +99 -0
  15. data/ext/mathematical/lasem/src/lsmdomenumtypes.h +26 -0
  16. data/ext/mathematical/lasem/src/lsmmathmlenums.c +24 -0
  17. data/ext/mathematical/lasem/src/lsmmathmlenums.h +12 -1
  18. data/ext/mathematical/lasem/src/lsmmathmlenumtypes.c +793 -0
  19. data/ext/mathematical/lasem/src/lsmmathmlenumtypes.h +96 -0
  20. data/ext/mathematical/lasem/src/lsmmathmlspaceelement.c +14 -0
  21. data/ext/mathematical/lasem/src/lsmmathmlspaceelement.h +1 -1
  22. data/ext/mathematical/lasem/src/lsmmathmltraits.c +24 -0
  23. data/ext/mathematical/lasem/src/lsmmathmltraits.h +1 -0
  24. data/ext/mathematical/lasem/src/lsmsvgattributes.h +50 -0
  25. data/ext/mathematical/lasem/src/lsmsvgdocument.c +18 -0
  26. data/ext/mathematical/lasem/src/lsmsvgenums.c +130 -0
  27. data/ext/mathematical/lasem/src/lsmsvgenums.h +59 -0
  28. data/ext/mathematical/lasem/src/lsmsvgenumtypes.c +1254 -0
  29. data/ext/mathematical/lasem/src/lsmsvgenumtypes.h +129 -0
  30. data/ext/mathematical/lasem/src/lsmsvgfiltercolormatrix.c +115 -0
  31. data/ext/mathematical/lasem/src/lsmsvgfiltercolormatrix.h +58 -0
  32. data/ext/mathematical/lasem/src/lsmsvgfilterconvolvematrix.c +206 -0
  33. data/ext/mathematical/lasem/src/lsmsvgfilterconvolvematrix.h +64 -0
  34. data/ext/mathematical/lasem/src/lsmsvgfilterdisplacementmap.c +124 -0
  35. data/ext/mathematical/lasem/src/lsmsvgfilterdisplacementmap.h +60 -0
  36. data/ext/mathematical/lasem/src/lsmsvgfilterimage.c +167 -0
  37. data/ext/mathematical/lasem/src/lsmsvgfilterimage.h +61 -0
  38. data/ext/mathematical/lasem/src/lsmsvgfiltermorphology.c +116 -0
  39. data/ext/mathematical/lasem/src/lsmsvgfiltermorphology.h +58 -0
  40. data/ext/mathematical/lasem/src/lsmsvgfilterspecularlighting.c +9 -2
  41. data/ext/mathematical/lasem/src/lsmsvgfiltersurface.c +1169 -87
  42. data/ext/mathematical/lasem/src/lsmsvgfiltersurface.h +28 -2
  43. data/ext/mathematical/lasem/src/lsmsvgfilterturbulence.c +142 -0
  44. data/ext/mathematical/lasem/src/lsmsvgfilterturbulence.h +61 -0
  45. data/ext/mathematical/lasem/src/lsmsvgtraits.c +249 -0
  46. data/ext/mathematical/lasem/src/lsmsvgtraits.h +18 -0
  47. data/ext/mathematical/lasem/src/lsmsvgtypes.h +6 -0
  48. data/ext/mathematical/lasem/src/lsmsvgview.c +267 -66
  49. data/ext/mathematical/lasem/src/lsmsvgview.h +23 -0
  50. data/ext/mathematical/lasem/src/lsmtraits.c +53 -1
  51. data/ext/mathematical/lasem/src/lsmtraits.h +2 -0
  52. data/ext/mathematical/lasem/tests/Makefile +26 -15
  53. data/ext/mathematical/lasem/tests/filter.c +152 -0
  54. data/ext/mathematical/lasem/tests/lsmtest.c +34 -30
  55. data/ext/mathematical/lasem/tests/suite.c +5 -2
  56. data/ext/mathematical/lib/libmtex2MML.a +0 -0
  57. data/ext/mathematical/mtex2MML/build/CMakeCache.txt +425 -0
  58. data/ext/mathematical/mtex2MML/build/CMakeFiles/2.8.10.1/CMakeCCompiler.cmake +55 -0
  59. data/ext/mathematical/mtex2MML/build/CMakeFiles/2.8.10.1/CMakeCXXCompiler.cmake +56 -0
  60. data/ext/mathematical/mtex2MML/build/CMakeFiles/2.8.10.1/CMakeSystem.cmake +15 -0
  61. data/ext/mathematical/mtex2MML/build/CMakeFiles/2.8.10.1/CompilerIdC/CMakeCCompilerId.c +393 -0
  62. data/ext/mathematical/mtex2MML/build/CMakeFiles/CMakeDirectoryInformation.cmake +16 -0
  63. data/ext/mathematical/mtex2MML/build/CMakeFiles/CMakeRuleHashes.txt +34 -0
  64. data/ext/mathematical/mtex2MML/build/CMakeFiles/Continuous.dir/DependInfo.cmake +27 -0
  65. data/ext/mathematical/mtex2MML/build/CMakeFiles/Continuous.dir/cmake_clean.cmake +8 -0
  66. data/ext/mathematical/mtex2MML/build/CMakeFiles/ContinuousBuild.dir/DependInfo.cmake +27 -0
  67. data/ext/mathematical/mtex2MML/build/CMakeFiles/ContinuousBuild.dir/cmake_clean.cmake +8 -0
  68. data/ext/mathematical/mtex2MML/build/CMakeFiles/ContinuousConfigure.dir/DependInfo.cmake +27 -0
  69. data/ext/mathematical/mtex2MML/build/CMakeFiles/ContinuousConfigure.dir/cmake_clean.cmake +8 -0
  70. data/ext/mathematical/mtex2MML/build/CMakeFiles/ContinuousCoverage.dir/DependInfo.cmake +27 -0
  71. data/ext/mathematical/mtex2MML/build/CMakeFiles/ContinuousCoverage.dir/cmake_clean.cmake +8 -0
  72. data/ext/mathematical/mtex2MML/build/CMakeFiles/ContinuousMemCheck.dir/DependInfo.cmake +27 -0
  73. data/ext/mathematical/mtex2MML/build/CMakeFiles/ContinuousMemCheck.dir/cmake_clean.cmake +8 -0
  74. data/ext/mathematical/mtex2MML/build/CMakeFiles/ContinuousStart.dir/DependInfo.cmake +27 -0
  75. data/ext/mathematical/mtex2MML/build/CMakeFiles/ContinuousStart.dir/cmake_clean.cmake +8 -0
  76. data/ext/mathematical/mtex2MML/build/CMakeFiles/ContinuousSubmit.dir/DependInfo.cmake +27 -0
  77. data/ext/mathematical/mtex2MML/build/CMakeFiles/ContinuousSubmit.dir/cmake_clean.cmake +8 -0
  78. data/ext/mathematical/mtex2MML/build/CMakeFiles/ContinuousTest.dir/DependInfo.cmake +27 -0
  79. data/ext/mathematical/mtex2MML/build/CMakeFiles/ContinuousTest.dir/cmake_clean.cmake +8 -0
  80. data/ext/mathematical/mtex2MML/build/CMakeFiles/ContinuousUpdate.dir/DependInfo.cmake +27 -0
  81. data/ext/mathematical/mtex2MML/build/CMakeFiles/ContinuousUpdate.dir/cmake_clean.cmake +8 -0
  82. data/ext/mathematical/mtex2MML/build/CMakeFiles/Experimental.dir/DependInfo.cmake +27 -0
  83. data/ext/mathematical/mtex2MML/build/CMakeFiles/Experimental.dir/cmake_clean.cmake +8 -0
  84. data/ext/mathematical/mtex2MML/build/CMakeFiles/ExperimentalBuild.dir/DependInfo.cmake +27 -0
  85. data/ext/mathematical/mtex2MML/build/CMakeFiles/ExperimentalBuild.dir/cmake_clean.cmake +8 -0
  86. data/ext/mathematical/mtex2MML/build/CMakeFiles/ExperimentalConfigure.dir/DependInfo.cmake +27 -0
  87. data/ext/mathematical/mtex2MML/build/CMakeFiles/ExperimentalConfigure.dir/cmake_clean.cmake +8 -0
  88. data/ext/mathematical/mtex2MML/build/CMakeFiles/ExperimentalCoverage.dir/DependInfo.cmake +27 -0
  89. data/ext/mathematical/mtex2MML/build/CMakeFiles/ExperimentalCoverage.dir/cmake_clean.cmake +8 -0
  90. data/ext/mathematical/mtex2MML/build/CMakeFiles/ExperimentalMemCheck.dir/DependInfo.cmake +27 -0
  91. data/ext/mathematical/mtex2MML/build/CMakeFiles/ExperimentalMemCheck.dir/cmake_clean.cmake +8 -0
  92. data/ext/mathematical/mtex2MML/build/CMakeFiles/ExperimentalStart.dir/DependInfo.cmake +27 -0
  93. data/ext/mathematical/mtex2MML/build/CMakeFiles/ExperimentalStart.dir/cmake_clean.cmake +8 -0
  94. data/ext/mathematical/mtex2MML/build/CMakeFiles/ExperimentalSubmit.dir/DependInfo.cmake +27 -0
  95. data/ext/mathematical/mtex2MML/build/CMakeFiles/ExperimentalSubmit.dir/cmake_clean.cmake +8 -0
  96. data/ext/mathematical/mtex2MML/build/CMakeFiles/ExperimentalTest.dir/DependInfo.cmake +27 -0
  97. data/ext/mathematical/mtex2MML/build/CMakeFiles/ExperimentalTest.dir/cmake_clean.cmake +8 -0
  98. data/ext/mathematical/mtex2MML/build/CMakeFiles/ExperimentalUpdate.dir/DependInfo.cmake +27 -0
  99. data/ext/mathematical/mtex2MML/build/CMakeFiles/ExperimentalUpdate.dir/cmake_clean.cmake +8 -0
  100. data/ext/mathematical/mtex2MML/build/CMakeFiles/Makefile.cmake +95 -0
  101. data/ext/mathematical/mtex2MML/build/CMakeFiles/Nightly.dir/DependInfo.cmake +27 -0
  102. data/ext/mathematical/mtex2MML/build/CMakeFiles/Nightly.dir/cmake_clean.cmake +8 -0
  103. data/ext/mathematical/mtex2MML/build/CMakeFiles/NightlyBuild.dir/DependInfo.cmake +27 -0
  104. data/ext/mathematical/mtex2MML/build/CMakeFiles/NightlyBuild.dir/cmake_clean.cmake +8 -0
  105. data/ext/mathematical/mtex2MML/build/CMakeFiles/NightlyConfigure.dir/DependInfo.cmake +27 -0
  106. data/ext/mathematical/mtex2MML/build/CMakeFiles/NightlyConfigure.dir/cmake_clean.cmake +8 -0
  107. data/ext/mathematical/mtex2MML/build/CMakeFiles/NightlyCoverage.dir/DependInfo.cmake +27 -0
  108. data/ext/mathematical/mtex2MML/build/CMakeFiles/NightlyCoverage.dir/cmake_clean.cmake +8 -0
  109. data/ext/mathematical/mtex2MML/build/CMakeFiles/NightlyMemCheck.dir/DependInfo.cmake +27 -0
  110. data/ext/mathematical/mtex2MML/build/CMakeFiles/NightlyMemCheck.dir/cmake_clean.cmake +8 -0
  111. data/ext/mathematical/mtex2MML/build/CMakeFiles/NightlyMemoryCheck.dir/DependInfo.cmake +27 -0
  112. data/ext/mathematical/mtex2MML/build/CMakeFiles/NightlyMemoryCheck.dir/cmake_clean.cmake +8 -0
  113. data/ext/mathematical/mtex2MML/build/CMakeFiles/NightlyStart.dir/DependInfo.cmake +27 -0
  114. data/ext/mathematical/mtex2MML/build/CMakeFiles/NightlyStart.dir/cmake_clean.cmake +8 -0
  115. data/ext/mathematical/mtex2MML/build/CMakeFiles/NightlySubmit.dir/DependInfo.cmake +27 -0
  116. data/ext/mathematical/mtex2MML/build/CMakeFiles/NightlySubmit.dir/cmake_clean.cmake +8 -0
  117. data/ext/mathematical/mtex2MML/build/CMakeFiles/NightlyTest.dir/DependInfo.cmake +27 -0
  118. data/ext/mathematical/mtex2MML/build/CMakeFiles/NightlyTest.dir/cmake_clean.cmake +8 -0
  119. data/ext/mathematical/mtex2MML/build/CMakeFiles/NightlyUpdate.dir/DependInfo.cmake +27 -0
  120. data/ext/mathematical/mtex2MML/build/CMakeFiles/NightlyUpdate.dir/cmake_clean.cmake +8 -0
  121. data/ext/mathematical/mtex2MML/build/CMakeFiles/TargetDirectories.txt +34 -0
  122. data/ext/mathematical/mtex2MML/build/CMakeFiles/format.dir/DependInfo.cmake +27 -0
  123. data/ext/mathematical/mtex2MML/build/CMakeFiles/format.dir/cmake_clean.cmake +8 -0
  124. data/ext/mathematical/mtex2MML/build/CMakeFiles/libmtex2MML.dir/DependInfo.cmake +44 -0
  125. data/ext/mathematical/mtex2MML/build/CMakeFiles/libmtex2MML.dir/cmake_clean.cmake +19 -0
  126. data/ext/mathematical/mtex2MML/build/CMakeFiles/libmtex2MML.dir/link.txt +1 -0
  127. data/ext/mathematical/mtex2MML/build/CMakeFiles/libmtex2MML_static.dir/DependInfo.cmake +43 -0
  128. data/ext/mathematical/mtex2MML/build/CMakeFiles/libmtex2MML_static.dir/cmake_clean.cmake +18 -0
  129. data/ext/mathematical/mtex2MML/build/CMakeFiles/libmtex2MML_static.dir/cmake_clean_target.cmake +3 -0
  130. data/ext/mathematical/mtex2MML/build/CMakeFiles/libmtex2MML_static.dir/link.txt +2 -0
  131. data/ext/mathematical/mtex2MML/build/CMakeFiles/memcheck.dir/DependInfo.cmake +27 -0
  132. data/ext/mathematical/mtex2MML/build/CMakeFiles/memcheck.dir/cmake_clean.cmake +8 -0
  133. data/ext/mathematical/mtex2MML/build/CMakeFiles/mtex2MML.dir/DependInfo.cmake +44 -0
  134. data/ext/mathematical/mtex2MML/build/CMakeFiles/mtex2MML.dir/cmake_clean.cmake +19 -0
  135. data/ext/mathematical/mtex2MML/build/CMakeFiles/mtex2MML.dir/link.txt +1 -0
  136. data/ext/mathematical/mtex2MML/build/CMakeFiles/mtex2MML_clar.dir/DependInfo.cmake +59 -0
  137. data/ext/mathematical/mtex2MML/build/CMakeFiles/mtex2MML_clar.dir/cmake_clean.cmake +35 -0
  138. data/ext/mathematical/mtex2MML/build/CMakeFiles/mtex2MML_clar.dir/link.txt +1 -0
  139. data/ext/mathematical/mtex2MML/build/CTestTestfile.cmake +7 -0
  140. data/ext/mathematical/mtex2MML/build/Makefile +1332 -0
  141. data/ext/mathematical/mtex2MML/build/cmake_install.cmake +43 -0
  142. data/ext/mathematical/mtex2MML/build/lexer.c +8877 -0
  143. data/ext/mathematical/mtex2MML/build/libmtex2MML.a +0 -0
  144. data/ext/mathematical/mtex2MML/build/mtex2mml_export.h +35 -0
  145. data/ext/mathematical/mtex2MML/build/parser.c +10202 -0
  146. data/ext/mathematical/mtex2MML/build/parser.h +619 -0
  147. data/ext/mathematical/mtex2MML/src/mtex2MML.h +1 -1
  148. data/lib/mathematical/version.rb +1 -1
  149. metadata +115 -2
@@ -331,11 +331,20 @@ lsm_svg_view_create_surface_pattern (LsmSvgView *view,
331
331
  g_return_val_if_fail (view->pattern_data != NULL, FALSE);
332
332
  g_return_val_if_fail (view->dom_view.cairo == NULL, FALSE);
333
333
 
334
+ /* Calculate a scale that will allow us to create a surface pattern
335
+ * for which a pixel will also be roughly a pixel on the final
336
+ * image */
337
+
334
338
  x1 = viewport->x;
335
339
  y1 = viewport->y;
336
340
  x2 = viewport->x + viewport->width;
337
341
  y2 = viewport->y;
338
342
 
343
+ if (pattern_matrix != NULL) {
344
+ lsm_svg_matrix_transform_point (pattern_matrix, &x1, &y1);
345
+ lsm_svg_matrix_transform_point (pattern_matrix, &x2, &y2);
346
+ }
347
+
339
348
  cairo_user_to_device (view->pattern_data->old_cairo, &x1, &y1);
340
349
  cairo_user_to_device (view->pattern_data->old_cairo, &x2, &y2);
341
350
 
@@ -344,14 +353,18 @@ lsm_svg_view_create_surface_pattern (LsmSvgView *view,
344
353
  x2 = viewport->x;
345
354
  y2 = viewport->y + viewport->height;
346
355
 
356
+ if (pattern_matrix != NULL) {
357
+ lsm_svg_matrix_transform_point (pattern_matrix, &x2, &y2);
358
+ }
359
+
347
360
  cairo_user_to_device (view->pattern_data->old_cairo, &x2, &y2);
348
361
 
349
362
  device_height = sqrt ((x1 - x2)*(x1 - x2) + (y1 - y2)*(y1 - y2));
350
363
 
351
- if (surface_type == LSM_SVG_VIEW_SURFACE_TYPE_IMAGE) {
352
- device_height = ceil (device_height);
353
- device_width = ceil (device_width);
354
- }
364
+ /* Create new surface with integer size */
365
+
366
+ device_height = ceil (device_height);
367
+ device_width = ceil (device_width);
355
368
 
356
369
  x_scale = device_width / viewport->width;
357
370
  y_scale = device_height / viewport->height;
@@ -1761,23 +1774,25 @@ lsm_svg_view_pop_mask (LsmSvgView *view)
1761
1774
  cairo_pop_group_to_source (cairo);
1762
1775
  if (view->pattern_data->pattern != NULL) {
1763
1776
  cairo_surface_t *surface;
1764
- int width, height, row, i, stride;
1765
- unsigned char *pixels;
1766
-
1767
- cairo_pattern_get_surface (view->pattern_data->pattern, &surface);
1768
- pixels = cairo_image_surface_get_data (surface);
1769
- height = cairo_image_surface_get_height (surface);
1770
- width = cairo_image_surface_get_width (surface);
1771
- stride = cairo_image_surface_get_stride (surface);
1772
-
1773
- for (row = 0; row < height; row++) {
1774
- guint8 *row_data = (pixels + (row * stride));
1775
- for (i = 0; i < width; i++) {
1776
- guint32 *pixel = (guint32 *) row_data + i;
1777
- *pixel = ((((*pixel & 0x00ff0000) >> 16) * 13817 +
1778
- ((*pixel & 0x0000ff00) >> 8) * 46518 +
1779
- ((*pixel & 0x000000ff)) * 4688) * 0xff
1780
- /* * opacity */);
1777
+
1778
+ if (cairo_pattern_get_surface (view->pattern_data->pattern, &surface) == CAIRO_STATUS_SUCCESS) {
1779
+ int width, height, row, i, stride;
1780
+ unsigned char *pixels;
1781
+
1782
+ pixels = cairo_image_surface_get_data (surface);
1783
+ height = cairo_image_surface_get_height (surface);
1784
+ width = cairo_image_surface_get_width (surface);
1785
+ stride = cairo_image_surface_get_stride (surface);
1786
+
1787
+ for (row = 0; row < height; row++) {
1788
+ guint8 *row_data = (pixels + (row * stride));
1789
+ for (i = 0; i < width; i++) {
1790
+ guint32 *pixel = (guint32 *) row_data + i;
1791
+ *pixel = ((((*pixel & 0x00ff0000) >> 16) * 13817 +
1792
+ ((*pixel & 0x0000ff00) >> 8) * 46518 +
1793
+ ((*pixel & 0x000000ff)) * 4688) * 0xff
1794
+ /* * opacity */);
1795
+ }
1781
1796
  }
1782
1797
  }
1783
1798
 
@@ -1868,58 +1883,58 @@ lsm_svg_view_pop_filter (LsmSvgView *view)
1868
1883
 
1869
1884
  if (LSM_IS_SVG_FILTER_ELEMENT (filter_element) &&
1870
1885
  view->pattern_data->pattern != NULL) {
1871
- cairo_matrix_t matrix;
1872
- LsmBox subregion;
1873
-
1874
- view->filter_surfaces = NULL;
1886
+ if (cairo_pattern_get_surface (view->pattern_data->pattern, &surface) == CAIRO_STATUS_SUCCESS) {
1887
+ cairo_matrix_t matrix;
1888
+ LsmBox subregion;
1875
1889
 
1876
- cairo_pattern_get_surface (view->pattern_data->pattern, &surface);
1890
+ view->filter_surfaces = NULL;
1877
1891
 
1878
- subregion.x = 0;
1879
- subregion.y = 0;
1880
- subregion.width = cairo_image_surface_get_width (surface);
1881
- subregion.height = cairo_image_surface_get_height (surface);
1892
+ subregion.x = 0;
1893
+ subregion.y = 0;
1894
+ subregion.width = cairo_image_surface_get_width (surface);
1895
+ subregion.height = cairo_image_surface_get_height (surface);
1882
1896
 
1883
- filter_surface = lsm_svg_filter_surface_new_with_content ("SourceGraphic", surface, &subregion);
1884
- cairo_pattern_get_matrix (view->pattern_data->pattern, &matrix);
1897
+ filter_surface = lsm_svg_filter_surface_new_with_content ("SourceGraphic", surface, &subregion);
1898
+ cairo_pattern_get_matrix (view->pattern_data->pattern, &matrix);
1885
1899
 
1886
- view->filter_surfaces = g_slist_prepend (view->filter_surfaces, filter_surface);
1900
+ view->filter_surfaces = g_slist_prepend (view->filter_surfaces, filter_surface);
1887
1901
 
1888
- lsm_svg_element_force_render (filter_element, view);
1902
+ lsm_svg_element_force_render (filter_element, view);
1889
1903
 
1890
- if (view->debug_filter) {
1891
- GSList *iter;
1892
- char *filename;
1893
- static int count = 0;
1904
+ if (view->debug_filter) {
1905
+ GSList *iter;
1906
+ char *filename;
1907
+ static int count = 0;
1894
1908
 
1895
- for (iter = view->filter_surfaces; iter != NULL; iter = iter->next) {
1896
- LsmSvgFilterSurface *surface = iter->data;
1909
+ for (iter = view->filter_surfaces; iter != NULL; iter = iter->next) {
1910
+ LsmSvgFilterSurface *surface = iter->data;
1897
1911
 
1898
- filename = g_strdup_printf ("filter-%04d-%s-%s.png", count++,
1899
- view->style->filter->value,
1900
- lsm_svg_filter_surface_get_name (surface));
1901
- cairo_surface_write_to_png (lsm_svg_filter_surface_get_cairo_surface (surface), filename);
1902
- g_free (filename);
1912
+ filename = g_strdup_printf ("filter-%04d-%s-%s.png", count++,
1913
+ view->style->filter->value,
1914
+ lsm_svg_filter_surface_get_name (surface));
1915
+ cairo_surface_write_to_png (lsm_svg_filter_surface_get_cairo_surface (surface), filename);
1916
+ g_free (filename);
1917
+ }
1903
1918
  }
1904
- }
1905
1919
 
1906
- if (view->filter_surfaces->next != NULL) {
1907
- cairo_pattern_t *pattern;
1908
- cairo_surface_t *surface;
1920
+ if (view->filter_surfaces->next != NULL) {
1921
+ cairo_pattern_t *pattern;
1922
+ cairo_surface_t *surface;
1923
+
1924
+ surface = lsm_svg_filter_surface_get_cairo_surface (view->filter_surfaces->data);
1925
+ pattern = cairo_pattern_create_for_surface (surface);
1926
+ cairo_pattern_set_extend (pattern, CAIRO_EXTEND_NONE);
1927
+ cairo_pattern_set_matrix (pattern, &matrix);
1928
+ cairo_set_source (view->pattern_data->old_cairo, pattern);
1929
+ cairo_pattern_destroy (pattern);
1930
+ cairo_paint_with_alpha (view->pattern_data->old_cairo, view->style->opacity->value);
1931
+ }
1909
1932
 
1910
- surface = lsm_svg_filter_surface_get_cairo_surface (view->filter_surfaces->data);
1911
- pattern = cairo_pattern_create_for_surface (surface);
1912
- cairo_pattern_set_extend (pattern, CAIRO_EXTEND_NONE);
1913
- cairo_pattern_set_matrix (pattern, &matrix);
1914
- cairo_set_source (view->pattern_data->old_cairo, pattern);
1915
- cairo_pattern_destroy (pattern);
1916
- cairo_paint_with_alpha (view->pattern_data->old_cairo, view->style->opacity->value);
1933
+ for (iter = view->filter_surfaces; iter != NULL; iter = iter->next)
1934
+ lsm_svg_filter_surface_unref (iter->data);
1935
+ g_slist_free (view->filter_surfaces);
1936
+ view->filter_surfaces = NULL;
1917
1937
  }
1918
-
1919
- for (iter = view->filter_surfaces; iter != NULL; iter = iter->next)
1920
- lsm_svg_filter_surface_unref (iter->data);
1921
- g_slist_free (view->filter_surfaces);
1922
- view->filter_surfaces = NULL;
1923
1938
  }
1924
1939
 
1925
1940
  _end_pattern (view);
@@ -2095,10 +2110,30 @@ lsm_svg_view_apply_flood (LsmSvgView *view, const char *output, const LsmBox *su
2095
2110
  subregion_px.x, subregion_px.y);
2096
2111
 
2097
2112
  lsm_svg_filter_surface_flood (output_surface,
2098
- view->style->flood_color->value.red,
2099
- view->style->flood_color->value.green,
2100
- view->style->flood_color->value.blue,
2101
- view->style->flood_opacity->value);
2113
+ view->style->flood_color->value.red,
2114
+ view->style->flood_color->value.green,
2115
+ view->style->flood_color->value.blue,
2116
+ view->style->flood_opacity->value);
2117
+ }
2118
+
2119
+ void
2120
+ lsm_svg_view_apply_image (LsmSvgView *view, const char *output, const LsmBox *subregion,
2121
+ GdkPixbuf *pixbuf, LsmSvgPreserveAspectRatio preserve_aspect_ratio)
2122
+ {
2123
+ LsmSvgFilterSurface *output_surface;
2124
+ LsmSvgFilterSurface *input_surface;
2125
+ LsmBox subregion_px;
2126
+
2127
+ g_return_if_fail (LSM_IS_SVG_VIEW (view));
2128
+
2129
+ input_surface = _get_filter_surface (view, NULL);
2130
+
2131
+ lsm_cairo_box_user_to_device (view->dom_view.cairo, &subregion_px, subregion);
2132
+ output_surface = _create_filter_surface (view, output, input_surface, &subregion_px);
2133
+
2134
+ lsm_log_render ("[SvgView::apply_image]");
2135
+
2136
+ lsm_svg_filter_surface_image (output_surface, pixbuf, preserve_aspect_ratio);
2102
2137
  }
2103
2138
 
2104
2139
  void
@@ -2131,7 +2166,7 @@ lsm_svg_view_apply_gaussian_blur (LsmSvgView *view, const char *input, const cha
2131
2166
  lsm_log_render ("[SvgView::apply_gaussian_blur] %g px,%g px",
2132
2167
  std_x, std_y);
2133
2168
 
2134
- lsm_svg_filter_surface_fast_blur (input_surface, output_surface, std_x, std_y);
2169
+ lsm_svg_filter_surface_blur (input_surface, output_surface, std_x, std_y);
2135
2170
  }
2136
2171
 
2137
2172
  void
@@ -2163,6 +2198,172 @@ lsm_svg_view_apply_offset (LsmSvgView *view, const char *input, const char *outp
2163
2198
  lsm_svg_filter_surface_offset (input_surface, output_surface, dx, dy);
2164
2199
  }
2165
2200
 
2201
+ void
2202
+ lsm_svg_view_apply_color_matrix (LsmSvgView *view, const char *input, const char *output,
2203
+ const LsmBox *subregion, LsmSvgColorFilterType type,
2204
+ unsigned int n_values, const double *values)
2205
+ {
2206
+ LsmSvgFilterSurface *input_surface;
2207
+ LsmSvgFilterSurface *output_surface;
2208
+ LsmBox subregion_px;
2209
+
2210
+ g_return_if_fail (LSM_IS_SVG_VIEW (view));
2211
+
2212
+ input_surface = _get_filter_surface (view, input);
2213
+
2214
+ if (input_surface == NULL) {
2215
+ lsm_debug_render ("[SvgView::apply_color_matrix] Input '%s' not found", input);
2216
+ return;
2217
+ }
2218
+
2219
+ lsm_cairo_box_user_to_device (view->dom_view.cairo, &subregion_px, subregion);
2220
+ output_surface = _create_filter_surface (view, output, input_surface, &subregion_px);
2221
+
2222
+ lsm_svg_filter_surface_color_matrix (input_surface, output_surface, type, n_values, values);
2223
+ }
2224
+
2225
+ void
2226
+ lsm_svg_view_apply_displacement_map (LsmSvgView *view, const char *input_1, const char *input_2, const char *output,
2227
+ const LsmBox *subregion,
2228
+ double scale, LsmSvgChannelSelector x_channel_selector, LsmSvgChannelSelector y_channel_selector)
2229
+ {
2230
+ LsmSvgFilterSurface *output_surface;
2231
+ LsmSvgFilterSurface *input_1_surface;
2232
+ LsmSvgFilterSurface *input_2_surface;
2233
+ LsmBox subregion_px;
2234
+ cairo_matrix_t transform;
2235
+ double x_scale, y_scale;
2236
+
2237
+ g_return_if_fail (LSM_IS_SVG_VIEW (view));
2238
+
2239
+ input_1_surface = _get_filter_surface (view, input_1);
2240
+ input_2_surface = _get_filter_surface (view, input_2);
2241
+
2242
+ if (input_1_surface == NULL || input_2_surface == NULL) {
2243
+ lsm_warning_render ("[SvgView::apply_displacement_map] Inputs '%s' or '%s' not found", input_1, input_2);
2244
+ return;
2245
+ }
2246
+
2247
+ lsm_cairo_box_user_to_device (view->dom_view.cairo, &subregion_px, subregion);
2248
+ output_surface = _create_filter_surface (view, output, input_1_surface, &subregion_px);
2249
+
2250
+ cairo_get_matrix (view->dom_view.cairo, &transform);
2251
+
2252
+ x_scale = transform.xx * scale;
2253
+ y_scale = transform.yy * scale;
2254
+
2255
+ lsm_svg_filter_surface_displacement_map (input_1_surface, input_2_surface, output_surface, x_scale, y_scale,
2256
+ x_channel_selector, y_channel_selector);
2257
+ }
2258
+
2259
+ void
2260
+ lsm_svg_view_apply_morphology (LsmSvgView *view, const char *input, const char *output, const LsmBox *subregion,
2261
+ LsmSvgMorphologyOperator op, double radius)
2262
+ {
2263
+ LsmSvgFilterSurface *input_surface;
2264
+ LsmSvgFilterSurface *output_surface;
2265
+ LsmBox subregion_px;
2266
+ double rx, ry;
2267
+
2268
+ g_return_if_fail (LSM_IS_SVG_VIEW (view));
2269
+
2270
+ input_surface = _get_filter_surface (view, input);
2271
+
2272
+ if (input_surface == NULL) {
2273
+ lsm_debug_render ("[SvgView::apply_morphoogy] Input '%s' not found", input);
2274
+ return;
2275
+ }
2276
+
2277
+ lsm_cairo_box_user_to_device (view->dom_view.cairo, &subregion_px, subregion);
2278
+ output_surface = _create_filter_surface (view, output, input_surface, &subregion_px);
2279
+
2280
+ rx = radius;
2281
+ ry = radius;
2282
+ cairo_user_to_device_distance (view->dom_view.cairo, &rx, &ry);
2283
+
2284
+ lsm_svg_filter_surface_morphology (input_surface, output_surface, op, rx, ry);
2285
+ }
2286
+
2287
+ void
2288
+ lsm_svg_view_apply_convolve_matrix (LsmSvgView *view, const char *input, const char *output, const LsmBox *subregion,
2289
+ unsigned x_order, unsigned y_order, unsigned n_values, double *values,
2290
+ double divisor, double bias, int target_x, int target_y,
2291
+ LsmSvgEdgeMode edge_mode, gboolean preserve_alpha)
2292
+ {
2293
+ LsmSvgFilterSurface *input_surface;
2294
+ LsmSvgFilterSurface *output_surface;
2295
+ LsmBox subregion_px;
2296
+
2297
+ g_return_if_fail (LSM_IS_SVG_VIEW (view));
2298
+
2299
+ input_surface = _get_filter_surface (view, input);
2300
+
2301
+ if (input_surface == NULL) {
2302
+ lsm_debug_render ("[SvgView::apply_color_matrix] Input '%s' not found", input);
2303
+ return;
2304
+ }
2305
+
2306
+ lsm_cairo_box_user_to_device (view->dom_view.cairo, &subregion_px, subregion);
2307
+ output_surface = _create_filter_surface (view, output, input_surface, &subregion_px);
2308
+
2309
+ lsm_svg_filter_surface_convolve_matrix (input_surface, output_surface, x_order, y_order, n_values, values,
2310
+ divisor, bias, target_x, target_y, edge_mode, preserve_alpha);
2311
+ }
2312
+
2313
+ void
2314
+ lsm_svg_view_apply_specular_lighting (LsmSvgView *view, const char *output, const LsmBox *subregion,
2315
+ double surface_scale, double specular_constant, double specular_exponent,
2316
+ double dx, double dy)
2317
+ {
2318
+ LsmSvgFilterSurface *output_surface;
2319
+ LsmSvgFilterSurface *input_surface;
2320
+ LsmBox subregion_px;
2321
+
2322
+ g_return_if_fail (LSM_IS_SVG_VIEW (view));
2323
+
2324
+ input_surface = _get_filter_surface (view, NULL);
2325
+
2326
+ lsm_cairo_box_user_to_device (view->dom_view.cairo, &subregion_px, subregion);
2327
+ output_surface = _create_filter_surface (view, output, input_surface, &subregion_px);
2328
+
2329
+ lsm_log_render ("[SvgView::apply_specular_lighting] subregion %gx%g px at %g,%g px",
2330
+ subregion_px.width, subregion_px.height,
2331
+ subregion_px.x, subregion_px.y);
2332
+
2333
+ cairo_user_to_device_distance (view->dom_view.cairo, &dx, &dy);
2334
+
2335
+ lsm_svg_filter_surface_specular_lighting (output_surface, surface_scale, specular_constant, specular_exponent, dx, dy);
2336
+ }
2337
+
2338
+ void
2339
+ lsm_svg_view_apply_turbulence (LsmSvgView *view, const char *output, const LsmBox *subregion,
2340
+ double base_frequency_x, double base_frequency_y,
2341
+ int n_octaves, double seed,
2342
+ LsmSvgStitchTiles stitch_tiles,
2343
+ LsmSvgTurbulenceType type)
2344
+ {
2345
+ LsmSvgFilterSurface *output_surface;
2346
+ LsmSvgFilterSurface *input_surface;
2347
+ LsmBox subregion_px;
2348
+ cairo_matrix_t transform;
2349
+
2350
+ g_return_if_fail (LSM_IS_SVG_VIEW (view));
2351
+
2352
+ input_surface = _get_filter_surface (view, NULL);
2353
+
2354
+ lsm_cairo_box_user_to_device (view->dom_view.cairo, &subregion_px, subregion);
2355
+ output_surface = _create_filter_surface (view, output, input_surface, &subregion_px);
2356
+
2357
+ lsm_log_render ("[SvgView::apply_turbulence] subregion %gx%g px at %g,%g px",
2358
+ subregion_px.width, subregion_px.height,
2359
+ subregion_px.x, subregion_px.y);
2360
+
2361
+ cairo_get_matrix (view->dom_view.cairo, &transform);
2362
+
2363
+ lsm_svg_filter_surface_turbulence (output_surface, base_frequency_x, base_frequency_y, n_octaves, seed, stitch_tiles, type,
2364
+ &transform);
2365
+ }
2366
+
2166
2367
  void
2167
2368
  lsm_svg_view_apply_merge (LsmSvgView *view, const char *input, const char *output, const LsmBox *subregion)
2168
2369
  {
@@ -172,8 +172,31 @@ void lsm_svg_view_apply_gaussian_blur (LsmSvgView *view, const char *input, co
172
172
  double std_x, double std_y);
173
173
  void lsm_svg_view_apply_offset (LsmSvgView *view, const char *input, const char *output, const LsmBox *subregion,
174
174
  double dx, double dy);
175
+ void lsm_svg_view_apply_color_matrix (LsmSvgView *view, const char *input, const char *output,
176
+ const LsmBox *subregion, LsmSvgColorFilterType type,
177
+ unsigned int n_values, const double *values);
178
+ void lsm_svg_view_apply_displacement_map (LsmSvgView *view, const char *input_1, const char *input_2, const char *output,
179
+ const LsmBox *subregion, double scale,
180
+ LsmSvgChannelSelector x_channel_selector,
181
+ LsmSvgChannelSelector y_channel_selector);
175
182
  void lsm_svg_view_apply_merge (LsmSvgView *view, const char *input, const char *output, const LsmBox *subregion);
176
183
  void lsm_svg_view_apply_tile (LsmSvgView *view, const char *input, const char *output, const LsmBox *subregion);
184
+ void lsm_svg_view_apply_image (LsmSvgView *view, const char *output, const LsmBox *subregion,
185
+ GdkPixbuf *pixbuf, LsmSvgPreserveAspectRatio preserve_aspect_ratio);
186
+ void lsm_svg_view_apply_morphology (LsmSvgView *view, const char *input, const char *output, const LsmBox *subregion,
187
+ LsmSvgMorphologyOperator op, double radius);
188
+ void lsm_svg_view_apply_convolve_matrix (LsmSvgView *view, const char *input, const char *output, const LsmBox *subregion,
189
+ unsigned a, unsigned b, unsigned n_values, double *values,
190
+ double divisor, double bias, int target_x, int target_y,
191
+ LsmSvgEdgeMode edge_mode, gboolean preserve_alpha);
192
+ void lsm_svg_view_apply_specular_lighting (LsmSvgView *view, const char *output, const LsmBox *subregion,
193
+ double surface_scale, double specular_constant, double specular_exponent,
194
+ double dx, double dy);
195
+ void lsm_svg_view_apply_turbulence (LsmSvgView *view, const char *output, const LsmBox *subregion,
196
+ double base_frequency_x, double base_frequency_y,
197
+ int n_octaves, double seed,
198
+ LsmSvgStitchTiles stitch_tiles,
199
+ LsmSvgTurbulenceType type);
177
200
 
178
201
  G_END_DECLS
179
202
 
@@ -30,6 +30,59 @@ const LsmTraitClass lsm_null_trait_class = {
30
30
  .size = 0
31
31
  };
32
32
 
33
+ static gboolean
34
+ lsm_boolean_trait_from_string (LsmTrait *abstract_trait, char *string)
35
+ {
36
+ gboolean *trait = (gboolean *) abstract_trait;
37
+
38
+ if (g_strcmp0 ("true", string) == 0)
39
+ *trait = TRUE;
40
+ else if (g_strcmp0 ("false", string) == 0)
41
+ *trait = FALSE;
42
+ else return FALSE;
43
+
44
+ return TRUE;
45
+ }
46
+
47
+ static char *
48
+ lsm_boolean_trait_to_string (LsmTrait *abstract_trait)
49
+ {
50
+ gboolean *trait = (gboolean *) abstract_trait;
51
+
52
+ return g_strdup_printf ("%s", *trait ? "true" : "false");
53
+ }
54
+
55
+ const LsmTraitClass lsm_boolean_trait_class = {
56
+ .size = sizeof (gboolean),
57
+ .from_string = lsm_boolean_trait_from_string,
58
+ .to_string = lsm_boolean_trait_to_string
59
+ };
60
+
61
+ static gboolean
62
+ lsm_integer_trait_from_string (LsmTrait *abstract_trait, char *string)
63
+ {
64
+ int *trait = (int *) abstract_trait;
65
+ char *end_ptr;
66
+
67
+ *trait = g_ascii_strtoll (string, &end_ptr, 10);
68
+
69
+ return end_ptr != string;
70
+ }
71
+
72
+ static char *
73
+ lsm_integer_trait_to_string (LsmTrait *abstract_trait)
74
+ {
75
+ int *trait = (int *) abstract_trait;
76
+
77
+ return g_strdup_printf ("%d", *trait);
78
+ }
79
+
80
+ const LsmTraitClass lsm_integer_trait_class = {
81
+ .size = sizeof (int),
82
+ .from_string = lsm_integer_trait_from_string,
83
+ .to_string = lsm_integer_trait_to_string
84
+ };
85
+
33
86
  static gboolean
34
87
  lsm_double_trait_from_string (LsmTrait *abstract_trait, char *string)
35
88
  {
@@ -116,4 +169,3 @@ lsm_enum_value_from_string (const char *string, const char **strings, unsigned i
116
169
 
117
170
  return -1;
118
171
  }
119
-
@@ -39,6 +39,8 @@ typedef struct {
39
39
  } LsmTraitClass;
40
40
 
41
41
  extern const LsmTraitClass lsm_null_trait_class;
42
+ extern const LsmTraitClass lsm_boolean_trait_class;
43
+ extern const LsmTraitClass lsm_integer_trait_class;
42
44
  extern const LsmTraitClass lsm_double_trait_class;
43
45
  extern const LsmTraitClass lsm_box_trait_class;
44
46
 
@@ -88,8 +88,8 @@ POST_INSTALL = :
88
88
  NORMAL_UNINSTALL = :
89
89
  PRE_UNINSTALL = :
90
90
  POST_UNINSTALL = :
91
- build_triplet = x86_64-apple-darwin14.3.0
92
- host_triplet = x86_64-apple-darwin14.3.0
91
+ build_triplet = x86_64-apple-darwin14.5.0
92
+ host_triplet = x86_64-apple-darwin14.5.0
93
93
  noinst_PROGRAMS = lsm-test$(EXEEXT) $(am__EXEEXT_1)
94
94
  subdir = tests
95
95
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -105,7 +105,8 @@ mkinstalldirs = $(install_sh) -d
105
105
  CONFIG_HEADER = $(top_builddir)/config.h
106
106
  CONFIG_CLEAN_FILES =
107
107
  CONFIG_CLEAN_VPATH_FILES =
108
- am__EXEEXT_1 = dom$(EXEEXT) str$(EXEEXT) suite$(EXEEXT)
108
+ am__EXEEXT_1 = dom$(EXEEXT) str$(EXEEXT) filter$(EXEEXT) \
109
+ suite$(EXEEXT)
109
110
  PROGRAMS = $(noinst_PROGRAMS)
110
111
  am_dom_OBJECTS = dom.$(OBJEXT)
111
112
  dom_OBJECTS = $(am_dom_OBJECTS)
@@ -118,6 +119,9 @@ AM_V_lt = $(am__v_lt_$(V))
118
119
  am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
119
120
  am__v_lt_0 = --silent
120
121
  am__v_lt_1 =
122
+ am_filter_OBJECTS = filter.$(OBJEXT)
123
+ filter_OBJECTS = $(am_filter_OBJECTS)
124
+ filter_DEPENDENCIES = $(am__DEPENDENCIES_2)
121
125
  am_lsm_test_OBJECTS = lsmtest.$(OBJEXT)
122
126
  lsm_test_OBJECTS = $(am_lsm_test_OBJECTS)
123
127
  lsm_test_DEPENDENCIES = $(am__DEPENDENCIES_2)
@@ -164,10 +168,10 @@ AM_V_CCLD = $(am__v_CCLD_$(V))
164
168
  am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
165
169
  am__v_CCLD_0 = @echo " CCLD " $@;
166
170
  am__v_CCLD_1 =
167
- SOURCES = $(dom_SOURCES) $(lsm_test_SOURCES) $(str_SOURCES) \
168
- $(suite_SOURCES)
169
- DIST_SOURCES = $(dom_SOURCES) $(lsm_test_SOURCES) $(str_SOURCES) \
170
- $(suite_SOURCES)
171
+ SOURCES = $(dom_SOURCES) $(filter_SOURCES) $(lsm_test_SOURCES) \
172
+ $(str_SOURCES) $(suite_SOURCES)
173
+ DIST_SOURCES = $(dom_SOURCES) $(filter_SOURCES) $(lsm_test_SOURCES) \
174
+ $(str_SOURCES) $(suite_SOURCES)
171
175
  am__can_run_installinfo = \
172
176
  case $$AM_UPDATE_INFO_DIR in \
173
177
  n|no|NO) false;; \
@@ -261,8 +265,8 @@ INTROSPECTION_SCANNER =
261
265
  INTROSPECTION_TYPELIBDIR =
262
266
  LASEM_API_VERSION = 0.6
263
267
  LASEM_API_VERSION_U = 0_6
264
- LASEM_CFLAGS = -D_REENTRANT -I/usr/local/Cellar/gdk-pixbuf/2.30.8/include/gdk-pixbuf-2.0 -I/usr/local/Cellar/libpng/1.6.17/include/libpng16 -I/usr/local/Cellar/pango/1.36.8/include/pango-1.0 -I/usr/local/Cellar/cairo/1.12.16_1/include/cairo -I/usr/local/Cellar/glib/2.44.1/include/glib-2.0 -I/usr/local/Cellar/glib/2.44.1/lib/glib-2.0/include -I/usr/local/opt/gettext/include -I/usr/local/Cellar/pixman/0.32.6/include/pixman-1 -I/usr/local/Cellar/fontconfig/2.11.1/include -I/usr/local/Cellar/freetype/2.5.3_1/include/freetype2 -I/usr/local/Cellar/freetype/2.5.5/include/freetype2 -I/usr/local/Cellar/libpng/1.6.17/include/libpng16 -I/opt/X11/include -I/usr/include/libxml2
265
- LASEM_LIBS = -L/usr/local/Cellar/glib/2.44.1/lib -L/usr/local/Cellar/gdk-pixbuf/2.30.8/lib -L/usr/local/Cellar/pango/1.36.8/lib -L/usr/local/Cellar/glib/2.44.1/lib -L/usr/local/opt/gettext/lib -L/usr/local/Cellar/cairo/1.12.16_1/lib -lgio-2.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lintl -lcairo -lxml2 -lm
268
+ LASEM_CFLAGS = -D_REENTRANT -I/opt/X11/include/cairo -I/opt/X11/include/pixman-1 -I/opt/X11/include -I/opt/X11/include/freetype2 -I/opt/X11/include/libpng15 -I/opt/X11/include -I/usr/local/Cellar/gdk-pixbuf/2.30.8/include/gdk-pixbuf-2.0 -I/usr/local/Cellar/libpng/1.6.18/include/libpng16 -I/usr/local/Cellar/pango/1.36.8_2/include/pango-1.0 -I/usr/local/Cellar/glib/2.44.1/include/glib-2.0 -I/usr/local/Cellar/glib/2.44.1/lib/glib-2.0/include -I/usr/local/opt/gettext/include -I/usr/include/libxml2
269
+ LASEM_LIBS = -L/opt/X11/lib -L/usr/local/Cellar/glib/2.44.1/lib -L/usr/local/Cellar/gdk-pixbuf/2.30.8/lib -L/usr/local/Cellar/pango/1.36.8_2/lib -L/usr/local/Cellar/glib/2.44.1/lib -L/usr/local/opt/gettext/lib -lgio-2.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lintl -lcairo -lxml2 -lm
266
270
  LASEM_LIBTOOL_VERSION = 5:1:0
267
271
  LD = /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld
268
272
  LDFLAGS = -L/usr/local/lib
@@ -300,7 +304,7 @@ PACKAGE_VERSION = 0.5.1
300
304
  PATH_SEPARATOR = :
301
305
  PKG_CONFIG = /usr/local/bin/pkg-config
302
306
  PKG_CONFIG_LIBDIR =
303
- PKG_CONFIG_PATH =
307
+ PKG_CONFIG_PATH = /opt/X11/lib/pkgconfig:
304
308
  POFILES =
305
309
  POSUB = po
306
310
  PO_IN_DATADIR_FALSE =
@@ -328,10 +332,10 @@ am__quote =
328
332
  am__tar = $${TAR-tar} chof - "$$tardir"
329
333
  am__untar = $${TAR-tar} xf -
330
334
  bindir = ${exec_prefix}/bin
331
- build = x86_64-apple-darwin14.3.0
335
+ build = x86_64-apple-darwin14.5.0
332
336
  build_alias =
333
337
  build_cpu = x86_64
334
- build_os = darwin14.3.0
338
+ build_os = darwin14.5.0
335
339
  build_vendor = apple
336
340
  builddir = .
337
341
  datadir = ${datarootdir}
@@ -339,10 +343,10 @@ datarootdir = ${prefix}/share
339
343
  docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
340
344
  dvidir = ${docdir}
341
345
  exec_prefix = ${prefix}
342
- host = x86_64-apple-darwin14.3.0
346
+ host = x86_64-apple-darwin14.5.0
343
347
  host_alias =
344
348
  host_cpu = x86_64
345
- host_os = darwin14.3.0
349
+ host_os = darwin14.5.0
346
350
  host_vendor = apple
347
351
  htmldir = ${docdir}
348
352
  includedir = ${prefix}/include
@@ -373,7 +377,7 @@ GTESTER = gtester
373
377
  GTESTER_REPORT = gtester-report
374
378
 
375
379
  # initialize variables for unconditional += appending
376
- TEST_PROGS = dom str suite
380
+ TEST_PROGS = dom str filter suite
377
381
  AM_CPPFLAGS = -g -I$(top_srcdir)/src/ $(LASEM_CFLAGS)
378
382
  AM_CFLAGS = -Wall
379
383
  test_progs_ldadd = \
@@ -387,6 +391,8 @@ str_SOURCES = str.c
387
391
  str_LDADD = $(test_progs_ldadd)
388
392
  dom_SOURCES = dom.c
389
393
  dom_LDADD = $(test_progs_ldadd)
394
+ filter_SOURCES = filter.c
395
+ filter_LDADD = $(test_progs_ldadd)
390
396
  suite_SOURCES = suite.c
391
397
  suite_LDADD = $(test_progs_ldadd)
392
398
  suite_CFLAGS = -DSUITE_DATA_DIRECTORY="\"$(top_srcdir)/tests/data\"" -DSUITE_OPTION_FILE="\"$(top_srcdir)/tests/suite.ini\""
@@ -439,6 +445,10 @@ dom$(EXEEXT): $(dom_OBJECTS) $(dom_DEPENDENCIES) $(EXTRA_dom_DEPENDENCIES)
439
445
  @rm -f dom$(EXEEXT)
440
446
  $(AM_V_CCLD)$(LINK) $(dom_OBJECTS) $(dom_LDADD) $(LIBS)
441
447
 
448
+ filter$(EXEEXT): $(filter_OBJECTS) $(filter_DEPENDENCIES) $(EXTRA_filter_DEPENDENCIES)
449
+ @rm -f filter$(EXEEXT)
450
+ $(AM_V_CCLD)$(LINK) $(filter_OBJECTS) $(filter_LDADD) $(LIBS)
451
+
442
452
  lsm-test$(EXEEXT): $(lsm_test_OBJECTS) $(lsm_test_DEPENDENCIES) $(EXTRA_lsm_test_DEPENDENCIES)
443
453
  @rm -f lsm-test$(EXEEXT)
444
454
  $(AM_V_CCLD)$(LINK) $(lsm_test_OBJECTS) $(lsm_test_LDADD) $(LIBS)
@@ -458,6 +468,7 @@ distclean-compile:
458
468
  -rm -f *.tab.c
459
469
 
460
470
  include ./$(DEPDIR)/dom.Po
471
+ include ./$(DEPDIR)/filter.Po
461
472
  include ./$(DEPDIR)/lsmtest.Po
462
473
  include ./$(DEPDIR)/str.Po
463
474
  include ./$(DEPDIR)/suite-suite.Po