Browse Source

Use string id instead of enumeration.

Sam Jaffe 6 years ago
parent
commit
cbeb8267a7
2 changed files with 4 additions and 12 deletions
  1. 2 2
      graphics/include/game/graphics/renderer.hpp
  2. 2 10
      graphics/src/renderer.cxx

+ 2 - 2
graphics/include/game/graphics/renderer.hpp

@@ -27,11 +27,11 @@ namespace graphics {
     virtual void flush() = 0;
     virtual void flush() = 0;
   };
   };
 
 
-  enum class driver { openGL };
+  enum class driver {}; // Dummy class...
 
 
   class direct_renderer : public renderer {
   class direct_renderer : public renderer {
   public:
   public:
-    direct_renderer(driver d);
+    direct_renderer(std::string const & driver_id);
     direct_renderer(class renderer_impl * pi);
     direct_renderer(class renderer_impl * pi);
     std::shared_ptr<class manager const> manager() const override;
     std::shared_ptr<class manager const> manager() const override;
     void draw(object const & obj) override;
     void draw(object const & obj) override;

+ 2 - 10
graphics/src/renderer.cxx

@@ -25,20 +25,12 @@ renderer_impl * get_renderer_impl(std::string const & id) {
   return rval;
   return rval;
 }
 }
 
 
-renderer_impl * get_renderer_impl(driver d) {
-  switch (d) {
-  case driver::openGL:
-    return get_renderer_impl("openGL");
-  default:
-    throw unmapped_enum<driver>(d);
-  }
-}
-
 namespace {
 namespace {
   const math::matr4 identity4 = math::matrix::identity<float, 4>();
   const math::matr4 identity4 = math::matrix::identity<float, 4>();
 }
 }
 
 
-direct_renderer::direct_renderer(driver d) : pimpl(::get_renderer_impl(d)) {}
+direct_renderer::direct_renderer(std::string const & driver_id)
+    : direct_renderer(::get_renderer_impl(driver_id)) {}
 
 
 direct_renderer::direct_renderer(renderer_impl * pi) : pimpl(pi) {}
 direct_renderer::direct_renderer(renderer_impl * pi) : pimpl(pi) {}