From 5471c71819b40595a23d81a2e5fa605a4d5c2c0d Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Tue, 19 Aug 2014 20:18:02 -0700 Subject: [PATCH] msvc: resolve all warnings in VideoBackends/OGL. --- .../Core/VideoBackends/OGL/PostProcessing.cpp | 4 +- Source/Core/VideoBackends/OGL/Render.cpp | 39 ++++++++++++------- .../Core/VideoBackends/OGL/TextureCache.cpp | 7 +++- .../VideoBackends/OGL/TextureConverter.cpp | 3 +- 4 files changed, 35 insertions(+), 18 deletions(-) diff --git a/Source/Core/VideoBackends/OGL/PostProcessing.cpp b/Source/Core/VideoBackends/OGL/PostProcessing.cpp index 10ccf9fba8..311756d063 100644 --- a/Source/Core/VideoBackends/OGL/PostProcessing.cpp +++ b/Source/Core/VideoBackends/OGL/PostProcessing.cpp @@ -282,7 +282,7 @@ std::string OpenGLPostProcessing::LoadShaderOptions(const std::string& code) } else if (it.second.m_type == PostProcessingShaderConfiguration::ConfigurationOption::OptionType::OPTION_INTEGER) { - u32 count = it.second.m_integer_values.size(); + u32 count = static_cast(it.second.m_integer_values.size()); if (count == 1) glsl_options += StringFromFormat("uniform int option_%s;\n", it.first.c_str()); else @@ -290,7 +290,7 @@ std::string OpenGLPostProcessing::LoadShaderOptions(const std::string& code) } else if (it.second.m_type == PostProcessingShaderConfiguration::ConfigurationOption::OptionType::OPTION_FLOAT) { - u32 count = it.second.m_float_values.size(); + u32 count = static_cast(it.second.m_float_values.size()); if (count == 1) glsl_options += StringFromFormat("uniform float option_%s;\n", it.first.c_str()); else diff --git a/Source/Core/VideoBackends/OGL/Render.cpp b/Source/Core/VideoBackends/OGL/Render.cpp index f605d276e7..85836f0c11 100644 --- a/Source/Core/VideoBackends/OGL/Render.cpp +++ b/Source/Core/VideoBackends/OGL/Render.cpp @@ -144,7 +144,8 @@ static void ApplySSAASettings() if (g_ogl_config.bSupportSampleShading) { glEnable(GL_SAMPLE_SHADING_ARB); - glMinSampleShadingARB(s_MSAASamples); + GLfloat min_sample_shading_value = static_cast(s_MSAASamples); + glMinSampleShadingARB(min_sample_shading_value); } else { @@ -718,7 +719,7 @@ void Renderer::DrawDebugInfo() glLineWidth(3.0f); // 2*Coords + 3*Color - u32 length = stats.efb_regions.size() * sizeof(GLfloat) * (2+3)*2*6; + GLsizeiptr length = stats.efb_regions.size() * sizeof(GLfloat) * (2 + 3) * 2 * 6; glBindBuffer(GL_ARRAY_BUFFER, s_ShowEFBCopyRegions_VBO); glBufferData(GL_ARRAY_BUFFER, length, nullptr, GL_STREAM_DRAW); GLfloat *Vertices = (GLfloat*)glMapBufferRange(GL_ARRAY_BUFFER, 0, length, GL_MAP_WRITE_BIT); @@ -822,8 +823,9 @@ void Renderer::DrawDebugInfo() glUnmapBuffer(GL_ARRAY_BUFFER); s_ShowEFBCopyRegions.Bind(); - glBindVertexArray( s_ShowEFBCopyRegions_VAO ); - glDrawArrays(GL_LINES, 0, stats.efb_regions.size() * 2*6); + glBindVertexArray(s_ShowEFBCopyRegions_VAO); + GLsizei count = static_cast(stats.efb_regions.size() * 2*6); + glDrawArrays(GL_LINES, 0, count); // Restore Line Size SetLineWidth(); @@ -1180,7 +1182,11 @@ void Renderer::SetViewport() } else { - glViewport(ceil(X), ceil(Y), ceil(Width), ceil(Height)); + auto iceilf = [](float f) + { + return static_cast(ceilf(f)); + }; + glViewport(iceilf(X), iceilf(Y), iceilf(Width), iceilf(Height)); } glDepthRangef(GLNear, GLFar); } @@ -1405,10 +1411,10 @@ void Renderer::SwapImpl(u32 xfbAddr, u32 fbWidth, u32 fbHeight,const EFBRectangl if (g_ActiveConfig.bUseRealXFB) { - drawRc.top = flipped_trc.top; - drawRc.bottom = flipped_trc.bottom; - drawRc.left = flipped_trc.left; - drawRc.right = flipped_trc.right; + drawRc.top = static_cast(flipped_trc.top); + drawRc.bottom = static_cast(flipped_trc.bottom); + drawRc.left = static_cast(flipped_trc.left); + drawRc.right = static_cast(flipped_trc.right); } else { @@ -1417,10 +1423,17 @@ void Renderer::SwapImpl(u32 xfbAddr, u32 fbWidth, u32 fbHeight,const EFBRectangl int xfbWidth = xfbSource->srcWidth; int hOffset = ((s32)xfbSource->srcAddr - (s32)xfbAddr) / ((s32)fbWidth * 2); - drawRc.top = flipped_trc.top - hOffset * flipped_trc.GetHeight() / fbHeight; - drawRc.bottom = flipped_trc.top - (hOffset + xfbHeight) * flipped_trc.GetHeight() / fbHeight; - drawRc.left = flipped_trc.left + (flipped_trc.GetWidth() - xfbWidth * flipped_trc.GetWidth() / fbWidth)/2; - drawRc.right = flipped_trc.left + (flipped_trc.GetWidth() + xfbWidth * flipped_trc.GetWidth() / fbWidth)/2; + MathUtil::Rectangle rect_u32; + + rect_u32.top = flipped_trc.top - hOffset * flipped_trc.GetHeight() / fbHeight; + rect_u32.bottom = flipped_trc.top - (hOffset + xfbHeight) * flipped_trc.GetHeight() / fbHeight; + rect_u32.left = flipped_trc.left + (flipped_trc.GetWidth() - xfbWidth * flipped_trc.GetWidth() / fbWidth)/2; + rect_u32.right = flipped_trc.left + (flipped_trc.GetWidth() + xfbWidth * flipped_trc.GetWidth() / fbWidth)/2; + + drawRc.top = static_cast(rect_u32.top); + drawRc.bottom = static_cast(rect_u32.bottom); + drawRc.left = static_cast(rect_u32.left); + drawRc.right = static_cast(rect_u32.right); // The following code disables auto stretch. Kept for reference. // scale draw area for a 1 to 1 pixel mapping with the draw target diff --git a/Source/Core/VideoBackends/OGL/TextureCache.cpp b/Source/Core/VideoBackends/OGL/TextureCache.cpp index 38cbcc388a..1526294916 100644 --- a/Source/Core/VideoBackends/OGL/TextureCache.cpp +++ b/Source/Core/VideoBackends/OGL/TextureCache.cpp @@ -274,12 +274,14 @@ void TextureCache::TCacheEntry::FromRenderTarget(u32 dstAddr, unsigned int dstFo glViewport(0, 0, virtual_width, virtual_height); + GLuint uniform_location; if (srcFormat == PEControl::Z24) { s_DepthMatrixProgram.Bind(); if (s_DepthCbufid != cbufid) glUniform4fv(s_DepthMatrixUniform, 5, colmat); s_DepthCbufid = cbufid; + uniform_location = s_DepthCopyPositionUniform; } else { @@ -287,11 +289,12 @@ void TextureCache::TCacheEntry::FromRenderTarget(u32 dstAddr, unsigned int dstFo if (s_ColorCbufid != cbufid) glUniform4fv(s_ColorMatrixUniform, 7, colmat); s_ColorCbufid = cbufid; + uniform_location = s_ColorCopyPositionUniform; } TargetRectangle R = g_renderer->ConvertEFBRectangle(srcRect); - glUniform4f(srcFormat == PEControl::Z24 ? s_DepthCopyPositionUniform : s_ColorCopyPositionUniform, - R.left, R.top, R.right, R.bottom); + glUniform4f(uniform_location, static_cast(R.left), static_cast(R.top), + static_cast(R.right), static_cast(R.bottom)); GL_REPORT_ERRORD(); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); diff --git a/Source/Core/VideoBackends/OGL/TextureConverter.cpp b/Source/Core/VideoBackends/OGL/TextureConverter.cpp index eb16c5399e..e4888ea2e5 100644 --- a/Source/Core/VideoBackends/OGL/TextureConverter.cpp +++ b/Source/Core/VideoBackends/OGL/TextureConverter.cpp @@ -345,7 +345,8 @@ void EncodeToRamYUYV(GLuint srcTexture, const TargetRectangle& sourceRc, u8* des s_rgbToYuyvProgram.Bind(); - glUniform4f(s_rgbToYuyvUniform_loc, sourceRc.left, sourceRc.top, sourceRc.right, sourceRc.bottom); + glUniform4f(s_rgbToYuyvUniform_loc, static_cast(sourceRc.left), static_cast(sourceRc.top), + static_cast(sourceRc.right), static_cast(sourceRc.bottom)); // We enable linear filtering, because the gamecube does filtering in the vertical direction when // yscale is enabled.