The magic of pointers
Our friend, Mr. Smith, has progressed a lot from his first steps in Delphi. Now, he is playing with graphics. He wants to build a virtual reality app that will allow you to walk through the Antarctica forests. While he’s getting some success, he has problems displaying the correct colors on the screen.
A part of his code is producing textures in Blue-Green-Red (BGR) byte order, while the graphics driver needs them in the more standard Red-Green-Blue (RGB) order. He already wrote some code to fix this problem, but his solution is a bit too slow. He’d like to push a frame or two more from the system, and so I promised that I’d help him optimize the converter. I’m glad to do it, as his problem neatly fits into the story of pointers.
A pointer is a variable that stores an address of some data (other variables, dynamically allocated memory, a specific character in a string, and so on). It is always the same size – 4 bytes on...