sdl

package
v0.0.0-...-296174e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 9, 2025 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CaptureMouse

func CaptureMouse(window *Window) bool

func CastPointer

func CastPointer[T, P any](pointer *P) *T

func DereferencePointer

func DereferencePointer[T, P any](pointer *P) T

func DestroyRenderer

func DestroyRenderer(renderer *Renderer)

func DestroyTexture

func DestroyTexture(texture *Texture)

func DestroyWindow

func DestroyWindow(window *Window)

func FillSurfaceRect

func FillSurfaceRect(surface *Surface, rect *Rect, color uint32) error

func Free

func Free[T any](ptr *T)

func GetError

func GetError() error

func Init

func Init(flags InitFlags) error

func LockTexture

func LockTexture(texture *Texture, data *[]uint32, pitch *int) error

func MapRGB

func MapRGB(details *PixelFormatDetails, pallette *Palette, r, g, b uint8) uint32

func MapRGBA

func MapRGBA(details *PixelFormatDetails, pallette *Palette, r, g, b, a uint8) uint32

func PollEvent

func PollEvent(event *Event) bool

func Quit

func Quit()

func RenderClear

func RenderClear(renderer *Renderer) error

func RenderPresent

func RenderPresent(renderer *Renderer) error

func RenderTexture

func RenderTexture(renderer *Renderer, texture *Texture, r1, r2 *FRect)

func SetWindowRelativeMouseMode

func SetWindowRelativeMouseMode(window *Window) bool

func UnlockTexture

func UnlockTexture(texture *Texture)

Types

type Color

type Color struct {
	R, G, B, A uint8
}

type CommonEvent

type CommonEvent struct {
	Type     EventType
	Reserved uint32
	// Timestamp in nanoseconds, populated using [GetTicksNS].
	Timestamp uint64
}

CommonEvent fields are shared by every event.

type Event

type Event [128]byte

func (*Event) Key

func (e *Event) Key() KeyboardEvent

func (*Event) MouseMotion

func (e *Event) MouseMotion() MouseMotionEvent

func (*Event) Type

func (e *Event) Type() EventType

type EventType

type EventType = C.SDL_EventType
const (
	EventFirst                      EventType = 0x0
	EventQuit                       EventType = 0x100
	EventTerminating                EventType = 0x101
	EventLowMemory                  EventType = 0x102
	EventWillEnterBackground        EventType = 0x103
	EventDidEnterBackground         EventType = 0x104
	EventWillEnterForeground        EventType = 0x105
	EventDidEnterForeground         EventType = 0x106
	EventLocaleChanged              EventType = 0x107
	EventSystemThemeChanged         EventType = 0x108
	EventDisplayOrientation         EventType = 0x151
	EventDisplayFirst               EventType = 0x151
	EventDisplayAdded               EventType = 0x152
	EventDisplayRemoved             EventType = 0x153
	EventDisplayMoved               EventType = 0x154
	EventDisplayDesktopModeChanged  EventType = 0x155
	EventDisplayCurrentModeChanged  EventType = 0x156
	EventDisplayContentScaleChanged EventType = 0x157
	EventDisplayLast                EventType = 0x157
	EventWindowShown                EventType = 0x202
	EventWindowFirst                EventType = 0x202
	EventWindowHidden               EventType = 0x203
	EventWindowExposed              EventType = 0x204
	EventWindowMoved                EventType = 0x205
	EventWindowResized              EventType = 0x206
	EventWindowPixelSizeChanged     EventType = 0x207
	EventWindowMetalViewResized     EventType = 0x208
	EventWindowMinimized            EventType = 0x209
	EventWindowMaximized            EventType = 0x20A
	EventWindowRestored             EventType = 0x20B
	EventWindowMouseEnter           EventType = 0x20C
	EventWindowMouseLeave           EventType = 0x20D
	EventWindowFocusGained          EventType = 0x20E
	EventWindowFocusLost            EventType = 0x20F
	EventWindowCloseRequested       EventType = 0x210
	EventWindowHitTest              EventType = 0x211
	EventWindowICCProfChanged       EventType = 0x212
	EventWindowDisplayChanged       EventType = 0x213
	EventWindowDisplayScaleChanged  EventType = 0x214
	EventWindowSafeAreaChanged      EventType = 0x215
	EventWindowOccluded             EventType = 0x216
	EventWindowEnterFullscreen      EventType = 0x217
	EventWindowLeaveFullscreen      EventType = 0x218
	EventWindowDestroyed            EventType = 0x219
	EventWindowHDRStateChanged      EventType = 0x21A
	EventWindowLast                 EventType = 0x21A
	EventKeyDown                    EventType = 0x300
	EventKeyUp                      EventType = 0x301
	EventTextEditing                EventType = 0x302
	EventTextInput                  EventType = 0x303
	EventKeymapChanged              EventType = 0x304
	EventKeyboardAdded              EventType = 0x305
	EventKeyboardRemoved            EventType = 0x306
	EventTextEditingCandidates      EventType = 0x307
	EventMouseMotion                EventType = 0x400
	EventMouseButtonDown            EventType = 0x401
	EventMouseButtonUp              EventType = 0x402
	EventMouseWheel                 EventType = 0x403
	EventMouseAdded                 EventType = 0x404
	EventMouseRemoved               EventType = 0x405
	EventJoystickAxisMotion         EventType = 0x600
	EventJoystickBallMotion         EventType = 0x601
	EventJoystickHatMotion          EventType = 0x602
	EventJoystickButtonDown         EventType = 0x603
	EventJoystickButtonUp           EventType = 0x604
	EventJoystickAdded              EventType = 0x605
	EventJoystickRemoved            EventType = 0x606
	EventJoystickBatteryUpdated     EventType = 0x607
	EventJoystickUpdateComplete     EventType = 0x608
	EventGamepadAxisMotion          EventType = 0x650
	EventGamepadButtonDown          EventType = 0x651
	EventGamepadButtonUp            EventType = 0x652
	EventGamepadAdded               EventType = 0x653
	EventGamepadRemoved             EventType = 0x654
	EventGamepadRemapped            EventType = 0x655
	EventGamepadTouchpadDown        EventType = 0x656
	EventGamepadTouchpadMotion      EventType = 0x657
	EventGamepadTouchpadUp          EventType = 0x658
	EventGamepadSensorUpdate        EventType = 0x659
	EventGamepadUpdateComplete      EventType = 0x65A
	EventGamepadSteamHandleUpdated  EventType = 0x65B
	EventFingerDown                 EventType = 0x700
	EventFingerUp                   EventType = 0x701
	EventFingerMotion               EventType = 0x702
	EventFingerCanceled             EventType = 0x703
	EventClipboardUpdate            EventType = 0x900
	EventDropFile                   EventType = 0x1000
	EventDropText                   EventType = 0x1001
	EventDropBegin                  EventType = 0x1002
	EventDropComplete               EventType = 0x1003
	EventDropPosition               EventType = 0x1004
	EventAudioDeviceAdded           EventType = 0x1100
	EventAudioDeviceRemoved         EventType = 0x1101
	EventAudioDeviceFormatChanged   EventType = 0x1102
	EventSensorUpdate               EventType = 0x1200
	EventPenProximityIn             EventType = 0x1300
	EventPenProximityOut            EventType = 0x1301
	EventPenDown                    EventType = 0x1302
	EventPenUp                      EventType = 0x1303
	EventPenButtonDown              EventType = 0x1304
	EventPenButtonUp                EventType = 0x1305
	EventPenMotion                  EventType = 0x1306
	EventPenAxis                    EventType = 0x1307
	EventCameraDeviceAdded          EventType = 0x1400
	EventCameraDeviceRemoved        EventType = 0x1401
	EventCameraDeviceApproved       EventType = 0x1402
	EventCameraDeviceDenied         EventType = 0x1403
	EventRenderTargetsReset         EventType = 0x2000
	EventRenderDeviceReset          EventType = 0x2001
	EventRenderDeviceLost           EventType = 0x2002
	EventPrivate0                   EventType = 0x4000
	EventPrivate1                   EventType = 0x4001
	EventPrivate2                   EventType = 0x4002
	EventPrivate3                   EventType = 0x4003
	EventPollSentinel               EventType = 0x7F00
	EventUser                       EventType = 0x8000
	EventLast                       EventType = 0xFFFF
	EventEnumPadding                EventType = 0x7FFFFFFF
)

