|
|
|
@ -463,7 +463,7 @@ diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
|
|
|
|
|
diff --git a/dlls/d3d8/tests/visual.c b/dlls/d3d8/tests/visual.c
|
|
|
|
|
--- a/dlls/d3d8/tests/visual.c
|
|
|
|
|
+++ b/dlls/d3d8/tests/visual.c
|
|
|
|
|
@@ -5118,7 +5118,11 @@
|
|
|
|
|
@@ -5110,7 +5110,11 @@
|
|
|
|
|
fill_surface(surface_managed, 0x0000ff00, D3DLOCK_NO_DIRTY_UPDATE);
|
|
|
|
|
add_dirty_rect_test_draw(device);
|
|
|
|
|
color = getPixelColor(device, 320, 240);
|
|
|
|
@ -1187,7 +1187,7 @@ diff --git a/dlls/wined3d/wined3d_main.c b/dlls/wined3d/wined3d_main.c
|
|
|
|
|
diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c
|
|
|
|
|
--- a/dlls/wined3d/arb_program_shader.c
|
|
|
|
|
+++ b/dlls/wined3d/arb_program_shader.c
|
|
|
|
|
@@ -707,7 +707,11 @@
|
|
|
|
|
@@ -684,7 +684,11 @@
|
|
|
|
|
{
|
|
|
|
|
const struct wined3d_shader *pshader = state->shader[WINED3D_SHADER_TYPE_PIXEL];
|
|
|
|
|
const struct arb_ps_compiled_shader *gl_shader = priv->compiled_fprog;
|
|
|
|
@ -1199,7 +1199,7 @@ diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader
|
|
|
|
|
|
|
|
|
|
/* Load DirectX 9 float constants for pixel shader */
|
|
|
|
|
priv->highest_dirty_ps_const = shader_arb_load_constantsF(pshader, gl_info, GL_FRAGMENT_PROGRAM_ARB,
|
|
|
|
|
@@ -4665,7 +4669,11 @@
|
|
|
|
|
@@ -4652,7 +4656,11 @@
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
@ -1211,7 +1211,7 @@ diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader
|
|
|
|
|
shader_arb_ps_local_constants(compiled, context, state, rt_height);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -7779,7 +7787,11 @@
|
|
|
|
|
@@ -7766,7 +7774,11 @@
|
|
|
|
|
|
|
|
|
|
/* Now load the surface */
|
|
|
|
|
if (wined3d_settings.offscreen_rendering_mode != ORM_FBO
|
|
|
|
@ -1223,7 +1223,7 @@ diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader
|
|
|
|
|
== WINED3D_LOCATION_DRAWABLE
|
|
|
|
|
&& !wined3d_resource_is_offscreen(&src_surface->container->resource))
|
|
|
|
|
{
|
|
|
|
|
@@ -7809,6 +7821,7 @@
|
|
|
|
|
@@ -7796,6 +7808,7 @@
|
|
|
|
|
/* Leave the opengl state valid for blitting */
|
|
|
|
|
arbfp_blit_unset(context->gl_info);
|
|
|
|
|
|
|
|
|
@ -1231,7 +1231,7 @@ diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader
|
|
|
|
|
if (wined3d_settings.cs_multithreaded)
|
|
|
|
|
context->gl_info->gl_ops.gl.p_glFinish();
|
|
|
|
|
else if (wined3d_settings.strict_draw_ordering
|
|
|
|
|
@@ -7820,6 +7833,17 @@
|
|
|
|
|
@@ -7807,6 +7820,17 @@
|
|
|
|
|
|
|
|
|
|
wined3d_resource_validate_location(&dst_surface->resource, dst_surface->container->resource.draw_binding);
|
|
|
|
|
wined3d_resource_invalidate_location(&dst_surface->resource, ~dst_surface->container->resource.draw_binding);
|
|
|
|
@ -1685,7 +1685,7 @@ diff --git a/dlls/wined3d/stateblock.c b/dlls/wined3d/stateblock.c
|
|
|
|
|
diff --git a/dlls/d3d9/tests/visual.c b/dlls/d3d9/tests/visual.c
|
|
|
|
|
--- a/dlls/d3d9/tests/visual.c
|
|
|
|
|
+++ b/dlls/d3d9/tests/visual.c
|
|
|
|
|
@@ -16587,7 +16587,11 @@
|
|
|
|
|
@@ -16806,7 +16806,11 @@
|
|
|
|
|
fill_surface(surface_managed, 0x0000ff00, D3DLOCK_NO_DIRTY_UPDATE);
|
|
|
|
|
add_dirty_rect_test_draw(device);
|
|
|
|
|
color = getPixelColor(device, 320, 240);
|
|
|
|
@ -1758,7 +1758,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
extern struct wined3d_settings wined3d_settings DECLSPEC_HIDDEN;
|
|
|
|
|
@@ -998,9 +1028,14 @@
|
|
|
|
|
@@ -996,9 +1026,14 @@
|
|
|
|
|
WORD use_map; /* MAX_ATTRIBS, 16 */
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
@ -1773,7 +1773,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
DWORD get_flexible_vertex_size(DWORD d3dvtVertexType) DECLSPEC_HIDDEN;
|
|
|
|
|
|
|
|
|
|
#define eps 1e-8f
|
|
|
|
|
@@ -1088,8 +1123,10 @@
|
|
|
|
|
@@ -1086,8 +1121,10 @@
|
|
|
|
|
struct list entry;
|
|
|
|
|
GLuint id;
|
|
|
|
|
struct wined3d_context *context;
|
|
|
|
@ -1784,7 +1784,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
union wined3d_gl_query_object
|
|
|
|
|
@@ -1125,6 +1162,7 @@
|
|
|
|
|
@@ -1123,6 +1160,7 @@
|
|
|
|
|
struct list entry;
|
|
|
|
|
GLuint id;
|
|
|
|
|
struct wined3d_context *context;
|
|
|
|
@ -1792,7 +1792,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
UINT64 timestamp;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
@@ -1160,6 +1198,12 @@
|
|
|
|
|
@@ -1158,6 +1196,12 @@
|
|
|
|
|
for (i = 0; i < min(dst->rt_size, src->rt_size); i++)
|
|
|
|
|
dst->render_targets[i] = src->render_targets[i];
|
|
|
|
|
}
|
|
|
|
@ -1805,7 +1805,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
|
|
|
|
|
struct wined3d_context
|
|
|
|
|
{
|
|
|
|
|
@@ -1175,7 +1219,9 @@
|
|
|
|
|
@@ -1173,7 +1217,9 @@
|
|
|
|
|
DWORD dirtyArray[STATE_HIGHEST + 1]; /* Won't get bigger than that, a state is never marked dirty 2 times */
|
|
|
|
|
DWORD numDirtyEntries;
|
|
|
|
|
DWORD isStateDirty[STATE_HIGHEST / (sizeof(DWORD) * CHAR_BIT) + 1]; /* Bitmap to find out quickly if a state is dirty */
|
|
|
|
@ -1815,7 +1815,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
|
|
|
|
|
struct wined3d_swapchain *swapchain;
|
|
|
|
|
struct wined3d_surface *current_rt;
|
|
|
|
|
@@ -1275,8 +1321,17 @@
|
|
|
|
|
@@ -1273,8 +1319,17 @@
|
|
|
|
|
GLfloat fog_coord_value;
|
|
|
|
|
GLfloat color[4], fogstart, fogend, fogcolor[4];
|
|
|
|
|
GLuint dummy_arbfp_prog;
|
|
|
|
@ -1833,7 +1833,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
typedef void (*APPLYSTATEFUNC)(struct wined3d_context *ctx, const struct wined3d_state *state, DWORD state_id);
|
|
|
|
|
@@ -1410,8 +1465,12 @@
|
|
|
|
|
@@ -1408,8 +1463,12 @@
|
|
|
|
|
void context_apply_blit_state(struct wined3d_context *context, const struct wined3d_device *device) DECLSPEC_HIDDEN;
|
|
|
|
|
BOOL context_apply_clear_state(struct wined3d_context *context, const struct wined3d_device *device,
|
|
|
|
|
UINT rt_count, const struct wined3d_fb_state *fb) DECLSPEC_HIDDEN;
|
|
|
|
@ -1846,7 +1846,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
void context_apply_fbo_state_blit(struct wined3d_context *context, GLenum target,
|
|
|
|
|
struct wined3d_surface *render_target, struct wined3d_surface *depth_stencil, DWORD location) DECLSPEC_HIDDEN;
|
|
|
|
|
void context_active_texture(struct wined3d_context *context, const struct wined3d_gl_info *gl_info,
|
|
|
|
|
@@ -1963,7 +2022,11 @@
|
|
|
|
|
@@ -1961,7 +2020,11 @@
|
|
|
|
|
struct wined3d_state
|
|
|
|
|
{
|
|
|
|
|
DWORD flags;
|
|
|
|
@ -1858,7 +1858,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];
|
|
|
|
|
@@ -2008,6 +2071,7 @@
|
|
|
|
|
@@ -2006,6 +2069,7 @@
|
|
|
|
|
DWORD render_states[WINEHIGHEST_RENDER_STATE + 1];
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
@ -1866,7 +1866,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
struct wined3d_gl_bo
|
|
|
|
|
{
|
|
|
|
|
GLuint name;
|
|
|
|
|
@@ -2016,6 +2080,7 @@
|
|
|
|
|
@@ -2014,6 +2078,7 @@
|
|
|
|
|
UINT size;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
@ -1874,7 +1874,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
|
|
|
|
|
@@ -2071,11 +2136,23 @@
|
|
|
|
|
@@ -2069,11 +2134,23 @@
|
|
|
|
|
struct wined3d_rendertarget_view *back_buffer_view;
|
|
|
|
|
struct wined3d_swapchain **swapchains;
|
|
|
|
|
UINT swapchain_count;
|
|
|
|
@ -1898,7 +1898,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;
|
|
|
|
|
@@ -2086,6 +2163,9 @@
|
|
|
|
|
@@ -2084,6 +2161,9 @@
|
|
|
|
|
UINT xScreenSpace;
|
|
|
|
|
UINT yScreenSpace;
|
|
|
|
|
UINT cursorWidth, cursorHeight;
|
|
|
|
@ -1908,7 +1908,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
HCURSOR hardwareCursor;
|
|
|
|
|
|
|
|
|
|
/* The Wine logo texture */
|
|
|
|
|
@@ -2117,6 +2197,7 @@
|
|
|
|
|
@@ -2115,6 +2195,7 @@
|
|
|
|
|
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;
|
|
|
|
@ -1916,7 +1916,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
void device_invalidate_state(const struct wined3d_device *device, DWORD state) DECLSPEC_HIDDEN;
|
|
|
|
|
void device_invalidate_shader_constants(const struct wined3d_device *device, DWORD mask) DECLSPEC_HIDDEN;
|
|
|
|
|
void device_exec_update_texture(struct wined3d_context *context, struct wined3d_texture *src_texture,
|
|
|
|
|
@@ -2128,6 +2209,11 @@
|
|
|
|
|
@@ -2126,6 +2207,11 @@
|
|
|
|
|
void device_create_dummy_textures(struct wined3d_device *device, struct wined3d_context *context) DECLSPEC_HIDDEN;
|
|
|
|
|
void device_delete_opengl_contexts_cs(struct wined3d_device *device,
|
|
|
|
|
struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN;
|
|
|
|
@ -1928,7 +1928,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)
|
|
|
|
|
{
|
|
|
|
|
@@ -2144,9 +2230,11 @@
|
|
|
|
|
@@ -2142,9 +2228,11 @@
|
|
|
|
|
ULONG (*resource_incref)(struct wined3d_resource *resource);
|
|
|
|
|
ULONG (*resource_decref)(struct wined3d_resource *resource);
|
|
|
|
|
void (*resource_unload)(struct wined3d_resource *resource);
|
|
|
|
@ -1940,7 +1940,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct wined3d_resource
|
|
|
|
|
@@ -2170,6 +2258,7 @@
|
|
|
|
|
@@ -2168,6 +2256,7 @@
|
|
|
|
|
UINT depth;
|
|
|
|
|
UINT size;
|
|
|
|
|
DWORD priority;
|
|
|
|
@ -1948,7 +1948,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
void *heap_memory, *map_heap_memory, *user_memory, *bitmap_data;
|
|
|
|
|
UINT custom_row_pitch, custom_slice_pitch;
|
|
|
|
|
struct wined3d_gl_bo *buffer, *map_buffer;
|
|
|
|
|
@@ -2177,6 +2266,11 @@
|
|
|
|
|
@@ -2175,6 +2264,11 @@
|
|
|
|
|
DWORD locations;
|
|
|
|
|
LONG access_fence;
|
|
|
|
|
BOOL unmap_dirtify;
|
|
|
|
@ -1960,7 +1960,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
|
|
|
|
|
void *parent;
|
|
|
|
|
const struct wined3d_parent_ops *parent_ops;
|
|
|
|
|
@@ -2201,6 +2295,7 @@
|
|
|
|
|
@@ -2199,6 +2293,7 @@
|
|
|
|
|
void *parent, const struct wined3d_parent_ops *parent_ops,
|
|
|
|
|
const struct wined3d_resource_ops *resource_ops) DECLSPEC_HIDDEN;
|
|
|
|
|
void resource_unload(struct wined3d_resource *resource) DECLSPEC_HIDDEN;
|
|
|
|
@ -1968,7 +1968,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
DWORD wined3d_resource_access_from_location(DWORD location) DECLSPEC_HIDDEN;
|
|
|
|
|
BOOL wined3d_resource_allocate_sysmem(struct wined3d_resource *resource) DECLSPEC_HIDDEN;
|
|
|
|
|
void wined3d_resource_changed(struct wined3d_resource *resource,
|
|
|
|
|
@@ -2247,6 +2342,15 @@
|
|
|
|
|
@@ -2245,6 +2340,15 @@
|
|
|
|
|
{
|
|
|
|
|
while(InterlockedCompareExchange(&resource->access_fence, 0, 0));
|
|
|
|
|
}
|
|
|
|
@ -1984,7 +1984,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
|
|
|
|
|
/* Tests show that the start address of resources is 32 byte aligned */
|
|
|
|
|
#define RESOURCE_ALIGNMENT 16
|
|
|
|
|
@@ -2331,7 +2435,9 @@
|
|
|
|
|
@@ -2329,7 +2433,9 @@
|
|
|
|
|
|
|
|
|
|
void wined3d_texture_apply_sampler_desc(struct wined3d_texture *texture,
|
|
|
|
|
const struct wined3d_sampler_desc *sampler_desc, const struct wined3d_gl_info *gl_info) DECLSPEC_HIDDEN;
|
|
|
|
@ -1994,7 +1994,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
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,
|
|
|
|
|
@@ -2365,9 +2471,16 @@
|
|
|
|
|
@@ -2363,9 +2469,16 @@
|
|
|
|
|
struct wined3d_resource resource;
|
|
|
|
|
struct wined3d_texture *container;
|
|
|
|
|
|
|
|
|
@ -2011,7 +2011,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static inline struct wined3d_volume *volume_from_resource(struct wined3d_resource *resource)
|
|
|
|
|
@@ -2375,6 +2488,7 @@
|
|
|
|
|
@@ -2373,6 +2486,7 @@
|
|
|
|
|
return CONTAINING_RECORD(resource, struct wined3d_volume, resource);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -2019,7 +2019,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
HRESULT wined3d_volume_create(struct wined3d_texture *container, const struct wined3d_resource_desc *desc,
|
|
|
|
|
unsigned int level, struct wined3d_volume **volume) DECLSPEC_HIDDEN;
|
|
|
|
|
void wined3d_volume_destroy(struct wined3d_volume *volume) DECLSPEC_HIDDEN;
|
|
|
|
|
@@ -2387,6 +2501,23 @@
|
|
|
|
|
@@ -2385,6 +2499,23 @@
|
|
|
|
|
struct wined3d_surface_dib
|
|
|
|
|
{
|
|
|
|
|
HBITMAP DIBsection;
|
|
|
|
@ -2043,7 +2043,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
UINT bitmap_size;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
@@ -2412,7 +2543,11 @@
|
|
|
|
|
@@ -2410,7 +2541,11 @@
|
|
|
|
|
struct wined3d_surface_ops
|
|
|
|
|
{
|
|
|
|
|
HRESULT (*surface_private_setup)(struct wined3d_surface *surface);
|
|
|
|
@ -2055,7 +2055,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct wined3d_surface
|
|
|
|
|
@@ -2420,12 +2555,25 @@
|
|
|
|
|
@@ -2418,12 +2553,25 @@
|
|
|
|
|
struct wined3d_resource resource;
|
|
|
|
|
const struct wined3d_surface_ops *surface_ops;
|
|
|
|
|
struct wined3d_texture *container;
|
|
|
|
@ -2081,7 +2081,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
GLuint rb_multisample;
|
|
|
|
|
GLuint rb_resolved;
|
|
|
|
|
GLenum texture_target;
|
|
|
|
|
@@ -2469,10 +2617,19 @@
|
|
|
|
|
@@ -2467,10 +2615,19 @@
|
|
|
|
|
GLenum surface_get_gl_buffer(const struct wined3d_surface *surface) DECLSPEC_HIDDEN;
|
|
|
|
|
void surface_get_drawable_size(const struct wined3d_surface *surface, const struct wined3d_context *context,
|
|
|
|
|
unsigned int *width, unsigned int *height) DECLSPEC_HIDDEN;
|
|
|
|
@ -2101,7 +2101,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
void surface_modify_ds_location(struct wined3d_surface *surface, DWORD location, UINT w, UINT h) DECLSPEC_HIDDEN;
|
|
|
|
|
void surface_prepare_rb(struct wined3d_surface *surface,
|
|
|
|
|
const struct wined3d_gl_info *gl_info, BOOL multisample) DECLSPEC_HIDDEN;
|
|
|
|
|
@@ -2484,6 +2641,7 @@
|
|
|
|
|
@@ -2482,6 +2639,7 @@
|
|
|
|
|
const struct wined3d_gl_info *gl_info, void *mem, unsigned int pitch) DECLSPEC_HIDDEN;
|
|
|
|
|
HRESULT surface_upload_from_surface(struct wined3d_surface *dst_surface, const POINT *dst_point,
|
|
|
|
|
struct wined3d_surface *src_surface, const RECT *src_rect) DECLSPEC_HIDDEN;
|
|
|
|
@ -2109,7 +2109,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
HRESULT wined3d_surface_create(struct wined3d_texture *container, const struct wined3d_resource_desc *desc,
|
|
|
|
|
GLenum target, unsigned int level, unsigned int layer, DWORD flags,
|
|
|
|
|
struct wined3d_surface **surface) DECLSPEC_HIDDEN;
|
|
|
|
|
@@ -2502,6 +2660,21 @@
|
|
|
|
|
@@ -2500,6 +2658,21 @@
|
|
|
|
|
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;
|
|
|
|
|
void surface_flip(struct wined3d_surface *front, struct wined3d_surface *back) DECLSPEC_HIDDEN;
|
|
|
|
@ -2131,7 +2131,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
|
|
|
|
|
/* Surface flags: */
|
|
|
|
|
#define SFLAG_DIBSECTION 0x00000001 /* Has a DIB section attached for GetDC. */
|
|
|
|
|
@@ -2549,8 +2722,10 @@
|
|
|
|
|
@@ -2547,8 +2720,10 @@
|
|
|
|
|
BOOL half_float_conv_needed;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
@ -2142,7 +2142,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
struct wined3d_saved_states
|
|
|
|
|
{
|
|
|
|
|
DWORD transform[(HIGHEST_TRANSFORMSTATE >> 5) + 1];
|
|
|
|
|
@@ -2618,6 +2793,7 @@
|
|
|
|
|
@@ -2616,6 +2791,7 @@
|
|
|
|
|
void stateblock_init_contained_states(struct wined3d_stateblock *stateblock) DECLSPEC_HIDDEN;
|
|
|
|
|
|
|
|
|
|
void state_cleanup(struct wined3d_state *state) DECLSPEC_HIDDEN;
|
|
|
|
@ -2150,7 +2150,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
HRESULT state_init(struct wined3d_state *state, const struct wined3d_gl_info *gl_info,
|
|
|
|
|
const struct wined3d_d3d_info *d3d_info, DWORD flags) DECLSPEC_HIDDEN;
|
|
|
|
|
void state_unbind_resources(struct wined3d_state *state) DECLSPEC_HIDDEN;
|
|
|
|
|
@@ -2668,6 +2844,32 @@
|
|
|
|
|
@@ -2666,6 +2842,32 @@
|
|
|
|
|
void wined3d_cs_destroy(struct wined3d_cs *cs) DECLSPEC_HIDDEN;
|
|
|
|
|
void wined3d_cs_switch_onscreen_ds(struct wined3d_cs *cs, struct wined3d_context *context,
|
|
|
|
|
struct wined3d_surface *depth_stencil) DECLSPEC_HIDDEN;
|
|
|
|
@ -2183,7 +2183,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
|
|
|
|
|
void wined3d_cs_emit_clear(struct wined3d_cs *cs, DWORD rect_count, const RECT *rects,
|
|
|
|
|
DWORD flags, const struct wined3d_color *color, float depth, DWORD stencil) DECLSPEC_HIDDEN;
|
|
|
|
|
@@ -2717,6 +2919,7 @@
|
|
|
|
|
@@ -2715,6 +2917,7 @@
|
|
|
|
|
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;
|
|
|
|
@ -2191,7 +2191,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
void wined3d_cs_emit_set_consts_f(struct wined3d_cs *cs, UINT start_register, const float *constants,
|
|
|
|
|
UINT vector4f_count, enum wined3d_shader_type type) DECLSPEC_HIDDEN;
|
|
|
|
|
void wined3d_cs_emit_set_consts_b(struct wined3d_cs *cs, UINT start_register,
|
|
|
|
|
@@ -2776,6 +2979,7 @@
|
|
|
|
|
@@ -2774,6 +2977,7 @@
|
|
|
|
|
struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN;
|
|
|
|
|
void wined3d_cs_emit_getdc(struct wined3d_cs *cs, struct wined3d_surface *surface) DECLSPEC_HIDDEN;
|
|
|
|
|
void wined3d_cs_emit_releasedc(struct wined3d_cs *cs, struct wined3d_surface *surface) DECLSPEC_HIDDEN;
|
|
|
|
@ -2199,7 +2199,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
|
|
|
|
|
/* Direct3D terminology with little modifications. We do not have an issued state
|
|
|
|
|
* because only the driver knows about it, but we have a created state because d3d
|
|
|
|
|
@@ -2790,8 +2994,12 @@
|
|
|
|
|
@@ -2788,8 +2992,12 @@
|
|
|
|
|
struct wined3d_query_ops
|
|
|
|
|
{
|
|
|
|
|
HRESULT (*query_get_data)(struct wined3d_query *query, void *data, DWORD data_size, DWORD flags);
|
|
|
|
@ -2212,7 +2212,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct wined3d_query
|
|
|
|
|
@@ -2805,12 +3013,16 @@
|
|
|
|
|
@@ -2803,12 +3011,16 @@
|
|
|
|
|
enum wined3d_query_type type;
|
|
|
|
|
DWORD data_size;
|
|
|
|
|
void *extendedData;
|
|
|
|
@ -2229,7 +2229,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 */
|
|
|
|
|
@@ -2837,7 +3049,9 @@
|
|
|
|
|
@@ -2835,7 +3047,9 @@
|
|
|
|
|
GLenum buffer_object_usage;
|
|
|
|
|
GLenum buffer_type_hint;
|
|
|
|
|
DWORD flags;
|
|
|
|
@ -2239,7 +2239,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
void *map_ptr;
|
|
|
|
|
|
|
|
|
|
struct wined3d_map_range *maps;
|
|
|
|
|
@@ -2862,11 +3076,15 @@
|
|
|
|
|
@@ -2860,11 +3074,15 @@
|
|
|
|
|
BYTE *buffer_get_sysmem(struct wined3d_buffer *This, 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;
|
|
|
|
@ -2255,7 +2255,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
|
|
|
|
|
struct wined3d_rendertarget_view
|
|
|
|
|
{
|
|
|
|
|
@@ -2905,8 +3123,10 @@
|
|
|
|
|
@@ -2903,8 +3121,10 @@
|
|
|
|
|
return surface_from_resource(resource);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -2266,7 +2266,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
struct wined3d_shader_resource_view
|
|
|
|
|
{
|
|
|
|
|
LONG refcount;
|
|
|
|
|
@@ -2919,8 +3139,12 @@
|
|
|
|
|
@@ -2917,8 +3137,12 @@
|
|
|
|
|
struct wined3d_swapchain_ops
|
|
|
|
|
{
|
|
|
|
|
void (*swapchain_present)(struct wined3d_swapchain *swapchain, const RECT *src_rect,
|
|
|
|
@ -2279,7 +2279,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct wined3d_swapchain
|
|
|
|
|
@@ -2960,8 +3184,10 @@
|
|
|
|
|
@@ -2958,8 +3182,10 @@
|
|
|
|
|
HDC swapchain_get_backup_dc(struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN;
|
|
|
|
|
void swapchain_update_draw_bindings(struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN;
|
|
|
|
|
void swapchain_update_render_to_fbo(struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN;
|
|
|
|
@ -2290,7 +2290,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
|
|
|
|
|
|
|
|
|
/*****************************************************************************
|
|
|
|
|
* Utility function prototypes
|
|
|
|
|
@@ -3176,7 +3402,9 @@
|
|
|
|
|
@@ -3174,7 +3400,9 @@
|
|
|
|
|
void shader_generate_main(const struct wined3d_shader *shader, struct wined3d_shader_buffer *buffer,
|
|
|
|
|
const struct wined3d_shader_reg_maps *reg_maps, const DWORD *byte_code, void *backend_ctx) DECLSPEC_HIDDEN;
|
|
|
|
|
BOOL shader_match_semantic(const char *semantic_name, enum wined3d_decl_usage usage) DECLSPEC_HIDDEN;
|
|
|
|
@ -4515,7 +4515,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
|
|
|
|
diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
|
|
|
|
|
--- a/dlls/wined3d/glsl_shader.c
|
|
|
|
|
+++ b/dlls/wined3d/glsl_shader.c
|
|
|
|
|
@@ -1080,8 +1080,15 @@
|
|
|
|
|
@@ -1301,8 +1301,15 @@
|
|
|
|
|
const struct wined3d_shader_reg_maps *reg_maps, const struct shader_glsl_ctx_priv *ctx_priv)
|
|
|
|
|
{
|
|
|
|
|
const struct wined3d_shader_version *version = ®_maps->shader_version;
|
|
|
|
@ -4531,7 +4531,7 @@ diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
|
|
|
|
|
unsigned int i, extra_constants_needed = 0;
|
|
|
|
|
const struct wined3d_shader_lconst *lconst;
|
|
|
|
|
const char *prefix;
|
|
|
|
|
@@ -1322,7 +1329,11 @@
|
|
|
|
|
@@ -1543,7 +1550,11 @@
|
|
|
|
|
{
|
|
|
|
|
UINT in_count = min(vec4_varyings(version->major, gl_info), shader->limits->packed_input);
|
|
|
|
|
|
|
|
|
@ -4543,7 +4543,7 @@ diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
|
|
|
|
|
shader_addline(buffer, "varying vec4 %s_link[%u];\n", prefix, in_count);
|
|
|
|
|
shader_addline(buffer, "vec4 %s_in[%u];\n", prefix, in_count);
|
|
|
|
|
}
|
|
|
|
|
@@ -1363,6 +1374,7 @@
|
|
|
|
|
@@ -1584,6 +1595,7 @@
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
@ -4551,7 +4551,7 @@ diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
|
|
|
|
|
/* This happens because we do not have proper tracking of the
|
|
|
|
|
* constant registers that are actually used, only the max
|
|
|
|
|
* limit of the shader version.
|
|
|
|
|
@@ -1371,6 +1383,23 @@
|
|
|
|
|
@@ -1592,6 +1604,23 @@
|
|
|
|
|
* it and just create the uniform.
|
|
|
|
|
*/
|
|
|
|
|
FIXME("Cannot find a free uniform for vpos correction params\n");
|
|
|
|
@ -9092,7 +9092,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
|
|
|
|
diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c
|
|
|
|
|
--- a/dlls/wined3d/shader.c
|
|
|
|
|
+++ b/dlls/wined3d/shader.c
|
|
|
|
|
@@ -1812,7 +1812,11 @@
|
|
|
|
|
@@ -1790,7 +1790,11 @@
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -9104,7 +9104,7 @@ diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c
|
|
|
|
|
{
|
|
|
|
|
HeapFree(GetProcessHeap(), 0, shader->output_signature.elements);
|
|
|
|
|
HeapFree(GetProcessHeap(), 0, shader->signature_strings);
|
|
|
|
|
@@ -2067,10 +2071,16 @@
|
|
|
|
|
@@ -2045,10 +2049,16 @@
|
|
|
|
|
|
|
|
|
|
if (!refcount)
|
|
|
|
|
{
|
|
|
|
@ -9121,7 +9121,7 @@ diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return refcount;
|
|
|
|
|
@@ -2345,7 +2355,11 @@
|
|
|
|
|
@@ -2323,7 +2333,11 @@
|
|
|
|
|
memset(args, 0, sizeof(*args)); /* FIXME: Make sure all bits are set. */
|
|
|
|
|
if (!gl_info->supported[ARB_FRAMEBUFFER_SRGB] && state->render_states[WINED3D_RS_SRGBWRITEENABLE])
|
|
|
|
|
{
|
|
|
|
|