public static void LoadFont(string fontPath) { var surf = SDL_image.IMG_Load(fontPath); if (surf == IntPtr.Zero) { Console.WriteLine("Font loading failed, things about to break"); Console.WriteLine(SDL_image.IMG_GetError()); return; } var fontSurface = Marshal.PtrToStructure <SDL.SDL_Surface>(surf); fontWidth = fontSurface.w; fontHeight = fontSurface.h; fontBuffer = new bool[fontWidth, fontHeight]; unsafe { Color32 *colors = (Color32 *)fontSurface.pixels; for (int i = 0; i < fontWidth; i++) { for (int j = 0; j < fontHeight; j++) { int fontColorBufferIndex = (j * fontWidth) + i; fontBuffer[i, fontHeight - j - 1] = colors[fontColorBufferIndex].r > 0; } } } fontWidth = fontSurface.w / 16; fontHeight = fontSurface.h / 8; }