SDL | Simple Directmedia Layer | Game Engine library

 by   libsdl-org C Version: prerelease-2.27.1 License: Zlib

kandi X-RAY | SDL Summary

kandi X-RAY | SDL Summary

SDL is a C library typically used in Gaming, Game Engine applications. SDL has no bugs, it has no vulnerabilities, it has a Permissive License and it has medium support. You can download it from GitHub.

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

            kandi-support Support

              SDL has a medium active ecosystem.
              It has 5882 star(s) with 1116 fork(s). There are 98 watchers for this library.
              There were 1 major release(s) in the last 6 months.
              There are 799 open issues and 5174 have been closed. On average issues are closed in 87 days. There are 66 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of SDL is prerelease-2.27.1

            kandi-Quality Quality

              SDL has no bugs reported.

            kandi-Security Security

              SDL has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.

            kandi-License License

              SDL is licensed under the Zlib License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              SDL releases are available to install and integrate.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of SDL
            Get all kandi verified functions for this library.

            SDL Key Features

            No Key Features are available at this moment for SDL.

            SDL Examples and Code Snippets

            Set the default SDL library flags .
            pythondot img1Lines of Code : 3dot img1License : Non-SPDX (Apache License 2.0)
            copy iconCopy
            def set_dlopen_flags():
              if _use_rtld_global:
                sys.setdlopenflags(_default_dlopen_flags | ctypes.RTLD_GLOBAL)  

            Community Discussions


            Why does MSVC /I option not find the directory?
            Asked 2021-Jun-13 at 13:48

            I have a very basic project structure:



            Answered 2021-Jun-13 at 13:48


            Is it possible for an LD_PRELOAD to only affect the main executable?
            Asked 2021-Jun-12 at 19:25
            The Actual Problem

            I have an executable that by default uses EGL and SDL 1.2 to handle graphics and user input respectively. Using LD_PRELOAD, I have replaced both with GLFW.

            This works normally unless the user has installed the Wayland version of GLFW, which depends on EGL itself. Because all the EGL calls are either stubbed to do nothing or call GLFW equivalents, it doesn't work (ie. eglSwapBuffers calls glfwSwapBuffers which calls eglSwapBuffers and so on). I can't remove the EGL stubs because then it would call both EGL and GLFW and the main executable is closed-source so I can't modify that.

            Is there any way to make LD_PRELOAD affect the main executable but not GLFW? Or any other solution to obtain the same effect?

            The Simplified Problem

            I made a simplified example to demonstrate the problem.

            Main Executable:



            Answered 2021-Jun-12 at 18:31

            You can check if the return address is in the executable or the library, and then call either the "real" function or do your stub code, like this:



            'cout': is not a member of 'std'
            Asked 2021-Jun-09 at 20:00

            I've looked at a lot of solutions for this problem but none have worked




            Answered 2021-Jun-09 at 20:00

            The player.h file does not have a #include in it.

            You have two choices:

            1. Make every header file able to stand on its own.

            2. Ensure that you document and meet the pre-requisites for every header file you include.

            You have done neither of these things.



            C++ SDL2 window not opening
            Asked 2021-Jun-09 at 14:40

            i coded this.



            Answered 2021-Jun-09 at 14:40

            Would there be any solution to get the Window to not close?

            Start up an event-handling loop and handle some events:



            How to use KEYDOWN?
            Asked 2021-Jun-04 at 08:29

            I am trying to exit the program when the escape key is pressed. I am having some trouble doing that.

            When I take out the door() line it works;



            Answered 2021-Jun-01 at 03:05

            Place the door() function cose to the left side aligning below the while . As python works the door() is under while loop. Inform me if it works or please add detail about why is the door() in while loop and the use of door().



            IShellLink - how to get the original target path
            Asked 2021-Jun-03 at 17:42

            I created a shortcut in a Windows PC with a target path of:

            C:\Users\b\Desktop\New Text Document.txt

            Then I copied the shortcut to another PC with a different user name, and I want to retrieve the original target path.

            If you open the shortcut file with a text editor, you can see the original path is preserved, so the goal is definitely possible.

            The following code does not work, despite the presence of SLGP_RAWPATH. It outputs:

            C:\Users\a\Desktop\New Text Document.txt

            It is changing the user folder name to the one associated with the running program.

            I understand that the problem is not about environment variables, because no environment variable name can be seen in the file. But I can't find any documentation about this auto-relocation behavior.



            Answered 2021-Jun-03 at 16:40

            Your shortcut is a .lnk file, just without the .lnk file extension present. According to Microsoft's latest "Shell Link (.LNK) Binary File Format" documentation, your shortcut appears to be configured as a relative file target. The relative name is just New Text Document.txt. I didn't dig into the file too much, but I'm guessing that it is relative to the system's Desktop folder, so it will take on whatever the actual Desktop folder of the current PC is. Which would explain why querying the target changes the relative root from C:\Users\b\Desktop to C:\Users\a\Desktop when you change PCs.

            As for being able to query the original target C:\Users\b\Desktop\New Text Document.txt, that I don't know. It is also present in the file, so in theory there should be a way to query it, but I don't know which field it is in, without taking the time to fully decode this file. You should try writing your own decoder, using the above documentation.



            Using hotchocolate's filters with schema first approach
            Asked 2021-Jun-01 at 16:34

            I'm using a schema interceptor to configure my schema. It's a multi-tenant application, so I build the schema according to the tenant's configuration. I'm mapping that configuration to SDL language (schema-first approach) and then I add it to the schema builder (schemaBuilder.AddDocumentFromString(...)).

            As said on the documentation (here), "Schema-first does currently not support filtering!". But that is the only approach I can use right now, so I'm trying to find a workaround.

            What I've tried:

            Manually create the input filter types and add the filtering to the server (something like this):



            Answered 2021-Jun-01 at 16:34

            Filter support for schema-first is coming with version 12. You then do not even have to specify everything since we will provide schema building directives.



            How do I compile all .c files in my code directory?
            Asked 2021-Jun-01 at 15:33

            I made a template folder for SDL2 projects. I followed this tutorial from Lazy Foo: to create my makefile.

            My makefile:



            Answered 2021-Jun-01 at 15:33

            You can use any of the below way to get the list of *.cpp files in the code directory:

            Using find :



            SDL_SetRenderTarget() hangs for a while if multiple renderer switch occurs
            Asked 2021-Jun-01 at 09:04

            There is a problem with rendering target switch on Raspberry Pi. SDL_SetRenderTarget() hangs if multiple renderer switch occurs.

            This is a working code that prints milliseconds since application starts before and after a rendering target switch:



            Answered 2021-Jun-01 at 09:04

            After further investigation I found that the problem is the use of SDL_RenderDrawPoint(). If we move Texture 4 creation at the beginning of the code the slowdown occurs after that texture creation, so after a massive use of SDL_RenderDrawPoint().

            I fixed the problem passing from SDL_RenderDrawPoint() to SDL_RenderDrawPoints().

            In my case it is ok because that texture is created only one time at startup and in this way we pass from 23 seconds to 200 milliseconds



            UnboundLocalError: local variable 'event' referenced before assignment
            Asked 2021-Jun-01 at 03:37

            This is the error message



            Answered 2021-Jun-01 at 00:06

            You should move your event handling code in the for loop that polls events from pygame, because it's in that loop that event is defined. Your first code becomes :


            Community Discussions, Code Snippets contain sources that include Stack Exchange Network


            No vulnerabilities reported

            Install SDL

            You can download it from GitHub.


            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
          • HTTPS


          • CLI

            gh repo clone libsdl-org/SDL

          • sshUrl


          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link

            Explore Related Topics

            Consider Popular Game Engine Libraries


            by godotengine


            by photonstorm


            by libgdx


            by aseprite


            by BabylonJS

            Try Top Libraries by libsdl-org


            by libsdl-orgC


            by libsdl-orgC


            by libsdl-orgC


            by libsdl-orgC


            by libsdl-orgC