@@ -2188,7 +2188,20 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
2188
2188
if (rendering_method != " forward_plus" &&
2189
2189
rendering_method != " mobile" &&
2190
2190
rendering_method != " gl_compatibility" ) {
2191
- OS::get_singleton ()->print (" Unknown renderer name '%s', aborting. Valid options are: %s\n " , rendering_method.utf8 ().get_data (), renderer_hints.utf8 ().get_data ());
2191
+ OS::get_singleton ()->print (" Unknown rendering method '%s', aborting.\n Valid options are " ,
2192
+ rendering_method.utf8 ().get_data ());
2193
+
2194
+ const Vector<String> rendering_method_hints = renderer_hints.split (" ," );
2195
+ for (int i = 0 ; i < rendering_method_hints.size (); i++) {
2196
+ if (i == rendering_method_hints.size () - 1 ) {
2197
+ OS::get_singleton ()->print (" and " );
2198
+ } else if (i != 0 ) {
2199
+ OS::get_singleton ()->print (" , " );
2200
+ }
2201
+ OS::get_singleton ()->print (" '%s'" , rendering_method_hints[i].utf8 ().get_data ());
2202
+ }
2203
+
2204
+ OS::get_singleton ()->print (" .\n " );
2192
2205
goto error;
2193
2206
}
2194
2207
}
@@ -2214,12 +2227,25 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
2214
2227
OS::get_singleton ()->print (" Unknown rendering driver '%s', aborting.\n Valid options are " ,
2215
2228
rendering_driver.utf8 ().get_data ());
2216
2229
2230
+ // Deduplicate driver entries, as a rendering driver may be supported by several display servers.
2231
+ Vector<String> unique_rendering_drivers;
2217
2232
for (int i = 0 ; i < DisplayServer::get_create_function_count (); i++) {
2218
2233
Vector<String> r_drivers = DisplayServer::get_create_function_rendering_drivers (i);
2219
2234
2220
2235
for (int d = 0 ; d < r_drivers.size (); d++) {
2221
- OS::get_singleton ()->print (" '%s', " , r_drivers[d].utf8 ().get_data ());
2236
+ if (!unique_rendering_drivers.has (r_drivers[d])) {
2237
+ unique_rendering_drivers.append (r_drivers[d]);
2238
+ }
2239
+ }
2240
+ }
2241
+
2242
+ for (int i = 0 ; i < unique_rendering_drivers.size (); i++) {
2243
+ if (i == unique_rendering_drivers.size () - 1 ) {
2244
+ OS::get_singleton ()->print (" and " );
2245
+ } else if (i != 0 ) {
2246
+ OS::get_singleton ()->print (" , " );
2222
2247
}
2248
+ OS::get_singleton ()->print (" '%s'" , unique_rendering_drivers[i].utf8 ().get_data ());
2223
2249
}
2224
2250
2225
2251
OS::get_singleton ()->print (" .\n " );
0 commit comments