This is a draft proposal for enabling long types in wined3d.
Its purpose is to share with wined3d maintainers the best way to enable long types. It's not meant to be committed as is (draft MR).
I tried to minimize the number of changes by migrating some types to pure int/unsigned int types.
The net result is not a huge change, but still quite a change: dlls/d3d11/device.c | 6 +- dlls/d3d8/device.c | 4 +- dlls/d3d9/device.c | 4 +- dlls/ddraw/ddraw.c | 4 +- dlls/wined3d/Makefile.in | 1 - dlls/wined3d/adapter_gl.c | 32 ++++----- dlls/wined3d/adapter_vk.c | 18 +++--- dlls/wined3d/arb_program_shader.c | 84 ++++++++++++------------ dlls/wined3d/ati_fragment_shader.c | 4 +- dlls/wined3d/buffer.c | 16 ++--- dlls/wined3d/context_gl.c | 26 ++++---- dlls/wined3d/cs.c | 14 ++-- dlls/wined3d/device.c | 52 +++++++-------- dlls/wined3d/directx.c | 40 ++++++------ dlls/wined3d/glsl_shader.c | 112 ++++++++++++++++---------------- dlls/wined3d/nvidia_texture_shader.c | 12 ++-- dlls/wined3d/palette.c | 14 ++-- dlls/wined3d/query.c | 34 +++++----- dlls/wined3d/resource.c | 12 ++-- dlls/wined3d/sampler.c | 4 +- dlls/wined3d/shader.c | 51 ++++++++------- dlls/wined3d/shader_sm1.c | 12 ++-- dlls/wined3d/shader_sm4.c | 62 +++++++++--------- dlls/wined3d/shader_spirv.c | 4 +- dlls/wined3d/state.c | 84 ++++++++++++------------ dlls/wined3d/stateblock.c | 36 +++++------ dlls/wined3d/surface.c | 32 ++++----- dlls/wined3d/swapchain.c | 85 ++++++++++++------------ dlls/wined3d/texture.c | 60 ++++++++--------- dlls/wined3d/utils.c | 34 +++++----- dlls/wined3d/vertexdeclaration.c | 10 +-- dlls/wined3d/view.c | 26 ++++---- dlls/wined3d/wined3d_main.c | 16 ++--- dlls/wined3d/wined3d_private.h | 122 +++++++++++++++++------------------ include/wine/wined3d.h | 29 +++++---- 35 files changed, 580 insertions(+), 576 deletions(-)
This is a fairly long series as: - long type enabling is done on a file basis instead of the module basis. - I tried to split as much as possible: + global changes (shared across multiple file) + type changes linked to a single file + printf-related changes linked to a single file.
At the implementation level, there's lots of things to be discussed: - choice of integral type (unsigned int/uint32_t/UINT...). I tried to follow Zebediah's guide-lines. Even if there are counter examples. - changing type vs changing printf (there are still areas to tackle if needed), even if some are (IMO) unavoidable (like GetLastError() or HRESULT)
So comments welcome. I likely start next week pushing the first bits.