rework
This commit is contained in:
16
effects.cm
16
effects.cm
@@ -92,7 +92,8 @@ effects.register('mask', {
|
||||
type: 'conditional',
|
||||
requires_target: true,
|
||||
params: {
|
||||
source: {required: true},
|
||||
source: {required: false}, // Legacy: direct handle reference
|
||||
source_id: {required: false}, // New: ID string for film2d.get()
|
||||
channel: {default: 'alpha'},
|
||||
invert: {default: false},
|
||||
soft: {default: false},
|
||||
@@ -112,11 +113,22 @@ effects.register('mask', {
|
||||
return [{type: 'blit', source: input, dest: output}]
|
||||
}
|
||||
|
||||
// Resolve mask source
|
||||
var mask_source = params.source
|
||||
if (params.source_id && ctx.film2d) {
|
||||
mask_source = ctx.film2d.get(params.source_id)
|
||||
}
|
||||
|
||||
if (!mask_source) {
|
||||
// No mask source - pass through
|
||||
return [{type: 'blit', source: input, dest: output}]
|
||||
}
|
||||
|
||||
// Render mask source to target
|
||||
var mask_target = ctx.alloc_target(size.width, size.height, 'mask_src')
|
||||
passes.push({
|
||||
type: 'render_subtree',
|
||||
root: params.source,
|
||||
root: mask_source,
|
||||
output: mask_target,
|
||||
clear: {r: 0, g: 0, b: 0, a: 0},
|
||||
space: params.space || 'local'
|
||||
|
||||
Reference in New Issue
Block a user