Changeset View
Changeset View
Standalone View
Standalone View
source/blender/render/intern/source/external_engine.c
| Show First 20 Lines • Show All 146 Lines • ▼ Show 20 Lines | RenderEngineType *RE_engines_find(const char *idname) | ||||
| if (!type) | if (!type) | ||||
| type = &internal_render_type; | type = &internal_render_type; | ||||
| return type; | return type; | ||||
| } | } | ||||
| bool RE_engine_is_external(Render *re) | bool RE_engine_is_external(Render *re) | ||||
| { | { | ||||
| RenderEngineType *type = RE_engines_find(re->r.engine); | return (re->engine && re->engine->type && re->engine->type->render_to_image); | ||||
| return (type && type->render_to_image); | |||||
| } | } | ||||
| /* Create, Free */ | /* Create, Free */ | ||||
| RenderEngine *RE_engine_create(RenderEngineType *type) | RenderEngine *RE_engine_create(RenderEngineType *type) | ||||
| { | { | ||||
| return RE_engine_create_ex(type, false); | return RE_engine_create_ex(type, false); | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 351 Lines • ▼ Show 20 Lines | |||||
| /* Bake */ | /* Bake */ | ||||
| void RE_bake_engine_set_engine_parameters(Render *re, Main *bmain, Depsgraph *graph, Scene *scene) | void RE_bake_engine_set_engine_parameters(Render *re, Main *bmain, Depsgraph *graph, Scene *scene) | ||||
| { | { | ||||
| re->depsgraph = graph; | re->depsgraph = graph; | ||||
| re->scene = scene; | re->scene = scene; | ||||
| re->main = bmain; | re->main = bmain; | ||||
| render_copy_renderdata(&re->r, &scene->r); | render_copy_renderdata(&re->r, &scene->r); | ||||
| render_copy_viewrender(&re->view_render, &scene->view_render); | |||||
| } | } | ||||
| bool RE_bake_has_engine(Render *re) | bool RE_bake_has_engine(Render *re) | ||||
| { | { | ||||
| RenderEngineType *type = RE_engines_find(re->r.engine); | RenderEngineType *type = RE_engines_find(re->view_render.engine_id); | ||||
| return (type->bake != NULL); | return (type->bake != NULL); | ||||
| } | } | ||||
| bool RE_bake_engine( | bool RE_bake_engine( | ||||
| Render *re, Object *object, | Render *re, Object *object, | ||||
| const int object_id, const BakePixel pixel_array[], | const int object_id, const BakePixel pixel_array[], | ||||
| const size_t num_pixels, const int depth, | const size_t num_pixels, const int depth, | ||||
| const ScenePassType pass_type, const int pass_filter, | const ScenePassType pass_type, const int pass_filter, | ||||
| float result[]) | float result[]) | ||||
| { | { | ||||
| RenderEngineType *type = RE_engines_find(re->r.engine); | RenderEngineType *type = RE_engines_find(re->view_render.engine_id); | ||||
| RenderEngine *engine; | RenderEngine *engine; | ||||
| bool persistent_data = (re->r.mode & R_PERSISTENT_DATA) != 0; | bool persistent_data = (re->r.mode & R_PERSISTENT_DATA) != 0; | ||||
| /* set render info */ | /* set render info */ | ||||
| re->i.cfra = re->scene->r.cfra; | re->i.cfra = re->scene->r.cfra; | ||||
| BLI_strncpy(re->i.scene_name, re->scene->id.name + 2, sizeof(re->i.scene_name) - 2); | BLI_strncpy(re->i.scene_name, re->scene->id.name + 2, sizeof(re->i.scene_name) - 2); | ||||
| re->i.totface = re->i.totvert = re->i.totstrand = re->i.totlamp = re->i.tothalo = 0; | re->i.totface = re->i.totvert = re->i.totstrand = re->i.totlamp = re->i.tothalo = 0; | ||||
| ▲ Show 20 Lines • Show All 77 Lines • ▼ Show 20 Lines | #endif | ||||
| BKE_scene_camera_switch_update(scene); | BKE_scene_camera_switch_update(scene); | ||||
| } | } | ||||
| /* Render */ | /* Render */ | ||||
| int RE_engine_render(Render *re, int do_all) | int RE_engine_render(Render *re, int do_all) | ||||
| { | { | ||||
| RenderEngineType *type = RE_engines_find(re->r.engine); | RenderEngineType *type = RE_engines_find(re->view_render.engine_id); | ||||
| RenderEngine *engine; | RenderEngine *engine; | ||||
| bool persistent_data = (re->r.mode & R_PERSISTENT_DATA) != 0; | bool persistent_data = (re->r.mode & R_PERSISTENT_DATA) != 0; | ||||
| /* verify if we can render */ | /* verify if we can render */ | ||||
| if (!type->render_to_image) | if (!type->render_to_image) | ||||
| return 0; | return 0; | ||||
| if ((re->r.scemode & R_BUTS_PREVIEW) && !(type->flag & RE_USE_PREVIEW)) | if ((re->r.scemode & R_BUTS_PREVIEW) && !(type->flag & RE_USE_PREVIEW)) | ||||
| return 0; | return 0; | ||||
| ▲ Show 20 Lines • Show All 157 Lines • Show Last 20 Lines | |||||