Files
test2/source/blender/gpu/dummy/dummy_framebuffer.hh
Miguel Pozo 333a5b513b GPU: Assert framebuffer operations match attachment layout
Ensure attachment states and load/store configs don't get out of sync
with the framebuffer layout.
In theory, a Framebuffer could have empty attachments interleaved with
valid ones so checking just the attachments "length" is not enough.
What this does instead is to ensure that valid attachments have a valid
config and that null attachments either don't have a matching config or
have an IGNORE/DONT_CARE one.

Pull Request: https://projects.blender.org/blender/blender/pulls/117073
2024-01-15 13:25:20 +01:00

61 lines
1.6 KiB
C++

/* SPDX-FileCopyrightText: 2023 Blender Authors
*
* SPDX-License-Identifier: GPL-2.0-or-later */
/** \file
* \ingroup gpu
*/
#pragma once
#include "gpu_framebuffer_private.hh"
namespace blender::gpu {
class DummyFrameBuffer : public FrameBuffer {
public:
DummyFrameBuffer(const char *name) : FrameBuffer(name) {}
void bind(bool /*enabled_srgb*/) override {}
bool check(char /*err_out*/[256]) override
{
return true;
}
void clear(eGPUFrameBufferBits /*buffers*/,
const float /*clear_color*/[4],
float /*clear_depth*/,
uint /*clear_stencil*/) override
{
}
void clear_multi(const float (* /*clear_color*/)[4]) override {}
void clear_attachment(GPUAttachmentType /*type*/,
eGPUDataFormat /*data_format*/,
const void * /*clear_value*/) override
{
}
void attachment_set_loadstore_op(GPUAttachmentType /*type*/, GPULoadStore /*ls*/) override {}
void subpass_transition_impl(const GPUAttachmentState /*depth_attachment_state*/,
Span<GPUAttachmentState> /*color_attachment_states*/) override{};
void read(eGPUFrameBufferBits /*planes*/,
eGPUDataFormat /*format*/,
const int /*area*/[4],
int /*channel_len*/,
int /*slot*/,
void * /*r_data*/) override
{
}
void blit_to(eGPUFrameBufferBits /*planes*/,
int /*src_slot*/,
FrameBuffer * /*dst*/,
int /*dst_slot*/,
int /*dst_offset_x*/,
int /*dst_offset_y*/) override
{
}
};
} // namespace blender::gpu