Get more compiling on MSVC

Diffs=
1a271c437 Get more compiling on MSVC (#5547)

Co-authored-by: Chris Dalton <99840794+csmartdalton@users.noreply.github.com>
diff --git a/.rive_head b/.rive_head
index f3fc963..e871fb8 100644
--- a/.rive_head
+++ b/.rive_head
@@ -1 +1 @@
-cd6a563e179cacbe5f243de12f04c04a8be83555
+1a271c4378f1fe79235e0e930d8261cbc09ea1be
diff --git a/include/rive/pls/buffer_ring.hpp b/include/rive/pls/buffer_ring.hpp
index 149bb49..d2996a5 100644
--- a/include/rive/pls/buffer_ring.hpp
+++ b/include/rive/pls/buffer_ring.hpp
@@ -109,6 +109,7 @@
             case Format::rgba32ui:
                 return 4 * 4;
         }
+        RIVE_UNREACHABLE();
     }
 
     enum class Filter
diff --git a/include/rive/pls/d3d/d3d11.hpp b/include/rive/pls/d3d/d3d11.hpp
index 762f245..5abbf78 100644
--- a/include/rive/pls/d3d/d3d11.hpp
+++ b/include/rive/pls/d3d/d3d11.hpp
@@ -15,7 +15,11 @@
         HRESULT hr = (CODE);                                                                       \
         if (hr != S_OK)                                                                            \
         {                                                                                          \
-            fprintf(stderr, __FILE__ ":%u: D3D error 0x%lx: %s\n", __LINE__, hr, #CODE);           \
+            fprintf(stderr,                                                                        \
+                    __FILE__ ":%i: D3D error 0x%lx: %s\n",                                         \
+                    static_cast<int>(__LINE__),                                                    \
+                    hr,                                                                            \
+                    #CODE);                                                                        \
             exit(-1);                                                                              \
         }                                                                                          \
     }
diff --git a/include/rive/pls/pls.hpp b/include/rive/pls/pls.hpp
index aa350b7..3edb100 100644
--- a/include/rive/pls/pls.hpp
+++ b/include/rive/pls/pls.hpp
@@ -127,6 +127,7 @@
         case StrokeJoin::bevel:
             return flags::kBevelJoin;
     }
+    RIVE_UNREACHABLE();
 }
 
 // Tells the GPU that a given path has an even-odd fill rule.
diff --git a/include/rive/pls/pls_render_context.hpp b/include/rive/pls/pls_render_context.hpp
index f1a3916..13108cb 100644
--- a/include/rive/pls/pls_render_context.hpp
+++ b/include/rive/pls/pls_render_context.hpp
@@ -398,9 +398,9 @@
         }
     }
 
-    constexpr static uint32_t ShaderUniqueKey(SourceType sourceType,
-                                              DrawType drawType,
-                                              const ShaderFeatures& shaderFeatures)
+    static uint32_t ShaderUniqueKey(SourceType sourceType,
+                                    DrawType drawType,
+                                    const ShaderFeatures& shaderFeatures)
     {
         return (shaderFeatures.getPreprocessorDefines(sourceType) << 1) |
                (drawType == DrawType::interiorTriangulation);
diff --git a/out/premake5.lua b/out/premake5.lua
index 01659e3..e1b6d55 100644
--- a/out/premake5.lua
+++ b/out/premake5.lua
@@ -121,7 +121,8 @@
                  RIVE_RUNTIME_DIR .. "/skia/dependencies/glfw/include"}
     flags { "FatalWarnings" }
     files {"../bubbles/bubbles.cpp",
-           "../glad/glad.c"}
+           "../glad/glad.c",
+           "../glad/glad_custom.c"}
 
     filter "system:windows"
     do
diff --git a/path_fiddle/fiddle_context_d3d.cpp b/path_fiddle/fiddle_context_d3d.cpp
index 4838079..10b6829 100644
--- a/path_fiddle/fiddle_context_d3d.cpp
+++ b/path_fiddle/fiddle_context_d3d.cpp
@@ -119,14 +119,14 @@
     ComPtr<ID3D11Device> gpu;
     ComPtr<ID3D11DeviceContext> gpuContext;
     D3D_FEATURE_LEVEL featureLevels[] = {D3D_FEATURE_LEVEL_11_1};
