あらゆるGUIアプリケーションはマウスを扱う必要があり, SDLはマウス入力とカーソル表示を行う関数を提供している.
ほとんどのマウスとの相互作用は, イベントサブシステムを通して伝えられる. マウスを動かすとSDL_EVENT_MOUSE_MOTIONイベントが, ボタンを押すとSDL_EVENT_MOUSE_BUTTON_DOWNイベントが発生するなどである. しかし, マウスの状態はいつでもSDL_GetMouseState()で得ることもできる.
一部のゲームでは, マウス入力とマウスカーソルを関連付けないことが望ましい. 例えばFPSでは, マウスがウィンドウの枠の外に移動してプレイヤーの動きを止めたくない. この場合SDL_SetWindowRelativeMouseMode()を使うと, カーソルを隠し, マウス入力するウィンドウにグラブし, マウスがどれだけ動いてもマウス入力を読み取らせることができる.
システムにマウスを追跡させたいが, 自分でマウスカーソルを描きたい場合, SDL_HideCursor()とSDL_ShowCursor()を使うことができる. 可能ならば, SDL_CreateColorCursor()で生成されたカスタムされた画像に対してSDL_SetCursor()を使用する, または単にSDL_CreateSystemCursor()でシステムカーソルを指定し, システムにカーソルを管理させる方がより効率がよいかもしれない.
ユニークな使用法やマルチプレイヤーゲームを可能にするために, 多くの環境でSDLは接続された複数個のマウスを区別して認識できる. SDL_GetMice()で一覧を得ることができ, SDLはマウスの接続と切断があったときSDL_EVENT_MOUSE_ADDEDイベントとSDL_EVENT_MOUSE_REMOVEDイベントを発生させる.
多くのアプリケーションは基本的なマウス入力のみを扱うため, SDLはタッチスクリーンやペン入力を仮想マウスデバイスとして提供する. そのため, デスクトップアプリケーションをコードの大きな変更なしでタッチスクリーンのスマートフォンで動作させられるかもしれない. アプリケーションがマウス入力とタッチ/ペン入力を分けて扱いたい場合は, イベントをSDL_TOUCH_MOUSEID/SDL_PEN_MOUSEIDのwhichフィールドでフィルタして除外する必要がある.