@Megalomaniak said:
Drawing things via two viewports is reading from viewports.
Well, I probably should trust you, because I'm really new to Godot, but please take a moment and look at this code starting at line 430: https://github.com/godotengine/godot/blob/master/servers/visual/visual_server_viewport.cpp
void VisualServerViewport::viewport_attach_to_screen(RID p_viewport, const Rect2 &p_rect, int p_screen) {
Viewport *viewport = viewport_owner.getornull(p_viewport);
ERR_FAIL_COND(!viewport);
// If using GLES2 we can optimize this operation by rendering directly to system_fbo
// instead of rendering to fbo and copying to system_fbo after
if (VSG::rasterizer->is_low_end() && viewport->viewport_render_direct_to_screen) {
VSG::storage->render_target_set_size(viewport->render_target, p_rect.size.x, p_rect.size.y);
VSG::storage->render_target_set_position(viewport->render_target, p_rect.position.x, p_rect.position.y);
}
viewport->viewport_to_screen_rect = p_rect;
viewport->viewport_to_screen = p_screen;
}
As you see there is code to render directly to a system fbo if ">viewport_render_direct_to_screen" is true.
So I'm not convinced yet with your awnser. I will probably have to step through the code in the debugger to see why it does not work....
But if you think it is not possible draw to a viewport if "viewport_render_direct_to_screen" is true. What is the use case for this option then?
Thanks for your time, anyway!