PreProgramClass.cs 1.0 KB

123456789101112131415161718192021222324252627282930313233
  1. using System;
  2. using System.Runtime.InteropServices;
  3. namespace FastReport.Fonts
  4. {
  5. /////////////////////////////////////////////////////////////////////////////////////////////////
  6. // PreProgramm table
  7. /////////////////////////////////////////////////////////////////////////////////////////////////
  8. class PreProgramClass : TrueTypeTable
  9. {
  10. private byte[] program;
  11. internal override void Load(IntPtr font)
  12. {
  13. uint length = ((this.Length + 3) / 4) * 4;
  14. program = new byte[length];
  15. IntPtr program_ptr = Increment(font, (int)this.Offset);
  16. Marshal.Copy(program_ptr, program, 0, program.Length);
  17. }
  18. internal override uint Save(IntPtr font, uint offset)
  19. {
  20. this.Offset = offset;
  21. IntPtr program_ptr = Increment(font, (int)offset);
  22. Marshal.Copy(program, 0, program_ptr, program.Length);
  23. return offset + (uint)program.Length;
  24. }
  25. public PreProgramClass(TrueTypeTable src) : base(src) { }
  26. }
  27. }