Commit Graph

1471 Commits

Author SHA1 Message Date
Henri Verbeet
b37ce45d6c wined3d: Move pixel shader constants to wined3d_state. 2010-09-20 13:48:13 +02:00
Henri Verbeet
33dfb9539c wined3d: Move the pixel shader to wined3d_state. 2010-09-20 13:48:13 +02:00
Henri Verbeet
8a148cc7c5 wined3d: Move vertex shader constants to wined3d_state. 2010-09-20 13:48:12 +02:00
Henri Verbeet
dd4aea36c9 wined3d: Move the vertex shader to wined3d_state. 2010-09-20 13:48:12 +02:00
Henri Verbeet
e31ea51bab wined3d: Move the vertex declaration to wined3d_state. 2010-09-18 13:05:54 +02:00
Henri Verbeet
d728d5f0ec wined3d: Move texture bindings to wined3d_state. 2010-09-18 13:05:49 +02:00
Henri Verbeet
2e119ecd28 wined3d: Move the texture's target field to the base texture struct. 2010-09-18 13:05:36 +02:00
Henri Verbeet
8fdfc736bf wined3d: Move sampler states to wined3d_state. 2010-09-16 10:12:24 -05:00
Henri Verbeet
5b3c1a2082 wined3d: Move texture states to wined3d_state. 2010-09-16 10:12:17 -05:00
Henri Verbeet
597da9907a wined3d: Move transforms to wined3d_state. 2010-09-16 10:12:06 -05:00
Henri Verbeet
5f6ced2767 wined3d: Move the material to wined3d_state. 2010-09-16 10:11:57 -05:00
Henri Verbeet
16d9c91b97 wined3d: Move the viewport to wined3d_state. 2010-09-15 10:33:26 -05:00
Henri Verbeet
937eb7e600 wined3d: Move the scissor rect to wined3d_state. 2010-09-15 10:33:20 -05:00
Henri Verbeet
1ef4f075c1 wined3d: Introduce a separate structure for stateblock states.
We'd like to not pass an entire stateblock to things like state handlers and
the shader backend, because those then use the stateblock to get to the
device and through there to all the rest of wined3d. This would also be
required for serialization of wined3d draw and state change commands into a
single GL context. Resource updates would be explicitly excluded from
serialization.
2010-09-15 10:33:14 -05:00
Henri Verbeet
6ce848bee4 wined3d: Introduce a structure for stream state. 2010-09-14 11:43:54 -05:00
Henri Verbeet
b68d257710 wined3d: Get rid of redundant comparisons against NULL / 0. 2010-09-14 09:43:33 -05:00
Jesse Litton
ad917d366c wined3d: Recognize GeForce GTX 465. 2010-09-14 09:43:15 -05:00
Roderick Colenbrander
4baf7a52f0 wined3d: Move video memory override to init_driver_info. 2010-09-13 13:28:28 -05:00
Roderick Colenbrander
192e0dc433 wined3d: Store amount of video memory in gpu_description_table. 2010-09-13 13:28:15 -05:00
Roderick Colenbrander
27fb5e2d74 wined3d: Add legacy ATI cards. 2010-09-13 13:27:21 -05:00
Mikko Rasa
b46183a2b4 wined3d: Recognize GeForce GTX 460. 2010-09-09 18:03:18 +02:00
Roderick Colenbrander
a352ad2097 wined3d: Add Intel gpu and driver information. 2010-09-09 13:20:37 +02:00
Henri Verbeet
53183b4cf3 wined3d: IWineD3DSurface_GetDesc() should never fail. 2010-09-08 13:31:43 +02:00
Roderick Colenbrander
d7472026a0 wined3d: Return generic info for unhandled devices/drivers. 2010-09-08 13:26:04 +02:00
Henri Verbeet
992cb88f71 wined3d: Rename "pDesc" to "desc". 2010-09-07 11:23:20 +02:00
Roderick Colenbrander
878dcc6d93 wined3d: Separate driver info from GPU info. 2010-09-06 20:30:25 +02:00
Henri Verbeet
8e0cb60b09 wined3d: Do not call device_switch_onscreen_ds() while under the GL lock. 2010-09-06 16:14:18 +02:00
Henri Verbeet
6c4c351791 wined3d: Don't require wined3d object parents to be COM objects. 2010-09-01 14:01:02 +02:00
Henri Verbeet
b84d1ce5f7 wined3d: Clippers don't need parents. 2010-09-01 14:00:56 +02:00
Henri Verbeet
7c675b522a wined3d: Queries don't need parents. 2010-09-01 12:40:08 +02:00
Henri Verbeet
2ef400901d wined3d: Devices don't need parents. 2010-09-01 12:40:07 +02:00
Henri Verbeet
3a7f08a56f wined3d: Rename wined3d_format_desc to wined3d_format. 2010-08-31 14:23:47 +02:00
Henri Verbeet
c689280beb wined3d: Use surface_color_fill() in IWineD3DDeviceImpl_ColorFill(). 2010-08-30 11:26:45 +02:00
Henri Verbeet
ecc67757ab wined3d: Introduce surface_color_fill().
This is also a first attempt at a more structured interface to blitter
operations.
2010-08-30 11:26:45 +02:00
Henri Verbeet
b233e7b301 wined3d: Rename the "format" field in wined3d_format_desc to "id". 2010-08-26 12:41:44 +02:00
Henri Verbeet
42b814c7d1 wined3d: Remove the GetContainer() methods from the public wined3d interface.
There's nothing left that uses these.
2010-08-26 12:41:39 +02:00
Henri Verbeet
cc5271d1b7 wined3d: Rename WINED3DFORMAT to wined3d_format_id. 2010-08-24 12:25:01 +02:00
Henri Verbeet
50b5955288 wined3d: Use floating point colors in the blitter's color_fill functions. 2010-08-24 12:24:39 +02:00
Henri Verbeet
9956ea7044 wined3d: Convert from floating point to specific surface formats.
Instead of from WINED3DFMT_B8G8R8A8_UNORM.
2010-08-24 12:24:33 +02:00
Henri Verbeet
a455a918c1 wined3d: Explicitly pass the draw rect to device_clear_render_targets().
For regular clears this is the intersection of the viewport and scissor
rectangles, but color fills shouldn't be affected by those.
2010-08-24 12:24:28 +02:00
Stefan Dösinger
fad5ff478d wined3d: Fix the wined3d_event_query_supported prototype. 2010-08-23 13:37:03 +02:00
Henri Verbeet
b93a9b37fa wined3d: Pass a WINED3DCOLORVALUE structure to IWineD3DDeviceImpl_ClearRendertargetView().
The structure is nicer to work with than the array.
2010-08-23 12:05:24 +02:00
Henri Verbeet
8292c687d8 wined3d: Get rid of the now redundant SFLAG_SWAPCHAIN surface flag. 2010-08-17 11:55:32 +02:00
Henri Verbeet
0b24db5db5 wined3d: Also store the subresource container type. 2010-08-17 11:55:32 +02:00
Henri Verbeet
b0fb388edb wined3d: A volume's container is always a volume texture. 2010-08-17 11:55:32 +02:00
Henri Verbeet
61db577a4b wined3d: Remove SetContainer() from the public IWineD3DSurface interface. 2010-08-17 11:55:32 +02:00
Henri Verbeet
89e6a60732 wined3d: Remove SetContainer() from the public IWineD3DVolume interface. 2010-08-17 11:55:32 +02:00
Henri Verbeet
d494dfb6c0 wined3d: Rename surface_calculate_size() to wined3d_format_calculate_size(). 2010-08-16 13:47:42 +02:00
Henri Verbeet
6a9476b609 wined3d: Correctly calculate the resource size for ATI2N surfaces. 2010-08-16 13:47:37 +02:00
Henri Verbeet
e1188b0c8e wined3d: Fix some misspellings of "surface". 2010-08-16 13:47:17 +02:00
Henri Verbeet
5f2fcfdd6b wined3d: Reattach FBO attachments when any of the corresponding surfaces is unloaded. 2010-08-16 13:47:08 +02:00
Henri Verbeet
b2e1e1fd71 wined3d: Pass the color as floating point values to device_clear_render_targets(). 2010-08-03 11:06:42 +02:00
Henri Verbeet
237f39377f wined3d: Move the draw buffer array to the context. 2010-07-30 11:36:03 +02:00
Stefan Dösinger
6a87681b11 wined3d: Fix an msvc anachronism warning. 2010-07-29 17:33:34 +02:00
Stefan Dösinger
81b03d8891 wined3d: Use a int for the mantissa in float_24_to_32. 2010-07-29 17:33:34 +02:00
Stefan Dösinger
b25f22e456 wined3d: Use powf instead of pow. 2010-07-29 17:33:34 +02:00
Henri Verbeet
0bf68b846a wined3d: Merge strect_rect_fbo() and surface_load_srgb_fbo(). 2010-07-26 18:38:31 +02:00
Henri Verbeet
943fb2fb57 wined3d: Do RGB <=> sRGB transfers using FBO blits.
Concept based on a patch by Stefan.
2010-07-26 18:38:31 +02:00
Henri Verbeet
d374d85055 wined3d: Clear all render targets in an MRT setup. 2010-07-23 11:46:47 +02:00
Henri Verbeet
f7760656f3 wined3d: Remove LoadLocation() from the public wined3d surface interface. 2010-07-22 10:13:24 +02:00
Henri Verbeet
147f24dd78 wined3d: Remove ModifyLocation() from the public wined3d surface interface. 2010-07-22 10:13:13 +02:00
Luke Bratch
c63c568731 wined3d: Add Nvidia 8800GTX detection. 2010-07-21 13:23:59 +02:00
Henri Verbeet
0344bc429d wined3d: Just implement BindTexture() for GDI surfaces in surface_gdi.c. 2010-07-21 09:33:05 +02:00
Henri Verbeet
aae8f13610 wined3d: Remove an unused prototype. 2010-07-21 09:33:01 +02:00
Henri Verbeet
d6e08f8074 wined3d: Consolidate surface related prototypes in wined3d_private.h. 2010-07-20 13:13:04 +02:00
Wolfram Sang
ddd1c72574 wined3d: Clarify some comments about Intel cards. 2010-06-01 13:37:18 +02:00
Henri Verbeet
1b5cc39a86 wined3d: Get rid of some dead code. 2010-06-01 11:03:56 +02:00
Roderick Colenbrander
39eaaeaa27 wined3d: Add support for mobile Geforce 3xx GPUs. 2010-05-27 14:46:43 +02:00
Roderick Colenbrander
036295c37a wined3d: Add Geforce 2xx lowend models. 2010-05-27 14:46:43 +02:00
Roderick Colenbrander
c471724a2a wined3d: Add Geforce 4x0 cards to GPU database. 2010-05-27 14:46:43 +02:00
Henri Verbeet
e8ac9bbd7f wined3d: Get rid of GLINFO_LOCATION. 2010-05-25 13:29:00 +02:00
Stefan Dösinger
b5da118531 wined3d: Catch RCP 0.0 in ARB. 2010-05-21 18:58:04 +02:00
Michael Stefaniuc
6d89364ad1 wined3d: Avoid using the long type. 2010-05-21 18:58:04 +02:00
Henri Verbeet
5dff410254 wined3d: Explicitly pass GL info to buffer_get_sysmem(). 2010-05-21 14:37:52 +02:00
Henri Verbeet
e647309402 wined3d: Explicitly pass GL info to buffer_create_buffer_object(). 2010-05-21 14:37:52 +02:00
Henri Verbeet
db0784e1da wined3d: Introduce a separate function for translating front buffer coordinates to GL coordinates. 2010-05-21 14:37:52 +02:00
Henri Verbeet
0fe7b45b6c wined3d: Make context_attach_surface_fbo() static. 2010-05-19 16:57:59 +02:00
Roderick Colenbrander
ba8f0da271 wined3d: Remove unneeded d3dfmt_get_conv conversion constants. 2010-05-17 14:43:56 +02:00
Henri Verbeet
79145e215b wined3d: Add support for shadow samplers. 2010-05-17 13:19:53 +02:00
Henri Verbeet
498664af3a wined3d: Remove some unused winetexturestates elements. 2010-05-17 13:19:44 +02:00
Henri Verbeet
7a2debe113 wined3d: Use the FBO cache in swapchain_blit(). 2010-05-06 14:17:30 +02:00
Henri Verbeet
3345146d0b wined3d: Use the FBO cache in stretch_rect_fbo(). 2010-05-06 14:17:24 +02:00
Henri Verbeet
ed75f5ca7a wined3d: Setup the FBO for the correct target in context_apply_clear_state(). 2010-05-05 10:37:40 +02:00
Henri Verbeet
49e076eabd wined3d: Separate context acquisition and state application. 2010-05-04 13:14:59 +02:00
Henri Verbeet
c9e7561b34 wined3d: Remove some unused fields from the shader backend caps. 2010-05-03 13:50:51 +02:00
Henri Verbeet
c1ea8fb6c7 wined3d: Store the VTF format capability in the format table. 2010-04-29 10:19:39 -05:00
Henri Verbeet
be7b01589f wined3d: Store the sRGB write format capability in the format table. 2010-04-29 10:19:39 -05:00
Henri Verbeet
c041781255 wined3d: Store the sRGB read format capability in the format table. 2010-04-29 10:19:39 -05:00
Henri Verbeet
163940540d wined3d: Store the bumpmap format capability in the format table. 2010-04-29 10:19:39 -05:00
Henri Verbeet
f09b8e454d wined3d: Avoid some needless depth buffer copies.
If an application switches between render targets of a different size, but
with the same depth/stencil surface it'll typically clear the depth/stencil
surface before drawing. However, in case of the smaller render target that
wouldn't be a full clear, so we'd have to do a depth copy if we also switched
between onscreen and offscreen rendering. Keeping track of which part of the
depth/stencil surface is current for onscreen/offscreen allows us to avoid
most of these kinds of copies. The current scheme requires the current/dirty
rectangle to have an origin at (0,0). This could be extended to an arbitrary
rectangle, but the bookkeeping becomes somewhat more complex in that case, and
it's not clear that there would be much of a benefit at this point.
2010-04-29 10:19:39 -05:00
Henri Verbeet
23a377f02b wined3d: Simply pass an IWineD3DSurfaceImpl pointer to surface_init_sysmem(). 2010-04-28 07:31:13 -05:00
Henri Verbeet
42375518ba wined3d: Simply pass an IWineD3DSurfaceImpl pointer to surface_add_dirty_rect(). 2010-04-27 12:02:39 -05:00
Henri Verbeet
f78d85ffe1 wined3d: Simply pass an IWineD3DSurfaceImpl pointer to surface_set_texture_target(). 2010-04-27 12:02:31 -05:00
Henri Verbeet
294d9dae8f wined3d: Simply pass an IWineD3DSurfaceImpl pointer to surface_set_texture_name(). 2010-04-27 12:02:24 -05:00
Henri Verbeet
d977e91b11 wined3d: Store back buffer surfaces as IWineD3DSurfaceImpl pointers in the swapchain. 2010-04-27 12:02:14 -05:00
Henri Verbeet
62acb2fdbc wined3d: Store the front buffer surface as an IWineD3DSurfaceImpl pointer in the swapchain. 2010-04-27 12:01:59 -05:00
Henri Verbeet
d1ea48b971 wined3d: Simply pass an IWineD3DSurfaceImpl pointer to surface_internal_preload(). 2010-04-26 09:04:35 -05:00
Henri Verbeet
61d8338815 wined3d: Kill the now unused MAX_MIP_LEVELS. 2010-04-26 09:04:19 -05:00
Henri Verbeet
339f7ef100 wined3d: Introduce basetexture_get_sub_resource() to simplify retrieving texture sub-resources. 2010-04-25 07:27:57 -05:00
Henri Verbeet
958b523707 wined3d: Store texture sub-resources in IWineD3DBaseTextureClass. 2010-04-25 07:26:51 -05:00
Henri Verbeet
6b34b8e6d1 wined3d: Simply pass an IWineD3DSurfaceImpl pointer to context_acquire(). 2010-04-22 11:28:17 +02:00
Henri Verbeet
1c403e44b5 wined3d: Store the current render target as an IWineD3DSurfaceImpl pointer in the context. 2010-04-22 11:28:12 +02:00
Henri Verbeet
660ad06692 wined3d: Simply pass implementation pointers to stretch_rect_fbo(). 2010-04-21 11:57:32 +02:00
Henri Verbeet
79a014a505 wined3d: Simply pass an IWineD3DSurfaceImpl pointer to surface_get_gl_buffer(). 2010-04-21 11:57:32 +02:00
Henri Verbeet
7b47dabd09 wined3d: Avoid some unnecessary invalidations of the the onscreen depth buffer.
This can happen for example when the application switches to a different
depth/stencil for offscreen rendering and back again.
2010-04-21 11:57:32 +02:00
Henri Verbeet
dc67164d0d wined3d: Fix some more misspellings of "device". 2010-04-21 11:57:32 +02:00
Henri Verbeet
c5de1e1045 wined3d: Store the depth/stencil surface as an IWineD3DSurfaceImpl pointer in the device. 2010-04-20 11:14:42 +02:00
Henri Verbeet
520f74de21 wined3d: Store the auto depth/stencil surface as an IWineD3DSurfaceImpl pointer in the device. 2010-04-20 11:14:35 +02:00
Henri Verbeet
c7a1848656 wined3d: Store render targets as IWineD3DSurfaceImpl pointers in the device. 2010-04-20 11:14:30 +02:00
Henri Verbeet
92a44884c7 wined3d: Simply pass an IWineD3DSurfaceImpl pointer to surface_set_compatible_renderbuffer(). 2010-04-19 14:55:35 +02:00
Henri Verbeet
03dc612c9c wined3d: Simply pass an IWineD3DSurfaceImpl pointer to surface_is_offscreen(). 2010-04-19 14:55:31 +02:00
Henri Verbeet
efb3993a3a wined3d: Simply pass an IWineD3DSurfaceImpl pointer to surface_modify_ds_location(). 2010-04-19 14:55:24 +02:00
Henri Verbeet
ae46589f53 wined3d: Simply pass an IWineD3DSurfaceImpl pointer to surface_load_ds_location(). 2010-04-19 14:55:19 +02:00
Roderick Colenbrander
057c64c5b0 wined3d: Separate AMD Radeon HD2300 from other HD2xxx/HD3xxx GPUs since it is D3D9 instead of D3D10. 2010-04-16 12:38:18 +02:00
Henri Verbeet
da1b459754 wined3d: Store the depth/stencil attachment as IWineD3DSurfaceImpl pointer in struct fbo_entry. 2010-04-16 12:09:45 +02:00
Henri Verbeet
be993fc49f wined3d: Store render target attachments as IWineD3DSurfaceImpl pointers in struct fbo_entry. 2010-04-16 12:09:42 +02:00
Henri Verbeet
24c93d48aa wined3d: Simply pass an IWineD3DSurfaceImpl pointer to context_attach_depth_stencil_fbo(). 2010-04-16 12:09:39 +02:00
Henri Verbeet
95130a7d5e wined3d: Simply pass an IWineD3DSurfaceImpl pointer to context_attach_surface_fbo(). 2010-04-16 12:09:36 +02:00
Henri Verbeet
65797d7f75 wined3d: Get rid of glRect from IWineD3DSurfaceImpl.
604caf0caa supposedly removed the "oversized
texture" code, but this was still left over.
2010-04-16 12:09:14 +02:00
Roderick Colenbrander
bccfd7cc06 wined3d: Add BLT_OP_COLOR_FILL to blit_supported and use it in BltOverride. 2010-04-15 14:20:48 +02:00
Roderick Colenbrander
bf73d23d95 wined3d: Separate detection of D3D10+ and D3D9 Nvidia GPUs. 2010-04-14 18:00:47 +02:00
Henri Verbeet
8eb2a2cf0c wined3d: Disable strict draw ordering by default.
While some performance hit from the extra flushes was expected and would be
acceptable, the performance hit can be over 50% on some configurations, which
clearly isn't acceptable. This patch introduces a "StrictDrawOrdering"
registry key for applications affected by this, until we have a more
structural solution.
2010-04-13 21:13:36 +02:00
Henri Verbeet
ab80e9739c wined3d: Add a separate function for palette initialization. 2010-04-13 21:13:26 +02:00
Henri Verbeet
d1d8c81439 wined3d: Add a separate function for rendertarget view initialization. 2010-04-13 21:13:21 +02:00
Roderick Colenbrander
76a9712779 wined3d: Add an initial implementation of arbfp_blit_surface. 2010-04-09 16:50:21 +02:00
Roderick Colenbrander
d7e1b973c7 wined3d: Start moving texture format fixups to the formats table. 2010-04-09 16:50:20 +02:00
Roderick Colenbrander
a4559e761b wined3d: Move srgb checks away from d3dfmt_get_conv. 2010-04-09 16:50:20 +02:00
Roderick Colenbrander
00598c3e36 wined3d: Let d3dfmt_get_conv return a wined3d_format_desc. 2010-04-09 16:50:20 +02:00
Alexandre Julliard
90f4ae6948 wined3d: Remove unused offset parameter in buffer_get_memory. 2010-04-09 15:47:23 +02:00
Roderick Colenbrander
e7a71e15b5 wined3d: Turn blit_shader color_fixup_supported into blit_supported. 2010-04-07 18:13:35 +02:00
Roderick Colenbrander
3b6aea5934 wined3d: Move palette uploading code over to arbfp blit_shader. 2010-04-06 13:53:15 +02:00
Henri Verbeet
2381c9529d wined3d: Don't use GLSL if the supported version isn't at least 1.20. 2010-04-06 11:48:47 +02:00
Henri Verbeet
ca1b35aaff wined3d: Rename some GL vendors.
GL_VENDOR_ATI -> GL_VENDOR_FGLRX because it's much more specific. Besides, AMD
also works on the Mesa drivers.
2010-04-05 11:37:45 +02:00
Henri Verbeet
b8211a67d4 wined3d: Rename HW_VENDOR_WINE to HW_VENDOR_SOFTWARE.
Software adapters like the refrast also return a 0 PCI ID on Windows.
2010-04-05 11:37:39 +02:00
Henri Verbeet
224c376528 wined3d: Make some functions static. 2010-04-05 11:37:34 +02:00
Henri Verbeet
fcee05586b wined3d: Simply inline dumpResources(). 2010-04-05 11:37:28 +02:00
Henri Verbeet
5ce986f1de wined3d: Add a separate function for wined3d object initialization. 2010-04-05 11:37:24 +02:00
Roderick Colenbrander
ff82e66a69 wined3d: Move upsideDown calculation to blit implementation. 2010-04-02 15:22:51 +02:00
Henri Verbeet
03c472bff0 wined3d: Don't call directly into the state table. 2010-04-01 18:12:42 +02:00
Stefan Dösinger
19b6f5ca75 wined3d: Control the onscreen depth stencil format in the swapchain.
This allows the swapchain to know what depth format its window contexts have to see if the
requested depth format is compatible or a FBO fallback is needed, and it will be needed to
set the onscreen format to the requested auto depth stencil format instead of the
let's-hope-it-fits D24_UNORM_S8_UINT format.
2010-03-31 16:12:31 +02:00
Roderick Colenbrander
ae26d9defd wined3d: Use RECT instead of WINED3DRECT in stretch_rect_fbo. 2010-03-31 16:12:27 +02:00
Henri Verbeet
2533860114 wined3d: Initialization functions don't allocate. 2010-03-30 14:49:31 +02:00
Roderick Colenbrander
a7d3b616c4 wined3d: Add color_fill to blit_shader. 2010-03-30 13:54:24 +02:00
Roderick Colenbrander
f724843f14 wined3d: Move argb_to_fmt to utils.c as a helper function to be used in more places. 2010-03-30 13:53:54 +02:00
Henri Verbeet
f69d0fa00d wined3d: GL errors aren't FIXMEs. 2010-03-29 15:51:21 +02:00
Stefan Dösinger
f74de3ab65 wined3d: Don't advertise float formats as supported by WGL. 2010-03-26 10:28:52 +01:00
Stefan Dösinger
1181762f99 wined3d: Implement manual buffer fencing. 2010-03-23 12:31:15 +01:00
Stefan Dösinger
fd13a6ae23 wined3d: Partially implement unserialized buffers with the apple extension. 2010-03-23 12:30:18 +01:00
Francois Gouget
3428b94a8d Assorted spelling and case fixes. 2010-03-22 10:49:13 +01:00
Henri Verbeet
122129f94a wined3d: Add COMPLEX_FIXUP_NONE as value 0 to the complex_fixup enum.
To prevent get_complex_fixup() from returning COMPLEX_FIXUP_YUY2 for simple
fixups.
2010-03-19 14:31:59 +01:00
Henri Verbeet
3aaa6ee6e7 wined3d: Rename GlPixelFormatDesc to wined3d_format_desc. 2010-03-19 14:31:47 +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
Henri Verbeet
135f364110 wined3d: Kill VTRACE. 2010-03-18 10:25:02 +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
Stefan Dösinger
d790530df3 wined3d: Make resources 16 byte aligned. 2010-03-17 13:36:39 +01:00
Stefan Dösinger
6c53871d30 wined3d: Implement unfenced updates of double buffered buffers. 2010-03-16 17:02:50 +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
18ec2525a4 wined3d: Store the swapchain instead of the surface in the context. 2010-03-16 11:44:44 +01:00
Henri Verbeet
4b671f4d54 wined3d: Move device context array functions to device.c. 2010-03-15 15:55:57 +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
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
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
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
eefb45f333 wined3d: Properly report shader comment sizes. 2010-02-23 12:06:54 +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
3df59ef0d5 wined3d: Get rid of the now redundant max_ffp_texture_stages device field. 2010-02-05 10:06:12 +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
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
9bbccb7f80 wined3d: Add a debug function for state names. 2010-01-29 13:30:05 +01:00
Henri Verbeet
96b150929b wined3d: Add an ARB_sync implementation of event queries. 2010-01-26 12:08:23 +01:00
Henri Verbeet
f71e84d89c wined3d: Store a pointer to the GL info in the shader context. 2010-01-25 12:58:52 +01:00
Henri Verbeet
516d54bf91 wined3d: Merge baseshader.c into shader.c. 2010-01-18 14:37:51 +01:00
Henri Verbeet
a2624ae82e wined3d: Add a separate function for query initialization. 2010-01-18 14:37:30 +01:00
Henri Verbeet
46cefd312c wined3d: Recognize the SM4 cut opcode. 2010-01-07 09:26:54 +01:00
Henri Verbeet
3687677427 wined3d: Recognize the SM4 lt opcode. 2010-01-07 09:26:30 +01:00
Henri Verbeet
6d5aca61f3 wined3d: Recognize the SM4 iadd opcode. 2010-01-07 09:26:25 +01:00
Henri Verbeet
22939f9d29 wined3d: Recognize the SM4 emit opcode. 2010-01-07 09:26:20 +01:00
Henri Verbeet
c57c76b78e wined3d: Recognize the SM4 ige opcode. 2010-01-07 09:26:08 +01:00
Stefan Dösinger
a756caac0c wined3d: Implement subrange flushing with GL_APPLE_flush_buffer_range. 2010-01-04 12:09:34 +01:00
Stefan Dösinger
716520b4b8 wined3d: Track separate dirty ranges in buffers. 2010-01-04 12:08:14 +01:00
Henri Verbeet
41401fb8cf wined3d: Add a geometry shader object.
This is just the object used to store the byte code, the shader compiler
doesn't know how to handle geometry shaders yet.
2010-01-04 11:41:28 +01:00
Henri Verbeet
f50b4c7d71 wined3d: Move "wrap_lookup" to struct wined3d_gl_info. 2010-01-04 11:41:28 +01:00
William Waghorn
0c582dca3a wined3d: Added NVidia GT240 detection. 2010-01-04 11:41:27 +01:00
Aaron Brazener
11754a645b wined3d: Added further Nvidia Geforce 8xxx detection. 2009-12-31 12:12:18 +01:00
Henri Verbeet
b548e387ae wined3d: Move shader input/output signatures to IWineD3DBaseShaderClass. 2009-12-31 12:12:16 +01:00
Henri Verbeet
736aaf7d09 wined3d: Always handle WINED3DSPR_INPUT registers as input registers in shader_get_registers_used().
The "attributes" vertexshader field is now derived from the input signature,
and only used to speed up matching D3D9 vertex declaration elements to shader
inputs. D3D8 and D3D10 both explicitly specify input registers.
2009-12-31 12:12:16 +01:00
Henri Verbeet
2650885cc8 wined3d: Use the element size to create "isStateDirty" bitmap indices. 2009-12-30 13:31:36 +01:00
Aaron Brazener
381fa8931f wined3d: Added ATI Radeon HD 5xxx detection. 2009-12-29 11:05:39 +01:00
Stefan Dösinger
4f594777a2 wined3d: Drop the VBO if too many full buffer conversions occur. 2009-12-29 11:04:03 +01:00
Stefan Dösinger
f90b8b6352 wined3d: Rename conversion_count to something more appropriate. 2009-12-29 11:03:44 +01:00
Henri Verbeet
3288911ae3 wined3d: Use proper enum elements for FOURCC formats. 2009-12-23 14:27:30 +01:00
Henri Verbeet
a0aa10eb5c wined3d: Filter messages for the device's focus window instead of the swapchain's device window.
Usually these will be the same window, but they don't have to be.
2009-12-23 14:27:29 +01:00
Henri Verbeet
a215d326a5 wined3d: Get rid of the "swapchain" parameter to surface_get_gl_buffer().
Casting the container to "IWineD3DSwapChainImpl *" is always safe when
SFLAG_SWAPCHAIN is set on the surface. Most callers don't have a real
need for the swapchain, and end up calling GetContainer() just to pass
it to surface_get_gl_buffer().
2009-12-16 12:22:18 +01:00
Henri Verbeet
c24e48d937 wined3d: Filter window messages generated by switching to fullscreen and back. 2009-12-15 11:43:56 +01:00
Henri Verbeet
0e270bbd22 wined3d: Send window messages through the swapchain before sending them to the application. 2009-12-15 11:43:41 +01:00
Henri Verbeet
cb076db8cc wined3d: Move IWineD3DDeviceImpl_RestoreWindow() to swapchain.c. 2009-12-11 12:16:25 +01:00
Henri Verbeet
542590cfc9 wined3d: Move IWineD3DDeviceImpl_SetupFullscreenWindow() to swapchain.c. 2009-12-11 12:16:25 +01:00
Henri Verbeet
a9f2613d13 wined3d: Add a separate function for swapchain initialization. 2009-12-11 12:16:25 +01:00
Henri Verbeet
840b5af77e wined3d: Properly invalidate the context's draw buffer in color_fill_fbo(). 2009-12-11 12:16:25 +01:00
Henri Verbeet
b85a070598 wined3d: Support more formats for display mode enumeration.
ddraw/d3d8/d3d9 only support a limited number of formats, but those already
limit the supported formats themselves.
2009-12-10 11:54:55 +01:00
Henri Verbeet
b3defd4c80 wined3d: Rename "wineD3DDevice" to "device". 2009-12-10 11:54:47 +01:00
Henri Verbeet
b6ef17f23d wined3d: Remove unused GetDevice() implementations. 2009-12-09 13:51:04 +01:00
Henri Verbeet
54f3dec8e6 wined3d: Rename the "wineD3D" device field to "wined3d". 2009-12-08 12:33:29 +01:00
Henri Verbeet
a02f93defb wined3d: Remove the redundant "adapterNo" field from the device. 2009-12-08 12:33:23 +01:00
Henri Verbeet
aed85222b5 wined3d: Rename the wined3d_adapter "num" field to "ordinal".
This makes it consistent with dxgi_adapter.
2009-12-08 12:33:17 +01:00
Stefan Dösinger
817714912b wined3d: Infrastructure to render swapchains to a FBO. 2009-12-07 14:33:24 +01:00
Stefan Dösinger
64291c60cb wined3d: A function for checking if a surface is offscreen. 2009-12-07 14:32:54 +01:00
Stefan Dösinger
54f0d3f785 wined3d: Add a function for initializing surface sysmem. 2009-12-07 14:32:29 +01:00
Henri Verbeet
dd5fc79f56 wined3d: The stateblock doesn't really need a parent. 2009-12-04 14:34:59 +01:00
Henri Verbeet
ed73f0a1b0 d3d9: Implement IDirect3D9Ex::GetAdapterLUID(). 2009-12-02 13:06:08 +01:00
Henri Verbeet
55f3c576d9 wined3d: Remove the effetively unused "state" field from the device. 2009-11-18 11:16:54 +01:00
Henri Verbeet
135e6cea7b wined3d: Add a separate function for device initialization. 2009-11-18 11:16:49 +01:00
Henri Verbeet
e4d8a3f309 wined3d: Move the various backend selection utility functions to utils.c. 2009-11-18 11:16:43 +01:00
Stefan Dösinger
0e77a381ea wined3d: Create clip coords only if they are used.
If GL vertex shader clipping is supported (GLSL or NVvp), we currently
always calculate clipping results in the shader. They're gracefully
discarded by opengl, but we need 6 constants / uniforms to calculate
unused values.
2009-11-12 15:18:00 +01:00
Henri Verbeet
be8026adf6 wined3d: directly pass gl_info to stream_info_element_from_strided(). 2009-10-29 13:09:37 +01:00
Henri Verbeet
111307dfba wined3d: Get rid of the GL_SUPPORT macro. 2009-10-29 13:09:33 +01:00
Henri Verbeet
e6ca176a48 wined3d: Rename DestroyContext() to context_destroy(). 2009-10-28 11:16:05 +01:00
Henri Verbeet
c0050b8ec9 wined3d: Restore the thread's GL context on context_release() if it wasn't created by wined3d.
The background on this is that some applications use OpenGL and DirectDraw/Direct3D on
the same thread, typically using OpenGL for rendering and DirectDraw to get
the amount of available video memory. This means that we might replace the
application's current GL context with one with a completely different state,
but also that our current GL context might not be what we think it is.
2009-10-28 11:15:59 +01:00
Henri Verbeet
98027cb535 wined3d: Call context_release() for wined3d contexts made current by context_create(). 2009-10-28 11:15:27 +01:00
Henri Verbeet
eeb54b9922 wined3d: Keep better track of where we're using wined3d contexts.
The idea here is that we can restore the thread's current GL context on
context_release() if it doesn't correspond to the current wined3d context on
context_acquire().
2009-10-28 11:15:19 +01:00
Henri Verbeet
2447c8bc3e wined3d: Store PCI IDs in wined3d_driver_info instead of wined3d_gl_info. 2009-10-27 10:54:50 +01:00
Henri Verbeet
5fbe5ee027 wined3d: Add a separate structure for driver info. 2009-10-26 11:20:33 +01:00
Henri Verbeet
342a71b281 wined3d: Replace the "stateLookup" tables with a single "wrap_lookup" table. 2009-10-23 12:03:15 +02:00
Henri Verbeet
6be41fd59a wined3d: Get rid of GL_LIMITS. 2009-10-22 10:46:05 +02:00
Henri Verbeet
f2aaca2f67 wined3d: Rename WineD3DAdapter to wined3d_adapter. 2009-10-21 16:05:57 +02:00
Henri Verbeet
94d33d3e86 wined3d: Destroy FBO entries from the context that created them.
EXT_framebuffer_object doesn't specify if FBOs are shareable between GL
contexts, but ARB_framebuffer_object explicitly prohibits it.
2009-10-20 14:00:37 +02:00
Henri Verbeet
43aaaa8a4b wined3d: Validate the D3D context in FindContext().
Apparently it's valid to use a D3D device after its window is destroyed.
OpenGL isn't always so forgiving, so this patch is a first step to avoid
making GL calls on a context without window.
2009-10-20 14:00:36 +02:00
Henri Verbeet
0cb6f28751 wined3d: Get rid of the useless "isPBuffer" bitfield in struct wined3d_context. 2009-10-20 14:00:36 +02:00
Henri Verbeet
bac6486520 wined3d: Merge some bitfields in struct SAVEDSTATES. 2009-10-14 11:26:44 +02:00
Henri Verbeet
a24d14796a wined3d: Remove the useless "changed" and "enabledChanged" fields from struct wined3d_light_info. 2009-10-14 11:26:26 +02:00
Henri Verbeet
3bc9d1894d wined3d: Rename PLIGHTINFOEL to something less awful. 2009-10-14 11:26:17 +02:00
Jeff Zaroyko
a1126242a7 wined3d: Fix prototype for set_texture_matrix. 2009-10-12 17:07:03 +02:00
Henri Verbeet
2be38232ea wined3d: Remove some unused code. 2009-10-06 12:02:59 +02:00
Henri Verbeet
92d22ce535 wined3d: Move the SM1 opcode enum to shader_sm1.c. 2009-10-06 12:02:52 +02:00
Henri Verbeet
8b3f868774 wined3d: Move the pixel/vertex states arrays to stateblock.c. 2009-10-02 11:53:03 +02:00
Henri Verbeet
a84974e2ea wined3d: Fix the values of NUM_SAVEDPIXELSTATES_T and NUM_SAVEDVERTEXSTATES_R. 2009-10-02 11:52:54 +02:00
Henri Verbeet
be0b7355fc wined3d: Add a separate function for initializing the "contained_*" fields from the "changed" field. 2009-09-30 14:31:59 +02:00
Henri Verbeet
664057ce6a wined3d: Add a separate function for state block initialization. 2009-09-29 14:22:34 +02:00
Henri Verbeet
6a7b97b617 wined3d: Fix a typo. 2009-09-29 14:22:34 +02:00
Stefan Dösinger
404aecb8da wined3d: Test if result.clip[] works correctly.
The Mac Nvidia driver doesn't implement the result.clip part of
GL_NV_vertex_program2_option correctly. It complains about a syntax
error if "result.clip[0]" is used. "result.clip" compiles correctly, but
supports only one clipplane, and running the shader results in severe
rendering bugs.
2009-09-28 17:33:07 +02:00
Henri Verbeet
f88c6e5ce5 wined3d: Move common shader fields to IWineD3DBaseShaderClass. 2009-09-25 15:14:35 +02:00
Henri Verbeet
789372afa8 wined3d: Don't free D3D pixel shaders until the wined3d pixel shader is destroyed. 2009-09-24 13:24:53 +02:00
Henri Verbeet
8aea1b1302 wined3d: Add a separate function for pixel shader initialization. 2009-09-24 13:24:27 +02:00
Henri Verbeet
ca05ef5dd0 wined3d: Don't free D3D vertex shaders until the wined3d vertex shader is destroyed. 2009-09-24 13:24:19 +02:00
Henri Verbeet
462decdfb9 wined3d: Add a separate function for vertex shader initialization. 2009-09-24 13:23:51 +02:00
Henri Verbeet
5ac3ed7f73 wined3d: Remove unused IWineD3DVertexShaderImpl fields. 2009-09-24 13:23:44 +02:00
Stefan Dösinger
5b5e3bd0d2 wined3d: Track GL texture states in a separate structure. 2009-09-23 13:24:16 +02:00
Henri Verbeet
66a7236590 wined3d: Don't free D3D vertex declarations until the wined3d vertex declaration is destroyed. 2009-09-23 12:36:28 +02:00
Henri Verbeet
5b8b97a737 wined3d: Cleanup vertex declaration initialization. 2009-09-22 16:17:20 +02:00
Henri Verbeet
dbc4dfc495 wined3d: Move "parent_ops" to IWineD3DResourceClass. 2009-09-18 08:55:33 -05:00
Henri Verbeet
93b0600829 wined3d: Don't free D3D buffers until the wined3d buffer is destroyed. 2009-09-18 08:55:25 -05:00
Henri Verbeet
22124bc5cb wined3d: Add a separate function for buffer initialization. 2009-09-18 08:54:44 -05:00
Henri Verbeet
a8e8f763bf wined3d: Don't free D3D textures until the wined3d texture is destroyed. 2009-09-18 08:54:34 -05:00
Henri Verbeet
de3bd86fb6 wined3d: Don't free D3D cube textures until the wined3d cube texture is destroyed. 2009-09-17 10:09:44 -05:00
Henri Verbeet
a286646f51 wined3d: Don't free D3D volume textures until the wined3d volume texture is destroyed. 2009-09-16 13:06:06 -05:00
Henri Verbeet
83b3d4f27a wined3d: Move vtable initialization to the texture init functions. 2009-09-16 13:05:45 -05:00
Henri Verbeet
e9000d2e6c wined3d: Don't free D3D volumes until the wined3d volume is destroyed. 2009-09-16 13:05:20 -05:00
Henri Verbeet
2b2d3de025 wined3d: Add a separate function for volume initialization. 2009-09-16 13:04:47 -05:00
Henri Verbeet
a5214c306f wined3d: Don't free D3D surfaces until the wined3d surface is destroyed.
This prevents for example a d3d9 depth stencil from being destroyed when it
has no external references but is still in use by the device/stateblock. A
nice side effect is that it simplifies handling of "implicit" surfaces like
the frontbuffer and backbuffers, as well as the forwarding of reference counts
for surfaces that are part of a texture.
2009-09-16 13:04:32 -05:00
Henri Verbeet
689984b425 wined3d: Mark internal symbols hidden. 2009-09-15 14:32:49 -05:00
Henri Verbeet
2b2fc827ce wined3d: Remove unused parameters to drawPrimitive(). 2009-09-11 12:09:14 +02:00
Stefan Dösinger
e1469961d4 wined3d: Test and fix ddraw and d3d9 GetDC differences.
The MSDN is not totally correct: A8R8G8B8 and A1R5G5B5 also allow GetDC. The
main differences that have to be filtered out in d3d9.dll are GetDC on
A8B8G8R8, X8B8G8R8 and P8.
2009-09-08 13:04:52 +02:00
Stefan Dösinger
531ec2267b wined3d: Allow filtering on RECT textures.
There is no reason to disable linear filtering, we just cannot use mipmapping.
2009-08-31 12:18:01 +02:00
Henri Verbeet
560d63548d wined3d: Remove trailing spaces. 2009-08-27 11:45:37 +02:00
Stefan Dösinger
21f4e42a98 wined3d: Don't use WINED3DADAPTER_DEFAULT as refresh rate. 2009-08-26 14:35:33 +02:00
Henri Verbeet
0c4201d5fd wined3d: Properly check if an attribute is used in TRACE_STRIDED. 2009-08-21 11:12:01 +02:00
Henri Verbeet
92b66ac82c wined3d: Make use_vs() safe to call from IWineD3DDeviceImpl_FindTexUnitMap(). 2009-08-19 14:45:02 +02:00
Henri Verbeet
d900491310 wined3d: Replace find_clip_texcoord() with a generic function for finding a free input register. 2009-08-17 13:57:50 +02:00
Henri Verbeet
ecd2dc7603 wined3d: Make RTL_READTEX the default rendertarget locking method.
For most cards this should make more sense than RTL_READDRAW, even if e.g.
surface_upload_data() has some room for improvement.
2009-08-14 13:59:09 +02:00
Henri Verbeet
f7918b978f wined3d: Make the "luminanceparams" shader_reg_maps member a bitmap. 2009-08-12 13:22:50 +02:00
Henri Verbeet
95bb4c0486 wined3d: Make the "bumpmat" shader_reg_maps member a bitmap. 2009-08-12 13:22:44 +02:00
Henri Verbeet
3d718d6414 wined3d: Make the "labels" shader_reg_maps member a bitmap. 2009-08-12 13:22:37 +02:00
Henri Verbeet
270f57e755 wined3d: Make the "address" shader_reg_maps member a bitmap. 2009-08-12 13:22:30 +02:00
Henri Verbeet
6fa9fa15da wined3d: Make the "temporary" shader_reg_maps member a bitmap. 2009-08-11 12:36:20 +02:00
Henri Verbeet
50853e295b wined3d: Make the "texcoord" shader_reg_maps member a bitmap. 2009-08-11 12:36:16 +02:00
Henri Verbeet
a282380f08 wined3d: Fix the type of the shader_reg_maps bitfields. 2009-08-11 12:36:12 +02:00
Henri Verbeet
cbd555bbc9 wined3d: Get rid of the unused vbo_mode setting. 2009-08-10 13:53:11 +02:00
Henri Verbeet
8d746c31ba wined3d: Properly handle negative loop step in shader_glsl_loop(). 2009-08-10 13:52:37 +02:00
Roderick Colenbrander
5a00c8053e wined3d: Get rid of two dead render target lock mode options. 2009-08-10 13:10:49 +02:00
Henri Verbeet
3bf0ad4528 wined3d: Explicitly pass the context to the shader_select() handler. 2009-08-07 12:11:06 +02:00
Henri Verbeet
03686cb6bd wined3d: Explicitly pass the context to the shader_load_constants() handlers. 2009-08-06 17:26:30 +02:00
Henri Verbeet
a7251f0f4e wined3d: Track render_offscreen in the context.
This makes sure the relevant states in FindContext() are actually marked dirty
when needed.
2009-08-06 17:26:30 +02:00
Henri Verbeet
9e8f7898c9 wined3d: Get rid of the ANISOTROPIC entry from the filter lookup tables.
Anisotropy and texture filters are orthogonal in GL. In D3D
D3DTEXF_ANISOTROPIC just selects the best (linear) filter type and enables
anisotropy.
2009-08-05 11:20:36 +02:00
Henri Verbeet
351d6de818 wined3d: Add functions to lookup texture filters. 2009-08-05 11:20:09 +02:00
Henri Verbeet
0f161dc10f wined3d: Remove some unused code. 2009-08-05 11:19:59 +02:00
Henri Verbeet
d4159adbc8 wined3d: Statically initialize the filter lookup tables.
Also add some comments.
2009-08-04 13:04:23 +02:00
Henri Verbeet
da1e5573da wined3d: Rename WineD3DContext to struct wined3d_context. 2009-08-03 15:01:48 +02:00
Henri Verbeet
be536ebe2f wined3d: Get rid of activeContext. 2009-07-24 13:10:57 +02:00
Henri Verbeet
c8fe24d29e wined3d: Explicitly pass the context to surface_load_ds_location(). 2009-07-24 13:10:47 +02:00
Henri Verbeet
2c71b85334 wined3d: Explicitly pass the context to get_drawable_size(). 2009-07-24 13:10:37 +02:00
Henri Verbeet
fb77678e9f wined3d: Manage event queries in the context. 2009-07-24 13:10:28 +02:00
Henri Verbeet
4ab7af6575 wined3d: Manage occlusion queries in the context. 2009-07-24 13:10:19 +02:00
Henri Verbeet
ea2caa9ba1 wined3d: Return the activated context from ActivateContext(). 2009-07-23 11:22:22 +02:00
Henri Verbeet
9253bbcb05 wined3d: Get rid of last_device. 2009-07-23 11:22:13 +02:00
Henri Verbeet
ce436a76e2 wined3d: Get rid of getActiveContext(). 2009-07-22 14:42:50 +02:00
Henri Verbeet
377cda97e7 wined3d: Avoid destroying contexts that are current in another thread. 2009-07-22 14:42:50 +02:00
Henri Verbeet
1a43030664 wined3d: Keep track of a thread's wined3d context. 2009-07-22 14:42:50 +02:00
Henri Verbeet
c114b04016 wined3d: Remove the useless lastThread field from IWineD3DDeviceImpl. 2009-07-21 14:23:06 +02:00
Henri Verbeet
2d7500600b wined3d: Get rid of lastActiveRenderTarget. 2009-07-21 14:23:02 +02:00
Henri Verbeet
6c0c1671b2 wined3d: Keep track of a context's current render target. 2009-07-21 14:22:49 +02:00
Henri Verbeet
e6f55c2650 wined3d: Remove an unused struct member. 2009-07-20 13:35:15 +02:00
Henri Verbeet
a80247f58b wined3d: Avoid redundant FBO binds.
Apparently this is an expensive operation for certain drivers, even if the
binding doesn't actually change.
2009-07-17 11:22:07 +02:00
Henri Verbeet
7485173849 wined3d: Pass the context instead of the device to the various context functions. 2009-07-17 11:22:07 +02:00
Henri Verbeet
a01616a6c3 wined3d: Store a pointer to wined3d_gl_info in struct WineD3DContext. 2009-07-17 11:22:07 +02:00
Henri Verbeet
43e6686a78 wined3d: Rename _WineD3D_GL_Info to struct wined3d_gl_info. 2009-07-17 11:22:07 +02:00
Henri Verbeet
d6ffe00cd2 wined3d: Recognize the SM4 constant buffer register type. 2009-07-16 16:03:28 +02:00
Henri Verbeet
c4f8845bc9 wined3d: Recognize SM4 arrays.
This is for SM4 constant buffers, which look like cb<x>[<y>]. At some later
point we should probably translate pre-SM4 constants to constant buffers.
2009-07-16 16:03:23 +02:00
Stefan Dösinger
6a04c2d5cc wined3d: Don't call glGetError if nobody is listening. 2009-07-16 11:15:40 +02:00
Stefan Dösinger
8a6553da14 wined3d: Only use 4 component specular colors if GL allows it. 2009-07-10 13:07:33 +02:00
Henri Verbeet
69b7612265 wined3d: Get rid of struct glDescriptor.
In general it might not be a bad idea to group GL specific data into a
separate struct, but IWineD3DSurfaceImpl is currently the only thing that
bothers. It doesn't get it quite right either, since e.g. the PBO isn't in
glDescriptor either.
2009-07-10 12:13:24 +02:00
Henri Verbeet
9cf7888002 wined3d: Fix some cast-qual warnings. 2009-07-09 11:38:07 +02:00
Henri Verbeet
483d552e21 wined3d: Allow shader_buffer_init() to fail. 2009-07-09 11:38:02 +02:00
Henri Verbeet
40b411958b wined3d: Rename "SHADER_BUFFER" to something sane. 2009-07-09 11:37:58 +02:00
Henri Verbeet
bddc4d3f0d wined3d: Reuse the shader buffer between shaders. 2009-07-09 11:37:53 +02:00
Henri Verbeet
e41831990d wined3d: Fix a sign compare warning in glsl_shader.c. 2009-07-08 20:14:35 +02:00
Henri Verbeet
2ac34bf231 wined3d: Add some missing float suffixes.
The compiler should be smart enough to fix most of these, but it looks sloppy.
2009-07-07 11:50:05 +02:00
Henri Verbeet
50e9ad66e2 wined3d: Clear the last device in WineD3D_CreateFakeGLContext(). 2009-07-02 12:00:44 +02:00
Henri Verbeet
40bc47901c wined3d: Use flags for driver quirks. 2009-07-01 11:41:44 +02:00
Stefan Dösinger
5859d87754 wined3d: Implement function calls with NV exts. 2009-06-29 12:28:21 +02:00
Stefan Dösinger
bd14b6e2b4 wined3d: IFC requires GL_NV_fragment_program2. 2009-06-26 12:01:44 +02:00
Tobias Jakobi
7906774339 wined3d: Add ps_np2fixup_info structure. 2009-06-25 14:34:13 +02:00
Stefan Dösinger
85af0b2943 wined3d: Don't emulate clipplanes with ffp vp and fix a wrong if condition.
b2f09fd204 accidentally got the
device->vs_clipping check wrong. The FFP replacement should emulate
clipping if GL can't do this natively with vertex shaders, not the
other way. Also don't emulate clipping if we're using fixed function
vertex processing because (a) clipping is always supported by GL in
this case, and (b), fragment.texcoord[7] is undefined. (Or in the
worst case set to something bad by the app).
2009-06-23 15:53:00 +02:00
Stefan Dösinger
26d17fe04c wined3d: Implement MRTs in ARB. 2009-06-22 11:26:43 +02:00
Stefan Doesinger
cd348ac897 wined3d: Use bitfields for reg_maps uses* members. 2009-06-17 12:19:45 +02:00
Stefan Doesinger
58c3a0c832 wined3d: Implement vpos and vface. 2009-06-17 12:19:31 +02:00
Stefan Doesinger
ae600fe0c8 wined3d: Implement texldl in ARB. 2009-06-17 12:19:15 +02:00
Stefan Doesinger
c220bafa2c wined3d: Unroll loops in ARB if needed.
This is needed to allow us to claim vs_2_0 support with plain
GL_ARB_vertex_program. vs_2_0 allows loops without breaks.
2009-06-16 13:57:04 +02:00
Henri Verbeet
23231d5a62 wined3d: Add format conversions for some depth stencil formats.
Although these formats aren't lockable, we still explicitly set the initial
surface data when creating the texture. Unfortunately that means we'll need
the conversion functions, even though all they'll ever convert will be zeroes.
2009-06-16 13:37:06 +02:00
Henri Verbeet
fede35d1c5 wined3d: Introduce surface_calculate_size(). 2009-06-15 13:42:28 +02:00
Henri Verbeet
5f581975dc wined3d: Introduce surface_init() to handle most of the surface initialization. 2009-06-15 13:42:28 +02:00
Stefan Dösinger
298bd3c50d wined3d: Store the bumpmap ARB constants in ARB structures. 2009-06-10 11:51:49 +02:00
Henri Verbeet
61fd875bb4 wined3d: Store compression information about compressed formats. 2009-06-10 11:51:04 +02:00
Henri Verbeet
fb7531599f wined3d: Only use stretch_rect_fbo() on surfaces that are FBO attachable. 2009-06-05 15:19:35 +02:00
Henri Verbeet
ad6279de9f wined3d: Replace the wined3d hash table with the generic red-black tree. 2009-06-03 11:40:14 +02:00
Henri Verbeet
97f320a77b wined3d: Introduce volumetexture_init() to handle most of the volume texture initialization. 2009-06-03 11:39:16 +02:00
Henri Verbeet
b0ba731bd5 wined3d: Introduce cubetexture_init() to handle most of the cube texture initialization. 2009-06-03 11:39:04 +02:00