From: Zebediah Figura zfigura@codeweavers.com
And its dependencies. --- dlls/wined3d/wined3d_gl.h | 111 +++++++++++++++++++++++++++++++++ dlls/wined3d/wined3d_private.h | 109 -------------------------------- 2 files changed, 111 insertions(+), 109 deletions(-)
diff --git a/dlls/wined3d/wined3d_gl.h b/dlls/wined3d/wined3d_gl.h index 7b6fa50c5f0..e9e422a1ab4 100644 --- a/dlls/wined3d/wined3d_gl.h +++ b/dlls/wined3d/wined3d_gl.h @@ -24,7 +24,12 @@ #ifndef __WINE_WINED3D_GL_H #define __WINE_WINED3D_GL_H
+#define WINE_GLAPI __stdcall + +#include <stdint.h> + #include "wine/wgl.h" +#include "wine/wgl_driver.h"
#define GL_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI 0x8837 /* not in the gl spec */
@@ -227,4 +232,110 @@ enum wined3d_gl_extension
WINED3D_GL_EXT_COUNT, }; + +struct wined3d_fbo_ops +{ + GLboolean (WINE_GLAPI *glIsRenderbuffer)(GLuint renderbuffer); + void (WINE_GLAPI *glBindRenderbuffer)(GLenum target, GLuint renderbuffer); + void (WINE_GLAPI *glDeleteRenderbuffers)(GLsizei n, const GLuint *renderbuffers); + void (WINE_GLAPI *glGenRenderbuffers)(GLsizei n, GLuint *renderbuffers); + void (WINE_GLAPI *glRenderbufferStorage)(GLenum target, GLenum internalformat, + GLsizei width, GLsizei height); + void (WINE_GLAPI *glRenderbufferStorageMultisample)(GLenum target, GLsizei samples, + GLenum internalformat, GLsizei width, GLsizei height); + void (WINE_GLAPI *glGetRenderbufferParameteriv)(GLenum target, GLenum pname, GLint *params); + GLboolean (WINE_GLAPI *glIsFramebuffer)(GLuint framebuffer); + void (WINE_GLAPI *glBindFramebuffer)(GLenum target, GLuint framebuffer); + void (WINE_GLAPI *glDeleteFramebuffers)(GLsizei n, const GLuint *framebuffers); + void (WINE_GLAPI *glGenFramebuffers)(GLsizei n, GLuint *framebuffers); + GLenum (WINE_GLAPI *glCheckFramebufferStatus)(GLenum target); + void (WINE_GLAPI *glFramebufferTexture)(GLenum target, GLenum attachment, + GLuint texture, GLint level); + void (WINE_GLAPI *glFramebufferTexture1D)(GLenum target, GLenum attachment, + GLenum textarget, GLuint texture, GLint level); + void (WINE_GLAPI *glFramebufferTexture2D)(GLenum target, GLenum attachment, + GLenum textarget, GLuint texture, GLint level); + void (WINE_GLAPI *glFramebufferTexture3D)(GLenum target, GLenum attachment, + GLenum textarget, GLuint texture, GLint level, GLint layer); + void (WINE_GLAPI *glFramebufferTextureLayer)(GLenum target, GLenum attachment, + GLuint texture, GLint level, GLint layer); + void (WINE_GLAPI *glFramebufferRenderbuffer)(GLenum target, GLenum attachment, + GLenum renderbuffertarget, GLuint renderbuffer); + void (WINE_GLAPI *glGetFramebufferAttachmentParameteriv)(GLenum target, GLenum attachment, + GLenum pname, GLint *params); + void (WINE_GLAPI *glBlitFramebuffer)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, + GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); + void (WINE_GLAPI *glGenerateMipmap)(GLenum target); +}; + +struct wined3d_gl_limits +{ + unsigned int buffers; + unsigned int lights; + unsigned int textures; + unsigned int texture_coords; + unsigned int uniform_blocks[WINED3D_SHADER_TYPE_COUNT]; + unsigned int samplers[WINED3D_SHADER_TYPE_COUNT]; + unsigned int graphics_samplers; + unsigned int combined_samplers; + unsigned int general_combiners; + unsigned int user_clip_distances; + unsigned int texture_size; + unsigned int texture3d_size; + unsigned int anisotropy; + float shininess; + unsigned int samples; + unsigned int vertex_attribs; + + unsigned int texture_buffer_offset_alignment; + + unsigned int framebuffer_width; + unsigned int framebuffer_height; + unsigned int viewport_subpixel_bits; + + unsigned int glsl_varyings; + unsigned int glsl_vs_float_constants; + unsigned int glsl_ps_float_constants; + + unsigned int arb_vs_float_constants; + unsigned int arb_vs_native_constants; + unsigned int arb_vs_instructions; + unsigned int arb_vs_temps; + unsigned int arb_ps_float_constants; + unsigned int arb_ps_local_constants; + unsigned int arb_ps_native_constants; + unsigned int arb_ps_instructions; + unsigned int arb_ps_temps; +}; + +#define WINED3D_QUIRK_ARB_VS_OFFSET_LIMIT 0x00000001 +#define WINED3D_QUIRK_GLSL_CLIP_VARYING 0x00000004 +#define WINED3D_QUIRK_ALLOWS_SPECULAR_ALPHA 0x00000008 +#define WINED3D_QUIRK_NV_CLIP_BROKEN 0x00000010 +#define WINED3D_QUIRK_FBO_TEX_UPDATE 0x00000020 +#define WINED3D_QUIRK_BROKEN_RGBA16 0x00000040 +#define WINED3D_QUIRK_INFO_LOG_SPAM 0x00000080 +#define WINED3D_QUIRK_LIMITED_TEX_FILTERING 0x00000100 +#define WINED3D_QUIRK_BROKEN_ARB_FOG 0x00000200 +#define WINED3D_QUIRK_NO_INDEPENDENT_BIT_DEPTHS 0x00000400 + +struct wined3d_gl_info +{ + unsigned int selected_gl_version; + unsigned int glsl_version; + struct wined3d_gl_limits limits; + unsigned int reserved_glsl_constants, reserved_arb_constants; + uint32_t quirks; + BOOL supported[WINED3D_GL_EXT_COUNT]; + GLint wrap_lookup[WINED3D_TADDRESS_MIRROR_ONCE - WINED3D_TADDRESS_WRAP + 1]; + float filling_convention_offset; + + HGLRC (WINAPI *p_wglCreateContextAttribsARB)(HDC dc, HGLRC share, const GLint *attribs); + struct opengl_funcs gl_ops; + struct wined3d_fbo_ops fbo_ops; + + void (WINE_GLAPI *p_glDisableWINE)(GLenum cap); + void (WINE_GLAPI *p_glEnableWINE)(GLenum cap); +}; + #endif /* __WINE_WINED3D_GL */ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 2ddb2271d9d..1d81f6c3c0d 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -25,8 +25,6 @@ #ifndef __WINE_WINED3D_PRIVATE_H #define __WINE_WINED3D_PRIVATE_H
-#define WINE_GLAPI __stdcall - #include <assert.h> #include <stdarg.h> #include <stdbool.h> @@ -54,7 +52,6 @@ #include "wined3d_gl.h" #include "wine/list.h" #include "wine/rbtree.h" -#include "wine/wgl_driver.h"
static inline size_t align(size_t addr, size_t alignment) { @@ -89,18 +86,6 @@ static inline const char *wined3d_get_line(const char **ptr, const char *end)
#define MAKEDWORD_VERSION(maj, min) (((maj & 0xffffu) << 16) | (min & 0xffffu))
-/* Driver quirks */ -#define WINED3D_QUIRK_ARB_VS_OFFSET_LIMIT 0x00000001 -#define WINED3D_QUIRK_GLSL_CLIP_VARYING 0x00000004 -#define WINED3D_QUIRK_ALLOWS_SPECULAR_ALPHA 0x00000008 -#define WINED3D_QUIRK_NV_CLIP_BROKEN 0x00000010 -#define WINED3D_QUIRK_FBO_TEX_UPDATE 0x00000020 -#define WINED3D_QUIRK_BROKEN_RGBA16 0x00000040 -#define WINED3D_QUIRK_INFO_LOG_SPAM 0x00000080 -#define WINED3D_QUIRK_LIMITED_TEX_FILTERING 0x00000100 -#define WINED3D_QUIRK_BROKEN_ARB_FOG 0x00000200 -#define WINED3D_QUIRK_NO_INDEPENDENT_BIT_DEPTHS 0x00000400 - #define WINED3D_MAX_DIRTY_REGION_COUNT 7
#define WINED3D_ALPHA_TO_COVERAGE_ENABLE MAKEFOURCC('A','2','M','1') @@ -2881,105 +2866,11 @@ enum wined3d_pci_device CARD_INTEL_UHD630_2 = 0x3e91, };
-struct wined3d_fbo_ops -{ - GLboolean (WINE_GLAPI *glIsRenderbuffer)(GLuint renderbuffer); - void (WINE_GLAPI *glBindRenderbuffer)(GLenum target, GLuint renderbuffer); - void (WINE_GLAPI *glDeleteRenderbuffers)(GLsizei n, const GLuint *renderbuffers); - void (WINE_GLAPI *glGenRenderbuffers)(GLsizei n, GLuint *renderbuffers); - void (WINE_GLAPI *glRenderbufferStorage)(GLenum target, GLenum internalformat, - GLsizei width, GLsizei height); - void (WINE_GLAPI *glRenderbufferStorageMultisample)(GLenum target, GLsizei samples, - GLenum internalformat, GLsizei width, GLsizei height); - void (WINE_GLAPI *glGetRenderbufferParameteriv)(GLenum target, GLenum pname, GLint *params); - GLboolean (WINE_GLAPI *glIsFramebuffer)(GLuint framebuffer); - void (WINE_GLAPI *glBindFramebuffer)(GLenum target, GLuint framebuffer); - void (WINE_GLAPI *glDeleteFramebuffers)(GLsizei n, const GLuint *framebuffers); - void (WINE_GLAPI *glGenFramebuffers)(GLsizei n, GLuint *framebuffers); - GLenum (WINE_GLAPI *glCheckFramebufferStatus)(GLenum target); - void (WINE_GLAPI *glFramebufferTexture)(GLenum target, GLenum attachment, - GLuint texture, GLint level); - void (WINE_GLAPI *glFramebufferTexture1D)(GLenum target, GLenum attachment, - GLenum textarget, GLuint texture, GLint level); - void (WINE_GLAPI *glFramebufferTexture2D)(GLenum target, GLenum attachment, - GLenum textarget, GLuint texture, GLint level); - void (WINE_GLAPI *glFramebufferTexture3D)(GLenum target, GLenum attachment, - GLenum textarget, GLuint texture, GLint level, GLint layer); - void (WINE_GLAPI *glFramebufferTextureLayer)(GLenum target, GLenum attachment, - GLuint texture, GLint level, GLint layer); - void (WINE_GLAPI *glFramebufferRenderbuffer)(GLenum target, GLenum attachment, - GLenum renderbuffertarget, GLuint renderbuffer); - void (WINE_GLAPI *glGetFramebufferAttachmentParameteriv)(GLenum target, GLenum attachment, - GLenum pname, GLint *params); - void (WINE_GLAPI *glBlitFramebuffer)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, - GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); - void (WINE_GLAPI *glGenerateMipmap)(GLenum target); -}; - -struct wined3d_gl_limits -{ - UINT buffers; - UINT lights; - UINT textures; - UINT texture_coords; - unsigned int uniform_blocks[WINED3D_SHADER_TYPE_COUNT]; - unsigned int samplers[WINED3D_SHADER_TYPE_COUNT]; - unsigned int graphics_samplers; - unsigned int combined_samplers; - UINT general_combiners; - UINT user_clip_distances; - unsigned int texture_size; - UINT texture3d_size; - UINT anisotropy; - float shininess; - UINT samples; - UINT vertex_attribs; - - unsigned int texture_buffer_offset_alignment; - - unsigned int framebuffer_width; - unsigned int framebuffer_height; - unsigned int viewport_subpixel_bits; - - UINT glsl_varyings; - UINT glsl_vs_float_constants; - UINT glsl_ps_float_constants; - - UINT arb_vs_float_constants; - UINT arb_vs_native_constants; - UINT arb_vs_instructions; - UINT arb_vs_temps; - UINT arb_ps_float_constants; - UINT arb_ps_local_constants; - UINT arb_ps_native_constants; - UINT arb_ps_instructions; - UINT arb_ps_temps; -}; - void wined3d_gl_limits_get_texture_unit_range(const struct wined3d_gl_limits *gl_limits, enum wined3d_shader_type shader_type, unsigned int *base, unsigned int *count) DECLSPEC_HIDDEN; void wined3d_gl_limits_get_uniform_block_range(const struct wined3d_gl_limits *gl_limits, enum wined3d_shader_type shader_type, unsigned int *base, unsigned int *count) DECLSPEC_HIDDEN;
-struct wined3d_gl_info -{ - unsigned int selected_gl_version; - unsigned int glsl_version; - struct wined3d_gl_limits limits; - DWORD reserved_glsl_constants, reserved_arb_constants; - DWORD quirks; - BOOL supported[WINED3D_GL_EXT_COUNT]; - GLint wrap_lookup[WINED3D_TADDRESS_MIRROR_ONCE - WINED3D_TADDRESS_WRAP + 1]; - float filling_convention_offset; - - HGLRC (WINAPI *p_wglCreateContextAttribsARB)(HDC dc, HGLRC share, const GLint *attribs); - struct opengl_funcs gl_ops; - struct wined3d_fbo_ops fbo_ops; - - void (WINE_GLAPI *p_glDisableWINE)(GLenum cap); - void (WINE_GLAPI *p_glEnableWINE)(GLenum cap); -}; - static inline BOOL wined3d_fence_supported(const struct wined3d_gl_info *gl_info) { return gl_info->supported[ARB_SYNC] || gl_info->supported[NV_FENCE] || gl_info->supported[APPLE_FENCE];
From: Zebediah Figura zfigura@codeweavers.com
--- dlls/wined3d/wined3d_gl.h | 32 ++++++++++++++++++++++++++++++++ dlls/wined3d/wined3d_private.h | 33 --------------------------------- 2 files changed, 32 insertions(+), 33 deletions(-)
diff --git a/dlls/wined3d/wined3d_gl.h b/dlls/wined3d/wined3d_gl.h index e9e422a1ab4..33f51944977 100644 --- a/dlls/wined3d/wined3d_gl.h +++ b/dlls/wined3d/wined3d_gl.h @@ -26,6 +26,7 @@
#define WINE_GLAPI __stdcall
+#include <stdbool.h> #include <stdint.h>
#include "wine/wgl.h" @@ -308,6 +309,11 @@ struct wined3d_gl_limits unsigned int arb_ps_temps; };
+void wined3d_gl_limits_get_texture_unit_range(const struct wined3d_gl_limits *gl_limits, + enum wined3d_shader_type shader_type, unsigned int *base, unsigned int *count); +void wined3d_gl_limits_get_uniform_block_range(const struct wined3d_gl_limits *gl_limits, + enum wined3d_shader_type shader_type, unsigned int *base, unsigned int *count); + #define WINED3D_QUIRK_ARB_VS_OFFSET_LIMIT 0x00000001 #define WINED3D_QUIRK_GLSL_CLIP_VARYING 0x00000004 #define WINED3D_QUIRK_ALLOWS_SPECULAR_ALPHA 0x00000008 @@ -338,4 +344,30 @@ struct wined3d_gl_info void (WINE_GLAPI *p_glEnableWINE)(GLenum cap); };
+void install_gl_compat_wrapper(struct wined3d_gl_info *gl_info, enum wined3d_gl_extension ext); +void print_glsl_info_log(const struct wined3d_gl_info *gl_info, GLuint id, BOOL program); +void shader_glsl_validate_link(const struct wined3d_gl_info *gl_info, GLuint program); +GLenum wined3d_buffer_gl_binding_from_bind_flags(const struct wined3d_gl_info *gl_info, uint32_t bind_flags); +void wined3d_check_gl_call(const struct wined3d_gl_info *gl_info, + const char *file, unsigned int line, const char *name); + +static inline bool wined3d_fence_supported(const struct wined3d_gl_info *gl_info) +{ + return gl_info->supported[ARB_SYNC] || gl_info->supported[NV_FENCE] || gl_info->supported[APPLE_FENCE]; +} + +/* Checking of API calls */ +/* --------------------- */ +#ifndef WINE_NO_DEBUG_MSGS +#define checkGLcall(A) \ + do \ + { \ + if (__WINE_IS_DEBUG_ON(_ERR, &__wine_dbch_d3d) \ + && !gl_info->supported[ARB_DEBUG_OUTPUT]) \ + wined3d_check_gl_call(gl_info, __FILE__, __LINE__, A); \ + } while(0) +#else +#define checkGLcall(A) do {} while(0) +#endif + #endif /* __WINE_WINED3D_GL */ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 1d81f6c3c0d..1b20bc77185 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -1637,22 +1637,6 @@ static inline void wined3d_colour_srgb_from_linear(struct wined3d_color *colour_ colour_srgb->a = colour->a; }
-void wined3d_check_gl_call(const struct wined3d_gl_info *gl_info, - const char *file, unsigned int line, const char *name) DECLSPEC_HIDDEN; - -/* Checking of API calls */ -/* --------------------- */ -#ifndef WINE_NO_DEBUG_MSGS -#define checkGLcall(A) \ -do { \ - if (__WINE_IS_DEBUG_ON(_ERR, &__wine_dbch_d3d) \ - && !gl_info->supported[ARB_DEBUG_OUTPUT]) \ - wined3d_check_gl_call(gl_info, __FILE__, __LINE__, A); \ -} while(0) -#else -#define checkGLcall(A) do {} while(0) -#endif - struct wined3d_bo { /* client_map_count and map_ptr are accessed from both the client and CS @@ -2866,16 +2850,6 @@ enum wined3d_pci_device CARD_INTEL_UHD630_2 = 0x3e91, };
-void wined3d_gl_limits_get_texture_unit_range(const struct wined3d_gl_limits *gl_limits, - enum wined3d_shader_type shader_type, unsigned int *base, unsigned int *count) DECLSPEC_HIDDEN; -void wined3d_gl_limits_get_uniform_block_range(const struct wined3d_gl_limits *gl_limits, - enum wined3d_shader_type shader_type, unsigned int *base, unsigned int *count) DECLSPEC_HIDDEN; - -static inline BOOL wined3d_fence_supported(const struct wined3d_gl_info *gl_info) -{ - return gl_info->supported[ARB_SYNC] || gl_info->supported[NV_FENCE] || gl_info->supported[APPLE_FENCE]; -} - /* The driver names reflect the lowest GPU supported * by a certain driver, so DRIVER_AMD_R300 supports * R3xx, R4xx and R5xx GPUs. */ @@ -3125,8 +3099,6 @@ UINT64 adapter_adjust_memory(struct wined3d_adapter *adapter, INT64 amount) DECL BOOL wined3d_caps_gl_ctx_test_viewport_subpixel_bits(struct wined3d_caps_gl_ctx *ctx) DECLSPEC_HIDDEN; bool wined3d_caps_gl_ctx_test_filling_convention(struct wined3d_caps_gl_ctx *ctx, float offset) DECLSPEC_HIDDEN;
-void install_gl_compat_wrapper(struct wined3d_gl_info *gl_info, enum wined3d_gl_extension ext) DECLSPEC_HIDDEN; - enum wined3d_projection_type { WINED3D_PROJECTION_NONE = 0, @@ -4650,8 +4622,6 @@ static inline const struct wined3d_buffer_gl *wined3d_buffer_gl_const(const stru return CONTAINING_RECORD(buffer, struct wined3d_buffer_gl, b); }
-GLenum wined3d_buffer_gl_binding_from_bind_flags(const struct wined3d_gl_info *gl_info, - uint32_t bind_flags) DECLSPEC_HIDDEN; HRESULT wined3d_buffer_gl_init(struct wined3d_buffer_gl *buffer_gl, struct wined3d_device *device, const struct wined3d_buffer_desc *desc, const struct wined3d_sub_resource_data *data, void *parent, const struct wined3d_parent_ops *parent_ops) DECLSPEC_HIDDEN; @@ -5273,9 +5243,6 @@ struct ps_np2fixup_info { WORD num_consts; };
-void print_glsl_info_log(const struct wined3d_gl_info *gl_info, GLuint id, BOOL program) DECLSPEC_HIDDEN; -void shader_glsl_validate_link(const struct wined3d_gl_info *gl_info, GLuint program) DECLSPEC_HIDDEN; - struct wined3d_palette { LONG ref;
From: Zebediah Figura zfigura@codeweavers.com
--- dlls/wined3d/wined3d_private.h | 1 - 1 file changed, 1 deletion(-)
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 1b20bc77185..656df92018f 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -205,7 +205,6 @@ struct wined3d_d3d_limits typedef void (WINE_GLAPI *wined3d_ffp_attrib_func)(const void *data); typedef void (WINE_GLAPI *wined3d_ffp_texcoord_func)(GLenum unit, const void *data); typedef void (WINE_GLAPI *wined3d_generic_attrib_func)(GLuint idx, const void *data); -extern wined3d_ffp_attrib_func specular_func_3ubv DECLSPEC_HIDDEN;
struct wined3d_ffp_attrib_ops {
From: Zebediah Figura zfigura@codeweavers.com
They are quite GL-specific. --- dlls/wined3d/adapter_gl.c | 6 +++--- dlls/wined3d/context_gl.c | 6 ++++-- dlls/wined3d/wined3d_gl.h | 15 +++++++++++++++ dlls/wined3d/wined3d_private.h | 18 ++---------------- 4 files changed, 24 insertions(+), 21 deletions(-)
diff --git a/dlls/wined3d/adapter_gl.c b/dlls/wined3d/adapter_gl.c index f1216ddd89b..5fda5391233 100644 --- a/dlls/wined3d/adapter_gl.c +++ b/dlls/wined3d/adapter_gl.c @@ -4018,9 +4018,9 @@ static void WINE_GLAPI generic_float16_4(GLuint idx, const void *data)
static void wined3d_adapter_init_ffp_attrib_ops(struct wined3d_adapter_gl *adapter_gl) { - const struct wined3d_gl_info *gl_info = &adapter_gl->gl_info; - struct wined3d_d3d_info *d3d_info = &adapter_gl->a.d3d_info; - struct wined3d_ffp_attrib_ops *ops = &d3d_info->ffp_attrib_ops; + const struct wined3d_d3d_info *d3d_info = &adapter_gl->a.d3d_info; + struct wined3d_gl_info *gl_info = &adapter_gl->gl_info; + struct wined3d_ffp_attrib_ops *ops = &gl_info->ffp_attrib_ops; unsigned int i;
for (i = 0; i < WINED3D_FFP_EMIT_COUNT; ++i) diff --git a/dlls/wined3d/context_gl.c b/dlls/wined3d/context_gl.c index c2ebca8e99f..c1a6538d6ff 100644 --- a/dlls/wined3d/context_gl.c +++ b/dlls/wined3d/context_gl.c @@ -4666,16 +4666,18 @@ static void wined3d_context_gl_draw_primitive_arrays(struct wined3d_context_gl * const struct wined3d_state *state, const void *idx_data, unsigned int idx_size, int base_vertex_idx, unsigned int start_idx, unsigned int count, unsigned int start_instance, unsigned int instance_count) { - const struct wined3d_ffp_attrib_ops *ops = &context_gl->c.d3d_info->ffp_attrib_ops; GLenum idx_type = idx_size == 2 ? GL_UNSIGNED_SHORT : GL_UNSIGNED_INT; const struct wined3d_stream_info *si = &context_gl->c.stream_info; GLenum mode = gl_primitive_type_from_d3d(state->primitive_type); const struct wined3d_gl_info *gl_info = context_gl->gl_info; unsigned int instanced_elements[ARRAY_SIZE(si->elements)]; + const struct wined3d_ffp_attrib_ops *ops; unsigned int instanced_element_count = 0; const void *indices; unsigned int i, j;
+ ops = &gl_info->ffp_attrib_ops; + indices = (const char *)idx_data + idx_size * start_idx;
if (!instance_count) @@ -4840,7 +4842,7 @@ static void draw_primitive_immediate_mode(struct wined3d_context_gl *context_gl, if (idx_size) idx_data = (uint8_t *)wined3d_buffer_load_sysmem(state->index_buffer, &context_gl->c) + state->index_offset;
- ops = &d3d_info->ffp_attrib_ops; + ops = &gl_info->ffp_attrib_ops;
gl_info->gl_ops.gl.p_glBegin(gl_primitive_type_from_d3d(state->primitive_type));
diff --git a/dlls/wined3d/wined3d_gl.h b/dlls/wined3d/wined3d_gl.h index 33f51944977..a4b8e378f67 100644 --- a/dlls/wined3d/wined3d_gl.h +++ b/dlls/wined3d/wined3d_gl.h @@ -325,6 +325,20 @@ void wined3d_gl_limits_get_uniform_block_range(const struct wined3d_gl_limits *g #define WINED3D_QUIRK_BROKEN_ARB_FOG 0x00000200 #define WINED3D_QUIRK_NO_INDEPENDENT_BIT_DEPTHS 0x00000400
+typedef void (WINE_GLAPI *wined3d_ffp_attrib_func)(const void *data); +typedef void (WINE_GLAPI *wined3d_ffp_texcoord_func)(GLenum unit, const void *data); +typedef void (WINE_GLAPI *wined3d_generic_attrib_func)(GLuint idx, const void *data); + +struct wined3d_ffp_attrib_ops +{ + wined3d_ffp_attrib_func position[WINED3D_FFP_EMIT_COUNT]; + wined3d_ffp_attrib_func diffuse[WINED3D_FFP_EMIT_COUNT]; + wined3d_ffp_attrib_func specular[WINED3D_FFP_EMIT_COUNT]; + wined3d_ffp_attrib_func normal[WINED3D_FFP_EMIT_COUNT]; + wined3d_ffp_texcoord_func texcoord[WINED3D_FFP_EMIT_COUNT]; + wined3d_generic_attrib_func generic[WINED3D_FFP_EMIT_COUNT]; +}; + struct wined3d_gl_info { unsigned int selected_gl_version; @@ -337,6 +351,7 @@ struct wined3d_gl_info float filling_convention_offset;
HGLRC (WINAPI *p_wglCreateContextAttribsARB)(HDC dc, HGLRC share, const GLint *attribs); + struct wined3d_ffp_attrib_ops ffp_attrib_ops; struct opengl_funcs gl_ops; struct wined3d_fbo_ops fbo_ops;
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 656df92018f..2b568fa9d61 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -49,7 +49,6 @@
#include "objbase.h" #include "wine/wined3d.h" -#include "wined3d_gl.h" #include "wine/list.h" #include "wine/rbtree.h"
@@ -145,6 +144,8 @@ enum wined3d_ffp_emit_idx WINED3D_FFP_EMIT_COUNT, };
+#include "wined3d_gl.h" + /* Texture format fixups */
enum fixup_channel_source @@ -202,24 +203,9 @@ struct wined3d_d3d_limits float pointsize_max; };
-typedef void (WINE_GLAPI *wined3d_ffp_attrib_func)(const void *data); -typedef void (WINE_GLAPI *wined3d_ffp_texcoord_func)(GLenum unit, const void *data); -typedef void (WINE_GLAPI *wined3d_generic_attrib_func)(GLuint idx, const void *data); - -struct wined3d_ffp_attrib_ops -{ - wined3d_ffp_attrib_func position[WINED3D_FFP_EMIT_COUNT]; - wined3d_ffp_attrib_func diffuse[WINED3D_FFP_EMIT_COUNT]; - wined3d_ffp_attrib_func specular[WINED3D_FFP_EMIT_COUNT]; - wined3d_ffp_attrib_func normal[WINED3D_FFP_EMIT_COUNT]; - wined3d_ffp_texcoord_func texcoord[WINED3D_FFP_EMIT_COUNT]; - wined3d_generic_attrib_func generic[WINED3D_FFP_EMIT_COUNT]; -}; - struct wined3d_d3d_info { struct wined3d_d3d_limits limits; - struct wined3d_ffp_attrib_ops ffp_attrib_ops; uint32_t wined3d_creation_flags; uint32_t xyzrhw : 1; uint32_t emulated_flatshading : 1;
From: Zebediah Figura zfigura@codeweavers.com
--- dlls/wined3d/wined3d_gl.h | 25 +++++++++++++++++++++++++ dlls/wined3d/wined3d_private.h | 24 ------------------------ 2 files changed, 25 insertions(+), 24 deletions(-)
diff --git a/dlls/wined3d/wined3d_gl.h b/dlls/wined3d/wined3d_gl.h index a4b8e378f67..f4130c72d30 100644 --- a/dlls/wined3d/wined3d_gl.h +++ b/dlls/wined3d/wined3d_gl.h @@ -366,6 +366,31 @@ GLenum wined3d_buffer_gl_binding_from_bind_flags(const struct wined3d_gl_info *g void wined3d_check_gl_call(const struct wined3d_gl_info *gl_info, const char *file, unsigned int line, const char *name);
+struct min_lookup +{ + GLenum mip[WINED3D_TEXF_LINEAR + 1]; +}; + +extern const struct min_lookup minMipLookup[WINED3D_TEXF_LINEAR + 1]; +extern const GLenum magLookup[WINED3D_TEXF_LINEAR + 1]; + +static inline GLenum wined3d_gl_mag_filter(enum wined3d_texture_filter_type mag_filter) +{ + return magLookup[mag_filter]; +} + +static inline GLenum wined3d_gl_min_mip_filter(enum wined3d_texture_filter_type min_filter, + enum wined3d_texture_filter_type mip_filter) +{ + return minMipLookup[min_filter].mip[mip_filter]; +} + +GLenum wined3d_gl_compare_func(enum wined3d_cmp_func f); + +const char *debug_fboattachment(GLenum attachment); +const char *debug_fbostatus(GLenum status); +const char *debug_glerror(GLenum error); + static inline bool wined3d_fence_supported(const struct wined3d_gl_info *gl_info) { return gl_info->supported[ARB_SYNC] || gl_info->supported[NV_FENCE] || gl_info->supported[APPLE_FENCE]; diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 2b568fa9d61..c2c3e4720b7 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -297,19 +297,9 @@ static inline enum complex_fixup get_complex_fixup(struct color_fixup_desc fixup #define MAX_TGSM_REGISTERS 8192 #define MAX_VERTEX_BLENDS 4
-struct min_lookup -{ - GLenum mip[WINED3D_TEXF_LINEAR + 1]; -}; - -extern const struct min_lookup minMipLookup[WINED3D_TEXF_LINEAR + 1] DECLSPEC_HIDDEN; -extern const GLenum magLookup[WINED3D_TEXF_LINEAR + 1] DECLSPEC_HIDDEN; - static const uint32_t WINED3D_READ_ONLY_BIND_MASK = WINED3D_BIND_VERTEX_BUFFER | WINED3D_BIND_INDEX_BUFFER | WINED3D_BIND_CONSTANT_BUFFER | WINED3D_BIND_SHADER_RESOURCE | WINED3D_BIND_INDIRECT_BUFFER;
-GLenum wined3d_gl_compare_func(enum wined3d_cmp_func f) DECLSPEC_HIDDEN; - static inline enum wined3d_cmp_func wined3d_sanitize_cmp_func(enum wined3d_cmp_func func) { if (func < WINED3D_CMP_NEVER || func > WINED3D_CMP_ALWAYS) @@ -317,17 +307,6 @@ static inline enum wined3d_cmp_func wined3d_sanitize_cmp_func(enum wined3d_cmp_f return func; }
-static inline GLenum wined3d_gl_mag_filter(enum wined3d_texture_filter_type mag_filter) -{ - return magLookup[mag_filter]; -} - -static inline GLenum wined3d_gl_min_mip_filter(enum wined3d_texture_filter_type min_filter, - enum wined3d_texture_filter_type mip_filter) -{ - return minMipLookup[min_filter].mip[mip_filter]; -} - /* float_16_to_32() and float_32_to_16() convert 16 bit floats in the * FLOAT16 data type to standard C floats and vice versa. They do not * depend on the encoding of the C float, so they are platform independent, @@ -4856,9 +4835,6 @@ const char *debug_d3dtexturefiltertype(enum wined3d_texture_filter_type filter_t const char *debug_d3dtexturestate(enum wined3d_texture_stage_state state) DECLSPEC_HIDDEN; const char *debug_d3dtop(enum wined3d_texture_op d3dtop) DECLSPEC_HIDDEN; const char *debug_d3dtstype(enum wined3d_transform_state tstype) DECLSPEC_HIDDEN; -const char *debug_fboattachment(GLenum attachment) DECLSPEC_HIDDEN; -const char *debug_fbostatus(GLenum status) DECLSPEC_HIDDEN; -const char *debug_glerror(GLenum error) DECLSPEC_HIDDEN; const char *debug_ivec4(const struct wined3d_ivec4 *v) DECLSPEC_HIDDEN; const char *debug_uvec4(const struct wined3d_uvec4 *v) DECLSPEC_HIDDEN; const char *debug_shader_type(enum wined3d_shader_type shader_type) DECLSPEC_HIDDEN;
This merge request was approved by Jan Sikorski.