Cycles Bake: use size_t instead of width, height
authorDalai Felinto <dfelinto@gmail.com>
Mon, 28 Jul 2014 17:29:03 +0000 (14:29 -0300)
committerDalai Felinto <dfelinto@gmail.com>
Thu, 31 Jul 2014 03:35:17 +0000 (00:35 -0300)
(original patch by Sergey Sharybin)

Note: RNA API can't use size_t at the moment. Once it does this patch
can be tweaked a bit to fully benefit from size_t larger dimensions.
(right now num_pixels is passed as int)

Reviewed By: sergey, campbellbarton
Differential Revision: https://developer.blender.org/D688

intern/cycles/blender/blender_python.cpp
intern/cycles/blender/blender_session.cpp
intern/cycles/blender/blender_session.h
intern/cycles/render/bake.cpp
intern/cycles/render/bake.h

index 1d18f564e3282597bc271c69a9c257a33a82074e..e82eb67aae50a88b69c121aebc63d5095bc68bfb 100644 (file)
@@ -179,7 +179,7 @@ static PyObject *bake_func(PyObject *self, PyObject *args)
 
        python_thread_state_save(&session->python_thread_state);
 
-       session->bake(b_object, pass_type, b_bake_pixel, num_pixels, depth, (float *)b_result);
+       session->bake(b_object, pass_type, b_bake_pixel, (size_t)num_pixels, depth, (float *)b_result);
 
        python_thread_state_restore(&session->python_thread_state);
 
index e57a67212f333bba5c3e76a3f7d1209c8c4942ef..37aab76adbcf43a941d51424d44c77d2831798cc 100644 (file)
@@ -492,7 +492,7 @@ static void populate_bake_data(BakeData *data, BL::BakePixel pixel_array, const
        }
 }
 
-void BlenderSession::bake(BL::Object b_object, const string& pass_type, BL::BakePixel pixel_array, int num_pixels, int depth, float result[])
+void BlenderSession::bake(BL::Object b_object, const string& pass_type, BL::BakePixel pixel_array, const size_t num_pixels, const int depth, float result[])
 {
        ShaderEvalType shader_type = get_shader_type(pass_type);
        size_t object_index = OBJECT_NONE;
index 5146483f368506b733e55881e91cb43cc846be79..ac685118b3d78e5b219539df25f229ce3dcdc3ea 100644 (file)
@@ -52,7 +52,7 @@ public:
        /* offline render */
        void render();
 
-       void bake(BL::Object b_object, const string& pass_type, BL::BakePixel pixel_array, int num_pixels, int depth, float pixels[]);
+       void bake(BL::Object b_object, const string& pass_type, BL::BakePixel pixel_array, const size_t num_pixels, const int depth, float pixels[]);
 
        void write_render_result(BL::RenderResult b_rr, BL::RenderLayer b_rlay, RenderTile& rtile);
        void write_render_tile(RenderTile& rtile);
index bc313a524917211bee286adf366cb14fe5255f7b..d7da63dea8ac563f809213af7d19c2977e29446d 100644 (file)
@@ -19,7 +19,7 @@
 
 CCL_NAMESPACE_BEGIN
 
-BakeData::BakeData(const int object, const int tri_offset, const int num_pixels):
+BakeData::BakeData(const int object, const size_t tri_offset, const size_t num_pixels):
 m_object(object),
 m_tri_offset(tri_offset),
 m_num_pixels(num_pixels)
@@ -60,7 +60,7 @@ int BakeData::object()
        return m_object;
 }
 
-int BakeData::size()
+size_t BakeData::size()
 {
        return m_num_pixels;
 }
@@ -113,7 +113,7 @@ void BakeManager::set_baking(const bool value)
        m_is_baking = value;
 }
 
-BakeData *BakeManager::init(const int object, const int tri_offset, const int num_pixels)
+BakeData *BakeManager::init(const int object, const size_t tri_offset, const size_t num_pixels)
 {
        m_bake_data = new BakeData(object, tri_offset, num_pixels);
        return m_bake_data;
index bf03a164f8eca17dd3ddb75bb2f017ff23ea7767..652420c2e198e71e3868a903db7a058c4c7ff4c4 100644 (file)
@@ -27,20 +27,20 @@ CCL_NAMESPACE_BEGIN
 
 class BakeData {
 public:
-       BakeData(const int object, const int tri_offset, const int num_pixels);
+       BakeData(const int object, const size_t tri_offset, const size_t num_pixels);
        ~BakeData();
 
        void set(int i, int prim, float uv[2], float dudx, float dudy, float dvdx, float dvdy);
        int object();
-       int size();
+       size_t size();
        uint4 data(int i);
        uint4 differentials(int i);
        bool is_valid(int i);
 
 private:
        int m_object;
-       int m_tri_offset;
-       int m_num_pixels;
+       size_t m_tri_offset;
+       size_t m_num_pixels;
        vector<int>m_primitive;
        vector<float>m_u;
        vector<float>m_v;
@@ -58,7 +58,7 @@ public:
        bool get_baking();
        void set_baking(const bool value);
 
-       BakeData *init(const int object, const int tri_offset, const int num_pixels);
+       BakeData *init(const int object, const size_t tri_offset, const size_t num_pixels);
 
        bool bake(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress, ShaderEvalType shader_type, BakeData *bake_data, float result[]);