Browse Source

Workarounds for platforms without std::to_string().

I hate this.
pull/51/head
Vladimír Vondruš 12 years ago
parent
commit
1ab87a4de5
  1. 26
      src/Magnum/AbstractShaderProgram.cpp
  2. 22
      src/Magnum/Shader.cpp

26
src/Magnum/AbstractShaderProgram.cpp

@ -34,6 +34,10 @@
#include "Implementation/ShaderProgramState.h"
#include "Implementation/State.h"
#if defined(CORRADE_TARGET_NACL_NEWLIB) || defined(CORRADE_TARGET_ANDROID) || defined(__MINGW32__)
#include <sstream>
#endif
namespace Magnum {
Int AbstractShaderProgram::maxVertexAttributes() {
@ -289,13 +293,25 @@ bool AbstractShaderProgram::link(std::initializer_list<std::reference_wrapper<Ab
glGetProgramInfoLog(shader._id, message.size(), nullptr, &message[0]);
message.resize(std::max(logLength, 1)-1);
/** @todo Remove when this is fixed everywhere (also the include above) */
#if defined(CORRADE_TARGET_NACL_NEWLIB) || defined(CORRADE_TARGET_ANDROID) || defined(__MINGW32__)
std::ostringstream converter;
converter << i;
#endif
/* Show error log */
if(!success) {
Error out;
out.setFlag(Debug::NewLineAtTheEnd, false);
out.setFlag(Debug::SpaceAfterEachValue, false);
out << "AbstractShaderProgram::link(): linking";
if(shaders.size() != 1) out << " of shader " << std::to_string(i);
if(shaders.size() != 1) {
#if !defined(CORRADE_TARGET_NACL_NEWLIB) && !defined(CORRADE_TARGET_ANDROID) && !defined(__MINGW32__)
out << " of shader " << std::to_string(i);
#else
out << " of shader " << converter.str();
#endif
}
out << " failed with the following message:\n"
<< message;
@ -305,7 +321,13 @@ bool AbstractShaderProgram::link(std::initializer_list<std::reference_wrapper<Ab
out.setFlag(Debug::NewLineAtTheEnd, false);
out.setFlag(Debug::SpaceAfterEachValue, false);
out << "AbstractShaderProgram::link(): linking";
if(shaders.size() != 1) out << " of shader " << std::to_string(i);
if(shaders.size() != 1) {
#if !defined(CORRADE_TARGET_NACL_NEWLIB) && !defined(CORRADE_TARGET_ANDROID) && !defined(__MINGW32__)
out << " of shader " << std::to_string(i);
#else
out << " of shader " << converter.str();
#endif
}
out << " succeeded with the following message:\n"
<< message;
}

22
src/Magnum/Shader.cpp

@ -662,6 +662,12 @@ bool Shader::compile(std::initializer_list<std::reference_wrapper<Shader>> shade
glGetShaderInfoLog(shader._id, message.size(), nullptr, &message[0]);
message.resize(std::max(logLength, 1)-1);
/** @todo Remove when this is fixed everywhere (also the include above) */
#if defined(CORRADE_TARGET_NACL_NEWLIB) || defined(CORRADE_TARGET_ANDROID) || defined(__MINGW32__)
std::ostringstream converter;
converter << i;
#endif
/* Show error log */
if(!success) {
Error out;
@ -669,7 +675,13 @@ bool Shader::compile(std::initializer_list<std::reference_wrapper<Shader>> shade
out.setFlag(Debug::SpaceAfterEachValue, false);
out << "Shader::compile(): compilation of " << shaderName(shader._type)
<< " shader";
if(shaders.size() != 1) out << ' ' << std::to_string(i);
if(shaders.size() != 1) {
#if !defined(CORRADE_TARGET_NACL_NEWLIB) && !defined(CORRADE_TARGET_ANDROID) && !defined(__MINGW32__)
out << ' ' << std::to_string(i);
#else
out << ' ' << converter.str();
#endif
}
out << " failed with the following message:\n"
<< message;
@ -680,7 +692,13 @@ bool Shader::compile(std::initializer_list<std::reference_wrapper<Shader>> shade
out.setFlag(Debug::SpaceAfterEachValue, false);
out << "Shader::compile(): compilation of " << shaderName(shader._type)
<< " shader";
if(shaders.size() != 1) out << ' ' << std::to_string(i);
if(shaders.size() != 1) {
#if !defined(CORRADE_TARGET_NACL_NEWLIB) && !defined(CORRADE_TARGET_ANDROID) && !defined(__MINGW32__)
out << ' ' << std::to_string(i);
#else
out << ' ' << converter.str();
#endif
}
out << " succeeded with the following message:\n"
<< message;
}

Loading…
Cancel
Save