added sdl_image and sdl_ttf

This commit is contained in:
WizzardMaker 2024-12-01 19:37:28 +01:00
parent f4001dad7d
commit 5b0abdca7c
9 changed files with 965 additions and 18 deletions

8
.gitmodules vendored
View File

@ -1,3 +1,11 @@
[submodule "SDL"]
path = External/SDL
url = https://github.com/libsdl-org/SDL
[submodule "SDL_image"]
path = External/SDL_image
url = https://github.com/libsdl-org/SDL_image.git
branch = main
[submodule "SDL_ttf"]
path = External/SDL_ttf
url = https://github.com/libsdl-org/SDL_ttf.git
branch = main

1
External/SDL_image vendored Submodule

@ -0,0 +1 @@
Subproject commit 0d418a2a2dc562699854d9c2fc264304ec404e2c

1
External/SDL_ttf vendored Submodule

@ -0,0 +1 @@
Subproject commit 582c6957161d6cc4d3b09cae37744bdfe3700368

View File

@ -28,6 +28,7 @@ using System.Runtime.InteropServices;
namespace SDL
{
[NativeTypeName("int")]
public enum SDL_AudioFormat : uint
{
SDL_AUDIO_UNKNOWN = 0x0000U,

View File

@ -89,6 +89,7 @@ namespace SDL
SDL_PACKEDLAYOUT_1010102,
}
[NativeTypeName("int")]
public enum SDL_PixelFormat : uint
{
SDL_PIXELFORMAT_UNKNOWN = 0,
@ -239,6 +240,7 @@ namespace SDL
SDL_CHROMA_LOCATION_TOPLEFT = 3,
}
[NativeTypeName("int")]
public enum SDL_Colorspace : uint
{
SDL_COLORSPACE_UNKNOWN = 0,

View File

@ -0,0 +1,283 @@
/*
<auto-generated/>
C# bindings for Simple DirectMedia Layer.
Original copyright notice of input files:
Simple DirectMedia Layer
Copyright (C) 1997-2024 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
*/
using System.Runtime.InteropServices;
namespace SDL
{
public unsafe partial struct IMG_Animation
{
public int w;
public int h;
public int count;
public SDL_Surface** frames;
public int* delays;
}
public static unsafe partial class SDL3
{
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern int IMG_Version();
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("IMG_InitFlags")]
public static extern uint IMG_Init([NativeTypeName("IMG_InitFlags")] uint flags);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern void IMG_Quit();
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Surface* IMG_LoadTyped_IO(SDL_IOStream* src, [NativeTypeName("bool")] SDLBool closeio, [NativeTypeName("const char *")] byte* type);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Surface* IMG_Load([NativeTypeName("const char *")] byte* file);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Surface* IMG_Load_IO(SDL_IOStream* src, [NativeTypeName("bool")] SDLBool closeio);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Texture* IMG_LoadTexture(SDL_Renderer* renderer, [NativeTypeName("const char *")] byte* file);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Texture* IMG_LoadTexture_IO(SDL_Renderer* renderer, SDL_IOStream* src, [NativeTypeName("bool")] SDLBool closeio);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Texture* IMG_LoadTextureTyped_IO(SDL_Renderer* renderer, SDL_IOStream* src, [NativeTypeName("bool")] SDLBool closeio, [NativeTypeName("const char *")] byte* type);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool IMG_isAVIF(SDL_IOStream* src);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool IMG_isICO(SDL_IOStream* src);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool IMG_isCUR(SDL_IOStream* src);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool IMG_isBMP(SDL_IOStream* src);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool IMG_isGIF(SDL_IOStream* src);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool IMG_isJPG(SDL_IOStream* src);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool IMG_isJXL(SDL_IOStream* src);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool IMG_isLBM(SDL_IOStream* src);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool IMG_isPCX(SDL_IOStream* src);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool IMG_isPNG(SDL_IOStream* src);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool IMG_isPNM(SDL_IOStream* src);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool IMG_isSVG(SDL_IOStream* src);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool IMG_isQOI(SDL_IOStream* src);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool IMG_isTIF(SDL_IOStream* src);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool IMG_isXCF(SDL_IOStream* src);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool IMG_isXPM(SDL_IOStream* src);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool IMG_isXV(SDL_IOStream* src);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool IMG_isWEBP(SDL_IOStream* src);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Surface* IMG_LoadAVIF_IO(SDL_IOStream* src);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Surface* IMG_LoadICO_IO(SDL_IOStream* src);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Surface* IMG_LoadCUR_IO(SDL_IOStream* src);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Surface* IMG_LoadBMP_IO(SDL_IOStream* src);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Surface* IMG_LoadGIF_IO(SDL_IOStream* src);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Surface* IMG_LoadJPG_IO(SDL_IOStream* src);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Surface* IMG_LoadJXL_IO(SDL_IOStream* src);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Surface* IMG_LoadLBM_IO(SDL_IOStream* src);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Surface* IMG_LoadPCX_IO(SDL_IOStream* src);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Surface* IMG_LoadPNG_IO(SDL_IOStream* src);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Surface* IMG_LoadPNM_IO(SDL_IOStream* src);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Surface* IMG_LoadSVG_IO(SDL_IOStream* src);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Surface* IMG_LoadQOI_IO(SDL_IOStream* src);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Surface* IMG_LoadTGA_IO(SDL_IOStream* src);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Surface* IMG_LoadTIF_IO(SDL_IOStream* src);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Surface* IMG_LoadXCF_IO(SDL_IOStream* src);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Surface* IMG_LoadXPM_IO(SDL_IOStream* src);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Surface* IMG_LoadXV_IO(SDL_IOStream* src);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Surface* IMG_LoadWEBP_IO(SDL_IOStream* src);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Surface* IMG_LoadSizedSVG_IO(SDL_IOStream* src, int width, int height);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Surface* IMG_ReadXPMFromArray([NativeTypeName("char **")] byte** xpm);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Surface* IMG_ReadXPMFromArrayToRGB888([NativeTypeName("char **")] byte** xpm);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool IMG_SaveAVIF(SDL_Surface* surface, [NativeTypeName("const char *")] byte* file, int quality);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool IMG_SaveAVIF_IO(SDL_Surface* surface, SDL_IOStream* dst, int closeio, int quality);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool IMG_SavePNG(SDL_Surface* surface, [NativeTypeName("const char *")] byte* file);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool IMG_SavePNG_IO(SDL_Surface* surface, SDL_IOStream* dst, int closeio);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool IMG_SaveJPG(SDL_Surface* surface, [NativeTypeName("const char *")] byte* file, int quality);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool IMG_SaveJPG_IO(SDL_Surface* surface, SDL_IOStream* dst, int closeio, int quality);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern IMG_Animation* IMG_LoadAnimation([NativeTypeName("const char *")] byte* file);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern IMG_Animation* IMG_LoadAnimation_IO(SDL_IOStream* src, [NativeTypeName("bool")] SDLBool closeio);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern IMG_Animation* IMG_LoadAnimationTyped_IO(SDL_IOStream* src, [NativeTypeName("bool")] SDLBool closeio, [NativeTypeName("const char *")] byte* type);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern void IMG_FreeAnimation(IMG_Animation* anim);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern IMG_Animation* IMG_LoadGIFAnimation_IO(SDL_IOStream* src);
[DllImport("SDL3_image", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern IMG_Animation* IMG_LoadWEBPAnimation_IO(SDL_IOStream* src);
[NativeTypeName("#define SDL_IMAGE_MAJOR_VERSION 3")]
public const int SDL_IMAGE_MAJOR_VERSION = 3;
[NativeTypeName("#define SDL_IMAGE_MINOR_VERSION 1")]
public const int SDL_IMAGE_MINOR_VERSION = 1;
[NativeTypeName("#define SDL_IMAGE_MICRO_VERSION 0")]
public const int SDL_IMAGE_MICRO_VERSION = 0;
[NativeTypeName("#define SDL_IMAGE_VERSION SDL_VERSIONNUM(SDL_IMAGE_MAJOR_VERSION, SDL_IMAGE_MINOR_VERSION, SDL_IMAGE_MICRO_VERSION)")]
public const int SDL_IMAGE_VERSION = ((3) * 1000000 + (1) * 1000 + (0));
[NativeTypeName("#define IMG_INIT_JPG 0x00000001")]
public const int IMG_INIT_JPG = 0x00000001;
[NativeTypeName("#define IMG_INIT_PNG 0x00000002")]
public const int IMG_INIT_PNG = 0x00000002;
[NativeTypeName("#define IMG_INIT_TIF 0x00000004")]
public const int IMG_INIT_TIF = 0x00000004;
[NativeTypeName("#define IMG_INIT_WEBP 0x00000008")]
public const int IMG_INIT_WEBP = 0x00000008;
[NativeTypeName("#define IMG_INIT_JXL 0x00000010")]
public const int IMG_INIT_JXL = 0x00000010;
[NativeTypeName("#define IMG_INIT_AVIF 0x00000020")]
public const int IMG_INIT_AVIF = 0x00000020;
}
}

View File

@ -0,0 +1,131 @@
/*
<auto-generated/>
C# bindings for Simple DirectMedia Layer.
Original copyright notice of input files:
Simple DirectMedia Layer
Copyright (C) 1997-2024 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
*/
using System;
using System.Runtime.InteropServices;
namespace SDL
{
public enum TTF_DrawCommand
{
TTF_DRAW_COMMAND_NOOP,
TTF_DRAW_COMMAND_FILL,
TTF_DRAW_COMMAND_COPY,
}
public partial struct TTF_FillOperation
{
public TTF_DrawCommand cmd;
public SDL_Rect rect;
}
public partial struct TTF_CopyOperation
{
public TTF_DrawCommand cmd;
public int text_offset;
[NativeTypeName("Uint32")]
public uint glyph_index;
public SDL_Rect src;
public SDL_Rect dst;
[NativeTypeName("void*")]
public IntPtr reserved;
}
[StructLayout(LayoutKind.Explicit)]
public partial struct TTF_DrawOperation
{
[FieldOffset(0)]
public TTF_DrawCommand cmd;
[FieldOffset(0)]
public TTF_FillOperation fill;
[FieldOffset(0)]
public TTF_CopyOperation copy;
}
public partial struct TTF_TextLayout
{
}
public unsafe partial struct TTF_TextData
{
public TTF_Font* font;
public SDL_FColor color;
[NativeTypeName("bool")]
public SDLBool needs_layout_update;
public TTF_TextLayout* layout;
public int x;
public int y;
public int w;
public int h;
public int num_ops;
public TTF_DrawOperation* ops;
public int num_clusters;
public TTF_SubString* clusters;
public SDL_PropertiesID props;
[NativeTypeName("bool")]
public SDLBool needs_engine_update;
public TTF_TextEngine* engine;
[NativeTypeName("void*")]
public IntPtr engine_text;
}
public unsafe partial struct TTF_TextEngine
{
[NativeTypeName("Uint32")]
public uint version;
[NativeTypeName("void*")]
public IntPtr userdata;
[NativeTypeName("bool (*)(void *, TTF_Text *)")]
public delegate* unmanaged[Cdecl]<IntPtr, TTF_Text*, SDLBool> CreateText;
[NativeTypeName("void (*)(void *, TTF_Text *)")]
public delegate* unmanaged[Cdecl]<IntPtr, TTF_Text*, void> DestroyText;
}
}

View File

@ -0,0 +1,506 @@
/*
<auto-generated/>
C# bindings for Simple DirectMedia Layer.
Original copyright notice of input files:
Simple DirectMedia Layer
Copyright (C) 1997-2024 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
*/
using System;
using System.Runtime.InteropServices;
namespace SDL
{
public partial struct TTF_Font
{
}
public enum TTF_HorizontalAlignment
{
TTF_HORIZONTAL_ALIGN_INVALID = -1,
TTF_HORIZONTAL_ALIGN_LEFT,
TTF_HORIZONTAL_ALIGN_CENTER,
TTF_HORIZONTAL_ALIGN_RIGHT,
}
public enum TTF_Direction
{
TTF_DIRECTION_LTR = 0,
TTF_DIRECTION_RTL,
TTF_DIRECTION_TTB,
TTF_DIRECTION_BTT,
}
public partial struct TTF_TextEngine
{
}
public partial struct TTF_TextData
{
}
public unsafe partial struct TTF_Text
{
[NativeTypeName("char *")]
public byte* text;
public int num_lines;
public int refcount;
public TTF_TextData* @internal;
}
public partial struct TTF_SubString
{
[NativeTypeName("TTF_SubStringFlags")]
public uint flags;
public int offset;
public int length;
public int line_index;
public int cluster_index;
public SDL_Rect rect;
}
public static unsafe partial class SDL3
{
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern int TTF_Version();
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern void TTF_GetFreeTypeVersion(int* major, int* minor, int* patch);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern void TTF_GetHarfBuzzVersion(int* major, int* minor, int* patch);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_Init();
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern TTF_Font* TTF_OpenFont([NativeTypeName("const char *")] byte* file, float ptsize);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern TTF_Font* TTF_OpenFontIO(SDL_IOStream* src, [NativeTypeName("bool")] SDLBool closeio, float ptsize);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern TTF_Font* TTF_OpenFontWithProperties(SDL_PropertiesID props);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_PropertiesID TTF_GetFontProperties(TTF_Font* font);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("Uint32")]
public static extern uint TTF_GetFontGeneration(TTF_Font* font);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_SetFontSize(TTF_Font* font, float ptsize);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_SetFontSizeDPI(TTF_Font* font, float ptsize, int hdpi, int vdpi);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern float TTF_GetFontSize(TTF_Font* font);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_GetFontDPI(TTF_Font* font, int* hdpi, int* vdpi);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern void TTF_SetFontStyle(TTF_Font* font, int style);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern int TTF_GetFontStyle([NativeTypeName("const TTF_Font *")] TTF_Font* font);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_SetFontOutline(TTF_Font* font, int outline);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern int TTF_GetFontOutline([NativeTypeName("const TTF_Font *")] TTF_Font* font);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern void TTF_SetFontHinting(TTF_Font* font, int hinting);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern int TTF_GetFontHinting([NativeTypeName("const TTF_Font *")] TTF_Font* font);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_SetFontSDF(TTF_Font* font, [NativeTypeName("bool")] SDLBool enabled);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_GetFontSDF([NativeTypeName("const TTF_Font *")] TTF_Font* font);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern void TTF_SetFontWrapAlignment(TTF_Font* font, TTF_HorizontalAlignment align);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern TTF_HorizontalAlignment TTF_GetFontWrapAlignment([NativeTypeName("const TTF_Font *")] TTF_Font* font);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern int TTF_GetFontHeight([NativeTypeName("const TTF_Font *")] TTF_Font* font);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern int TTF_GetFontAscent([NativeTypeName("const TTF_Font *")] TTF_Font* font);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern int TTF_GetFontDescent([NativeTypeName("const TTF_Font *")] TTF_Font* font);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern void TTF_SetFontLineSkip(TTF_Font* font, int lineskip);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern int TTF_GetFontLineSkip([NativeTypeName("const TTF_Font *")] TTF_Font* font);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern void TTF_SetFontKerning(TTF_Font* font, [NativeTypeName("bool")] SDLBool enabled);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_GetFontKerning([NativeTypeName("const TTF_Font *")] TTF_Font* font);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_FontIsFixedWidth([NativeTypeName("const TTF_Font *")] TTF_Font* font);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_FontIsScalable([NativeTypeName("const TTF_Font *")] TTF_Font* font);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("const char *")]
public static extern byte* TTF_GetFontFamilyName([NativeTypeName("const TTF_Font *")] TTF_Font* font);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("const char *")]
public static extern byte* TTF_GetFontStyleName([NativeTypeName("const TTF_Font *")] TTF_Font* font);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Surface* TTF_RenderText_Solid(TTF_Font* font, [NativeTypeName("const char *")] byte* text, [NativeTypeName("size_t")] nuint length, SDL_Color fg);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Surface* TTF_RenderText_Solid_Wrapped(TTF_Font* font, [NativeTypeName("const char *")] byte* text, [NativeTypeName("size_t")] nuint length, SDL_Color fg, int wrapLength);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Surface* TTF_RenderGlyph_Solid(TTF_Font* font, [NativeTypeName("Uint32")] uint ch, SDL_Color fg);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_SetFontDirection(TTF_Font* font, TTF_Direction direction);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern TTF_Direction TTF_GetFontDirection(TTF_Font* font);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_SetFontScript(TTF_Font* font, [NativeTypeName("const char *")] byte* script);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_GetGlyphScript([NativeTypeName("Uint32")] uint ch, [NativeTypeName("char *")] byte* script, [NativeTypeName("size_t")] nuint script_size);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_SetFontLanguage(TTF_Font* font, [NativeTypeName("const char *")] byte* language_bcp47);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_FontHasGlyph(TTF_Font* font, [NativeTypeName("Uint32")] uint ch);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Surface* TTF_GetGlyphImage(TTF_Font* font, [NativeTypeName("Uint32")] uint ch);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Surface* TTF_GetGlyphImageForIndex(TTF_Font* font, [NativeTypeName("Uint32")] uint glyph_index);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_GetGlyphMetrics(TTF_Font* font, [NativeTypeName("Uint32")] uint ch, int* minx, int* maxx, int* miny, int* maxy, int* advance);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_GetGlyphKerning(TTF_Font* font, [NativeTypeName("Uint32")] uint previous_ch, [NativeTypeName("Uint32")] uint ch, int* kerning);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_GetStringSize(TTF_Font* font, [NativeTypeName("const char *")] byte* text, [NativeTypeName("size_t")] nuint length, int* w, int* h);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_GetStringSizeWrapped(TTF_Font* font, [NativeTypeName("const char *")] byte* text, [NativeTypeName("size_t")] nuint length, int wrap_width, int* w, int* h);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_MeasureString(TTF_Font* font, [NativeTypeName("const char *")] byte* text, [NativeTypeName("size_t")] nuint length, int max_width, int* measured_width, [NativeTypeName("size_t *")] nuint* measured_length);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Surface* TTF_RenderText_Shaded(TTF_Font* font, [NativeTypeName("const char *")] byte* text, [NativeTypeName("size_t")] nuint length, SDL_Color fg, SDL_Color bg);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Surface* TTF_RenderText_Shaded_Wrapped(TTF_Font* font, [NativeTypeName("const char *")] byte* text, [NativeTypeName("size_t")] nuint length, SDL_Color fg, SDL_Color bg, int wrap_width);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Surface* TTF_RenderGlyph_Shaded(TTF_Font* font, [NativeTypeName("Uint32")] uint ch, SDL_Color fg, SDL_Color bg);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Surface* TTF_RenderText_Blended(TTF_Font* font, [NativeTypeName("const char *")] byte* text, [NativeTypeName("size_t")] nuint length, SDL_Color fg);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Surface* TTF_RenderText_Blended_Wrapped(TTF_Font* font, [NativeTypeName("const char *")] byte* text, [NativeTypeName("size_t")] nuint length, SDL_Color fg, int wrap_width);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Surface* TTF_RenderGlyph_Blended(TTF_Font* font, [NativeTypeName("Uint32")] uint ch, SDL_Color fg);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Surface* TTF_RenderText_LCD(TTF_Font* font, [NativeTypeName("const char *")] byte* text, [NativeTypeName("size_t")] nuint length, SDL_Color fg, SDL_Color bg);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Surface* TTF_RenderText_LCD_Wrapped(TTF_Font* font, [NativeTypeName("const char *")] byte* text, [NativeTypeName("size_t")] nuint length, SDL_Color fg, SDL_Color bg, int wrap_width);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Surface* TTF_RenderGlyph_LCD(TTF_Font* font, [NativeTypeName("Uint32")] uint ch, SDL_Color fg, SDL_Color bg);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern TTF_TextEngine* TTF_CreateSurfaceTextEngine();
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_DrawSurfaceText(TTF_Text* text, int x, int y, SDL_Surface* surface);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern void TTF_DestroySurfaceTextEngine(TTF_TextEngine* engine);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern TTF_TextEngine* TTF_CreateRendererTextEngine(SDL_Renderer* renderer);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_DrawRendererText(TTF_Text* text, float x, float y);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern void TTF_DestroyRendererTextEngine(TTF_TextEngine* engine);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern TTF_Text* TTF_CreateText(TTF_TextEngine* engine, TTF_Font* font, [NativeTypeName("const char *")] byte* text, [NativeTypeName("size_t")] nuint length);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_PropertiesID TTF_GetTextProperties(TTF_Text* text);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_SetTextEngine(TTF_Text* text, TTF_TextEngine* engine);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern TTF_TextEngine* TTF_GetTextEngine(TTF_Text* text);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_SetTextFont(TTF_Text* text, TTF_Font* font);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern TTF_Font* TTF_GetTextFont(TTF_Text* text);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_SetTextColor(TTF_Text* text, [NativeTypeName("Uint8")] byte r, [NativeTypeName("Uint8")] byte g, [NativeTypeName("Uint8")] byte b, [NativeTypeName("Uint8")] byte a);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_SetTextColorFloat(TTF_Text* text, float r, float g, float b, float a);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_GetTextColor(TTF_Text* text, [NativeTypeName("Uint8 *")] byte* r, [NativeTypeName("Uint8 *")] byte* g, [NativeTypeName("Uint8 *")] byte* b, [NativeTypeName("Uint8 *")] byte* a);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_GetTextColorFloat(TTF_Text* text, float* r, float* g, float* b, float* a);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_SetTextPosition(TTF_Text* text, int x, int y);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_GetTextPosition(TTF_Text* text, int* x, int* y);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_SetTextWrapWidth(TTF_Text* text, int wrap_width);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_GetTextWrapWidth(TTF_Text* text, int* wrap_width);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_SetTextWrapWhitespaceVisible(TTF_Text* text, [NativeTypeName("bool")] SDLBool visible);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_TextWrapWhitespaceVisible(TTF_Text* text);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_SetTextString(TTF_Text* text, [NativeTypeName("const char *")] byte* @string, [NativeTypeName("size_t")] nuint length);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_InsertTextString(TTF_Text* text, int offset, [NativeTypeName("const char *")] byte* @string, [NativeTypeName("size_t")] nuint length);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_AppendTextString(TTF_Text* text, [NativeTypeName("const char *")] byte* @string, [NativeTypeName("size_t")] nuint length);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_DeleteTextString(TTF_Text* text, int offset, int length);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_GetTextSize(TTF_Text* text, int* w, int* h);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_GetTextSubString(TTF_Text* text, int offset, TTF_SubString* substring);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_GetTextSubStringForLine(TTF_Text* text, int line, TTF_SubString* substring);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern TTF_SubString** TTF_GetTextSubStringsForRange(TTF_Text* text, int offset, int length, int* count);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_GetTextSubStringForPoint(TTF_Text* text, int x, int y, TTF_SubString* substring);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_GetPreviousTextSubString(TTF_Text* text, [NativeTypeName("const TTF_SubString *")] TTF_SubString* substring, TTF_SubString* previous);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_GetNextTextSubString(TTF_Text* text, [NativeTypeName("const TTF_SubString *")] TTF_SubString* substring, TTF_SubString* next);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool TTF_UpdateText(TTF_Text* text);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern void TTF_DestroyText(TTF_Text* text);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern void TTF_CloseFont(TTF_Font* font);
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern void TTF_Quit();
[DllImport("SDL3_ttf", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern int TTF_WasInit();
[NativeTypeName("#define SDL_TTF_MAJOR_VERSION 3")]
public const int SDL_TTF_MAJOR_VERSION = 3;
[NativeTypeName("#define SDL_TTF_MINOR_VERSION 0")]
public const int SDL_TTF_MINOR_VERSION = 0;
[NativeTypeName("#define SDL_TTF_MICRO_VERSION 0")]
public const int SDL_TTF_MICRO_VERSION = 0;
[NativeTypeName("#define SDL_TTF_VERSION SDL_VERSIONNUM(SDL_TTF_MAJOR_VERSION, SDL_TTF_MINOR_VERSION, SDL_TTF_MICRO_VERSION)")]
public const int SDL_TTF_VERSION = ((3) * 1000000 + (0) * 1000 + (0));
[NativeTypeName("#define TTF_PROP_FONT_CREATE_FILENAME_STRING \"SDL_ttf.font.create.filename\"")]
public static ReadOnlySpan<byte> TTF_PROP_FONT_CREATE_FILENAME_STRING => "SDL_ttf.font.create.filename"u8;
[NativeTypeName("#define TTF_PROP_FONT_CREATE_IOSTREAM_POINTER \"SDL_ttf.font.create.iostream\"")]
public static ReadOnlySpan<byte> TTF_PROP_FONT_CREATE_IOSTREAM_POINTER => "SDL_ttf.font.create.iostream"u8;
[NativeTypeName("#define TTF_PROP_FONT_CREATE_IOSTREAM_OFFSET_NUMBER \"SDL_ttf.font.create.iostream.offset\"")]
public static ReadOnlySpan<byte> TTF_PROP_FONT_CREATE_IOSTREAM_OFFSET_NUMBER => "SDL_ttf.font.create.iostream.offset"u8;
[NativeTypeName("#define TTF_PROP_FONT_CREATE_IOSTREAM_AUTOCLOSE_BOOLEAN \"SDL_ttf.font.create.iostream.autoclose\"")]
public static ReadOnlySpan<byte> TTF_PROP_FONT_CREATE_IOSTREAM_AUTOCLOSE_BOOLEAN => "SDL_ttf.font.create.iostream.autoclose"u8;
[NativeTypeName("#define TTF_PROP_FONT_CREATE_SIZE_FLOAT \"SDL_ttf.font.create.size\"")]
public static ReadOnlySpan<byte> TTF_PROP_FONT_CREATE_SIZE_FLOAT => "SDL_ttf.font.create.size"u8;
[NativeTypeName("#define TTF_PROP_FONT_CREATE_FACE_NUMBER \"SDL_ttf.font.create.face\"")]
public static ReadOnlySpan<byte> TTF_PROP_FONT_CREATE_FACE_NUMBER => "SDL_ttf.font.create.face"u8;
[NativeTypeName("#define TTF_PROP_FONT_CREATE_HORIZONTAL_DPI_NUMBER \"SDL_ttf.font.create.hdpi\"")]
public static ReadOnlySpan<byte> TTF_PROP_FONT_CREATE_HORIZONTAL_DPI_NUMBER => "SDL_ttf.font.create.hdpi"u8;
[NativeTypeName("#define TTF_PROP_FONT_CREATE_VERTICAL_DPI_NUMBER \"SDL_ttf.font.create.vdpi\"")]
public static ReadOnlySpan<byte> TTF_PROP_FONT_CREATE_VERTICAL_DPI_NUMBER => "SDL_ttf.font.create.vdpi"u8;
[NativeTypeName("#define TTF_STYLE_NORMAL 0x00")]
public const int TTF_STYLE_NORMAL = 0x00;
[NativeTypeName("#define TTF_STYLE_BOLD 0x01")]
public const int TTF_STYLE_BOLD = 0x01;
[NativeTypeName("#define TTF_STYLE_ITALIC 0x02")]
public const int TTF_STYLE_ITALIC = 0x02;
[NativeTypeName("#define TTF_STYLE_UNDERLINE 0x04")]
public const int TTF_STYLE_UNDERLINE = 0x04;
[NativeTypeName("#define TTF_STYLE_STRIKETHROUGH 0x08")]
public const int TTF_STYLE_STRIKETHROUGH = 0x08;
[NativeTypeName("#define TTF_HINTING_NORMAL 0")]
public const int TTF_HINTING_NORMAL = 0;
[NativeTypeName("#define TTF_HINTING_LIGHT 1")]
public const int TTF_HINTING_LIGHT = 1;
[NativeTypeName("#define TTF_HINTING_MONO 2")]
public const int TTF_HINTING_MONO = 2;
[NativeTypeName("#define TTF_HINTING_NONE 3")]
public const int TTF_HINTING_NONE = 3;
[NativeTypeName("#define TTF_HINTING_LIGHT_SUBPIXEL 4")]
public const int TTF_HINTING_LIGHT_SUBPIXEL = 4;
[NativeTypeName("#define TTF_SUBSTRING_TEXT_START 0x00000001")]
public const int TTF_SUBSTRING_TEXT_START = 0x00000001;
[NativeTypeName("#define TTF_SUBSTRING_LINE_START 0x00000002")]
public const int TTF_SUBSTRING_LINE_START = 0x00000002;
[NativeTypeName("#define TTF_SUBSTRING_LINE_END 0x00000004")]
public const int TTF_SUBSTRING_LINE_END = 0x00000004;
[NativeTypeName("#define TTF_SUBSTRING_TEXT_END 0x00000008")]
public const int TTF_SUBSTRING_TEXT_END = 0x00000008;
}
}

View File

@ -34,8 +34,14 @@ unsafe_prefix = "Unsafe_"
repository_root = pathlib.Path(__file__).resolve().parents[1]
SDL_root = repository_root / "External" / "SDL"
SDL_include_root = SDL_root / "include"
SDL_lib_root = "External"
SDL_libs = ["SDL", "SDL_image", "SDL_ttf"]
SDL_lib_include_root = {
"SDL3": SDL_lib_root + "/SDL/include",
"SDL3_image": SDL_lib_root + "/SDL_image/include",
"SDL3_ttf": SDL_lib_root + "/SDL_ttf/include"
}
SDL3_header_base = "SDL3" # base folder of header files
csproj_root = repository_root / "SDL3-CS"
@ -44,12 +50,13 @@ csproj_root = repository_root / "SDL3-CS"
class Header:
"""Represents a SDL header file that is used in ClangSharp generation."""
def __init__(self, base: str, name: str, output_suffix=None):
assert base == SDL3_header_base
def __init__(self, base: str, name: str, folder: str, output_suffix=None):
assert base in SDL_lib_include_root
assert name.startswith("SDL")
assert not name.endswith(".h")
self.base = base
self.name = name
self.folder = folder
self.output_suffix = output_suffix
def __str__(self):
@ -60,8 +67,8 @@ class Header:
return f"{self.name}.h"
def input_file(self):
"""Input header file relative to SDL_include_root."""
return f"{self.base}/{self.name}.h"
"""Input header file relative to repository_root."""
return f"{self.folder}/{self.base}/{self.name}.h"
def output_file(self):
"""Location of generated C# file."""
@ -99,14 +106,14 @@ def make_header_fuzzy(s: str) -> Header:
if name.endswith(".h"):
name = name.replace(".h", "")
return Header(base, name)
return Header(base, name, SDL_lib_include_root[base])
def add(s: str):
base, name = s.split("/")
assert s.endswith(".h")
name = name.replace(".h", "")
return Header(base, name)
return Header(base, name, SDL_lib_include_root[base])
headers = [
@ -160,22 +167,26 @@ headers = [
add("SDL3/SDL_version.h"),
add("SDL3/SDL_video.h"),
add("SDL3/SDL_vulkan.h"),
add("SDL3_image/SDL_image.h"),
add("SDL3_ttf/SDL_ttf.h"),
add("SDL3_ttf/SDL_textengine.h"),
]
def prepare_sdl_source():
subprocess.run([
"git",
"reset",
"--hard",
"HEAD"
], cwd=SDL_root)
for lib in SDL_libs:
subprocess.run([
"git",
"reset",
"--hard",
"HEAD"
], cwd=repository_root / SDL_lib_root / lib)
def get_sdl_api_dump():
subprocess.run([
sys.executable,
SDL_root / "src" / "dynapi" / "gendynapi.py",
repository_root / SDL_lib_root / "SDL" / "src" / "dynapi" / "gendynapi.py",
"--dump"
])
@ -250,9 +261,11 @@ base_command = [
"windows-types",
"generate-macro-bindings",
"--file-directory", SDL_include_root,
"--include-directory", SDL_include_root,
"--libraryPath", "SDL3",
"--file-directory", repository_root,
"--include-directory", repository_root / SDL_lib_include_root["SDL3"],
"--include-directory", repository_root / SDL_lib_include_root["SDL3_image"],
"--include-directory", repository_root / SDL_lib_include_root["SDL3_ttf"],
# "--libraryPath", "SDL3",
"--methodClassName", "SDL3",
"--namespace", "SDL",
@ -295,6 +308,7 @@ def run_clangsharp(command, header: Header):
cmd = command + [
"--file", header.input_file(),
"--output", header.output_file(),
"--libraryPath", header.base,
]
for rsp in header.rsp_files():