From 1b41b875dcd24c662b947731f48f4d1c7131fa0b Mon Sep 17 00:00:00 2001
From: bunnei <bunneidev@gmail.com>
Date: Sat, 14 Apr 2018 18:50:06 -0400
Subject: [PATCH] shaders: Add NumTextureSamplers const, remove unused #pragma.

---
 src/video_core/engines/shader_bytecode.h             | 2 --
 src/video_core/renderer_opengl/gl_rasterizer.h       | 2 +-
 src/video_core/renderer_opengl/gl_shader_manager.cpp | 2 +-
 src/video_core/renderer_opengl/gl_shader_manager.h   | 3 +++
 4 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/video_core/engines/shader_bytecode.h b/src/video_core/engines/shader_bytecode.h
index 98af381dfa..eff0c35a15 100644
--- a/src/video_core/engines/shader_bytecode.h
+++ b/src/video_core/engines/shader_bytecode.h
@@ -323,7 +323,5 @@ static_assert(sizeof(Instruction) == 0x8, "Incorrect structure size");
 static_assert(std::is_standard_layout<Instruction>::value,
               "Structure does not have standard layout");
 
-#pragma pack()
-
 } // namespace Shader
 } // namespace Tegra
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.h b/src/video_core/renderer_opengl/gl_rasterizer.h
index 32b897eb29..71c21c69b2 100644
--- a/src/video_core/renderer_opengl/gl_rasterizer.h
+++ b/src/video_core/renderer_opengl/gl_rasterizer.h
@@ -128,7 +128,7 @@ private:
     OGLVertexArray hw_vao;
     std::array<bool, 16> hw_vao_enabled_attributes;
 
-    std::array<SamplerInfo, 32> texture_samplers;
+    std::array<SamplerInfo, GLShader::NumTextureSamplers> texture_samplers;
     static constexpr size_t VERTEX_BUFFER_SIZE = 128 * 1024 * 1024;
     std::unique_ptr<OGLStreamBuffer> vertex_buffer;
     OGLBuffer uniform_buffer;
diff --git a/src/video_core/renderer_opengl/gl_shader_manager.cpp b/src/video_core/renderer_opengl/gl_shader_manager.cpp
index 67f2be0563..7fceedce86 100644
--- a/src/video_core/renderer_opengl/gl_shader_manager.cpp
+++ b/src/video_core/renderer_opengl/gl_shader_manager.cpp
@@ -38,7 +38,7 @@ void SetShaderSamplerBindings(GLuint shader) {
     cur_state.Apply();
 
     // Set the texture samplers to correspond to different texture units
-    for (u32 texture = 0; texture < 32; ++texture) {
+    for (u32 texture = 0; texture < NumTextureSamplers; ++texture) {
         // Set the texture samplers to correspond to different texture units
         std::string uniform_name = "tex[" + std::to_string(texture) + "]";
         GLint uniform_tex = glGetUniformLocation(shader, uniform_name.c_str());
diff --git a/src/video_core/renderer_opengl/gl_shader_manager.h b/src/video_core/renderer_opengl/gl_shader_manager.h
index b5a7b2a18b..5c8560cf54 100644
--- a/src/video_core/renderer_opengl/gl_shader_manager.h
+++ b/src/video_core/renderer_opengl/gl_shader_manager.h
@@ -14,6 +14,9 @@
 
 namespace GLShader {
 
+/// Number of OpenGL texture samplers that can be used in the fragment shader
+static constexpr size_t NumTextureSamplers = 32;
+
 using Tegra::Engines::Maxwell3D;
 
 namespace Impl {