type FColor

type FColor struct {
	R, G, B, A float32
}

type FPoint

type FPoint struct {
	X, Y float32
}

type FRect

type FRect struct {
	X, Y, W, H float32
}

FRect is a rectangle, with the origin at the upper left (using floating point values).

type InitFlags

type InitFlags = C.SDL_InitFlags
const (
	InitAudio    InitFlags = 0x00000010
	InitVideo    InitFlags = 0x00000020
	InitJoystick InitFlags = 0x00000200
	InitHaptic   InitFlags = 0x00001000
	InitGamepad  InitFlags = 0x00002000
	InitEvents   InitFlags = 0x00004000
	InitSensor   InitFlags = 0x00008000
	InitCamera   InitFlags = 0x00010000
)

type KeyboardEvent

type KeyboardEvent struct {
	CommonEvent
	WindowID WindowID
	Which    KeyboardID
	Scancode Scancode
	Key      Keycode
	Mod      Keymod
	Raw      uint16
	Down     bool
	Repeat   bool
}

type KeyboardID

type KeyboardID = C.SDL_KeyboardID

type Keycode

type Keycode uint32
const (
	KeycodeScancodeMask       Keycode = 0x40000000
	KeycodeUnknown            Keycode = 0x00000000
	KeycodeReturn             Keycode = 0x0000000d
	KeycodeEscape             Keycode = 0x0000001b
	KeycodeBackspace          Keycode = 0x00000008
	KeycodeTab                Keycode = 0x00000009
	KeycodeSpace              Keycode = 0x00000020
	KeycodeExclaim            Keycode = 0x00000021
	KeycodeDblApostrophe      Keycode = 0x00000022
	KeycodeHash               Keycode = 0x00000023
	KeycodeDollar             Keycode = 0x00000024
	KeycodePercent            Keycode = 0x00000025
	KeycodeAmpersand          Keycode = 0x00000026
	KeycodeApostrophe         Keycode = 0x00000027
	KeycodeLeftParen          Keycode = 0x00000028
	KeycodeRightParen         Keycode = 0x00000029
	KeycodeAsterisk           Keycode = 0x0000002a
	KeycodePlus               Keycode = 0x0000002b
	KeycodeComma              Keycode = 0x0000002c
	KeycodeMinus              Keycode = 0x0000002d
	KeycodePeriod             Keycode = 0x0000002e
	KeycodeSlash              Keycode = 0x0000002f
	Keycode0                  Keycode = 0x00000030
	Keycode1                  Keycode = 0x00000031
	Keycode2                  Keycode = 0x00000032
	Keycode3                  Keycode = 0x00000033
	Keycode4                  Keycode = 0x00000034
	Keycode5                  Keycode = 0x00000035
	Keycode6                  Keycode = 0x00000036
	Keycode7                  Keycode = 0x00000037
	Keycode8                  Keycode = 0x00000038
	Keycode9                  Keycode = 0x00000039
	KeycodeColon              Keycode = 0x0000003a
	KeycodeSemicolon          Keycode = 0x0000003b
	KeycodeLess               Keycode = 0x0000003c
	KeycodeEquals             Keycode = 0x0000003d
	KeycodeGreater            Keycode = 0x0000003e
	KeycodeQuestion           Keycode = 0x0000003f
	KeycodeAt                 Keycode = 0x00000040
	KeycodeLeftBracket        Keycode = 0x0000005b
	KeycodeBackslash          Keycode = 0x0000005c
	KeycodeRightBracket       Keycode = 0x0000005d
	KeycodeCaret              Keycode = 0x0000005e
	KeycodeUnderscore         Keycode = 0x0000005f
	KeycodeGrave              Keycode = 0x00000060
	KeycodeA                  Keycode = 0x00000061
	KeycodeB                  Keycode = 0x00000062
	KeycodeC                  Keycode = 0x00000063
	KeycodeD                  Keycode = 0x00000064
	KeycodeE                  Keycode = 0x00000065
	KeycodeF                  Keycode = 0x00000066
	KeycodeG                  Keycode = 0x00000067
	KeycodeH                  Keycode = 0x00000068
	KeycodeI                  Keycode = 0x00000069
	KeycodeJ                  Keycode = 0x0000006a
	KeycodeK                  Keycode = 0x0000006b
	KeycodeL                  Keycode = 0x0000006c
	KeycodeM                  Keycode = 0x0000006d
	KeycodeN                  Keycode = 0x0000006e
	KeycodeO                  Keycode = 0x0000006f
	KeycodeP                  Keycode = 0x00000070
	KeycodeQ                  Keycode = 0x00000071
	KeycodeR                  Keycode = 0x00000072
	KeycodeS                  Keycode = 0x00000073
	KeycodeT                  Keycode = 0x00000074
	KeycodeU                  Keycode = 0x00000075
	KeycodeV                  Keycode = 0x00000076
	KeycodeW                  Keycode = 0x00000077
	KeycodeX                  Keycode = 0x00000078
	KeycodeY                  Keycode = 0x00000079
	KeycodeZ                  Keycode = 0x0000007a
	KeycodeLeftBrace          Keycode = 0x0000007b
	KeycodePipe               Keycode = 0x0000007c
	KeycodeRightBrace         Keycode = 0x0000007d
	KeycodeTilde              Keycode = 0x0000007e
	KeycodeDelete             Keycode = 0x0000007f
	KeycodePlusMinus          Keycode = 0x000000b1
	KeycodeCapsLock           Keycode = 0x40000039
	KeycodeF1                 Keycode = 0x4000003a
	KeycodeF2                 Keycode = 0x4000003b
	KeycodeF3                 Keycode = 0x4000003c
	KeycodeF4                 Keycode = 0x4000003d
	KeycodeF5                 Keycode = 0x4000003e
	KeycodeF6                 Keycode = 0x4000003f
	KeycodeF7                 Keycode = 0x40000040
	KeycodeF8                 Keycode = 0x40000041
	KeycodeF9                 Keycode = 0x40000042
	KeycodeF10                Keycode = 0x40000043
	KeycodeF11                Keycode = 0x40000044
	KeycodeF12                Keycode = 0x40000045
	KeycodePrintScreen        Keycode = 0x40000046
	KeycodeScrollLock         Keycode = 0x40000047
	KeycodePause              Keycode = 0x40000048
	KeycodeInsert             Keycode = 0x40000049
	KeycodeHome               Keycode = 0x4000004a
	KeycodePageUp             Keycode = 0x4000004b
	KeycodeEnd                Keycode = 0x4000004d
	KeycodePageDown           Keycode = 0x4000004e
	KeycodeRight              Keycode = 0x4000004f
	KeycodeLeft               Keycode = 0x40000050
	KeycodeDown               Keycode = 0x40000051
	KeycodeUp                 Keycode = 0x40000052
	KeycodeNumLockClear       Keycode = 0x40000053
	KeycodeKpDivide           Keycode = 0x40000054
	KeycodeKpMultiply         Keycode = 0x40000055
	KeycodeKpMinus            Keycode = 0x40000056
	KeycodeKpPlus             Keycode = 0x40000057
	KeycodeKpEnter            Keycode = 0x40000058
	KeycodeKp1                Keycode = 0x40000059
	KeycodeKp2                Keycode = 0x4000005a
	KeycodeKp3                Keycode = 0x4000005b
	KeycodeKp4                Keycode = 0x4000005c
	KeycodeKp5                Keycode = 0x4000005d
	KeycodeKp6                Keycode = 0x4000005e
	KeycodeKp7                Keycode = 0x4000005f
	KeycodeKp8                Keycode = 0x40000060
	KeycodeKp9                Keycode = 0x40000061
	KeycodeKp0                Keycode = 0x40000062
	KeycodeKpPeriod           Keycode = 0x40000063
	KeycodeApplication        Keycode = 0x40000065
	KeycodePower              Keycode = 0x40000066
	KeycodeKpEquals           Keycode = 0x40000067
	KeycodeF13                Keycode = 0x40000068
	KeycodeF14                Keycode = 0x40000069
	KeycodeF15                Keycode = 0x4000006a
	KeycodeF16                Keycode = 0x4000006b
	KeycodeF17                Keycode = 0x4000006c
	KeycodeF18                Keycode = 0x4000006d
	KeycodeF19                Keycode = 0x4000006e
	KeycodeF20                Keycode = 0x4000006f
	KeycodeF21                Keycode = 0x40000070
	KeycodeF22                Keycode = 0x40000071
	KeycodeF23                Keycode = 0x40000072
	KeycodeF24                Keycode = 0x40000073
	KeycodeExecute            Keycode = 0x40000074
	KeycodeHelp               Keycode = 0x40000075
	KeycodeMenu               Keycode = 0x40000076
	KeycodeSelect             Keycode = 0x40000077
	KeycodeStop               Keycode = 0x40000078
	KeycodeAgain              Keycode = 0x40000079
	KeycodeUndo               Keycode = 0x4000007a
	KeycodeCut                Keycode = 0x4000007b
	KeycodeCopy               Keycode = 0x4000007c
	KeycodePaste              Keycode = 0x4000007d
	KeycodeFind               Keycode = 0x4000007e
	KeycodeMute               Keycode = 0x4000007f
	KeycodeVolumeUp           Keycode = 0x40000080
	KeycodeVolumeDown         Keycode = 0x40000081
	KeycodeKpComma            Keycode = 0x40000085
	KeycodeKpEqualsAs400      Keycode = 0x40000086
	KeycodeAltErase           Keycode = 0x40000099
	KeycodeSysReq             Keycode = 0x4000009a
	KeycodeCancel             Keycode = 0x4000009b
	KeycodeClear              Keycode = 0x4000009c
	KeycodePrior              Keycode = 0x4000009d
	KeycodeReturn2            Keycode = 0x4000009e
	KeycodeSeparator          Keycode = 0x4000009f
	KeycodeOut                Keycode = 0x400000a0
	KeycodeOper               Keycode = 0x400000a1
	KeycodeClearAgain         Keycode = 0x400000a2
	KeycodeCrSel              Keycode = 0x400000a3
	KeycodeExSel              Keycode = 0x400000a4
	KeycodeKp00               Keycode = 0x400000b0
	KeycodeKp000              Keycode = 0x400000b1
	KeycodeThousandsSeparator Keycode = 0x400000b2
	KeycodeDecimalSeparator   Keycode = 0x400000b3
	KeycodeCurrencyUnit       Keycode = 0x400000b4
	KeycodeCurrencySubunit    Keycode = 0x400000b5
	KeycodeKpLeftParen        Keycode = 0x400000b6
	KeycodeKpRightParen       Keycode = 0x400000b7
	KeycodeKpLeftBrace        Keycode = 0x400000b8
	KeycodeKpRightBrace       Keycode = 0x400000b9
	KeycodeKpTab              Keycode = 0x400000ba
	KeycodeKpBackspace        Keycode = 0x400000bb
	KeycodeKpA                Keycode = 0x400000bc
	KeycodeKpB                Keycode = 0x400000bd
	KeycodeKpC                Keycode = 0x400000be
	KeycodeKpD                Keycode = 0x400000bf
	KeycodeKpE                Keycode = 0x400000c0
	KeycodeKpF                Keycode = 0x400000c1
	KeycodeKpXor              Keycode = 0x400000c2
	KeycodeKpPower            Keycode = 0x400000c3
	KeycodeKpPercent          Keycode = 0x400000c4
	KeycodeKpLess             Keycode = 0x400000c5
	KeycodeKpGreater          Keycode = 0x400000c6
	KeycodeKpAmpersand        Keycode = 0x400000c7
	KeycodeKpDblAmpersand     Keycode = 0x400000c8
	KeycodeKpVerticalBar      Keycode = 0x400000c9
	KeycodeKpDblVerticalBar   Keycode = 0x400000ca
	KeycodeKpColon            Keycode = 0x400000cb
	KeycodeKpHash             Keycode = 0x400000cc
	KeycodeKpSpace            Keycode = 0x400000cd
	KeycodeKpAt               Keycode = 0x400000ce
	KeycodeKpExclam           Keycode = 0x400000cf
	KeycodeKpMemStore         Keycode = 0x400000d0
	KeycodeKpMemRecall        Keycode = 0x400000d1
	KeycodeKpMemClear         Keycode = 0x400000d2
	KeycodeKpMemAdd           Keycode = 0x400000d3
	KeycodeKpMemSubtract      Keycode = 0x400000d4
	KeycodeKpMemMultiply      Keycode = 0x400000d5
	KeycodeKpMemDivide        Keycode = 0x400000d6
	KeycodeKpPlusMinus        Keycode = 0x400000d7
	KeycodeKpClear            Keycode = 0x400000d8
	KeycodeKpClearEntry       Keycode = 0x400000d9
	KeycodeKpBinary           Keycode = 0x400000da
	KeycodeKpOctal            Keycode = 0x400000db
	KeycodeKpDecimal          Keycode = 0x400000dc
	KeycodeKpHexadecimal      Keycode = 0x400000dd
	KeycodeLCtrl              Keycode = 0x400000e0
	KeycodeLShift             Keycode = 0x400000e1
	KeycodeLAlt               Keycode = 0x400000e2
	KeycodeLGui               Keycode = 0x400000e3
	KeycodeRCtrl              Keycode = 0x400000e4
	KeycodeRShift             Keycode = 0x400000e5
	KeycodeRAlt               Keycode = 0x400000e6
	KeycodeRGui               Keycode = 0x400000e7
	KeycodeMode               Keycode = 0x40000101
	KeycodeSleep              Keycode = 0x40000102
	KeycodeWake               Keycode = 0x40000103
	KeycodeChannelIncrement   Keycode = 0x40000104
	KeycodeChannelDecrement   Keycode = 0x40000105
	KeycodeMediaPlay          Keycode = 0x40000106
	KeycodeMediaPause         Keycode = 0x40000107
	KeycodeMediaRecord        Keycode = 0x40000108
	KeycodeMediaFastForward   Keycode = 0x40000109
	KeycodeMediaRewind        Keycode = 0x4000010a
	KeycodeMediaNextTrack     Keycode = 0x4000010b
	KeycodeMediaPreviousTrack Keycode = 0x4000010c
	KeycodeMediaStop          Keycode = 0x4000010d
	KeycodeMediaEject         Keycode = 0x4000010e
	KeycodeMediaPlayPause     Keycode = 0x4000010f
	KeycodeMediaSelect        Keycode = 0x40000110
	KeycodeAcNew              Keycode = 0x40000111
	KeycodeAcOpen             Keycode = 0x40000112
	KeycodeAcClose            Keycode = 0x40000113
	KeycodeAcExit             Keycode = 0x40000114
	KeycodeAcSave             Keycode = 0x40000115
	KeycodeAcPrint            Keycode = 0x40000116
	KeycodeAcProperties       Keycode = 0x40000117
	KeycodeAcSearch           Keycode = 0x40000118
	KeycodeAcHome             Keycode = 0x40000119
	KeycodeAcBack             Keycode = 0x4000011a
	KeycodeAcForward          Keycode = 0x4000011b
	KeycodeAcStop             Keycode = 0x4000011c
	KeycodeAcRefresh          Keycode = 0x4000011d
	KeycodeAcBookmarks        Keycode = 0x4000011e
	KeycodeSoftLeft           Keycode = 0x4000011f
	KeycodeSoftRight          Keycode = 0x40000120
	KeycodeCall               Keycode = 0x40000121
	KeycodeEndCall            Keycode = 0x40000122
	KeycodeLeftTab            Keycode = 0x20000001
	KeycodeLevel5Shift        Keycode = 0x20000002
	KeycodeMultiKeyCompose    Keycode = 0x20000003
	KeycodeLMeta              Keycode = 0x20000004
	KeycodeRMeta              Keycode = 0x20000005
	KeycodeLHyper             Keycode = 0x20000006
	KeycodeRHyper             Keycode = 0x20000007
)

