You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-04 12:00:25 +00:00
Merge pull request #70132 from clayjohn/RT-update
Implement render_target_was_used API so that Viewports can properly check if they have been used.
This commit is contained in:
@@ -2095,6 +2095,9 @@ void RasterizerCanvasGLES3::_bind_canvas_texture(RID p_texture, RS::CanvasItemTe
|
||||
if (t) {
|
||||
ERR_FAIL_COND(!t->canvas_texture);
|
||||
ct = t->canvas_texture;
|
||||
if (t->render_target) {
|
||||
t->render_target->used_in_frame = true;
|
||||
}
|
||||
} else {
|
||||
ct = texture_storage->get_canvas_texture(p_texture);
|
||||
}
|
||||
@@ -2122,6 +2125,9 @@ void RasterizerCanvasGLES3::_bind_canvas_texture(RID p_texture, RS::CanvasItemTe
|
||||
glBindTexture(GL_TEXTURE_2D, texture->tex_id);
|
||||
texture->gl_set_filter(filter);
|
||||
texture->gl_set_repeat(repeat);
|
||||
if (texture->render_target) {
|
||||
texture->render_target->used_in_frame = true;
|
||||
}
|
||||
}
|
||||
|
||||
GLES3::Texture *normal_map = texture_storage->get_texture(ct->normal_map);
|
||||
@@ -2135,6 +2141,9 @@ void RasterizerCanvasGLES3::_bind_canvas_texture(RID p_texture, RS::CanvasItemTe
|
||||
glBindTexture(GL_TEXTURE_2D, normal_map->tex_id);
|
||||
normal_map->gl_set_filter(filter);
|
||||
normal_map->gl_set_repeat(repeat);
|
||||
if (normal_map->render_target) {
|
||||
normal_map->render_target->used_in_frame = true;
|
||||
}
|
||||
}
|
||||
|
||||
GLES3::Texture *specular_map = texture_storage->get_texture(ct->specular);
|
||||
@@ -2148,6 +2157,9 @@ void RasterizerCanvasGLES3::_bind_canvas_texture(RID p_texture, RS::CanvasItemTe
|
||||
glBindTexture(GL_TEXTURE_2D, specular_map->tex_id);
|
||||
specular_map->gl_set_filter(filter);
|
||||
specular_map->gl_set_repeat(repeat);
|
||||
if (specular_map->render_target) {
|
||||
specular_map->render_target->used_in_frame = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2625,7 +2637,7 @@ RasterizerCanvasGLES3::RasterizerCanvasGLES3() {
|
||||
global_defines += "#define MAX_LIGHTS " + itos(data.max_lights_per_render) + "\n";
|
||||
global_defines += "#define MAX_DRAW_DATA_INSTANCES " + itos(data.max_instances_per_batch) + "\n";
|
||||
|
||||
GLES3::MaterialStorage::get_singleton()->shaders.canvas_shader.initialize(global_defines);
|
||||
GLES3::MaterialStorage::get_singleton()->shaders.canvas_shader.initialize(global_defines, 1);
|
||||
data.canvas_shader_default_version = GLES3::MaterialStorage::get_singleton()->shaders.canvas_shader.version_create();
|
||||
|
||||
shadow_render.shader.initialize();
|
||||
|
||||
Reference in New Issue
Block a user