|
Project Information
Links
|
ImportantBlitJit technology will be merged with Fog-Framework, it will not be individual project as it is currently. After merging the BlitJit will be abandoned or deleted from google-code. The reason is that nobody is using or is interested about BlitJit so the development will be simpler when using it only through Fog-Framework (data structures, pipeline, etc...). IntroductionBlitJit is high performance low level image blitting library for C++ language designed to take power of jit compilation. It's designed for embedding in graphics libraries with higher level API, but it's possible to use it directly without any other wrappers. BlitJit supports several pixel formats and compositing operations and can compile (just in time) functions for them. Currently BlitJit is crossplatform, but host processor must be x86 or x64 compatible (64 bit mode is supported of course). BlitJit library should be used to maximize speed of graphics operations. Each higher level library needs low level pixel manipulation functions that can affect overall library performance. Because BlitJit compiles everything in runtime (just in time) it can compile functions that are best for current processor. For just in time compilation is used AsmJit library. FeaturesBlitJit library contains generators that can create these kind of functions:
OptimizationsBlitJit library is optimized for generating code that outperforms others. Because pixel format conversions can be directly inlined into compositing process only 1 pass is needed to do whole operation that can take up to 4 or more passes in other libraries. Another optimization is using MMX or SSE2 instructions to do more pixels in one instruction. BlitJit contains code to use these features if processor contains them:
Together with using these features code generator can generate specialized efficient code for AMD or Intel processors, but this is very minor kind of optimization. StatusBecause BlitJit library is written using JIT compilation and it's time consuming to write really good MMX/SSE2 code it's important to introduce library status. Next list shows what operations and for what pixel format are implemented:
Pixel format descriptions:
Note that byte channel positions in pixel can be customized. Operators supported:
Operations are compatible with SVG specification. Optimizations:
DownloadCurrently BlitJit is only available through SVN repository. There is no stable release yet because library is improved day by day. Related Projects
Google Groups and Mailing ListsBlitJit google group: BlitJit mailing list:
|