123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- #region MIT License
- #endregion
- using System;
- using System.Runtime.InteropServices;
- using SharpFont.Internal;
- namespace SharpFont
- {
-
-
-
-
-
-
-
-
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- public delegate void GenericFinalizer(IntPtr @object);
-
-
-
-
-
-
-
-
-
-
-
- public class Generic
- {
- #region Fields
- private GenericRec rec;
- #endregion
- #region Constructors
-
-
-
-
-
-
-
- public Generic(IntPtr data, GenericFinalizer finalizer)
- {
- rec.data = data;
- rec.finalizer = finalizer;
- }
- internal Generic(GenericRec genInternal)
- {
- rec = genInternal;
- }
- internal Generic(IntPtr reference)
- {
- rec = PInvokeHelper.PtrToStructure<GenericRec>(reference);
- }
- internal Generic(IntPtr reference, int offset)
- : this(new IntPtr(reference.ToInt64() + offset))
- {
- }
- #endregion
- #region Properties
-
-
-
- public static int SizeInBytes
- {
- get
- {
- return Marshal.SizeOf(typeof(GenericRec));
- }
- }
-
-
-
-
- public IntPtr Data
- {
- get
- {
- return rec.data;
- }
-
- set
- {
- rec.data = value;
- }
- }
-
-
-
-
- public GenericFinalizer Finalizer
- {
- get
- {
- return rec.finalizer;
- }
- set
- {
- rec.finalizer = value;
- }
- }
- #endregion
- #region Methods
-
- internal void WriteToUnmanagedMemory(IntPtr location)
- {
- Marshal.WriteIntPtr(location, rec.data);
- Marshal.WriteIntPtr(location, IntPtr.Size, Marshal.GetFunctionPointerForDelegate(rec.finalizer));
- }
- #endregion
- }
- }
|