diff options
| author | Bastiaan Olij <mux213@gmail.com> | 2022-04-29 17:10:54 +1000 |
|---|---|---|
| committer | Bastiaan Olij <mux213@gmail.com> | 2022-05-11 11:08:56 +1000 |
| commit | 9939cfc4c48e9f76fd11fa481481012077aad741 (patch) | |
| tree | 0255f768348292984d58843c6b9c738cad3f794e /servers/rendering/renderer_rd/storage_rd/material_storage.cpp | |
| parent | 1eebf0d789f44870a32a1b36a6609a19647a836f (diff) | |
| download | redot-engine-9939cfc4c48e9f76fd11fa481481012077aad741.tar.gz | |
Split out bokeh_dof and copy effects
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++) { |