type Keymod

type Keymod uint16
const (
	KeymodNone   Keymod = 0x0000
	KeymodLShift Keymod = 0x0001
	KeymodRShift Keymod = 0x0002
	KeymodLevel5 Keymod = 0x0004
	KeymodLCtrl  Keymod = 0x0040
	KeymodRCtrl  Keymod = 0x0080
	KeymodLAlt   Keymod = 0x0100
	KeymodRAlt   Keymod = 0x0200
	KeymodLGui   Keymod = 0x0400
	KeymodRGui   Keymod = 0x0800
	KeymodNum    Keymod = 0x1000
	KeymodCaps   Keymod = 0x2000
	KeymodMode   Keymod = 0x4000
	KeymodScroll Keymod = 0x8000

	KeymodCtrl  Keymod = KeymodLCtrl | KeymodRCtrl
	KeymodShift Keymod = KeymodLShift | KeymodRShift
	KeymodAlt   Keymod = KeymodLAlt | KeymodRAlt
	KeymodGui   Keymod = KeymodLGui | KeymodRGui
)

type MouseButtonFlags

type MouseButtonFlags = C.SDL_MouseButtonFlags

type MouseID

type MouseID = C.SDL_MouseID

type MouseMotionEvent

type MouseMotionEvent struct {
	CommonEvent
	WindowID WindowID
	Which    MouseID
	State    MouseButtonFlags
	X        float32
	Y        float32
	XRel     float32
	YRel     float32
}

