|
|
|
@ -7983,7 +7983,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
|
|
|
|
|
diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c
|
|
|
|
|
--- a/dlls/wined3d/utils.c
|
|
|
|
|
+++ b/dlls/wined3d/utils.c
|
|
|
|
|
@@ -4543,7 +4543,11 @@ void get_projection_matrix(const struct wined3d_context *context, const struct w
|
|
|
|
|
@@ -4542,7 +4542,11 @@ void get_projection_matrix(const struct wined3d_context *context, const struct w
|
|
|
|
|
float y_offset = context->render_offscreen
|
|
|
|
|
? (center_offset - (2.0f * y) - h) / h
|
|
|
|
|
: (center_offset - (2.0f * y) - h) / -h;
|
|
|
|
@ -7995,7 +7995,7 @@ diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c
|
|
|
|
|
state->render_states[WINED3D_RS_ZENABLE] : WINED3D_ZB_FALSE;
|
|
|
|
|
float z_scale = zenable ? 2.0f : 0.0f;
|
|
|
|
|
float z_offset = zenable ? -1.0f : 0.0f;
|
|
|
|
|
@@ -5340,7 +5344,11 @@ void gen_ffp_frag_op(const struct wined3d_context *context, const struct wined3d
|
|
|
|
|
@@ -5339,7 +5343,11 @@ void gen_ffp_frag_op(const struct wined3d_context *context, const struct wined3d
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -8173,7 +8173,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
UINT rt_count, const struct wined3d_fb_state *fb) DECLSPEC_HIDDEN;
|
|
|
|
|
BOOL context_apply_draw_state(struct wined3d_context *context,
|
|
|
|
|
const struct wined3d_device *device, const struct wined3d_state *state) DECLSPEC_HIDDEN;
|
|
|
|
|
@@ -2354,7 +2412,11 @@ struct wined3d_stream_state
|
|
|
|
|
@@ -2355,7 +2413,11 @@ struct wined3d_stream_state
|
|
|
|
|
struct wined3d_state
|
|
|
|
|
{
|
|
|
|
|
DWORD flags;
|
|
|
|
@ -8185,7 +8185,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
|
|
|
|
|
struct wined3d_vertex_declaration *vertex_declaration;
|
|
|
|
|
struct wined3d_stream_output stream_output[MAX_STREAM_OUT];
|
|
|
|
|
@@ -2401,6 +2463,16 @@ struct wined3d_state
|
|
|
|
|
@@ -2402,6 +2464,16 @@ struct wined3d_state
|
|
|
|
|
struct wined3d_rasterizer_state *rasterizer_state;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
@ -8202,7 +8202,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
#define WINED3D_UNMAPPED_STAGE ~0U
|
|
|
|
|
|
|
|
|
|
/* Multithreaded flag. Removed from the public header to signal that
|
|
|
|
|
@@ -2453,16 +2525,21 @@ struct wined3d_device
|
|
|
|
|
@@ -2454,16 +2526,21 @@ struct wined3d_device
|
|
|
|
|
struct wined3d_rendertarget_view *back_buffer_view;
|
|
|
|
|
struct wined3d_swapchain **swapchains;
|
|
|
|
|
UINT swapchain_count;
|
|
|
|
@ -8224,7 +8224,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
/* For rendering to a texture using glCopyTexImage */
|
|
|
|
|
GLuint depth_blt_texture;
|
|
|
|
|
|
|
|
|
|
@@ -2511,9 +2588,23 @@ LRESULT device_process_message(struct wined3d_device *device, HWND window, BOOL
|
|
|
|
|
@@ -2512,9 +2589,23 @@ LRESULT device_process_message(struct wined3d_device *device, HWND window, BOOL
|
|
|
|
|
UINT message, WPARAM wparam, LPARAM lparam, WNDPROC proc) DECLSPEC_HIDDEN;
|
|
|
|
|
void device_resource_add(struct wined3d_device *device, struct wined3d_resource *resource) DECLSPEC_HIDDEN;
|
|
|
|
|
void device_resource_released(struct wined3d_device *device, struct wined3d_resource *resource) DECLSPEC_HIDDEN;
|
|
|
|
@ -8248,7 +8248,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
|
|
|
|
|
static inline BOOL isStateDirty(const struct wined3d_context *context, DWORD state)
|
|
|
|
|
{
|
|
|
|
|
@@ -2558,7 +2649,11 @@ struct wined3d_resource
|
|
|
|
|
@@ -2559,7 +2650,11 @@ struct wined3d_resource
|
|
|
|
|
UINT depth;
|
|
|
|
|
UINT size;
|
|
|
|
|
DWORD priority;
|
|
|
|
@ -8260,7 +8260,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
struct list resource_list_entry;
|
|
|
|
|
LONG access_count;
|
|
|
|
|
|
|
|
|
|
@@ -2605,6 +2700,9 @@ void wined3d_resource_free_sysmem(struct wined3d_resource *resource) DECLSPEC_HI
|
|
|
|
|
@@ -2606,6 +2701,9 @@ void wined3d_resource_free_sysmem(struct wined3d_resource *resource) DECLSPEC_HI
|
|
|
|
|
GLbitfield wined3d_resource_gl_map_flags(DWORD d3d_flags) DECLSPEC_HIDDEN;
|
|
|
|
|
GLenum wined3d_resource_gl_legacy_map_flags(DWORD d3d_flags) DECLSPEC_HIDDEN;
|
|
|
|
|
BOOL wined3d_resource_is_offscreen(struct wined3d_resource *resource) DECLSPEC_HIDDEN;
|
|
|
|
@ -8270,7 +8270,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
void wined3d_resource_update_draw_binding(struct wined3d_resource *resource) DECLSPEC_HIDDEN;
|
|
|
|
|
|
|
|
|
|
/* Tests show that the start address of resources is 32 byte aligned */
|
|
|
|
|
@@ -2666,6 +2764,9 @@ struct wined3d_texture
|
|
|
|
|
@@ -2667,6 +2765,9 @@ struct wined3d_texture
|
|
|
|
|
DWORD flags;
|
|
|
|
|
GLenum target;
|
|
|
|
|
DWORD update_map_binding;
|
|
|
|
@ -8280,7 +8280,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
|
|
|
|
|
GLuint rb_multisample;
|
|
|
|
|
GLuint rb_resolved;
|
|
|
|
|
@@ -2702,7 +2803,12 @@ struct wined3d_texture
|
|
|
|
|
@@ -2703,7 +2804,12 @@ struct wined3d_texture
|
|
|
|
|
|
|
|
|
|
unsigned int map_count;
|
|
|
|
|
DWORD locations;
|
|
|
|
@ -8293,7 +8293,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
} sub_resources[1];
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
@@ -2753,11 +2859,23 @@ void wined3d_texture_bind(struct wined3d_texture *texture,
|
|
|
|
|
@@ -2754,11 +2860,23 @@ void wined3d_texture_bind(struct wined3d_texture *texture,
|
|
|
|
|
struct wined3d_context *context, BOOL srgb) DECLSPEC_HIDDEN;
|
|
|
|
|
void wined3d_texture_bind_and_dirtify(struct wined3d_texture *texture,
|
|
|
|
|
struct wined3d_context *context, BOOL srgb) DECLSPEC_HIDDEN;
|
|
|
|
@ -8317,7 +8317,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
struct wined3d_texture_sub_resource *wined3d_texture_get_sub_resource(struct wined3d_texture *texture,
|
|
|
|
|
unsigned int sub_resource_idx) DECLSPEC_HIDDEN;
|
|
|
|
|
void wined3d_texture_invalidate_location(struct wined3d_texture *texture,
|
|
|
|
|
@@ -2770,13 +2888,26 @@ void *wined3d_texture_map_bo_address(const struct wined3d_bo_address *data, size
|
|
|
|
|
@@ -2771,13 +2889,26 @@ void *wined3d_texture_map_bo_address(const struct wined3d_bo_address *data, size
|
|
|
|
|
const struct wined3d_gl_info *gl_info, GLenum binding, DWORD flags) DECLSPEC_HIDDEN;
|
|
|
|
|
BOOL wined3d_texture_prepare_location(struct wined3d_texture *texture, unsigned int sub_resource_idx,
|
|
|
|
|
struct wined3d_context *context, DWORD location) DECLSPEC_HIDDEN;
|
|
|
|
@ -8344,7 +8344,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
void wined3d_texture_upload_data(struct wined3d_texture *texture, unsigned int sub_resource_idx,
|
|
|
|
|
const struct wined3d_context *context, const struct wined3d_const_bo_address *data,
|
|
|
|
|
unsigned int row_pitch, unsigned int slice_pitch) DECLSPEC_HIDDEN;
|
|
|
|
|
@@ -2885,7 +3016,11 @@ void surface_get_drawable_size(const struct wined3d_surface *surface, const stru
|
|
|
|
|
@@ -2886,7 +3017,11 @@ void surface_get_drawable_size(const struct wined3d_surface *surface, const stru
|
|
|
|
|
unsigned int *width, unsigned int *height) DECLSPEC_HIDDEN;
|
|
|
|
|
void surface_load_fb_texture(struct wined3d_surface *surface, BOOL srgb,
|
|
|
|
|
struct wined3d_context *context) DECLSPEC_HIDDEN;
|
|
|
|
@ -8356,7 +8356,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
struct wined3d_context *context, DWORD location) DECLSPEC_HIDDEN;
|
|
|
|
|
void surface_modify_ds_location(struct wined3d_surface *surface, DWORD location, UINT w, UINT h) DECLSPEC_HIDDEN;
|
|
|
|
|
void surface_set_compatible_renderbuffer(struct wined3d_surface *surface,
|
|
|
|
|
@@ -2896,6 +3031,11 @@ HRESULT surface_upload_from_surface(struct wined3d_surface *dst_surface, const P
|
|
|
|
|
@@ -2897,6 +3032,11 @@ HRESULT surface_upload_from_surface(struct wined3d_surface *dst_surface, const P
|
|
|
|
|
void wined3d_surface_upload_data(struct wined3d_surface *surface, const struct wined3d_gl_info *gl_info,
|
|
|
|
|
const struct wined3d_format *format, const RECT *src_rect, UINT src_pitch, const POINT *dst_point,
|
|
|
|
|
BOOL srgb, const struct wined3d_const_bo_address *data) DECLSPEC_HIDDEN;
|
|
|
|
@ -8368,7 +8368,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
|
|
|
|
|
void draw_textured_quad(const struct wined3d_surface *src_surface, struct wined3d_context *context,
|
|
|
|
|
const RECT *src_rect, const RECT *dst_rect, enum wined3d_texture_filter_type filter) DECLSPEC_HIDDEN;
|
|
|
|
|
@@ -2910,6 +3050,12 @@ struct wined3d_sampler
|
|
|
|
|
@@ -2911,6 +3051,12 @@ struct wined3d_sampler
|
|
|
|
|
GLuint name;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
@ -8381,7 +8381,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
struct wined3d_vertex_declaration_element
|
|
|
|
|
{
|
|
|
|
|
const struct wined3d_format *format;
|
|
|
|
|
@@ -3005,6 +3151,7 @@ struct wined3d_stateblock
|
|
|
|
|
@@ -3006,6 +3152,7 @@ struct wined3d_stateblock
|
|
|
|
|
void stateblock_init_contained_states(struct wined3d_stateblock *stateblock) DECLSPEC_HIDDEN;
|
|
|
|
|
|
|
|
|
|
void state_cleanup(struct wined3d_state *state) DECLSPEC_HIDDEN;
|
|
|
|
@ -8389,7 +8389,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
void state_init(struct wined3d_state *state, struct wined3d_fb_state *fb,
|
|
|
|
|
const struct wined3d_gl_info *gl_info, const struct wined3d_d3d_info *d3d_info,
|
|
|
|
|
DWORD flags) DECLSPEC_HIDDEN;
|
|
|
|
|
@@ -3018,54 +3165,150 @@ enum wined3d_push_constants
|
|
|
|
|
@@ -3019,54 +3166,150 @@ enum wined3d_push_constants
|
|
|
|
|
WINED3D_PUSH_CONSTANTS_PS_I,
|
|
|
|
|
WINED3D_PUSH_CONSTANTS_VS_B,
|
|
|
|
|
WINED3D_PUSH_CONSTANTS_PS_B,
|
|
|
|
@ -8540,7 +8540,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
void wined3d_cs_emit_set_rasterizer_state(struct wined3d_cs *cs,
|
|
|
|
|
struct wined3d_rasterizer_state *rasterizer_state) DECLSPEC_HIDDEN;
|
|
|
|
|
void wined3d_cs_emit_set_render_state(struct wined3d_cs *cs,
|
|
|
|
|
@@ -3095,6 +3338,7 @@ void wined3d_cs_emit_set_transform(struct wined3d_cs *cs, enum wined3d_transform
|
|
|
|
|
@@ -3096,6 +3339,7 @@ void wined3d_cs_emit_set_transform(struct wined3d_cs *cs, enum wined3d_transform
|
|
|
|
|
void wined3d_cs_emit_set_vertex_declaration(struct wined3d_cs *cs,
|
|
|
|
|
struct wined3d_vertex_declaration *declaration) DECLSPEC_HIDDEN;
|
|
|
|
|
void wined3d_cs_emit_set_viewport(struct wined3d_cs *cs, const struct wined3d_viewport *viewport) DECLSPEC_HIDDEN;
|
|
|
|
@ -8548,7 +8548,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
void wined3d_cs_emit_unload_resource(struct wined3d_cs *cs, struct wined3d_resource *resource) DECLSPEC_HIDDEN;
|
|
|
|
|
HRESULT wined3d_cs_map(struct wined3d_cs *cs, struct wined3d_resource *resource, unsigned int sub_resource_idx,
|
|
|
|
|
struct wined3d_map_desc *map_desc, const struct wined3d_box *box, unsigned int flags) DECLSPEC_HIDDEN;
|
|
|
|
|
@@ -3106,6 +3350,24 @@ static inline void wined3d_cs_push_constants(struct wined3d_cs *cs, enum wined3d
|
|
|
|
|
@@ -3107,6 +3351,24 @@ static inline void wined3d_cs_push_constants(struct wined3d_cs *cs, enum wined3d
|
|
|
|
|
{
|
|
|
|
|
cs->ops->push_constants(cs, p, start_idx, count, constants);
|
|
|
|
|
}
|
|
|
|
@ -8573,7 +8573,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
|
|
|
|
|
/* TODO: Add tests and support for FLOAT16_4 POSITIONT, D3DCOLOR position, other
|
|
|
|
|
* fixed function semantics as D3DCOLOR or FLOAT16 */
|
|
|
|
|
@@ -3132,6 +3394,9 @@ struct wined3d_buffer
|
|
|
|
|
@@ -3133,6 +3395,9 @@ struct wined3d_buffer
|
|
|
|
|
GLenum buffer_object_usage;
|
|
|
|
|
GLenum buffer_type_hint;
|
|
|
|
|
DWORD flags;
|
|
|
|
@ -8583,7 +8583,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
void *map_ptr;
|
|
|
|
|
|
|
|
|
|
struct wined3d_map_range *maps;
|
|
|
|
|
@@ -3156,11 +3421,19 @@ void buffer_get_memory(struct wined3d_buffer *buffer, struct wined3d_context *co
|
|
|
|
|
@@ -3157,11 +3422,19 @@ void buffer_get_memory(struct wined3d_buffer *buffer, struct wined3d_context *co
|
|
|
|
|
BYTE *buffer_get_sysmem(struct wined3d_buffer *buffer, struct wined3d_context *context) DECLSPEC_HIDDEN;
|
|
|
|
|
void buffer_internal_preload(struct wined3d_buffer *buffer, struct wined3d_context *context,
|
|
|
|
|
const struct wined3d_state *state) DECLSPEC_HIDDEN;
|
|
|
|
@ -8603,7 +8603,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
|
|
|
|
|
struct wined3d_rendertarget_view
|
|
|
|
|
{
|
|
|
|
|
@@ -3222,7 +3495,12 @@ struct wined3d_unordered_access_view
|
|
|
|
|
@@ -3223,7 +3496,12 @@ struct wined3d_unordered_access_view
|
|
|
|
|
struct wined3d_swapchain_ops
|
|
|
|
|
{
|
|
|
|
|
void (*swapchain_present)(struct wined3d_swapchain *swapchain,
|
|
|
|
@ -8616,7 +8616,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
void (*swapchain_frontbuffer_updated)(struct wined3d_swapchain *swapchain);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
@@ -3259,6 +3537,10 @@ struct wined3d_swapchain
|
|
|
|
|
@@ -3260,6 +3538,10 @@ struct wined3d_swapchain
|
|
|
|
|
|
|
|
|
|
void wined3d_swapchain_activate(struct wined3d_swapchain *swapchain, BOOL activate) DECLSPEC_HIDDEN;
|
|
|
|
|
struct wined3d_context *swapchain_get_context(struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN;
|
|
|
|
|