[graphics] tie generic (#1341)

* [gtie] tie inst and proto functions

* first chain input to generic ee looks good

* m

* works

* ugh

* add tie generic

* rm debug print

* rm generic ties from fr3
This commit is contained in:
water111
2022-04-29 23:44:53 -04:00
committed by GitHub
parent 08d701bb26
commit a51536de8d
26 changed files with 5513 additions and 52 deletions
+29 -2
View File
@@ -320,6 +320,29 @@ extern void link();
namespace shadow_xform_verts {
extern void link();
}
namespace draw_inline_array_instance_tie {
extern void link();
}
namespace draw_inline_array_prototype_tie_generic_asm {
extern void link();
}
namespace generic_tie_dma_to_spad_sync {
extern void link();
}
namespace generic_envmap_dproc {
extern void link();
}
namespace generic_interp_dproc {
extern void link();
}
namespace generic_no_light_dproc {
extern void link();
}
namespace generic_tie_convert {
extern void link();
}
LinkedFunctionTable gLinkedFunctionTable;
Rng gRng;
std::unordered_map<std::string, std::vector<void (*)()>> gMips2CLinkCallbacks = {
@@ -361,7 +384,8 @@ std::unordered_map<std::string, std::vector<void (*)()>> gMips2CLinkCallbacks =
high_speed_reject::link}},
{"generic-effect",
{generic_prepare_dma_double::link, generic_light_proc::link, generic_envmap_proc::link,
generic_prepare_dma_single::link}},
generic_prepare_dma_single::link, generic_envmap_dproc::link, generic_interp_dproc::link,
generic_no_light_dproc::link}},
{"ripple",
{ripple_execute_init::link, ripple_create_wave_table::link, ripple_apply_wave_table::link,
ripple_matrix_scale::link}},
@@ -373,7 +397,10 @@ std::unordered_map<std::string, std::vector<void (*)()>> gMips2CLinkCallbacks =
shadow_find_double_edges::link, shadow_find_facing_double_tris::link,
shadow_find_single_edges::link, shadow_find_facing_single_tris::link, shadow_init_vars::link,
shadow_scissor_top::link, shadow_scissor_edges::link, shadow_calc_dual_verts::link,
shadow_xform_verts::link}}};
shadow_xform_verts::link}},
{"tie-methods",
{draw_inline_array_instance_tie::link, draw_inline_array_prototype_tie_generic_asm::link}},
{"generic-tie", {generic_tie_dma_to_spad_sync::link, generic_tie_convert::link}}};
void LinkedFunctionTable::reg(const std::string& name, u64 (*exec)(void*), u32 stack_size) {
const auto& it = m_executes.insert({name, {exec, Ptr<u8>()}});