Fix build error on Windows 32 bit.
[blender-staging.git] / intern / cycles / kernel / kernel_types.h
index 567f2a0..2945cdb 100644 (file)
 CCL_NAMESPACE_BEGIN
 
 /* Constants */
-#define OBJECT_VECTOR_SIZE     2
-#define FILTER_TABLE_SIZE      1024
-#define RAMP_TABLE_SIZE                256
-#define SHUTTER_TABLE_SIZE     256
+#define OBJECT_MOTION_PASS_SIZE 2
+#define FILTER_TABLE_SIZE       1024
+#define RAMP_TABLE_SIZE         256
+#define SHUTTER_TABLE_SIZE      256
 
 #define BSSRDF_MIN_RADIUS                      1e-8f
 #define BSSRDF_MAX_HITS                                4
@@ -263,6 +263,7 @@ typedef enum ShaderEvalType {
        /* data passes */
        SHADER_EVAL_NORMAL,
        SHADER_EVAL_UV,
+       SHADER_EVAL_ROUGHNESS,
        SHADER_EVAL_DIFFUSE_COLOR,
        SHADER_EVAL_GLOSSY_COLOR,
        SHADER_EVAL_TRANSMISSION_COLOR,
@@ -1173,7 +1174,7 @@ typedef struct KernelCamera {
 
        /* motion blur */
        float shuttertime;
-       int have_motion, have_perspective_motion;
+       int num_motion_steps, have_perspective_motion;
 
        /* clipping */
        float nearclip;
@@ -1201,14 +1202,14 @@ typedef struct KernelCamera {
        ProjectionTransform worldtondc;
        Transform worldtocamera;
 
-       DecomposedMotionTransform motion;
-
        /* Stores changes in the projeciton matrix. Use for camera zoom motion
         * blur and motion pass output for perspective camera. */
-       PerspectiveMotionTransform perspective_motion;
+       ProjectionTransform perspective_pre;
+       ProjectionTransform perspective_post;
 
        /* Transforms for motion pass. */
-       MotionTransform pass_motion;
+       Transform motion_pass_pre;
+       Transform motion_pass_post;
 
        int shutter_table_offset;
 
@@ -1433,7 +1434,8 @@ static_assert_align(KernelData, 16);
 /* Kernel data structures. */
 
 typedef struct KernelObject {
-       DecomposedMotionTransform tfm;
+       Transform tfm;
+       Transform itfm;
 
        float surface_area;
        float pass_id;
@@ -1449,7 +1451,8 @@ typedef struct KernelObject {
 
        uint patch_map_offset;
        uint attribute_map_offset;
-       uint pad1, pad2;
+       uint motion_offset;
+       uint pad;
 } KernelObject;;
 static_assert_align(KernelObject, 16);
 
@@ -1459,6 +1462,7 @@ typedef struct KernelSpotLight {
        float spot_angle;
        float spot_smooth;
        float dir[3];
+       float pad;
 } KernelSpotLight;
 
 /* PointLight is SpotLight with only radius and invarea being used. */
@@ -1467,13 +1471,16 @@ typedef struct KernelAreaLight {
        float axisu[3];
        float invarea;
        float axisv[3];
+       float pad1;
        float dir[3];
+       float pad2;
 } KernelAreaLight;
 
 typedef struct KernelDistantLight {
        float radius;
        float cosangle;
        float invarea;
+       float pad;
 } KernelDistantLight;
 
 typedef struct KernelLight {