diff options
| author | Juan Linietsky | 2016-10-19 11:14:41 -0300 |
|---|---|---|
| committer | Juan Linietsky | 2016-10-19 11:14:41 -0300 |
| commit | 4428115916144b45c4697cd65d9c8c093631bec6 (patch) | |
| tree | afff5350ae57ba65b190f16b27db892173d9f43f /servers/visual/visual_server_viewport.cpp | |
| parent | 1527cf8c0d17891dd0ebf99d484f83daa46eba3c (diff) | |
| download | godot-4428115916144b45c4697cd65d9c8c093631bec6.tar.gz godot-4428115916144b45c4697cd65d9c8c093631bec6.tar.zst godot-4428115916144b45c4697cd65d9c8c093631bec6.zip | |
Everything returning to normal in 3D, still a long way to go
-implemented the scene part of visual server and rasterizer, objects without lighting and material are rendererd only
Diffstat (limited to 'servers/visual/visual_server_viewport.cpp')
| -rw-r--r-- | servers/visual/visual_server_viewport.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/servers/visual/visual_server_viewport.cpp b/servers/visual/visual_server_viewport.cpp index baf18b7a5..583b42bfc 100644 --- a/servers/visual/visual_server_viewport.cpp +++ b/servers/visual/visual_server_viewport.cpp @@ -1,8 +1,11 @@ #include "visual_server_viewport.h" #include "visual_server_global.h" #include "visual_server_canvas.h" +#include "visual_server_scene.h" #include "globals.h" + + void VisualServerViewport::_draw_viewport(Viewport *p_viewport) { /* Camera should always be BEFORE any other 3D */ @@ -58,6 +61,12 @@ void VisualServerViewport::_draw_viewport(Viewport *p_viewport) { } } + + if (!p_viewport->disable_3d && p_viewport->camera.is_valid()) { + + VSG::scene->render_camera(p_viewport->camera,p_viewport->scenario,p_viewport->size); + } + if (!p_viewport->hide_canvas) { int i=0; @@ -248,6 +257,11 @@ void VisualServerViewport::draw_viewports() { ERR_CONTINUE( !vp->render_target.is_valid() ); + bool visible = vp->viewport_to_screen_rect!=Rect2() || vp->update_mode==VS::VIEWPORT_UPDATE_ALWAYS || vp->update_mode==VS::VIEWPORT_UPDATE_ONCE; + + if (!visible) + continue; + VSG::rasterizer->set_current_render_target(vp->render_target); _draw_viewport(vp); |
