Changeset View
Changeset View
Standalone View
Standalone View
source/blender/render/intern/source/external_engine.c
| Show First 20 Lines • Show All 460 Lines • ▼ Show 20 Lines | 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( | 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, float result[]) | const ScenePassType pass_type, const float matrix[4][4], 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 19 Lines | bool RE_bake_engine( | ||||
| engine->tile_x = re->r.tilex; | engine->tile_x = re->r.tilex; | ||||
| engine->tile_y = re->r.tiley; | engine->tile_y = re->r.tiley; | ||||
| /* 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, re->scene); | type->update(engine, re->main, re->scene); | ||||
| if (type->bake) | if (type->bake) | ||||
| type->bake(engine, re->scene, object, pass_type, object_id, pixel_array, num_pixels, depth, result); | type->bake(engine, re->scene, object, pass_type, object_id, pixel_array, num_pixels, depth, matrix, result); | ||||
| 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; | ||||
| BLI_rw_mutex_lock(&re->partsmutex, THREAD_LOCK_WRITE); | BLI_rw_mutex_lock(&re->partsmutex, THREAD_LOCK_WRITE); | ||||
| /* re->engine becomes zero if user changed active render engine during render */ | /* re->engine becomes zero if user changed active render engine during render */ | ||||
| ▲ Show 20 Lines • Show All 219 Lines • Show Last 20 Lines | |||||