Notes on C++ SFINAE

This time I’d like to tackle a bit more complex problem: SFINAE. I’m not using this paradigm on a daily basis, but I’ve stumbled across it several times and I thought it might be worth trying to understand this topic. What is SFINAE? Where can you use it? Do you need this on a daily basis?

READ MORE...

Micro benchmarking libraries for C++

After I finished my last post about a performance timer, I got a comment suggesting other libraries - much more powerful than my simple solution. Let’s see what can be found in the area of benchmarking libraries. Intro The timer I’ve introduced recently is easy to use, but also returns just the basic information: elapsed time for an execution of some code… what if we need more advanced data and more structured approach of doing benchmarks in the system?

READ MORE...

Simple Performance Timer

When you’re doing a code profiling session it’s great to have advanced and easy to use tools. But what if we want to do some simple test/benchmark? Maybe a custom code would do the job? Let’s have a look at simple performance timer for C++ apps. Intro A task might sound simple: detect what part of the code in the ABC module takes most of the time to execute.

READ MORE...

C++ Status at the end of 2015

Maybe I’ll be boring with this note, but again I need to write that this was another good year for C++! Here’s a bunch of facts: Visual Studio 2015 was released with great support for C++14⁄17 and even more experimental features. Long-awaited GCC 5.0 was released at the beginning of the year.

READ MORE...

OpenGL SuperBible 7th

Several moths ago I’ve noticed there would be another version of OpenGL Superbible. This time the 7th edition! Without much thinking I quickly I pre-ordered it. Around two weeks ago the book appeared at my doorstep so now I can share my thoughts with you. Is this book worth buying?

READ MORE...

Applying the Strategy Pattern

Let’s look at the following problem: We are designing a drawing application. We want some objects to be automatically scaled to fit inside parent objects. For example: when you make a page wider, images can decide to scale up (because there’s more space). Or if you make a parent box narrower image needs to scale down.

READ MORE...

PDB Was Not Found - Linker Warning

You’ve just recompiled a 3rd party library in Visual Studio, copied the .lib file into a proper directory, added dependencies into your final project… recompiled and it worked nicely! Good. So now you can commit the changes into the main repository. Then, unfortunately, you got a report from a build server (or from your colleague) that your recent change generated 10s of warning messages about some missing files from this new library… why is that?

READ MORE...

Flexible Particle System - Summary

It’s been one year since the first posts about my particle system: a demo in March and then an introduction in April. Last time I wrote about renderer updates and this was the last planned post for the series. I think most of requirements were achieved and I can be quite happy about the results.

READ MORE...

Soft Skills - Book Review

Programmers are not machines that just write code. We have feeling and emotions as well! ;) We all need to learn a lot of new things, sharpen the saw, focus, make good choices about our career path, and simply, have fun. While most books describe the technical side of coding, not many address the psychological/business/economic side of our profession.

READ MORE...

Vulkan

At GDC 2015 in San Francisco, Khronos announced new API for graphics and compute, previously it was called glNext… but now the official name is “Vulkan”! I could not resist to write some comments about this new and intriguing standard that can potentially “replace” OpenGL. Bunch of links khronos.

READ MORE...