Alex, libSDL and libSDL2 are low-level multi-media libraries designed for games. Those libraries are best suited for basic pixel blitting, some lines and rect in a cross platform way. Both libraries allows you to use a custom software rendering or create a window in a cross-platform way. As for Cairo, that's a full featured vector graphics library, practically designed for SVG rendering. So, those two libraries cannot be compared, but I think that Cairo can be used to render into a texture and then use SDL to display it on screen. Actually, I don't have any experience with Cairo.
As for the VM, I was looking at his Unix platform module, suspecting that the tearing and flickering was caused by using just XLib for blitting the main pharo window after Milton told that those issues aren't seen in Windows. If we add to the mix some always buggy AMD drivers, it seems that the solution goes by rewriting the display to uses OpenGL for blitting the main window, with VSync enabled, or using a separate native window for OpenGL graphics. By the way, what I found most strange about display VM code is that there's support for creating an OpenGL context already in place, with an accompanying -glxdebug flag, for verbose output. When I tried that option, I didn't get any output, so I could assume that these is not used for fast blitting under Linux. As for SDL2, it provides all the required facilities for a VM display module, without having to deal with X11 or platform specifics. Window creation, multiple OpenGL context creation, clipboard handling, input support, multi-threading, sound support, drag and drop. That version of SDL had a strong contribution by Valve, they needed something to start pushing heavily Linux, even the latest versions of Steam uses it. Anyway, I am planning to discuss this matter with Igor, during my stay at Lille. Greetings, Ronie Salgado 2013/12/26 Alexandre Bergel <[email protected]> > Ronie, > > You mention libSDL. Do you know how it compares with Cairo? They look > similar, but I could not find a detailed comparison > > Alexandre > > Le 26-12-2013 à 0:12, Ronie Salgado <[email protected]> a écrit : > > Stef > > That sounds very interesting. I dream of a virtual world environment such > as Second Life, highly dynamic and completely open source. > > But currently I would like to do a simple video game, with toon like > graphic, using bullet for physics. I think that making an actual game > development pipeline would be very interesting. > I would not create a full level editor, modeling software because it takes > too much time, and there is Blender which is open source and very complete. > > Some tasks required are as follow: > - An easy way to make bindings for C++ libraries. For this I am going to > start extending SWIG(http://www.swig.org/) so it can generate bindings > for Pharo NativeBoost. > - Bindings for the Bullet physics engine( > http://bulletphysics.org/wordpress/). With the extensions for swig, this > is trivial. > - An importer for COLLADA. COLLADA is a XML based asset exchange format, > with a wide support in different 3d model editors, such as Blender. > - For Linux, a new VM display module is required. The current that uses > just X11 suffers of severe tearing and flickering. I would like to make a > display module for the VM that uses SDL2, which is a cross platform library > that supports hardware accelerated graphics, or cross platform creation of > an OpenGL context. > - I think that garbage collection would require some determinism/time > constraint or write some guidelines to avoid triggering the gargbage > collector. When I'm testing the particles, I can see some noticeable pause, > that I attribute to the garbage collector. > > Greetings, > Ronie Salgado > > > 2013/12/25 Stéphane Ducasse <[email protected]> > >> Ronie >> >> I was talking about 3D with Igor (because Igor came to Smalltalk because >> he wanted to use it as a game engine and built rendering >> engine in Pascal long long time ago :). >> So I was brainstorming to see what you could do. >> >> the last time alex show roassal 3D we were thinking that it would be good >> to build a kickstarter show case on something >> sexy (maybe bridging a physical model to 3D)…. >> >> Now what would like to build with NBOpenGL? What are your dreams and how >> could we slice them into tasks that could be reached in a limited amount >> of time. >> >> Stef >> > >
