8 Commits

Author SHA1 Message Date
646eebaf63 Test something new with ABI changes.
All checks were successful
Build / build (push) Successful in 2m32s
2024-07-18 21:43:52 +03:00
163e9d4423 Increment version counter.
All checks were successful
Build / build (push) Successful in 2m15s
2024-06-29 14:27:50 +03:00
a79bbbaa6a Explicitly set some structure layouts. 2024-06-29 14:27:29 +03:00
e9baf01af0 Update rc version.
All checks were successful
Build / build (push) Successful in 2m11s
2024-06-21 12:46:53 +03:00
e238a7aa57 Fix incorrect ABI for GlyphSlotInteral on windows. 2024-06-21 12:46:34 +03:00
827b9fc902 Change freetype ABI.
All checks were successful
Build / build (push) Successful in 2m14s
2024-06-21 12:27:08 +03:00
ad8845c13b Change the directory again.
All checks were successful
Build / build (push) Successful in 2m14s
2024-06-20 15:13:35 +03:00
a77f4c8be5 Fix cmake compile options?
Some checks failed
Build / build (push) Failing after 36s
2024-06-20 15:12:36 +03:00
4 changed files with 63 additions and 60 deletions

View File

@@ -11,7 +11,7 @@
<!-- Nuget Properties. -->
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
<PackageId>ReFuel.FreeType</PackageId>
<Version>0.1.0-rc.1</Version>
<Version>0.1.0-rc.5</Version>
<Authors>FreeType Authors, H. Utku Maden</Authors>
<Description>
A C# wrapper for the FreeType font loading library.

View File

