Practical sessions
You will see this section at the end of every chapter in the book. Here, I will add a bunch of suggestions and exercises that you can try out with the code on GitHub.
Usually, there’s no danger in doing something wrong while experimenting. Changing lines, deleting, or adding new code may end in your program no longer compiling or even crashing, but your computer will not explode if you make mistakes. In the few cases where hazardous behavior can occur (such as overwriting some of your files), I will attach a big red warning sticker.
So, here’s something for you to try. After you have created the window, you might notice that you still can’t resize it (the setting was done intentionally). You might also want to change the title of the window to make it more like your very own application. And the handling of the mouse and keyboard could also use a little bit of polish.
You could try to do the following:
- Play around with the window title. You can change it at any time after its creation, and it can store a lot of information in an easily accessible place. You could use it for the name of the model you loaded, the animation replay speed, and more.
- Set a callback for the handling of window resizing. This will be handy once we have enabled 3D rendering, and you will need to adjust the sizes of the other buffers too.
- Store information about some keys, such as W, A, S, and D or the cursor keys. Set the status when pressed and clear it on release. We will need the stored status of the keys in Chapter 5 to move around inside the virtual world.
- Add support for mouse movement on a mouse button press only. Imagine you would like to rotate the view around your animated model while the left button is being pressed or zoom in and out while the right button is being pressed.