You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-11 13:10:58 +00:00
Merge pull request #50644 from BastiaanOlij/mobile_compute_to_fragment
This commit is contained in:
@@ -4959,7 +4959,7 @@ void RendererStorageRD::particles_set_view_axis(RID p_particles, const Vector3 &
|
||||
RD::get_singleton()->compute_list_dispatch_threads(compute_list, particles->amount, 1, 1);
|
||||
|
||||
RD::get_singleton()->compute_list_end();
|
||||
effects.sort_buffer(particles->particles_sort_uniform_set, particles->amount);
|
||||
effects->sort_buffer(particles->particles_sort_uniform_set, particles->amount);
|
||||
}
|
||||
|
||||
copy_push_constant.total_particles *= copy_push_constant.total_particles;
|
||||
@@ -7535,7 +7535,7 @@ void RendererStorageRD::render_target_copy_to_back_buffer(RID p_render_target, c
|
||||
|
||||
//single texture copy for backbuffer
|
||||
//RD::get_singleton()->texture_copy(rt->color, rt->backbuffer_mipmap0, Vector3(region.position.x, region.position.y, 0), Vector3(region.position.x, region.position.y, 0), Vector3(region.size.x, region.size.y, 1), 0, 0, 0, 0, true);
|
||||
effects.copy_to_rect(rt->color, rt->backbuffer_mipmap0, region, false, false, false, true, true);
|
||||
effects->copy_to_rect(rt->color, rt->backbuffer_mipmap0, region, false, false, false, true, true);
|
||||
|
||||
if (!p_gen_mipmaps) {
|
||||
return;
|
||||
@@ -7551,7 +7551,7 @@ void RendererStorageRD::render_target_copy_to_back_buffer(RID p_render_target, c
|
||||
region.size.y = MAX(1, region.size.y >> 1);
|
||||
|
||||
const RenderTarget::BackbufferMipmap &mm = rt->backbuffer_mipmaps[i];
|
||||
effects.gaussian_blur(prev_texture, mm.mipmap, mm.mipmap_copy, region, true);
|
||||
effects->gaussian_blur(prev_texture, mm.mipmap, mm.mipmap_copy, region, true);
|
||||
prev_texture = mm.mipmap;
|
||||
}
|
||||
}
|
||||
@@ -7574,7 +7574,7 @@ void RendererStorageRD::render_target_clear_back_buffer(RID p_render_target, con
|
||||
}
|
||||
|
||||
//single texture copy for backbuffer
|
||||
effects.set_color(rt->backbuffer_mipmap0, p_color, region, true);
|
||||
effects->set_color(rt->backbuffer_mipmap0, p_color, region, true);
|
||||
}
|
||||
|
||||
void RendererStorageRD::render_target_gen_back_buffer_mipmaps(RID p_render_target, const Rect2i &p_region) {
|
||||
@@ -7604,7 +7604,7 @@ void RendererStorageRD::render_target_gen_back_buffer_mipmaps(RID p_render_targe
|
||||
region.size.y = MAX(1, region.size.y >> 1);
|
||||
|
||||
const RenderTarget::BackbufferMipmap &mm = rt->backbuffer_mipmaps[i];
|
||||
effects.gaussian_blur(prev_texture, mm.mipmap, mm.mipmap_copy, region, true);
|
||||
effects->gaussian_blur(prev_texture, mm.mipmap, mm.mipmap_copy, region, true);
|
||||
prev_texture = mm.mipmap;
|
||||
}
|
||||
}
|
||||
@@ -7925,14 +7925,14 @@ void RendererStorageRD::_update_decal_atlas() {
|
||||
while ((K = decal_atlas.textures.next(K))) {
|
||||
DecalAtlas::Texture *t = decal_atlas.textures.getptr(*K);
|
||||
Texture *src_tex = texture_owner.getornull(*K);
|
||||
effects.copy_to_atlas_fb(src_tex->rd_texture, mm.fb, t->uv_rect, draw_list, false, t->panorama_to_dp_users > 0);
|
||||
effects->copy_to_atlas_fb(src_tex->rd_texture, mm.fb, t->uv_rect, draw_list, false, t->panorama_to_dp_users > 0);
|
||||
}
|
||||
|
||||
RD::get_singleton()->draw_list_end();
|
||||
|
||||
prev_texture = mm.texture;
|
||||
} else {
|
||||
effects.copy_to_fb_rect(prev_texture, mm.fb, Rect2i(Point2i(), mm.size));
|
||||
effects->copy_to_fb_rect(prev_texture, mm.fb, Rect2i(Point2i(), mm.size));
|
||||
prev_texture = mm.texture;
|
||||
}
|
||||
} else {
|
||||
@@ -8804,8 +8804,13 @@ bool RendererStorageRD::free(RID p_rid) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void RendererStorageRD::init_effects(bool p_prefer_raster_effects) {
|
||||
effects = memnew(EffectsRD(p_prefer_raster_effects));
|
||||
}
|
||||
|
||||
EffectsRD *RendererStorageRD::get_effects() {
|
||||
return &effects;
|
||||
ERR_FAIL_NULL_V_MSG(effects, nullptr, "Effects haven't been initialised yet.");
|
||||
return effects;
|
||||
}
|
||||
|
||||
void RendererStorageRD::capture_timestamps_begin() {
|
||||
@@ -9535,4 +9540,9 @@ RendererStorageRD::~RendererStorageRD() {
|
||||
if (decal_atlas.texture.is_valid()) {
|
||||
RD::get_singleton()->free(decal_atlas.texture);
|
||||
}
|
||||
|
||||
if (effects) {
|
||||
memdelete(effects);
|
||||
effects = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user