Blender  V3.3
COM_MultiThreadedRowOperation.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2021 Blender Foundation. */
3 
4 #pragma once
5 
6 #include "BLI_array.h"
7 
9 
10 namespace blender::compositor {
11 
17  protected:
18  struct PixelCursor {
19  float *out;
21  const float *row_end;
24 
25  public:
26  PixelCursor(int num_inputs);
27 
28  void next()
29  {
31  out += out_stride;
32  for (int i = 0; i < ins.size(); i++) {
33  ins[i] += in_strides[i];
34  }
35  }
36  };
37 
38  protected:
39  virtual void update_memory_buffer_row(PixelCursor &p) = 0;
40 
41  private:
42  void update_memory_buffer_partial(MemoryBuffer *output,
43  const rcti &area,
45 };
46 
47 } // namespace blender::compositor
A (mainly) macro array library.
#define BLI_assert(a)
Definition: BLI_assert.h:46
int64_t size() const
Definition: BLI_array.hh:244
a MemoryBuffer contains access to the data of a chunk
virtual void update_memory_buffer_row(PixelCursor &p)=0
ccl_global KernelShaderEvalInput ccl_global float * output
static void area(int d1, int d2, int e1, int e2, float weights[2])
static bNodeSocketTemplate inputs[]