@@ -3179,7 +3179,7 @@ load_compute(ShaderLanguage lang, const Filename &fn) {
31793179 * Loads the shader, using the string as shader body.
31803180 */
31813181PT (Shader) Shader::
3182- make(const string & body, ShaderLanguage lang) {
3182+ make(string body, ShaderLanguage lang) {
31833183 if (lang == SL_GLSL) {
31843184 shader_cat.error ()
31853185 << " GLSL shaders must have separate shader bodies!\n " ;
@@ -3197,7 +3197,7 @@ make(const string &body, ShaderLanguage lang) {
31973197 }
31983198#endif
31993199
3200- ShaderFile sbody (body);
3200+ ShaderFile sbody (move ( body) );
32013201
32023202 if (cache_generated_shaders) {
32033203 ShaderTable::const_iterator i = _make_table.find (sbody);
@@ -3208,7 +3208,7 @@ make(const string &body, ShaderLanguage lang) {
32083208
32093209 PT (Shader) shader = new Shader (lang);
32103210 shader->_filename = ShaderFile (" created-shader" );
3211- shader->_text = sbody;
3211+ shader->_text = move ( sbody) ;
32123212
32133213#ifdef HAVE_CG
32143214 if (lang == SL_Cg) {
@@ -3223,7 +3223,7 @@ make(const string &body, ShaderLanguage lang) {
32233223#endif
32243224
32253225 if (cache_generated_shaders) {
3226- _make_table[sbody ] = shader;
3226+ _make_table[shader-> _text ] = shader;
32273227 }
32283228
32293229 if (dump_generated_shaders) {
@@ -3235,7 +3235,7 @@ make(const string &body, ShaderLanguage lang) {
32353235
32363236 pofstream s;
32373237 s.open (fn.c_str (), ios::out | ios::trunc);
3238- s << body ;
3238+ s << shader-> get_text () ;
32393239 s.close ();
32403240 }
32413241 return shader;
@@ -3245,9 +3245,8 @@ make(const string &body, ShaderLanguage lang) {
32453245 * Loads the shader, using the strings as shader bodies.
32463246 */
32473247PT (Shader) Shader::
3248- make(ShaderLanguage lang, const string &vertex, const string &fragment,
3249- const string &geometry, const string &tess_control,
3250- const string &tess_evaluation) {
3248+ make(ShaderLanguage lang, string vertex, string fragment, string geometry,
3249+ string tess_control, string tess_evaluation) {
32513250#ifndef HAVE_CG
32523251 if (lang == SL_Cg) {
32533252 shader_cat.error () << " Support for Cg shaders is not enabled.\n " ;
@@ -3260,7 +3259,8 @@ make(ShaderLanguage lang, const string &vertex, const string &fragment,
32603259 return NULL ;
32613260 }
32623261
3263- ShaderFile sbody (vertex, fragment, geometry, tess_control, tess_evaluation);
3262+ ShaderFile sbody (move (vertex), move (fragment), move (geometry),
3263+ move (tess_control), move (tess_evaluation));
32643264
32653265 if (cache_generated_shaders) {
32663266 ShaderTable::const_iterator i = _make_table.find (sbody);
@@ -3271,7 +3271,7 @@ make(ShaderLanguage lang, const string &vertex, const string &fragment,
32713271
32723272 PT (Shader) shader = new Shader (lang);
32733273 shader->_filename = ShaderFile (" created-shader" );
3274- shader->_text = sbody;
3274+ shader->_text = move ( sbody) ;
32753275
32763276#ifdef HAVE_CG
32773277 if (lang == SL_Cg) {
@@ -3284,7 +3284,7 @@ make(ShaderLanguage lang, const string &vertex, const string &fragment,
32843284#endif
32853285
32863286 if (cache_generated_shaders) {
3287- _make_table[sbody ] = shader;
3287+ _make_table[shader-> _text ] = shader;
32883288 }
32893289
32903290 return shader;
@@ -3294,7 +3294,7 @@ make(ShaderLanguage lang, const string &vertex, const string &fragment,
32943294 * Loads the compute shader from the given string.
32953295 */
32963296PT (Shader) Shader::
3297- make_compute(ShaderLanguage lang, const string & body) {
3297+ make_compute(ShaderLanguage lang, string body) {
32983298 if (lang != SL_GLSL) {
32993299 shader_cat.error ()
33003300 << " Only GLSL compute shaders are currently supported.\n " ;
@@ -3303,7 +3303,7 @@ make_compute(ShaderLanguage lang, const string &body) {
33033303
33043304 ShaderFile sbody;
33053305 sbody._separate = true ;
3306- sbody._compute = body;
3306+ sbody._compute = move ( body) ;
33073307
33083308 if (cache_generated_shaders) {
33093309 ShaderTable::const_iterator i = _make_table.find (sbody);
@@ -3314,10 +3314,10 @@ make_compute(ShaderLanguage lang, const string &body) {
33143314
33153315 PT (Shader) shader = new Shader (lang);
33163316 shader->_filename = ShaderFile (" created-shader" );
3317- shader->_text = sbody;
3317+ shader->_text = move ( sbody) ;
33183318
33193319 if (cache_generated_shaders) {
3320- _make_table[sbody ] = shader;
3320+ _make_table[shader-> _text ] = shader;
33213321 }
33223322
33233323 return shader;
0 commit comments