Henri Verbeet
1f22246b84
wined3d: Send material updates through the command stream.
2013-10-09 11:11:00 +02:00
Henri Verbeet
db68c43678
wined3d: Send clip plane updates through the command stream.
2013-10-09 11:10:58 +02:00
Stefan Dösinger
1631603986
wined3d: Remove redundant surface location changes.
...
fb_copy_to_texture_direct and fb_copy_to_texture_hwstretch already
invalidate everything but the RGB texture.
2013-10-08 15:39:02 +02:00
Stefan Dösinger
9331c791e8
wined3d: Remove the D3DSWAPEFFECT_DISCARD debug clear code.
2013-10-08 15:39:02 +02:00
Stefan Dösinger
e4a0767e2d
wined3d: Get rid of SFLAG_LOCKABLE.
2013-10-08 15:39:02 +02:00
Stefan Dösinger
bff422f340
wined3d: Avoid duplicated code in wined3d_surface_blt.
2013-10-08 15:39:02 +02:00
Henri Verbeet
c6f8404bb6
wined3d: Send transformation matrix updates through the command stream.
2013-10-08 09:09:01 +02:00
Henri Verbeet
b2e75e27f3
wined3d: Send sampler state updates through the command stream.
2013-10-08 09:08:59 +02:00
Henri Verbeet
8cf6d1a429
wined3d: Send texture state updates through the command stream.
2013-10-08 09:08:56 +02:00
Henri Verbeet
8644b62726
wined3d: Move lowest_disabled_stage to the context.
2013-10-07 14:44:35 +02:00
Henri Verbeet
242a79a9d7
wined3d: Don't update lowest_disabled_stage in wined3d_stateblock_apply().
2013-10-07 14:44:35 +02:00
Henri Verbeet
3f6d45bf14
wined3d: Send render state updates through the command stream.
2013-10-07 14:44:35 +02:00
Henri Verbeet
82cf8b2066
wined3d: Send pixel shader binding updates through the command stream.
2013-10-04 12:45:22 +02:00
Henri Verbeet
819e9dda28
wined3d: Send geometry shader binding updates through the command stream.
2013-10-04 12:45:21 +02:00
Henri Verbeet
368fcab2e8
wined3d: Send vertex shader binding updates through the command stream.
2013-10-04 12:45:18 +02:00
Francois Gouget
b0ccc355c3
wined3d: Fix compilation on systems that don't define INFINITY or NAN.
2013-10-03 16:32:38 +02:00
Henri Verbeet
052a863010
wined3d: Send texture binding updates through the command stream.
2013-10-03 12:55:09 +02:00
Henri Verbeet
d61b14371a
wined3d: Send index buffer binding updates through the command stream.
2013-10-03 12:55:04 +02:00
Henri Verbeet
264256970b
wined3d: Send stream frequency updates through the command stream.
2013-10-03 12:54:59 +02:00
Sebastian Lackner
af759e30c9
wined3d: Ensure that wined3d_cs_st_require_space allocates the required space.
2013-10-02 17:13:42 +02:00
Henri Verbeet
57ec706dde
wined3d: Send vertex buffer binding updates through the command stream.
2013-10-02 11:05:41 +02:00
Stefan Dösinger
723e518312
wined3d: Don't invert blits from offscreen surfaces.
2013-10-01 17:32:16 +02:00
Henri Verbeet
1f864bc9c3
wined3d: Send vertex declaration binding updates through the command stream.
2013-10-01 10:57:32 +02:00
Henri Verbeet
fd5fc51bc5
wined3d: Send depth stencil binding updates through the command stream.
2013-10-01 10:57:29 +02:00
Henri Verbeet
438b672660
wined3d: Send render target binding updates through the command stream.
2013-10-01 10:57:27 +02:00
Henri Verbeet
0776060439
wined3d: Send scissor rect updates through the command stream.
2013-09-30 20:34:52 +02:00
Henri Verbeet
8a7744b06e
wined3d: Call state_init_default() from state_init() when the appropriate flag is set.
2013-09-30 20:34:52 +02:00
Henri Verbeet
bc0f990b44
wined3d: Send viewport updates through the command stream.
2013-09-30 20:34:52 +02:00
Marcus Meissner
0c9ce583bc
wined3d: Fixed sizeof() to HeapAlloc (Coverity).
2013-09-30 11:37:46 +02:00
Henri Verbeet
baf285d46a
wined3d: Send draw operation through the command stream.
2013-09-27 10:33:36 +02:00
Henri Verbeet
708b938f64
wined3d: Send clear operations through the command stream.
2013-09-27 10:33:34 +02:00
Henri Verbeet
602c82bce8
wined3d: Send present operations through a command stream.
...
The eventual goal is to have a multithreaded implementation of wined3d_cs_ops
and offload some processing to a different thread.
2013-09-27 10:33:15 +02:00
Henri Verbeet
4a9da034ab
wined3d: Explicitly pass gl_info to state_init_default().
2013-09-26 10:45:52 +02:00
Henri Verbeet
abbc595fc1
wined3d: Initialize the fb state pointer in state_init().
2013-09-26 10:45:50 +02:00
Henri Verbeet
6793fa7157
wined3d: Initialize the default state in device_init().
2013-09-26 10:45:47 +02:00
Henri Verbeet
8866d733e4
wined3d: Introduce a function to initialize swapchain specific device state.
2013-09-25 11:49:08 +02:00
Henri Verbeet
991e47e3c9
wined3d: Allow WINED3DFMT_R8G8B8A8_UNORM render targets.
2013-09-25 11:49:01 +02:00
Francois Gouget
cccba76091
wined3d: Make device_invalidate_shader_constants() static.
2013-09-24 19:08:35 +02:00
Henri Verbeet
9516ce33d8
wined3d: Get rid of clearing the texture bindings in state_init_default().
...
This is arbitrary, we don't do it for any of the other resource bindings
either, and the wined3d_state structure is assumed to be zero-initialized.
2013-09-24 12:57:27 +02:00
Henri Verbeet
ea4c3d5d5d
wined3d: Get rid of the broken render target check for surface_blt_special().
...
This used to work out in practice because swapchain surfaces were always
considered render targets, but that's no longer true. We can just remove the
check, because surface_blt_special() already contains a proper check itself
anyway.
2013-09-24 12:57:24 +02:00
Henri Verbeet
8eb73cd0e9
wined3d: Add fallback depth format info for when ARB_depth_texture is not available.
...
These use the generic GL_DEPTH_COMPONENT internal format, and can't be used
for texturing.
2013-09-24 12:57:21 +02:00
Henri Verbeet
bff80b8bab
wined3d: Copy some missing fields to the new swapchain desc in wined3d_device_reset().
...
The ones that matter are enable_auto_depth_stencil and
auto_depth_stencil_format. auto_restore_display_mode should never change in
practice.
2013-09-23 20:37:29 +02:00
Henri Verbeet
864b25e582
wined3d: Introduce a separate function for updating the viewport and scissor rects.
2013-09-23 20:37:05 +02:00
Stefan Dösinger
556e3e0c76
wined3d: Use GL_APPLE_client_storage for volumes if available.
2013-09-23 20:32:36 +02:00
Stefan Dösinger
5e89689bcd
wined3d: Make format conversion functions work on volumes.
2013-09-23 20:32:32 +02:00
Stefan Dösinger
bb172d2a38
wined3d: Add support for converted volumes.
2013-09-23 20:32:31 +02:00
Stefan Dösinger
24fbe9f2ec
wined3d: Pass the destination pitch to format conversion functions.
...
The relation between src and dst pitches is not correct if the source
pitch is padded to match pitch alignment requirements.
2013-09-20 17:04:04 +02:00
Henri Verbeet
0eae0858ae
wined3d: Set the default scissor rect from the swapchain desc in state_init_default().
...
We always have a swapchain here, even if there are no back buffers.
2013-09-20 11:27:43 +02:00
Henri Verbeet
49c6b87a32
wined3d: Only print a warning about render target usage in wined3d_device_set_render_target().
2013-09-20 11:27:40 +02:00
Stefan Dösinger
d15042837a
wined3d: Pass a correct access flag to glMapBufferARB.
2013-09-19 19:49:49 +02:00
Stefan Dösinger
e9b4f154dd
wined3d: Don't use volume->resource.allocatedMemory.
...
Depending on the location flags, the buffer or heap_memory should be
used.
2013-09-19 19:49:43 +02:00
Henri Verbeet
5bd3bfff99
wined3d: Avoid LPVOID.
2013-09-19 19:49:01 +02:00
Henri Verbeet
e9fbb6b0fd
wined3d: Avoid LPCSTR.
2013-09-19 19:49:00 +02:00
Stefan Dösinger
2680f33015
wined3d: Check box dimensions in volume_map.
2013-09-18 15:47:00 +02:00
Stefan Dösinger
ac37f7a2ac
wined3d: Implement locking of block-based volume textures.
2013-09-18 15:46:56 +02:00
Stefan Dösinger
83b404879c
wined3d: Mapping a mapped volume is an error.
2013-09-18 15:46:49 +02:00
Stefan Dösinger
bbfca4863c
wined3d: Store the instance count in the context structure.
2013-09-16 13:06:03 +02:00
Stefan Dösinger
59e0b841c7
wined3d: Move device_preload_textures into context.c.
2013-09-16 13:06:01 +02:00
Stefan Dösinger
112617f00b
wined3d: Move tex_unit_map and friends into the context.
2013-09-16 13:05:58 +02:00
Stefan Dösinger
f29c24f2de
wined3d: Pass the context to surface_internal_preload.
2013-09-16 13:05:55 +02:00
Stefan Dösinger
fe44be5fde
wined3d: Pass the context to the internal texture_preload function.
2013-09-16 13:05:52 +02:00
Henri Verbeet
d1e44ff775
wined3d: Pass a resource to wined3d_resource_free_sysmem().
2013-09-16 12:51:13 +02:00
Henri Verbeet
261246ef21
wined3d: Pass a resource to wined3d_resource_allocate_sysmem().
2013-09-16 12:51:13 +02:00
Henri Verbeet
fc85f4f7d6
wined3d: Never set the first render target to the front buffer in wined3d_device_init_3d().
2013-09-13 10:57:00 +02:00
Henri Verbeet
3c023a5db5
wined3d: Just set the first render target to NULL in wined3d_device_reset().
2013-09-13 10:56:52 +02:00
Henri Verbeet
def0558b45
wined3d: Just set the first render target to NULL in wined3d_device_uninit_3d().
2013-09-13 10:56:49 +02:00
Stefan Dösinger
b8eb171b6b
wined3d: Explicitly pass the state information to buffer_internal_preload.
2013-09-12 17:48:20 +02:00
Stefan Dösinger
d8c43aabf7
wined3d: Move the decoded stream info into the context.
2013-09-12 17:48:14 +02:00
Stefan Dösinger
a0b56d9c59
wined3d: Pass stream info and needed fixups to buffer_find_decl.
2013-09-12 17:48:11 +02:00
Henri Verbeet
1a78667862
wined3d: Allow the first render target to be set to NULL.
...
Note that it still isn't necessarily safe to render in this case, because
there are places where we assume the first render target is always non-NULL in
order to determine e.g. framebuffer dimensions. It's now the responsibility of
the caller to ensure that doesn't happen.
2013-09-12 10:59:18 +02:00
Henri Verbeet
1b53cbd8de
wined3d: Make primary_render_target_is_p8() work on a swapchain.
2013-09-12 10:59:11 +02:00
Stefan Dösinger
b4d8b52fa7
wined3d: Pass position_transformed and gl_info to find_ps_compile_args.
2013-09-11 17:09:59 +02:00
Stefan Dösinger
dfeee9077c
wined3d: Pass the swizzle map to find_vs_compile_args.
2013-09-11 17:09:56 +02:00
Henri Verbeet
1453baf64b
wined3d: Properly check if the swapchain format is WINED3DFMT_P8_UINT in primary_render_target_is_p8().
2013-09-11 09:58:52 +02:00
Henri Verbeet
aea8d5c11e
wined3d: Get rid of the render target / overlay check in wined3d_surface_flip().
...
The surface needs to be part of a swapchain to be flipped, but that doesn't
have much to do with WINED3DUSAGE_RENDERTARGET. We can just remove the check
here, because ddraw_surface7_Flip() already has the correct check.
2013-09-11 09:58:50 +02:00
Henri Verbeet
d21c26e4f6
wined3d: Get rid of surface_modify_location().
2013-09-10 11:09:53 +02:00
Henri Verbeet
b62915dabb
wined3d: Replace surface_modify_location(surface, location, FALSE) calls with surface_invalidate_location().
2013-09-10 11:09:51 +02:00
Henri Verbeet
c6ce5486c0
wined3d: Get rid of the special SFLAG_INTEXTURE / SFLAG_INSRGBTEX code in surface_modify_location().
...
It turns out this is already safe for all callers.
2013-09-10 11:09:48 +02:00
Stefan Dösinger
cd203b38a6
wined3d: Pass the context to the main buffer preload function.
2013-09-09 22:10:01 +02:00
Stefan Dösinger
87f931dc64
wined3d: Only invalidate STATE_INDEXBUFFER for the current context in buffer_get_sysmem().
2013-09-09 22:10:00 +02:00
Stefan Dösinger
1cf192172e
wined3d: Only invalidate STATE_INDEXBUFFER for the current context in buffer_create_buffer_object().
2013-09-09 22:10:00 +02:00
Henri Verbeet
e2f4ab4607
wined3d: Rewrite surface_modify_location() on top of surface_validate_location() and surface_invalidate_location().
2013-09-09 22:09:58 +02:00
Henri Verbeet
59e2f52ff8
wined3d: Replace the "dirty" field in struct gl_texture with WINED3D_TEXTURE_ flags.
2013-09-09 22:09:58 +02:00
Henri Verbeet
c44012f0c1
wined3d: Get rid of the "dirty" flag to wined3d_texture_set_dirty().
2013-09-09 22:09:57 +02:00
Stefan Dösinger
df5a0976e9
wined3d: Check the format block size before creating textures.
...
Sizes of textures and stand-alone surfaces must be multiples of the
format's block size for DXTN formats. Since we create a texture for
everything (except in ddraw), this check also takes care of stand-alone
surfaces.
2013-09-06 17:25:08 +02:00
Stefan Dösinger
80638b6d2f
wined3d: Enforce texturing capability format restrictions on resource creation.
2013-09-06 17:25:08 +02:00
Henri Verbeet
7859509f5b
wined3d: Get rid of the SFLAG_INTEXTURE / SFLAG_INSRGBTEX check in surface_set_texture_name().
2013-09-06 12:00:12 +02:00
Henri Verbeet
137590be31
wined3d: Return 1 instead of 0 for max_vertex_blend_matrices in glsl_vertex_pipe_vp_get_caps().
...
It's not necessarily clear to me that one is better than the other here, but
this is what we returned in the old GL fixed function implementation of the
D3D fixed function vertex pipe, and apparently EverQuest depends on this.
This fixes a regression introduced by commit 2014141a25
.
2013-09-06 12:00:09 +02:00
Stefan Dösinger
b73464a413
wined3d: Use the ftoa helper function in the ARB shader backend.
...
This is the ARB equivalent to e0494afa00
.
2013-09-05 17:55:48 +02:00
Stefan Dösinger
37c4f3a88c
wined3d: Don't clamp texture lookups in the ARB fixed function fragment pipe.
2013-09-05 17:55:11 +02:00
Henri Verbeet
ad178a5b55
wined3d: Enforce WINED3DUSAGE_DEPTHSTENCIL format restrictions on resource creation.
2013-09-05 13:18:24 +02:00
Henri Verbeet
b28e9f6482
wined3d: Enforce WINED3DUSAGE_RENDERTARGET format restrictions on resource creation.
2013-09-05 13:18:23 +02:00
Henri Verbeet
6325f3ddd8
wined3d: Don't set WINED3DUSAGE_RENDERTARGET on the front buffer.
...
We never render directly to the front buffer, and in case of e.g. a P8 front
buffer, we would fail surface creation if we were to enforce format
restrictions.
2013-09-04 11:37:01 +02:00
Henri Verbeet
99092c2700
wined3d: Avoid a couple of useless glGetUniformLocationARB() calls.
2013-09-04 11:36:58 +02:00
Henri Verbeet
ff6ce4c669
wined3d: Use clamp() instead of max() for calculating the clamped cosine in the ffp lighting calculations.
...
On typical hardware, the clamp() would be an instruction modifier, while the
max() would need an extra instruction.
2013-09-04 11:36:50 +02:00
Henri Verbeet
0d2d847914
wined3d: Don't clamp texture lookups in the GLSL fixed function fragment pipe.
2013-09-03 16:58:17 +02:00
Henri Verbeet
50e2ee73a4
wined3d: Rename wined3d_fake_gl_ctx to wined3d_caps_gl_ctx.
...
There's nothing particularly fake about the GL context.
2013-09-03 16:58:16 +02:00
Henri Verbeet
36dcb77f6e
wined3d: Get rid of some leftover references to IWineD3D.
2013-09-03 16:58:16 +02:00
Henri Verbeet
0be8e524c6
wined3d: Avoid some forward declarations.
2013-09-02 18:02:42 +02:00
Henri Verbeet
b5e0c5d052
wined3d: Get rid of some leftover comments referring to the GL lock.
2013-09-02 18:02:26 +02:00