@@ -40,32 +40,33 @@ namespace ReFuel.FreeType
public long YMax;
}
[StructLayout(LayoutKind.Explicit, Size = 248)]
internal struct FTFaceInternal
{
public long NumberOfFaces;
public long FaceIndex;
public long FaceFlags;
public long StyleFlags;
public long NumberOfGlyphs;
public IntPtr FamilyName;
public IntPtr StyleName;
public int NumberOfFixedSizes;
public IntPtr AvailableSizes;
public int NumberOfCharMaps;
public IntPtr Charmaps;
public FTGeneric Generic;
public FTBox BoundingBox;
public ushort UnitsPerEm;
public short Ascender;
public short Descender;
public short Height;
public short MaxAdvanceWidth;
public short MaxAdvanceHeight;
public short UnderlinePosition;
public short UnderlineThickness;
public FTGlyphSlot Glyph;
public IntPtr Size;
public IntPtr Charmap;
[FieldOffset(0)] public long NumberOfFaces;
[FieldOffset(8)] public long FaceIndex;
[FieldOffset(16)] public long FaceFlags;
[FieldOffset(24)] public long StyleFlags;
[FieldOffset(32)] public long NumberOfGlyphs;
[FieldOffset(40)] public IntPtr FamilyName;
[FieldOffset(48)] public IntPtr StyleName;
[FieldOffset(56)] public int NumberOfFixedSizes;
[FieldOffset(64)] public IntPtr AvailableSizes;
[FieldOffset(72)] public int NumberOfCharMaps;
[FieldOffset(80)] public IntPtr Charmaps;
[FieldOffset(88)] public FTGeneric Generic;
[FieldOffset(104)] public FTBox BoundingBox;
[FieldOffset(136)] public ushort UnitsPerEm;
[FieldOffset(138)] public short Ascender;
[FieldOffset(140)] public short Descender;
[FieldOffset(142)] public short Height;
[FieldOffset(144)] public short MaxAdvanceWidth;
[FieldOffset(146)] public short MaxAdvanceHeight;
[FieldOffset(148)] public short UnderlinePosition;
[FieldOffset(150)] public short UnderlineThickness;
[FieldOffset(152)] public FTGlyphSlot Glyph;
[FieldOffset(160)] public IntPtr Size;
[FieldOffset(168)] public IntPtr Charmap;
// Rest of the struct is private to implementation.
}
@@ -82,52 +83,54 @@ namespace ReFuel.FreeType
public long Y;
}
[StructLayout(LayoutKind.Explicit)]
public struct FTBitmap
{
public uint Rows;
public uint Width;
public int Pitch;
public IntPtr Buffer;
public ushort NumberOfGrays;
public byte PixelMode;
public byte PaletteMode;
public IntPtr Palette;
[FieldOffset(0)] public uint Rows;
[FieldOffset(4)] public uint Width;
[FieldOffset(8)] public int Pitch;
[FieldOffset(16)] public IntPtr Buffer;
[FieldOffset(24)] public ushort NumberOfGrays;
[FieldOffset(26)] public byte PixelMode;
[FieldOffset(27)] public byte PaletteMode;
[FieldOffset(32)] public IntPtr Palette;
}
public struct FTOutline
{
public short NumberOfContours;
public short NumberOfPoints;
public short NumberOfPoints;
public IntPtr Points;
public IntPtr Tags;
public IntPtr Contours;
public int Flags;
}
[StructLayout(LayoutKind.Explicit, Size = 296)]
internal struct FTGlyphSlotInternal
{
public FTLibrary Library;
public FTFace Face;
public FTGlyphSlot Next;
public uint GlyphIndex;
public FTGeneric Generic;
public FTGlyphMetrics Metrics;
public long LinearHorizontalAdvance;
public long LinearVerticalAdvance;
public FTVector Advance;
public int Format;
public FTBitmap Bitmap;
public int BitmapLeft;
public int BitmapTop;
public FTOutline Outline;
public uint NumberOfSubGlyphs;
public IntPtr SubGlyphs;
public IntPtr ControlData;
public long ControlLength;
public long LsbDelta;
public long RsbDelta;
public IntPtr Other;
public IntPtr Internal;
[FieldOffset(0)] public FTLibrary Library;
[FieldOffset(8)] public FTFace Face;
[FieldOffset(16)] public FTGlyphSlot Next;
[FieldOffset(24)] public uint GlyphIndex;
[FieldOffset(32)] public FTGeneric Generic;
[FieldOffset(48)] public FTGlyphMetrics Metrics;
[FieldOffset(112)] public int LinearHorizontalAdvance;
[FieldOffset(116)] public int LinearVerticalAdvance;
[FieldOffset(120)] public FTVector Advance;
[FieldOffset(136)] public int Format;
[FieldOffset(144)] public FTBitmap Bitmap;
[FieldOffset(184)] public int BitmapLeft;
[FieldOffset(188)] public int BitmapTop;
[FieldOffset(192)] public FTOutline Outline;
[FieldOffset(232)] public uint NumberOfSubGlyphs;
[FieldOffset(240)] public IntPtr SubGlyphs;
[FieldOffset(248)] public IntPtr ControlData;
[FieldOffset(256)] public long ControlLength;
[FieldOffset(264)] public long LsbDelta;
[FieldOffset(272)] public long RsbDelta;
[FieldOffset(280)] public IntPtr Other;
[FieldOffset(288)] public IntPtr Internal;
}
public unsafe struct FTGlyphSlot

View File

@@ -6,11 +6,11 @@ export NOINSTALL=1
export REFUEL_ADDITIONAL_CMAKE="-D BUILD_SHARED_LIBS=true -D NO_SONAME=true"
# Clang Builds
./docker-cross-compiler/sh/build_native.sh "$PWD" "osx-arm64 osx-x64"
./docker-cross-compiler/sh/build_native.sh "$PWD/freetype" "osx-arm64 osx-x64"
# GCC Builds
export REFUEL_ADDITIONAL_CMAKE="$REFUEL_ADDITIONAL_CMAKE -D CMAKE_CXX_FLAGS=\"-static-libgcc -static-libstdc++ -fno-exceptions\""
./docker-cross-compiler/sh/build_native.sh "$PWD" "linux-arm linux-arm64 linux-x64 win-x64 win-x86"
export REFUEL_ADDITIONAL_CMAKE="$REFUEL_ADDITIONAL_CMAKE -D COMPILE_OPTIONS=\"-static-libgcc;-static-libstdc++;-fno-exceptions\""
./docker-cross-compiler/sh/build_native.sh "$PWD/freetype" "linux-arm linux-arm64 linux-x64 win-x64 win-x86"
# Copy out natives from their respective directories into runtimes
mkdir -p \