It may be a little early to worry about virtual calls at this point; I think there's enough time to worry about those when we need them. (And we may not; it's not clear to me how we intend to implement the actual effects, but there seems to be a good chance that the differences between the different effects would largely be expressed as static data.) The more immediate issue I have with this patch is that much of it amounts to being dead code; other than the "clsid" field, none of the information in builtin_effects[] is actually used. On Tue, 27 Jul 2021 at 13:11, Ziqing Hui <zhui(a)codeweavers.com> wrote:
+ for (i = 0; i < ARRAY_SIZE(builtin_effects); ++i) + { + if (IsEqualGUID(effect_id, builtin_effects[i].clsid)) + { + d2d_effect_init_standard_properties(effect, builtin_effects + i); + return; + } + }
By convention, "&builtin_effects[i]" instead of "builtin_effects + i".