Changeset View
Changeset View
Standalone View
Standalone View
source/blender/render/intern/source/external_engine.c
| Show First 20 Lines • Show All 565 Lines • ▼ Show 20 Lines | |||||
| 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->r.engine); | ||||
| return (type->bake != NULL); | return (type->bake != NULL); | ||||
| } | } | ||||
| bool RE_bake_engine(Render *re, | bool RE_bake_engine(Render *re, | ||||
| Depsgraph *depsgraph, | Depsgraph *depsgraph, | ||||
| BakePass *bp, | |||||
| Object *object, | Object *object, | ||||
| const int object_id, | const int object_id, | ||||
| const BakePixel pixel_array[], | const BakePixel pixel_array[], | ||||
| const size_t num_pixels, | BakeResult *result) | ||||
| const int depth, | |||||
| const eScenePassType pass_type, | |||||
| const int pass_filter, | |||||
| float result[]) | |||||
| { | { | ||||
| RenderEngineType *type = RE_engines_find(re->r.engine); | RenderEngineType *type = RE_engines_find(re->r.engine); | ||||
| 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); | ||||
| Show All 22 Lines | bool RE_bake_engine(Render *re, | ||||
| if (type->bake) { | if (type->bake) { | ||||
| engine->depsgraph = depsgraph; | engine->depsgraph = depsgraph; | ||||
| /* update is only called so we create the engine.session */ | /* update is only called so we create the engine.session */ | ||||
| if (type->update) { | if (type->update) { | ||||
| type->update(engine, re->main, engine->depsgraph); | type->update(engine, re->main, engine->depsgraph); | ||||
| } | } | ||||
| type->bake(engine, | type->bake(engine, engine->depsgraph, bp, object, object_id, pixel_array, result); | ||||
| engine->depsgraph, | |||||
| object, | |||||
| pass_type, | |||||
| pass_filter, | |||||
| object_id, | |||||
| pixel_array, | |||||
| num_pixels, | |||||
| depth, | |||||
| result); | |||||
| engine->depsgraph = NULL; | engine->depsgraph = NULL; | ||||
| } | } | ||||
| engine->tile_x = 0; | engine->tile_x = 0; | ||||
| engine->tile_y = 0; | engine->tile_y = 0; | ||||
| engine->flag &= ~RE_ENGINE_RENDERING; | engine->flag &= ~RE_ENGINE_RENDERING; | ||||
| ▲ Show 20 Lines • Show All 250 Lines • Show Last 20 Lines | |||||