Henri Verbeet
4cd69b8a09
wined3d: Simplify the generated GLSL for NRM.
2010-03-19 14:31:40 +01:00
Roderick Colenbrander
fb8812db89
wined3d: Get rid of d3dfmt_get_conv in RealizePalette.
2010-03-19 13:15:26 +01:00
Roderick Colenbrander
27a96e477a
wined3d: Start moving paletted texture support to the blit_shader.
2010-03-19 13:15:21 +01:00
Roderick Colenbrander
fd99ab78c2
wined3d: Use draw_textured_quad in BltOverride.
2010-03-19 13:15:06 +01:00
Roderick Colenbrander
4bd627cc7f
wined3d: Add a helper function for drawing a textured quad.
2010-03-19 13:15:03 +01:00
Henri Verbeet
7c930589bc
wined3d: Avoid some common invalid context accesses.
...
Unfortunately there are plenty of other places left. Perhaps we should
consider creating our own window when the context becomes invalid and making
the context current on that instead.
2010-03-18 10:25:09 +01:00
Henri Verbeet
135f364110
wined3d: Kill VTRACE.
2010-03-18 10:25:02 +01:00
Henri Verbeet
f2bcd32bff
wined3d: Replace some VTRACEs with proper TRACEs.
2010-03-18 10:24:51 +01:00
Henri Verbeet
e5673ddbc3
wined3d: Add a quirk to rebind FBOs when one of their attached textures is updated.
...
Updating a texture while it is attached to the currently bound FBO is
something GL implementations tend to get wrong. NVIDIA fails at
glTexSubImage2D(), fglrx and Mesa with glTexImage2D(). I'm afraid to try what
happens on OS X. Fortunately we never use glTexImage2D() while a texture is
attached to an FBO, so we only need to care about glTexSubImage2D().
2010-03-18 10:24:41 +01:00
Henri Verbeet
bd4fb33a52
wined3d: Unify GLINFO_LOCATION in surface.c.
2010-03-18 10:24:33 +01:00
Henri Verbeet
914c8cb8ea
ddraw: Acquire/release the focus window from the correct location.
2010-03-18 10:24:15 +01:00
Henri Verbeet
0838d0ab64
wined3d: Make the focus window also the foreground window.
2010-03-18 10:24:05 +01:00
Stefan Dösinger
d790530df3
wined3d: Make resources 16 byte aligned.
2010-03-17 13:36:39 +01:00
Stefan Dösinger
b621fac215
wined3d: Merge two if conditions in buffer.c.
2010-03-17 13:36:17 +01:00
Sandijs Ribaks
e385748258
wined3d: Add surface conversion function from WINED3DFMT_YUY2 to WINED3DFMT_B8G8R8X8_UNORM.
2010-03-17 10:59:18 +01:00
Henri Verbeet
4e48ae2629
ddraw: Implement IDirectDrawImpl_GetSurfaceFromDC().
...
This is a pretty naive implementation, should that become a performance
problem it's easy enough to speed up with a search tree of some kind.
2010-03-17 10:06:25 +01:00
Henri Verbeet
7b52c2fbed
wined3d: Cleanup IWineD3DDeviceImpl_SetFrontBackBuffers().
2010-03-17 10:06:21 +01:00
Henri Verbeet
e9dbd5bff8
wined3d: Don't change the draw buffer in IWineD3DDeviceImpl_SetFrontBackBuffers().
...
This should be handled by the context's draw buffer management.
2010-03-17 10:06:18 +01:00
Henri Verbeet
509b038cf5
wined3d: Simplify the IWineD3DDeviceImpl_ClearSurface() surface loading code.
2010-03-17 10:06:15 +01:00
Henri Verbeet
2b86950c3b
wined3d: Simplify context_apply_attachment_filter_states() flow a bit.
2010-03-17 10:06:12 +01:00
Henri Verbeet
ec10c1ed8d
wined3d: Add missing checkGLcall's to buffer_Map().
2010-03-17 10:06:09 +01:00
Henri Verbeet
570f865bad
wined3d: Don't use framebuffer blit for backbuffer formats with fixups in swapchain_blit().
2010-03-17 10:06:06 +01:00
Henri Verbeet
60e98cc3ad
wined3d: Don't use filtering on textures that need complex fixups in swapchain_blit().
...
For example, interpolating palette indices doesn't have the desired result.
Should we really want filtering for these cases we could implement it inside
the relevant shaders, after the fixup, but I doubt it's worth the effort.
2010-03-17 10:06:03 +01:00
Henri Verbeet
c48adfe201
wined3d: Use "gl_filter" in the non-FBO path of swapchain_blit() as well.
2010-03-17 10:05:59 +01:00
Stefan Dösinger
cc6d17ba7c
wined3d: Check the alignment of mapped buffer pointers.
...
Windows returns 32 byte aligned pointers when locking vertex and index
buffers, and some applications(Half Life 2, Alpha Prime, possibly others)
rely on this. Check the alignment and fall back to double buffered
buffers with HeapAlloced and aligned pointers if the alignment doesn't
fit.
2010-03-16 17:03:13 +01:00
Stefan Dösinger
6c53871d30
wined3d: Implement unfenced updates of double buffered buffers.
2010-03-16 17:02:50 +01:00
Stefan Dösinger
1691a6d7d0
wined3d: Use glMapBuffer for 1:1 uploads in PreLoad.
...
This is needed to take advantage of asynchronous uploads with double buffered buffers
2010-03-16 17:02:43 +01:00
Stefan Dösinger
04752991b1
wined3d: Don't DISCARD or NOOVERWRITE non-dynamic buffers.
...
Shaiya locks a non-dynamic buffer with the DISCARD flag and expects
the contents to be retained. The SDK says DISCARD requires dynamic
resources, and Windows 7 returns an error in this situation, crashing
Shaiya. This patch sticks to the Windows XP behavior and allows the
lock, but ignores the DISCARD flag to retain the buffer contents.
2010-03-16 17:02:34 +01:00
Alexandre Julliard
bef5645eb1
makefiles: Remove the no longer needed explicit separators for dependencies.
2010-03-16 13:28:19 +01:00
Ričardas Barkauskas
a7aa4a87e2
wined3d: Fix ATI2N pitch and offset calculations.
2010-03-16 13:03:30 +01:00
Henri Verbeet
78166b0b23
wined3d: Implement SetDestWindowOverride() by simply making the context current on a different window.
2010-03-16 11:45:15 +01:00
Henri Verbeet
cd9a8b74b9
wined3d: Store the device window in the swapchain.
...
The swapchain's current window might be changed by SetDestWindowOverride().
2010-03-16 11:45:11 +01:00
Henri Verbeet
aa819fe888
wined3d: Simplify a comparison in IWineD3DDeviceImpl_Reset().
2010-03-16 11:45:06 +01:00
Henri Verbeet
d6bbe90b85
wined3d: The swapchain should always have a window handle.
2010-03-16 11:45:01 +01:00
Henri Verbeet
0ae49c35fb
wined3d: Use the context's window handle in IWineD3DSurfaceImpl_BltOverride().
2010-03-16 11:44:55 +01:00
Henri Verbeet
7b0b16fafe
wined3d: Use the context's window handle in stretch_rect_fbo().
2010-03-16 11:44:50 +01:00
Henri Verbeet
18ec2525a4
wined3d: Store the swapchain instead of the surface in the context.
2010-03-16 11:44:44 +01:00
Henri Verbeet
b281f23efe
wined3d: Add a separate function to set the pixel format in context_create().
2010-03-16 11:44:38 +01:00
Henri Verbeet
4133a0a4ff
wined3d: Use "gl_info" in some more places in context_create().
2010-03-16 11:44:32 +01:00
Henri Verbeet
4b671f4d54
wined3d: Move device context array functions to device.c.
2010-03-15 15:55:57 +01:00
Henri Verbeet
6ed7906852
wined3d: Don't partially initialize contexts in AddContextToArray().
...
Just add a context to the device's context array.
2010-03-15 15:55:51 +01:00
Henri Verbeet
8a107bc63a
wined3d: Kill pbuffer offscreen rendering support.
...
Our pbuffer support is broken, nobody cares.
2010-03-15 15:55:38 +01:00
Roderick Colenbrander
604caf0caa
wined3d: Remove oversize texture support.
2010-03-15 14:23:15 +01:00
Roderick Colenbrander
74bf524a99
wined3d: Use surface_get_blt_info to compute texture coordinates for surface_blt_to_drawable.
2010-03-15 14:22:57 +01:00
Roderick Colenbrander
360384277b
wined3d: Extend surface_get_depth_blt_info with texture coordinate code from surface_blt_to_drawable.
2010-03-15 14:22:44 +01:00
Paul Andrew Panon
482fbe91e2
wined3d: Update to add Mesa ATI card detection code.
2010-03-05 12:46:46 +01:00
Kusanagi Kouichi
f4bce098ea
wined3d: Fix a failure of card vendor detection.
2010-03-05 12:39:30 +01:00
Stefan Dösinger
bd0641d37f
wined3d: Add wined3d_event_query_create and destroy.
...
This also moves the event query faking code back to the external
interface and removes the temporary WINED3D_EVENT_QUERY_UNSUPPORTED
return value since wined3d_event_query_create properly fails if no
event query GL extension is supported.
2010-03-05 12:39:23 +01:00
Stefan Dösinger
6863af3ebb
wined3d: Introduce wined3d_event_query_issue.
2010-03-05 12:39:15 +01:00
Stefan Dösinger
a0d1a55650
wined3d: Create a wined3d internal event query interface.
...
The newly created wined3d_event_query_test will be available for
wined3d-internal use, primarily for synchronizing buffer updates when
using GL_APPLE_flush_buffer_range.
The wined3d_event_query interface will contain most of the functionality:
* Selecting the proper GL extension
* Context handling
* Thread handling
The IWineD3DEventQuery COM interface will use the internal interface
and implement event query faking on top of it (to enable games that
require event queries able to run on drivers that don't implement the
GL extension).
2010-03-05 12:39:07 +01:00
Henri Verbeet
ba519be60f
wined3d: Split TEXT shader comments into separate lines.
...
Based on a patch by Christian Costa.
2010-03-04 17:29:16 +01:00
Paul Andrew Panon
74a059d21b
wined3d: Add Mesa ATI card detection code.
2010-03-03 16:13:23 +01:00
Paul Andrew Panon
85b07b9d38
wined3d: Add a card detection table and refactor wined3d_guess_card.
2010-03-03 16:13:09 +01:00
Paul Andrew Panon
1735b4ee92
wined3d: Adjust the quirks to use the new GL_VENDOR codes.
2010-03-03 16:06:40 +01:00
Paul Andrew Panon
7a9734dc68
wined3d: Add a real GL vendor detection.
2010-03-03 16:06:28 +01:00
Paul Andrew Panon
31573b21b9
wined3d: Rename GL_VENDOR to HW_VENDOR.
2010-03-03 16:06:07 +01:00
Roderick Colenbrander
c0ef7a1a93
wined3d: Move the 8-bit palette shader code over to the blit_shader backend.
2010-03-03 12:53:51 +01:00
Roderick Colenbrander
922ad80f42
wined3d: Rename yuv to complex in order to prepare for 8-bit palette fixups using the same code.
2010-03-03 12:53:41 +01:00
Roderick Colenbrander
ccea415c77
wined3d: Fix multisampling on cards without 32-bit RGB fbconfigs.
2010-03-02 11:11:49 +01:00
Henri Verbeet
de006dbcf9
wined3d: Escape shader comments.
2010-02-23 12:06:58 +01:00
Henri Verbeet
eefb45f333
wined3d: Properly report shader comment sizes.
2010-02-23 12:06:54 +01:00
Stefan Dösinger
5c4d3fb5a2
wined3d: Control SFLAG_CONVERTED in surface_prepare_texture.
...
This makes sure that the flag is set correctly when
surface_allocate_surface is called and client storage is disabled
properly for converted surfaces.
2010-02-17 16:50:38 +01:00
Henri Verbeet
f97565191c
wined3d: Drop buffer objects from the stream info as well when PreLoad drops them.
2010-02-16 10:47:56 +01:00
Henri Verbeet
974f888dfa
wined3d: Move the gl info structure to wined3d_private.h.
2010-02-16 10:47:50 +01:00
Henri Verbeet
1a880cb1f9
wined3d: Remove some unused extensions.
2010-02-16 10:47:40 +01:00
Stefan Dösinger
24e2308670
wined3d: Don't use GL_MAP_FLUSH_EXPLICIT_BIT without GL_MAP_WRITE_BIT.
2010-02-09 11:33:44 +01:00
Stefan Dösinger
8625f0cdbf
wined3d: Don't record dirty areas in a readonly lock.
2010-02-09 11:33:34 +01:00
Henri Verbeet
ba8e6f713b
wined3d: Use the HDC from the acquired context to call SwapBuffer().
...
These should be the same, but this way the relation is clearer.
2010-02-05 10:06:21 +01:00
Henri Verbeet
d0afc7567b
wined3d: Call SetDestWindowOverride() before acquiring a context.
2010-02-05 10:06:17 +01:00
Henri Verbeet
3df59ef0d5
wined3d: Get rid of the now redundant max_ffp_texture_stages device field.
2010-02-05 10:06:12 +01:00
Henri Verbeet
4c7bcb883b
wined3d: Set the texture stage limit based on the fragment pipe caps.
2010-02-05 10:06:08 +01:00
Henri Verbeet
b59dd0e4e8
wined3d: Add the general combiner limit to wined3d_gl_info.
2010-02-05 10:06:03 +01:00
Henri Verbeet
576ea95803
wined3d: Remove the unused device type parameter from the shader backend's get_caps() function.
2010-02-04 13:39:27 +01:00
Henri Verbeet
497386dc5c
wined3d: Remove the unused device type parameter from the fragment pipe's get_caps() function.
...
On the subject of actually supporting software devices, we should probably
implement those by creating a software or reference adapter with appropriate
gl_info and pipe implementations and creating a device based on that.
2010-02-04 13:39:26 +01:00
Henri Verbeet
af7dfcd378
wined3d: Do not preload surfaces when attaching them to an FBO.
...
Just make sure the texture is allocated, so we have something to attach. Note
also that context_apply_attachment_filter_states() runs under the GL lock, so
preloading resources is actually unsafe there.
2010-02-04 13:39:26 +01:00
Henri Verbeet
02e0b3ae1a
wined3d: Introduce surface_prepare_texture().
...
Similar to surface_prepare_system_memory(). In the long term we'll probably
want to move the whole location management to resource.c and unify buffers and
textures there.
2010-02-04 13:39:26 +01:00
Henri Verbeet
b0583a2410
wined3d: Never acquire a context in IWineD3DSurfaceImpl_BindTexture().
...
The caller is already responsible for doing this, so it's redundant at best.
2010-02-04 13:39:26 +01:00
Henri Verbeet
84913109f6
wined3d: Explicitly load and modify the surface in color_fill_fbo().
2010-02-03 13:54:02 +01:00
Henri Verbeet
5f3dccddb4
wined3d: Do not depend on context_attach_surface_fbo() to load the surface in stretch_rect_fbo().
2010-02-03 13:54:02 +01:00
Henri Verbeet
040452ad90
wined3d: Update the stream info before applying states.
2010-02-03 13:54:02 +01:00
Henri Verbeet
31d51fb175
wined3d: Preload textures before applying states.
2010-02-03 13:54:02 +01:00
Henri Verbeet
7ff576bbab
wined3d: Select the blitter during adapter initialization.
2010-02-03 13:54:02 +01:00
Henri Verbeet
cee8e9d881
wined3d: Select the shader backend during adapter initialization.
2010-02-02 14:11:02 +01:00
Henri Verbeet
fb21551b2d
wined3d: Select the fragment pipeline during adapter initialization.
2010-02-02 14:10:56 +01:00
Henri Verbeet
93c49f1777
wined3d: Update the swapchain's present parameters when changing the backbuffer.
...
This fixes a bug exposed by commit b5907e23cc
.
2010-02-02 14:10:52 +01:00
Henri Verbeet
97700f05a9
wined3d: TRACE IWineD3DDeviceImpl_CreateSurface() parameters.
2010-02-02 14:10:44 +01:00
Henri Verbeet
42c83f0260
wined3d: Dump ARB program shaders on compile failure.
...
Similar to the patch for GLSL.
2010-02-02 14:10:40 +01:00
Stefan Dösinger
224043d6cf
wined3d: Implement dynamic buffers with GL_ARB_map_buffer_range.
2010-02-02 14:09:14 +01:00
Stefan Dösinger
f6bb86e196
wined3d: Add GL_ARB_map_buffer_range.
2010-02-02 14:09:04 +01:00
Henri Verbeet
c43c2a2845
wined3d: Use the absolute source value in shader_glsl_rsq().
2010-02-01 14:16:26 +01:00
Henri Verbeet
adf4ca2e23
wined3d: Handle a zero source value for WINED3DSIH_RSQ.
2010-02-01 14:16:22 +01:00
Henri Verbeet
ef82681d59
wined3d: Handle a zero source value for WINED3DSIH_RCP.
2010-02-01 14:16:18 +01:00
Henri Verbeet
4a8f93bade
wined3d: Handle a zero source value for WINED3DSIH_LOG.
2010-02-01 14:16:15 +01:00
Henri Verbeet
bef792f5ff
wined3d: Handle zero-length vectors for WINED3DSIH_NRM.
...
Unfortunately there's no reliable way to generate infinity in GLSL, but a
sufficiently large value will probably do. The important part of the patch is
that we don't generate NaN, because that will keep propagating through the
entire shader.
2010-02-01 14:16:11 +01:00
Luca Bennati
9f3c90973f
wined3d: Add newer ATI/AMD cards vendor recognition.
2010-02-01 12:46:23 +01:00
Stefan Dösinger
d499073c10
wined3d: Catch invalid buffer map parameters.
2010-01-29 14:59:02 +01:00
Henri Verbeet
9f21f2c2f2
wined3d: Dump the GLSL shader source on link failure.
...
Mostly to help Mesa developers diagnose bug reports involving GLSL compile
failures, but it's convenient in general to have the source all in one place.
2010-01-29 13:30:06 +01:00
Henri Verbeet
c03d367d3c
wined3d: Get rid of an unnecessary GetContainer() call in surface_blt_to_drawable().
2010-01-29 13:30:06 +01:00
Henri Verbeet
d66f5345e6
wined3d: Prune invalid states from the state table.
2010-01-29 13:30:06 +01:00
Henri Verbeet
19516bf69f
wined3d: Add some basic state table validation.
2010-01-29 13:30:05 +01:00