36 wined3d_colour->
r = ((d3d_colour >> 16) & 0xff) / 255.0f;
37 wined3d_colour->
g = ((d3d_colour >> 8) & 0xff) / 255.0f;
38 wined3d_colour->
b = (d3d_colour & 0xff) / 255.0f;
39 wined3d_colour->
a = ((d3d_colour >> 24) & 0xff) / 255.0f;
179 unsigned int wined3d_flags;
181 wined3d_flags =
flags & handled;
193 return wined3d_flags;
198 switch (primitive_type)
201 return primitive_count;
204 return primitive_count * 2;
207 return primitive_count + 1;
210 return primitive_count * 3;
214 return primitive_count + 2;
217 FIXME(
"Unhandled primitive type %#x.\n", primitive_type);
237 FIXME(
"Unhandled swap effect %#x.\n", effect);
277 FIXME(
"Unhandled swap effect %#x.\n", effect);
308 UINT highest_bb_count = extended ? 30 : 3;
312 WARN(
"Invalid swap effect %u passed.\n", present_parameters->
SwapEffect);
336 swapchain_desc->
output = output;
350 swapchain_desc->
flags
372 static const DWORD ps_minor_version[] = {0, 4, 0, 0};
373 static const DWORD vs_minor_version[] = {0, 1, 0, 0};
374 static const DWORD texture_filter_caps =
383 unsigned int output_idx;
534 output_idx = adapter_ordinal;
543 ERR(
"Failed to get output desc, hr %#lx.\n",
hr);
638 FIXME(
"iface %p, resource %p, fence_count %#x, signal_values %p, fences %p stub!\n", iface,
resource, fence_count, signal_values,
fences);
672 if (!
device->d3d_parent->extended)
674 WARN(
"IDirect3D9 instance wasn't created with CreateDirect3D9Ex, returning E_NOINTERFACE.\n");
688 if (!
device->d3d_parent->d3d9on12)
690 WARN(
"IDirect3D9 instance wasn't created with D3D9On12 enabled, returning E_NOINTERFACE.\n");
696 *
out = &
device->IDirect3DDevice9On12_iface;
721 if (
device->in_destruction)
734 for (
i = 0;
i <
device->fvf_decl_count; ++
i)
743 for (
i = 0;
i <
device->implicit_swapchain_count; ++
i)
769 TRACE(
"iface %p.\n", iface);
771 TRACE(
"device state: %#lx.\n",
device->device_state);
773 if (
device->d3d_parent->extended)
776 switch (
device->device_state)
793 TRACE(
"iface %p.\n", iface);
806 TRACE(
"iface %p.\n", iface);
819 TRACE(
"iface %p, d3d9 %p.\n", iface,
d3d9);
833 TRACE(
"iface %p, caps %p.\n", iface, caps);
838 memset(caps, 0,
sizeof(*caps));
855 TRACE(
"iface %p, swapchain %u, mode %p.\n", iface, swapchain,
mode);
897 TRACE(
"iface %p, hotspot_x %u, hotspot_y %u, bitmap %p.\n",
898 iface, hotspot_x, hotspot_y,
bitmap);
902 WARN(
"No cursor bitmap, returning D3DERR_INVALIDCALL.\n");
908 WARN(
"Failed to get surface description, hr %#lx.\n",
hr);
915 WARN(
"Failed to get device display mode, hr %#lx.\n",
hr);
921 WARN(
"Surface dimension %ux%u exceeds display mode %ux%u.\n", surface_desc.
Width,
938 TRACE(
"iface %p, x %u, y %u, flags %#lx.\n", iface,
x,
y,
flags);
950 TRACE(
"iface %p, show %#x.\n", iface, show);
967 unsigned int output_idx;
971 TRACE(
"iface %p, present_parameters %p, swapchain %p.\n",
972 iface, present_parameters, swapchain);
976 WARN(
"Trying to create an additional fullscreen swapchain, returning D3DERR_INVALIDCALL.\n");
992 WARN(
"Trying to create an additional swapchain in fullscreen mode, returning D3DERR_INVALIDCALL.\n");
998 output_idx =
device->adapter_ordinal;
1000 present_parameters,
device->d3d_parent->extended))
1007 *swapchain = (IDirect3DSwapChain9 *)&
object->IDirect3DSwapChain9Ex_iface;
1015 UINT swapchain_idx, IDirect3DSwapChain9 **swapchain)
1021 TRACE(
"iface %p, swapchain_idx %u, swapchain %p.\n", iface, swapchain_idx, swapchain);
1024 if (swapchain_idx < device->implicit_swapchain_count)
1046 TRACE(
"iface %p.\n", iface);
1060 IDirect3DBaseTexture9 *
texture;
1079 if (index_buffer && index_buffer->
sysmem)
1083 WARN(
"Resource %p in pool D3DPOOL_DEFAULT blocks the Reset call.\n",
resource);
1091 WARN(
"Texture %p (resource %p) in pool D3DPOOL_DEFAULT blocks the Reset call.\n",
texture,
resource);
1096 if (!surface || !surface->
resource.refcount)
1099 WARN(
"Surface %p in pool D3DPOOL_DEFAULT blocks the Reset call.\n", surface);
1107 if (!(
device->implicit_swapchains =
malloc(new_swapchain_count *
sizeof(*
device->implicit_swapchains))))
1110 for (
i = 0;
i < new_swapchain_count; ++
i)
1114 device->implicit_swapchain_count = new_swapchain_count;
1124 BOOL extended =
device->d3d_parent->extended;
1128 unsigned int output_idx;
1134 WARN(
"App not active, returning D3DERR_DEVICELOST.\n");
1147 output_idx =
device->adapter_ordinal;
1149 device->d3d_parent->wined3d_outputs[output_idx], present_parameters, extended))
1218 device->auto_mipmaps = 0;
1243 surface = old_backbuffers[
i];
1307 free(old_backbuffers);
1320 TRACE(
"iface %p, present_parameters %p.\n", iface, present_parameters);
1326 const RECT *src_rect,
const RECT *dst_rect,
HWND dst_window_override,
const RGNDATA *dirty_region)
1333 TRACE(
"iface %p, src_rect %s, dst_rect %s, dst_window_override %p, dirty_region %p.\n",
1340 FIXME(
"Ignoring dirty_region %p.\n", dirty_region);
1343 for (
i = 0;
i <
device->implicit_swapchain_count; ++
i)
1347 src_rect, dst_rect, dst_window_override, swapchain->
swap_interval, 0)))
1365 TRACE(
"iface %p, swapchain %u, backbuffer_idx %u, backbuffer_type %#x, backbuffer %p.\n",
1366 iface, swapchain, backbuffer_idx, backbuffer_type, backbuffer);
1374 if (swapchain >=
device->implicit_swapchain_count)
1377 WARN(
"Swapchain index %u is out of range, returning D3DERR_INVALIDCALL.\n", swapchain);
1383 backbuffer_idx, backbuffer_type, backbuffer);
1395 TRACE(
"iface %p, swapchain %u, raster_status %p.\n", iface, swapchain, raster_status);
1424 TRACE(
"iface %p, swapchain %u, flags %#lx, ramp %p.\n", iface, swapchain,
flags,
ramp);
1436 TRACE(
"iface %p, swapchain %u, ramp %p.\n", iface, swapchain,
ramp);
1454 TRACE(
"iface %p, width %u, height %u, levels %u, usage %#lx, format %#x, pool %#x, texture %p, shared_handle %p.\n",
1460 if (!
device->d3d_parent->extended)
1462 WARN(
"Trying to create a shared or user memory texture on a non-ex device.\n");
1476 WARN(
"Trying to create a shared texture in pool %#x.\n",
pool);
1479 FIXME(
"Resource sharing not implemented, *shared_handle %p.\n", *shared_handle);
1483 if (!(
object =
calloc(1,
sizeof(*
object))))
1489 WARN(
"Failed to initialize texture, hr %#lx.\n",
hr);
1511 TRACE(
"Created texture %p.\n",
object);
1512 *
texture = (IDirect3DTexture9 *)&
object->IDirect3DBaseTexture9_iface;
1525 TRACE(
"iface %p, width %u, height %u, depth %u, levels %u, "
1526 "usage %#lx, format %#x, pool %#x, texture %p, shared_handle %p.\n",
1533 if (!
device->d3d_parent->extended)
1535 WARN(
"Trying to create a shared volume texture on a non-ex device.\n");
1541 WARN(
"Trying to create a shared volume texture in pool %#x.\n",
pool);
1544 FIXME(
"Resource sharing not implemented, *shared_handle %p.\n", *shared_handle);
1547 if (!(
object =
calloc(1,
sizeof(*
object))))
1553 WARN(
"Failed to initialize volume texture, hr %#lx.\n",
hr);
1558 TRACE(
"Created volume texture %p.\n",
object);
1559 *
texture = (IDirect3DVolumeTexture9 *)&
object->IDirect3DBaseTexture9_iface;
1573 TRACE(
"iface %p, edge_length %u, levels %u, usage %#lx, format %#x, pool %#x, texture %p, shared_handle %p.\n",
1579 if (!
device->d3d_parent->extended)
1581 WARN(
"Trying to create a shared cube texture on a non-ex device.\n");
1587 WARN(
"Trying to create a shared cube texture in pool %#x.\n",
pool);
1590 FIXME(
"Resource sharing not implemented, *shared_handle %p.\n", *shared_handle);
1593 if (!(
object =
calloc(1,
sizeof(*
object))))
1599 WARN(
"Failed to initialize cube texture, hr %#lx.\n",
hr);
1614 TRACE(
"Created cube texture %p.\n",
object);
1615 *
texture = (IDirect3DCubeTexture9 *)&
object->IDirect3DBaseTexture9_iface;
1628 TRACE(
"iface %p, size %u, usage %#lx, fvf %#lx, pool %#x, buffer %p, shared_handle %p.\n",
1633 if (!
device->d3d_parent->extended)
1635 WARN(
"Trying to create a shared vertex buffer on a non-ex device.\n");
1641 WARN(
"Trying to create a shared vertex buffer in pool %#x.\n",
pool);
1644 FIXME(
"Resource sharing not implemented, *shared_handle %p.\n", *shared_handle);
1647 if (!(
object =
calloc(1,
sizeof(*
object))))
1653 WARN(
"Failed to initialize vertex buffer, hr %#lx.\n",
hr);
1658 TRACE(
"Created vertex buffer %p.\n",
object);
1659 *
buffer = &
object->IDirect3DVertexBuffer9_iface;
1672 TRACE(
"iface %p, size %u, usage %#lx, format %#x, pool %#x, buffer %p, shared_handle %p.\n",
1677 if (!
device->d3d_parent->extended)
1679 WARN(
"Trying to create a shared index buffer on a non-ex device.\n");
1685 WARN(
"Trying to create a shared index buffer in pool %#x.\n",
pool);
1688 FIXME(
"Resource sharing not implemented, *shared_handle %p.\n", *shared_handle);
1691 if (!(
object =
calloc(1,
sizeof(*
object))))
1697 WARN(
"Failed to initialize index buffer, hr %#lx.\n",
hr);
1702 TRACE(
"Created index buffer %p.\n",
object);
1703 *
buffer = &
object->IDirect3DIndexBuffer9_iface;
1710 unsigned int multisample_quality,
unsigned int usage,
unsigned int bind_flags,
unsigned int access,
1718 TRACE(
"device %p, flags %#x, format %#x, multisample_type %#x, multisample_quality %u, "
1719 "usage %#x, bind_flags %#x, access %#x, width %u, height %u, user_mem %p, surface %p.\n",
1725 desc.multisample_type = multisample_type;
1726 desc.multisample_quality = multisample_quality;
1728 desc.bind_flags = bind_flags;
1744 WARN(
"Failed to create texture, hr %#lx.\n",
hr);
1793 TRACE(
"iface %p, width %u, height %u, format %#x, multisample_type %#x, multisample_quality %lu.\n"
1794 "lockable %#x, surface %p, shared_handle %p.\n",
1796 lockable, surface, shared_handle);
1801 if (!
device->d3d_parent->extended)
1803 WARN(
"Trying to create a shared render target on a non-ex device.\n");
1807 FIXME(
"Resource sharing not implemented, *shared_handle %p.\n", *shared_handle);
1825 TRACE(
"iface %p, width %u, height %u, format %#x, multisample_type %#x, multisample_quality %lu.\n"
1826 "discard %#x, surface %p, shared_handle %p.\n",
1828 discard, surface, shared_handle);
1833 if (!
device->d3d_parent->extended)
1835 WARN(
"Trying to create a shared depth stencil on a non-ex device.\n");
1839 FIXME(
"Resource sharing not implemented, *shared_handle %p.\n", *shared_handle);
1862 TRACE(
"iface %p, src_surface %p, src_rect %s, dst_surface %p, dst_point %p.\n",
1872 WARN(
"Surface formats (%#x/%#x) don't match.\n",
1881 WARN(
"Cannot use UpdateSurface with multisampled surfaces.\n");
1893 src->sub_resource_idx, &src_box, 0);
1906 IDirect3DBaseTexture9 *src_texture, IDirect3DBaseTexture9 *dst_texture)
1912 TRACE(
"iface %p, src_texture %p, dst_texture %p.\n", iface, src_texture, dst_texture);
1919 WARN(
"Source or destination is managed; returning D3DERR_INVALIDCALL.\n");
1940 RECT dst_rect, src_rect;
1943 TRACE(
"iface %p, render_target %p, dst_surface %p.\n", iface, render_target, dst_surface);
1945 if (!render_target || !dst_surface)
1974 TRACE(
"iface %p, swapchain %u, dst_surface %p.\n", iface,
swapchain, dst_surface);
1977 if (swapchain < device->implicit_swapchain_count)
1995 TRACE(
"iface %p, src_surface %p, src_rect %s, dst_surface %p, dst_rect %s, filter %#x.\n",
2015 WARN(
"Destination resource is not in DEFAULT pool.\n");
2020 WARN(
"Source resource is not in DEFAULT pool.\n");
2026 WARN(
"Destination is a regular texture.\n");
2034 WARN(
"Rejecting depth / stencil blit while in scene.\n");
2041 WARN(
"Rejecting depth / stencil blit with invalid source rect %s.\n",
2049 WARN(
"Rejecting depth / stencil blit with invalid destination rect %s.\n",
2056 WARN(
"Rejecting depth / stencil blit with mismatched surface sizes.\n");
2062 dst->sub_resource_idx, dst_rect,
src->wined3d_texture,
src->sub_resource_idx,
2079 ((
color >> 16) & 0xff) / 255.0f,
2080 ((
color >> 8) & 0xff) / 255.0f,
2081 (
color & 0xff) / 255.0f,
2082 ((
color >> 24) & 0xff) / 255.0f,
2090 TRACE(
"iface %p, surface %p, rect %p, color 0x%08lx.\n", iface, surface,
rect,
color);
2107 WARN(
"Colour fills are not allowed on surfaces with resource access %#x.\n",
desc.access);
2113 WARN(
"Colorfill is not allowed on non-RT textures, returning D3DERR_INVALIDCALL.\n");
2119 WARN(
"Colorfill is not allowed on depth stencil surfaces, returning D3DERR_INVALIDCALL.\n");
2142 void *user_mem =
NULL;
2144 TRACE(
"iface %p, width %u, height %u, format %#x, pool %#x, surface %p, shared_handle %p.\n",
2150 WARN(
"Attempting to create a managed offscreen plain surface.\n");
2156 if (!
device->d3d_parent->extended)
2158 WARN(
"Trying to create a shared or user memory surface on a non-ex device.\n");
2163 user_mem = *shared_handle;
2168 WARN(
"Trying to create a shared surface in pool %#x.\n",
pool);
2171 FIXME(
"Resource sharing not implemented, *shared_handle %p.\n", *shared_handle);
2179 if (!
device->d3d_parent->extended)
2193 TRACE(
"iface %p, idx %lu, surface %p.\n", iface,
idx, surface);
2197 WARN(
"Invalid index %lu specified.\n",
idx);
2201 if (!
idx && !surface_impl)
2203 WARN(
"Trying to set render target 0 to NULL.\n");
2209 WARN(
"Render target surface does not match device.\n");
2221 device->render_targets[
idx] = surface_impl;
2235 TRACE(
"iface %p, idx %lu, surface %p.\n", iface,
idx, surface);
2242 WARN(
"Invalid index %lu specified.\n",
idx);
2320 TRACE(
"iface %p.\n", iface);
2335 TRACE(
"iface %p.\n", iface);
2353 if (surface && surface->
texture)
2365 TRACE(
"iface %p, rect_count %lu, rects %p, flags %#lx, color 0x%08lx, z %.8e, stencil %lu.\n",
2368 if (rect_count && !rects)
2370 WARN(
"count %lu with NULL rects.\n", rect_count);
2437 TRACE(
"iface %p, viewport %p.\n", iface, viewport);
2458 TRACE(
"iface %p, viewport %p.\n", iface, viewport);
2478 TRACE(
"iface %p, material %p.\n", iface, material);
2492 TRACE(
"iface %p, material %p.\n", iface, material);
2496 memcpy(material, &
device->stateblock_state->material,
sizeof(*material));
2602 if (!(dst_texture =
state->textures[0]))
2660 TRACE(
"iface %p, type %#x, stateblock %p.\n", iface,
type, stateblock);
2664 WARN(
"Unexpected stateblock type, returning D3DERR_INVALIDCALL.\n");
2672 WARN(
"Trying to create a stateblock while recording, returning D3DERR_INVALIDCALL.\n");
2677 if (!(
object =
calloc(1,
sizeof(*
object))))
2683 WARN(
"Failed to initialize stateblock, hr %#lx.\n",
hr);
2688 TRACE(
"Created stateblock %p.\n",
object);
2689 *stateblock = &
object->IDirect3DStateBlock9_iface;
2700 TRACE(
"iface %p.\n", iface);
2706 WARN(
"Trying to begin a stateblock while recording, returning D3DERR_INVALIDCALL.\n");
2724 TRACE(
"iface %p, stateblock %p.\n", iface, stateblock);
2730 WARN(
"Trying to end a stateblock, but no stateblock is being recorded.\n");
2739 if (!(
object =
calloc(1,
sizeof(*
object))))
2748 WARN(
"Failed to initialize stateblock, hr %#lx.\n",
hr);
2754 TRACE(
"Created stateblock %p.\n",
object);
2755 *stateblock = &
object->IDirect3DStateBlock9_iface;
2765 TRACE(
"iface %p, clip_status %p.\n", iface, clip_status);
2779 TRACE(
"iface %p, clip_status %p.\n", iface, clip_status);
2795 TRACE(
"iface %p, stage %lu, texture %p.\n", iface, stage,
texture);
2805 WARN(
"Ignoring invalid stage %lu.\n", stage);
2832 TRACE(
"iface %p, stage %lu, texture %p.\n", iface, stage,
texture);
2847 device->auto_mipmaps |= 1u << stage;
2849 device->auto_mipmaps &= ~(1u << stage);
2899 TRACE(
"iface %p, stage %lu, state %#x, value %p.\n", iface, stage,
state,
value);
2903 WARN(
"Invalid state %#x passed.\n",
state);
2919 TRACE(
"iface %p, stage %lu, state %#x, value %#lx.\n", iface, stage,
state,
value);
2923 WARN(
"Invalid state %#x passed.\n",
state);
2940 TRACE(
"iface %p, sampler_idx %lu, state %#x, value %p.\n", iface, sampler_idx,
state,
value);
2947 WARN(
"Invalid sampler %lu.\n", sampler_idx);
2982 TRACE(
"iface %p, pass_count %p.\n", iface, pass_count);
2994 WARN(
"iface %p, palette_idx %u, entries %p unimplemented.\n", iface, palette_idx, entries);
3007 FIXME(
"iface %p, palette_idx %u, entries %p unimplemented.\n", iface, palette_idx, entries);
3014 WARN(
"iface %p, palette_idx %u unimplemented.\n", iface, palette_idx);
3021 FIXME(
"iface %p, palette_idx %p.\n", iface, palette_idx);
3030 TRACE(
"iface %p, rect %p.\n", iface,
rect);
3043 TRACE(
"iface %p, rect %p.\n", iface,
rect);
3046 *
rect =
device->stateblock_state->scissor_rect;
3056 TRACE(
"iface %p, software %#x.\n", iface, software);
3070 TRACE(
"iface %p.\n", iface);
3084 TRACE(
"iface %p, segment_count %.8e.\n", iface, segment_count);
3098 TRACE(
"iface %p.\n", iface);
3112 unsigned int i,
map;
3124 int base_vertex,
unsigned int start_vertex,
unsigned int vertex_count)
3140 wined3d_decl =
state->vertex_declaration;
3144 if (base_vertex >= 0 || start_vertex >= -base_vertex)
3145 start_vertex += base_vertex;
3147 FIXME(
"System memory vertex data offset is negative.\n");
3154 dst_buffer =
stream->buffer;
3163 dst_resource, 0,
box.left, 0, 0,
3165 ERR(
"Failed to update buffer.\n");
3170 unsigned int *start_idx,
unsigned int idx_count)
3187 src_offset = (*start_idx) * idx_size;
3193 ERR(
"Failed to map index buffer, hr %#lx.\n",
hr);
3242 TRACE(
"iface %p, primitive_type %#x, start_vertex %u, primitive_count %u.\n",
3243 iface, primitive_type, start_vertex, primitive_count);
3246 if (!
device->stateblock_state->vertex_declaration)
3249 WARN(
"Called without a valid vertex declaration set.\n");
3275 unsigned int index_count;
3277 TRACE(
"iface %p, primitive_type %#x, base_vertex_idx %u, min_vertex_idx %u, "
3278 "vertex_count %u, start_idx %u, primitive_count %u.\n",
3279 iface, primitive_type, base_vertex_idx, min_vertex_idx,
3283 if (!
device->stateblock_state->vertex_declaration)
3286 WARN(
"Called without a valid vertex declaration set.\n");
3289 if (!
device->stateblock_state->index_buffer)
3292 WARN(
"Called without a valid index buffer set.\n");
3306 device->stateblock_state->streams[0].frequency);
3319 unsigned int vb_pos;
3322 TRACE(
"iface %p, primitive_type %#x, primitive_count %u, data %p, stride %u.\n",
3323 iface, primitive_type, primitive_count,
data,
stride);
3327 WARN(
"stride is 0, returning D3DERR_INVALIDCALL.\n");
3330 if (!primitive_count)
3332 WARN(
"primitive_count is 0, returning D3D_OK.\n");
3338 if (!
device->stateblock_state->vertex_declaration)
3341 WARN(
"Called without a valid vertex declaration set.\n");
3373 const void *vertex_data,
UINT vertex_stride)
3379 UINT idx_size = idx_count * idx_fmt_size;
3380 UINT vb_pos, ib_pos;
3383 TRACE(
"iface %p, primitive_type %#x, min_vertex_idx %u, vertex_count %u, primitive_count %u, "
3384 "index_data %p, index_format %#x, vertex_data %p, vertex_stride %u.\n",
3385 iface, primitive_type, min_vertex_idx,
vertex_count, primitive_count,
3386 index_data, index_format, vertex_data, vertex_stride);
3390 WARN(
"vertex_stride is 0, returning D3DERR_INVALIDCALL.\n");
3393 if (!primitive_count)
3395 WARN(
"primitive_count is 0, returning D3D_OK.\n");
3401 if (!
device->stateblock_state->vertex_declaration)
3404 WARN(
"Called without a valid vertex declaration set.\n");
3409 (
char *)vertex_data + min_vertex_idx * vertex_stride, vtx_size, vertex_stride, &vb_pos)))
3413 index_data, idx_size, idx_fmt_size, &ib_pos)))
3428 vb_pos / vertex_stride - min_vertex_idx, ib_pos / idx_fmt_size, idx_count, 0,
3429 device->stateblock_state->streams[0].frequency);
3451 unsigned int i,
map;
3454 TRACE(
"iface %p, src_start_idx %u, dst_idx %u, vertex_count %u, dst_buffer %p, declaration %p, flags %#lx.\n",
3474 ERR(
"Failed to set stream source.\n");
3490 ERR(
"Failed to set stream source.\n");
3509 WARN(
"Caller passed a NULL declaration, returning D3DERR_INVALIDCALL.\n");
3514 *
declaration = &
object->IDirect3DVertexDeclaration9_iface;
3572 TRACE(
"Searching for declaration for fvf %08lx... ",
fvf);
3575 high =
device->fvf_decl_count - 1;
3578 p = (low + high) >> 1;
3583 TRACE(
"found %p.\n", fvf_decls[
p].decl);
3584 return fvf_decls[
p].
decl;
3592 TRACE(
"not found. Creating and inserting at position %d.\n", low);
3606 if (!(fvf_decls =
realloc(fvf_decls,
sizeof(*fvf_decls) * (
device->fvf_decl_size + grow))))
3611 device->fvf_decls = fvf_decls;
3612 device->fvf_decl_size += grow;
3615 d3d9_declaration->
fvf =
fvf;
3620 memmove(fvf_decls + low + 1, fvf_decls + low,
sizeof(*fvf_decls) * (
device->fvf_decl_count - low));
3622 fvf_decls[low].
fvf =
fvf;
3623 ++
device->fvf_decl_count;
3635 TRACE(
"iface %p, fvf %#lx.\n", iface, fvf);
3639 WARN(
"%#lx is not a valid FVF.\n", fvf);
3647 ERR(
"Failed to create a vertex declaration for fvf %#lx.\n", fvf);
3663 TRACE(
"iface %p, fvf %p.\n", iface,
fvf);
3669 *
fvf = d3d9_declaration->
fvf;
3677 TRACE(
"Returning FVF %#lx.\n", *
fvf);
3683 const DWORD *byte_code, IDirect3DVertexShader9 **
shader)
3689 TRACE(
"iface %p, byte_code %p, shader %p.\n", iface, byte_code,
shader);
3691 if (!(
object =
calloc(1,
sizeof(*
object))))
3697 WARN(
"Failed to initialize vertex shader, hr %#lx.\n",
hr);
3702 TRACE(
"Created vertex shader %p.\n",
object);
3703 *
shader = &
object->IDirect3DVertexShader9_iface;
3755 TRACE(
"iface %p, reg_idx %u, data %p, count %u.\n", iface, reg_idx,
data,
count);
3759 WARN(
"Trying to access %u constants, but d3d9 only supports %u\n",
3778 TRACE(
"iface %p, start_idx %u, constants %p, count %u.\n", iface, start_idx,
constants,
count);
3793 TRACE(
"iface %p, reg_idx %u, data %p, count %u.\n", iface, reg_idx,
data,
count);
3809 TRACE(
"iface %p, start_idx %u, constants %p, count %u.\n", iface, start_idx,
constants,
count);
3824 TRACE(
"iface %p, reg_idx %u, data %p, count %u.\n", iface, reg_idx,
data,
count);
3839 TRACE(
"iface %p, start_idx %u, constants %p, count %u.\n", iface, start_idx,
constants,
count);
3856 TRACE(
"iface %p, stream_idx %u, buffer %p, offset %u, stride %u.\n",
3861 WARN(
"Stream index %u out of range.\n", stream_idx);
3887 device->sysmem_vb |= (1u << stream_idx);
3889 device->sysmem_vb &= ~(1u << stream_idx);
3905 TRACE(
"iface %p, stream_idx %u, buffer %p, offset %p, stride %p.\n",
3913 WARN(
"Stream index %u out of range.\n", stream_idx);
3918 stream = &
device->stateblock_state->streams[stream_idx];
3940 TRACE(
"iface %p, stream_idx %u, freq %u.\n", iface, stream_idx, freq);
3954 TRACE(
"iface %p, stream_idx %u, freq %p.\n", iface, stream_idx, freq);
3957 stream = &
device->stateblock_state->streams[stream_idx];
4014 const DWORD *byte_code, IDirect3DPixelShader9 **
shader)
4020 TRACE(
"iface %p, byte_code %p, shader %p.\n", iface, byte_code,
shader);
4022 if (!(
object =
calloc(1,
sizeof(*
object))))
4024 FIXME(
"Failed to allocate pixel shader memory.\n");
4031 WARN(
"Failed to initialize pixel shader, hr %#lx.\n",
hr);
4036 TRACE(
"Created pixel shader %p.\n",
object);
4037 *
shader = &
object->IDirect3DPixelShader9_iface;
4091 TRACE(
"iface %p, reg_idx %u, data %p, count %u.\n", iface, reg_idx,
data,
count);
4107 TRACE(
"iface %p, start_idx %u, constants %p, count %u.\n", iface, start_idx,
constants,
count);
4122 TRACE(
"iface %p, reg_idx %u, data %p, count %u.\n", iface, reg_idx,
data,
count);
4138 TRACE(
"iface %p, start_idx %u, constants %p, count %u.\n", iface, start_idx,
constants,
count);
4153 TRACE(
"iface %p, reg_idx %u, data %p, count %u.\n", iface, reg_idx,
data,
count);
4168 TRACE(
"iface %p, start_idx %u, constants %p, count %u.\n", iface, start_idx,
constants,
count);
4180 FIXME(
"iface %p, handle %#x, segment_count %p, patch_info %p unimplemented.\n",
4181 iface,
handle, segment_count, patch_info);
4188 FIXME(
"iface %p, handle %#x, segment_count %p, patch_info %p unimplemented.\n",
4189 iface,
handle, segment_count, patch_info);
4195 FIXME(
"iface %p, handle %#x unimplemented.\n", iface,
handle);
4207 if (!(
object =
calloc(1,
sizeof(*
object))))
4213 WARN(
"Failed to initialize query, hr %#lx.\n",
hr);
4218 TRACE(
"Created query %p.\n",
object);
4219 if (
query) *
query = &
object->IDirect3DQuery9_iface;
4228 FIXME(
"iface %p, width %u, height %u, rows %p, columns %p stub!\n",
4238 FIXME(
"iface %p, src_surface %p, dst_surface %p, src_descs %p, rect_count %u, "
4239 "dst_descs %p, operation %#x, offset_x %u, offset_y %u stub!\n",
4240 iface, src_surface, dst_surface, src_descs, rect_count,
4241 dst_descs,
operation, offset_x, offset_y);
4247 const RECT *src_rect,
const RECT *dst_rect,
HWND dst_window_override,
4255 TRACE(
"iface %p, src_rect %s, dst_rect %s, dst_window_override %p, dirty_region %p, flags %#lx.\n",
4257 dst_window_override, dirty_region,
flags);
4263 FIXME(
"Ignoring dirty_region %p.\n", dirty_region);
4266 for (
i = 0;
i <
device->implicit_swapchain_count; ++
i)
4297 FIXME(
"iface %p, swapchain_idx %u stub!\n", iface, swapchain_idx);
4305 FIXME(
"iface %p, resources %p, resource_count %u stub!\n",
4315 TRACE(
"iface %p, max_latency %u.\n", iface, max_latency);
4317 if (max_latency > 30)
4331 TRACE(
"iface %p, max_latency %p.\n", iface, max_latency);
4345 TRACE(
"iface %p, dst_window %p.\n", iface, dst_window);
4369 TRACE(
"iface %p, width %u, height %u, format %#x, multisample_type %#x, multisample_quality %lu, "
4370 "lockable %#x, surface %p, shared_handle %p, usage %#lx.\n",
4372 lockable, surface, shared_handle,
usage);
4383 FIXME(
"Resource sharing not implemented, *shared_handle %p.\n", *shared_handle);
4397 FIXME(
"iface %p, width %u, height %u, format %#x, pool %#x, surface %p, shared_handle %p, usage %#lx stub!\n",
4410 TRACE(
"iface %p, width %u, height %u, format %#x, multisample_type %#x, multisample_quality %lu, "
4411 "discard %#x, surface %p, shared_handle %p, usage %#lx.\n",
4413 discard, surface, shared_handle,
usage);
4422 FIXME(
"Resource sharing not implemented, *shared_handle %p.\n", *shared_handle);
4438 TRACE(
"iface %p, present_parameters %p, mode %p.\n", iface, present_parameters,
mode);
4442 WARN(
"Mode can be passed if and only if Windowed is FALSE.\n");
4449 WARN(
"Mode and back buffer mismatch (mode %ux%u, backbuffer %ux%u).\n",
4465 TRACE(
"iface %p, swapchain_idx %u, mode %p, rotation %p.\n",
4466 iface, swapchain_idx,
mode, rotation);
4656 else if (
device->d3d_parent->extended)
4666 TRACE(
"device_parent %p, type %#x, wined3d_texture %p, sub_resource_idx %u, parent %p, parent_ops %p.\n",
4673 if (!(d3d_volume =
calloc(1,
sizeof(*d3d_volume))))
4678 TRACE(
"Created volume %p.\n", d3d_volume);
4682 ERR(
"Unhandled resource type %#x.\n",
type);
4699#if defined(__i386__) && defined(_MSC_VER)
4702 cw = (cw & ~0xf3f) | 0x3f;
4704#elif defined(__i386__) || (defined(__x86_64__) && !defined(__arm64ec__) && (defined(__GNUC__) || defined(__clang__)))
4706 __asm__ volatile (
"fnstcw %0" :
"=m" (cw));
4707 cw = (cw & ~0xf3f) | 0x3f;
4708 __asm__ volatile (
"fldcw %0" : :
"m" (cw));
4710 FIXME(
"FPU setup not implemented for this platform.\n");
4722 unsigned int output_idx;
4739 if (output_idx >=
parent->wined3d_output_count)
4743 FIXME(
"Ignoring display mode.\n");
4759 WARN(
"Failed to create wined3d device, hr %#lx.\n",
hr);
4774 ERR(
"Failed to create the primary stateblock, hr %#lx.\n",
hr);
4794 ERR(
"Failed to acquire focus window, hr %#lx.\n",
hr);
4801 if (!(swapchain_desc =
malloc(
sizeof(*swapchain_desc) *
count)))
4803 ERR(
"Failed to allocate wined3d parameters.\n");
4817 free(swapchain_desc);
4829 WARN(
"Failed to create swapchain, hr %#lx.\n",
hr);
4831 free(swapchain_desc);
4849 free(swapchain_desc);
4857 &swapchain_desc[
i],
parameters[
i].PresentationInterval);
4862 free(swapchain_desc);
#define DECLSPEC_HOTPATCH
COMPILER_DEPENDENT_UINT64 UINT64
#define InterlockedIncrement
#define InterlockedDecrement
static const char * wine_dbgstr_rect(const RECT *prc)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
#define STDMETHODCALLTYPE
void CDECL wined3d_device_context_flush_mapped_buffer(struct wined3d_device_context *context, struct wined3d_buffer *buffer)
#define D3DERR_INVALIDCALL
void volume_init(struct d3d8_volume *volume, struct wined3d_texture *wined3d_texture, unsigned int sub_resource_idx, const struct wined3d_parent_ops **parent_ops)
static enum wined3d_device_type wined3d_device_type_from_d3d(D3DDEVTYPE type)
static D3DMULTISAMPLE_TYPE d3dmultisample_type_from_wined3d(enum wined3d_multisample_type type)
static unsigned int wined3d_usage_from_d3d(D3DPOOL pool, DWORD usage)
#define D3DPRESENTFLAGS_MASK
static unsigned int wined3daccess_from_d3dpool(D3DPOOL pool, unsigned int usage)
enum _D3DTEXTURESTAGESTATETYPE D3DTEXTURESTAGESTATETYPE
enum _D3DBACKBUFFER_TYPE D3DBACKBUFFER_TYPE
#define D3DPS_VERSION(major, minor)
#define D3DPRESENTFLAG_LOCKABLE_BACKBUFFER
enum _D3DDEVTYPE D3DDEVTYPE
#define D3DUSAGE_WRITEONLY
enum _D3DSWAPEFFECT D3DSWAPEFFECT
#define D3DLOCK_NO_DIRTY_UPDATE
#define D3DLOCK_NOOVERWRITE
enum _D3DTRANSFORMSTATETYPE D3DTRANSFORMSTATETYPE
#define D3DLOCK_NOSYSLOCK
#define D3DVS_VERSION(major, minor)
#define D3DUSAGE_RENDERTARGET
enum _D3DFORMAT D3DFORMAT
#define D3DUSAGE_DEPTHSTENCIL
enum _D3DTEXTUREFILTERTYPE D3DTEXTUREFILTERTYPE
enum _D3DMULTISAMPLE_TYPE D3DMULTISAMPLE_TYPE
enum _D3DSTATEBLOCKTYPE D3DSTATEBLOCKTYPE
#define D3DCREATE_NOWINDOWCHANGES
#define IDirect3DSwapChain9Ex_Release(p)
#define IDirect3D9Ex_QueryInterface(p, a, b)
#define IDirect3DQuery9_Release(p)
#define IDirect3DSwapChain9Ex_GetBackBuffer(p, a, b, c)
#define IDirect3DIndexBuffer9_AddRef(p)
#define IDirect3DSwapChain9Ex_AddRef(p)
#define IDirect3D9Ex_Release(p)
#define IDirect3DDevice9Ex_Release(p)
#define IDirect3DVertexShader9_AddRef(p)
#define S_PRESENT_OCCLUDED
#define IDirect3D9_GetAdapterDisplayMode(p, a, b)
#define D3DCREATE_ADAPTERGROUP_DEVICE
#define IDirect3DVertexDeclaration9_AddRef(p)
#define IDirect3DVertexDeclaration9_Release(p)
#define IDirect3DVertexBuffer9_AddRef(p)
#define IDirect3DSurface9_AddRef(p)
#define IDirect3DDevice9Ex_AddRef(p)
#define IDirect3DSurface9_GetDesc(p, a)
#define IDirect3DBaseTexture9_Release(p)
#define IDirect3DBaseTexture9_AddRef(p)
#define IDirect3DDevice9Ex_QueryInterface(p, a, b)
#define IDirect3DSurface9_Release(p)
#define IDirect3DTexture9_Release(p)
#define IDirect3D9Ex_AddRef(p)
#define IDirect3DPixelShader9_AddRef(p)
enum _D3DQUERYTYPE D3DQUERYTYPE
#define D3D_MAX_SIMULTANEOUS_RENDERTARGETS
enum _D3DSAMPLERSTATETYPE D3DSAMPLERSTATETYPE
enum _D3DCOMPOSERECTSOP D3DCOMPOSERECTSOP
#define D3DVERTEXTEXTURESAMPLER0
#define D3DLOCK_DONOTWAIT
#define D3DUSAGE_AUTOGENMIPMAP
#define D3DVERTEXTEXTURESAMPLER3
static void CDECL device_parent_mode_changed(struct wined3d_device_parent *device_parent)
static void CDECL device_parent_activate(struct wined3d_device_parent *device_parent, BOOL activate)
static HRESULT CDECL device_parent_texture_sub_resource_created(struct wined3d_device_parent *device_parent, enum wined3d_resource_type type, struct wined3d_texture *wined3d_texture, unsigned int sub_resource_idx, void **parent, const struct wined3d_parent_ops **parent_ops)
static void CDECL device_parent_wined3d_device_created(struct wined3d_device_parent *device_parent, struct wined3d_device *wined3d_device)
HRESULT indexbuffer_init(struct d3d8_indexbuffer *buffer, struct d3d8_device *device, UINT size, DWORD usage, D3DFORMAT format, D3DPOOL pool)
HRESULT vertexbuffer_init(struct d3d8_vertexbuffer *buffer, struct d3d8_device *device, UINT size, DWORD usage, DWORD fvf, D3DPOOL pool)
static D3DSWAPEFFECT d3dswapeffect_from_wined3dswapeffect(enum wined3d_swap_effect effect)
static enum wined3d_transform_state wined3d_transform_state_from_d3d(D3DTRANSFORMSTATETYPE state)
static struct d3d8_device * device_from_device_parent(struct wined3d_device_parent *device_parent)
static enum wined3d_swap_interval wined3dswapinterval_from_d3d(DWORD interval)
static HRESULT CDECL reset_enum_callback(struct wined3d_resource *resource)
static enum wined3d_multisample_type wined3d_multisample_type_from_d3d(D3DMULTISAMPLE_TYPE type)
static UINT vertex_count_from_primitive_count(D3DPRIMITIVETYPE primitive_type, UINT primitive_count)
HRESULT device_init(struct d3d8_device *device, struct d3d8 *parent, struct wined3d *wined3d, UINT adapter, D3DDEVTYPE device_type, HWND focus_window, DWORD flags, D3DPRESENT_PARAMETERS *parameters)
D3DFORMAT d3dformat_from_wined3dformat(enum wined3d_format_id format)
static void device_reset_viewport_state(struct d3d8_device *device)
static void resolve_depth_buffer(struct d3d8_device *device)
static enum wined3d_primitive_type wined3d_primitive_type_from_d3d(D3DPRIMITIVETYPE type)
static void setup_fpu(void)
static enum wined3d_render_state wined3d_render_state_from_d3d(D3DRENDERSTATETYPE state)
unsigned int wined3dmapflags_from_d3dmapflags(unsigned int flags, unsigned int usage)
static enum wined3d_swap_effect wined3dswapeffect_from_d3dswapeffect(D3DSWAPEFFECT effect)
static void present_parameters_from_wined3d_swapchain_desc(D3DPRESENT_PARAMETERS *present_parameters, const struct wined3d_swapchain_desc *swapchain_desc, DWORD presentation_interval)
enum wined3d_format_id wined3dformat_from_d3dformat(D3DFORMAT format)
struct d3d9_indexbuffer * unsafe_impl_from_IDirect3DIndexBuffer9(IDirect3DIndexBuffer9 *iface)
struct d3d9_vertexbuffer * unsafe_impl_from_IDirect3DVertexBuffer9(IDirect3DVertexBuffer9 *iface)
static HRESULT WINAPI DECLSPEC_HOTPATCH d3d9_device_PresentEx(IDirect3DDevice9Ex *iface, const RECT *src_rect, const RECT *dst_rect, HWND dst_window_override, const RGNDATA *dirty_region, DWORD flags)
static BOOL wined3d_swapchain_desc_from_d3d9(struct wined3d_swapchain_desc *swapchain_desc, struct wined3d_output *output, const D3DPRESENT_PARAMETERS *present_parameters, BOOL extended)
static HRESULT WINAPI d3d9_device_SetMaximumFrameLatency(IDirect3DDevice9Ex *iface, UINT max_latency)
static HRESULT WINAPI d3d9_device_SetScissorRect(IDirect3DDevice9Ex *iface, const RECT *rect)
static HRESULT WINAPI d3d9_device_SetGPUThreadPriority(IDirect3DDevice9Ex *iface, INT priority)
static void d3d9_device_upload_sysmem_vertex_buffers(struct d3d9_device *device, int base_vertex, unsigned int start_vertex, unsigned int vertex_count)
static HRESULT WINAPI d3d9_device_SetDepthStencilSurface(IDirect3DDevice9Ex *iface, IDirect3DSurface9 *depth_stencil)
static HRESULT WINAPI d3d9_device_GetDeviceCaps(IDirect3DDevice9Ex *iface, D3DCAPS9 *caps)
static HRESULT WINAPI d3d9_device_SetTransform(IDirect3DDevice9Ex *iface, D3DTRANSFORMSTATETYPE state, const D3DMATRIX *matrix)
static enum wined3d_texture_filter_type wined3d_texture_filter_type_from_d3d(D3DTEXTUREFILTERTYPE type)
static HRESULT WINAPI d3d9_device_GetLight(IDirect3DDevice9Ex *iface, DWORD index, D3DLIGHT9 *light)
static HRESULT WINAPI d3d9_device_StretchRect(IDirect3DDevice9Ex *iface, IDirect3DSurface9 *src_surface, const RECT *src_rect, IDirect3DSurface9 *dst_surface, const RECT *dst_rect, D3DTEXTUREFILTERTYPE filter)
static HRESULT WINAPI d3d9_device_GetClipStatus(IDirect3DDevice9Ex *iface, D3DCLIPSTATUS9 *clip_status)
static HRESULT WINAPI d3d9_device_DrawIndexedPrimitive(IDirect3DDevice9Ex *iface, D3DPRIMITIVETYPE primitive_type, INT base_vertex_idx, UINT min_vertex_idx, UINT vertex_count, UINT start_idx, UINT primitive_count)
static float WINAPI d3d9_device_GetNPatchMode(IDirect3DDevice9Ex *iface)
static HRESULT WINAPI d3d9_device_DeletePatch(IDirect3DDevice9Ex *iface, UINT handle)
static HRESULT WINAPI d3d9_device_SetVertexDeclaration(IDirect3DDevice9Ex *iface, IDirect3DVertexDeclaration9 *declaration)
static HRESULT WINAPI d3d9_device_SetPixelShader(IDirect3DDevice9Ex *iface, IDirect3DPixelShader9 *shader)
static HRESULT WINAPI d3d9_device_SetVertexShaderConstantI(IDirect3DDevice9Ex *iface, UINT reg_idx, const int *data, UINT count)
static HRESULT WINAPI d3d9_device_GetClipPlane(IDirect3DDevice9Ex *iface, DWORD index, float *plane)
static HRESULT WINAPI DECLSPEC_HOTPATCH d3d9_device_Reset(IDirect3DDevice9Ex *iface, D3DPRESENT_PARAMETERS *present_parameters)
static HRESULT WINAPI d3d9_device_SetStreamSourceFreq(IDirect3DDevice9Ex *iface, UINT stream_idx, UINT freq)
static HRESULT WINAPI d3d9_device_GetVertexShader(IDirect3DDevice9Ex *iface, IDirect3DVertexShader9 **shader)
static HRESULT WINAPI d3d9_device_SetNPatchMode(IDirect3DDevice9Ex *iface, float segment_count)
static HRESULT WINAPI d3d9_device_CreateVolumeTexture(IDirect3DDevice9Ex *iface, UINT width, UINT height, UINT depth, UINT levels, DWORD usage, D3DFORMAT format, D3DPOOL pool, IDirect3DVolumeTexture9 **texture, HANDLE *shared_handle)
static HRESULT WINAPI d3d9_device_CreateVertexShader(IDirect3DDevice9Ex *iface, const DWORD *byte_code, IDirect3DVertexShader9 **shader)
static HRESULT WINAPI DECLSPEC_HOTPATCH d3d9_device_ResetEx(IDirect3DDevice9Ex *iface, D3DPRESENT_PARAMETERS *present_parameters, D3DDISPLAYMODEEX *mode)
static const struct IDirect3DDevice9ExVtbl d3d9_device_vtbl
static HRESULT WINAPI d3d9_device_GetStreamSourceFreq(IDirect3DDevice9Ex *iface, UINT stream_idx, UINT *freq)
static HRESULT WINAPI d3d9_device_GetLightEnable(IDirect3DDevice9Ex *iface, DWORD index, BOOL *enabled)
static HRESULT WINAPI d3d9_device_GetFVF(IDirect3DDevice9Ex *iface, DWORD *fvf)
static HRESULT WINAPI d3d9_device_SetViewport(IDirect3DDevice9Ex *iface, const D3DVIEWPORT9 *viewport)
static HRESULT WINAPI d3d9_device_BeginScene(IDirect3DDevice9Ex *iface)
static HRESULT WINAPI d3d9_device_GetGPUThreadPriority(IDirect3DDevice9Ex *iface, INT *priority)
static HRESULT WINAPI d3d9_device_CreateVertexDeclaration(IDirect3DDevice9Ex *iface, const D3DVERTEXELEMENT9 *elements, IDirect3DVertexDeclaration9 **declaration)
static HRESULT WINAPI d3d9_device_GetViewport(IDirect3DDevice9Ex *iface, D3DVIEWPORT9 *viewport)
static HRESULT WINAPI d3d9_device_CreateOffscreenPlainSurfaceEx(IDirect3DDevice9Ex *iface, UINT width, UINT height, D3DFORMAT format, D3DPOOL pool, IDirect3DSurface9 **surface, HANDLE *shared_handle, DWORD usage)
static HRESULT WINAPI d3d9_device_GetRasterStatus(IDirect3DDevice9Ex *iface, UINT swapchain, D3DRASTER_STATUS *raster_status)
static HRESULT WINAPI DECLSPEC_HOTPATCH d3d9_device_SetSamplerState(IDirect3DDevice9Ex *iface, DWORD sampler, D3DSAMPLERSTATETYPE state, DWORD value)
static HRESULT WINAPI d3d9_device_TestCooperativeLevel(IDirect3DDevice9Ex *iface)
static HRESULT WINAPI d3d9_device_GetMaterial(IDirect3DDevice9Ex *iface, D3DMATERIAL9 *material)
static HRESULT WINAPI d3d9_device_GetDisplayModeEx(IDirect3DDevice9Ex *iface, UINT swapchain_idx, D3DDISPLAYMODEEX *mode, D3DDISPLAYROTATION *rotation)
static UINT WINAPI d3d9_device_GetNumberOfSwapChains(IDirect3DDevice9Ex *iface)
static HRESULT WINAPI d3d9_device_CreateStateBlock(IDirect3DDevice9Ex *iface, D3DSTATEBLOCKTYPE type, IDirect3DStateBlock9 **stateblock)
static HRESULT WINAPI d3d9_device_SetClipStatus(IDirect3DDevice9Ex *iface, const D3DCLIPSTATUS9 *clip_status)
static HRESULT WINAPI d3d9_device_SetPixelShaderConstantB(IDirect3DDevice9Ex *iface, UINT reg_idx, const BOOL *data, UINT count)
static HRESULT WINAPI d3d9_device_GetFrontBufferData(IDirect3DDevice9Ex *iface, UINT swapchain, IDirect3DSurface9 *dst_surface)
static HRESULT WINAPI d3d9_device_DrawIndexedPrimitiveUP(IDirect3DDevice9Ex *iface, D3DPRIMITIVETYPE primitive_type, UINT min_vertex_idx, UINT vertex_count, UINT primitive_count, const void *index_data, D3DFORMAT index_format, const void *vertex_data, UINT vertex_stride)
static void d3d9_device_upload_managed_textures(struct d3d9_device *device)
static HRESULT WINAPI d3d9_device_CreateQuery(IDirect3DDevice9Ex *iface, D3DQUERYTYPE type, IDirect3DQuery9 **query)
static HRESULT WINAPI d3d9_device_GetDirect3D(IDirect3DDevice9Ex *iface, IDirect3D9 **d3d9)
static HRESULT WINAPI d3d9_device_GetCurrentTexturePalette(IDirect3DDevice9Ex *iface, UINT *palette_idx)
static HRESULT WINAPI d3d9_device_SetPaletteEntries(IDirect3DDevice9Ex *iface, UINT palette_idx, const PALETTEENTRY *entries)
void d3d9_caps_from_wined3dcaps(const struct d3d9 *d3d9, unsigned int adapter_ordinal, D3DCAPS9 *caps, const struct wined3d_caps *wined3d_caps)
static HRESULT WINAPI d3d9_device_SetMaterial(IDirect3DDevice9Ex *iface, const D3DMATERIAL9 *material)
static HRESULT WINAPI d3d9_device_GetPixelShaderConstantB(IDirect3DDevice9Ex *iface, UINT start_idx, BOOL *constants, UINT count)
static HRESULT WINAPI d3d9_device_UpdateTexture(IDirect3DDevice9Ex *iface, IDirect3DBaseTexture9 *src_texture, IDirect3DBaseTexture9 *dst_texture)
static HRESULT WINAPI d3d9_device_GetVertexShaderConstantF(IDirect3DDevice9Ex *iface, UINT start_idx, float *constants, UINT count)
BOOL is_gdi_compat_wined3dformat(enum wined3d_format_id format)
static HRESULT WINAPI d3d9_device_GetBackBuffer(IDirect3DDevice9Ex *iface, UINT swapchain, UINT backbuffer_idx, D3DBACKBUFFER_TYPE backbuffer_type, IDirect3DSurface9 **backbuffer)
static ULONG WINAPI d3d9on12_Release(IDirect3DDevice9On12 *iface)
static HRESULT WINAPI d3d9_device_CheckDeviceState(IDirect3DDevice9Ex *iface, HWND dst_window)
static void WINAPI d3d9_device_SetCursorPosition(IDirect3DDevice9Ex *iface, int x, int y, DWORD flags)
static HRESULT WINAPI d3d9_device_MultiplyTransform(IDirect3DDevice9Ex *iface, D3DTRANSFORMSTATETYPE state, const D3DMATRIX *matrix)
static HRESULT WINAPI d3d9_device_GetDisplayMode(IDirect3DDevice9Ex *iface, UINT swapchain, D3DDISPLAYMODE *mode)
static HRESULT WINAPI d3d9_device_GetScissorRect(IDirect3DDevice9Ex *iface, RECT *rect)
static HRESULT WINAPI d3d9_device_DrawPrimitive(IDirect3DDevice9Ex *iface, D3DPRIMITIVETYPE primitive_type, UINT start_vertex, UINT primitive_count)
static BOOL WINAPI d3d9_device_GetSoftwareVertexProcessing(IDirect3DDevice9Ex *iface)
static HRESULT WINAPI d3d9_device_SetDialogBoxMode(IDirect3DDevice9Ex *iface, BOOL enable)
static HRESULT WINAPI d3d9_device_GetRenderState(IDirect3DDevice9Ex *iface, D3DRENDERSTATETYPE state, DWORD *value)
static HRESULT WINAPI d3d9_device_CreateRenderTargetEx(IDirect3DDevice9Ex *iface, UINT width, UINT height, D3DFORMAT format, D3DMULTISAMPLE_TYPE multisample_type, DWORD multisample_quality, BOOL lockable, IDirect3DSurface9 **surface, HANDLE *shared_handle, DWORD usage)
static void d3d9_generate_auto_mipmaps(struct d3d9_device *device)
static HRESULT WINAPI d3d9_device_GetSamplerState(IDirect3DDevice9Ex *iface, DWORD sampler_idx, D3DSAMPLERSTATETYPE state, DWORD *value)
static HRESULT WINAPI d3d9_device_ComposeRects(IDirect3DDevice9Ex *iface, IDirect3DSurface9 *src_surface, IDirect3DSurface9 *dst_surface, IDirect3DVertexBuffer9 *src_descs, UINT rect_count, IDirect3DVertexBuffer9 *dst_descs, D3DCOMPOSERECTSOP operation, INT offset_x, INT offset_y)
static HRESULT WINAPI d3d9_device_SetVertexShaderConstantB(IDirect3DDevice9Ex *iface, UINT reg_idx, const BOOL *data, UINT count)
static struct d3d9_device * impl_from_IDirect3DDevice9On12(IDirect3DDevice9On12 *iface)
static enum wined3d_sampler_state wined3d_sampler_state_from_d3d(D3DSAMPLERSTATETYPE type)
static HRESULT WINAPI d3d9on12_ReturnUnderlyingResource(IDirect3DDevice9On12 *iface, IDirect3DResource9 *resource, UINT fence_count, UINT64 *signal_values, ID3D12Fence **fences)
const struct wined3d_parent_ops d3d9_null_wined3d_parent_ops
static void d3d9_device_flush_mapped_vertex_buffers(struct d3d9_device *device)
static HRESULT WINAPI d3d9_device_DrawPrimitiveUP(IDirect3DDevice9Ex *iface, D3DPRIMITIVETYPE primitive_type, UINT primitive_count, const void *data, UINT stride)
static HRESULT WINAPI d3d9_device_SetIndices(IDirect3DDevice9Ex *iface, IDirect3DIndexBuffer9 *buffer)
static HRESULT WINAPI d3d9on12_UnwrapUnderlyingResource(IDirect3DDevice9On12 *iface, IDirect3DResource9 *resource, ID3D12CommandQueue *queue, REFIID iid, void **out)
static HRESULT WINAPI d3d9_device_GetPixelShaderConstantF(IDirect3DDevice9Ex *iface, UINT start_idx, float *constants, UINT count)
static HRESULT WINAPI d3d9_device_GetVertexShaderConstantB(IDirect3DDevice9Ex *iface, UINT start_idx, BOOL *constants, UINT count)
static const struct wined3d_device_parent_ops d3d9_wined3d_device_parent_ops
static HRESULT d3d9_device_reset(struct d3d9_device *device, D3DPRESENT_PARAMETERS *present_parameters, D3DDISPLAYMODEEX *mode)
static HRESULT WINAPI d3d9_device_SetTexture(IDirect3DDevice9Ex *iface, DWORD stage, IDirect3DBaseTexture9 *texture)
static BOOL WINAPI d3d9_device_ShowCursor(IDirect3DDevice9Ex *iface, BOOL show)
static HRESULT WINAPI d3d9_device_SetCurrentTexturePalette(IDirect3DDevice9Ex *iface, UINT palette_idx)
static HRESULT WINAPI d3d9_device_Clear(IDirect3DDevice9Ex *iface, DWORD rect_count, const D3DRECT *rects, DWORD flags, D3DCOLOR color, float z, DWORD stencil)
static HRESULT d3d9_device_upload_sysmem_index_buffer(struct d3d9_device *device, unsigned int *start_idx, unsigned int idx_count)
static HRESULT WINAPI DECLSPEC_HOTPATCH d3d9_device_GetSwapChain(IDirect3DDevice9Ex *iface, UINT swapchain_idx, IDirect3DSwapChain9 **swapchain)
static HRESULT WINAPI d3d9on12_QueryInterface(IDirect3DDevice9On12 *iface, REFIID iid, void **out)
static HRESULT WINAPI d3d9_device_GetTexture(IDirect3DDevice9Ex *iface, DWORD stage, IDirect3DBaseTexture9 **texture)
static void d3d9_rts_flag_auto_gen_mipmap(struct d3d9_device *device)
static HRESULT WINAPI d3d9_device_CreateDepthStencilSurfaceEx(IDirect3DDevice9Ex *iface, UINT width, UINT height, D3DFORMAT format, D3DMULTISAMPLE_TYPE multisample_type, DWORD multisample_quality, BOOL discard, IDirect3DSurface9 **surface, HANDLE *shared_handle, DWORD usage)
static const struct IDirect3DDevice9On12Vtbl d3d9on12_vtbl
static HRESULT WINAPI d3d9_device_GetCreationParameters(IDirect3DDevice9Ex *iface, D3DDEVICE_CREATION_PARAMETERS *parameters)
static HRESULT WINAPI d3d9_device_CreateVertexBuffer(IDirect3DDevice9Ex *iface, UINT size, DWORD usage, DWORD fvf, D3DPOOL pool, IDirect3DVertexBuffer9 **buffer, HANDLE *shared_handle)
static HRESULT WINAPI d3d9_device_SetTextureStageState(IDirect3DDevice9Ex *iface, DWORD stage, D3DTEXTURESTAGESTATETYPE state, DWORD value)
static HRESULT WINAPI d3d9_device_UpdateSurface(IDirect3DDevice9Ex *iface, IDirect3DSurface9 *src_surface, const RECT *src_rect, IDirect3DSurface9 *dst_surface, const POINT *dst_point)
static HRESULT WINAPI d3d9_device_BeginStateBlock(IDirect3DDevice9Ex *iface)
static ULONG WINAPI d3d9on12_AddRef(IDirect3DDevice9On12 *iface)
static ULONG WINAPI DECLSPEC_HOTPATCH d3d9_device_Release(IDirect3DDevice9Ex *iface)
static HRESULT WINAPI d3d9_device_CreateCubeTexture(IDirect3DDevice9Ex *iface, UINT edge_length, UINT levels, DWORD usage, D3DFORMAT format, D3DPOOL pool, IDirect3DCubeTexture9 **texture, HANDLE *shared_handle)
static HRESULT WINAPI d3d9_device_GetRenderTarget(IDirect3DDevice9Ex *iface, DWORD idx, IDirect3DSurface9 **surface)
static HRESULT WINAPI d3d9_device_SetCursorProperties(IDirect3DDevice9Ex *iface, UINT hotspot_x, UINT hotspot_y, IDirect3DSurface9 *bitmap)
static HRESULT WINAPI d3d9_device_GetVertexShaderConstantI(IDirect3DDevice9Ex *iface, UINT start_idx, int *constants, UINT count)
static HRESULT WINAPI d3d9on12_GetD3D12Device(IDirect3DDevice9On12 *iface, REFIID iid, void **out)
static HRESULT WINAPI d3d9_device_GetStreamSource(IDirect3DDevice9Ex *iface, UINT stream_idx, IDirect3DVertexBuffer9 **buffer, UINT *offset, UINT *stride)
static HRESULT WINAPI d3d9_device_SetLight(IDirect3DDevice9Ex *iface, DWORD index, const D3DLIGHT9 *light)
static HRESULT WINAPI d3d9_device_SetSoftwareVertexProcessing(IDirect3DDevice9Ex *iface, BOOL software)
static HRESULT WINAPI d3d9_device_EndStateBlock(IDirect3DDevice9Ex *iface, IDirect3DStateBlock9 **stateblock)
static HRESULT WINAPI d3d9_device_CreatePixelShader(IDirect3DDevice9Ex *iface, const DWORD *byte_code, IDirect3DPixelShader9 **shader)
static HRESULT WINAPI DECLSPEC_HOTPATCH d3d9_device_Present(IDirect3DDevice9Ex *iface, const RECT *src_rect, const RECT *dst_rect, HWND dst_window_override, const RGNDATA *dirty_region)
static HRESULT WINAPI d3d9_device_GetPixelShaderConstantI(IDirect3DDevice9Ex *iface, UINT start_idx, int *constants, UINT count)
static void STDMETHODCALLTYPE d3d9_null_wined3d_object_destroyed(void *parent)
static HRESULT WINAPI DECLSPEC_HOTPATCH d3d9_device_CreateAdditionalSwapChain(IDirect3DDevice9Ex *iface, D3DPRESENT_PARAMETERS *present_parameters, IDirect3DSwapChain9 **swapchain)
static HRESULT WINAPI d3d9_device_GetVertexDeclaration(IDirect3DDevice9Ex *iface, IDirect3DVertexDeclaration9 **declaration)
static HRESULT WINAPI d3d9_device_GetPixelShader(IDirect3DDevice9Ex *iface, IDirect3DPixelShader9 **shader)
static HRESULT WINAPI DECLSPEC_HOTPATCH d3d9_device_EndScene(IDirect3DDevice9Ex *iface)
static HRESULT WINAPI d3d9_device_SetFVF(IDirect3DDevice9Ex *iface, DWORD fvf)
static HRESULT WINAPI d3d9_device_CheckResourceResidency(IDirect3DDevice9Ex *iface, IDirect3DResource9 **resources, UINT32 resource_count)
static HRESULT WINAPI d3d9_device_SetVertexShader(IDirect3DDevice9Ex *iface, IDirect3DVertexShader9 *shader)
static ULONG WINAPI d3d9_device_AddRef(IDirect3DDevice9Ex *iface)
static HRESULT WINAPI d3d9_device_SetConvolutionMonoKernel(IDirect3DDevice9Ex *iface, UINT width, UINT height, float *rows, float *columns)
static HRESULT WINAPI d3d9_device_CreateIndexBuffer(IDirect3DDevice9Ex *iface, UINT size, DWORD usage, D3DFORMAT format, D3DPOOL pool, IDirect3DIndexBuffer9 **buffer, HANDLE *shared_handle)
static HRESULT WINAPI d3d9_device_WaitForVBlank(IDirect3DDevice9Ex *iface, UINT swapchain_idx)
static void WINAPI d3d9_device_GetGammaRamp(IDirect3DDevice9Ex *iface, UINT swapchain, D3DGAMMARAMP *ramp)
static HRESULT WINAPI d3d9_device_GetTextureStageState(IDirect3DDevice9Ex *iface, DWORD stage, D3DTEXTURESTAGESTATETYPE state, DWORD *value)
static HRESULT WINAPI d3d9_device_ProcessVertices(IDirect3DDevice9Ex *iface, UINT src_start_idx, UINT dst_idx, UINT vertex_count, IDirect3DVertexBuffer9 *dst_buffer, IDirect3DVertexDeclaration9 *declaration, DWORD flags)
static HRESULT WINAPI d3d9_device_GetPaletteEntries(IDirect3DDevice9Ex *iface, UINT palette_idx, PALETTEENTRY *entries)
static HRESULT d3d9_device_create_surface(struct d3d9_device *device, unsigned int flags, enum wined3d_format_id format, enum wined3d_multisample_type multisample_type, unsigned int multisample_quality, unsigned int usage, unsigned int bind_flags, unsigned int access, unsigned int width, unsigned int height, void *user_mem, IDirect3DSurface9 **surface)
static HRESULT WINAPI d3d9_device_SetPixelShaderConstantI(IDirect3DDevice9Ex *iface, UINT reg_idx, const int *data, UINT count)
static HRESULT WINAPI d3d9_device_CreateRenderTarget(IDirect3DDevice9Ex *iface, UINT width, UINT height, D3DFORMAT format, D3DMULTISAMPLE_TYPE multisample_type, DWORD multisample_quality, BOOL lockable, IDirect3DSurface9 **surface, HANDLE *shared_handle)
static HRESULT WINAPI d3d9_device_CreateDepthStencilSurface(IDirect3DDevice9Ex *iface, UINT width, UINT height, D3DFORMAT format, D3DMULTISAMPLE_TYPE multisample_type, DWORD multisample_quality, BOOL discard, IDirect3DSurface9 **surface, HANDLE *shared_handle)
static HRESULT WINAPI d3d9_device_QueryInterface(IDirect3DDevice9Ex *iface, REFIID riid, void **out)
static void wined3d_color_from_d3dcolor(struct wined3d_color *wined3d_colour, D3DCOLOR d3d_colour)
static struct wined3d_vertex_declaration * device_get_fvf_declaration(struct d3d9_device *device, DWORD fvf)
static HRESULT WINAPI d3d9_device_SetClipPlane(IDirect3DDevice9Ex *iface, DWORD index, const float *plane)
static HRESULT WINAPI d3d9_device_SetPixelShaderConstantF(IDirect3DDevice9Ex *iface, UINT reg_idx, const float *data, UINT count)
static HRESULT WINAPI d3d9_device_GetTransform(IDirect3DDevice9Ex *iface, D3DTRANSFORMSTATETYPE state, D3DMATRIX *matrix)
static HRESULT WINAPI d3d9_device_CreateTexture(IDirect3DDevice9Ex *iface, UINT width, UINT height, UINT levels, DWORD usage, D3DFORMAT format, D3DPOOL pool, IDirect3DTexture9 **texture, HANDLE *shared_handle)
static HRESULT WINAPI d3d9_device_LightEnable(IDirect3DDevice9Ex *iface, DWORD index, BOOL enable)
static HRESULT d3d9_device_get_swapchains(struct d3d9_device *device)
static HRESULT WINAPI d3d9_device_DrawTriPatch(IDirect3DDevice9Ex *iface, UINT handle, const float *segment_count, const D3DTRIPATCH_INFO *patch_info)
static HRESULT WINAPI d3d9_device_GetDepthStencilSurface(IDirect3DDevice9Ex *iface, IDirect3DSurface9 **depth_stencil)
static HRESULT WINAPI d3d9_device_GetIndices(IDirect3DDevice9Ex *iface, IDirect3DIndexBuffer9 **buffer)
static HRESULT WINAPI d3d9_device_SetStreamSource(IDirect3DDevice9Ex *iface, UINT stream_idx, IDirect3DVertexBuffer9 *buffer, UINT offset, UINT stride)
static void WINAPI d3d9_device_SetGammaRamp(IDirect3DDevice9Ex *iface, UINT swapchain, DWORD flags, const D3DGAMMARAMP *ramp)
static HRESULT WINAPI d3d9_device_ValidateDevice(IDirect3DDevice9Ex *iface, DWORD *pass_count)
static UINT WINAPI d3d9_device_GetAvailableTextureMem(IDirect3DDevice9Ex *iface)
static HRESULT WINAPI d3d9_device_CreateOffscreenPlainSurface(IDirect3DDevice9Ex *iface, UINT width, UINT height, D3DFORMAT format, D3DPOOL pool, IDirect3DSurface9 **surface, HANDLE *shared_handle)
static HRESULT WINAPI d3d9_device_GetMaximumFrameLatency(IDirect3DDevice9Ex *iface, UINT *max_latency)
static HRESULT WINAPI d3d9_device_SetRenderTarget(IDirect3DDevice9Ex *iface, DWORD idx, IDirect3DSurface9 *surface)
static HRESULT WINAPI d3d9_device_DrawRectPatch(IDirect3DDevice9Ex *iface, UINT handle, const float *segment_count, const D3DRECTPATCH_INFO *patch_info)
static HRESULT WINAPI d3d9_device_GetRenderTargetData(IDirect3DDevice9Ex *iface, IDirect3DSurface9 *render_target, IDirect3DSurface9 *dst_surface)
static HRESULT WINAPI d3d9_device_SetVertexShaderConstantF(IDirect3DDevice9Ex *iface, UINT reg_idx, const float *data, UINT count)
static HRESULT WINAPI DECLSPEC_HOTPATCH d3d9_device_SetRenderState(IDirect3DDevice9Ex *iface, D3DRENDERSTATETYPE state, DWORD value)
static HRESULT WINAPI d3d9_device_EvictManagedResources(IDirect3DDevice9Ex *iface)
static HRESULT WINAPI d3d9_device_ColorFill(IDirect3DDevice9Ex *iface, IDirect3DSurface9 *surface, const RECT *rect, D3DCOLOR color)
HRESULT CDECL wined3d_streaming_buffer_upload(struct wined3d_device *device, struct wined3d_streaming_buffer *buffer, const void *data, unsigned int size, unsigned int stride, unsigned int *ret_pos)
void *CDECL wined3d_buffer_get_parent(const struct wined3d_buffer *buffer)
struct wined3d_resource *CDECL wined3d_buffer_get_resource(struct wined3d_buffer *buffer)
void CDECL wined3d_device_context_draw(struct wined3d_device_context *context, unsigned int start_vertex, unsigned int vertex_count, unsigned int start_instance, unsigned int instance_count)
void CDECL wined3d_device_context_set_primitive_type(struct wined3d_device_context *context, enum wined3d_primitive_type primitive_type, unsigned int patch_vertex_count)
void CDECL wined3d_device_set_software_vertex_processing(struct wined3d_device *device, BOOL software)
void CDECL wined3d_device_get_creation_parameters(const struct wined3d_device *device, struct wined3d_device_creation_parameters *parameters)
BOOL CDECL wined3d_device_get_software_vertex_processing(const struct wined3d_device *device)
void CDECL wined3d_device_set_max_frame_latency(struct wined3d_device *device, unsigned int latency)
HRESULT CDECL wined3d_device_acquire_focus_window(struct wined3d_device *device, HWND window)
HRESULT CDECL wined3d_device_get_clip_status(const struct wined3d_device *device, struct wined3d_clip_status *clip_status)
void CDECL wined3d_device_context_resolve_sub_resource(struct wined3d_device_context *context, struct wined3d_resource *dst_resource, unsigned int dst_sub_resource_idx, struct wined3d_resource *src_resource, unsigned int src_sub_resource_idx, enum wined3d_format_id format_id)
HRESULT CDECL wined3d_device_context_set_rendertarget_views(struct wined3d_device_context *context, unsigned int start_idx, unsigned int count, struct wined3d_rendertarget_view *const *views, BOOL set_viewport)
void CDECL wined3d_device_set_cursor_position(struct wined3d_device *device, int x_screen_space, int y_screen_space, uint32_t flags)
void CDECL wined3d_device_evict_managed_resources(struct wined3d_device *device)
struct wined3d_rendertarget_view *CDECL wined3d_device_context_get_depth_stencil_view(const struct wined3d_device_context *context)
HRESULT CDECL wined3d_device_set_clip_status(struct wined3d_device *device, const struct wined3d_clip_status *clip_status)
HRESULT CDECL wined3d_device_context_copy_sub_resource_region(struct wined3d_device_context *context, struct wined3d_resource *dst_resource, unsigned int dst_sub_resource_idx, unsigned int dst_x, unsigned int dst_y, unsigned int dst_z, struct wined3d_resource *src_resource, unsigned int src_sub_resource_idx, const struct wined3d_box *src_box, unsigned int flags)
UINT CDECL wined3d_device_get_available_texture_mem(const struct wined3d_device *device)
ULONG CDECL wined3d_device_decref(struct wined3d_device *device)
void CDECL wined3d_device_context_get_scissor_rects(const struct wined3d_device_context *context, unsigned int *rect_count, RECT *rects)
HRESULT CDECL wined3d_device_clear(struct wined3d_device *device, unsigned int rect_count, const RECT *rects, uint32_t flags, const struct wined3d_color *color, float depth, unsigned int stencil)
HRESULT CDECL wined3d_device_reset(struct wined3d_device *device, const struct wined3d_swapchain_desc *swapchain_desc, const struct wined3d_display_mode *mode, wined3d_device_reset_cb callback, BOOL reset_state)
HRESULT CDECL wined3d_device_set_cursor_properties(struct wined3d_device *device, UINT x_hotspot, UINT y_hotspot, struct wined3d_texture *texture, unsigned int sub_resource_idx)
HRESULT CDECL wined3d_device_update_texture(struct wined3d_device *device, struct wined3d_texture *src_texture, struct wined3d_texture *dst_texture)
struct wined3d_rendertarget_view *CDECL wined3d_device_context_get_rendertarget_view(const struct wined3d_device_context *context, unsigned int view_idx)
unsigned int CDECL wined3d_device_get_max_frame_latency(const struct wined3d_device *device)
HRESULT CDECL wined3d_device_set_dialog_box_mode(struct wined3d_device *device, BOOL enable_dialogs)
void CDECL wined3d_device_set_multithreaded(struct wined3d_device *device)
float CDECL wined3d_device_get_npatch_mode(const struct wined3d_device *device)
void CDECL wined3d_device_set_gamma_ramp(const struct wined3d_device *device, UINT swapchain_idx, uint32_t flags, const struct wined3d_gamma_ramp *ramp)
HRESULT CDECL wined3d_device_end_scene(struct wined3d_device *device)
HRESULT CDECL wined3d_device_context_clear_rendertarget_view(struct wined3d_device_context *context, struct wined3d_rendertarget_view *view, const RECT *rect, unsigned int flags, const struct wined3d_color *color, float depth, unsigned int stencil)
void CDECL wined3d_device_context_get_viewports(const struct wined3d_device_context *context, unsigned int *viewport_count, struct wined3d_viewport *viewports)
struct wined3d_device_context *CDECL wined3d_device_get_immediate_context(struct wined3d_device *device)
BOOL CDECL wined3d_device_show_cursor(struct wined3d_device *device, BOOL show)
void CDECL wined3d_device_release_focus_window(struct wined3d_device *device)
HRESULT CDECL wined3d_device_validate_device(const struct wined3d_device *device, const struct wined3d_stateblock_state *state, DWORD *num_passes)
struct wined3d_swapchain *CDECL wined3d_device_get_swapchain(const struct wined3d_device *device, UINT swapchain_idx)
void CDECL wined3d_device_context_draw_indexed(struct wined3d_device_context *context, int base_vertex_index, unsigned int start_index, unsigned int index_count, unsigned int start_instance, unsigned int instance_count)
HRESULT CDECL wined3d_device_get_device_caps(const struct wined3d_device *device, struct wined3d_caps *caps)
void CDECL wined3d_device_get_gamma_ramp(const struct wined3d_device *device, UINT swapchain_idx, struct wined3d_gamma_ramp *ramp)
HRESULT CDECL wined3d_device_get_display_mode(const struct wined3d_device *device, UINT swapchain_idx, struct wined3d_display_mode *mode, enum wined3d_display_rotation *rotation)
HRESULT CDECL wined3d_device_set_npatch_mode(struct wined3d_device *device, float segments)
UINT CDECL wined3d_device_get_swapchain_count(const struct wined3d_device *device)
HRESULT CDECL wined3d_device_begin_scene(struct wined3d_device *device)
HRESULT CDECL wined3d_device_context_set_depth_stencil_view(struct wined3d_device_context *context, struct wined3d_rendertarget_view *view)
HRESULT CDECL wined3d_device_get_raster_status(const struct wined3d_device *device, UINT swapchain_idx, struct wined3d_raster_status *raster_status)
HRESULT CDECL wined3d_device_process_vertices(struct wined3d_device *device, struct wined3d_stateblock *stateblock, UINT src_start_idx, UINT dst_idx, UINT vertex_count, struct wined3d_buffer *dst_buffer, const struct wined3d_vertex_declaration *declaration, uint32_t flags, uint32_t dst_fvf)
void CDECL wined3d_device_context_set_index_buffer(struct wined3d_device_context *context, struct wined3d_buffer *buffer, enum wined3d_format_id format_id, unsigned int offset)
HRESULT CDECL wined3d_resource_unmap(struct wined3d_resource *resource, unsigned int sub_resource_idx)
void *CDECL wined3d_resource_get_parent(const struct wined3d_resource *resource)
void CDECL wined3d_resource_get_desc(const struct wined3d_resource *resource, struct wined3d_resource_desc *desc)
HRESULT CDECL wined3d_resource_map(struct wined3d_resource *resource, unsigned int sub_resource_idx, struct wined3d_map_desc *map_desc, const struct wined3d_box *box, uint32_t flags)
void *CDECL wined3d_shader_get_parent(const struct wined3d_shader *shader)
void *CDECL wined3d_texture_get_parent(const struct wined3d_texture *texture)
HRESULT CDECL wined3d_texture_get_sub_resource_desc(const struct wined3d_texture *texture, unsigned int sub_resource_idx, struct wined3d_sub_resource_desc *desc)
struct wined3d_texture *__cdecl wined3d_texture_from_resource(struct wined3d_resource *resource)
HRESULT CDECL wined3d_texture_create(struct wined3d_device *device, const struct wined3d_resource_desc *desc, UINT layer_count, UINT level_count, uint32_t flags, const struct wined3d_sub_resource_data *data, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_texture **texture)
void *CDECL wined3d_texture_get_sub_resource_parent(struct wined3d_texture *texture, unsigned int sub_resource_idx)
struct wined3d_resource *CDECL wined3d_texture_get_resource(struct wined3d_texture *texture)
ULONG CDECL wined3d_texture_decref(struct wined3d_texture *texture)
HRESULT CDECL wined3d_texture_update_desc(struct wined3d_texture *texture, unsigned int sub_resource_idx, void *mem, unsigned int pitch)
UINT CDECL wined3d_texture_get_level_count(const struct wined3d_texture *texture)
HRESULT CDECL wined3d_device_context_blt(struct wined3d_device_context *context, struct wined3d_texture *dst_texture, unsigned int dst_sub_resource_idx, const RECT *dst_rect, struct wined3d_texture *src_texture, unsigned int src_sub_resource_idx, const RECT *src_rect, unsigned int flags, const struct wined3d_blt_fx *fx, enum wined3d_texture_filter_type filter)
void *CDECL wined3d_rendertarget_view_get_sub_resource_parent(const struct wined3d_rendertarget_view *view)
struct wined3d_resource *CDECL wined3d_rendertarget_view_get_resource(const struct wined3d_rendertarget_view *view)
#define D3DCAPS2_RESERVED
#define D3DDEVCAPS_EXECUTESYSTEMMEMORY
#define D3DPRESENT_INTERVAL_THREE
#define D3DPTEXTURECAPS_CUBEMAP_POW2
#define D3DDEVCAPS_CANRENDERAFTERFLIP
#define D3DVTXPCAPS_LOCALVIEWER
#define D3DPTEXTURECAPS_PROJECTED
#define D3DPRASTERCAPS_WBUFFER
#define D3DDEVCAPS_HWTRANSFORMANDLIGHT
#define D3DPTFILTERCAPS_MIPFLINEAR
#define D3DDEVCAPS_TEXTUREVIDEOMEMORY
#define D3DDEVCAPS_DRAWPRIMITIVES2
#define D3DDEVCAPS_TEXTURESYSTEMMEMORY
#define D3DPTFILTERCAPS_MINFANISOTROPIC
#define D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE
#define D3DDEVCAPS_QUINTICRTPATCHES
#define D3DVTXPCAPS_MATERIALSOURCE7
#define D3DPTFILTERCAPS_MINFLINEAR
#define D3DPTEXTURECAPS_SQUAREONLY
#define D3DDEVCAPS_DRAWPRIMITIVES2EX
#define D3DPTFILTERCAPS_MAGFANISOTROPIC
#define D3DPTEXTURECAPS_ALPHAPALETTE
#define D3DPSHADECAPS_COLORGOURAUDRGB
#define D3DPRASTERCAPS_ZBUFFERLESSHSR
#define D3DDEVCAPS_EXECUTEVIDEOMEMORY
#define D3DPRASTERCAPS_WFOG
#define D3DPSHADECAPS_FOGGOURAUD
#define D3DPRESENT_INTERVAL_TWO
#define D3DPTEXTURECAPS_ALPHA
#define D3DDEVCAPS_SEPARATETEXTUREMEMORIES
#define D3DPSHADECAPS_SPECULARGOURAUDRGB
#define D3DPTEXTURECAPS_VOLUMEMAP
#define D3DPRESENT_INTERVAL_FOUR
#define D3DPTEXTURECAPS_VOLUMEMAP_POW2
#define D3DPRESENT_INTERVAL_IMMEDIATE
#define D3DDEVCAPS_DRAWPRIMTLVERTEX
#define D3DPRASTERCAPS_ANISOTROPY
#define D3DVTXPCAPS_DIRECTIONALLIGHTS
#define D3DDEVCAPS_TLVERTEXSYSTEMMEMORY
#define D3DPRASTERCAPS_COLORPERSPECTIVE
#define D3DDEVCAPS_RTPATCHES
#define D3DCAPS2_CANCALIBRATEGAMMA
#define D3DDEVCAPS_NPATCHES
#define D3DPRASTERCAPS_ZFOG
#define D3DDEVCAPS_RTPATCHHANDLEZERO
#define D3DPTEXTURECAPS_NONPOW2CONDITIONAL
#define D3DPRESENT_INTERVAL_ONE
#define D3DPRASTERCAPS_FOGRANGE
#define D3DPSHADECAPS_ALPHAGOURAUDBLEND
#define D3DPTEXTURECAPS_PERSPECTIVE
#define D3DDEVCAPS_HWRASTERIZATION
#define D3DVTXPCAPS_TWEENING
#define D3DPRASTERCAPS_FOGVERTEX
#define D3DPTFILTERCAPS_MAGFLINEAR
#define D3DPTFILTERCAPS_MINFPOINT
#define D3DPTEXTURECAPS_CUBEMAP
#define D3DDEVCAPS_TEXTURENONLOCALVIDMEM
#define D3DVTXPCAPS_TEXGEN
#define D3DCAPS2_DYNAMICTEXTURES
#define D3DDEVCAPS_CANBLTSYSTONONLOCAL
#define D3DPRASTERCAPS_FOGTABLE
#define D3DCAPS2_CANMANAGERESOURCE
#define D3DPTEXTURECAPS_MIPCUBEMAP
#define D3DPTFILTERCAPS_MIPFPOINT
#define D3DDEVCAPS_TLVERTEXVIDEOMEMORY
#define D3DPRASTERCAPS_ZTEST
#define D3DVTXPCAPS_POSITIONALLIGHTS
#define D3DDEVCAPS_PUREDEVICE
#define D3DCAPS2_FULLSCREENGAMMA
#define D3DPTEXTURECAPS_MIPMAP
#define D3DPTEXTURECAPS_POW2
#define D3DPRESENT_INTERVAL_DEFAULT
#define D3DPTFILTERCAPS_MAGFPOINT
#define D3DPRASTERCAPS_MIPMAPLODBIAS
#define D3DPTEXTURECAPS_MIPVOLUMEMAP
#define D3DPRASTERCAPS_DITHER
#define D3DVTXPCAPS_NO_TEXGEN_NONLOCALVIEWER
#define D3DDEVCAPS2_ADAPTIVETESSNPATCH
#define D3DDEVCAPS2_ADAPTIVETESSRTPATCH
#define D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS
#define D3DPTEXTURECAPS_NOPROJECTEDBUMPENV
#define D3DDEVCAPS2_DMAPNPATCH
#define D3DPRASTERCAPS_SCISSORTEST
#define D3DDEVCAPS2_CAN_STRETCHRECT_FROM_TEXTURES
#define D3DPRASTERCAPS_DEPTHBIAS
#define D3DDEVCAPS2_STREAMOFFSET
#define D3DDEVCAPS2_PRESAMPLEDDMAPNPATCH
#define D3DPTFILTERCAPS_MINFGAUSSIANQUAD
#define D3DPTFILTERCAPS_MINFPYRAMIDALQUAD
#define D3DCAPS2_CANAUTOGENMIPMAP
#define D3DPRASTERCAPS_MULTISAMPLE_TOGGLE
#define D3DPTFILTERCAPS_MAGFGAUSSIANQUAD
#define D3DVTXPCAPS_TEXGEN_SPHEREMAP
#define D3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET
#define D3DPTFILTERCAPS_MAGFPYRAMIDALQUAD
static void depth_stencil(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
GLint GLint GLsizei GLsizei GLsizei depth
GLint GLint GLint GLint GLint x
GLuint GLuint GLsizei count
GLint GLint GLsizei GLsizei height
GLuint GLuint GLsizei GLenum type
GLint GLint GLint GLint GLint GLint y
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLint GLint GLsizei width
GLenum GLenum GLsizei const GLuint GLboolean enabled
GLuint GLint GLboolean GLint GLenum access
GLsizeiptr const GLvoid GLenum usage
GLint GLfloat GLint stencil
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint GLenum GLenum GLenum GLint GLuint GLenum GLenum GLfloat GLenum GLfloat GLenum GLint const GLfloat GLenum GLint const GLushort GLint GLint GLsizei GLsizei GLenum GLsizei GLsizei GLenum GLenum const GLvoid GLenum plane
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum light
static D3D_DRIVER_TYPE HMODULE UINT const D3D_FEATURE_LEVEL * feature_levels
#define InterlockedCompareExchange
#define memcpy(s1, s2, n)
#define memmove(s1, s2, n)
struct task_struct * current
D3D11_SHADER_VARIABLE_DESC desc
static const BYTE ramp[17]
#define IsEqualGUID(rguid1, rguid2)
BOOL WINAPI SetRect(_Out_ LPRECT, _In_ int, _In_ int, _In_ int, _In_ int)
__asm__(".p2align 4, 0x90\n" ".seh_proc __seh2_global_filter_func\n" "__seh2_global_filter_func:\n" "\tsub %rbp, %rax\n" "\tpush %rbp\n" "\t.seh_pushreg %rbp\n" "\tpush %rbx\n" "\t.seh_pushreg %rbx\n" "\tpush %rdi\n" "\t.seh_pushreg %rdi\n" "\tpush %rsi\n" "\t.seh_pushreg %rsi\n" "\tpush %r12\n" "\t.seh_pushreg %r12\n" "\tpush %r13\n" "\t.seh_pushreg %r13\n" "\tpush %r14\n" "\t.seh_pushreg %r14\n" "\tpush %r15\n" "\t.seh_pushreg %r15\n" "\tsub $40, %rsp\n" "\t.seh_stackalloc 40\n" "\t.seh_endprologue\n" "\tsub %rax, %rdx\n" "\tmov %rdx, %rbp\n" "\tjmp *%r8\n" "__seh2_global_filter_func_exit:\n" "\t.p2align 4\n" "\tadd $40, %rsp\n" "\tpop %r15\n" "\tpop %r14\n" "\tpop %r13\n" "\tpop %r12\n" "\tpop %rsi\n" "\tpop %rdi\n" "\tpop %rbx\n" "\tpop %rbp\n" "\tret\n" "\t.seh_endproc")
#define D3DERR_NOTAVAILABLE
#define D3DCREATE_MULTITHREADED
#define D3DERR_DRIVERINTERNALERROR
#define D3DERR_DEVICENOTRESET
#define D3DCREATE_FPU_PRESERVE
#define D3DERR_OUTOFVIDEOMEMORY
#define D3DERR_DEVICELOST
wchar_t const *const size_t const buffer_size
DWORD MaxVertexBlendMatrixIndex
DWORD VertexProcessingCaps
UINT MasterAdapterOrdinal
DWORD StretchRectFilterCaps
DWORD MaxPShaderInstructionsExecuted
UINT AdapterOrdinalInGroup
D3DVSHADERCAPS2_0 VS20Caps
DWORD VolumeTextureAddressCaps
DWORD MaxTextureAspectRatio
float PixelShader1xMaxValue
DWORD VertexShaderVersion
DWORD MaxVertexBlendMatrices
DWORD CubeTextureFilterCaps
DWORD MaxPixelShader30InstructionSlots
DWORD MaxTextureBlendStages
DWORD PresentationIntervals
UINT NumberOfAdaptersInGroup
D3DPSHADERCAPS2_0 PS20Caps
DWORD MaxVertexShader30InstructionSlots
DWORD MaxSimultaneousTextures
DWORD MaxVertexShaderConst
float MaxNpatchTessellationLevel
DWORD MaxVShaderInstructionsExecuted
DWORD VertexTextureFilterCaps
DWORD VolumeTextureFilterCaps
UINT FullScreen_RefreshRateInHz
BOOL EnableAutoDepthStencil
D3DMULTISAMPLE_TYPE MultiSampleType
D3DFORMAT BackBufferFormat
UINT PresentationInterval
D3DFORMAT AutoDepthStencilFormat
INT StaticFlowControlDepth
INT DynamicFlowControlDepth
INT DynamicFlowControlDepth
INT StaticFlowControlDepth
IDirect3DDevice9On12 IDirect3DDevice9On12_iface
struct wined3d_device_parent device_parent
enum wined3d_format_id format
struct wined3d_buffer * wined3d_buffer
IDirect3DIndexBuffer9 IDirect3DIndexBuffer9_iface
struct wined3d_shader * wined3d_shader
IDirect3DPixelShader9 IDirect3DPixelShader9_iface
IDirect3DDevice9Ex * parent_device
struct wined3d_texture * wined3d_texture
struct wined3d_swapchain * swapchain
IDirect3DSurface9 IDirect3DSurface9_iface
struct d3d9_resource resource
struct wined3d_rendertarget_view * wined3d_rtv
struct d3d9_texture * texture
unsigned int sub_resource_idx
IDirect3DSwapChain9Ex IDirect3DSwapChain9Ex_iface
struct wined3d_swapchain * wined3d_swapchain
unsigned int swap_interval
struct wined3d_texture * draw_texture
struct wined3d_texture * wined3d_texture
IDirect3DBaseTexture9 IDirect3DBaseTexture9_iface
IDirect3DVertexDeclaration9 IDirect3DVertexDeclaration9_iface
D3DVERTEXELEMENT9 * elements
struct wined3d_vertex_declaration * wined3d_declaration
IDirect3DVertexBuffer9 IDirect3DVertexBuffer9_iface
struct wined3d_buffer * draw_buffer
struct wined3d_buffer * wined3d_buffer
struct wined3d_shader * wined3d_shader
IDirect3DVertexShader9 IDirect3DVertexShader9_iface
unsigned int sub_resource_idx
struct wined3d_output ** wined3d_outputs
struct wined3d_vertex_declaration * decl
DWORD MaxPShaderInstructionsExecuted
DWORD MaxVertexBlendMatrices
DWORD MaxVertexShader30InstructionSlots
DWORD MaxTextureBlendStages
struct wined3d_vertex_shader_caps VS20Caps
DWORD StretchRectFilterCaps
DWORD VolumeTextureAddressCaps
float PixelShader1xMaxValue
DWORD MaxVertexBlendMatrixIndex
DWORD VertexProcessingCaps
DWORD MaxPixelShader30InstructionSlots
float MaxNpatchTessellationLevel
DWORD VolumeTextureFilterCaps
struct wined3d_pixel_shader_caps PS20Caps
DWORD VertexShaderVersion
enum wined3d_device_type DeviceType
DWORD VertexTextureFilterCaps
DWORD CubeTextureFilterCaps
DWORD MaxTextureAspectRatio
DWORD MaxSimultaneousTextures
DWORD MaxVertexShaderConst
DWORD MaxVShaderInstructionsExecuted
enum wined3d_format_id format_id
enum wined3d_scanline_ordering scanline_ordering
enum wined3d_format_id format
enum wined3d_multisample_type multisample_type
unsigned int multisample_quality
unsigned int backbuffer_height
BOOL auto_restore_display_mode
enum wined3d_multisample_type multisample_type
enum wined3d_format_id auto_depth_stencil_format
struct wined3d_output * output
unsigned int backbuffer_width
unsigned int backbuffer_count
enum wined3d_format_id backbuffer_format
enum wined3d_swap_effect swap_effect
BOOL enable_auto_depth_stencil
unsigned int refresh_rate
unsigned int backbuffer_bind_flags
unsigned int swap_interval
#define CONTAINING_RECORD(address, type, field)
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
static struct wined3d_texture * d3d9_texture_get_draw_texture(struct d3d9_texture *texture)
void d3d9_surface_release_rendertarget_view(struct d3d9_surface *surface, struct wined3d_rendertarget_view *rtv)
static struct d3d9_device * impl_from_IDirect3DDevice9Ex(IDirect3DDevice9Ex *iface)
struct d3d9_device * d3d9_surface_get_device(const struct d3d9_surface *surface)
HRESULT vertexshader_init(struct d3d9_vertexshader *shader, struct d3d9_device *device, const DWORD *byte_code)
HRESULT query_init(struct d3d9_query *query, struct d3d9_device *device, D3DQUERYTYPE type)
HRESULT d3d9_texture_cube_init(struct d3d9_texture *texture, struct d3d9_device *device, unsigned int edge_length, unsigned int level_count, DWORD usage, D3DFORMAT format, D3DPOOL pool)
struct d3d9_vertex_declaration * unsafe_impl_from_IDirect3DVertexDeclaration9(IDirect3DVertexDeclaration9 *iface)
HRESULT d3d9_swapchain_create(struct d3d9_device *device, struct wined3d_swapchain_desc *desc, unsigned int swap_interval, struct d3d9_swapchain **swapchain)
struct d3d9_vertexshader * unsafe_impl_from_IDirect3DVertexShader9(IDirect3DVertexShader9 *iface)
struct d3d9_texture * unsafe_impl_from_IDirect3DBaseTexture9(IDirect3DBaseTexture9 *iface)
void d3d9_texture_gen_auto_mipmap(struct d3d9_texture *texture)
struct d3d9_surface * d3d9_surface_create(struct wined3d_texture *wined3d_texture, unsigned int sub_resource_idx, IUnknown *container)
HRESULT d3d9_texture_3d_init(struct d3d9_texture *texture, struct d3d9_device *device, unsigned int width, unsigned int height, unsigned int depth, unsigned int level_count, DWORD usage, D3DFORMAT format, D3DPOOL pool)
#define D3D9_MAX_TEXTURE_UNITS
void d3d9_texture_flag_auto_gen_mipmap(struct d3d9_texture *texture)
HRESULT vdecl_convert_fvf(DWORD FVF, D3DVERTEXELEMENT9 **ppVertexElements)
struct d3d9_pixelshader * unsafe_impl_from_IDirect3DPixelShader9(IDirect3DPixelShader9 *iface)
HRESULT d3d9_vertex_declaration_create(struct d3d9_device *device, const D3DVERTEXELEMENT9 *elements, struct d3d9_vertex_declaration **declaration)
struct wined3d_rendertarget_view * d3d9_surface_acquire_rendertarget_view(struct d3d9_surface *surface)
struct d3d9_surface * unsafe_impl_from_IDirect3DSurface9(IDirect3DSurface9 *iface)
HRESULT d3d9_texture_2d_init(struct d3d9_texture *texture, struct d3d9_device *device, unsigned int width, unsigned int height, unsigned int level_count, DWORD usage, D3DFORMAT format, D3DPOOL pool)
static enum wined3d_scanline_ordering wined3d_scanline_ordering_from_d3d(D3DSCANLINEORDERING ordering)
HRESULT stateblock_init(struct d3d9_stateblock *stateblock, struct d3d9_device *device, D3DSTATEBLOCKTYPE type, struct wined3d_stateblock *wined3d_stateblock)
HRESULT pixelshader_init(struct d3d9_pixelshader *shader, struct d3d9_device *device, const DWORD *byte_code)
@ D3D9_DEVICE_STATE_NOT_RESET
static D3DSCANLINEORDERING d3dscanlineordering_from_wined3d(enum wined3d_scanline_ordering ordering)
#define D3D9_MAX_VERTEX_SHADER_CONSTANTF
unsigned int CDECL wined3d_adapter_get_output_count(const struct wined3d_adapter *adapter)
struct wined3d_adapter *CDECL wined3d_output_get_adapter(const struct wined3d_output *output)
HRESULT CDECL wined3d_output_get_desc(const struct wined3d_output *output, struct wined3d_output_desc *desc)
HRESULT CDECL wined3d_get_device_caps(const struct wined3d_adapter *adapter, enum wined3d_device_type device_type, struct wined3d_caps *caps)
HRESULT CDECL wined3d_device_create(struct wined3d *wined3d, struct wined3d_adapter *adapter, enum wined3d_device_type device_type, HWND focus_window, uint32_t flags, BYTE surface_alignment, const enum wined3d_feature_level *feature_levels, unsigned int feature_level_count, struct wined3d_device_parent *device_parent, struct wined3d_device **device)
HRESULT CDECL wined3d_stateblock_set_vs_consts_b(struct wined3d_stateblock *stateblock, unsigned int start_idx, unsigned int count, const BOOL *constants)
HRESULT CDECL wined3d_stateblock_set_vs_consts_f(struct wined3d_stateblock *stateblock, unsigned int start_idx, unsigned int count, const struct wined3d_vec4 *constants)
void CDECL wined3d_stateblock_set_vertex_declaration(struct wined3d_stateblock *stateblock, struct wined3d_vertex_declaration *declaration)
HRESULT CDECL wined3d_stateblock_set_vs_consts_i(struct wined3d_stateblock *stateblock, unsigned int start_idx, unsigned int count, const struct wined3d_ivec4 *constants)
HRESULT CDECL wined3d_stateblock_create(struct wined3d_device *device, const struct wined3d_stateblock *device_state, enum wined3d_stateblock_type type, struct wined3d_stateblock **stateblock)
void CDECL wined3d_stateblock_set_material(struct wined3d_stateblock *stateblock, const struct wined3d_material *material)
void CDECL wined3d_stateblock_reset(struct wined3d_stateblock *stateblock)
void CDECL wined3d_stateblock_set_texture(struct wined3d_stateblock *stateblock, UINT stage, struct wined3d_texture *texture)
void CDECL wined3d_stateblock_init_contained_states(struct wined3d_stateblock *stateblock)
HRESULT CDECL wined3d_stateblock_set_stream_source_freq(struct wined3d_stateblock *stateblock, UINT stream_idx, UINT divider)
HRESULT CDECL wined3d_stateblock_set_light(struct wined3d_stateblock *stateblock, UINT light_idx, const struct wined3d_light *light)
HRESULT CDECL wined3d_stateblock_get_vs_consts_i(struct wined3d_stateblock *stateblock, unsigned int start_idx, unsigned int count, struct wined3d_ivec4 *constants)
void CDECL wined3d_stateblock_depth_buffer_changed(struct wined3d_stateblock *stateblock)
HRESULT CDECL wined3d_stateblock_set_clip_plane(struct wined3d_stateblock *stateblock, UINT plane_idx, const struct wined3d_vec4 *plane)
HRESULT CDECL wined3d_stateblock_set_ps_consts_b(struct wined3d_stateblock *stateblock, unsigned int start_idx, unsigned int count, const BOOL *constants)
HRESULT CDECL wined3d_stateblock_set_ps_consts_i(struct wined3d_stateblock *stateblock, unsigned int start_idx, unsigned int count, const struct wined3d_ivec4 *constants)
HRESULT CDECL wined3d_stateblock_set_light_enable(struct wined3d_stateblock *stateblock, UINT light_idx, BOOL enable)
void CDECL wined3d_stateblock_set_pixel_shader(struct wined3d_stateblock *stateblock, struct wined3d_shader *shader)
HRESULT CDECL wined3d_stateblock_get_vs_consts_f(struct wined3d_stateblock *stateblock, unsigned int start_idx, unsigned int count, struct wined3d_vec4 *constants)
HRESULT CDECL wined3d_stateblock_set_ps_consts_f(struct wined3d_stateblock *stateblock, unsigned int start_idx, unsigned int count, const struct wined3d_vec4 *constants)
HRESULT CDECL wined3d_stateblock_get_ps_consts_i(struct wined3d_stateblock *stateblock, unsigned int start_idx, unsigned int count, struct wined3d_ivec4 *constants)
void CDECL wined3d_stateblock_set_sampler_state(struct wined3d_stateblock *stateblock, UINT sampler_idx, enum wined3d_sampler_state state, unsigned int value)
void CDECL wined3d_stateblock_set_vertex_shader(struct wined3d_stateblock *stateblock, struct wined3d_shader *shader)
const struct wined3d_stateblock_state *CDECL wined3d_stateblock_get_state(const struct wined3d_stateblock *stateblock)
HRESULT CDECL wined3d_stateblock_get_vs_consts_b(struct wined3d_stateblock *stateblock, unsigned int start_idx, unsigned int count, BOOL *constants)
ULONG CDECL wined3d_stateblock_decref(struct wined3d_stateblock *stateblock)
void CDECL wined3d_stateblock_set_transform(struct wined3d_stateblock *stateblock, enum wined3d_transform_state d3dts, const struct wined3d_matrix *matrix)
void CDECL wined3d_stateblock_multiply_transform(struct wined3d_stateblock *stateblock, enum wined3d_transform_state d3dts, const struct wined3d_matrix *matrix)
void CDECL wined3d_stateblock_set_index_buffer(struct wined3d_stateblock *stateblock, struct wined3d_buffer *buffer, enum wined3d_format_id format_id)
void CDECL wined3d_stateblock_set_render_state(struct wined3d_stateblock *stateblock, enum wined3d_render_state state, unsigned int value)
void CDECL wined3d_stateblock_set_scissor_rect(struct wined3d_stateblock *stateblock, const RECT *rect)
HRESULT CDECL wined3d_stateblock_get_ps_consts_b(struct wined3d_stateblock *stateblock, unsigned int start_idx, unsigned int count, BOOL *constants)
void CDECL wined3d_stateblock_apply_clear_state(struct wined3d_stateblock *stateblock, struct wined3d_device *device)
HRESULT CDECL wined3d_stateblock_get_ps_consts_f(struct wined3d_stateblock *stateblock, unsigned int start_idx, unsigned int count, struct wined3d_vec4 *constants)
HRESULT CDECL wined3d_stateblock_set_stream_source(struct wined3d_stateblock *stateblock, UINT stream_idx, struct wined3d_buffer *buffer, UINT offset, UINT stride)
HRESULT CDECL wined3d_stateblock_get_light(const struct wined3d_stateblock *stateblock, UINT light_idx, struct wined3d_light *light, BOOL *enabled)
void CDECL wined3d_stateblock_set_texture_stage_state(struct wined3d_stateblock *stateblock, UINT stage, enum wined3d_texture_stage_state state, unsigned int value)
void CDECL wined3d_stateblock_set_viewport(struct wined3d_stateblock *stateblock, const struct wined3d_viewport *viewport)
void CDECL wined3d_device_apply_stateblock(struct wined3d_device *device, struct wined3d_stateblock *stateblock)
struct wined3d_texture *CDECL wined3d_swapchain_get_back_buffer(const struct wined3d_swapchain *swapchain, UINT back_buffer_idx)
void CDECL wined3d_swapchain_get_desc(const struct wined3d_swapchain *swapchain, struct wined3d_swapchain_desc *desc)
void *CDECL wined3d_swapchain_get_parent(const struct wined3d_swapchain *swapchain)
ULONG CDECL wined3d_swapchain_decref(struct wined3d_swapchain *swapchain)
ULONG CDECL wined3d_swapchain_incref(struct wined3d_swapchain *swapchain)
HRESULT CDECL wined3d_swapchain_get_front_buffer_data(const struct wined3d_swapchain *swapchain, struct wined3d_texture *dst_texture, unsigned int sub_resource_idx)
HRESULT CDECL wined3d_swapchain_present(struct wined3d_swapchain *swapchain, const RECT *src_rect, const RECT *dst_rect, HWND dst_window_override, unsigned int swap_interval, uint32_t flags)
ULONG CDECL wined3d_vertex_declaration_incref(struct wined3d_vertex_declaration *declaration)
void *CDECL wined3d_vertex_declaration_get_parent(const struct wined3d_vertex_declaration *declaration)
ULONG CDECL wined3d_vertex_declaration_decref(struct wined3d_vertex_declaration *declaration)
#define WINED3DCLEAR_TARGET
#define WINED3D_TEXTURE_CREATE_DISCARD
@ WINED3D_MULTISAMPLE_NONE
#define WINED3D_MAX_COMBINED_SAMPLERS
@ WINED3D_SWAP_INTERVAL_TWO
@ WINED3D_SWAP_INTERVAL_FOUR
@ WINED3D_SWAP_INTERVAL_ONE
@ WINED3D_SWAP_INTERVAL_DEFAULT
@ WINED3D_SWAP_INTERVAL_THREE
@ WINED3D_SWAP_INTERVAL_IMMEDIATE
#define WINED3D_SWAPCHAIN_ALLOW_MODE_SWITCH
static int wined3d_bit_scan(unsigned int *x)
#define WINED3D_SWAPCHAIN_IMPLICIT
@ WINED3D_SWAP_EFFECT_COPY
@ WINED3D_SWAP_EFFECT_SEQUENTIAL
@ WINED3D_SWAP_EFFECT_DISCARD
@ WINED3D_SWAP_EFFECT_OVERLAY
@ WINED3D_SWAP_EFFECT_FLIP_SEQUENTIAL
#define WINED3D_BIND_VERTEX_BUFFER
#define WINED3D_RESOURCE_ACCESS_GPU
#define WINED3D_RESOURCE_ACCESS_CPU
@ WINED3D_RTYPE_TEXTURE_2D
@ WINED3D_RTYPE_TEXTURE_3D
static void wined3d_streaming_buffer_init(struct wined3d_streaming_buffer *buffer, unsigned int bind_flags)
#define WINED3DERR_NOTAVAILABLE
wined3d_texture_filter_type
#define WINED3D_SWAPCHAIN_GDI_COMPATIBLE
wined3d_texture_stage_state
@ WINED3D_TSS_BUMPENV_LOFFSET
@ WINED3D_TSS_BUMPENV_MAT11
@ WINED3D_TSS_BUMPENV_MAT10
@ WINED3D_TSS_TEXCOORD_INDEX
@ WINED3D_TSS_BUMPENV_MAT01
@ WINED3D_TSS_BUMPENV_LSCALE
@ WINED3D_TSS_BUMPENV_MAT00
@ WINED3D_TSS_TEXTURE_TRANSFORM_FLAGS
#define WINED3DUSAGE_MASK
#define WINED3DCREATE_NOWINDOWCHANGES
#define WINED3D_BIND_SHADER_RESOURCE
#define WINED3DUSAGE_VIDMEM_ACCOUNTING
@ WINED3DFMT_B2G3R3_UNORM
@ WINED3DFMT_B4G4R4A4_UNORM
@ WINED3DFMT_R16G16_UNORM
@ WINED3DFMT_R10G10B10A2_UNORM
@ WINED3DFMT_R8G8_SNORM_Cx
@ WINED3DFMT_R32G32_FLOAT
@ WINED3DFMT_R16G16_SNORM
@ WINED3DFMT_B8G8R8A8_UNORM
@ WINED3DFMT_R8G8B8A8_SNORM
@ WINED3DFMT_S8_UINT_D24_FLOAT
@ WINED3DFMT_D16_LOCKABLE
@ WINED3DFMT_S1_UINT_D15_UNORM
@ WINED3DFMT_B2G3R3A8_UNORM
@ WINED3DFMT_B8G8R8X8_UNORM
@ WINED3DFMT_R8G8B8X8_UNORM
@ WINED3DFMT_B5G5R5X1_UNORM
@ WINED3DFMT_B10G10R10A2_UNORM
@ WINED3DFMT_R16G16B16A16_FLOAT
@ WINED3DFMT_R5G5_SNORM_L6_UNORM
@ WINED3DFMT_B8G8R8_UNORM
@ WINED3DFMT_B5G5R5A1_UNORM
@ WINED3DFMT_R10G10B10_SNORM_A2_UNORM
@ WINED3DFMT_R8G8B8A8_UNORM
@ WINED3DFMT_R16G16B16A16_UNORM
@ WINED3DFMT_R8G8_SNORM_L8X8_UNORM
@ WINED3DFMT_B5G6R5_UNORM
@ WINED3DFMT_S4X4_UINT_D24_UNORM
@ WINED3DFMT_R16G16_FLOAT
@ WINED3DFMT_R32G32B32A32_FLOAT
@ WINED3DFMT_B4G4R4X4_UNORM
@ WINED3DFMT_D24_UNORM_S8_UINT
@ WINED3DFMT_P8_UINT_A8_UNORM
@ WINED3DFMT_R16G16B16A16_SNORM
#define WINED3D_MAX_STREAMS
#define WINED3D_VERTEX_SAMPLER_OFFSET
#define WINED3D_SWAPCHAIN_RESTORE_WINDOW_STATE
#define WINED3D_BIND_DEPTH_STENCIL
static void wined3d_box_set(struct wined3d_box *box, unsigned int left, unsigned int top, unsigned int right, unsigned int bottom, unsigned int front, unsigned int back)
#define WINED3D_RESOURCE_ACCESS_MAP_R
#define WINED3DUSAGE_MANAGED
#define WINED3D_MAP_WRITE
@ WINED3D_FEATURE_LEVEL_8
@ WINED3D_FEATURE_LEVEL_7
@ WINED3D_FEATURE_LEVEL_6
@ WINED3D_FEATURE_LEVEL_9_3
@ WINED3D_FEATURE_LEVEL_5
@ WINED3D_FEATURE_LEVEL_9_1
@ WINED3D_FEATURE_LEVEL_9_2
#define WINED3D_BIND_RENDER_TARGET
static void wined3d_streaming_buffer_cleanup(struct wined3d_streaming_buffer *buffer)
#define WINEDDERR_INVALIDRECT
#define WINED3DERR_INVALIDCALL
#define WINED3D_TEXTURE_CREATE_GET_DC
#define WINED3D_BIND_INDEX_BUFFER
#define WINED3D_RESOURCE_ACCESS_MAP_W
#define WINED3D_SWAPCHAIN_NO_WINDOW_CHANGES
void WINAPI wined3d_mutex_unlock(void)
void WINAPI wined3d_mutex_lock(void)