Commit Graph

4300 Commits

Author SHA1 Message Date
Vitaly Budovski c8480e25e7 wined3d: Fixed some typos and prevented divide by 0. 2006-02-28 12:13:59 +01:00
H. Verbeet 7d97f29c24 wined3d: Don't use GetDevice in IWineD3DSurfaceImpl_GetContainer, as
it adds a reference to the device that shouldn't be there.
2006-02-27 12:20:09 +01:00
Roderick Colenbrander d13469c1d8 d3d8: Moved the remaining code over to WineD3D (based on patches by
Oliver Stieber).
2006-02-27 12:20:03 +01:00
Roderick Colenbrander b24e69dc38 d3d8: Move the capability detection code over to WineD3D.
Let the few existing parts which need the capabiliteis use the WineD3D
capability structure (gl_info). This info structure contains next to
'flags' inidicating certain features also all GL/GLX functions
pointers. Because D3D8 moves over to the wined3d gl_info structure all
the gl prototypes in d3dcore_gl.h were unneeded and removed.
2006-02-21 11:28:58 +01:00
Roderick Colenbrander e64a2fdf9e wined3d: Set the texture size for d3d8. 2006-02-16 12:10:21 +01:00
Stefan Dösinger 46e8d67787 wined3d: Update the glOrtho between 2 rhw draws if the viewport was changed. 2006-02-13 13:25:21 +01:00
H. Verbeet 7a4b59b0c2 wined3d: Don't keep a reference to the container, as it creates a
circular reference.
2006-02-13 13:23:58 +01:00
Francois Gouget 0ff18f58fa wined3d: Protect float.h inclusion. 2006-02-13 13:23:42 +01:00
Jan Zerebecki da2d1f883b wined3d: Make the returned driver version similar to windows. 2006-02-11 12:16:29 +01:00
Jan Zerebecki 41e5478cdd wined3d: Extend debug_d3drenderstate with missing states. 2006-02-11 12:15:31 +01:00
Louis Lenders 25c885e269 wined3d: Prevent crash in setup_light. 2006-02-11 12:14:19 +01:00
H. Verbeet c2fe85e658 wined3d: Release the vertex declaration during stateblock cleanup. 2006-02-10 14:52:27 +01:00
H. Verbeet bac34c35aa wined3d: Release the container during surface / volume cleanup. 2006-02-10 14:52:20 +01:00
Christoph Frick c99cab705e wined3d: Support for WINED3DFMT_A8B8G8R8. 2006-02-09 12:07:40 +01:00
Christoph Frick 61f8ef7936 wined3d: Better warn/fixme for query handling. 2006-02-09 12:07:30 +01:00
Roderick Colenbrander c7b58749a1 wined3d: Added CopyRects method (based on a patch by Oliver Stieber). 2006-02-07 16:51:39 +01:00
H. Verbeet ff08986d01 wined3d: Always return the number of elements in the vertex
declaration in IWineD3DVertexDeclarationImpl_GetDeclaration9.
2006-02-07 12:26:34 +01:00
H. Verbeet 1c4a94b0ba wined3d: Don't set the container to the device for standalone surfaces. 2006-02-07 12:26:26 +01:00
H. Verbeet b994d057ac wined3d/d3d9: Cleanup GetContainer for volumes. 2006-02-07 12:26:10 +01:00
H. Verbeet 2200f3e2ca wined3d/d3d9: Cleanup GetContainer for surfaces. 2006-02-07 12:25:59 +01:00
Roderick Colenbrander 694efd7c6f wined3d: Texture fixes.
Set video memory capabilities, add some checks to SetTexture and
update some comments.
2006-02-06 20:57:42 +01:00
H. Verbeet bd8db45e44 wined3d: Update the QueryInterface functions of IWineD3DBase subclasses. 2006-02-06 11:32:41 +01:00
H. Verbeet c6515ab307 wined3d: Update refcounts when storing references in IWineD3DStateBlockImpl_Capture.
Move TRACEs to the top of their code blocks.
2006-02-06 11:32:13 +01:00
H. Verbeet b9193cc93f wined3d: Release the correct vertexdeclaration in
IWineD3DDeviceImpl_SetVertexDeclaration.
2006-02-06 11:31:57 +01:00
H. Verbeet fe7f2bad15 wined3d: Also update reference counts when we're recording a stateblock. 2006-02-06 11:31:17 +01:00
H. Verbeet e43cfb1a68 wined3d: Fix SetContainer.
Add/Release references to the container.
Change the type of the container from IUnknown to IWineD3DBase.
2006-02-06 11:30:48 +01:00
H. Verbeet bcfa7dcf7d wined3d: Downgrade a FIXME to a TRACE. 2006-02-06 11:30:27 +01:00
H. Verbeet c72fce011d wined3d: Use GL_EXTCALL to call OpenGL extension glPointParameterfvARB. 2006-02-05 12:19:22 +01:00
Vitaly Budovski 3c17322e75 wined3d: Fixed point sprite scaling when size < 1.0f. 2006-02-04 17:07:36 +01:00
Roderick Colenbrander da512ca655 wined3d: Add a break which got lost in the POINTSCALEENABLE fix. 2006-02-03 18:51:30 +01:00
Vitaly Budovski 8f3c98fdfd wined3d: Fixed WINED3DRS_POINTSPRITEENABLE. 2006-02-03 12:37:46 +01:00
Vitaly Budovski dbff6d59e8 wined3d: Corrected implementation of WINED3DRS_POINTSCALEENABLE. 2006-02-03 12:34:44 +01:00
Vitaly Budovski 4279bcc5a8 wined3d: Implemented WINED3DRS_EDGEANTIALIAS. 2006-02-03 12:33:26 +01:00
Vitaly Budovski 6de3620a9c wined3d: Implemented WINED3DRS_MULTISAMPLEANTIALIAS. 2006-02-03 12:31:02 +01:00
Vitaly Budovski d599037c4e wined3d: Added support for ARB_POINT_PARAMETERS. 2006-02-02 13:50:31 +01:00
H. Verbeet 12805f08aa wined3d: Fix a few TRACEs in pixelshader.c. 2006-01-20 16:13:57 +01:00
H. Verbeet f5c2e85b46 wined3d: Return the correct pixelshader in
IWineD3DDeviceImpl_GetPixelShader.
2006-01-20 16:13:12 +01:00
H. Verbeet 4bd8b60bd3 wined3d: A shader isn't guaranteed to have a vertex declaration, so
add a NULL check for that.
2006-01-20 16:13:03 +01:00
H. Verbeet b884072687 wined3d: Better version string parsing for VENDOR_NVIDIA in
IWineD3DImpl_FillGLCaps.
2006-01-19 12:39:37 +01:00
H. Verbeet 093a034f7f wined3d: In IWineD3DImpl_FillGLCaps use glGetString instead of
glXGetClientString to retrieve the OpenGL vendor.
2006-01-19 11:55:34 +01:00
Francois Gouget 6526c3772d Add trailing '\n's to ok() calls.
Remove spaces before '\n' in traces.
2006-01-03 12:10:37 +01:00
Raphael Junqueira ee5d72b136 wined3d: Added support for WINED3DFMT_X4R4G4B4. 2005-12-31 13:13:34 +01:00
H. Verbeet 4e7b2557b5 wined3d: Cleanup shader constants code a little bit.
Improved bounds checking.
2005-12-20 11:46:52 +01:00
Oliver Stieber a57790f46a wined3d: Vertex declaration cleanup.
Clean up constants and the wine declaration when the vertex
declaration is destroyed.
2005-12-16 12:49:38 +01:00
Oliver Stieber 8ff9a7eb55 wined3d: Allow NULL multi sample quality.
Allow MultiSampleQuality to be passed as NULL, this is a
requirement for DirectX 8 and lower.
2005-12-16 12:49:22 +01:00
Ragnvald "Despair" Maartmann-Moe IV 3e495fe465 wined3d: Fix matrix copy/paste bug. 2005-12-16 12:39:07 +01:00
Oliver Stieber 74e28a354f wined3d: Vertex declaration recording state.
Stop SetVertexDeclaration from reference counting if a stateblock is
being recorded.
2005-12-16 12:38:24 +01:00
Oliver Stieber e76969b0d6 wined3d: Internal reference counting.
Change most references to resources parent into references to the
resource, so that external reference counts match DirectX but object
aren't released if they are still referenced by the stateblock.
2005-12-15 10:25:47 +01:00
H. Verbeet 0f43cb2f38 wined3d: Return the correct parent in IWineD3DVertexDeclarationImpl_GetParent. 2005-12-14 11:29:17 +01:00
H. Verbeet dabcbe83e7 wined3d: Return the correct vertex declaration.
In IWineD3DDeviceImpl_GetVertexDeclaration, return the vertex
declaration in This->stateblock instead of the one in
This->updateStateBlock.
2005-12-14 10:50:27 +01:00
H. Verbeet 6077c63feb wined3d: Don't change the shader's refcount in SetVertexShader and
SetPixelShader.
2005-12-13 11:11:01 +01:00
Oliver Stieber ea942e1e75 wined3d: Cube texture named constants.
Update cubetexture so that names constants instead of numeric
constants are used for the facetype and also add some additional
checks where facetype is passed as a parameter to the function.
2005-12-13 11:10:20 +01:00
Oliver Stieber 7c482cb9a1 wined3d: Vertex shader 8 support.
Start to add support for DirectX 8 vertex shaders, constants and
registers are now correctly assigned and loaded allowing support for
most basic d3d8 shaders.
2005-12-09 11:23:52 +01:00
H. Verbeet c73679e4eb wined3d: Set pixel shader version correctly in IWineD3DPixelShaderImpl_SetFunction. 2005-12-03 18:18:58 +01:00
H. Verbeet 246b07de7c wined3d: Return the correct parent in IWineD3DPixelShaderImpl_GetParent.
Remove an unnecessary cast.
2005-12-03 18:10:56 +01:00
H. Verbeet 4880c586d8 wined3d: return D3DERR_INVALIDCALL when calling BeginStateBlock and
already recording.
2005-12-03 18:04:26 +01:00
Francois Gouget 5127dc9f49 Assorted spelling fixes. 2005-12-02 16:15:09 +01:00
Willie Sippel fbfb971646 Added more Nvidia card IDs. 2005-11-30 19:45:45 +01:00
Raphael Junqueira 0e68b671f4 Add support for Intel drivers version string.
Update default driver version (nvidia).
2005-11-30 12:02:45 +01:00
Oliver Stieber aa9ce3577a Added support for vertex and pixel shader constants that have no type
i.e. they haven't been set yet or are clear.
2005-11-29 17:05:54 +01:00
Oliver Stieber 5903c5df1b Stop reporting not having swapchain 0 as an error and add an internal
variable instead of modifying a parameter.
2005-11-28 10:59:41 +01:00
Oliver Stieber c622cd7c24 Correct some errors in the way vertex declarations for directx 8 are
parsed and add offset support.
2005-11-28 10:59:22 +01:00
Oliver Stieber d3c33dc018 Correct the matrix sizes in software shaders and remove an erroneous
parameter from lrp.
2005-11-28 10:39:48 +01:00
Alexandre Julliard 0ec7e1a591 Renamed all .cvsignore files to .gitignore. 2005-11-26 13:10:33 +01:00
Francois Gouget 6d442aeb34 Assorted spelling fixes. 2005-11-23 20:14:43 +01:00
Oliver Stieber 30ad95b6cd Corrects an error in the _m3xm3 shader function in pixel and vertex
shaders.
2005-11-22 15:01:55 +00:00
Oliver Stieber 932815d6f0 Implement a pixel shader parser and cross compiler. All version of
shaders up to 3 should be parsed correctly, but only shaders 1-1.4
will be cross compiled.
2005-11-21 16:27:55 +00:00
Oliver Stieber bcb4201130 Disable support for creation FMT_Unknown textures. This gets most of
the d3d8 demos from www.codesampler.com working.
2005-11-17 11:40:43 +00:00
Oliver Stieber da29023d7a Clear the z and stencil buffers at the end of the scene, this fixes a
problem with the solid node bsp demo from www.codesampler.com as well
as a lot of blank screens in some other demos.
2005-11-17 11:05:12 +00:00
Raphael Junqueira 705aec5a6f - defined D3DCOLOR_B macros to access byte values of D3DCOLOR
- use D3DCOLOR macros instead of using shift + masks
- fix a bug where diffuse.lpData checked instead of specular.lpData
- implement color fixup on ARB VShader compilation code:
 -> on input parameters using swizzle
 -> add is_color parameter on vshader_program_add_param
