Status Notes Audio output: supported With any format and frequency.
Note: PSVita natively supports only S16 MONO/S16 STEREO output. Thus, for other output formats SDL2 will automatically convert sound stream. This can impact performance.
Audio input: supported
Status Notes Joystick: supported Up to 4 joysticks (0-3). Gamepad: supported Up to 4 gamepads (0-3). Vibration: supported With DS3/DS4 LED Control: supported With DS4 Keyboard: supported With BT-keyboard Mouse: supported With BT-mouse or via touch->mouse emulation On-screen keyboard/IME: supported With both GXM and gles/gles2(via PVR) renderers. Sensors: supported Gyro/Accelerometer. Touch: supported Both front (ID 0) and back (ID 1) touchpads. Note: by default front touchpad produces mouse events.
this can be controlled by setting few SDL hints:
SDL_HINT_TOUCH_MOUSE_EVENTS: "0" - Touch events will not generate mouse events "1" - Touch events will generate mouse events (default)
SDL_HINT_VITA_TOUCH_MOUSE_DEVICE: "0" - Only front touchpad should generate mouse events. Default "1" - Only back touchpad should generate mouse events. "2" - Both touchpads should generate mouse events.
Status Notes Threads/Mutexes/Semaphores/Timers: supported CPU/System info: supported Filesystem/RWops: supported Shared objects: unsupported Locale: supported URL opening: supported Power info: supported
Status Notes Renderers: supported There's native GXM renderer built by default. There's also support for gles/gles2 renderers via PVR_PSP2.
For gles/gles2 renderers (and context creation) SDL2 must be built with VIDEO_VITA_PVR cmake option.
Message boxes: supported With both GXM and PVR Textures: supported GXM renderer supports ARGB/ABGR/RGB565/BGR565/YV12/IYUV/NV12/NV21 native textures (e.g. no conversion).
gles/gles2 renderer does YUV conversion via shaders.
OpenGL context: supported gles/gles2 context creation is supported via PVR. SDL Texture to opengl context binding: semi-supported Supported only with PVR backend and gles/gles2. Custom texture blend modes: semi-supported Supported only with PVR backend and gles/gles2. Note: for PVR support you must:
- Build SDL with PVR support
- Pack pvr .suprx modules into app0:module
- Be sure to pack only one gles pvr module (GLESv1_CM or GLESv2), depending on context version you intend to use
- VITA_MODULE_PATH - where to look for suprx modules (default is app0:module)
- VITA_PVR_SKIP_INIT - set to 0 if you want to provide custom PVRSRV_PSP2_APPHINT. You'll need to load modules and init pvr yourself.
TL;DR: if you don't want/need gles context - stick to default GXM renderer. It supports everything you'll need and provides best performance.