Errata and a Nice C++ Factory Implementation
I've finally got my copy of "Effective Modern C++"! The book looks great, good paper, nice font, colors... and of course the content :)While skimming through it for the first (or second) time I've...
View ArticlePersistent Mapped Buffers in OpenGL
It seems that it's not easy to efficiently move data from CPU to GPU. Especially, if we like to do it often - like every frame, for example. Fortunately, OpenGL (since version 4.4) gives us a new...
View ArticlePersistent Mapped Buffers, Benchmark Results
In part 2 of the article about persistent mapped buffers I share results from the demo app.I've compared single, double and triple buffering approach for persistent mapped buffers. Additionally there...
View ArticleNon Static Data Members Initialization
My short summary for non static data members initialization from modern C++. A very useful feature. Should we use it or not?IntroBasic exampleWhy usefulMore detailsAny negatives?Should you use it?Your...
View ArticleFinding memory leaks with Deleaker
Since the beginning of January I got a chance to play with a nice tool that’s called Deleaker. Its main role, as can be easily decoded, is to find leaks in your native applications. I often had...
View ArticleFlexible particle system - Renderer optimization
Finally, I managed to finish the adventure with my particle system! This time I’d like to share some thoughts about improvements in the OpenGL renderer.Code was simplified and I got little performance...
View ArticleVulkan
khronos.org/vulkanAt 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...
View ArticleSoft 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,...
View ArticleFlexible 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...
View ArticlePDB 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...
View ArticleApplying 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,...
View ArticleOpenGL 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...
View ArticleVisual Studio slow debugging and _NO_DEBUG_HEAP
Verify you assumptions about tools you use!Some time ago I was tracing a perf problem (UI code + some custom logic). I needed to track what module was eating most of the time in one specific scenario....
View ArticleC++ 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...
View ArticleSimple 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...
View ArticleMicro 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...
View ArticleRevisiting An Old Benchmark - Vector of objects or pointers
Around one and a half year ago I did some benchmarks on updating objects allocated in a continuous memory block vs allocated individually as pointers on the heap: Vector of Objects vs Vector of...
View ArticleNotes 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...
View ArticleSFINAE Followup
As it appears, my last post about SFINAE wasn’t that bad! I got a valuable comments and suggestions from many people. This post gathers that feedback.Using modern...
View ArticleNice C++ Factory Implementation 2
The original code from my previous post about “nice factory” did not work properly and I though there is no chance to fix it. It appears, I was totally wrong! I got a really valuable feedback (even...
View Article