2005-11-15 12:03:13 +00:00
Oliver Stieber a8d9a2a4ac Fix an intermittent lockup with ATI's driver, I expect the problem is
trying to clear the display before it's visible. Also correct the
clear alpha value.
2005-11-14 12:28:59 +00:00
Francois Gouget 0edbaf7e80 Remove spaces before '\n' in traces. 2005-11-10 12:14:56 +00:00
Francois Gouget f4c0524ec6 Assorted spelling and case fixes. 2005-11-10 11:39:07 +00:00
Raphael Junqueira c4569d9298 Define GL_EXT_framebuffer_object and GL_EXT_pixelbuffer_object openGL
specs.
Support Mesa GL_VERSION on parse.
2005-11-10 11:04:59 +00:00
Raphael Junqueira 2e9bff702c Fix parsing of version number. 2005-11-08 12:47:04 +00:00
Oliver Stieber f4e290ff46 Fixed an error in Swapchain_GetFrontBufferData. 2005-11-08 10:55:49 +00:00
Oliver Stieber c62e978d54 Verify that the texture coordinate used in DrawStridedSlow is in range
before trying to referencing the associated data.
2005-11-07 11:13:26 +00:00
Oliver Stieber 39d6e30db0 Prevent SetFVF from clearing down the vertex declaration of the FVF is
zero. This is required for Prince of Persia, The sands of time.
2005-11-07 11:12:38 +00:00
Oliver Stieber 0e3a3555e9 Tidy up UpdateTexture and add support for updating cube textures. 2005-11-04 12:39:17 +00:00
Oliver Stieber f52f6ce93d Add support for updating to D3DFMT_UNKNOWN surfaces and tidy up update
surface a little.
2005-11-04 11:13:45 +00:00
Oliver Stieber d6fcc69ddb Implement D3DFMT_UNKNOWN surfaces, this seems to be used a lot in d3d8
but I haven't found any d3d9 application that uses D3DFMT_UNKNOWN
surfaces yet.
2005-11-02 20:01:54 +00:00
Oliver Stieber 1f2a9e2c31 Move the softwareVertexProcessing flag from the stateblock to the
device because its state shouldn't be recorded in a stateblock.
2005-10-29 10:30:36 +00:00
Oliver Stieber 473cac840b Correct the number of parameters expected for the LRP function. 2005-10-27 10:23:53 +00:00
Oliver Stieber 483320c484 Changed the way that 24bit and 32bit Adapter and Buffer formats are
reported allowing EVE online to get past the startup screen and
allowing the Fur demo (amongst others) to run in a window, as under
windows, instead of in fullscreen mode.
2005-10-12 21:07:27 +00:00
Oliver Stieber 44b4777972 Add checks for ARB_vertex_program before allowing vertex shaders to
use ARB_vertex_program.
2005-10-11 20:27:54 +00:00
Oliver Stieber 0fbf69fcf8 Report unrecognized opcodes as FIXMEs instead of TRACEs so that they
are easier to spot and fix.
2005-10-10 19:52:49 +00:00
Oliver Stieber 80c60f5bad Provide looser device matching for backbuffer and depth buffer
formats. It should allow some games and applications to run without X
being in the correct backbuffer format (e.g. 16 bit games will run
with a 24bit X backbuffer).
2005-10-04 15:50:57 +00:00
Marcus Meissner 0a7de6a758 Use correct minLookup[] array entry. 2005-10-03 10:15:08 +00:00
Vincent Béron 5eae622f44 Don't define some functions/variables if they won't be used after in
wined3d.
2005-09-29 10:47:59 +00:00
Alexandre Julliard 7e22be4d84 We are no longer generating .dbg.c files. 2005-09-29 10:35:58 +00:00
Oliver Stieber effc262f9f Added support for backbuffer with the formats A1R5G5B5 and X1R5G5B5. 2005-09-29 10:31:43 +00:00
Oliver Stieber b3563daca2 Implement state tracking for pixel shader constants. 2005-09-28 10:13:00 +00:00
Oliver Stieber c99a3fafef Change the format of surface_SaveSnapshot to TGA from PPM and add
support for compressed textures and an alpha channel.
2005-09-27 10:49:59 +00:00
Oliver Stieber 2b8a7dca38 Correct a problem with locking nonpower 2 back and front buffers. 2005-09-27 09:32:29 +00:00
Francois Gouget a8c7284f92 Assorted spelling fixes. 2005-09-26 10:58:41 +00:00
Oliver Stieber 9e6957bbdc Optionally repack nonpower 2 textures to the expected span length when
a textures is locked. This is necessary for buggy games like Warhammer
40k that don't work with the odd span sizes produce by default
nonpower 2 support.
2005-09-23 11:08:03 +00:00
Oliver Stieber 357a484a7e Enable dxt2 and dxt4 compressed textures to be created via
Device_CreateSurface.
2005-09-23 10:48:01 +00:00
Oliver Stieber 0fac2d96fc Clean up all the objects bound to the device when the device is
destroyed as a result of its ref count reaching zero.
2005-09-23 10:07:46 +00:00
Alexandre Julliard 0ec0f048e6 Removed unused debug channels. 2005-09-22 10:44:40 +00:00
Oliver Stieber 329d017db3 Start to implement TestCooperativeLevel. 2005-09-21 10:55:03 +00:00
Oliver Stieber 0c2fcf2efe Added support for state management of vertex shader constants via
stateblocks.
2005-09-21 10:19:29 +00:00
Oliver Stieber 5ea96a851f Implemented occlusion queries using either GL_ARB_occlusion_query or
GL_NV_occlusion_query.
2005-09-21 09:43:13 +00:00
Oliver Stieber b7603859f3 Return the adaptor mode as X8R8G8B8 when BPP is 24 or 32 bits. 2005-09-19 15:25:07 +00:00
Oliver Stieber 4752553d57 Prevent CheckDepthStencilMatch from causing problems if there is a
current active OpenGL context.
2005-09-19 14:31:21 +00:00
Oliver Stieber 7df17cecce Stop vertex shader constants from being set at the same time as the
vertex shader when a stateblock is applied.
2005-09-19 14:30:34 +00:00
Alexandre Julliard c6b005ac69 Fixed some more traces to use the right printf format and avoid
typecasts.
2005-09-12 14:12:46 +00:00
Karsten Elfenbein 13fc2f88d6 Added A2R10G10B10 and D3DFMT_D24FS8 modes to all other functions. 2005-09-07 09:25:26 +00:00
Oliver Stieber f7413fd63f Implemented point sprites using ARB_POINT_SPRITE extension. 2005-09-03 09:36:48 +00:00
Oliver Stieber 55124ec05e Added the tracking of stream frequency and flags. Stream flags and
frequency aren't handled at the moment.
2005-09-02 11:17:17 +00:00
Oliver Stieber 33b2c1fd3c Added support for DXT2 and DXT4. 2005-08-29 12:20:02 +00:00
Oliver Stieber f1a2ee521d Implemented IWineD3DDevice_GetRenderTargetData. 2005-08-29 10:15:47 +00:00
Oliver Stieber 42eff0f92b Moved GetRasterStatus from device to swapchain. 2005-08-27 09:58:53 +00:00
Oliver Stieber 52a63149dc Change SetDirty in texture to pass the value of dirty instead of
always passing TRUE.
2005-08-27 09:23:06 +00:00
Mike McCormack 93ab695a5c Fix gcc 4.0 warnings. 2005-08-26 08:53:31 +00:00
Oliver Stieber 2af36c646e Implemented stubbed out pixel shaders and their states in wined3d. 2005-08-25 19:24:21 +00:00
Oliver Stieber 0e0ff51842 Update the implementation of GetFrontBufferData in stateblock. 2005-08-23 19:59:27 +00:00
Oliver Stieber 3f24b9164d Fix quite a few texturing problems and cases where text isn't being
correctly displated.
2005-08-22 10:07:10 +00:00
Oliver Stieber 45033446bb Tidy up some formatting, improve error handling and error logging and
fix a couple of spelling mistakes.
2005-08-22 09:13:49 +00:00
Oliver Stieber 1be54d8b79 Integrate hardware vertex shaders into the drawing pipeline. 2005-08-19 10:05:00 +00:00
Oliver Stieber 2c0e97e641 Copy the parser and cross compiler from d3d8 and update everything to
vertex shaders 3.0.
The Parser will now display the input shader in DirectX style, and the
cross compiler now generates valid ARB_VERTEX_PROGRAM programs and
outputs the result in ARB_VERTEX_PROGRAM style.
Support for a number of extended attributes has been added, but this
may not be complete, and dereferencing from loop counters isn't
properly parsed yet.
2005-08-17 11:34:03 +00:00
Oliver Stieber 9b0b803b47 Add support for vertex shader constants to the stateblock. 2005-08-17 10:27:01 +00:00
Francois Gouget fae73a1090 Assorted spelling fixes. 2005-08-17 09:56:24 +00:00
Oliver Stieber 80cbb93163 Tidy up vertex shaders and bring the current code inline with the rest
of wined3d.
2005-08-17 09:54:54 +00:00
Francois Gouget bcd56fe0e5 Assorted spelling fixes. 2005-08-12 18:22:06 +00:00
Mike McCormack b814be9814 Fix gcc 4.0 warnings. 2005-08-11 10:57:47 +00:00
Oliver Stieber 2e851544dd Allow the palette to be set and retrieved. 2005-08-11 10:57:20 +00:00
Oliver Stieber 313b01073c Track the state of softwareVertexProcessing. 2005-08-11 10:31:40 +00:00
Oliver Stieber 12a4bda618 Correct the starting values of MIN, MAX and MIP filter, they now match
the initial values in opengl.
2005-08-11 10:31:04 +00:00
Oliver Stieber bbc4f86aeb Fix stateblock loop errors. 2005-08-08 17:59:02 +00:00
Oliver Stieber 4e0f6a4501 Allow the WINED3DSBT_IMPL to be applied so that states can be synced
between render target contexts.
2005-08-08 11:01:17 +00:00
Oliver Stieber ec72ef14b5 Remove dxguid dependency. 2005-08-08 11:00:56 +00:00
Oliver Stieber 6b91f5b31c Set the apha channel to opaque when locking X8R8G8B8 backbuffers. 2005-08-03 21:17:08 +00:00
Oliver Stieber e31bc6cea4 Moved support for non power 2 texture to hardware.
Fix for the texture state separation patches, ApplyTextureStates is
now called instead of being commented out.
2005-08-03 19:49:05 +00:00
Oliver Stieber 1f05577395 Improve on a fixup for the difference between opengl and directx pixel
centering of vertexes.
2005-08-03 19:14:19 +00:00
Oliver Stieber bb6f9b022b Move the setting of states from device to basetexture, states that
relate to the opengl texture object will only be updated when they are
out of sync, this reduces the number of texture object state changes
during game play in Axis and allies from several hundreds to 0 or 1.
2005-08-03 11:00:28 +00:00
Oliver Stieber d344162f41 Separate the setting of the DirectX texture and sampler states from
the setting of OpenGL states (now in applyTextureStateState and
applySamplerState).
2005-08-01 10:58:31 +00:00
Oliver Stieber 5615513877 Separate the management of DirectX states and openGL states. 2005-08-01 09:20:55 +00:00
Oliver Stieber d15e2f1472 Fixed an off by one error in enumdisplaymodes, allowing sims 2 to
start up.
2005-07-30 19:11:38 +00:00
Oliver Stieber 386470bedc Tidy up some of the formatting in drawprim and add missing strided
data.
2005-07-30 19:06:14 +00:00
Oliver Stieber cc884e0ae6 Validate that the texture is no larger than the graphics cards largest
supported texture.
2005-07-30 19:05:58 +00:00
Mike McCormack c6602b406b Signed warning fixes. 2005-07-28 18:33:26 +00:00
Mike McCormack 8955ac43a3 gcc 4.0 -Wpointer-sign fixes. 2005-07-28 10:16:21 +00:00
Oliver Stieber 83f8704ba3 Return all elements when getDeclaration is called with pnumelements
set to 0.
2005-07-28 10:15:35 +00:00
Oliver Stieber c93da09265 Changed swapchains held by the device from an array to a linked
list. Also provide a notification function that that the swapchain can
be removed when it is released.
2005-07-27 15:33:17 +00:00
Oliver Stieber 052d108bf5 DirectX uses a R/Z transform to translate a texture but under OpenGL a
Q transform must be used instead.
2005-07-26 20:01:29 +00:00
Oliver Stieber 52b5842f70 Remove a load of IWineD3DSurface * casts that are no longer required. 2005-07-26 18:56:18 +00:00
Oliver Stieber 7cb748fed2 Makes sure any internal reference counting is passed onto the parent,
any objects referenced by the internal stateblock are released when
the stateblock is released (we don't reference count while a
stateblock is recording, so recorded stateblocks have no references to
clean up).
2005-07-26 18:49:30 +00:00
Oliver Stieber 5b9ddcce44 Correct a regression issue with per-app settings. 2005-07-26 11:14:38 +00:00
Oliver Stieber ea6189e04b Implement resource tracking, require for reset and evict managed
resources and provides extra sanity checks.
2005-07-26 10:34:15 +00:00
Raphael Junqueira cc8762a91e - add a new settings for vbo support
- use a struct to handle wined3d settings
- prepare VBO using some abstraction APIs
2005-07-24 17:11:33 +00:00
Gerald Pfeifer 8d43d251b7 Remove unused variable in primitiveConvertToStridedData(). 2005-07-22 18:27:04 +00:00
Raphael Junqueira e2a2b5f6d5 - cleanup wined3d settings init (now closing opened registry keys)
- support per application settings
2005-07-22 18:26:05 +00:00
Francois Gouget bd19d67ad1 Assorted spelling fixes. 2005-07-22 09:06:03 +00:00
Oliver Stieber f8079b6947 Correct a problem with the way that FVF vertex arrays containing
blends or orthographic is calculated.
2005-07-21 11:01:19 +00:00
Oliver Stieber 2125fa9d37 Fixed regression that occurred because changes to texture loading were
committed before changes to textures and states to support the change
were committed.
2005-07-21 10:32:48 +00:00
Oliver Stieber 948563267e Implement the use of PBuffers for offscreen textures. 2005-07-19 11:39:24 +00:00
Oliver Stieber 7d3ba6f562 Implemented a tidied up IWineD3Device_ColorFill. 2005-07-18 10:32:00 +00:00
Oliver Stieber 18f3fcb1c2 Set mipmap levels correctly (even with ATI's buggy drivers). 2005-07-18 09:07:17 +00:00
Oliver Stieber e0241349c5 Dirty the surface (instead of the texture) when a render targets is
send and endscene is called to make sure that the correct surface is
updated.
2005-07-18 09:07:03 +00:00
Oliver Stieber 41718267be Fixed a division by 0 in setup_light that occurs with range is zero. 2005-07-15 16:32:25 +00:00
Oliver Stieber 43466542a6 Correct a missplaced #if in IWineD3DDeviceImpl_CleanRender. 2005-07-15 09:57:52 +00:00
Oliver Stieber fe80b4ea48 Implemented Get/Set/Free private data in resource. 2005-07-15 09:54:57 +00:00
Oliver Stieber 3aefc4e4a4 Fixed a bug in Preload caused be a missing brace around a for loop,
slightly improved the way that errors are handled by passing back hr
from some function calls.
2005-07-14 12:31:05 +00:00
Stefan Huehner 190e1597ff Fix some missing-declarations warnings. 2005-07-14 12:19:53 +00:00
Oliver Stieber b220ce1343 Correct a few formats that were incorrect. 2005-07-13 19:38:39 +00:00
Oliver Stieber 9253e0e39c Tidy up some comments and formatting. 2005-07-13 14:15:54 +00:00
Oliver Stieber 6a032491d3 Added basic memory management and tracking to wined3d. 2005-07-13 11:34:55 +00:00
Oliver Stieber 9f7e794ca6 Implement UpdateTexture and UpdateSurface in wined3d.
Allow NULL members of WINED3DSURFACE_DESC to be set to Surface_GetDesc
so that the whole structure doesn't have to be filled just to get back
one value.
2005-07-12 17:02:47 +00:00
Oliver Stieber 13621056db Move parameters relating to opengl on the surface structure on to a
glDesciption member.
Removed Level and Target from LoadTexture, and reduced the dependency
on surface->device.
Fixed a couple of compiler warnings in d3d9.
2005-07-11 20:38:27 +00:00
Oliver Stieber 520c2f0870 Implemented basic non-power 2 texture in wined3d.
Also fixed a typo in drawprim that was causing vertex declarations to
crash.
2005-07-11 14:25:54 +00:00
Francois Gouget 28dc5a8afc Assorted spelling fixes. 2005-07-11 10:59:41 +00:00
Oliver Stieber 1b578af404 Check to see if the vertex declaration is null before trying to
reference it.
2005-07-10 18:16:13 +00:00
Oliver Stieber 9b75356fc4 Tidy up the way caps are managed in GetDeviceCaps and FillGlCaps. 2005-07-10 17:48:07 +00:00
Oliver Stieber 3b0b430824 Added support for vertex declarations to wined3d, it's the last patch
to give wined3d basic functionality.
2005-07-07 20:45:39 +00:00
Oliver Stieber 8a6799d47d Implement render targets using either textures, swapchains or
standalone surfaces.
2005-07-07 20:35:05 +00:00
Oliver Stieber 403d118555 Change all references to updateStateBlock to references to stateBlock
in drawprim.
2005-07-06 19:02:38 +00:00
Oliver Stieber abb11f30cd Implemented stateblocks in wined3d. 2005-07-05 14:05:18 +00:00
Francois Gouget 02c25a8981 Assorted spelling fixes. 2005-06-30 18:19:33 +00:00
Oliver Stieber 18857f1170 Add support for samplers.
Switch from using d3d9 constants to wined3d constants so that there's
no recursive dependencies.
2005-06-24 11:53:07 +00:00
Oliver Stieber e8855c48d8 Make all newly created surfces dirty, so that they are loaded properly
the first time around.
Replace some calls to cubetexture in basetexture to calls to
basetexture.
Check that the level isn't out of bounds in calls to texture.
2005-06-23 16:44:19 +00:00
Oliver Stieber 46e7c30a71 Implement swapchains. 2005-06-23 11:05:24 +00:00
Oliver Stieber 784518d772 Correct GetDeviceCaps so that it uses wined3dcaps as required by the
earlier device caps patch.
2005-06-22 18:30:29 +00:00
Alexandre Julliard ab88743c25 Moved a few registry keys from HKLM\Software\Wine to
HKCU\Software\Wine for consistency.
2005-06-20 16:04:32 +00:00
Oliver Stieber e70e3ba0ff Change the way caps are sent between d3d9/d3d8 and wined3d to make it
easier for wined3d to support additional versions of Direct3D.
2005-06-17 09:59:03 +00:00
Oliver Stieber 4dfabb0bd1 Rename _D3DCAPS9.MaxPixelShaderValue to the correct
_D3DCAPS9.PixelShader1xMaxValue.
2005-06-16 20:42:55 +00:00
Alexandre Julliard 2e4bca9db5 Added magic comments to all Wine-specific registry accesses to make
them easier to grep.
2005-06-13 18:56:00 +00:00
Marcus Meissner 9c01e4274f Fixed definition/declaration mismatches of newly static vtables. 2005-06-09 09:47:10 +00:00
Felix Nawothnig 2767543be9 - Output a FIXME when a surface with dimensions not being a power of
two is requested.
- Fail gracefully when IWineD3DImpl_CreateDevice fails to create the
  front- or backbuffer.
2005-06-08 18:34:52 +00:00
Dmitry Timoshkov eba47f1dfe Make remaining OLE interface vtables const. 2005-06-06 19:50:35 +00:00
Francois Gouget 62253b752f Assorted spelling fixes. 2005-05-30 09:56:56 +00:00
Daniel Lund a87d8a3db9 Added D3DDEVCAPS_HWRASTERIZATION to the DevCaps for scene
rasterization. Allows GuildWars to start.
2005-05-09 19:32:49 +00:00
Alexandre Julliard 34fa35dc99 Added rules for building import libraries in the individual dll
makefiles, and added support for building a .def.a static import
library too.
2005-05-09 14:42:30 +00:00
Alexandre Julliard d62356aa1e Added rules to build import libraries in the individual dll makefiles.
Generate import libraries with the right name right away instead of
using an intermediate .spec.def file.
2005-05-07 12:39:52 +00:00
Alexandre Julliard c3116c5e61 Renamed ttydrv and x11drv to winetty.drv and winex11.drv respectively
to follow the namespace conventions and make it clear that they are
drivers and not dlls.
Moved the graphics driver configuration to HKLM\Software\Wine\Drivers.
2005-05-06 19:38:50 +00:00
Raphael Junqueira 086f77a034 - implement memory access APIs to VertexBuffers
- more valid implementation for IWineD3DImpl_Check* APIs (not more
  S_OK for all cases)
2005-04-28 12:02:03 +00:00
Oliver Stieber 67f2ad4563 - Volume now inherits Resource. This isn't the way Microsoft implements
the interface but it is more correct way (Microsoft even have a
  resource type of volume).
- Moved usage, format, allocatedMemory and size onto the resource
  class structure.
- Refactored Preload for classes that inherit BaseTexture, preload now
  binds the texture instead of bind texture calling preload, bindTexture
  allocated a glTexture if there isn't one.
- Added two new class static members BaseTexture_CleanUp and
  Resource_CleanUp that should be called by classes that implement
  BaseTexture or Resource.
2005-03-29 19:01:00 +00:00
Jakob Eriksson 9ed61de9a2 Get rid of HeapAlloc casts. 2005-03-24 21:01:35 +00:00
Francois Gouget 93416cdaf7 Assorted spelling fixes. 2005-03-23 13:15:18 +00:00
Vincent Béron 1d5df043d4 WineDirect3DCreate has 3 args in the source. 2005-03-21 10:52:32 +00:00
Oliver Stieber ba5eb14768 Encapsulate texture, surface encapsulated.
Added BindTexture, GetTextureDimensions, UnBindTexture.
Proper GetContainer support for surface.
SetContainer added to surface and volume.
SetInPbufferState added to surface (until gl context management is
implemented).
Minor changes:
- BaseTexture no longer 'holds' a reference to IWineD3DDevice to
  prevent circular referencing.
- Better managment of referinging for texture.
- Some TODO's for implementing a context manager.
- Better preload implementation.
- Fix compile warning in device.c Set/GetSamplerState.
- Add QueryInterface support for surface.
- Format X8R8G8B8 added to locking.
2005-03-14 10:12:52 +00:00
Oliver Stieber 7b261656fd Added a stubbed out version of query to d3d9 and wined3d.
Update the d3d9 headers and creates wined3d types where d3d9 and d3d8
are incompatible.
2005-03-03 13:57:15 +00:00
Oliver Stieber 16e8689008 Implemented guids for wined3d. 2005-03-02 13:44:58 +00:00
Alexandre Julliard d0ee9f9309 Avoid spaces before preprocessor directives, that's not portable. 2005-03-02 12:23:20 +00:00
Oliver Stieber 2121f7831e Put all the stubs in wined3d in place, with some functionality copied
across from d3d9.
Make sure all d3d9 device function call their wined3d counterpart (or
perform a function).
2005-03-02 12:16:10 +00:00
Jason Edmeades 6bec623edb Correct handling of unusual vendor strings in d3d8, and check for a
stateblock before trying to release it in wined3d.
2005-02-24 10:05:06 +00:00
Jason Edmeades 1c8eea8b74 Enable parsing of vendor strings not matching the expected template. 2005-02-23 12:42:04 +00:00
Francois Gouget 4d801b66e6 Assorted spelling fixes. 2005-02-10 19:19:35 +00:00
Carlos Lozano b10ba61112 Check that pstream is not null. 2005-02-08 12:10:57 +00:00
Alexandre Julliard f777d70a63 Only create an X window for top-level windows, not for child windows.
Get rid of the X client window too, it's no longer needed.
2005-01-31 16:34:07 +00:00
Raphael Junqueira 27b8e5557e - convert D3D8 VertexDecl to D3D9 format (D3DVERTEXELEMENT9 vector)
while parsing
- display result on traces
2005-01-28 11:30:13 +00:00
Raphael Junqueira f12d5b243a - fix typo in wined3d_interface.h
- add needed defines in wined3d_interface.h
- add IWineD3DVertexDeclarationImpl_ParseToken9 for debug traces
- fix ParseDeclaration9
- limit flood of traces (single shot traces)
2005-01-27 10:40:57 +00:00
Raphael Junqueira b6317bd537 - a very basic blending support on fast drawing path (to have better
performances on last games)
- some defines for VBO support
2005-01-26 21:06:19 +00:00
Raphael Junqueira 4c385f981d - VertexDeclaration device APIs
- D3D9 declarations parsing
- a little better APIs (trying to avoid compile problems)
2005-01-26 20:54:00 +00:00
Raphael Junqueira 4f02b52c6b Begin support of VertexDeclaration on wined3d using d3d8 code base
(handling d3d8 and d3d9 specs).
2005-01-19 19:34:49 +00:00
Joris Huizer 8a6295a057 Get rid of some TRACE(..., This->resource.ref). 2005-01-19 16:59:01 +00:00
Jason Edmeades 33025b203c - Handle failures to allocate storage more gracefully.
- Only prototype the interfaces which are subclassed (I overdid it
  last time!).
- Implement Get/Set Texture and GetBackBuffer, plus device's
  GetDisplayMode / GetDeviceCaps.
- Make some of the d3d9 skeleton code issue fixme's to highlight code
  which hasn't been migrated yet.
- Correct the d3d9 headers for D3DSURFACE_DESC which caused stack
  corruption in demos.
2005-01-18 11:42:29 +00:00
Jason Edmeades bcecddc084 - Add texture support for all the texture types for d3d9->wined3d.
- Add prototypes for the COM interfaces.
- Fix some incorrect types from the last patch.
2005-01-17 13:44:57 +00:00
James Hawkins 11db0ea655 Use only stored result of Interlocked* in AddRef/Release. 2005-01-12 19:50:22 +00:00
Jason Edmeades 41427857b1 Add render target support, and ensure there is a front and back buffer
created during device creation.
2005-01-09 17:37:02 +00:00
Oliver Stieber 1b8629b3d7 Correct loop check for enum display and include 32bit modes in 24bit. 2005-01-09 16:33:01 +00:00
Michael Stefaniuc 5ad7d858e0 Do not check for non NULL pointer before HeapFree'ing it. It's
redundant.
2004-12-23 17:06:43 +00:00
Francois Gouget ae8682f277 Spelling fixes. 2004-12-22 15:02:14 +00:00
Francois Gouget 6fb1a20020 Assorted spelling fixes. 2004-12-20 19:27:06 +00:00
Raphael Junqueira 66cae0d2a8 Fixed build problem with GL_VERSION_1_2. 2004-12-17 19:07:44 +00:00
Jason Edmeades c4de952eb5 Add Clear, Present and EndScene support and fix a bug in the drawing
code.
2004-12-14 11:54:27 +00:00
Jason Edmeades 2003c7ab11 Add {G,S}etRenderState and {G,S}etTextureStageState support, and
ensure the stateblock is fully populated at device startup.
2004-12-13 13:35:38 +00:00
Alexandre Julliard ebe3c529b1 Janitorial: C booleans must not be compared against TRUE. 2004-12-09 14:07:59 +00:00
Jason Edmeades f738c146e2 Add {G,S}etIndices, {G,S}Viewport and enable the basic drawing
functionality into wined3d and call from d3d9.
2004-12-09 11:42:34 +00:00
Jason Edmeades 819b0e1190 Add BaseTexture class support, call from d3d9. 2004-12-07 14:29:12 +00:00
Adam D. Moss 880bc9ce9f Fix compilation. 2004-11-30 21:05:27 +00:00
Jason Edmeades 0a944ae319 Implement Material, Clip plane and Light support plus
MultiplyTransform.
2004-11-29 17:53:42 +00:00
Jason Edmeades eba27af4f1 Add Get/Set Transform support, plus BeginScene (does nothing). 2004-11-28 15:04:41 +00:00
Jason Edmeades 73e8baffd2 Add indexbuffer support into wined3d. 2004-11-24 18:13:41 +00:00
Jason Edmeades 289562eeb5 - Implement SetStreamSource
- Ensure wined3d objects maintain a reference count of at least that
  of the d3dx version.
2004-11-23 13:52:46 +00:00
Francois Gouget 3bb5b093e8 Assorted spelling fixes. 2004-10-22 22:27:51 +00:00
Jason Edmeades 447d5ed048 Implement the beginnings of the stateblock class, and a first method
to use it.
2004-10-21 20:59:12 +00:00
Jason Edmeades db7a50582c - Add support (as far as was previously) for the VertexBuffer and
Resource classes in wined3d and use when called from d3d9.
- Reduce the header includes in all the d3d9 interface to one common
  set in the private header.
2004-10-14 00:32:04 +00:00
Jason Edmeades b9e2bedac1 Copy and tidy up the code from dx8 create device into wined3d. Call
from wined3d and d3d8, but short term only use the code for real from
d3d9.
2004-10-08 20:52:33 +00:00
Jason Edmeades ac490fabac Add a IWineD3DDevice object type (empty for now), and create one when
an IDirect3DDevice object is created.
2004-10-07 04:22:21 +00:00
Jason Edmeades b519893e41 Move the GetDeviceCaps into the wined3d library and call from d3d9. 2004-10-06 00:05:29 +00:00
Francois Gouget 67aa858a31 Assorted spelling fixes. 2004-10-05 18:15:29 +00:00
Jason Edmeades c579fa6213 Move the Check* type functions into wined3d and copy from d3d9, and
flag that they are mostly stubs.
2004-10-05 02:14:06 +00:00
Jason Edmeades c3421ea434 Move into wined3d and call from d3d9 the GetAdapterId function and
copy all the gl declarations into the more global wined3d_gl header
file.
2004-09-29 21:26:47 +00:00
Jason Edmeades ae5a436873 - Make d3d8 know about the wined3d device and start using it.
- Move some of the screen mode related functions into wined3d and add
  untested support for the new d3d9 options of providing the format to
  some of the calls.
- Move other functions from the directx interface into the common
  library and implement the calls from d3d9 as well.
- Copy across the first of the functions used to make traces more readable,
  creating utils.c to store them in. Eventually the ones in d3d8 will be
  removed but for now just duplicate the code.
2004-09-28 02:12:12 +00:00
Jason Edmeades 24ab49e250 Create a wined3d interface, and generate a wined3d object in the d3d9
create method. Make the first (simple) call implementation into the
new wined3d interface.
2004-09-23 04:34:27 +00:00
Marcus Meissner 2b5b00b0ff Fixed position of tmp.f assigned like in dlls/d3d8/shader.c.
Fixed strict aliasing problem.
2004-04-26 20:05:52 +00:00
Alexandre Julliard 9e4ed6460c .spec.c files are no longer used for 32-bit dlls. 2004-03-24 03:36:44 +00:00
Alexandre Julliard e8a339c1d2 Portability fixes for LSB compatibility. 2004-03-01 21:32:02 +00:00
Alexandre Julliard 20b4585e3c Only link against libdxguid where necessary. 2004-01-27 00:11:16 +00:00
Raphael Junqueira 0196861349 Add the wined3d dll for beginning a cleaner d3d architecture that will
contain the shared openGL code needed for all wine direct3d
implementations.
2003-11-14 03:50:35 +00:00