SDL | Unofficial mirror of hg.libsdl.org/SDL. Updated daily.
kandi X-RAY | SDL Summary
kandi X-RAY | SDL Summary
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).
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of SDL
SDL Key Features
SDL Examples and Code Snippets
Community Discussions
Trending Discussions on SDL
QUESTION
I'm just trying to make a game like minecraft, but I just can't add to a vbo from another process. The strange thing is that the logs appear two times and the window just closes instantly.
The code ...ANSWER
Answered 2022-Feb-15 at 21:21The OpenGL Context is thread local. If you want to use an OpenGL context in another thread, you must make it the current context there.
The context can only be current in one thread at a time. When the context for a thread becomes current, it is exclusive to that thread and is claimed, so it is automatically not the current context for all other threads. If you want to use the same context in multiple threads, you must lock the sections that use the context to ensure exclusive access to the context. Most likely this is not what you want.
If you want to use the buffer for drawing in one thread, but at the same time you want to change its content in another thread, you need 2 OpenGL contexts, where the first context shares the second context.
There are some more problems with your code:
- Thie size of the buffer date needs to be specified in bytes. Therfore the size of the data is 12*4 instead of 12. See
glBufferData
. - The vertex attribute specification is a state of the context that is not shared. An object is tied to the context. So when the context is destroyed, the object is destroyed. See OpenGL Context.
- See Minimal Windowless OpenGL Context Initialization, Windowless OpenGL, OpenGL render view without a visible window in python
An OpenGL context depends on the OpenGL window. So you need to create a hidden OpenGL window to get a second OpenGL context with a correct version. I don't think this is even possible with pygame (Pygame 2 is based on [SDL2], there might be a solution for that).
A basic setup using GLFW looks as follows. The vertex buffer object is created on the main thread. In the 2nd thread, a hidden OpenGL window is created that shares the context of the main thread. In this Context the buffer object's data store is updated with glBufferSubData
:
QUESTION
I am trying to make a window with c++ and SDL, But when I launch my code, it says "The code execution cannot proceed because SDL2.dll was not found." And yes, it is confusing because I have SDL2.dll in my source files. Do anyone know how to fix it.?
Code:
...ANSWER
Answered 2022-Mar-26 at 13:59You may either manually copypaste it to your final build folder, or add this file to a project and specify its build action as Copy to Output (it used to work for me).
I think there may be option to set up a working directory in a project settings as well.
QUESTION
I'm attempting to build a C++ program with SDL2 and SDL_Image using CMake by fetching them from their respective GitHub repositories; and it works for the most part! When I ran my code with SDL2 everything built fine, and when I added the code for SDL_Image everything compiled without a problem.
However, things break when I try to add SDL_Image. I get:
...ANSWER
Answered 2022-Mar-16 at 17:01There are two problems with your CMake file:
GIT_TAG release-2.0.5
If you look at the SDL_Image repo at that tag, there's no CMakeLists.txt
file. That is indeed the most recent tag, though. But fortunately, according to the docs you can use a git SHA for GIT_TAG
. With the most recent git SHA at the time of writing, that would look like this:
GIT_TAG 97405e74e952f51b16c315ed5715b6b9de5a8a50
The other error is that SDL2_image-static
doesn't exist. You need to change that in your set(SDL_LIBRARIES ...)
line to just SDL2_image
.
With those two changes, I'm able to #include SDL_Image.h
.
QUESTION
My goal is to make a tile generator where each tile has an X and Y position. It should be able to generate tiles that fill the entire screen. Well, at least that's what I expect it to do. It doesn't generate any tiles in the top row except for one in the corner.
I have tried changing the way each tile's position is calculated, but it hasn't worked. There are no errors either.
...ANSWER
Answered 2022-Mar-06 at 20:55Each row starts at 0, so ygen_num
needs to be set to 0 in the outer loop:
QUESTION
While debugging a problem in a numerical library, I was able to pinpoint the first place where the numbers started to become incorrect. However, the C++ code itself seemed correct. So I looked at the assembly produced by Visual Studio's C++ compiler and started suspecting a compiler bug.
CodeI was able to reproduce the behavior in a strongly simplified, isolated version of the code:
sourceB.cpp:
...ANSWER
Answered 2022-Feb-18 at 23:52Even though nobody posted an answer, from the comment section I could conclude that:
- Nobody found any undefined behavior in the bug repro code.
- At least some of you were able to reproduce the undesired behavior.
So I filed a bug report against Visual Studio 2019.
The Microsoft team confirmed the problem.
However, unfortunately it seems like Visual Studio 2019 will not receive a bug fix because Visual Studio 2022 seemingly does not have the bug. Apparently, the most recent version not having that particular bug is good enough for Microsoft's quality standards.
I find this disappointing because I think that the correctness of a compiler is essential and Visual Studio 2022 has just been released with new features and therefore probably contains new bugs. So there is no real "stable version" (one is cutting edge, the other one doesn't get bug fixes). But I guess we have to live with that or choose a different, more stable compiler.
QUESTION
I am using SDL2 for the first time, and when I try to create a window, it's not displaying. The only sight of the window is an icon spawning in my dock (Image of the icon, SDLTest.out is the name of my executable file). I found out that it spawned when SDL_INIT()
was called.
I tried updating the window, changing its color and adding the flag SDL_WINDOW_SHOWN
, but none of these solutions worked. I even pasted a code from the Internet, but it didn't work better.
Here is the code that I pasted:
...ANSWER
Answered 2021-Dec-28 at 20:47I just needed an event loop. I added this code and it worked:
QUESTION
Consider:
...ANSWER
Answered 2021-Dec-26 at 06:54-Wlarger-than="max-bytes" might be what you're looking for. It warns you whenever an object is defined whose size exceeds "max-bytes".
QUESTION
Consider code:
...ANSWER
Answered 2021-Dec-20 at 18:30There's compiler warning C4067. It looks like you need to set the flag /Za
for it to apply to #endif
directives.
In the Visual Studio properties page, this flag is controlled by the setting "Disable Language Extensions" in the Language subsection of the C/C++ section.
QUESTION
In one of my projects I'm using git submodules to download the SDL2 Library and compile it. This is giving me a strange error so I tried to compile SDL2 Standalone and I got the same error.
I'm on a 13" MacBook Pro Big Sur
Steps to reproduce:
...ANSWER
Answered 2021-Dec-09 at 10:48The only difference between the successfully compiled project and the project that failed to compile is the MacOS SDK version. The one that failed to compile used MacOS SDK 12 while the successful one used MacOS 11.3. Until this is fixed a temporary solution is to downgrade your MacOS SDK to 11.3.
QUESTION
I am trying to implement a basic event system. This event system consists of a series of void pointers used for callback functions. The code below is BAD design. If I want to add many events, the code quickly gets bloated.
Currently, the bad solution needs to know what vector to add to, and which vector to run based off of the event type. Ideally, I could store all the void pointers in a single vector, and based off of the type of event that occurs, the function pointers using that event could be run.
If anyone has any ideas they would like to give for a better implementation, it would be greatly appreciated.
Example event handler class:
...ANSWER
Answered 2021-Sep-20 at 03:15How about use a std::multimap? Key off the event type and use the handler for the value. When you want to issue an event use std::equal_range to get the elements that match your event type.
Note, however, that different events really should have different arguments. You could make the value be a std::any instead:
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install SDL
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page