type Palette

type Palette struct {

	// Version is for internal use only, do not touch.
	Version uint32
	// Refcount is for internal use only, do not touch.
	Refcount int32
	// contains filtered or unexported fields
}

type PixelFormat

type PixelFormat = C.SDL_PixelFormat
const (
	PixelFormatUnknown      PixelFormat = 0
	PixelFormatIndex1LSB    PixelFormat = 0x11100100
	PixelFormatIndex1MSB    PixelFormat = 0x11200100
	PixelFormatIndex2LSB    PixelFormat = 0x1C100200
	PixelFormatIndex2MSB    PixelFormat = 0x1C200200
	PixelFormatIndex4LSB    PixelFormat = 0x12100400
	PixelFormatIndex4MSB    PixelFormat = 0x12200400
	PixelFormatIndex8       PixelFormat = 0x13000801
	PixelFormatRGB332       PixelFormat = 0x14110801
	PixelFormatXRGB4444     PixelFormat = 0x15120C02
	PixelFormatXBGR4444     PixelFormat = 0x15520C02
	PixelFormatXRGB1555     PixelFormat = 0x15130F02
	PixelFormatXBGR1555     PixelFormat = 0x15530F02
	PixelFormatARGB4444     PixelFormat = 0x15321002
	PixelFormatRGBA4444     PixelFormat = 0x15421002
	PixelFormatABGR4444     PixelFormat = 0x15721002
	PixelFormatBGRA4444     PixelFormat = 0x15821002
	PixelFormatARGB1555     PixelFormat = 0x15331002
	PixelFormatRGBA5551     PixelFormat = 0x15441002
	PixelFormatABGR1555     PixelFormat = 0x15731002
	PixelFormatBGRA5551     PixelFormat = 0x15841002
	PixelFormatRGB565       PixelFormat = 0x15151002
	PixelFormatBGR565       PixelFormat = 0x15551002
	PixelFormatRGB24        PixelFormat = 0x17101803
	PixelFormatBGR24        PixelFormat = 0x17401803
	PixelFormatXRGB8888     PixelFormat = 0x16161804
	PixelFormatRGBX8888     PixelFormat = 0x16261804
	PixelFormatXBGR8888     PixelFormat = 0x16561804
	PixelFormatBGRX8888     PixelFormat = 0x16661804
	PixelFormatARGB8888     PixelFormat = 0x16362004
	PixelFormatRGBA8888     PixelFormat = 0x16462004
	PixelFormatABGR8888     PixelFormat = 0x16762004
	PixelFormatBGRA8888     PixelFormat = 0x16862004
	PixelFormatXRGB2101010  PixelFormat = 0x16172004
	PixelFormatXBGR2101010  PixelFormat = 0x16572004
	PixelFormatARGB2101010  PixelFormat = 0x16372004
	PixelFormatABGR2101010  PixelFormat = 0x16772004
	PixelFormatRGB48        PixelFormat = 0x18103006
	PixelFormatBGR48        PixelFormat = 0x18403006
	PixelFormatRGBA64       PixelFormat = 0x18204008
	PixelFormatARGB64       PixelFormat = 0x18304008
	PixelFormatBGRA64       PixelFormat = 0x18504008
	PixelFormatABGR64       PixelFormat = 0x18604008
	PixelFormatRGB48Float   PixelFormat = 0x1A103006
	PixelFormatBGR48Float   PixelFormat = 0x1A403006
	PixelFormatRGBA64Float  PixelFormat = 0x1A204008
	PixelFormatARGB64Float  PixelFormat = 0x1A304008
	PixelFormatBGRA64Float  PixelFormat = 0x1A504008
	PixelFormatABGR64Float  PixelFormat = 0x1A604008
	PixelFormatRGB96Float   PixelFormat = 0x1B10600C
	PixelFormatBGR96Float   PixelFormat = 0x1B40600C
	PixelFormatRGBA128Float PixelFormat = 0x1B208010
	PixelFormatARGB128Float PixelFormat = 0x1B308010
	PixelFormatBGRA128Float PixelFormat = 0x1B508010
	PixelFormatABGR128Float PixelFormat = 0x1B608010
	PixelFormatYV12         PixelFormat = 0x32315659
	PixelFormatIYUV         PixelFormat = 0x56555949
	PixelFormatYUY2         PixelFormat = 0x32595559
	PixelFormatUYVY         PixelFormat = 0x59565955
	PixelFormatYVYU         PixelFormat = 0x55595659
	PixelFormatNV12         PixelFormat = 0x3231564E
	PixelFormatNV21         PixelFormat = 0x3132564E
	PixelFormatP010         PixelFormat = 0x30313050
	PixelFormatExternalOES  PixelFormat = 0x2053454F
	PixelFormatRGBA32       PixelFormat = PixelFormatABGR8888
	PixelFormatARGB32       PixelFormat = PixelFormatBGRA8888
	PixelFormatBGRA32       PixelFormat = PixelFormatARGB8888
	PixelFormatABGR32       PixelFormat = PixelFormatRGBA8888
	PixelFormatRGBX32       PixelFormat = PixelFormatXBGR8888
	PixelFormatXRGB32       PixelFormat = PixelFormatBGRX8888
	PixelFormatBGRX32       PixelFormat = PixelFormatXRGB8888
	PixelFormatXBGR32       PixelFormat = PixelFormatRGBX8888
)

