An msl object does not need to know the version in code. A msl shader could include multple version of msl shaders which could be determined during compilation and selected afterwards in the graphics backend.
So
motor::graphics::msl_object::add( motor::graphics::msl_api_type, motor::string_in_t ) ;
Could be changed to
motor::graphics::msl_object::add( motor::string_in_t ) ;
Where the api type/version is determined during compilation.
The version string is not included in the msl spec right now but could look something like this:
An msl object does not need to know the version in code. A msl shader could include multple version of msl shaders which could be determined during compilation and selected afterwards in the graphics backend.
So
motor::graphics::msl_object::add( motor::graphics::msl_api_type, motor::string_in_t ) ;
Could be changed to
motor::graphics::msl_object::add( motor::string_in_t ) ;
Where the api type/version is determined during compilation.
The version string is not included in the msl spec right now but could look something like this:
So the shader version could be appended to the configuration name.