This commit is contained in:
Alexandre Lipp 2022-04-21 13:46:34 -04:00
parent c1ab01fb63
commit acd44c34b9
2 changed files with 30 additions and 14 deletions

View File

@ -1,20 +1,33 @@
# TODO : add as library!!
cmake_minimum_required(VERSION 3.20)
file(GLOB_RECURSE MSDFGEN_CORE_HEADERS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/msdfgen "core/*.h" "core/*.hpp")
file(GLOB_RECURSE MSDFGEN_CORE_SOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/msdfgen "core/*.cpp")
file(GLOB_RECURSE MSDFGEN_EXT_HEADERS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/msdfgen "ext/*.h" "ext/*.hpp")
file(GLOB_RECURSE MSDFGEN_EXT_SOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/msdfgen "ext/*.cpp" "lib/*.cpp")
file(GLOB_RECURSE MSDFGEN_CORE_HEADERS "${CMAKE_CURRENT_LIST_DIR}/msdfgen/core/*.h" "${CMAKE_CURRENT_LIST_DIR}/msdfgen/core/*.hpp")
file(GLOB_RECURSE MSDFGEN_CORE_SOURCES "${CMAKE_CURRENT_LIST_DIR}/msdfgen/core/*.cpp")
file(GLOB_RECURSE MSDFGEN_EXT_HEADERS "${CMAKE_CURRENT_LIST_DIR}/msdfgen/ext/*.h" "${CMAKE_CURRENT_LIST_DIR}/msdfgen/ext/*.hpp")
file(GLOB_RECURSE MSDFGEN_EXT_SOURCES "${CMAKE_CURRENT_LIST_DIR}/msdfgen/ext/*.cpp" "${CMAKE_CURRENT_LIST_DIR}/msdfgen/lib/*.cpp")
file(GLOB_RECURSE MSDF_ATLAS_GEN_HEADERS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "msdf-atlas-gen/*.h" "msdf-atlas-gen/*.hpp")
file(GLOB_RECURSE MSDF_ATLAS_GEN_SOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "msdf-atlas-gen/*.cpp")
file(GLOB_RECURSE MSDF_ATLAS_GEN_HEADERS "${CMAKE_CURRENT_LIST_DIR}/msdf-atlas-gen/*.h" "${CMAKE_CURRENT_LIST_DIR}/msdf-atlas-gen/*.hpp")
file(GLOB_RECURSE MSDF_ATLAS_GEN_SOURCES "${CMAKE_CURRENT_LIST_DIR}/msdf-atlas-gen/*.cpp")
message(Files ${MSDFGEN_CORE_HEADERS})
target_include_directories(${PROJECT_NAME} PUBLIC
${CMAKE_CURRENT_LIST_DIR}
"${CMAKE_CURRENT_LIST_DIR}/msdfgen"
"${CMAKE_CURRENT_LIST_DIR}/msdfgen/include"
"${CMAKE_CURRENT_LIST_DIR}/msdfgen/core"
"${CMAKE_CURRENT_LIST_DIR}/artery-font-format"
)
target_sources(${PROJECT_NAME} PUBLIC
MSDFGEN_CORE_HEADERS
MSDFGEN_CORE_SOURCES
MSDFGEN_EXT_HEADERS
MSDFGEN_EXT_SOURCES
MSDF_ATLAS_GEN_HEADERS
MSDF_ATLAS_GEN_SOURCES
"${CMAKE_CURRENT_LIST_DIR}/msdfgen/msdfgen.h"
${MSDFGEN_CORE_HEADERS}
${MSDFGEN_CORE_SOURCES}
${MSDFGEN_EXT_HEADERS}
${MSDFGEN_EXT_SOURCES}
${MSDF_ATLAS_GEN_HEADERS}
${MSDF_ATLAS_GEN_SOURCES}
)

View File

@ -30,13 +30,16 @@ void ImmediateAtlasGenerator<T, N, GEN_FN, AtlasStorage>::generate(const GlyphGe
threadAttributes[i].config.errorCorrection.buffer = errorCorrectionBuffer.data()+i*maxBoxArea;
}
Workload([this, glyphs, &threadAttributes, threadBufferSize](int i, int threadNo) -> bool {
// necessary for it to be captured or else weird error
auto foo = GEN_FN;
Workload([this, foo, glyphs, &threadAttributes, threadBufferSize](int i, int threadNo) -> bool {
const GlyphGeometry &glyph = glyphs[i];
if (!glyph.isWhitespace()) {
int l, b, w, h;
glyph.getBoxRect(l, b, w, h);
msdfgen::BitmapRef<T, N> glyphBitmap(glyphBuffer.data()+threadNo*threadBufferSize, w, h);
GEN_FN(glyphBitmap, glyph, threadAttributes[threadNo]);
foo(glyphBitmap, glyph, threadAttributes[threadNo]);
storage.put(l, b, msdfgen::BitmapConstRef<T, N>(glyphBitmap));
}
return true;