type PixelFormatDetails

type PixelFormatDetails struct {
	Format                         PixelFormat
	BitsPerPixel                   uint8
	BytesPerPixel                  uint8
	Padding                        [2]uint8
	Rmask, Gmask, Bmask, Amask     uint32
	Rbits, Gbits, Bbits, Abits     uint8
	Rshift, Gshift, Bshift, Ashift uint8
}

func GetPixelFormatDetails

func GetPixelFormatDetails(format PixelFormat) *PixelFormatDetails

type Point

type Point struct {
	X, Y int32
}

type Rect

type Rect struct {
	X, Y, W, H int32
}

type Renderer

type Renderer = C.SDL_Renderer

func CreateRenderer

func CreateRenderer(window *Window, name string) (*Renderer, error)

type SDLSurface

type SDLSurface = C.SDL_Surface

type Scancode

type Scancode uint32
const (
	ScancodeUnknown            Scancode = 0
	ScancodeA                  Scancode = 4
	ScancodeB                  Scancode = 5
	ScancodeC                  Scancode = 6
	ScancodeD                  Scancode = 7
	ScancodeE                  Scancode = 8
	ScancodeF                  Scancode = 9
	ScancodeG                  Scancode = 10
	ScancodeH                  Scancode = 11
	ScancodeI                  Scancode = 12
	ScancodeJ                  Scancode = 13
	ScancodeK                  Scancode = 14
	ScancodeL                  Scancode = 15
	ScancodeM                  Scancode = 16
	ScancodeN                  Scancode = 17
	ScancodeO                  Scancode = 18
	ScancodeP                  Scancode = 19
	ScancodeQ                  Scancode = 20
	ScancodeR                  Scancode = 21
	ScancodeS                  Scancode = 22
	ScancodeT                  Scancode = 23
	ScancodeU                  Scancode = 24
	ScancodeV                  Scancode = 25
	ScancodeW                  Scancode = 26
	ScancodeX                  Scancode = 27
	ScancodeY                  Scancode = 28
	ScancodeZ                  Scancode = 29
	Scancode1                  Scancode = 30
	Scancode2                  Scancode = 31
	Scancode3                  Scancode = 32
	Scancode4                  Scancode = 33
	Scancode5                  Scancode = 34
	Scancode6                  Scancode = 35
	Scancode7                  Scancode = 36
	Scancode8                  Scancode = 37
	Scancode9                  Scancode = 38
	Scancode0                  Scancode = 39
	ScancodeReturn             Scancode = 40
	ScancodeEscape             Scancode = 41
	ScancodeBackspace          Scancode = 42
	ScancodeTab                Scancode = 43
	ScancodeSpace              Scancode = 44
	ScancodeMinus              Scancode = 45
	ScancodeEquals             Scancode = 46
	ScancodeLeftBracket        Scancode = 47
	ScancodeRightBracket       Scancode = 48
	ScancodeBackslash          Scancode = 49
	ScancodeNonUSHash          Scancode = 50
	ScancodeSemicolon          Scancode = 51
	ScancodeApostrophe         Scancode = 52
	ScancodeGrave              Scancode = 53
	ScancodeComma              Scancode = 54
	ScancodePeriod             Scancode = 55
	ScancodeSlash              Scancode = 56
	ScancodeCapsLock           Scancode = 57
	ScancodeF1                 Scancode = 58
	ScancodeF2                 Scancode = 59
	ScancodeF3                 Scancode = 60
	ScancodeF4                 Scancode = 61
	ScancodeF5                 Scancode = 62
	ScancodeF6                 Scancode = 63
	ScancodeF7                 Scancode = 64
	ScancodeF8                 Scancode = 65
	ScancodeF9                 Scancode = 66
	ScancodeF10                Scancode = 67
	ScancodeF11                Scancode = 68
	ScancodeF12                Scancode = 69
	ScancodePrintScreen        Scancode = 70
	ScancodeScrollLock         Scancode = 71
	ScancodePause              Scancode = 72
	ScancodeInsert             Scancode = 73
	ScancodeHome               Scancode = 74
	ScancodePageUp             Scancode = 75
	ScancodeDelete             Scancode = 76
	ScancodeEnd                Scancode = 77
	ScancodePageDown           Scancode = 78
	ScancodeRight              Scancode = 79
	ScancodeLeft               Scancode = 80
	ScancodeDown               Scancode = 81
	ScancodeUp                 Scancode = 82
	ScancodeNumLockClear       Scancode = 83
	ScancodeKpDivide           Scancode = 84
	ScancodeKpMultiply         Scancode = 85
	ScancodeKpMinus            Scancode = 86
	ScancodeKpPlus             Scancode = 87
	ScancodeKpEnter            Scancode = 88
	ScancodeKp1                Scancode = 89
	ScancodeKp2                Scancode = 90
	ScancodeKp3                Scancode = 91
	ScancodeKp4                Scancode = 92
	ScancodeKp5                Scancode = 93
	ScancodeKp6                Scancode = 94
	ScancodeKp7                Scancode = 95
	ScancodeKp8                Scancode = 96
	ScancodeKp9                Scancode = 97
	ScancodeKp0                Scancode = 98
	ScancodeKpPeriod           Scancode = 99
	ScancodeNonUSBackslash     Scancode = 100
	ScancodeApplication        Scancode = 101
	ScancodePower              Scancode = 102
	ScancodeKpEquals           Scancode = 103
	ScancodeF13                Scancode = 104
	ScancodeF14                Scancode = 105
	ScancodeF15                Scancode = 106
	ScancodeF16                Scancode = 107
	ScancodeF17                Scancode = 108
	ScancodeF18                Scancode = 109
	ScancodeF19                Scancode = 110
	ScancodeF20                Scancode = 111
	ScancodeF21                Scancode = 112
	ScancodeF22                Scancode = 113
	ScancodeF23                Scancode = 114
	ScancodeF24                Scancode = 115
	ScancodeExecute            Scancode = 116
	ScancodeHelp               Scancode = 117
	ScancodeMenu               Scancode = 118
	ScancodeSelect             Scancode = 119
	ScancodeStop               Scancode = 120
	ScancodeAgain              Scancode = 121
	ScancodeUndo               Scancode = 122
	ScancodeCut                Scancode = 123
	ScancodeCopy               Scancode = 124
	ScancodePaste              Scancode = 125
	ScancodeFind               Scancode = 126
	ScancodeMute               Scancode = 127
	ScancodeVolumeUp           Scancode = 128
	ScancodeVolumeDown         Scancode = 129
	ScancodeKpComma            Scancode = 133
	ScancodeKpEqualsAs400      Scancode = 134
	ScancodeInternational1     Scancode = 135
	ScancodeInternational2     Scancode = 136
	ScancodeInternational3     Scancode = 137
	ScancodeInternational4     Scancode = 138
	ScancodeInternational5     Scancode = 139
	ScancodeInternational6     Scancode = 140
	ScancodeInternational7     Scancode = 141
	ScancodeInternational8     Scancode = 142
	ScancodeInternational9     Scancode = 143
	ScancodeLang1              Scancode = 144
	ScancodeLang2              Scancode = 145
	ScancodeLang3              Scancode = 146
	ScancodeLang4              Scancode = 147
	ScancodeLang5              Scancode = 148
	ScancodeLang6              Scancode = 149
	ScancodeLang7              Scancode = 150
	ScancodeLang8              Scancode = 151
	ScancodeLang9              Scancode = 152
	ScancodeAltErase           Scancode = 153
	ScancodeSysReq             Scancode = 154
	ScancodeCancel             Scancode = 155
	ScancodeClear              Scancode = 156
	ScancodePrior              Scancode = 157
	ScancodeReturn2            Scancode = 158
	ScancodeSeparator          Scancode = 159
	ScancodeOut                Scancode = 160
	ScancodeOper               Scancode = 161
	ScancodeClearAgain         Scancode = 162
	ScancodeCrSel              Scancode = 163
	ScancodeExSel              Scancode = 164
	ScancodeKp00               Scancode = 176
	ScancodeKp000              Scancode = 177
	ScancodeThousandsSeparator Scancode = 178
	ScancodeDecimalSeparator   Scancode = 179
	ScancodeCurrencyUnit       Scancode = 180
	ScancodeCurrencySubunit    Scancode = 181
	ScancodeKpLeftParen        Scancode = 182
	ScancodeKpRightParen       Scancode = 183
	ScancodeKpLeftBrace        Scancode = 184
	ScancodeKpRightBrace       Scancode = 185
	ScancodeKpTab              Scancode = 186
	ScancodeKpBackspace        Scancode = 187
	ScancodeKpA                Scancode = 188
	ScancodeKpB                Scancode = 189
	ScancodeKpC                Scancode = 190
	ScancodeKpD                Scancode = 191
	ScancodeKpE                Scancode = 192
	ScancodeKpF                Scancode = 193
	ScancodeKpXor              Scancode = 194
	ScancodeKpPower            Scancode = 195
	ScancodeKpPercent          Scancode = 196
	ScancodeKpLess             Scancode = 197
	ScancodeKpGreater          Scancode = 198
	ScancodeKpAmpersand        Scancode = 199
	ScancodeKpDblAmpersand     Scancode = 200
	ScancodeKpVerticalBar      Scancode = 201
	ScancodeKpDblverticalBar   Scancode = 202
	ScancodeKpColon            Scancode = 203
	ScancodeKpHash             Scancode = 204
	ScancodeKpSpace            Scancode = 205
	ScancodeKpAt               Scancode = 206
	ScancodeKpExclam           Scancode = 207
	ScancodeKpMemStore         Scancode = 208
	ScancodeKpMemRecall        Scancode = 209
	ScancodeKpMemClear         Scancode = 210
	ScancodeKpMemAdd           Scancode = 211
	ScancodeKpMemSubtract      Scancode = 212
	ScancodeKpMemMultiply      Scancode = 213
	ScancodeKpMemDivide        Scancode = 214
	ScancodeKpPlusMinus        Scancode = 215
	ScancodeKpClear            Scancode = 216
	ScancodeKpClearEntry       Scancode = 217
	ScancodeKpBinary           Scancode = 218
	ScancodeKpOctal            Scancode = 219
	ScancodeKpDecimal          Scancode = 220
	ScancodeKpHexadecimal      Scancode = 221
	ScancodeLCtrl              Scancode = 224
	ScancodeLShift             Scancode = 225
	ScancodeLAlt               Scancode = 226
	ScancodeLGui               Scancode = 227
	ScancodeRCtrl              Scancode = 228
	ScancodeRShift             Scancode = 229
	ScancodeRAlt               Scancode = 230
	ScancodeRGui               Scancode = 231
	ScancodeMode               Scancode = 257
	ScancodeSleep              Scancode = 258
	ScancodeWake               Scancode = 259
	ScancodeChannelIncrement   Scancode = 260
	ScancodeChannelDecrement   Scancode = 261
	ScancodeMediaPlay          Scancode = 262
	ScancodeMediaPause         Scancode = 263
	ScancodeMediaRecord        Scancode = 264
	ScancodeMediaFastForward   Scancode = 265
	ScancodeMediaRewind        Scancode = 266
	ScancodeMediaNextTrack     Scancode = 267
	ScancodeMediaPreviousTrack Scancode = 268
	ScancodeMediaStop          Scancode = 269
	ScancodeMediaEject         Scancode = 270
	ScancodeMediaPlayPause     Scancode = 271
	ScancodeMediaSelect        Scancode = 272
	ScancodeAcNew              Scancode = 273
	ScancodeAcOpen             Scancode = 274
	ScancodeAcClose            Scancode = 275
	ScancodeAcExit             Scancode = 276
	ScancodeAcSave             Scancode = 277
	ScancodeAcPrint            Scancode = 278
	ScancodeAcProperties       Scancode = 279
	ScancodeAcSearch           Scancode = 280
	ScancodeAcHome             Scancode = 281
	ScancodeAcBack             Scancode = 282
	ScancodeAcForward          Scancode = 283
	ScancodeAcStop             Scancode = 284
	ScancodeAcRefresh          Scancode = 285
	ScancodeAcBookmarks        Scancode = 286
	ScancodeSoftLeft           Scancode = 287
	ScancodeSoftRight          Scancode = 288
	ScancodeCall               Scancode = 289
	ScancodeEndCall            Scancode = 290
	ScancodeReserved           Scancode = 400
	ScancodeCount              Scancode = 512
)