+    UINT creationFlags = 0;
+#ifdef DEBUG
+    creationFlags |= D3D11_CREATE_DEVICE_DEBUG;
+#endif
     VERIFY_OK(D3D11CreateDevice(adapter.Get(),
                                 D3D_DRIVER_TYPE_UNKNOWN,
                                 NULL,
-#ifdef DEBUG
-                                D3D11_CREATE_DEVICE_DEBUG,
-#else
-                                0,
-#endif
+                                creationFlags,
                                 featureLevels,
                                 std::size(featureLevels),
                                 D3D11_SDK_VERSION,
diff --git a/renderer/d3d/pls_render_context_d3d.cpp b/renderer/d3d/pls_render_context_d3d.cpp
index c2f89c8..d70738f 100644
--- a/renderer/d3d/pls_render_context_d3d.cpp
+++ b/renderer/d3d/pls_render_context_d3d.cpp
@@ -31,6 +31,7 @@
         case TexelBufferRing::Format::rgba8:
             return DXGI_FORMAT_R8G8B8A8_UNORM;
     }
+    RIVE_UNREACHABLE();
 }
 
 static ComPtr<ID3D11Texture2D> make_simple_2d_texture(ID3D11Device* gpu,
diff --git a/renderer/gl/pls_render_context_gl.cpp b/renderer/gl/pls_render_context_gl.cpp
index 1365c57..8da049c 100644
--- a/renderer/gl/pls_render_context_gl.cpp
+++ b/renderer/gl/pls_render_context_gl.cpp
@@ -39,7 +39,11 @@
 
 {
     m_shaderVersionString[kShaderVersionStringBuffSize - 1] = '\0';
+#ifdef _WIN32
+    strcpy_s(m_shaderVersionString, kShaderVersionStringBuffSize, "#version 300 es\n");
+#else
     strncpy(m_shaderVersionString, "#version 300 es\n", kShaderVersionStringBuffSize - 1);
+#endif
 #ifdef RIVE_DESKTOP_GL
     if (!GLAD_GL_version_es && GLAD_IS_GL_VERSION_AT_LEAST(4, 0))
     {
@@ -381,7 +385,7 @@
     {
         glBindBuffer(GL_ARRAY_BUFFER, gl_buffer_id(tessSpanBufferRing()));
         bindVAO(m_tessellateVAO);
-        for (int i = 0; i < 3; ++i)
+        for (uintptr_t i = 0; i < 3; ++i)
         {
             glVertexAttribPointer(i,
                                   4,
diff --git a/renderer/pls_paint.cpp b/renderer/pls_paint.cpp
index ffc0a3d..d05dcb3 100644
--- a/renderer/pls_paint.cpp
+++ b/renderer/pls_paint.cpp
@@ -71,6 +71,7 @@
         case rive::BlendMode::luminosity:
             return PLSBlendMode::luminosity;
     }
+    RIVE_UNREACHABLE();
 }
 
 void PLSPaint::blendMode(rive::BlendMode riveMode)
diff --git a/renderer/pls_render_context.cpp b/renderer/pls_render_context.cpp
index 8d79dd7..ef4ca31 100644
--- a/renderer/pls_render_context.cpp
+++ b/renderer/pls_render_context.cpp
@@ -73,6 +73,7 @@
         case PLSBlendMode::luminosity:
             return BlendTier::advancedHSL;
     }
+    RIVE_UNREACHABLE();
 }
 
 inline GradientContentKey::GradientContentKey(rcp<const PLSGradient> gradient) :
diff --git a/submodules/rive-cpp b/submodules/rive-cpp
index 8015082..06fa79b 160000
--- a/submodules/rive-cpp
+++ b/submodules/rive-cpp
@@ -1 +1 @@
-Subproject commit 801508288cd1c8e6b16946abd1f81f462fe1670f
+Subproject commit 06fa79be95cd9265fd269b9621f84d3bfcaf161f