diff options
| author | Rémi Verschelde <remi@verschelde.fr> | 2022-05-11 20:05:21 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-05-11 20:05:21 +0200 |
| commit | ae8dacba1c20b6e385f401d8e179f53ab23c1955 (patch) | |
| tree | 60789b960d3601e6a1148065f650d2ebcb49ed06 /servers/rendering/renderer_rd/storage_rd/material_storage.cpp | |
| parent | 2fd73bd32e0b0d153945bc28576b154af3342627 (diff) | |
| parent | 9939cfc4c48e9f76fd11fa481481012077aad741 (diff) | |
| download | redot-engine-ae8dacba1c20b6e385f401d8e179f53ab23c1955.tar.gz | |
Merge pull request #60617 from BastiaanOlij/split_bokeh_effect
Diffstat (limited to 'servers/rendering/renderer_rd/storage_rd/material_storage.cpp')
| -rw-r--r-- | servers/rendering/renderer_rd/storage_rd/material_storage.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/servers/rendering/renderer_rd/storage_rd/material_storage.cpp b/servers/rendering/renderer_rd/storage_rd/material_storage.cpp index 9ca2973fd4..4d2ee738a4 100644 --- a/servers/rendering/renderer_rd/storage_rd/material_storage.cpp +++ b/servers/rendering/renderer_rd/storage_rd/material_storage.cpp @@ -1420,6 +1420,25 @@ MaterialStorage::MaterialStorage() { //custom sampler sampler_rd_configure_custom(0.0f); + // buffers + { //create index array for copy shaders + Vector<uint8_t> pv; + pv.resize(6 * 4); + { + uint8_t *w = pv.ptrw(); + int *p32 = (int *)w; + p32[0] = 0; + p32[1] = 1; + p32[2] = 2; + p32[3] = 0; + p32[4] = 2; + p32[5] = 3; + } + quad_index_buffer = RD::get_singleton()->index_buffer_create(6, RenderingDevice::INDEX_BUFFER_FORMAT_UINT32, pv); + quad_index_array = RD::get_singleton()->index_array_create(quad_index_buffer, 0, 6); + } + + // Shaders for (int i = 0; i < SHADER_TYPE_MAX; i++) { shader_data_request_func[i] = nullptr; } @@ -1441,6 +1460,10 @@ MaterialStorage::~MaterialStorage() { memdelete_arr(global_variables.buffer_dirty_regions); RD::get_singleton()->free(global_variables.buffer); + // buffers + + RD::get_singleton()->free(quad_index_buffer); //array gets freed as dependency + //def samplers for (int i = 1; i < RS::CANVAS_ITEM_TEXTURE_FILTER_MAX; i++) { for (int j = 1; j < RS::CANVAS_ITEM_TEXTURE_REPEAT_MAX; j++) { |
