Sh 0.8.0rc1 Release Notes (Codename: Hoegaarden)
This second release candidate for the stable Sh release resolves the majority of problems tied to 64-bit operating systems, ATI graphics cards, Visual Studio 2005, and OS X. Beyond several minor bug fixes, two memory leaks have been removed and the dead code remover has been enhanced. An SDL example now ships in the examples directory, together with Visual Studio project files for every other example. A few issues remain outstanding. Should you run into any other difficulties with this build, reach out to the team via the mailing list.
Posted by Francois on 16 February 2006 (EST).
Change Log Highlights
13 February 2006
- In the GL backends, removed the new and delete calls inside DLLMain, which instantiate_backend now handles.
10 February 2006
- Prevented the GlBackend DLL from being registered twice.
9 February 2006
- Added extra brackets to SH_BEGIN and SH_END so compilation fails when SH_END is missing (issue290).
- Outputs are now initialized to zero in the Cc backend to match GPU backends.
- Dropped the ATI hacks for DIV and MOD in the GLSL and ARB emitters, adjusting unit tests instead.
- Corrected the ATI_draw_buffers code for ATI hardware on Linux.
8 February 2006
- Fixed an exception raised when SH_BACKEND_DIR is unset and no backend was specified.
- Shader output now uses ARB_draw_buffers when ATI_draw_buffers is undefined.
- Programs must be compiled with -fPIC to run on 64-bit machines.
- Improved the mipmapped texture size check, turning it into a runtime error and moving it to build_mipmaps.
- Added a check for the __BIG_ENDIAN__ define and removed a cyclic reference on BaseTexture.hpp.
- When SH_BACKEND_DIR is set on OS X or Linux, it is now used exclusively to locate backends, which helps with IDEs.
7 February 2006
- The ShAttrib constructor now accepts a const array (issue283).
- Variable nodes allocated with the global operator new are now deleted.
- GLSL backend sets now always bind and query GL state to decide whether to unbind, supporting multi-GL-context setups.
2 February 2006
- Fixed a memory leak in allocate_constant.
1 February 2006
- Fixed the destination cast in emit_logic, worked around log(1) != 0 on ATI, and added ATI workarounds for DIV and MOD.
31 January 2006
- Removed table lookup caching to work around gcc crashes with ATI on Linux.
- Added a simple pass that reorders statements to reduce the number of live variables.
30 January 2006
- Errors when retrieving GL_EXTENSIONS are now checked and a warning is displayed.
- Meta data can now be iterated with begin_meta and end_meta functions.
28 January 2006
- GLSL logical operations are cast to statement destination types, resolving issue279; discard was also fixed on ATI cards.
27 January 2006
- Added a hack for division by the same number on ATI and refactored the code to drop real_div.
19 January 2006
- Variables with decls outside the program are no longer marked live; removed an unnecessary TODO about NVVP and NVFP.
- Added a configure check for zlib, which libpng depends on.
18 January 2006
- encodeArray now uses commas to produce C-style array declarations.
- ATI extensions are preferred for floating point buffers in WGLPBufferContext.
16 January 2006
- Applied the correct swizzle when the destination size differs from the texture size.
12 January 2006
- reflect now actually normalizes b as described in the book.
10 January 2006
- name() and version() are now non-virtual and return member variable contents set by backend constructors; added assertions for valid backend names.
6 January 2006
- Added a LibraryInformation class storing the backend handle and entry points, enabling statically linked backends.
- Added shRegisterBackend for backends that are not dynamically loaded.
- __PPC__ is now used as the big endian flag instead of __APPLE__.
4 January 2006
- Array initialization now uses semicolons instead of commas, avoiding a VS2005 stringstream constructor problem; GlslVariable updated accordingly.
12 December 2005
- emit_cond now checks GL_VENDOR safely and ignores a NULL string.
30 November 2005
- Reverted Hans's 2005-11-29 change to ShGeneric, with plans to reintroduce and fix it properly in 0.9.
- poly and sort no longer use ShGeneric as a temporary variable, fixing the 'poly' unit test.
29 November 2005
- Noted that a templated copy constructor is never instantiated for the class type itself, so ShGeneric(const ShGeneric& other) must be provided even when a conversion copy constructor exists.
Project Links
- Libsh home
- ShWiki main page
- 0.8.0rc1 release notes
- Recent changes
- Random page
- Upload file
- Special pages
- About ShWiki
- Join the libsh-users mailing list
- Hoegaarden on BeerAdvocate
- MediaWiki

