]> git.jsancho.org Git - guile-irrlicht.git/blobdiff - src/driver-types.cpp
Some doc
[guile-irrlicht.git] / src / driver-types.cpp
index d0fec5065d042bf6e3990f48d045fffa3cd73cf9..fef8547b35c11e33e52cf59df7b72b4a14b36881 100644 (file)
 #include <libguile.h>
 #include "driver-types.h"
 
-
 using namespace irr;
 
-
 video::E_DRIVER_TYPE
 scm_to_driver_type (SCM driver_type)
 {
-  char* driverType = scm_to_utf8_stringn (scm_symbol_to_string (driver_type), NULL);
-  if (!strcmp (driverType, "null"))
+  char* type_name = scm_to_utf8_string (scm_symbol_to_string (driver_type));
+  video::E_DRIVER_TYPE type;
+
+  if (!strcmp (type_name, "null"))
     {
-      return video::EDT_NULL;
+      type = video::EDT_NULL;
     }
-  else if (!strcmp (driverType, "software"))
+  else if (!strcmp (type_name, "software"))
     {
-      return video::EDT_SOFTWARE;
+      type = video::EDT_SOFTWARE;
     }
-  else if (!strcmp (driverType, "burnings"))
+  else if (!strcmp (type_name, "burnings"))
     {
-      return video::EDT_BURNINGSVIDEO;
+      type = video::EDT_BURNINGSVIDEO;
     }
-  else if (!strcmp (driverType, "direct3d8"))
+  else if (!strcmp (type_name, "direct3d8"))
     {
-      return video::EDT_DIRECT3D8;
+      type = video::EDT_DIRECT3D8;
     }
-  else if (!strcmp (driverType, "direct3d9"))
+  else if (!strcmp (type_name, "direct3d9"))
     {
-      return video::EDT_DIRECT3D9;
+      type = video::EDT_DIRECT3D9;
     }
-  else if (!strcmp (driverType, "opengl"))
+  else if (!strcmp (type_name, "opengl"))
     {
-      return video::EDT_OPENGL;
+      type = video::EDT_OPENGL;
     }
   else
     {
       scm_error (scm_arg_type_key, NULL, "Wrong driver type: ~S",
                  scm_list_1 (driver_type), scm_list_1 (driver_type));
     }
+
+  free (type_name);
+  return type;
 }