Beispiel #1
0
            public FreeTypeStreamWrapper(Stream stream)
            {
                _stream      = stream;
                _startOffset = stream.Position;

                var ftStream = new FT_Stream.Win32()
                {
                    @base = IntPtr.Zero,
                    pos   = 0,
                    size  = 0x7FFFFFFF, // Tells FreeType the size of the stream is unknown
                    read  = Marshal.GetFunctionPointerForDelegate(IoFuncWin32),
                    close = Marshal.GetFunctionPointerForDelegate(CloseFunc)
                };

                _ftStream       = ftStream;
                _ftStreamHandle = GCHandle.Alloc(_ftStream, GCHandleType.Pinned);

                var ftOpenArgs = new FT_Open_Args.Win32()
                {
                    flags  = FT_OPEN_STREAM,
                    stream = _ftStreamHandle.AddrOfPinnedObject()
                };

                FT_Open_ArgsWin32 = ftOpenArgs;
            }
Beispiel #2
0
 private static extern int _FT_Open_Face_Win32(IntPtr library, ref FT_Open_Args.Win32 args, int face_index, out IntPtr aface);