mathematical 1.4.2 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
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