Changeset View
Changeset View
Standalone View
Standalone View
source/blender/blenkernel/intern/sequencer.c
| Show First 20 Lines • Show All 3,316 Lines • ▼ Show 20 Lines | if ((sequencer_view3d_cb && do_seq_gl && camera) && is_thread_main) { | ||||
| draw_flags |= (context->scene->r.seq_flag & R_SEQ_CAMERA_DOF) ? SEQ_OFSDRAW_USE_CAMERA_DOF : 0; | draw_flags |= (context->scene->r.seq_flag & R_SEQ_CAMERA_DOF) ? SEQ_OFSDRAW_USE_CAMERA_DOF : 0; | ||||
| /* for old scene this can be uninitialized, | /* for old scene this can be uninitialized, | ||||
| * should probably be added to do_versions at some point if the functionality stays */ | * should probably be added to do_versions at some point if the functionality stays */ | ||||
| if (context->scene->r.seq_prev_type == 0) | if (context->scene->r.seq_prev_type == 0) | ||||
| context->scene->r.seq_prev_type = 3 /* == OB_SOLID */; | context->scene->r.seq_prev_type = 3 /* == OB_SOLID */; | ||||
| /* opengl offscreen render */ | /* opengl offscreen render */ | ||||
| context->eval_ctx->engine_type = RE_engines_find(scene->view_render.engine_id); | context->eval_ctx->engine_type = RE_engines_find(seq->view_render.engine_id); | ||||
campbellbarton: The boolean should be checked here `seq->use_scene_render_engine` using a scene or seq… | |||||
| BKE_scene_graph_update_for_newframe(context->eval_ctx, depsgraph, context->bmain, scene, view_layer); | BKE_scene_graph_update_for_newframe(context->eval_ctx, depsgraph, context->bmain, scene, view_layer); | ||||
| ibuf = sequencer_view3d_cb( | ibuf = sequencer_view3d_cb( | ||||
| /* set for OpenGL render (NULL when scrubbing) */ | /* set for OpenGL render (NULL when scrubbing) */ | ||||
| context->eval_ctx, scene, view_layer, camera, width, height, IB_rect, | context->eval_ctx, scene, view_layer, camera, width, height, IB_rect, | ||||
| draw_flags, context->scene->r.seq_prev_type, | draw_flags, context->scene->r.seq_prev_type, | ||||
| scene->r.alphamode, context->gpu_samples, viewname, | scene->r.alphamode, context->gpu_samples, viewname, | ||||
| context->gpu_fx, context->gpu_offscreen, err_out); | context->gpu_fx, context->gpu_offscreen, err_out); | ||||
| if (ibuf == NULL) { | if (ibuf == NULL) { | ||||
| ▲ Show 20 Lines • Show All 1,729 Lines • ▼ Show 20 Lines | Mask *BKE_sequencer_mask_get(Scene *scene) | ||||
| if (seq_act && seq_act->type == SEQ_TYPE_MASK) { | if (seq_act && seq_act->type == SEQ_TYPE_MASK) { | ||||
| return seq_act->mask; | return seq_act->mask; | ||||
| } | } | ||||
| else { | else { | ||||
| return NULL; | return NULL; | ||||
| } | } | ||||
| } | } | ||||
| void BKE_sequencer_scene_render_engine_changed(Scene *current_scene) | |||||
| { | |||||
| Editing *ed = BKE_sequencer_editing_get(current_scene, true); | |||||
| Sequence *seq; | |||||
| if (ed == NULL) { | |||||
| return; | |||||
| } | |||||
| SeqIterator iter; | |||||
| for (BKE_sequence_iterator_begin(ed, &iter, true); iter.valid; BKE_sequence_iterator_next(&iter)) { | |||||
| seq = iter.seq; | |||||
| if (seq->use_scene_render_engine) { | |||||
| BLI_strncpy(seq->view_render.engine_id, current_scene->view_render.engine_id, 32); | |||||
| BKE_sequence_invalidate_cache(current_scene, seq); | |||||
| } | |||||
| } | |||||
| BKE_sequence_iterator_end(&iter); | |||||
| } | |||||
campbellbartonUnsubmitted Not Done Inline ActionsThis is not a reliable way of ensuring the correct value is used. Strips can be copy-pasted for example. An override should be a flag which is checked at runtime. campbellbarton: This is not a reliable way of ensuring the correct value is used.
Strips can be copy-pasted… | |||||
| /* api like funcs for adding */ | /* api like funcs for adding */ | ||||
| static void seq_load_apply(Main *bmain, Scene *scene, Sequence *seq, SeqLoadInfo *seq_load) | static void seq_load_apply(Main *bmain, Scene *scene, Sequence *seq, SeqLoadInfo *seq_load) | ||||
| { | { | ||||
| if (seq) { | if (seq) { | ||||
| BLI_strncpy_utf8(seq->name + 2, seq_load->name, sizeof(seq->name) - 2); | BLI_strncpy_utf8(seq->name + 2, seq_load->name, sizeof(seq->name) - 2); | ||||
| BLI_utf8_invalid_strip(seq->name + 2, strlen(seq->name + 2)); | BLI_utf8_invalid_strip(seq->name + 2, strlen(seq->name + 2)); | ||||
| BKE_sequence_base_unique_name_recursive(&scene->ed->seqbase, seq); | BKE_sequence_base_unique_name_recursive(&scene->ed->seqbase, seq); | ||||
| ▲ Show 20 Lines • Show All 41 Lines • ▼ Show 20 Lines | Sequence *BKE_sequence_alloc(ListBase *lb, int cfra, int machine) | ||||
| seq->mul = 1.0; | seq->mul = 1.0; | ||||
| seq->blend_opacity = 100.0; | seq->blend_opacity = 100.0; | ||||
| seq->volume = 1.0f; | seq->volume = 1.0f; | ||||
| seq->pitch = 1.0f; | seq->pitch = 1.0f; | ||||
| seq->scene_sound = NULL; | seq->scene_sound = NULL; | ||||
| seq->stereo3d_format = MEM_callocN(sizeof(Stereo3dFormat), "Sequence Stereo Format"); | seq->stereo3d_format = MEM_callocN(sizeof(Stereo3dFormat), "Sequence Stereo Format"); | ||||
| seq->use_scene_render_engine = true; | |||||
| return seq; | return seq; | ||||
| } | } | ||||
| void BKE_sequence_alpha_mode_from_extension(Sequence *seq) | void BKE_sequence_alpha_mode_from_extension(Sequence *seq) | ||||
| { | { | ||||
| if (seq->strip && seq->strip->stripdata) { | if (seq->strip && seq->strip->stripdata) { | ||||
| const char *filename = seq->strip->stripdata->name; | const char *filename = seq->strip->stripdata->name; | ||||
| seq->alpha_mode = BKE_image_alpha_mode_from_extension_ex(filename); | seq->alpha_mode = BKE_image_alpha_mode_from_extension_ex(filename); | ||||
| ▲ Show 20 Lines • Show All 561 Lines • Show Last 20 Lines | |||||
The boolean should be checked here seq->use_scene_render_engine using a scene or seq depending on it's value.