I just wrote a small time-measurement-class in C++11 to be able to measure the time spended in a loop. It is just a simple struct which will measure the time via RAII ( see Resource_acquisition_is_initialization ) . The time will be measured by using the std::clock() ( see std::clock-doc ) class. So this solution will…
Assimp: Starting to support point-clouds
In Asset-Importer-Lib we got a lot of feature-requests to provide point-clouds somehow. Doing this will be a big step for our library because the intention when designing Assimp was to give the user an optimized scene with meshes ready for rendering. And we need triangles to get a valid scene definition. And all free vertices,…
OSRE: The threading model
When I started to work on my OSRE-Engine I was just curious how to answer the following question: how can I work with a separate render-thread without getting mad all day long. And what the fuck is a thread. So I decided to implement my own multi-threaded renderer some years ago. Special when you want…
Assimp poll: Which port is the right one
For all who are interested in the language ports of Asset-Importer-Lib: I opened a poll which language binding will be preferred. So if you want to vote as well, feel free to participate our poll at: The Assimp language binding Poll
Dealing with Legacy Code Part 2: Extract the API out of your interfaces
Think about the following situation: There is an interface / class interface / function in your application used by others which conains non-standard enums / types / whatever coming from an external API like OpenGL, DirectX, some kind of commercial API. The underlying code strongly uses this API. So using parts of this API was…
Dealing with Legacy Code Part 1: Get started
What is this all about? At the moment I have to deal with legacy code during my day-job. And I got the idea that, maybe, some other people are interested how I solved all the different issues as well. So I decided to start a serie of blogposts about the different kind of challenges I…
Assimp on Patreon
If you want to support my Asset-Importer-Work: here is my Patreon-Profile for the assimp-library: https://www.patreon.com/assimp I cannot promise that I will be able to work on Assimp all day. But for funding will help me to improve the underlying infrastructure like the webspace or some new hardware.
Use the Asset-Importer-Lib Meta-Data-API right
The problem: Think of the following situation: you want to import a model using Asset-Importer-Lib and store some values like the version of the current asset or the author / company. Or when you want to manage the models using modules for a much more efficient way for your SCM you need to store grouping…
C#: Use System.Diagnostics.Trace and DbgView within a WPF-Application
One of my favorite tools to debug MFC-Applications was the Win32-call: You can use it to trace information withing your application during runtime without a log-file. You only have to run the tool DbgView to monitor these log-entries ( if you want to try it out you can download DbgView here. ) Because I am…
C#: Calling a generic from a generic with surprises
I am currently working on C# wit generics. The base concept seems to be the same as in C++ ( which I really like honestly spoken ). And I tried to use specialization. There was a class which needs to deal with special data types. And for some special cases you need a type-specific semantic,…
A new concept for testing Asset-Importer-Lib
Our problem! After struggeling with bugs in assimp for more than 10 years until now I have to accept the fact: I need to improve our unittests + regression-test-strategy: New patches are breaking older behaviour and I haven’t recognized it until a new issue comes up created by a frustrated user. I do not have…
Getting starting with a Legacy-Code-Project
Day zero Imagine the following situation: you are starting a new job, you are looking forward to your bright future. Of course you are planning to use the newest technologies and frameworks. And then you are allowed to take a first look into the source you have to work with. No tests, no spec, which…
More Quality-Assurance on GitHub via SAAS
When you are working on Github with your project there are a lot really handy services which you can use. This kind of software-usage is called “Software-As-A-Service”. Why? You can use it via a nice Web-API without having all the maintain-work. For instance when you want to use a Continuous-Integration-Service for your project you can…
Watch your logs in your unittests!
The idea Unittests and integration-tests are a great tool not to break your code. They are building a safety-net to help you when you have to add a new feature or fixing a bug in an existing codebase. But of course there will be situations when a bug will occur which was not covered by…
Static code analysis with QtCreator-4.0.0, part 1
The latest version of QtCreator brings an option to run static-code-analysis using Clang. I struggled a lot with the setup of Coverity for Asset-Importer-Lib, so I had some hope that the setup for Clang will be a little bit easier. I wanted to run it on Windows 10 first, then move to Linux. So here…
Build Asset Importer Lib for 64bit with Visual Studio from source-repo
If you want to generate a 64bit-build for Asset-Importer-Lib by using the Visual Studio project files generated by CMake please follow these instructions: Make sure that you are using a supported cmake ( 2.8 or higher at the moment )- and Visual-Studio-Version ( on the current master VS2010 is deprecated ) Clone the latest master…
Asset Importer Lib binaries of the latest build
If you are looking for the latest Asset Importer Lib build: we are using appveyor ( check their web-site https://ci.appveyor.com, its free for OpenSource projects ). as the Continuous Integration service for windows. If the build was successful it will create an archive containing the dll’s, all executables and the export libraries for Windows. At…
Please use only one statement per assert
Do you know the assert-macro? It is an easy tool for debugging: You can use it to check if a pointer is a NULL-pointer or if your application is in a proper state for processing. When this is not the case, if will stop your application, when you are using a debug mode, in release…
I was hacked!
Dear reader, someone hacked my webspace and all older posts were deleted. Sorry, I wil start to rework on them as fast as possible. With best regards, Kim Kulling