type Surface

type Surface struct {
	Flags    SurfaceFlags
	Format   PixelFormat
	W        int32
	H        int32
	Pitch    int32
	Pixels   unsafe.Pointer
	Refcount int32
	Reserved unsafe.Pointer
}

func LockTextureToSurface

func LockTextureToSurface(texture *Texture, rect *Rect, surface *Surface) (*Surface, error)

type SurfaceFlags

type SurfaceFlags = C.SDL_SurfaceFlags
const (
	SurfacePreallocated SurfaceFlags = 1 << iota
	SurfaceLockNeeded
	SurfaceLocked
	SurfaceSIMDAligned
)

type Texture

type Texture struct {
	Format   PixelFormat
	W        int32
	H        int32
	Refcount int32
}

func CreateTexture

func CreateTexture(renderer *Renderer, format PixelFormat, access TextureAccess, w int32, h int32) (*Texture, error)

type TextureAccess

type TextureAccess = C.SDL_TextureAccess
const (
	TextureAccessStatic TextureAccess = iota
	TextureAccessStreaming
	TextureAccessTarget
)

type Window

type Window = C.SDL_Window

func CreateWindow

func CreateWindow(name string, width, height int32, flags WindowFlags) (*Window, error)

type WindowFlags

type WindowFlags = C.SDL_WindowFlags
const (
	WindowFullscreen        WindowFlags = 0x0000000000000001
	WindowOpenGL            WindowFlags = 0x0000000000000002
	WindowOccluded          WindowFlags = 0x0000000000000004
	WindowHidden            WindowFlags = 0x0000000000000008
	WindowBorderless        WindowFlags = 0x0000000000000010
	WindowResizable         WindowFlags = 0x0000000000000020
	WindowMinimized         WindowFlags = 0x0000000000000040
	WindowMaximized         WindowFlags = 0x0000000000000080
	WindowMouseGrabbed      WindowFlags = 0x0000000000000100
	WindowInputFocus        WindowFlags = 0x0000000000000200
	WindowMouseFocus        WindowFlags = 0x0000000000000400
	WindowExternal          WindowFlags = 0x0000000000000800
	WindowModal             WindowFlags = 0x0000000000001000
	WindowHighPixelDensity  WindowFlags = 0x0000000000002000
	WindowMouseCapture      WindowFlags = 0x0000000000004000
	WindowMouseRelativeMode WindowFlags = 0x0000000000008000
	WindowAlwaysOnTop       WindowFlags = 0x0000000000010000
	WindowUtility           WindowFlags = 0x0000000000020000
	WindowTooltip           WindowFlags = 0x0000000000040000
	WindowPopupMenu         WindowFlags = 0x0000000000080000
	WindowKeyboardGrabbed   WindowFlags = 0x0000000000100000
	WindowVulkan            WindowFlags = 0x0000000010000000
	WindowMetal             WindowFlags = 0x0000000020000000
	WindowTransparent       WindowFlags = 0x0000000040000000
	WindowNotFocusable      WindowFlags = 0x0000000080000000
)

type WindowID

type WindowID = C.SDL_WindowID

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL