Skip to content

Commit 20494ee

Browse files
committed
WIP4
1 parent 7ff5575 commit 20494ee

File tree

2 files changed

+22
-6
lines changed

2 files changed

+22
-6
lines changed

node-graph/node-macro/src/shader_nodes/mod.rs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1-
use crate::parsing::{Input, NodeFnAttributes, ParsedNodeFn};
1+
use crate::parsing::{NodeFnAttributes, ParsedNodeFn};
22
use crate::shader_nodes::per_pixel_adjust::PerPixelAdjust;
33
use proc_macro2::{Ident, TokenStream};
4-
use quote::{format_ident, quote};
5-
use std::{todo, vec};
4+
use quote::quote;
65
use strum::VariantNames;
6+
use syn::Error;
77
use syn::parse::{Parse, ParseStream};
8-
use syn::{Error, Path, Type, TypePath};
98

109
pub mod per_pixel_adjust;
1110

@@ -50,4 +49,10 @@ impl CodegenShaderEntryPoint for ShaderNodeType {
5049
ShaderNodeType::PerPixelAdjust(x) => x.codegen_shader_entry_point(parsed),
5150
}
5251
}
52+
53+
fn codegen_gpu_node(&self, parsed: &ParsedNodeFn) -> syn::Result<TokenStream> {
54+
match self {
55+
ShaderNodeType::PerPixelAdjust(x) => x.codegen_gpu_node(parsed),
56+
}
57+
}
5358
}

node-graph/node-macro/src/shader_nodes/per_pixel_adjust.rs

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,19 @@ impl CodegenShaderEntryPoint for PerPixelAdjust {
101101
let struct_name = format_ident!("{}", fn_name.to_string().to_case(Case::Pascal));
102102
let mod_name = fn_name.clone();
103103

104-
let fields = todo!();
105-
let body = todo!();
104+
let fields = parsed
105+
.fields
106+
.iter()
107+
.map(|f| match f {
108+
ParsedField::Regular { .. } => {
109+
let mut ret = f.clone();
110+
ret.gpu_image = false;
111+
Ok(ret)
112+
}
113+
ParsedField::Node { pat_ident, .. } => Err(syn::Error::new_spanned(pat_ident, "PerPixelAdjust shader nodes cannot accept other nodes as generics")),
114+
})
115+
.collect::<syn::Result<_>>()?;
116+
let body = quote! {};
106117

107118
crate::codegen::generate_node_code(&ParsedNodeFn {
108119
vis: parsed.vis.clone(),

0 commit comments

Comments
 (0)