Sdl2 vs opengl 2021 reddit. I highly recommend SFML over SDL.

Sdl2 vs opengl 2021 reddit I think it's a really good comparison, but it's missing out on raylibs ability to render 3D objects without having to use OpenGL calls. Can also use Glut too but that is super ancient. I think it promotes bad values, so something more modern like GLFW would be better to teach, instead of an old outdated framework that’s meant for the most basic of applications. I just skimmed through this list. The old Counter Strike Global Offensive also used SDL and had support for opengl (for example if you played from linux it used opengl when running). The main point though is to do more than just rendering to the main framebuffer. SDL and GLFW are very similar. I got from game engine development and used to program my hoppy engine in opengl but i wanted to develop a much higher end engine, but a while ago i watched a video on the cherno channel talking on dropping support from opengl to Vulkan for a variety of reasons. It's easier to implement, the driver will take some work of your hands. Personal reasons why SFML is better than SDL: OO and written in c++ rather than c, cleaner documentation, better opengl interfacing, and the sound is an absolute breeze. g. An added advantage of not using OpenGL directly is that you can use the other backends when they'd be better than the OpenGL one with minimal extra code, for example Direct3D is often faster than OpenGL on Windows and using the Vulkan or Metal backends when available would probably be superior too. SDL2 has audio and DirectX support, not sure about GFLW. I've been trying to use both SDL2's Canvas<Window> and egui_sdl2_gl at the same time, but unfortunately it seems like they mix quite badly. Typically, you are going to be using SDL's rendering API, or using OpenGL API alongside SDL (or some other window The main purpose and benefit of GLTF and SDL is that they incredibly simplify the cross platform aspect of game shipping. SDL2 will definitely be a good fit, any way you use it. Plus if you decide to go with SFML and become more proficient you will eventually have to switch back to SDL and learn an entire new environment anyway. And it's pretty limited. But SDL + OpenGL is always a safe bet! Of course in the future we're moving away from OpenGL over to DirectX, Vulkan, and Metal. The main reason for that is for some reason, SDL just do not work with OpenGL. If you add GLAD or GLEW to SDL2, you can do OpenGL in your SDL window for hardware accelerated 3d. Both are good options for a 2D game. I used both before, and while I do prefer GLFW for more general purpose stuff, I would take SDL2 over GLFW for games. You don’t create a window with OpenGL, nor read the keyboard and gamepad inputs, output audio… I had issues with mixing SFML rendering with OpenGL, I recommend SDL. 0 map to these 2 versions. I often find that trying to conform to a certain standard makes me more close-minded when developing. This subreddit is an unofficial, non-affiliated community, run by the users, to embrace and have conversation about the products we love! The Rust programming language has a powerful type system and provides safety without a garbage collector. Also the API being an actual standard means that you wont have someone deciding at some point to "clean up" the library by changing the API and break your code (the closest to that that ever happened in OpenGL was the compatibility vs core profile but for pretty much everyone outside Apple and Mesa it was a non-issue - and Mesa decided to On the other hand I saw that SDL is more widespread and up-to-date, but lacks some basic graphic functionalities, so I think they must be integrated with Direct2D or OpenGL (correct me if I'm wrong) with the risk of low-level compatibility issues. I prefer OpenGL, but I'm not a graphics expert. If you are talking about just opening an SDL window ca a Unity window that SDL wins no problem. You probably want to look at Lazy Foo's SDL tutorials and start out there. Yeah, it's easy to wrap SDL in classes, but if you really want OOP then you're saving yourself a ton of wrapper code by using SFML. Then I moved to libGDX and Java. OpenGL is, to put it simply, is a standard for a rendering API that GPU drivers implement. I use SDL2 for platform abstraction which has its own method where call SDL_GL_SetAttribute(SDL_GL_SHARE_WITH_CURRENT_CONTEXT, 1) to basically call wglShareLists for you (or the equivalent on other platforms, which is a sticky subject). SFML wraps over OpenGL, as does SDL2. Not to mention multi platform support. SDL2 provides the window context which can be an opengl context, but it doesn't give you access to OpenGL. I still suggest reducing the compute shader to something that colors all pixels the same value. They are slightly different in organization as well. Both SDL and Raylib allow you to do this, but with SDL you will have to roll your own OpenGL renderer. Hi everyone. You can get familiar with it later. So I def wanted to learn it. It might not matter if you're making a single window game, but once you get off the beaten path and start using multiple windows, need high dpi support, touch screen controls, etc you'll notice everything else is lacking (and often here SDL isn't perfect either and you need to call the native system r/Garmin is the community to discuss and share everything and anything related to Garmin. SFML is much easier and I understand it more, but SDL2 seems more powerful. I would appreciate any suggestions, comments, and criticisms of the code. Just make your life easier and use SDL from the start. I really want to choose SDL2, because I've seen some cool games in it, but at the same time I want to choose SFML because it's just so much easier to make games. Not only does the README have barebones examples of spinning up a GL context or Vulkan surface, the crate has options like the bundled feature to make it download and compile SDL2 for you, and the static-link feature, to pull your project back toward the I highly recommend SFML over SDL. But, Every comment I’ve seen From a few years back suggests SDL is impossibly hard, and If you know it, you don’t just “know” it, you KNOW it. Hi! I'm starting to learn SDL2 and I want to set it up in my VS code so that the line #include <SDL2/SDL. GLFW is leaner than SDL2. SDL2 API seemed easier and straightforward and did everything I needed. SDL can use OpenGL. In the past 20 years I think I got a taste of everything, starting from Atari 2600 or C64 assembly to C with Allegro to C++ with OpenGL to C++ with SDL/SDL 2 to C++ with Irrlicht or Ogre3D to Godot (C++ too) and finally to Unity3D and Unreal. Godot is an engine and it defines how you build your game. Qt and SDL don't mix. 2 NVIDIA 465. It would still be interesting to see if the hardware acceleration by default of raylib can beat the 25yo software rendering of SDL because realistically most SDL user will use the default behavior instead of crafting a Opengl layer on top of SDL. OpenGL, OpenGL ES, Vulkan, Metal, and Direct3d are all graphics APIs, designed to give you access to your graphics hardware. If you use GLAD with GLFW, you will also use GLAD with SDL, because SDL does not include an OpenGL loader (and neither does GLFW). I'm guessing your wireframe program is just calling SDL_RenderDrawLine() to draw your models? That's cool, but that's pretty much as far as SDL2 can take you. RAII is good, sure, but once you’ll start using OpenGL you’ll notice that OpenGL doesn’t use any of that either, and neither does Vulkan, DX12 or any of the like :) So, I’d recommend using whatever the teacher provided and focus on what is actually important; learning OpenGL, not bitching about code aesthetics. SDL/SFML/GLFW aren't "middle men" so much as helpers to OpenGL. A lot of people use SDL just for user input and the window, while they use OpenGL for rendering. Raylib comes with it's own renderer that allows you to specify custom shaders. Asking because OpenGL ES 3. Try writing a raytracer ( https://www. I've coded some stuff with SDL2 for a learning experience and it's not much more than a collection of rectangles with an image on them And rendering a single triangle was a lot of code to layout when working with OpenGL. In this case I don't really know how SDL surfaces work, so I can't help, sorry. Very clean and well designed C++ api. 6 is a large multi-tool. The choice between SDL and GLFW is not going have much of an impact on your project. If its your first time, give OpenGL a shot. Also. So It’s always been “Don’t learn SDL”. The subreddit covers various game development aspects, including programming, design, writing, art, game jams, postmortems, and marketing. Ryujinx is a Nintendo Switch Emulator programmed in C#, unlike most emulators that are created with C++ or C. It has had a very long development history and is used in many commercial products. Their purpose when used with OpenGL is to make it so things like window creation and event handling don't have to be re-written for every platform. GLFW, GLUE, and SDL (not SLD) are both frameworks with different goals. SFML goes well beyond what SDL and GLFW provides, and you can write a game in SFML without learning OpenGL. SDL2 isn't a good choice for true 3D rendering. SDL2 is general library for 2d graphics that includes the functionality to create windows, play sound, add timers, take input from lots of sources, and do software/hardware rendering of 2d surfaces (including rotations, stretches, and compresses). Sep 4, 2021 · Both provide an OpenGL context, which is what you'd use for "real" 3D graphics programming including shaders and compute and stuff. Imho using 2 UI/graphics libraries just makes it so you have to install too many dependencies or pack too many DLLs in with the release. in my country nobody use SDL or SFML SDL is part of many frameworks: MonoGame uses SDL under the hood, for example. It simply won't compile and claims that SDL2/SDL. 2 is still maintained for compatibility with old software that hasn't been ported to SDL2. Unity has a ton of overhead. It is its own C library. 2 stable was used for something like 7 years by hobbyists and professionals alike for far more than just video games. It's the industry standard and not that much harder to learn than SFML. I haven't used GLFW at all, however. Plus I want to render particles and stuff with different shaders, what SDL does not provide. I never used OpenGL to make a complete game (only toying around with some demo code), so I cannot tell which one would really be the better option. Linux has a great utility to interact with installed packages called pkg-config. Anyway, keep the good work ! We need more passionated devs like you ! This is a community for the discussion of role-playing video games developed by Nihon Falcom! They are a Japanese company best known for the **Ys** series and **Trails** series (part of **The Legend of Heroes** series) of video games. Imho setup using GLFW is easier, but SDL2 brings a lot of neat features other than input and window management that GLFW is missing (e. c, functions like SDL_CreateRGBSurfaceFrom(). SDL also provides a rendering API that uses OpenGL behind the scenes. For advanced graphics you will have to utilize the graphics card and roll your own shaders. Raylib has more convenient tools for making games, sort of like an engine, but still very simple. If you want to get something goi'g fast, it's a good idea. SDL2 is a pretty thin wrapper, if you're using SDL2 you're probably either programming from scratch with OpenGL/Vulkan, or you're doing very simple 2D graphics using SDL's built-in tools. This makes it suitable for game programming, where both performance and code maintenance are of high importance. lazyfoo has some good tutorials for SDL. I want to make 2d games btw. I've got a rust sourcebase that uses raw-C FFI bindings for OpenGL, SDL2 I'm trying to move this to the web; In the past I've had a pass at this using emscripten on a very early version of the sourcebase, and that worked - I had the same code & enough of those libraries available to run in both places (desktop/web). if you're using sdl2's internal renderer, it's actually a bunch of renderers in a trenchcoat and could be GL, GLES, D3D, Metal, or some other API depending on your platform. Unfortunately, I am having a very difficult time linking SDL2/SDL. SDL2_gfx or SDL2_gpu (third party libraries building on SDL2) might be particularly useful for your project, since you're looking to draw polygons and triangles. True 3D rendering involves mapping textures and other rendering attributes to 3D geometry, which can only be done using a graphics API like That question is a bit different than your original question. It's really easy to learn and fun to code. Also since 2D is all you care about, I'm not sure why OpenGL even matters in this discussion, but you should know that with SDL you can either render with OpenGL or SDL. Which ones are available to you depend on the hardware, which APIs the drivers implement, and your OS (Metal is Apple-only, Direct3D is Windows-only, OpenGL ES tends to be for mobile device hardware, OpenGL and Vulkan are Spot on. OpenGL is interesting, but if your goal is to make a simple game/graphics program, then using SDL2's SDL_Renderer is a simpler option. Obviously this wasn't the best solution, as I needed to "hide" the graphics backend after Learning a direct graphics API like OpenGL, DX, or Vulkan is definitely marketable. 2 seems like a more versatile and streamlined choice whereas OpenGL 4. SDL2 even more so, you'd have to code almost everything except for the basics by yourself from scratch. Both should work for Vulkan and OpenGL window. All I can say is that SDL2 does the job. Learning OpenGL should still be a good start for many years to come, and much of the knowledge will be the same for the newer API's. They are trying to do two different things. but that actual codepath has long since bitrotted. Programming in vulkan is more complex than opengl and takes more time, and sometimes its not worth going to vulkan, in the other hand, vulkan can reach better performance than Some open source drivers have really awful OpenGL support and perform worse than SDL It sounds like he's using SFML for abstracting the OS, and writing his own OpenGL code, which means that the awful OpenGL support should apply equally to SDL and SFML. Those 2 are the only things I use and everything I write can be compiled on every major OS. com/ ) which is much lighter on both the math and programming. It also has a scene graph, but I'm not sure why you would want that. GLFW and GLUE is just a way to setup a window easily with OpenGL and DirectX, while SDL also provides some basic drawing functionality. Interestingly enough, if I use SDL_Sleep(10) before every frame the issue is not present anymore. Or check out raylib and try some 2D games. Point being, I don't want to work on something for possibly up to 6 months while using a solution I don't like (such as SDL2+Qt or SDL2+wxWidgets). scratchapixel. I'm not saying SDL is bad, just that it's really hard to compare raylib with SDL. com SDL uses OpenGL as a hardware renderer for content that wants hardware rendering on some platforms. SDL2_gpu is an abstraction over 3D graphics APIs and might be a little simpler and more portable than writing directly in OpenGL or Vulkan. If you are talking about a programming newb writing a terrible, unoptimized game loop reading files every tick to load models and textures vs Unity displaying an fbx dragged into a Scene Unity wins. OpenGL is cross-platform AND a bit faster than DirectX. I had memory leaks all the time. most of the performance benefit from multithreading in GL you're only going to get from the application OpenGL may be a better choice if maximum performance isn't a big priority. And runned perfectly. I used SDL long time ago. To an employer (caveat: an employer who knows what OpenGL is and how it works), it means you're comfortable with low level programming, understanding how computers represent data, and have a strong math background. But Qt is terrible for a game, because it hides the event loop from you. OpenGL is a graphics library - it draws graphics, nothing else. Specifically, if your game consists of a lot of screen redrawing each frame, a large (screen-space-wise) amount of semi-transparent In theory yes, in practice - no. framework into my own project directory + linking it to putting it in the System libraries directory and linking it. SharpGL is just OpenGL. SDL2 is relatively bare-bones and you need separate libraries (sdl2_image, sdl2_mixer, sdl2_ttf, etc. 2 core). Hello everyone. To give a sense of the difference between vulkan and openGL, the pipeline to render a triangle on the screen with openGL is about 100-150 lines of code (the absolute minimum for a triangle is reasonably less than that, but it’s not a realistic example), where as with vulkan its about 800 (mostly irreducible as far as I know). What I'm looking for is easy texture creation and rendering like in SDL2, but also have OpenGL shaders and drawing. The application is being developed for desktop so regular OpenGL makes more sense but I also like the idea of OpenGL ES's leaner approach. coding practice in C++ Very well. Just use SDL. It might not matter if you're making a single window game, but once you get off the beaten path and start using multiple windows, need high dpi support, touch screen controls, etc you'll notice everything else is lacking (and often here SDL isn't perfect either and you need to call the native system If you have a very slow computer, using straight C++ and SDL2 will be a better experience than waiting 2 hours for Unity to open. (Mind you, Raylib can be used just for the bootstrapping too, but it's more intended to be used as a whole. Plus SDL is a more complete abstraction layer than SFML, the reason you would choose SFML over SDL is to use it’s rendering functions instead of your own OpenGL. OpenTK includes input, window creation, audio, etc. . That makes more sense. The first one is a barebone OpenGL application for you to get your feet wet. SDL is another option, but it is more procedural style, whereas SFML is more object oriented, which coming from Java I guess you'd prefer. sdl2 only provides an OpenGL context. Plus the keyboard events are a pain to deal with in SDL. SDL is more of a bootstrap lib where you'd be implementing systems yourself, on top, and SFML (which I've not used) seems to be similar, but extends to also wrapping some elements of openfl with its own APIs. SFML aims to handle everything, so on the one hand you are locked more into their design decisions, but on the other, them making choices for you will save you time getting started. If you want to eventually get to OpenGL, start with SDL2. See full list on indiegamecloud. After the first 50 or so lines of code to set up GLFW or SDL2, the rest will just be OpenGL programming that's the same regardless of which library you use. ) Hi, For the sake of learning, I would like to create a 3D city builder using C++ and SDL + OpenGL. About 7 years ago I chose SDL2 for that exact reason (2gb ram, single core 2ghz cpu with a very slow hard drive). 1. I looked at this again and maybe you are talking about the SDL code in Kaotic. ) With SDL, you will want to bring other libraries. I came across SDL. text rendering or audio). This emulator aims to offer excellent compatibility and performance, a friendly interface, and consistent builds. For the graphics features you seem to want, SFML is probably your best option. For a game however you need concise control over the event loop. They are just too similar, and you shouldn't care one way or the other. SDL_gpu uses OpenGL as rendering backend anyway. OpenGL is actually as cross-platform as it gets. From scratch. net or OpenTK. You will have to define the way that you build it and the entire “engine” will be around the game you are making. Mar 10, 2012 · So, I'm looking into writing a game engine using OpenGL + SDL + Qt. If you search for a complete solution - the simplest one I can think of is Magnum library + SDL2/other-platform-lib-required-by-magnum + Dear ImGui. h>. h using #include <SDL2/sdl. It serves as a hub for game creators to discuss and share their insights, experiences, and expertise in the industry. You leave out an important point on the topic of OpenGL, and that is that you can get a whole lot better performance out of OpenGL. SDL is a C library, but you could perfectly use C++ with it if you like. Unless you are heavily interested in graphics programming and have previous programming experience, I wouldn't recommend starting with raw OpenGL. $ pkg-config --cflags --libs sdl2 glew -D_REENTRANT -I/usr/include/SDL2 -I/usr/include/libdrm -lSDL2 -lGLEW -lGLU -lGL If you have a very slow computer, using straight C++ and SDL2 will be a better experience than waiting 2 hours for Unity to open. The example code is here. Hello, I wanted to show my graphics framework I built in C++ using OpenGL and SDL2. Edit: also, as another person said, the context being bound to the thread it's created on is a limitation of the GL API, not glutin or SDL. Might as well rip off the bandaid and just start with SDL from the These are my OpenGL repos that can compile to WebAssembly but I am not sure if they are out of date with the Emscripten toolchain which can change without notice. My only advice is that I wouldn't worry about using libraries that are "standard". You can use SDL and SFML without OpenGL. If you're making a game, you need a graphics library, a sound library, an input library, perhaps a Sockets/Network library, etc. It provides bindings for OpenGL functions and has some widgets you can stick in WPF or WinForms. SDL has had audio bindings for at least the last ten years, possibly more, though as you point out, they're rather bare bones. Qt does everything that SDL does, regarding window and input management. It will not use 3d hardware, nor will it impose a requirement of same. SDL certainly is a graphics library. As for alternatives, SFML is pretty great if you're using C++. When you’re using OpenGL, SDL is not “underneath” you. Nothing else gets even close to the platform compatibility and features of SDL. To output a texture, it's just SDL_RenderCopy(renderer, texture, srcrect, destrect); and a few other functions to load the texture etc. Plus it uses DirectX on Windows which gives somewhat better performance AFAIK. SDL2 bindings From scratch with pure rust libraries (winit + opengl/vulkan/wgpu + rodio and/or whatever else you need for your game) There are probably other that I either forgot and don't know about too, but that should give a nice starting point at least. In either way (pure opengl with gltf/glew or sdl2) you can manipulate OpenGl. net, etc. SDL is just one way of creating an window with an OpenGL context, and once you have the context, you call OpenGL through your OpenGL binding library (OpenTK, Silk. It (usually) provides the correct cflags and libraries to link. So if you wanna learn opengl and mainly want a support library then SDL, GLFW or SFML may be good fits. Also game written in it runs decently fast. ) if you want anything even slightly more advanced. It does not provide any way of creating windows, handling input, etc. After playing a bit with it I really wanted to use it on a toy project with SDL2, but unfortunately, this wasn't as easy as it could be because you need to use a DirectX/OpenGL/Metal along with SDL2, which makes cross-platform development more difficult. 0 and 2. I have tried everything from copying the SDL. With minor exceptions (what params are allowed on what ver, especially textures an the different GLSL keywords), I have my same codebase running on Windows, Linux, Android and webGL. h> does not raise errors and I can build the main file from the VS code Terminal tab. If you have such a platform, then OpenGL is the underlying API over which SDL is an abstraction. It's a 2D graphics library. Thanks a lot man! Another issue I bumped into is that randomly things drawn by SDL_Renderer will overwrite things drawn by OpenGL (which are drawn after -> should be on top). 0. SDL2 lacks few fundamental draw calls (most notably vertex-based polygon) which means you can not (in a reasonable sense) implement Dear ImGui's backend with pure SDL2. The basic concept is the same: they provide access to OpenGL from C#. Personally, I would make a 2D game just using OpenGL, creating an OpenGL >= 3. OpenGL is a 3D graphics library. SDL is 2d. However, I wonder which version of SDL is better for this task: my project is graphically simple and there is probably more resources on SDL1 out there. 2 core context to do everything. Because of that, I want to start using a library that'll allow me to use OpenGL while still being simple to use. 89 GL_RENDERER: NVIDIA GeForce RTX 3070/PCIe/SSE2 To be clear, a lot of games (and engines) uses SDL to get input and system events, but then do their own thing for graphics, networking, etc. don't be a dumbass. You use OpenGL through bindings Silk. You might end up directly integrating with OpenGL / Vulkan if you use SDL, but there are higher level libraries you can bring that can be leveraged for that too. The learning curve is Oh gosh I totally forgot I can use both OpenGL and SDL_Renderer calls. You still need to add GLEW or GLAD to the project to be able to do anything OpenGL. On the other side, I read that SDL2 can be simpl It has clutter from legacy OpenGL, practically forced you to use global variables, and has features that are not needed in Core OpenGL. I mean, he could be using SDL software rendering, but it doesn't look like it. You don’t use OpenGL “through” SDL2. As for the 21st century thing. Love2d is a framework on top of sdl2 and opengl, but it doesn’t tell you how to build your game. How can i set up C++ and SDL2 with Visual Studio Code? Help please I haven't had time to watch your tutorial series yet, but I'm sure it's useful beyond the setup for anyone using Rust, and any other language for that matter, that uses OpenGL and/or SDL, as I have had great experiences following C++ tutorials before when using the rust SDL bindings for my own projects. SDL2 also acts as a wrapper for XInput, making it an convenient all-in-one solution input: As part of introducing SDL2 we also reworked our motion handling (# 329 ) You should now have a much better experience using motion with both DSU but also the new SDL2 controllers . SDL is not a graphics lib, OpenGL is. It will use 3d hardware, and for practical purposes, will impose a requirement of same. This requires learning OpenGL, which can be a little rough, but using the GPU is just how you do 2D games these days. SDL is backed by Valve and was, for a time, backed by Blizzard. Check out the APIs for both. SDL helps you abstract more broadly above it for simple rendering requirements. If you're already familiar with SDL and OpenGL or Vulkan and want to get to know Rust in that context, the sdl2 crate is pretty good. I think most learning resources for SDL and SFML are for C++. If you're the kind of person who would use SDL or GLFW and wrap everything with RAII types before getting started, just use SFML instead. This, and the fact that OpenGL is quite a legacy API does come with a trade off in performance. SDL2 and OpenGL are most useful if you want to write low-level video game engine code. I had a question about the difference between Vulkan and Opengl in terms of performance and support. there are other mechanisms for parallelism in later versions of the OpenGL API (all past 3. SDL have support for opengl, to render things with opengl using SDL you must follow these minimum steps: before create the window make some calls to SDL_GL_SetAttribute to set OpenGL attributes and then The major difference I recall between SDL2 and GLFW is that SDL2 uses a polling\waiting interface for events whereas GLFW uses callbacks. I built sdl2 and angle and compiled your code verbatim (after switching the glClear to after the glClearColor) and it's red. The actual GL calls need to be done through another library, if you've already used glium you can just use that. GLFW is definitely a bigger challenge, as a lot of functions for drawing graphics you have in SFML is not present in GLFW, which means you need to learn the OpenGL language as well (very similar to C++ though). The drawing system of SDL is super basic and you don't always want to get the OpenGL instance from it, or maybe you use something other than OGL. SDL and GLFW are both excellent libraries, although I think SDL is both more fully featured and widely used. GLFW is not a subset of SDL2. Use them if you love programming and need full control over the basic components of your game engine. I would say GLFW is good for versatility, but you have to write much code by yourself, whilst SDL is still bare bones, but easier to use, although with some restrictions. Note: Emscripten supports OpenGL (ES) 2 and 3, not 4 because WebGL 1. This was used for Amnesia, Counter Strike, Dwarf Fortress, FTL, even TF2. I have modified the configuration file to include the path of SDL2 includes, as well as copy those includes into a folder in my project, but it won't build. If that is a pro or con depends on you. h can't be found. Maybe it's different with SDL2, maybe it was my fault, but what I remember from that time is only problems. GL_VERSION: OpenGL ES 3. Dec 12, 2016 · If i have understood you want to know how to render to the SDL screen without using the SDL functions, you want to use the opengl functions. OpenGL shit is everywhere, and there some guides to get the two to play nice and swap between 2d and 3d for some gui work. It handles window events, OpenGL rendering, and asset loading. I've tried out both, but I really can't decide on which to pick. SDL2 is Simple DirectMedia Layer, it's what you would usually term a "Framework". rdoes zqao rguqpm xenxsge kuevnj mrcmiib ppka yawacy joxfl vybnr