diff options
author | Jeroen Bakker <jeroen@blender.org> | 2021-03-08 15:41:52 +0300 |
---|---|---|
committer | Jeroen Bakker <jeroen@blender.org> | 2021-03-08 15:41:52 +0300 |
commit | 1775ea74c152ba7cf27a8bc1f071b40992c89013 (patch) | |
tree | 310fbe4e107734a16b3164adb1a65bd918935855 /source/blender/compositor/operations/COM_MultilayerImageOperation.cpp | |
parent | b9cd2f4531ca670c196b0b14b1359d0f375103c2 (diff) |
Cleanup: Change extension .cpp to .cc
Diffstat (limited to 'source/blender/compositor/operations/COM_MultilayerImageOperation.cpp')
-rw-r--r-- | source/blender/compositor/operations/COM_MultilayerImageOperation.cpp | 157 |
1 files changed, 0 insertions, 157 deletions
diff --git a/source/blender/compositor/operations/COM_MultilayerImageOperation.cpp b/source/blender/compositor/operations/COM_MultilayerImageOperation.cpp deleted file mode 100644 index 60936ee1939..00000000000 --- a/source/blender/compositor/operations/COM_MultilayerImageOperation.cpp +++ /dev/null @@ -1,157 +0,0 @@ -/* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * Copyright 2011, Blender Foundation. - */ - -#include "COM_MultilayerImageOperation.h" - -#include "IMB_imbuf.h" -#include "IMB_imbuf_types.h" - -MultilayerBaseOperation::MultilayerBaseOperation(RenderLayer *render_layer, - RenderPass *render_pass, - int view) -{ - this->m_passId = BLI_findindex(&render_layer->passes, render_pass); - this->m_view = view; - this->m_renderLayer = render_layer; - this->m_renderPass = render_pass; -} - -ImBuf *MultilayerBaseOperation::getImBuf() -{ - /* temporarily changes the view to get the right ImBuf */ - int view = this->m_imageUser->view; - - this->m_imageUser->view = this->m_view; - this->m_imageUser->pass = this->m_passId; - - if (BKE_image_multilayer_index(this->m_image->rr, this->m_imageUser)) { - ImBuf *ibuf = BaseImageOperation::getImBuf(); - this->m_imageUser->view = view; - return ibuf; - } - - this->m_imageUser->view = view; - return nullptr; -} - -std::unique_ptr<MetaData> MultilayerColorOperation::getMetaData() const -{ - BLI_assert(this->m_buffer); - MetaDataExtractCallbackData callback_data = {nullptr}; - RenderResult *render_result = this->m_image->rr; - if (render_result && render_result->stamp_data) { - RenderLayer *render_layer = this->m_renderLayer; - RenderPass *render_pass = this->m_renderPass; - std::string full_layer_name = - std::string(render_layer->name, - BLI_strnlen(render_layer->name, sizeof(render_layer->name))) + - "." + - std::string(render_pass->name, BLI_strnlen(render_pass->name, sizeof(render_pass->name))); - blender::StringRef cryptomatte_layer_name = - blender::bke::cryptomatte::BKE_cryptomatte_extract_layer_name(full_layer_name); - callback_data.setCryptomatteKeys(cryptomatte_layer_name); - - BKE_stamp_info_callback(&callback_data, - render_result->stamp_data, - MetaDataExtractCallbackData::extract_cryptomatte_meta_data, - false); - } - - return std::move(callback_data.meta_data); -} - -void MultilayerColorOperation::executePixelSampled(float output[4], - float x, - float y, - PixelSampler sampler) -{ - if (this->m_imageFloatBuffer == nullptr) { - zero_v4(output); - } - else { - if (this->m_numberOfChannels == 4) { - switch (sampler) { - case COM_PS_NEAREST: - nearest_interpolation_color(this->m_buffer, nullptr, output, x, y); - break; - case COM_PS_BILINEAR: - bilinear_interpolation_color(this->m_buffer, nullptr, output, x, y); - break; - case COM_PS_BICUBIC: - bicubic_interpolation_color(this->m_buffer, nullptr, output, x, y); - break; - } - } - else { - int yi = y; - int xi = x; - if (xi < 0 || yi < 0 || (unsigned int)xi >= this->getWidth() || - (unsigned int)yi >= this->getHeight()) { - zero_v4(output); - } - else { - int offset = (yi * this->getWidth() + xi) * 3; - copy_v3_v3(output, &this->m_imageFloatBuffer[offset]); - } - } - } -} - -void MultilayerValueOperation::executePixelSampled(float output[4], - float x, - float y, - PixelSampler /*sampler*/) -{ - if (this->m_imageFloatBuffer == nullptr) { - output[0] = 0.0f; - } - else { - int yi = y; - int xi = x; - if (xi < 0 || yi < 0 || (unsigned int)xi >= this->getWidth() || - (unsigned int)yi >= this->getHeight()) { - output[0] = 0.0f; - } - else { - float result = this->m_imageFloatBuffer[yi * this->getWidth() + xi]; - output[0] = result; - } - } -} - -void MultilayerVectorOperation::executePixelSampled(float output[4], - float x, - float y, - PixelSampler /*sampler*/) -{ - if (this->m_imageFloatBuffer == nullptr) { - output[0] = 0.0f; - } - else { - int yi = y; - int xi = x; - if (xi < 0 || yi < 0 || (unsigned int)xi >= this->getWidth() || - (unsigned int)yi >= this->getHeight()) { - output[0] = 0.0f; - } - else { - int offset = (yi * this->getWidth() + xi) * 3; - copy_v3_v3(output, &this->m_imageFloatBuffer[offset]); - } - } -} |