Add a `.data<T>()` method that retrieves a mutable span. This is useful more and more as we change to filling in vertex buffer data arrays directly, and compared to raw pointers it's safer too because of asserts in debug builds. Pull Request: https://projects.blender.org/blender/blender/pulls/123338
39 lines
889 B
C++
39 lines
889 B
C++
/* SPDX-FileCopyrightText: 2023 Blender Authors
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
|
|
/** \file
|
|
* \ingroup gpu
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
namespace blender::gpu {
|
|
|
|
class DummyVertexBuffer : public VertBuf {
|
|
|
|
public:
|
|
void bind_as_ssbo(uint /*binding*/) override {}
|
|
void bind_as_texture(uint /*binding*/) override {}
|
|
void wrap_handle(uint64_t /*handle*/) override {}
|
|
|
|
void update_sub(uint /*start*/, uint /*len*/, const void * /*data*/) override {}
|
|
void read(void * /*data*/) const override {}
|
|
|
|
protected:
|
|
void acquire_data() override
|
|
{
|
|
MEM_SAFE_FREE(data_);
|
|
data_ = (uchar *)MEM_mallocN(sizeof(uchar) * this->size_alloc_get(), __func__);
|
|
}
|
|
void resize_data() override {}
|
|
void release_data() override
|
|
{
|
|
MEM_SAFE_FREE(data_);
|
|
}
|
|
void upload_data() override {}
|
|
void duplicate_data(VertBuf * /*dst*/) override {}
|
|
};
|
|
|
|
} // namespace blender::gpu
|