Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2022-01-26 23:57:44 +0300
committerClément Foucault <foucault.clem@gmail.com>2022-01-27 00:03:58 +0300
commit4226c484bdbe7336f1221094916fcdfb12850034 (patch)
tree33428e72be40105c222ca77935ee1554b702facc /source/blender/compositor/operations/COM_ImageOperation.cc
parent55a6a8900aec81e94f4d82401d6051e3b5507c0e (diff)
parentaf87b6d8cb75d9d625378dee25d726a0d55f75c6 (diff)
Merge branch 'draw-viewport-data' into eevee-rewrite
# Conflicts: # release/scripts/startup/bl_ui/properties_data_camera.py # source/blender/blenkernel/BKE_camera.h # source/blender/blenkernel/BKE_node.h # source/blender/blenkernel/intern/camera.c # source/blender/blenlib/BLI_float2.hh # source/blender/blenlib/BLI_float3.hh # source/blender/blenlib/BLI_float4.hh # source/blender/blenlib/BLI_math_geom.h # source/blender/blenlib/intern/math_geom.c # source/blender/draw/CMakeLists.txt # source/blender/draw/engines/basic/basic_engine.c # source/blender/draw/engines/eevee/eevee_cryptomatte.c # source/blender/draw/engines/eevee/eevee_effects.c # source/blender/draw/engines/eevee/eevee_engine.c # source/blender/draw/engines/eevee/eevee_lightcache.c # source/blender/draw/engines/eevee/eevee_lightcache.h # source/blender/draw/engines/eevee/eevee_lightprobes.c # source/blender/draw/engines/eevee/eevee_lights.c # source/blender/draw/engines/eevee/eevee_materials.c # source/blender/draw/engines/eevee/eevee_motion_blur.c # source/blender/draw/engines/eevee/eevee_occlusion.c # source/blender/draw/engines/eevee/eevee_private.h # source/blender/draw/engines/eevee/eevee_render.c # source/blender/draw/engines/eevee/eevee_renderpasses.c # source/blender/draw/engines/eevee/eevee_sampling.c # source/blender/draw/engines/eevee/eevee_screen_raytrace.c # source/blender/draw/engines/eevee/eevee_shaders.c # source/blender/draw/engines/eevee/eevee_shadows.c # source/blender/draw/engines/eevee/eevee_shadows_cube.c # source/blender/draw/engines/eevee/eevee_temporal_sampling.c # source/blender/draw/engines/eevee/shaders/ambient_occlusion_lib.glsl # source/blender/draw/engines/eevee/shaders/closure_eval_lib.glsl # source/blender/draw/engines/eevee/shaders/common_utiltex_lib.glsl # source/blender/draw/engines/eevee/shaders/effect_dof_bokeh_frag.glsl # source/blender/draw/engines/eevee/shaders/effect_dof_gather_frag.glsl # source/blender/draw/engines/eevee/shaders/effect_dof_reduce_frag.glsl # source/blender/draw/engines/eevee/shaders/effect_reflection_resolve_frag.glsl # source/blender/draw/engines/eevee/shaders/effect_temporal_aa.glsl # source/blender/draw/engines/eevee/shaders/random_lib.glsl # source/blender/draw/engines/eevee/shaders/shadow_vert.glsl # source/blender/draw/engines/eevee/shaders/surface_lib.glsl # source/blender/draw/engines/eevee/shaders/surface_vert.glsl # source/blender/draw/engines/eevee/shaders/volumetric_lib.glsl # source/blender/draw/engines/external/external_engine.c # source/blender/draw/engines/gpencil/gpencil_engine.c # source/blender/draw/engines/image/image_engine.c # source/blender/draw/engines/overlay/overlay_engine.c # source/blender/draw/engines/select/select_engine.c # source/blender/draw/engines/workbench/shaders/workbench_volume_frag.glsl # source/blender/draw/engines/workbench/shaders/workbench_volume_vert.glsl # source/blender/draw/engines/workbench/workbench_engine.c # source/blender/draw/engines/workbench/workbench_shader.c # source/blender/draw/intern/DRW_render.h # source/blender/draw/intern/draw_debug.h # source/blender/draw/intern/draw_manager_data.c # source/blender/draw/intern/draw_manager_exec.c # source/blender/draw/intern/draw_view_data.h # source/blender/gpu/CMakeLists.txt # source/blender/gpu/GPU_material.h # source/blender/gpu/GPU_shader.h # source/blender/gpu/GPU_state.h # source/blender/gpu/GPU_vertex_buffer.h # source/blender/gpu/intern/gpu_codegen.c # source/blender/gpu/intern/gpu_material.c # source/blender/gpu/intern/gpu_material_library.h # source/blender/gpu/intern/gpu_node_graph.c # source/blender/gpu/intern/gpu_texture_private.hh # source/blender/gpu/intern/gpu_vertex_buffer.cc # source/blender/gpu/opengl/gl_shader.cc # source/blender/gpu/shaders/gpu_shader_common_obinfos_lib.glsl # source/blender/gpu/shaders/material/gpu_shader_material_shader_to_rgba.glsl # source/blender/nodes/shader/node_shader_tree.cc # source/blender/nodes/shader/nodes/node_shader_background.cc # source/blender/nodes/shader/nodes/node_shader_bsdf_anisotropic.cc # source/blender/nodes/shader/nodes/node_shader_bsdf_diffuse.cc # source/blender/nodes/shader/nodes/node_shader_bsdf_glass.cc # source/blender/nodes/shader/nodes/node_shader_bsdf_glossy.cc # source/blender/nodes/shader/nodes/node_shader_bsdf_hair.cc # source/blender/nodes/shader/nodes/node_shader_bsdf_hair_principled.c # source/blender/nodes/shader/nodes/node_shader_bsdf_principled.c # source/blender/nodes/shader/nodes/node_shader_bsdf_refraction.cc # source/blender/nodes/shader/nodes/node_shader_bsdf_toon.cc # source/blender/nodes/shader/nodes/node_shader_bsdf_translucent.cc # source/blender/nodes/shader/nodes/node_shader_bsdf_transparent.cc # source/blender/nodes/shader/nodes/node_shader_bsdf_velvet.cc # source/blender/nodes/shader/nodes/node_shader_eevee_specular.cc # source/blender/nodes/shader/nodes/node_shader_emission.cc # source/blender/nodes/shader/nodes/node_shader_holdout.cc # source/blender/nodes/shader/nodes/node_shader_output_material.cc # source/blender/nodes/shader/nodes/node_shader_subsurface_scattering.c # source/blender/nodes/shader/nodes/node_shader_tex_coord.cc # source/blender/nodes/shader/nodes/node_shader_vector_transform.cc # source/blender/nodes/shader/nodes/node_shader_volume_absorption.cc # source/blender/nodes/shader/nodes/node_shader_volume_principled.cc # source/blender/nodes/shader/nodes/node_shader_volume_scatter.cc # source/blender/render/RE_pipeline.h # source/blender/render/intern/initrender.c
Diffstat (limited to 'source/blender/compositor/operations/COM_ImageOperation.cc')
-rw-r--r--source/blender/compositor/operations/COM_ImageOperation.cc123
1 files changed, 58 insertions, 65 deletions
diff --git a/source/blender/compositor/operations/COM_ImageOperation.cc b/source/blender/compositor/operations/COM_ImageOperation.cc
index ff389093f5a..e32343cfbf2 100644
--- a/source/blender/compositor/operations/COM_ImageOperation.cc
+++ b/source/blender/compositor/operations/COM_ImageOperation.cc
@@ -18,94 +18,87 @@
#include "COM_ImageOperation.h"
-#include "BKE_image.h"
#include "BKE_scene.h"
-#include "BLI_listbase.h"
-#include "BLI_math.h"
-#include "DNA_image_types.h"
#include "IMB_colormanagement.h"
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
-#include "RE_pipeline.h"
-#include "RE_texture.h"
-
namespace blender::compositor {
BaseImageOperation::BaseImageOperation()
{
- this->m_image = nullptr;
- this->m_buffer = nullptr;
- this->m_imageFloatBuffer = nullptr;
- this->m_imageByteBuffer = nullptr;
- this->m_imageUser = nullptr;
- this->m_imagewidth = 0;
- this->m_imageheight = 0;
- this->m_framenumber = 0;
- this->m_depthBuffer = nullptr;
+ image_ = nullptr;
+ buffer_ = nullptr;
+ image_float_buffer_ = nullptr;
+ image_byte_buffer_ = nullptr;
+ image_user_ = nullptr;
+ imagewidth_ = 0;
+ imageheight_ = 0;
+ framenumber_ = 0;
+ image_depth_buffer_ = nullptr;
depth_buffer_ = nullptr;
- this->m_numberOfChannels = 0;
- this->m_rd = nullptr;
- this->m_viewName = nullptr;
+ number_of_channels_ = 0;
+ rd_ = nullptr;
+ view_name_ = nullptr;
}
ImageOperation::ImageOperation() : BaseImageOperation()
{
- this->addOutputSocket(DataType::Color);
+ this->add_output_socket(DataType::Color);
}
ImageAlphaOperation::ImageAlphaOperation() : BaseImageOperation()
{
- this->addOutputSocket(DataType::Value);
+ this->add_output_socket(DataType::Value);
}
ImageDepthOperation::ImageDepthOperation() : BaseImageOperation()
{
- this->addOutputSocket(DataType::Value);
+ this->add_output_socket(DataType::Value);
}
-ImBuf *BaseImageOperation::getImBuf()
+ImBuf *BaseImageOperation::get_im_buf()
{
ImBuf *ibuf;
- ImageUser iuser = *this->m_imageUser;
+ ImageUser iuser = *image_user_;
- if (this->m_image == nullptr) {
+ if (image_ == nullptr) {
return nullptr;
}
/* local changes to the original ImageUser */
- if (BKE_image_is_multilayer(this->m_image) == false) {
- iuser.multi_index = BKE_scene_multiview_view_id_get(this->m_rd, this->m_viewName);
+ if (BKE_image_is_multilayer(image_) == false) {
+ iuser.multi_index = BKE_scene_multiview_view_id_get(rd_, view_name_);
}
- ibuf = BKE_image_acquire_ibuf(this->m_image, &iuser, nullptr);
+ ibuf = BKE_image_acquire_ibuf(image_, &iuser, nullptr);
if (ibuf == nullptr || (ibuf->rect == nullptr && ibuf->rect_float == nullptr)) {
- BKE_image_release_ibuf(this->m_image, ibuf, nullptr);
+ BKE_image_release_ibuf(image_, ibuf, nullptr);
return nullptr;
}
return ibuf;
}
-void BaseImageOperation::initExecution()
+void BaseImageOperation::init_execution()
{
- ImBuf *stackbuf = getImBuf();
- this->m_buffer = stackbuf;
+ ImBuf *stackbuf = get_im_buf();
+ buffer_ = stackbuf;
if (stackbuf) {
- this->m_imageFloatBuffer = stackbuf->rect_float;
- this->m_imageByteBuffer = stackbuf->rect;
- this->m_depthBuffer = stackbuf->zbuf_float;
+ image_float_buffer_ = stackbuf->rect_float;
+ image_byte_buffer_ = stackbuf->rect;
+ image_depth_buffer_ = stackbuf->zbuf_float;
if (stackbuf->zbuf_float) {
depth_buffer_ = new MemoryBuffer(stackbuf->zbuf_float, 1, stackbuf->x, stackbuf->y);
}
- this->m_imagewidth = stackbuf->x;
- this->m_imageheight = stackbuf->y;
- this->m_numberOfChannels = stackbuf->channels;
+ imagewidth_ = stackbuf->x;
+ imageheight_ = stackbuf->y;
+ number_of_channels_ = stackbuf->channels;
}
}
-void BaseImageOperation::deinitExecution()
+void BaseImageOperation::deinit_execution()
{
- this->m_imageFloatBuffer = nullptr;
- this->m_imageByteBuffer = nullptr;
- BKE_image_release_ibuf(this->m_image, this->m_buffer, nullptr);
+ image_float_buffer_ = nullptr;
+ image_byte_buffer_ = nullptr;
+ BKE_image_release_ibuf(image_, buffer_, nullptr);
if (depth_buffer_) {
delete depth_buffer_;
depth_buffer_ = nullptr;
@@ -114,7 +107,7 @@ void BaseImageOperation::deinitExecution()
void BaseImageOperation::determine_canvas(const rcti &UNUSED(preferred_area), rcti &r_area)
{
- ImBuf *stackbuf = getImBuf();
+ ImBuf *stackbuf = get_im_buf();
r_area = COM_AREA_NONE;
@@ -122,10 +115,10 @@ void BaseImageOperation::determine_canvas(const rcti &UNUSED(preferred_area), rc
BLI_rcti_init(&r_area, 0, stackbuf->x, 0, stackbuf->y);
}
- BKE_image_release_ibuf(this->m_image, stackbuf, nullptr);
+ BKE_image_release_ibuf(image_, stackbuf, nullptr);
}
-static void sampleImageAtLocation(
+static void sample_image_at_location(
ImBuf *ibuf, float x, float y, PixelSampler sampler, bool make_linear_rgb, float color[4])
{
if (ibuf->rect_float) {
@@ -161,17 +154,17 @@ static void sampleImageAtLocation(
}
}
-void ImageOperation::executePixelSampled(float output[4], float x, float y, PixelSampler sampler)
+void ImageOperation::execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler)
{
int ix = x, iy = y;
- if (this->m_imageFloatBuffer == nullptr && this->m_imageByteBuffer == nullptr) {
+ if (image_float_buffer_ == nullptr && image_byte_buffer_ == nullptr) {
zero_v4(output);
}
- else if (ix < 0 || iy < 0 || ix >= this->m_buffer->x || iy >= this->m_buffer->y) {
+ else if (ix < 0 || iy < 0 || ix >= buffer_->x || iy >= buffer_->y) {
zero_v4(output);
}
else {
- sampleImageAtLocation(this->m_buffer, x, y, sampler, true, output);
+ sample_image_at_location(buffer_, x, y, sampler, true, output);
}
}
@@ -179,22 +172,22 @@ void ImageOperation::update_memory_buffer_partial(MemoryBuffer *output,
const rcti &area,
Span<MemoryBuffer *> UNUSED(inputs))
{
- output->copy_from(m_buffer, area, true);
+ output->copy_from(buffer_, area, true);
}
-void ImageAlphaOperation::executePixelSampled(float output[4],
- float x,
- float y,
- PixelSampler sampler)
+void ImageAlphaOperation::execute_pixel_sampled(float output[4],
+ float x,
+ float y,
+ PixelSampler sampler)
{
float tempcolor[4];
- if (this->m_imageFloatBuffer == nullptr && this->m_imageByteBuffer == nullptr) {
+ if (image_float_buffer_ == nullptr && image_byte_buffer_ == nullptr) {
output[0] = 0.0f;
}
else {
tempcolor[3] = 1.0f;
- sampleImageAtLocation(this->m_buffer, x, y, sampler, false, tempcolor);
+ sample_image_at_location(buffer_, x, y, sampler, false, tempcolor);
output[0] = tempcolor[3];
}
}
@@ -203,24 +196,24 @@ void ImageAlphaOperation::update_memory_buffer_partial(MemoryBuffer *output,
const rcti &area,
Span<MemoryBuffer *> UNUSED(inputs))
{
- output->copy_from(m_buffer, area, 3, COM_DATA_TYPE_VALUE_CHANNELS, 0);
+ output->copy_from(buffer_, area, 3, COM_DATA_TYPE_VALUE_CHANNELS, 0);
}
-void ImageDepthOperation::executePixelSampled(float output[4],
- float x,
- float y,
- PixelSampler /*sampler*/)
+void ImageDepthOperation::execute_pixel_sampled(float output[4],
+ float x,
+ float y,
+ PixelSampler /*sampler*/)
{
- if (this->m_depthBuffer == nullptr) {
+ if (image_depth_buffer_ == nullptr) {
output[0] = 0.0f;
}
else {
- if (x < 0 || y < 0 || x >= this->getWidth() || y >= this->getHeight()) {
+ if (x < 0 || y < 0 || x >= this->get_width() || y >= this->get_height()) {
output[0] = 0.0f;
}
else {
- int offset = y * getWidth() + x;
- output[0] = this->m_depthBuffer[offset];
+ int offset = y * get_width() + x;
+ output[0] = image_depth_buffer_[offset];
}
}
}