Directory structure:
└── zwluoqi-mobile-visual-shader-editor/
├── README.md
├── _config.yml
├── LICENSE
├── node_examples/
│ ├── add_shader.nodedata
│ ├── blackbody.nodedata
│ ├── brick_tex.nodedata
│ ├── bump.nodedata
│ ├── checker_tex.nodedata
│ ├── clamp.nodedata
│ ├── game.nodedata
│ ├── gradient_tex.nodedata
│ ├── image_tex.nodedata
│ ├── map_range.nodedata
│ ├── math.nodedata
│ ├── migic_tex.nodedata
│ ├── musgrave_tex.nodedata
│ ├── noise_tex.nodedata
│ ├── ramp_color.nodedata
│ ├── rgb2bw.nodedata
│ ├── rgb_curve.nodedata
│ ├── vec_trans.nodedata
│ ├── vector_math.nodedata
│ ├── voronoi_tex.nodedata
│ ├── wave_length.nodedata
│ ├── wave_tex.nodedata
│ ├── white_noise.nodedata
│ ├── add_shader/
│ │ ├── add_shader_frag.sc
│ │ ├── add_shader_vertex.sc
│ │ └── varying.def.sc
│ ├── blackbody/
│ │ ├── blackbody_frag.sc
│ │ ├── blackbody_vertex.sc
│ │ └── varying.def.sc
│ ├── brick_tex/
│ │ ├── brick_tex_frag.sc
│ │ ├── brick_tex_vertex.sc
│ │ └── varying.def.sc
│ ├── bump/
│ │ ├── bump_frag.sc
│ │ ├── bump_vertex.sc
│ │ └── varying.def.sc
│ ├── checker_tex/
│ │ ├── checker_tex_frag.sc
│ │ ├── checker_tex_vertex.sc
│ │ └── varying.def.sc
│ ├── clamp/
│ │ ├── clamp_frag.sc
│ │ ├── clamp_vertex.sc
│ │ └── varying.def.sc
│ ├── game/
│ │ ├── game_frag.sc
│ │ ├── game_vertex.sc
│ │ └── varying.def.sc
│ ├── gradient_tex/
│ │ ├── gradient_tex_frag.sc
│ │ ├── gradient_tex_vertex.sc
│ │ └── varying.def.sc
│ ├── image_tex/
│ │ ├── image_tex_frag.sc
│ │ ├── image_tex_vertex.sc
│ │ └── varying.def.sc
│ ├── map_range/
│ │ ├── map_range_frag.sc
│ │ ├── map_range_vertex.sc
│ │ └── varying.def.sc
│ ├── math/
│ │ ├── math_frag.sc
│ │ ├── math_vertex.sc
│ │ └── varying.def.sc
│ ├── migic_tex/
│ │ ├── migic_tex_frag.sc
│ │ ├── migic_tex_vertex.sc
│ │ └── varying.def.sc
│ ├── musgrave_tex/
│ │ ├── musgrave_tex_frag.sc
│ │ ├── musgrave_tex_vertex.sc
│ │ └── varying.def.sc
│ ├── noise_tex/
│ │ ├── noise_tex_frag.sc
│ │ ├── noise_tex_vertex.sc
│ │ └── varying.def.sc
│ ├── ramp_color/
│ │ ├── ramp_color_frag.sc
│ │ ├── ramp_color_vertex.sc
│ │ └── varying.def.sc
│ ├── rgb2bw/
│ │ ├── rgb2bw_frag.sc
│ │ ├── rgb2bw_vertex.sc
│ │ └── varying.def.sc
│ ├── rgb_curve/
│ │ ├── rgb_curve_frag.sc
│ │ ├── rgb_curve_vertex.sc
│ │ └── varying.def.sc
│ ├── vec_trans/
│ │ ├── varying.def.sc
│ │ ├── vec_trans_frag.sc
│ │ └── vec_trans_vertex.sc
│ ├── vector_math/
│ │ ├── varying.def.sc
│ │ ├── vector_math_frag.sc
│ │ └── vector_math_vertex.sc
│ ├── voronoi_tex/
│ │ ├── varying.def.sc
│ │ ├── voronoi_tex_frag.sc
│ │ └── voronoi_tex_vertex.sc
│ ├── wave_length/
│ │ ├── varying.def.sc
│ │ ├── wave_length_frag.sc
│ │ └── wave_length_vertex.sc
│ ├── wave_tex/
│ │ ├── varying.def.sc
│ │ ├── wave_tex_frag.sc
│ │ └── wave_tex_vertex.sc
│ └── white_noise/
│ ├── varying.def.sc
│ ├── white_noise_frag.sc
│ └── white_noise_vertex.sc
├── runtime_visual_shader/
│ ├── ios-info.plist
│ ├── osx-info.plist
│ ├── tvos-info.plist
│ ├── common/
│ │ ├── common.sh
│ │ ├── shaderlib.sh
│ │ ├── font/
│ │ │ ├── fs_font_basic.sc
│ │ │ ├── fs_font_distance_field.sc
│ │ │ ├── fs_font_distance_field_drop_shadow.sc
│ │ │ ├── fs_font_distance_field_drop_shadow_image.sc
│ │ │ ├── fs_font_distance_field_outline.sc
│ │ │ ├── fs_font_distance_field_outline_drop_shadow_image.sc
│ │ │ ├── fs_font_distance_field_outline_image.sc
│ │ │ ├── fs_font_distance_field_subpixel.sc
│ │ │ ├── varying.def.sc
│ │ │ ├── vs_font_basic.sc
│ │ │ ├── vs_font_distance_field.sc
│ │ │ ├── vs_font_distance_field_drop_shadow.sc
│ │ │ ├── vs_font_distance_field_drop_shadow_image.sc
│ │ │ ├── vs_font_distance_field_outline.sc
│ │ │ ├── vs_font_distance_field_outline_drop_shadow_image.sc
│ │ │ ├── vs_font_distance_field_outline_image.sc
│ │ │ └── vs_font_distance_field_subpixel.sc
│ │ └── ps/
│ │ ├── fs_particle.sc
│ │ ├── varying.def.sc
│ │ └── vs_particle.sc
│ ├── font/
│ │ ├── chp-fire.ttf
│ │ ├── entypo.ttf
│ │ ├── five_minutes.otf
│ │ ├── kenney-icon-font.ttf
│ │ └── visitor1.ttf
│ ├── meshes/
│ │ └── Marry/
│ │ └── Marry.mtl
│ ├── node/
│ │ ├── color.meta
│ │ ├── converter.meta
│ │ ├── include.meta
│ │ ├── input.meta
│ │ ├── light.meta
│ │ ├── node.cginc
│ │ ├── node.cginc.meta
│ │ ├── shader.meta
│ │ ├── texture.meta
│ │ ├── vector.meta
│ │ ├── color/
│ │ │ ├── node_brightness_contrast.cginc
│ │ │ ├── node_brightness_contrast.cginc.meta
│ │ │ ├── node_curves_rgb.cginc
│ │ │ ├── node_curves_rgb.cginc.meta
│ │ │ ├── node_gamma.cginc
│ │ │ ├── node_gamma.cginc.meta
│ │ │ ├── node_hsv.cginc
│ │ │ ├── node_hsv.cginc.meta
│ │ │ ├── node_invert.cginc
│ │ │ ├── node_invert.cginc.meta
│ │ │ ├── node_light_falloff.cginc
│ │ │ ├── node_light_falloff.cginc.meta
│ │ │ ├── node_mix.cginc
│ │ │ └── node_mix.cginc.meta
│ │ ├── converter/
│ │ │ ├── node_blackbody.cginc
│ │ │ ├── node_blackbody.cginc.meta
│ │ │ ├── node_clamp.cginc
│ │ │ ├── node_clamp.cginc.meta
│ │ │ ├── node_color_ramp.cginc
│ │ │ ├── node_color_ramp.cginc.meta
│ │ │ ├── node_combine_hsv.cginc
│ │ │ ├── node_combine_hsv.cginc.meta
│ │ │ ├── node_combine_rgb.cginc
│ │ │ ├── node_combine_rgb.cginc.meta
│ │ │ ├── node_combine_xyz.cginc
│ │ │ ├── node_combine_xyz.cginc.meta
│ │ │ ├── node_map_range.cginc
│ │ │ ├── node_map_range.cginc.meta
│ │ │ ├── node_math.cginc
│ │ │ ├── node_math.cginc.meta
│ │ │ ├── node_rgbtobw.cginc
│ │ │ ├── node_rgbtobw.cginc.meta
│ │ │ ├── node_separate_hsv.cginc
│ │ │ ├── node_separate_hsv.cginc.meta
│ │ │ ├── node_separate_rgb.cginc
│ │ │ ├── node_separate_rgb.cginc.meta
│ │ │ ├── node_separate_xyz.cginc
│ │ │ ├── node_separate_xyz.cginc.meta
│ │ │ ├── node_vector_math.cginc
│ │ │ ├── node_vector_math.cginc.meta
│ │ │ ├── node_wavelength.cginc
│ │ │ └── node_wavelength.cginc.meta
│ │ ├── include/
│ │ │ ├── base_h.cginc
│ │ │ ├── base_h.cginc.meta
│ │ │ ├── color_h.cginc
│ │ │ ├── color_h.cginc.meta
│ │ │ ├── define_h.cginc
│ │ │ ├── define_h.cginc.meta
│ │ │ ├── exe_h.cginc.meta
│ │ │ ├── fractal_noise_util_h.cginc
│ │ │ ├── fractal_noise_util_h.cginc.meta
│ │ │ ├── hash_util_h.cginc
│ │ │ ├── hash_util_h.cginc.meta
│ │ │ ├── light_h.cginc
│ │ │ ├── light_h.cginc.meta
│ │ │ ├── math_util_h.cginc
│ │ │ ├── math_util_h.cginc.meta
│ │ │ ├── noise_util_h.cginc
│ │ │ ├── noise_util_h.cginc.meta
│ │ │ ├── share_uniform.cginc
│ │ │ ├── share_uniform.cginc.meta
│ │ │ ├── texture_def_h.cginc
│ │ │ └── texture_def_h.cginc.meta
│ │ ├── input/
│ │ │ ├── node_ambient_occlusion.cginc
│ │ │ ├── node_ambient_occlusion.cginc.meta
│ │ │ ├── node_bevel.cginc
│ │ │ ├── node_bevel.cginc.meta
│ │ │ ├── node_camera.cginc
│ │ │ ├── node_camera.cginc.meta
│ │ │ ├── node_fresnel.cginc
│ │ │ ├── node_fresnel.cginc.meta
│ │ │ ├── node_geometry.cginc
│ │ │ ├── node_geometry.cginc.meta
│ │ │ ├── node_layer_weight.cginc
│ │ │ ├── node_layer_weight.cginc.meta
│ │ │ ├── node_light_path.cginc
│ │ │ ├── node_light_path.cginc.meta
│ │ │ ├── node_object_info.cginc
│ │ │ ├── node_object_info.cginc.meta
│ │ │ ├── node_rgb.cginc
│ │ │ ├── node_rgb.cginc.meta
│ │ │ ├── node_tangent.cginc
│ │ │ ├── node_tangent.cginc.meta
│ │ │ ├── node_tex_coord.cginc
│ │ │ ├── node_tex_coord.cginc.meta
│ │ │ ├── node_value.cginc
│ │ │ ├── node_value.cginc.meta
│ │ │ ├── node_vertex_color.cginc
│ │ │ ├── node_vertex_color.cginc.meta
│ │ │ ├── node_wireframe.cginc
│ │ │ └── node_wireframe.cginc.meta
│ │ ├── light/
│ │ │ ├── closure_eval_lib.cginc
│ │ │ ├── closure_eval_lib.cginc.meta
│ │ │ ├── closure_type_lib.cginc
│ │ │ ├── clusure_data_lib.sh
│ │ │ ├── clusure_data_lib.sh.meta
│ │ │ ├── eval_diffuse_lib.cginc
│ │ │ ├── eval_diffuse_lib.cginc.meta
│ │ │ ├── eval_surface_lib.cginc
│ │ │ └── eval_surface_lib.cginc.meta
│ │ ├── shader/
│ │ │ ├── node_add_shader.cginc
│ │ │ ├── node_bsdf_anisotropic.cginc
│ │ │ ├── node_bsdf_diffuse.cginc
│ │ │ ├── node_bsdf_diffuse.cginc.meta
│ │ │ ├── node_bsdf_emission.cginc
│ │ │ ├── node_bsdf_oren_nayar.cginc
│ │ │ ├── node_bsdf_surface.cginc
│ │ │ ├── node_bsdf_surface.cginc.meta
│ │ │ └── node_mix_shader.cginc
│ │ ├── texture/
│ │ │ ├── node_tex_brick.cginc
│ │ │ ├── node_tex_brick.cginc.meta
│ │ │ ├── node_tex_checker.cginc
│ │ │ ├── node_tex_checker.cginc.meta
│ │ │ ├── node_tex_gradient.cginc
│ │ │ ├── node_tex_gradient.cginc.meta
│ │ │ ├── node_tex_image.cginc
│ │ │ ├── node_tex_image.cginc.meta
│ │ │ ├── node_tex_magic.cginc
│ │ │ ├── node_tex_magic.cginc.meta
│ │ │ ├── node_tex_musgrave.cginc
│ │ │ ├── node_tex_musgrave.cginc.meta
│ │ │ ├── node_tex_noise.cginc
│ │ │ ├── node_tex_noise.cginc.meta
│ │ │ ├── node_tex_voronoi.cginc
│ │ │ ├── node_tex_voronoi.cginc.meta
│ │ │ ├── node_tex_wave.cginc
│ │ │ ├── node_tex_wave.cginc.meta
│ │ │ ├── node_tex_white_noise.cginc
│ │ │ └── node_tex_white_noise.cginc.meta
│ │ └── vector/
│ │ ├── node_bump.cginc
│ │ ├── node_bump.cginc.meta
│ │ ├── node_displacement.cginc
│ │ ├── node_displacement.cginc.meta
│ │ ├── node_mapping.cginc
│ │ ├── node_mapping.cginc.meta
│ │ ├── node_normal.cginc
│ │ ├── node_normal.cginc.meta
│ │ ├── node_normal_map.cginc
│ │ ├── node_normal_map.cginc.meta
│ │ ├── node_vector_curves.cginc
│ │ ├── node_vector_curves.cginc.meta
│ │ ├── node_vector_displacement.cginc
│ │ ├── node_vector_displacement.cginc.meta
│ │ ├── node_vector_rotate.cginc
│ │ ├── node_vector_rotate.cginc.meta
│ │ ├── node_vector_transform.cginc
│ │ └── node_vector_transform.cginc.meta
│ ├── shader_graph/
│ │ ├── pbr.nodedata
│ │ └── pbr/
│ │ ├── pbr_frag.sc
│ │ ├── pbr_vertex.sc
│ │ └── varying.def.sc
│ ├── source_shader/
│ │ ├── cubes/
│ │ │ ├── fs_cubes.sc
│ │ │ ├── varying.def.sc
│ │ │ └── vs_cubes.sc
│ │ ├── mesh/
│ │ │ ├── fs_mesh.sc
│ │ │ ├── varying.def.sc
│ │ │ └── vs_mesh.sc
│ │ ├── role/
│ │ │ ├── fs_role.sc
│ │ │ ├── varying.def.sc
│ │ │ └── vs_role.sc
│ │ └── sky/
│ │ ├── fs_hdr_skybox.sc
│ │ ├── varying.def.sc
│ │ └── vs_hdr_skybox.sc
│ ├── src_shader/
│ │ ├── bgfx_compute.sh
│ │ ├── bgfx_shader.sh
│ │ ├── fs_clear0.bin.h
│ │ ├── fs_clear0.sc
│ │ ├── fs_clear1.bin.h
│ │ ├── fs_clear1.sc
│ │ ├── fs_clear2.bin.h
│ │ ├── fs_clear2.sc
│ │ ├── fs_clear3.bin.h
│ │ ├── fs_clear3.sc
│ │ ├── fs_clear4.bin.h
│ │ ├── fs_clear4.sc
│ │ ├── fs_clear5.bin.h
│ │ ├── fs_clear5.sc
│ │ ├── fs_clear6.bin.h
│ │ ├── fs_clear6.sc
│ │ ├── fs_clear7.bin.h
│ │ ├── fs_clear7.sc
│ │ ├── fs_debugfont.bin.h
│ │ ├── fs_debugfont.sc
│ │ ├── varying.def.sc
│ │ ├── vs_clear.bin.h
│ │ ├── vs_clear.sc
│ │ ├── vs_debugfont.bin.h
│ │ └── vs_debugfont.sc
│ └── text/
│ └── sherlock_holmes_a_scandal_in_bohemia_arthur_conan_doyle.txt
└── src/
├── common/
│ ├── aviwriter.h
│ ├── bgfx_utils.cpp
│ ├── bgfx_utils.h
│ ├── bounds.cpp
│ ├── bounds.h
│ ├── bounds.inl
│ ├── camera.cpp
│ ├── camera.h
│ ├── common.h
│ ├── common.sh
│ ├── cube_atlas.cpp
│ ├── cube_atlas.h
│ ├── example-glue.cpp
│ ├── packrect.h
│ ├── shaderlib.sh
│ ├── debugdraw/
│ │ ├── debugdraw.h
│ │ ├── fs_debugdraw_fill.bin.h
│ │ ├── fs_debugdraw_fill.sc
│ │ ├── fs_debugdraw_fill_lit.bin.h
│ │ ├── fs_debugdraw_fill_lit.sc
│ │ ├── fs_debugdraw_fill_texture.bin.h
│ │ ├── fs_debugdraw_fill_texture.sc
│ │ ├── fs_debugdraw_lines.bin.h
│ │ ├── fs_debugdraw_lines.sc
│ │ ├── fs_debugdraw_lines_stipple.bin.h
│ │ ├── fs_debugdraw_lines_stipple.sc
│ │ ├── makefile
│ │ ├── varying.def.sc
│ │ ├── vs_debugdraw_fill.bin.h
│ │ ├── vs_debugdraw_fill.sc
│ │ ├── vs_debugdraw_fill_lit.bin.h
│ │ ├── vs_debugdraw_fill_lit.sc
│ │ ├── vs_debugdraw_fill_lit_mesh.bin.h
│ │ ├── vs_debugdraw_fill_lit_mesh.sc
│ │ ├── vs_debugdraw_fill_mesh.bin.h
│ │ ├── vs_debugdraw_fill_mesh.sc
│ │ ├── vs_debugdraw_fill_texture.bin.h
│ │ ├── vs_debugdraw_fill_texture.sc
│ │ ├── vs_debugdraw_lines.bin.h
│ │ ├── vs_debugdraw_lines.sc
│ │ ├── vs_debugdraw_lines_stipple.bin.h
│ │ └── vs_debugdraw_lines_stipple.sc
│ ├── entry/
│ │ ├── cmd.cpp
│ │ ├── cmd.h
│ │ ├── dbg.h
│ │ ├── dialog.cpp
│ │ ├── dialog.h
│ │ ├── dialog_darwin.mm
│ │ ├── entry.cpp
│ │ ├── entry.h
│ │ ├── entry_android.cpp
│ │ ├── entry_glfw.cpp
│ │ ├── entry_html5.cpp
│ │ ├── entry_ios.mm
│ │ ├── entry_noop.cpp
│ │ ├── entry_osx.mm
│ │ ├── entry_p.h
│ │ ├── entry_sdl.cpp
│ │ ├── entry_windows.cpp
│ │ ├── entry_winrt.cx
│ │ ├── entry_x11.cpp
│ │ ├── input.cpp
│ │ └── input.h
│ ├── font/
│ │ ├── font_manager.cpp
│ │ ├── font_manager.h
│ │ ├── fs_font_basic.bin.h
│ │ ├── fs_font_basic.sc
│ │ ├── fs_font_distance_field.sc
│ │ ├── fs_font_distance_field_drop_shadow.sc
│ │ ├── fs_font_distance_field_drop_shadow_image.sc
│ │ ├── fs_font_distance_field_outline.sc
│ │ ├── fs_font_distance_field_outline_drop_shadow_image.sc
│ │ ├── fs_font_distance_field_outline_image.sc
│ │ ├── fs_font_distance_field_subpixel.sc
│ │ ├── makefile
│ │ ├── text_buffer_manager.cpp
│ │ ├── text_buffer_manager.h
│ │ ├── text_metrics.cpp
│ │ ├── text_metrics.h
│ │ ├── utf8.cpp
│ │ ├── utf8.h
│ │ ├── varying.def.sc
│ │ ├── vs_font_basic.bin.h
│ │ ├── vs_font_basic.sc
│ │ ├── vs_font_distance_field.bin.h
│ │ ├── vs_font_distance_field.sc
│ │ ├── vs_font_distance_field_drop_shadow.bin.h
│ │ ├── vs_font_distance_field_drop_shadow.sc
│ │ ├── vs_font_distance_field_drop_shadow_image.bin.h
│ │ ├── vs_font_distance_field_drop_shadow_image.sc
│ │ ├── vs_font_distance_field_outline.bin.h
│ │ ├── vs_font_distance_field_outline.sc
│ │ ├── vs_font_distance_field_outline_drop_shadow_image.bin.h
│ │ ├── vs_font_distance_field_outline_drop_shadow_image.sc
│ │ ├── vs_font_distance_field_outline_image.bin.h
│ │ ├── vs_font_distance_field_outline_image.sc
│ │ ├── vs_font_distance_field_subpixel.bin.h
│ │ └── vs_font_distance_field_subpixel.sc
│ ├── imgui/
│ │ ├── fs_imgui_image.bin.h
│ │ ├── fs_imgui_image.sc
│ │ ├── fs_ocornut_imgui.bin.h
│ │ ├── fs_ocornut_imgui.sc
│ │ ├── imgui.cpp
│ │ ├── imgui.h
│ │ ├── makefile
│ │ ├── varying.def.sc
│ │ ├── vs_imgui_image.bin.h
│ │ ├── vs_imgui_image.sc
│ │ ├── vs_ocornut_imgui.bin.h
│ │ └── vs_ocornut_imgui.sc
│ ├── nanovg/
│ │ ├── fontstash.h
│ │ ├── fs_nanovg_fill.sc
│ │ ├── makefile
│ │ ├── nanovg.h
│ │ ├── nanovg_bgfx.cpp
│ │ ├── nanovg_bgfx.h
│ │ ├── varying.def.sc
│ │ ├── vs_nanovg_fill.bin.h
│ │ └── vs_nanovg_fill.sc
│ ├── nativefiledialog/
│ │ ├── nfd.cpp
│ │ ├── nfd.h
│ │ ├── nfd_cocoa.mm
│ │ ├── nfd_gtk.cpp
│ │ ├── nfd_ios.mm
│ │ └── nfd_win.cpp
│ └── ps/
│ ├── fs_particle.bin.h
│ ├── fs_particle.sc
│ ├── makefile
│ ├── particle_system.cpp
│ ├── particle_system.h
│ ├── varying.def.sc
│ ├── vs_particle.bin.h
│ └── vs_particle.sc
├── runtime/
│ ├── ios-info.plist
│ ├── osx-info.plist
│ └── tvos-info.plist
└── vistual-shader-graph/
├── user_engine.cpp
├── user_engine.h
├── vsg_entry.cpp
├── vsg_global.cpp
├── vsg_global.h
├── include/
│ └── shader.h
├── shader_online/
│ ├── shader_complie/
│ │ ├── code_generate.h
│ │ ├── code_rampcolor_byte.cpp
│ │ ├── code_rampcolor_byte.h
│ │ └── slot_type.cpp
│ ├── shader_core/
│ │ ├── config.h
│ │ ├── lerp.h
│ │ ├── rect.cpp
│ │ ├── rect.h
│ │ ├── shader_def.h
│ │ ├── stack_vector.h
│ │ ├── util_enum.h
│ │ ├── vector.cpp
│ │ └── vector.h
│ ├── shader_editor/
│ │ ├── alt_slot_names.cpp
│ │ ├── alt_slot_names.h
│ │ ├── enum.h
│ │ ├── event.cpp
│ │ ├── event.h
│ │ ├── glfw_callbacks.cpp
│ │ ├── glfw_callbacks.h
│ │ ├── graph_display.h
│ │ ├── main_window.cpp
│ │ ├── main_window.h
│ │ ├── modal_curve_editor.cpp
│ │ ├── modal_curve_editor.h
│ │ ├── modal_ramp_color_pick.cpp
│ │ ├── modal_ramp_color_pick.h
│ │ ├── node_geometry.cpp
│ │ ├── node_geometry.h
│ │ ├── platform.cpp
│ │ ├── platform.h
│ │ ├── selection.cpp
│ │ ├── selection.h
│ │ ├── shared_state.cpp
│ │ ├── shared_state.h
│ │ ├── subwindow_alert.cpp
│ │ ├── subwindow_alert.h
│ │ ├── subwindow_debug.cpp
│ │ ├── subwindow_debug.h
│ │ ├── subwindow_debug_shader_text.cpp
│ │ ├── subwindow_graph.cpp
│ │ ├── subwindow_graph.h
│ │ ├── subwindow_node_list.cpp
│ │ ├── subwindow_node_list.h
│ │ ├── subwindow_param_editor.cpp
│ │ ├── subwindow_param_editor.h
│ │ ├── subwindow_shader_text.h
│ │ ├── undo.cpp
│ │ ├── undo.h
│ │ ├── wrapper_glfw_func.cpp
│ │ ├── wrapper_glfw_func.h
│ │ ├── wrapper_glfw_window.cpp
│ │ ├── wrapper_glfw_window.h
│ │ └── wrapper_imgui_func.h
│ └── shader_graph/
│ ├── curves.cpp
│ ├── curves.h
│ ├── ext_base64.h
│ ├── graph.cpp
│ ├── graph.h
│ ├── node.h
│ ├── node_enums.cpp
│ ├── node_enums.h
│ ├── node_id.h
│ ├── node_type.cpp
│ ├── node_type.h
│ ├── ramp.cpp
│ ├── ramp.h
│ ├── serialize.cpp
│ ├── serialize.h
│ ├── slot.cpp
│ ├── slot.h
│ ├── slot_id.cpp
│ └── slot_id.h
├── shaderc/
│ ├── shaderc.h
│ ├── shaderc_glsl.cpp
│ ├── shaderc_hlsl.cpp
│ ├── shaderc_metal.cpp
│ ├── shaderc_pssl.cpp
│ └── shaderc_spirv.cpp
└── user_engine/
├── BaseDefine.h
├── Light.h
├── Mesh.h
├── MeshFilter.cpp
├── MeshFilter.h
├── MeshUtil.cpp
├── MeshUtil.h
├── Object.h
├── Scene.cpp
├── Scene.h
├── ShaderMaterialDef.h
├── Sky.cpp
├── Sky.h
└── Sphere.h