shader-rt: initial

This commit is contained in:
firestar99 2025-08-14 15:35:21 +02:00
parent 2c2fce1e90
commit bc4969a6ab
10 changed files with 260 additions and 7 deletions

View file

@ -295,7 +295,12 @@ pub(crate) fn generate_node_code(parsed: &ParsedNodeFn) -> syn::Result<TokenStre
let cfg = crate::shader_nodes::modify_cfg(attributes);
let node_input_accessor = generate_node_input_references(parsed, fn_generics, &field_idents, &graphene_core, &identifier, &cfg);
let shader_entry_point = attributes.shader_node.as_ref().map(|n| n.codegen_shader_entry_point(parsed)).unwrap_or(Ok(TokenStream::new()))?;
let (shader_entry_point, shader_gpu_node) = attributes
.shader_node
.as_ref()
.map::<syn::Result<_>, _>(|n| Ok((n.codegen_shader_entry_point(parsed)?, n.codegen_gpu_node(parsed)?)))
.unwrap_or(Ok((TokenStream::new(), TokenStream::new())))?;
Ok(quote! {
/// Underlying implementation for [#struct_name]
#[inline]
@ -387,6 +392,8 @@ pub(crate) fn generate_node_code(parsed: &ParsedNodeFn) -> syn::Result<TokenStre
}
#shader_entry_point
#shader_gpu_node
})
}