Index: vulkan-game.cpp
===================================================================
--- vulkan-game.cpp	(revision cc4a8b5a5d3a6b4c7eac71bbcdf6180cb2adec77)
+++ vulkan-game.cpp	(revision 1f25a71b386eeef5cb6cbb0253d3ce9645138b70)
@@ -28,4 +28,7 @@
    gui = nullptr;
    window = nullptr;
+   font = nullptr;
+   fontSDLTexture = nullptr;
+   imageSDLTexture = nullptr;
 
    currentFrame = 0;
@@ -102,4 +105,43 @@
 
    SDL_VERSION(&sdlVersion);
+
+   cout << "SDL " << sdlVersion.major << "." << sdlVersion.minor << "." << sdlVersion.patch << endl;
+
+   font = TTF_OpenFont("assets/fonts/lazy.ttf", 28);
+   if (font == nullptr) {
+      cout << "Failed to load lazy font! SDL_ttf Error: " << TTF_GetError() << endl;
+      return RTWO_ERROR;
+   }
+
+   SDL_Surface* fontSDLSurface = TTF_RenderText_Solid(font, "Great success!", { 255, 255, 255 });
+   if (fontSDLSurface == nullptr) {
+      cout << "Unable to render text surface! SDL_ttf Error: " << TTF_GetError() << endl;
+      return RTWO_ERROR;
+   }
+
+   fontSDLTexture = SDL_CreateTextureFromSurface(renderer, fontSDLSurface);
+   if (fontSDLTexture == nullptr) {
+      cout << "Unable to create texture from rendered text! SDL Error: " << SDL_GetError() << endl;
+      SDL_FreeSurface(fontSDLSurface);
+      return RTWO_ERROR;
+   }
+
+   SDL_FreeSurface(fontSDLSurface);
+
+   // TODO: Load a PNG instead
+   SDL_Surface* imageSDLSurface = SDL_LoadBMP("assets/images/spaceship.bmp");
+   if (imageSDLSurface == nullptr) {
+      cout << "Unable to load image " << "spaceship.bmp" << "! SDL Error: " << SDL_GetError() << endl;
+      return RTWO_ERROR;
+   }
+
+   imageSDLTexture = SDL_CreateTextureFromSurface(renderer, imageSDLSurface);
+   if (imageSDLTexture == nullptr) {
+      cout << "Unable to create texture from BMP surface! SDL Error: " << SDL_GetError() << endl;
+      SDL_FreeSurface(imageSDLSurface);
+      return RTWO_ERROR;
+   }
+
+   SDL_FreeSurface(imageSDLSurface);
 
    // In SDL 2.0.10 (currently, the latest), SDL_TEXTUREACCESS_TARGET is required to get a transparent overlay working
@@ -117,7 +159,9 @@
    if (uiOverlay == nullptr) {
       cout << "Unable to create blank texture! SDL Error: " << SDL_GetError() << endl;
+      return RTWO_ERROR;
    }
    if (SDL_SetTextureBlendMode(uiOverlay, SDL_BLENDMODE_BLEND) != 0) {
       cout << "Unable to set texture blend mode! SDL Error: " << SDL_GetError() << endl;
+      return RTWO_ERROR;
    }
 
@@ -282,4 +326,12 @@
    SDL_RenderFillRect(renderer, &rect);
 
+   rect = {10, 10, 0, 0};
+   SDL_QueryTexture(fontSDLTexture, nullptr, nullptr, &(rect.w), &(rect.h));
+   SDL_RenderCopy(renderer, fontSDLTexture, nullptr, &rect);
+
+   rect = {10, 80, 0, 0};
+   SDL_QueryTexture(imageSDLTexture, nullptr, nullptr, &(rect.w), &(rect.h));
+   SDL_RenderCopy(renderer, imageSDLTexture, nullptr, &rect);
+
    SDL_SetRenderDrawColor(renderer, 0x00, 0x00, 0xFF, 0xFF);
    SDL_RenderDrawLine(renderer, 50, 5, 150, 500);
@@ -388,4 +440,17 @@
       uiOverlay = nullptr;
    }
+
+   if (fontSDLTexture != nullptr) {
+      SDL_DestroyTexture(fontSDLTexture);
+      fontSDLTexture = nullptr;
+   }
+
+   if (imageSDLTexture != nullptr) {
+      SDL_DestroyTexture(imageSDLTexture);
+      imageSDLTexture = nullptr;
+   }
+
+   TTF_CloseFont(font);
+   font = nullptr;
 
    SDL_DestroyRenderer(renderer);
