Vulkan, Wanna Be Friends? #3 Window Resize and SwapChain Recreation

We want to be able to resize our window. 
Many Games don't let dynamic and flexible resize maybe because of the check and additional work each frame and It's not logical to change windows size and resolution so often, so It's a win-win!
After one resize we are freeing and allocating memory which has cost, thus hard to do each frame when resizing dynamically.

Here's a version where we don't handle Resize:

Handling Resize In Vulkan To Resize our window we have to Recreate our whole SwapChain and thus these below as before when initiating Vulkan: ReCreate Image Views Because of New SwapChain Images.ReCreate FrameBuffers Because Width and Height and Image Views(Views to SwapChain Images) ChangedReCreate Graphics Pipeline Because viewport and scissor need to change.ReCreate and Record new Command Buffers Because of New SwapChain ImagesVulkan Tutorial: The render pass needs to be recreated because it depends on the format of the swap chain images.Note (Step 5): It's …

Introduction to This Blog

Who am I? 

Just Looking at Nothing

I'm Erfan,
  •  An enthusiastic programmer currently located in Iran.
  • C++ Programmer at a Company, and sometimes I have to do fun stuff with Graphics APIs like DirectX and OpenGL but never had the time to really understand it.
  • A student of Computer Science at Shahid Beheshti Unversity (I think University is a waste of time for me)

I Love...

In my case, Hello Triangle
  • Learning 
  • Creating new and creative things
  • Low-Level Graphics Programming
  • Applying Math to my Programs, simply I love math :) 
  • Gaming, such little time to play all these exciting new games. currently on Detroit: Become Human on PS4 about a month now.
  • Writing high-performance applications 
  • Data-Oriented programming.
  • Playing guitar. started it exactly a year ago but still a complete beginner.

What are my experiences?

  • Programming C++ for a lot of time now. Started  C++ about 5 years ago on and off but everyday programming for a year now)
  • Worked and did some Unity3D projects with C#.
  • PlayPod PC Client (Cloud Gaming Platform in Iran)
  • Played around with dear ImGui a lot
  • Tried to write a 2D Game Engine over DirectX 11 with a friend of mine 3 years ago, but I didn't do any DirectX work, just math, and physics stuff
  • Multi-threading experiences with TBB, C++ Standard Lib and most recently trying OpenMP (boy multi-threading is so energy consuming, I love it)
  • Other unrelated stuff: Apps with Java, Some games with python, Android programming

What is this Blog For? 

I started this blog to make a commitment to achieve Goals, short-term or long-term goals and write my journey as someone who has little experience in Graphics API's and barely knows about the Rendering Graphics Pipeline.

I will try to post C++ and my work-related stuff too,

What are my Goals about?

Well, right now I'm starting to learn Vulkan API and writing Shaders and try to make a Pro graphics programmer out of my self. Also, I have Data-oriented programmingUnreal Engine, CUDA, OpenCL and a lot of other stuff in mind.

You can find me on:

Here Is My Google Keep Note :D

Hope You'll enjoy this blog.