Commit Graph

197 Commits

Author SHA1 Message Date
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