28 : b_image(b_image), frame(frame),
free_cache(!b_image.has_data())
71 const size_t pixels_size,
72 const bool associate_alpha)
74 const size_t num_pixels = ((size_t)metadata.
width) * metadata.
height;
75 const int channels = metadata.
channels;
83 if (image_pixels && num_pixels * channels == pixels_size) {
84 memcpy(pixels, image_pixels, pixels_size *
sizeof(
float));
88 memset(pixels, 0, num_pixels *
sizeof(
float));
91 const size_t num_pixels_safe = pixels_size / channels;
92 float *fp = (
float *)pixels;
93 for (
int i = 0; i < num_pixels_safe; i++, fp += channels) {
111 if (image_pixels && num_pixels * channels == pixels_size) {
112 memcpy(pixels, image_pixels, pixels_size *
sizeof(
unsigned char));
116 memset(pixels, 0, pixels_size *
sizeof(
unsigned char));
119 const size_t num_pixels_safe = pixels_size / channels;
120 unsigned char *cp = (
unsigned char *)pixels;
121 for (
size_t i = 0; i < num_pixels_safe; i++, cp += channels) {
136 if (associate_alpha) {
138 unsigned char *cp = (
unsigned char *)pixels;
139 for (
size_t i = 0; i < num_pixels; i++, cp += channels) {
140 cp[0] = (cp[0] * cp[3]) >> 8;
141 cp[1] = (cp[1] * cp[3]) >> 8;
142 cp[2] = (cp[2] * cp[3]) >> 8;
169 BL::ShaderNodeTexPointDensity b_node)
170 : b_depsgraph(b_depsgraph), b_node(b_node)
211 return BL::ShaderNodeTexPointDensity(
b_node).name();
struct Depsgraph Depsgraph
Read Guarded memory(de)allocation.
static unsigned char * image_get_pixels_for_frame(BL::Image &image, int frame, int tile)
static float * image_get_float_pixels_for_frame(BL::Image &image, int frame, int tile)
SIMD_FORCE_INLINE btScalar length(const btQuaternion &q)
Return the length of a quaternion.
bool load_metadata(const ImageDeviceFeatures &features, ImageMetaData &metadata) override
bool load_pixels(const ImageMetaData &metadata, void *pixels, const size_t pixels_size, const bool associate_alpha) override
bool equals(const ImageLoader &other) const override
BlenderImageLoader(BL::Image b_image, int frame)
string name() const override
bool equals(const ImageLoader &other) const override
BL::ShaderNodeTexPointDensity b_node
BlenderPointDensityLoader(BL::Depsgraph depsgraph, BL::ShaderNodeTexPointDensity b_node)
string name() const override
BL::Depsgraph b_depsgraph
bool load_metadata(const ImageDeviceFeatures &features, ImageMetaData &metadata) override
bool load_pixels(const ImageMetaData &metadata, void *pixels, const size_t pixels_size, const bool associate_alpha) override
void builtin_images_load()
void device_load_builtin(Device *device, Scene *scene, Progress &progress)
#define CCL_NAMESPACE_END
void(* MEM_freeN)(void *vmemh)
static void free_cache(bNodeTree *ntree)
ImageManager * image_manager