Commit: a106da7f1dd92b7fc8559d7f83509e7f21758615
Author: Sergey Sharybin
Date:   Sat Nov 21 21:42:31 2015 +0500
Branches: master
https://developer.blender.org/rBa106da7f1dd92b7fc8559d7f83509e7f21758615

Cycles: Move build options constructions to DeviceRequestedFeatures

This way it's easier to re-use requested features logic across multiple
device implementations.

===================================================================

M       intern/cycles/device/device.h
M       intern/cycles/device/device_opencl.cpp

===================================================================

diff --git a/intern/cycles/device/device.h b/intern/cycles/device/device.h
index 3c0fb88..769fb3c 100644
--- a/intern/cycles/device/device.h
+++ b/intern/cycles/device/device.h
@@ -125,6 +125,34 @@ public:
                         use_baking == requested_features.use_baking);
        }
 
+       /* Convert the requested features structure to a build options,
+        * which could then be passed to compilers.
+        */
+       string get_build_options(void) const
+       {
+               string build_options = "";
+               if(experimental) {
+                       build_options += "-D__KERNEL_EXPERIMENTAL__ ";
+               }
+               build_options += "-D__NODES_MAX_GROUP__=" +
+                       string_printf("%d", max_nodes_group);
+               build_options += " -D__NODES_FEATURES__=" +
+                       string_printf("%d", nodes_features);
+               build_options += string_printf(" -D__MAX_CLOSURE__=%d", 
max_closure);
+               if(!use_hair) {
+                       build_options += " -D__NO_HAIR__";
+               }
+               if(!use_object_motion) {
+                       build_options += " -D__NO_OBJECT_MOTION__";
+               }
+               if(!use_camera_motion) {
+                       build_options += " -D__NO_CAMERA_MOTION__";
+               }
+               if(!use_baking) {
+                       build_options += " -D__NO_BAKING__";
+               }
+               return build_options;
+       }
 };
 
 std::ostream& operator <<(std::ostream &os,
diff --git a/intern/cycles/device/device_opencl.cpp 
b/intern/cycles/device/device_opencl.cpp
index 0db11e0..5bef6a3 100644
--- a/intern/cycles/device/device_opencl.cpp
+++ b/intern/cycles/device/device_opencl.cpp
@@ -1550,34 +1550,6 @@ protected:
                }
        }
 
-       string build_options_from_requested_features(
-               const DeviceRequestedFeatures& requested_features)
-       {
-               string build_options = "";
-               if(requested_features.experimental) {
-                       build_options += "-D__KERNEL_EXPERIMENTAL__ ";
-               }
-               build_options += "-D__NODES_MAX_GROUP__=" +
-                       string_printf("%d", requested_features.max_nodes_group);
-               build_options += " -D__NODES_FEATURES__=" +
-                       string_printf("%d", requested_features.nodes_features);
-               build_options += string_printf(" -D__MAX_CLOSURE__=%d",
-                                              requested_features.max_closure);
-               if(!requested_features.use_hair) {
-                       build_options += " -D__NO_HAIR__";
-               }
-               if(!requested_features.use_object_motion) {
-                       build_options += " -D__NO_OBJECT_MOTION__";
-               }
-               if(!requested_features.use_camera_motion) {
-                       build_options += " -D__NO_CAMERA_MOTION__";
-               }
-               if(!requested_features.use_baking) {
-                       build_options += " -D__NO_BAKING__";
-               }
-               return build_options;
-       }
-
        /* ** Those guys are for workign around some compiler-specific bugs ** 
*/
 
        virtual cl_program load_cached_kernel(
@@ -2312,7 +2284,7 @@ public:
 #ifdef __WORK_STEALING__
                build_options += " -D__WORK_STEALING__";
 #endif
-               build_options += 
build_options_from_requested_features(requested_features);
+               build_options += requested_features.get_build_options();
 
                /* Set compute device build option. */
                cl_device_type device_type;
@@ -3585,7 +3557,7 @@ protected:
        string build_options_for_base_program(
                const DeviceRequestedFeatures& requested_features)
        {
-               return 
build_options_from_requested_features(requested_features);
+               return requested_features.get_build_options();
        }
 };

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to