1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-06-27 16:36:03 +00:00

Code modernization: src/p*, src/q*, src/r*, src/s* (partial) (#6282)

* Code modernization: src/p*, src/q*, src/r*, src/s* (partial)

* empty function
* default constructor/destructor
* for range-based loops
* use emplace_back instead of push_back
* C++ STL header style
* Spelling: vertice -> vertex
This commit is contained in:
Loïc Blot 2017-08-19 14:25:35 +02:00 committed by GitHub
parent 1992db1395
commit 7528986e44
28 changed files with 363 additions and 443 deletions

View file

@ -56,7 +56,7 @@ std::string getShaderPath(const std::string &name_of_shader,
const std::string &filename)
{
std::string combined = name_of_shader + DIR_DELIM + filename;
std::string fullpath = "";
std::string fullpath;
/*
Check from cache
*/
@ -68,8 +68,7 @@ std::string getShaderPath(const std::string &name_of_shader,
Check from shader_path
*/
std::string shader_path = g_settings->get("shader_path");
if(shader_path != "")
{
if (!shader_path.empty()) {
std::string testpath = shader_path + DIR_DELIM + combined;
if(fs::PathExists(testpath))
fullpath = testpath;
@ -78,8 +77,7 @@ std::string getShaderPath(const std::string &name_of_shader,
/*
Check from default data directory
*/
if(fullpath == "")
{
if (fullpath.empty()) {
std::string rel_path = std::string("client") + DIR_DELIM
+ "shaders" + DIR_DELIM
+ name_of_shader + DIR_DELIM
@ -110,9 +108,9 @@ public:
// Try to use local shader instead if asked to
if(prefer_local){
std::string path = getShaderPath(name_of_shader, filename);
if(path != ""){
if(!path.empty()){
std::string p = readFile(path);
if(p != ""){
if (!p.empty()) {
m_programs[combined] = p;
return;
}
@ -140,7 +138,7 @@ public:
if (n != m_programs.end())
return n->second;
std::string path = getShaderPath(name_of_shader, filename);
if (path == "") {
if (path.empty()) {
infostream << "SourceShaderCache::getOrLoad(): No path found for \""
<< combined << "\"" << std::endl;
return "";
@ -148,7 +146,7 @@ public:
infostream << "SourceShaderCache::getOrLoad(): Loading path \""
<< path << "\"" << std::endl;
std::string p = readFile(path);
if (p != "") {
if (!p.empty()) {
m_programs[combined] = p;
return p;
}
@ -180,14 +178,14 @@ class ShaderCallback : public video::IShaderConstantSetCallBack
public:
ShaderCallback(const std::vector<IShaderConstantSetterFactory *> &factories)
{
for (u32 i = 0; i < factories.size(); ++i)
m_setters.push_back(factories[i]->create());
for (IShaderConstantSetterFactory *factory : factories)
m_setters.push_back(factory->create());
}
~ShaderCallback()
{
for (u32 i = 0; i < m_setters.size(); ++i)
delete m_setters[i];
for (IShaderConstantSetter *setter : m_setters)
delete setter;
}
virtual void OnSetConstants(video::IMaterialRendererServices *services, s32 userData)
@ -197,8 +195,8 @@ public:
bool is_highlevel = userData;
for (u32 i = 0; i < m_setters.size(); ++i)
m_setters[i]->onSetConstants(services, is_highlevel);
for (IShaderConstantSetter *setter : m_setters)
setter->onSetConstants(services, is_highlevel);
}
};
@ -217,7 +215,7 @@ public:
m_world_view_proj("mWorldViewProj"),
m_world("mWorld")
{}
~MainShaderConstantSetter() {}
~MainShaderConstantSetter() = default;
virtual void onSetConstants(video::IMaterialRendererServices *services,
bool is_highlevel)
@ -357,7 +355,7 @@ ShaderSource::ShaderSource()
m_main_thread = std::this_thread::get_id();
// Add a dummy ShaderInfo as the first index, named ""
m_shaderinfo_cache.push_back(ShaderInfo());
m_shaderinfo_cache.emplace_back();
// Add main global constant setter
addShaderConstantSetterFactory(new MainShaderConstantSetterFactory());
@ -365,13 +363,11 @@ ShaderSource::ShaderSource()
ShaderSource::~ShaderSource()
{
for (std::vector<ShaderCallback *>::iterator iter = m_callbacks.begin();
iter != m_callbacks.end(); ++iter) {
delete *iter;
for (ShaderCallback *callback : m_callbacks) {
delete callback;
}
for (std::vector<IShaderConstantSetterFactory *>::iterator iter = m_setter_factories.begin();
iter != m_setter_factories.end(); ++iter) {
delete *iter;
for (IShaderConstantSetterFactory *setter_factorie : m_setter_factories) {
delete setter_factorie;
}
}
@ -384,34 +380,32 @@ u32 ShaderSource::getShader(const std::string &name,
if (std::this_thread::get_id() == m_main_thread) {
return getShaderIdDirect(name, material_type, drawtype);
} else {
/*errorstream<<"getShader(): Queued: name=\""<<name<<"\""<<std::endl;*/
// We're gonna ask the result to be put into here
static ResultQueue<std::string, u32, u8, u8> result_queue;
// Throw a request in
m_get_shader_queue.add(name, 0, 0, &result_queue);
/* infostream<<"Waiting for shader from main thread, name=\""
<<name<<"\""<<std::endl;*/
while(true) {
GetResult<std::string, u32, u8, u8>
result = result_queue.pop_frontNoEx();
if (result.key == name) {
return result.item;
}
else {
errorstream << "Got shader with invalid name: " << result.key << std::endl;
}
}
}
infostream<<"getShader(): Failed"<<std::endl;
/*errorstream<<"getShader(): Queued: name=\""<<name<<"\""<<std::endl;*/
// We're gonna ask the result to be put into here
static ResultQueue<std::string, u32, u8, u8> result_queue;
// Throw a request in
m_get_shader_queue.add(name, 0, 0, &result_queue);
/* infostream<<"Waiting for shader from main thread, name=\""
<<name<<"\""<<std::endl;*/
while(true) {
GetResult<std::string, u32, u8, u8>
result = result_queue.pop_frontNoEx();
if (result.key == name) {
return result.item;
}
errorstream << "Got shader with invalid name: " << result.key << std::endl;
}
infostream << "getShader(): Failed" << std::endl;
return 0;
}
@ -425,7 +419,7 @@ u32 ShaderSource::getShaderIdDirect(const std::string &name,
//infostream<<"getShaderIdDirect(): name=\""<<name<<"\""<<std::endl;
// Empty name means shader 0
if(name == ""){
if (name.empty()) {
infostream<<"getShaderIdDirect(): name is empty"<<std::endl;
return 0;
}
@ -509,9 +503,9 @@ void ShaderSource::rebuildShaders()
*/
// Recreate shaders
for(u32 i=0; i<m_shaderinfo_cache.size(); i++){
ShaderInfo *info = &m_shaderinfo_cache[i];
if(info->name != ""){
for (ShaderInfo &i : m_shaderinfo_cache) {
ShaderInfo *info = &i;
if (!info->name.empty()) {
*info = generate_shader(info->name, info->material_type,
info->drawtype, m_callbacks,
m_setter_factories, &m_sourcecache);
@ -571,7 +565,7 @@ ShaderInfo generate_shader(const std::string &name, u8 material_type, u8 drawtyp
enable_shaders, vertex_program, pixel_program,
geometry_program, is_highlevel);
// Check hardware/driver support
if(vertex_program != "" &&
if (!vertex_program.empty() &&
!driver->queryFeature(video::EVDF_VERTEX_SHADER_1_1) &&
!driver->queryFeature(video::EVDF_ARB_VERTEX_PROGRAM_1)){
infostream<<"generate_shader(): vertex shaders disabled "
@ -579,7 +573,7 @@ ShaderInfo generate_shader(const std::string &name, u8 material_type, u8 drawtyp
<<std::endl;
vertex_program = "";
}
if(pixel_program != "" &&
if (!pixel_program.empty() &&
!driver->queryFeature(video::EVDF_PIXEL_SHADER_1_1) &&
!driver->queryFeature(video::EVDF_ARB_FRAGMENT_PROGRAM_1)){
infostream<<"generate_shader(): pixel shaders disabled "
@ -587,7 +581,7 @@ ShaderInfo generate_shader(const std::string &name, u8 material_type, u8 drawtyp
<<std::endl;
pixel_program = "";
}
if(geometry_program != "" &&
if (!geometry_program.empty() &&
!driver->queryFeature(video::EVDF_GEOMETRY_SHADER)){
infostream<<"generate_shader(): geometry shaders disabled "
"because of missing driver/hardware support."
@ -596,7 +590,7 @@ ShaderInfo generate_shader(const std::string &name, u8 material_type, u8 drawtyp
}
// If no shaders are used, don't make a separate material type
if(vertex_program == "" && pixel_program == "" && geometry_program == "")
if (vertex_program.empty() && pixel_program.empty() && geometry_program.empty())
return shaderinfo;
// Create shaders header
@ -852,7 +846,7 @@ void load_shaders(std::string name, SourceShaderCache *sourcecache,
pixel_program = sourcecache->getOrLoad(name, "opengl_fragment.glsl");
geometry_program = sourcecache->getOrLoad(name, "opengl_geometry.glsl");
}
if(vertex_program != "" || pixel_program != "" || geometry_program != ""){
if (!vertex_program.empty() || !pixel_program.empty() || !geometry_program.empty()){
is_highlevel = true;
return;
}
@ -868,7 +862,7 @@ void dumpShaderProgram(std::ostream &output_stream,
size_t pos = 0;
size_t prev = 0;
s16 line = 1;
while ((pos = program.find("\n", prev)) != std::string::npos) {
while ((pos = program.find('\n', prev)) != std::string::npos) {
output_stream << line++ << ": "<< program.substr(prev, pos - prev) <<
std::endl;
prev = pos + 1;