Simple DirectMedia Layer https://libsdl.org
Find a file
rofl0r 7b6695f4d4 PSP: zero-copy WindowSurface API for direct VRAM access
if all one needs is a raw framebuffer to the PSP's vram,
instead of dealing with renderers and textures, that need to be
copied hence and forth, this method allows one to create a window,
set the pixel format using SDL_SetWindowDisplayMode() - preferably
BGR565 for optimal speed (the other possible natively supported
option is ABGR8888) - and then request SDL_GetWindowSurface(),
which provides one with a surface with direct framebuffer access.
note that the pixels pointer inside the surface will be switched
after each call because of double-buffering.

it's advisable to overwrite all pixels of the PSP visible area
(480x272) to not encounter old data.

after writing the pixels, a call to SDL_UpdateWindowSurface()
sends the changes to the graphics chip.

the result is a raw framerate of 250 fps with BGR565 mode, under
optimal circumstances - i.e. nothing else is done than drawing,
and the drawing loop is as simple as possible.
that leaves about 12 ms per frame for other tasks and still allow
a fluent 60 fps.
2024-03-24 11:33:32 -07:00
.github ci: update deprecated node.js 16 actions 2024-02-23 22:02:13 +01:00
acinclude autotools: a few libtool updates from mainstream 2024-01-28 20:04:34 +03:00
android-project Fix bug #9331 - SDL3 Android crash getVibrator() == null 2024-03-23 16:32:00 -07:00
android-project-ant Added the old ant Android build project structure 2017-10-28 12:11:25 -07:00
build-scripts Fixed "${folder^}Activity: bad substitution" with bash 3.2 on macOS 2024-03-05 13:47:59 -08:00
cmake cmake: we only need a C++ compiler for Android, Haiku and UWP 2024-03-11 01:26:13 +01:00
docs gdk: Backport SDL3 MR #8844 2024-01-21 13:55:17 -05:00
include Add checks for memfd_create() and posix_fallocate() to the autotools build 2024-03-13 11:23:43 -04:00
mingw/pkg-support/cmake cmake: else() does not need an argument 2022-10-20 13:29:35 +02:00
src PSP: zero-copy WindowSurface API for direct VRAM access 2024-03-24 11:33:32 -07:00
test cmake: we only need a C++ compiler for Android, Haiku and UWP 2024-03-11 01:26:13 +01:00
VisualC Added the environment variable SDL_LOGGING to control default log output 2024-01-27 19:46:25 -08:00
VisualC-GDK gdk: Backport SDL3 MR #8844 2024-01-21 13:55:17 -05:00
VisualC-WinRT video: move standard c, sse and lsx implementations of yuv2rgb to its own source 2024-01-18 17:06:27 -08:00
visualtest Remove unneeded semicolon 2022-11-17 10:43:45 +01:00
wayland-protocols wayland: Add cursor-shape-v1 protocol support 2024-03-14 09:49:40 -04:00
Xcode Updated to version 2.31.0 for development 2024-01-22 09:12:34 -08:00
Xcode-iOS/Demos [SDL2] pointer boolean (#8523) 2023-11-10 06:30:56 -08:00
.clang-format Commented out syntax that causes Visual Studio 2019 to complain on every edit 2022-12-02 00:43:46 -08:00
.editorconfig editorconfig: remove trailing whitespace in source code 2022-12-26 10:34:45 -08:00
.gitignore gdk: Backport SDL3 MR #8844 2024-01-21 13:55:17 -05:00
.wikiheaders-options wikiheaders: Bridge README files in the docs directory to wiki. 2023-02-28 11:46:46 -05:00
Android.mk Fixed building with the 16.1.4479499 Android toolchain 2023-06-03 23:55:56 -07:00
autogen.sh Simplified autogen.sh, thanks to @smcv for the tip 2022-05-05 11:54:24 -07:00
BUGS.txt Cleaned up a few more Bugzilla mentions. 2021-02-12 14:46:49 -05:00
cmake_uninstall.cmake.in Fixed bug 3867 - Can't find install_manifest.txt when running 'uninstall' target 2017-10-12 08:44:45 -07:00
CMakeLists.txt wayland: Allocate the cursor shared memory buffer entirely in memory, if possible. 2024-03-12 20:56:16 -04:00
configure Add checks for memfd_create() and posix_fallocate() to the autotools build 2024-03-13 11:23:43 -04:00
configure.ac Add checks for memfd_create() and posix_fallocate() to the autotools build 2024-03-13 11:23:43 -04:00
CREDITS.txt Fixed crash if initialization of EGL failed but was tried again later. 2015-06-21 17:33:46 +02:00
INSTALL.txt INSTALL.txt: Say "macOS" instead of "Mac OS X" in modern times. 2022-03-15 13:07:55 -04:00
LICENSE.txt Updated copyright for 2024 2024-01-01 13:19:49 -08:00
Makefile.in added missing FGREP to Makefile.in. fixed syntax. regenerated configure. 2022-11-24 17:00:20 +03:00
Makefile.minimal Split up CFLAGS construction so it can be overridden 2023-03-29 07:26:34 -07:00
Makefile.os2 Updated to version 2.31.0 for development 2024-01-22 09:12:34 -08:00
Makefile.pandora more fixes to standalone makefiles. 2021-11-13 21:56:20 +03:00
Makefile.w32 Updated to version 2.31.0 for development 2024-01-22 09:12:34 -08:00
README-SDL.txt More HTTPS changes in the documentation. 2017-02-16 16:52:03 -05:00
README.md Update and rename README.txt to README.md 2021-03-20 18:46:37 -04:00
sdl2-config-version.cmake.in Add documentation to autotoo'ls sdl2-config-version.cmake.in 2022-05-31 00:10:55 +02:00
sdl2-config.cmake.in cmake: allow users of sdl2-config.cmake to not add -mwindows to the link options 2023-04-18 14:10:12 -04:00
sdl2-config.in Revert "sdl2-config.in: Deprecate sdl2-config" 2022-11-18 06:53:13 -08:00
sdl2.m4 sdl2.m4: Call $PKG_CONFIG rather than hard-coding pkg-config 2024-01-01 08:27:02 -08:00
sdl2.pc.in cmake: use FindALSA.cmake to find ALSA library 2022-12-11 23:23:45 +01:00
SDL2.spec.in license: Fixed references to COPYING.txt that are now LICENSE.txt. 2021-02-18 11:07:26 -05:00
SDL2Config.cmake.in cmake: use FindALSA.cmake to find ALSA library 2022-12-11 23:23:45 +01:00
TODO.txt Fixed up legacy MoinMoin URLs at wiki.libsdl.org 2021-04-01 12:20:33 -04:00
WhatsNew.txt Added the environment variable SDL_LOGGING to control default log output 2024-01-27 19:46:25 -08:00

Simple DirectMedia Layer (SDL) Version 2.0

https://www.libsdl.org/

Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D. It is used by video playback software, emulators, and popular games including Valve's award winning catalog and many Humble Bundle games.

More extensive documentation is available in the docs directory, starting with README.md

Enjoy!

Sam Lantinga (slouken@libsdl.org)