SFML community forums
General => SFML projects => Topic started by: caracal on May 26, 2010, 08:32:26 pm
-
(http://i48.tinypic.com/2e1rwpw.png)
Larger screenshot (http://i50.tinypic.com/5xr7z4.png)
Zester is a application development framework used for the development of GUI programs (in which case it is known as a widget toolkit), and also used for developing non-GUI programs such as console tools and servers.
Please keep in mind I code in C first then C++ because its easier to write language bindings for C verses C++.
Window Management
Xlib is an X Window System protocol client library in the C programming language. It
contains functions for interacting with an X server. These functions allow programmers to
write programs without knowing the details of the protocol. Few applications use Xlib
directly; rather, they employ other libraries that use Xlib functions to provide widget toolkits
http://www.x.org/wiki/
When integrating SFML with X11 as seen in http://www.sfml-dev.org/tutorials/1.6/graphics-x11.php there are a few things to keep in mind.
1. X11 is a 26 year old code base.
2. Setting a windows attributes before its show is done differently then after it is shown.
3. Setting attributes of a window and performing windowing functions is done differently when there is already a NETWM compliant window manager in place then when there is not.
Once I finish the Basic Window Management Functions I will continue on with Advance Window Management Functions, Input & Event Functions.
Basic Window Management Functions
zst_window_create
zst_window_destroy
zst_window_resize
zst_window_move
zst_window_resize_move
zst_window_show
zst_window_hide
zst_window_raise
zst_window_lower
zst_window_restack
zst_window_minimize
zst_window_unminimize
zst_window_maximize
zst_window_unmaximize
zst_window_fullscreen
zst_window_unfullscreen
zst_window_clear
zst_window_iconify
zst_window_deiconify
zst_window_stick
zst_window_unstick
zst_window_set_keep_above
zst_window_set_keep_below
zst_window_set_opacity
zst_window_flush
zst_window_set_min_size
zst_window_set_max_size
zst_window_set_base_size
zst_window_set_title
zst_window_set_skip_pager
zst_window_set_skip_taskbar
zst_window_set_override_redirect
Window Types
Desktop
Dock
Toolbar
Menu
Utility
Splash
Dialog
Normal
Multimedia
Simple and Fast Multimedia Library (SFML) is an object-oriented, cross-platform,
free and open source software multimedia API written in C++ by Laurent Gomila. It is
intended as a more modern alternative to SDL with a greater emphasis on OOP.
http://www.sfml-dev.org/
2D Vector Graphic Library:
Cairo is a 2D graphics library with support for multiple output devices. Currently
supported output targets include the X Window System, Quartz, Win32, image buffers,
PostScript, PDF, and SVG file output. Experimental backends include OpenGL (through
glitz), XCB, BeOS, OS/2, and DirectFB.
http://cairographics.org/
Image Processing Library:
Magick++ is a software suite to create, edit, and compose bitmap images.
It can read, convert and write images in a variety of formats (over 100) including
DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG, and
TIFF. Use ImageMagick to translate, flip, mirror, rotate, scale, shear and transform
images, adjust image colors, apply various special effects, or draw text, lines, polygons,
ellipses and Bézier curves.
http://www.imagemagick.org/Magick++/
3D Graphics Engine:
Horde3D is a small open source 3D rendering engine. It is written in an effort to
create a graphics engine that offers the stunning visual effects expected in next-generation
games while at the same time being as lightweight and conceptually clean as possible.
http://www.horde3d.org/
Web Browser Engine:
Berkelium is a library that provides off-screen browser rendering via Google’s open
source Chromium and takes advantage of Chromium’s multi-process rendering engine,
allowing us to safely isolate browser instances.
http://github.com/sirikata/berkelium
Audio Synthesis:
Nsound is a C++ framework for audio synthesis. It aims to be as powerful as Csound
but with the programming features of C++. Nsound tries to make the process of
generating complex and interesting sound as easy for the programmer as possible.
http://nsound.sourceforge.net/
2D Physics Library:
Box2D is a 2D rigid body simulation library for games.
http://www.box2d.org/index.html
3D Physics Library:
Bullet is an open source software multi-threaded 3D collision detection, soft body
and rigid body dynamics library (physics engine) for games and visual effects in film.
http://bulletphysics.org
Audio & Video:
OpenCV is a computer vision library originally developed by Intel. It is free for use
under the open source BSD license. The library is cross-platform. It focuses mainly on
real-time image processing. If the library finds Intel's Integrated Performance Primitives
on the system, it will use these commercial optimized routines to accelerate itself.
http://opencv.willowgarage.com/wiki/
Scripting
Lua combines simple procedural syntax with powerful data description constructs based on
associative arrays and extensible semantics. Lua is dynamically typed, runs by interpreting
bytecode for a register-based virtual machine, and has automatic memory management
with incremental garbage collection, making it ideal for configuration, scripting, and rapid
prototyping.
http://www.lua.org/
-
Nice explanation of all single components, but what's Zester in detail? Looks interesting, but more information would be definitely useful to understand what it's all about.
-
Cool idea, but it seems bloated with no clear target developer.
-
Cool idea, but it seems bloated with no clear target developer.
:D Most of these library's can already be found in most modern GNU/Linux Operating Systems sooo its not as bloated of a project as you might think. And the target developers are... Well everyone here at SFML. Everything I am working on has been requested multiple times here on this forum.
-
Very impressive :shock:
(But I guess it's not portable?)
-
Very impressive :shock:
(But I guess it's not portable?)
Isn't it? At a cursory glance, it looks like all of its dependencies are cross-platform.
-
Ill have to write a Windows and Mac port of the Windows Management Library but besides that everything else is cross-platform.
-
Just curious, why did you use Horde3D?
I think Ogre3D is more powerful and flexible. It is also as open-source as Horde3D (as far as I know).
-
Just curious, why did you use Horde3D?
I think Ogre3D is more powerful and flexible. It is also as open-source as Horde3D (as far as I know).
Yeah, but supposedly Horde 3D can do crowds (which is now common for 3D games) and Ogre3D is still working on crowd support.
-
Just curious, why did you use Horde3D?
I think Ogre3D is more powerful and flexible. It is also as open-source as Horde3D (as far as I know).
I am not a big fan of C++ Templates which Ogre3D make extensive use of.
So basically my decision came down to ease of use.
-
Just curious, why did you use Horde3D?
I think Ogre3D is more powerful and flexible. It is also as open-source as Horde3D (as far as I know).
I am not a big fan of C++ Templates which Ogre3D make extensive use of.
So basically my decision came down to ease of use.
What about just XNA support for SFML?
That would be really useful so you can sell your game on xbox live.
A lot of the other stuff you are making is interesting but it usually takes an army of people to develop assets for a 3D game.
-
Oh! this information is very impressive and great idea.
-
Just curious, why did you use Horde3D?
I think Ogre3D is more powerful and flexible. It is also as open-source as Horde3D (as far as I know).
I am not a big fan of C++ Templates which Ogre3D make extensive use of.
So basically my decision came down to ease of use.
What about just XNA support for SFML?
That would be really useful so you can sell your game on xbox live.
A lot of the other stuff you are making is interesting but it usually takes an army of people to develop assets for a 3D game.
XNA support for SFML? Is there such a thing? They are both game/multimedia libraries, aren't they?