This MR has 2 purposes: 1. Get first 3 patches upstreamed. 2. Have the whole patch set to be reviewed to make sure I'm on the correct direction.
It means I'm just going to upstream first 3 patches. The remaining 2 patches are not going to be upstreamed for now. They are for reviewing purpose, to see if I am implementing them in a good way.
So, Nikolay, here are 2 questions: 1. Do first 3 patches (a test patch and 2 patches that implement transform graph) are good to be upstreamed? 2. Am I in a good way for implementing effect drawing?
Some notes: d2d_transform_node struct is not implemented like d2d_brush, because there are user defined draw transforms. Users can have a custom struct, and implement ID2D1DrawTransform interface for that struct. So that in transform graph, we should rely on interface, not concrete struct implementation.
-- v4: https://gitlab.winehq.org/wine/wine/-/merge_requests/635