Add initial font metrics and equation rendering.

This commit is contained in:
jmsgrogan 2023-01-25 16:51:36 +00:00
parent c2027801be
commit 5ddd54dd6d
24 changed files with 868 additions and 63 deletions

View file

@ -4,23 +4,24 @@ if(UNIX)
find_package(Freetype QUIET)
if(Freetype_FOUND)
set(PLATFORM_UNIT_TEST_FILES
fonts/TestFreeTypeFontEngine.cpp
TestFreeTypeFontEngine.cpp
)
endif()
else()
set(PLATFORM_UNIT_TEST_FILES
fonts/TestDirectWriteFontEngine.cpp
TestDirectWriteFontEngine.cpp
)
endif()
set(MODULE_NAME fonts)
list(APPEND UNIT_TEST_FILES
TestFontReader.cpp
${PLATFORM_UNIT_TEST_FILES}
)
set(FONTS_UNIT_TEST_FILES
fonts/TestFontReader.cpp
${PLATFORM_UNIT_TEST_FILES}
PARENT_SCOPE
)
set(FONTS_UNIT_TEST_DEPENDENCIES
fonts
PARENT_SCOPE
)
set(UNIT_TEST_TARGET_NAME ${MODULE_NAME}_unit_tests)
add_executable(${UNIT_TEST_TARGET_NAME} ${CMAKE_SOURCE_DIR}/test/test_runner.cpp ${UNIT_TEST_FILES})
target_link_libraries(${UNIT_TEST_TARGET_NAME} PUBLIC test_utils fonts)
set_property(TARGET ${UNIT_TEST_TARGET_NAME} PROPERTY FOLDER test/${MODULE_NAME})

View file

@ -9,6 +9,7 @@
#include "SvgWriter.h"
#include "SvgShapeElements.h"
#include "File.h"
#include "FontItem.h"
TEST_CASE(TestDirectWriteFontEngine, "fonts")
{
@ -33,4 +34,17 @@ TEST_CASE(TestDirectWriteFontEngine, "fonts")
File file(TestUtils::getTestOutputDir(__FILE__) / "out.svg");
file.writeText(doc_string);
}
TEST_CASE(TestDirectWriteFontEngine_GlyphMetrics, "fonts")
{
DirectWriteFontEngine font_engine;
font_engine.initialize();
FontItem font("Verdana", 16);
const auto advance = font_engine.getHorizontalAdvance(font, "abc");
MLOG_INFO("Advance is: " << advance);
REQUIRE(advance != 0.0);
}