Index: vulkan-game.hpp
===================================================================
--- vulkan-game.hpp	(revision cc4a8b5a5d3a6b4c7eac71bbcdf6180cb2adec77)
+++ vulkan-game.hpp	(revision 1f25a71b386eeef5cb6cbb0253d3ce9645138b70)
@@ -87,4 +87,9 @@
       VkDescriptorImageInfo sdlOverlayImageDescriptor;
 
+      TTF_Font* font;
+      SDL_Texture* fontSDLTexture;
+
+      SDL_Texture* imageSDLTexture;
+
       vector<VkSemaphore> imageAvailableSemaphores;
       vector<VkSemaphore> renderFinishedSemaphores;
Index: vulkan-ref.cpp
===================================================================
--- vulkan-ref.cpp	(revision cc4a8b5a5d3a6b4c7eac71bbcdf6180cb2adec77)
+++ vulkan-ref.cpp	(revision 1f25a71b386eeef5cb6cbb0253d3ce9645138b70)
@@ -152,5 +152,4 @@
       SDL_Renderer* gRenderer = nullptr;
       SDL_Texture* uiOverlay = nullptr;
-/*** END OF REFACTORED CODE ***/
 
       TTF_Font* gFont = nullptr;
@@ -158,5 +157,4 @@
       SDL_Texture* uiImage = nullptr;
 
-/*** START OF REFACTORED CODE ***/
       VkInstance instance;
       VkDebugUtilsMessengerEXT debugMessenger;
@@ -264,7 +262,6 @@
             cout << "Unable to set texture blend mode! SDL Error: " << SDL_GetError() << endl;
          }
-/*** END OF REFACTORED CODE ***/
-
-         gFont = TTF_OpenFont("fonts/lazy.ttf", 28);
+
+         gFont = TTF_OpenFont("assets/fonts/lazy.ttf", 28);
          if (gFont == nullptr) {
             cout << "Failed to load lazy font! SDL_ttf Error: " << TTF_GetError() << endl;
@@ -272,7 +269,5 @@
          }
 
-         SDL_Color textColor = { 0, 0, 0 };
-
-         SDL_Surface* textSurface = TTF_RenderText_Solid(gFont, "Great sucess!", textColor);
+         SDL_Surface* textSurface = TTF_RenderText_Solid(gFont, "Great success!", { 255, 255, 255 });
          if (textSurface == nullptr) {
             cout << "Unable to render text surface! SDL_ttf Error: " << TTF_GetError() << endl;
@@ -308,5 +303,4 @@
       }
 
-/*** START OF REFACTORED CODE ***/
       void initVulkan() {
          createInstance();
@@ -1851,5 +1845,4 @@
          SDL_SetRenderDrawColor(gRenderer, 0x00, 0x00, 0x00, 0x00);
          SDL_RenderClear(gRenderer);
-/*** END OF REFACTORED CODE ***/
 
          SDL_Rect rect;
@@ -1858,5 +1851,4 @@
          SDL_SetRenderDrawColor(gRenderer, 0x00, 0xFF, 0x00, 0xFF);
          SDL_RenderFillRect(gRenderer, &rect);
-         SDL_SetRenderDrawColor(gRenderer, 0x00, 0x9F, 0x9F, 0xFF);
 
          rect = {10, 10, 0, 0};
@@ -1868,5 +1860,4 @@
          SDL_RenderCopy(gRenderer, uiImage, nullptr, &rect);
 
-/*** START OF REFACTORED CODE ***/
          SDL_SetRenderDrawColor(gRenderer, 0x00, 0x00, 0xFF, 0xFF);
          SDL_RenderDrawLine(gRenderer, 50, 5, 150, 500);
@@ -1970,8 +1961,7 @@
             uiOverlay = nullptr;
          }
-/*** END OF REFACTORED CODE ***/
 
          TTF_CloseFont(gFont);
-	      gFont = nullptr;
+         gFont = nullptr;
 
          if (uiText != nullptr) {
@@ -1985,5 +1975,4 @@
          }
 
-/*** START OF REFACTORED CODE ***/
          SDL_DestroyRenderer(gRenderer);
          gRenderer = nullptr;
