Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@gmail.com>2018-04-17 14:35:05 +0300
committerBrecht Van Lommel <brechtvanlommel@gmail.com>2018-04-18 17:35:38 +0300
commitf9cf2e2f6cc779764f46dae7ceadc4bb2e9ddcb5 (patch)
tree0f409fce181813cab818bfb83a33779e38774684 /source/blender/blenkernel/intern/scene.c
parent15850a8740ed95afdc5779e224bf40f7540a7d62 (diff)
Workspaces: remove workspace engine, use 3D viewport draw mode instead.
ViewRender was removed, which means we can't get the render engine for files saved in 2.8. We assume that any files saved in 2.8 were intended to use Eevee and set the engine to that. A fix included with this is that .blend thumbails now draw with Clay mode, and never Eevee or Cycles. These were drawn with solid mode in 2.7, and should be very fast and not e.g. load heavy image textures. Differential Revision: https://developer.blender.org/D3156
Diffstat (limited to 'source/blender/blenkernel/intern/scene.c')
-rw-r--r--source/blender/blenkernel/intern/scene.c100
1 files changed, 16 insertions, 84 deletions
diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c
index e68d1db3e4a..51a4e8bfd66 100644
--- a/source/blender/blenkernel/intern/scene.c
+++ b/source/blender/blenkernel/intern/scene.c
@@ -744,7 +744,7 @@ void BKE_scene_init(Scene *sce)
sce->r.ffcodecdata.audio_bitrate = 192;
sce->r.ffcodecdata.audio_channels = 2;
- BKE_viewrender_init(&sce->view_render);
+ BLI_strncpy(sce->r.engine, RE_engine_id_BLENDER_EEVEE, sizeof(sce->r.engine));
sce->audio.distance_model = 2.0f;
sce->audio.doppler_factor = 1.0f;
@@ -1280,21 +1280,19 @@ static bool check_rendered_viewport_visible(Main *bmain)
wmWindow *window;
for (window = wm->windows.first; window != NULL; window = window->next) {
const bScreen *screen = BKE_workspace_active_screen_get(window->workspace_hook);
- WorkSpace *workspace = BKE_workspace_active_get(window->workspace_hook);
Scene *scene = window->scene;
- ViewRender *view_render = BKE_viewrender_get(scene, workspace);
- ScrArea *area;
- RenderEngineType *type = RE_engines_find(view_render->engine_id);
- if ((type->draw_engine != NULL) || (type->render_to_view == NULL)) {
+ RenderEngineType *type = RE_engines_find(scene->r.engine);
+
+ if (type->draw_engine || !type->render_to_view) {
continue;
}
- const bool use_legacy = (type->flag & RE_USE_LEGACY_PIPELINE) != 0;
- for (area = screen->areabase.first; area != NULL; area = area->next) {
+
+ for (ScrArea *area = screen->areabase.first; area != NULL; area = area->next) {
View3D *v3d = area->spacedata.first;
if (area->spacetype != SPACE_VIEW3D) {
continue;
}
- if (v3d->drawtype == OB_RENDER || !use_legacy) {
+ if (v3d->drawtype == OB_RENDER) {
return true;
}
}
@@ -1529,34 +1527,37 @@ next_set:
bool BKE_scene_use_new_shading_nodes(const Scene *scene)
{
- return BKE_viewrender_use_new_shading_nodes(&scene->view_render);
+ const RenderEngineType *type = RE_engines_find(scene->r.engine);
+ return (type && type->flag & RE_USE_SHADING_NODES);
}
bool BKE_scene_use_shading_nodes_custom(Scene *scene)
{
- return BKE_viewrender_use_shading_nodes_custom(&scene->view_render);
+ RenderEngineType *type = RE_engines_find(scene->r.engine);
+ return (type && type->flag & RE_USE_SHADING_NODES_CUSTOM);
}
bool BKE_scene_use_world_space_shading(Scene *scene)
{
- RenderEngineType *type = RE_engines_find(scene->view_render.engine_id);
+ const RenderEngineType *type = RE_engines_find(scene->r.engine);
return ((scene->r.mode & R_USE_WS_SHADING) ||
(type && (type->flag & RE_USE_SHADING_NODES)));
}
bool BKE_scene_use_spherical_stereo(Scene *scene)
{
- return BKE_viewrender_use_spherical_stereo(&scene->view_render);
+ RenderEngineType *type = RE_engines_find(scene->r.engine);
+ return (type && type->flag & RE_USE_SPHERICAL_STEREO);
}
bool BKE_scene_uses_blender_internal(const Scene *scene)
{
- return BKE_viewrender_uses_blender_internal(&scene->view_render);
+ return STREQ(scene->r.engine, RE_engine_id_BLENDER_RENDER);
}
bool BKE_scene_uses_blender_eevee(const Scene *scene)
{
- return BKE_viewrender_uses_blender_eevee(&scene->view_render);
+ return STREQ(scene->r.engine, RE_engine_id_BLENDER_EEVEE);
}
void BKE_scene_base_flag_to_objects(ViewLayer *view_layer)
@@ -1661,75 +1662,6 @@ int BKE_render_preview_pixel_size(const RenderData *r)
return r->preview_pixel_size;
}
-/* ***************************************************** */
-/* render engine settings */
-
-ViewRender *BKE_viewrender_get(Scene *scene, WorkSpace *workspace)
-{
- if (workspace == NULL || BKE_workspace_use_scene_settings_get(workspace)) {
- return &scene->view_render;
- }
- return BKE_workspace_view_render_get(workspace);
-}
-
-/**
- * Initialize a static created struct for WorkSpace and Scene to store the viewport
- * related drawing data.
- */
-void BKE_viewrender_init(ViewRender *view_render)
-{
- BLI_strncpy(view_render->engine_id, RE_engine_id_BLENDER_EEVEE, sizeof(view_render->engine_id));
-}
-
-/**
- * Do not free ViewRender itself since it's not even allocated.
- */
-void BKE_viewrender_free(ViewRender *UNUSED(view_render))
-{
- /* Do nothing. */
-}
-
-/**
- * Copy used by libblock copying.
- */
-void BKE_viewrender_copy(ViewRender *to, const ViewRender *from)
-{
- *to = *from;
-}
-
-bool BKE_viewrender_use_new_shading_nodes(const ViewRender *view_render)
-{
- RenderEngineType *type = RE_engines_find(view_render->engine_id);
- return (type && type->flag & RE_USE_SHADING_NODES);
-}
-
-bool BKE_viewrender_use_shading_nodes_custom(const ViewRender *view_render)
-{
- RenderEngineType *type = RE_engines_find(view_render->engine_id);
- return (type && type->flag & RE_USE_SHADING_NODES_CUSTOM);
-}
-
-bool BKE_viewrender_use_spherical_stereo(const ViewRender *view_render)
-{
- const char *engine_id = view_render->engine_id;
- RenderEngineType *type = RE_engines_find(engine_id);
- return (type && type->flag & RE_USE_SPHERICAL_STEREO);
-}
-
-bool BKE_viewrender_uses_blender_internal(const ViewRender *view_render)
-{
- const char *engine_id = view_render->engine_id;
- return STREQ(engine_id, RE_engine_id_BLENDER_RENDER);
-}
-
-bool BKE_viewrender_uses_blender_eevee(const ViewRender *view_render)
-{
- const char *engine_id = view_render->engine_id;
- return STREQ(engine_id, RE_engine_id_BLENDER_EEVEE);
-}
-
-/* ***************************************************** */
-
/* Apply the needed correction factor to value, based on unit_type (only length-related are affected currently)
* and unit->scale_length.
*/