ClanLib 2.3.4 Release Notes

From ClanLib Game SDK

ClanLib 2.3.4 Release Notes

Release Date: 2 December 2011. Go to downloads.

This release contains minor breaking changes since the ClanLib 2.3.3 release.

These release notes are in addition to the ClanLib 2.3.3 Release Notes.

Add CL_StringFormat "long long", "unsigned long long" and "long unsigned int"
Apply gpmfuchs VFS path bug fix. Also fix zip file directory listing when using the VFS
Added a specialization of std::hash so that CL_String could work with std::unordered_map
Added some new CPU extension flags to the detector (renamed sse5 to xop)
Fixed a bug in CL_StringHelp::local8_to_uint()
Added convenience functions in CL_File to load files
Apply nitori "Unhandled CL_Exception from CL_Event::wait bug description" unix patch
Added CL_Vec2<int> angle() function specialisation. Added CL_Vec2 angle_relative() function
Linux - Now supports _NET_WM_PING (with _NET_WM_PID and WM_CLIENT_MACHINE) that is used by the window manager to determine if the application is still responding.
Linux - Now supports correct detection of the window frame size (using _NET_FRAME_EXTENTS) so you can accurately position windows by specifing the frame position or the client position.
Linux - Borderless windows is now supported by more window managers.
Linux - Window postitioning and size is cached to improve the application responiveness (to avoid asking XLib the window dimensions)
Linux - Window events are fired straight away, instead of queuing them. This ensures xlib and the application are synchronized
Linux - The input context has been fixed, so that is checks for window destruction before calling signals. This stops random crashes closing GUI applications.
Fix bug in CL_GUIWindowManagerProvider_Direct where it hooked KEYBOARD double click events instead of the mouse
Win32 - Fixed the cl_grr "exceptions and access violations being caught" problem by implementing http://support.microsoft.com/kb/976038 and applied Vista 64 bit workaround for the SEH catch-all bug
Linux - Double click events are now fixed on Linux. Unfortunately, there was a fault in some examples that did not hook this event. The examples are now fixed:
	CL_Slot slot_mouse_down = window.get_ic().get_mouse().sig_key_down().connect(this, &App::on_mouse_down);
	CL_Slot slot_mouse_dblclick = window.get_ic().get_mouse().sig_key_dblclk().connect(this, &App::on_mouse_down);
Enhanced the span layout to improve text positioning
gc.pixeldata() now flushes the batcher
Apply extensions to CL_Image for greater control of the CL_Texture
CL_FrameBuffer -Increased stability when disposing the object
CL_FrameBuffer - fix bug by moving glReadBuffer(GL_COLOR_ATTACHMENT0)to after the framebuffer is bound
Fix bug in glsl version selection
Win32 - Use DWM for transparent windows. This is much faster than the old technique. 300fps for 1280x1024 screen!
Linux - Enable transparent windows. (Requires a composite window manager and graphic card support).
libxrender-dev is now a dependency for linux transparent windows. If you do not require transparent windows, and libxrender-dev is not found, ClanLib will still compile.
Enhance get_pixeldata() allowing more formats
Fix texture state tracker
Fix the OpenGL "allow_vertex_array_without_buffer_object" detection code by using the CL_OpenGLWindowDescription instead of the reported OpenGL version. This increases ClanGL speed on certain GPUs
Win32 - Use DWM for transparent windows. This is much faster than the old technique
Fix CL_FrameBuffer disposable objects
Enhance get_pixeldata() allowing more formats
Fix texture state tracker
Win32 - Fixed multiselect on dialogs
Added CL_GUIComponent::set_double_click_enabled function to toggle whether a component wants double click events or not
CL_Spin, CL_PushButton and CL_CheckBox now work correctly by ignoring double click events.
Added gui css bg-image-sizing modes: "top left", "top center", "top right", "left", "right", "bottom left", "bottom center", "bottom right".
CL_PushButton icon position improvements
CL_StatusBar- now uses proper doubleclick event instead of the previous oh-my-it-is-totally-random-it-works technique
Added doubleclick event to listview
Force folder browse dialog to only use real filesystem and not libraries
CL_Spin fixes - initial step_size was initialised. The set_xxx functions now imply the floating point mode. set_floating_point_mode(false) sets the lineedit correctly. clamp_value() returns value changed state
Minor code cleanup
Fix the mouse double click events in the examples
Include all the clanGL, clanGL1 and clanSWRender for all linux makefiles, to make switching targets in the source code easier
New "Display/Alpha" example to show how ClanLib and OpenGL uses the alpha channel using the default method.
TexturePacker Tool - Added support for viewing images (not only sprites) in resource viewer.
TexturePacker Tool - Added sort option to texture packer.
TexturePacker Tool - Changed 512x256 pack size option to 1024x256
Linux - clanGUI file dialog code exists on ClanLib 2.4 (Development). If they require backporting, please let us know. It would require clanGUI to use gtk as a dependency.
Linux Transparent Windows Example
.