cnFontGen

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit b3b6b1f27127920193f9c667aed8841b5f435c8c
parent fb246271491a63ac1fba8162b62f262bbb36cfa8
Author: Harrison <harrison_k_a@hotmail.com>
Date:   Sun, 13 Sep 2015 21:04:03 -0400

Added padding at beginning and end

Diffstat:
McnFontGen.vcxproj | 172++++++++++++++++++++++++++++++++++++++++---------------------------------------
Msrc/main.c | 23+++++++++++++++--------
2 files changed, 103 insertions(+), 92 deletions(-)

diff --git a/cnFontGen.vcxproj b/cnFontGen.vcxproj @@ -1,85 +1,89 @@ -<?xml version="1.0" encoding="utf-8"?> -<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <ItemGroup Label="ProjectConfigurations"> - <ProjectConfiguration Include="Debug|Win32"> - <Configuration>Debug</Configuration> - <Platform>Win32</Platform> - </ProjectConfiguration> - <ProjectConfiguration Include="Release|Win32"> - <Configuration>Release</Configuration> - <Platform>Win32</Platform> - </ProjectConfiguration> - </ItemGroup> - <PropertyGroup Label="Globals"> - <ProjectGuid>{B8CD87E0-0C75-4D15-A6F7-58426BA80CD8}</ProjectGuid> - <RootNamespace>cnFontGen</RootNamespace> - </PropertyGroup> - <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> - <ConfigurationType>Application</ConfigurationType> - <UseDebugLibraries>true</UseDebugLibraries> - <PlatformToolset>v100</PlatformToolset> - <CharacterSet>MultiByte</CharacterSet> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> - <ConfigurationType>Application</ConfigurationType> - <UseDebugLibraries>false</UseDebugLibraries> - <PlatformToolset>v100</PlatformToolset> - <WholeProgramOptimization>true</WholeProgramOptimization> - <CharacterSet>MultiByte</CharacterSet> - </PropertyGroup> - <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> - <ImportGroup Label="ExtensionSettings"> - </ImportGroup> - <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> - </ImportGroup> - <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> - </ImportGroup> - <PropertyGroup Label="UserMacros" /> - <PropertyGroup /> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <ClCompile> - <WarningLevel>Level3</WarningLevel> - <Optimization>Disabled</Optimization> - <SDLCheck>true</SDLCheck> - <CompileAs>CompileAsC</CompileAs> - <RuntimeLibrary>MultiThreaded</RuntimeLibrary> - <AdditionalIncludeDirectories>$(ProjectDir)\inc;$(ProjectDir)\inc\freetype;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - </ClCompile> - <Link> - <GenerateDebugInformation>true</GenerateDebugInformation> - <AdditionalLibraryDirectories>$(ProjectDir)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> - <AdditionalDependencies>freetype.lib;lodepng.lib;%(AdditionalDependencies)</AdditionalDependencies> - </Link> - <CustomBuildStep> - <Command> - </Command> - </CustomBuildStep> - </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <ClCompile> - <WarningLevel>Level3</WarningLevel> - <Optimization>MaxSpeed</Optimization> - <FunctionLevelLinking>true</FunctionLevelLinking> - <IntrinsicFunctions>true</IntrinsicFunctions> - <SDLCheck>true</SDLCheck> - <AdditionalIncludeDirectories>$(ProjectDir)\inc;$(ProjectDir)\inc\freetype;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <CompileAs>CompileAsC</CompileAs> - </ClCompile> - <Link> - <GenerateDebugInformation>true</GenerateDebugInformation> - <EnableCOMDATFolding>true</EnableCOMDATFolding> - <OptimizeReferences>true</OptimizeReferences> - <AdditionalLibraryDirectories>$(ProjectDir)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> - <AdditionalDependencies>freetype.lib;lodepng.lib;%(AdditionalDependencies)</AdditionalDependencies> - </Link> - </ItemDefinitionGroup> - <ItemGroup> - <ClCompile Include="src\main.c" /> - </ItemGroup> - <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> - <ImportGroup Label="ExtensionTargets"> - </ImportGroup> +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{B8CD87E0-0C75-4D15-A6F7-58426BA80CD8}</ProjectGuid> + <RootNamespace>cnFontGen</RootNamespace> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <PlatformToolset>v100</PlatformToolset> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <PlatformToolset>v100</PlatformToolset> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup /> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <SDLCheck>true</SDLCheck> + <CompileAs>CompileAsC</CompileAs> + <RuntimeLibrary>MultiThreaded</RuntimeLibrary> + <AdditionalIncludeDirectories>$(ProjectDir)\inc;$(ProjectDir)\inc\freetype;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <GenerateDebugInformation>true</GenerateDebugInformation> + <AdditionalLibraryDirectories>$(ProjectDir)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalDependencies>freetype.lib;lodepng.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + <CustomBuildStep> + <Command> + </Command> + </CustomBuildStep> + <PreBuildEvent> + <Command> + </Command> + </PreBuildEvent> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <SDLCheck>true</SDLCheck> + <AdditionalIncludeDirectories>$(ProjectDir)\inc;$(ProjectDir)\inc\freetype;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <CompileAs>CompileAsC</CompileAs> + </ClCompile> + <Link> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <AdditionalLibraryDirectories>$(ProjectDir)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalDependencies>freetype.lib;lodepng.lib;%(AdditionalDependencies)</AdditionalDependencies> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="src\main.c" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> </Project> \ No newline at end of file diff --git a/src/main.c b/src/main.c @@ -11,7 +11,7 @@ typedef struct FT_Face face; }ftInfo; -int paddingSpace = 25; +int paddingSpace = 30; int paddingHeight = 60; int main(int argc, char **argv) @@ -48,7 +48,8 @@ int main(int argc, char **argv) FT_Set_Pixel_Sizes(ft.face, 0, fontHeight); g = ft.face->glyph; - for (i = 32; i < 128; ++i) + accumWidth += paddingSpace; + for (i = 33; i < 127; ++i) { FT_Load_Char(ft.face, i, FT_LOAD_RENDER); accumWidth += g->bitmap.width + paddingSpace; @@ -66,6 +67,7 @@ int main(int argc, char **argv) } } } + accumWidth += paddingSpace; bestMiddle = (maxTop + minTop) / 2; maxHei = (maxTop - minTop) + paddingHeight; @@ -73,16 +75,16 @@ int main(int argc, char **argv) outputBuffer = malloc(accumWidth*maxHei*4); memset(outputBuffer, 0x00, accumWidth*maxHei * 4); //accumWidth = 0; - for (i = 32; i < 128; ++i) + + xInc += paddingSpace; + for (i = 33; i < 127; ++i) { FT_BBox bbox; FT_Glyph gly; FT_Load_Char(ft.face, i, FT_LOAD_RENDER); printf("%c = %i \n", (char)i, g->bitmap.rows); - - - + for (j = 0; j < g->bitmap.rows; ++j) { for (k = 0; k < g->bitmap.width; ++k) @@ -94,13 +96,18 @@ int main(int argc, char **argv) } } + outputBuffer[xInc - 1] = 0xFFFF0000; + outputBuffer[xInc] = 0xFF000000; + outputBuffer[xInc + g->bitmap.width] = 0xFF000000; + outputBuffer[xInc + g->bitmap.width + 1] = 0xFFFF0000; + xInc += g->bitmap.width + paddingSpace; FT_Get_Glyph(g, &gly); FT_Glyph_Get_CBox(gly, FT_GLYPH_BBOX_PIXELS, &bbox); - // outputBuffer[xInc + (g->advance.x >> 6)] = 0xFF000000; - outputBuffer[xInc + bbox.xMin] = 0xFF000000; + //outputBuffer[xInc + (g->advance.x >> 6)] = 0xFF000000; + //outputBuffer[xInc + bbox.xMin] = 0xFF000000; }