module sdl3::sdl; typedef BlendMode = uint; const BlendMode BLENDMODE_NONE @builtin = 0x00000000; const BlendMode BLENDMODE_BLEND @builtin = 0x00000001; const BlendMode BLENDMODE_BLEND_PREMULTIPLIED @builtin = 0x00000010; const BlendMode BLENDMODE_ADD @builtin = 0x00000002; const BlendMode BLENDMODE_ADD_PREMULTIPLIED @builtin = 0x00000020; const BlendMode BLENDMODE_MOD @builtin = 0x00000004; const BlendMode BLENDMODE_MUL @builtin = 0x00000008; const BlendMode BLENDMODE_INVALID @builtin = 0x7FFFFFFF; typedef BlendOperation = CInt; const BlendOperation BLENDOPERATION_ADD @builtin = 0x1; const BlendOperation BLENDOPERATION_SUBTRACT @builtin = 0x2; const BlendOperation BLENDOPERATION_REV_SUBTRACT @builtin = 0x3; const BlendOperation BLENDOPERATION_MINIMUM @builtin = 0x4; const BlendOperation BLENDOPERATION_MAXIMUM @builtin = 0x5; typedef BlendFactor = CInt; const BlendFactor BLENDFACTOR_ZERO @builtin = 0x1; const BlendFactor BLENDFACTOR_ONE @builtin = 0x2; const BlendFactor BLENDFACTOR_SRC_COLOR @builtin = 0x3; const BlendFactor BLENDFACTOR_ONE_MINUS_SRC_COLOR @builtin = 0x4; const BlendFactor BLENDFACTOR_SRC_ALPHA @builtin = 0x5; const BlendFactor BLENDFACTOR_ONE_MINUS_SRC_ALPHA @builtin = 0x6; const BlendFactor BLENDFACTOR_DST_COLOR @builtin = 0x7; const BlendFactor BLENDFACTOR_ONE_MINUS_DST_COLOR @builtin = 0x8; const BlendFactor BLENDFACTOR_DST_ALPHA @builtin = 0x9; const BlendFactor BLENDFACTOR_ONE_MINUS_DST_ALPHA @builtin = 0xA; extern fn BlendMode compose_custom_blend_mode(BlendFactor srcColorFactor, BlendFactor dstColorFactor, BlendOperation colorOperation, BlendFactor srcAlphaFactor, BlendFactor dstAlphaFactor, BlendOperation alphaOperation) @extern("SDL_ComposeCustomBlendMode");