Tk11 is a toolkit library for Direct3D 11. It provides an application framework using callbacks, similar to GLUT and other toolkit libraries, as well as utility classes and functions for making numerous Direct3D 11 tasks easier and more robust in regards to error handling and resource management.
Tk11 is a C++ library, which depends only on Boost, DirectX and the Windows API. It is provided as source code under the Boost license and intended to be built and linked into applications as a static library.
The official project web site can be found here:
The SourceForge project page can be found here:
Tk11 has not been tested with compilers other than Microsoft Visual C++. Please let me know if you successfully compiled Tk11 with other compilers, or if you encountered any problems. Patches are also welcome.
Tk11, as well as all applications using Tk11 directly (i.e. including Tk11 headers), depend on the Boost headers. Tk11 does not require linking against any binary Boost libraries, so you will do need to build Boost. All you need to do is download Boost, install the header files somewhere, and make sure your compiler can find them.
Tk11 is distributed under the Boost license version 1.0, which allows you to use the source code in closed-source, open-source, non-commercial and commercial software. Here is the full license text:
Boost Software License - Version 1.0 - August 17th, 2003 Permission is hereby granted, free of charge, to any person or organization obtaining a copy of the software and accompanying documentation covered by this license (the "Software") to use, reproduce, display, distribute, execute, and transmit the Software, and to prepare derivative works of the Software, and to permit third-parties to whom the Software is furnished to do so, all subject to the following: The copyright notices in the Software and this entire statement, including the above license grant, this restriction and the following disclaimer, must be included in all copies of the Software, in whole or in part, and all derivative works of the Software, unless such copies or derivative works are solely in the form of machine-executable object code generated by a source language processor. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
__uuidof, which is a Microsoft language extension. This will be replaced by a template class in the next release.
Tk11 started as a collection of helper classes and functions I wrote for myself when I was experimenting with Direct3D 11. Although I find that Direct3D 11 is the best version of the Direct3D API ever released (and the one which finally made me migrate from OpenGL to Direct3D), some tasks are still more complicated than necessary, and parts of the API are too C-like (bad or no error handling, manual resource management, poor readability of the source code).
Tk11 is NOT a wrapper of Direct3D 11. It only adds "syntactic sugar" to Direct3D 11 and a framework which encapsulates some Windows API tasks, such as creating a window and handling messages.
Tk11 is NOT an abstraction layer on top of the graphics API. If you are looking for a generic abstraction layer with maximum portability, then OpenGL is what you are looking for.
Tk11 is NOT a high-level graphics engine such as Ogre or OpenSceneGraph. It is a simple framework for building small applications on top of it. It may also be possible to develop a more sophisticated graphics engine on top of Tk11, but this is not its intended purpose.
If you are looking for an open source rendering engine based on Direct3D 11, you may want to have a look at Hieroglyph 3 instead: http://hieroglyph3.codeplex.com/
The following features are planned for upcoming releases: