Commit Graph

123 Commits

Author SHA1 Message Date
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 e02f7b2062 d3d8: Add a separate function for surface initialization. 2009-09-15 14:32:30 -05:00
Henri Verbeet f9c791f9ca d3d8: Use a wined3d cs for wined3d locking.
We will need this for d3d10, where both dxgi and d3d10core are making wined3d
calls. Right now d3d8/d3d9 also use this to protect their own data, but
eventually we should push this down into wined3d itself and use something a
bit more fine-grained. There's no good reason that doing e.g. a vertex buffer
upload in some thread should block all of wined3d.
2009-08-25 11:12:17 +02:00
Henri Verbeet 88162fabb8 wined3d: Get rid of the pointers in WINED3DSURFACE_DESC. 2009-06-15 13:42:29 +02:00
Henri Verbeet 72b5378758 d3d8: Get rid of resource.c. 2009-03-23 14:08:03 +01:00
Henri Verbeet d575b5fecb d3d8: Explicitly convert between D3DFORMAT and WINED3DFORMAT values. 2009-02-20 11:09:54 +01:00
Stefan Dösinger a69c86d3f5 ddrawex: Add a test for the permanent DC function. 2009-01-09 16:26:06 +01:00
Stefan Dösinger 34d1beed74 d3d8: Hold the lock in IDirect3DSurface8 methods. 2007-06-12 11:14:16 +02:00
H. Verbeet 7b48db196f d3d: Fix the surface locking rectangle validation. 2007-05-04 13:41:13 +02:00
Markus Amsler 0531858146 d3d8: Handle surface container in d3d8. 2006-12-18 12:07:46 +01:00
Markus Amsler 5dbd834ca0 d3d8: Release non implicit surfaces only if refcount is 0, with test. 2006-12-14 12:57:27 +01:00
Markus Amsler 4745618487 d3d8: Fix implicit surface refcounting. 2006-12-06 12:41:27 +01:00
Markus Amsler 0d725490d6 d3d8: Handle surface refcount forwarding in d3d8. 2006-12-06 12:40:12 +01:00
H. Verbeet c6e0ca28d5 d3d8: Win64 printf format warning fixes. 2006-10-10 19:58:56 +02:00
Vitaliy Margolen 145442a79d d3d8: Fix remaining refcount tests and tighten all tests. 2006-07-07 16:57:41 +02:00
Alexandre Julliard c3bd09e563 d3d8: Make the virtual table functions static where possible. 2006-06-10 11:48:24 +02:00
H. Verbeet d06aa8d857 d3d8: Fix QueryInterface.
QueryInterface should return S_OK on success and set the object
pointer to NULL on failure. This is similar to the patch Ivan
submitted a while ago for wined3d.
2006-06-07 15:28:06 +02:00
Jonathan Ernst 360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Peter Beutner 5c4a1fc8de d3d8: Fix GetDesc and GetLevelDesc for surfaces and textures.
In DX8 the D3DSURFACE_DESC structure has a size field which needs to be set.
2006-05-20 17:47:45 +02:00
Stefan Dösinger bbe490abcc wined3d: Add WINED3DLOCKED_RECT to wined3d_types.h. 2006-04-06 22:23:31 +02:00
Stefan Dösinger d75fd75d48 wined3d: Add WINED3DPOOL to wined3d_types.h. 2006-03-28 17:34:42 +02:00
Stefan Dösinger b4b295c2a5 wined3d: Add WINED3DMULTISAMPLE_TYPE to wined3d_types.h. 2006-03-27 11:30:49 +02:00
Stefan Dösinger 913df5b143 wined3d: Consistently use WINED3DRESOURCETYPE. 2006-03-10 21:43:00 +01:00
H. Verbeet f7356a34c3 wined3d: Fix the relation between surfaces and their container. 2006-03-06 20:08:22 +01:00
Roderick Colenbrander 3da999a1f7 d3d8: Move texturing code over to wined3d (based on Oliver Stieber's work). 2006-02-20 11:11:35 +01:00
Roderick Colenbrander 4e4fc93645 d3d8: Move d3d8 surface over to wined3d (based on the work of Oliver Stieber). 2006-02-14 17:13:19 +01:00
H. Verbeet 9a86a0b046 Fix DXT2 & DXT4 support for d3d8. 2005-09-29 10:31:22 +00:00
Alexandre Julliard 49b7fdcfc0 Removed the broken mmap64 configure check, and moved the
_FILE_OFFSET_BITS define to wine/port.h. Made sure that all files that
need the define include it.
2005-08-03 21:25:10 +00:00
Mike McCormack ebf4e53030 Fix sign warnings. 2005-07-28 10:16:54 +00:00
Dmitry Timoshkov 4625628e67 Make some of the OLE interface vtables const. 2005-05-27 20:17:35 +00:00
Jakob Eriksson 9ed61de9a2 Get rid of HeapAlloc casts. 2005-03-24 21:01:35 +00:00
Paul Vriens 7a49e82dac - use Interlocked* functions in AddRef and Release.
- store the result of the Interlocked functions and use only this.
2005-01-24 11:31:45 +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
Francois Gouget 486d020c1b Don't define COBJMACROS in objbase.h.
Update the Wine sources accordingly.
2004-10-07 03:06:48 +00:00
Alexandre Julliard f5f7a1822c Removed some more uses of the non-standard ICOM_THIS macro. 2004-09-08 01:50:37 +00:00
Alexandre Julliard f714b39762 Get rid of the no longer used ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
macro.
2004-08-23 19:39:48 +00:00
Alexandre Julliard 48c4bb3c31 Get rid of the non-standard ICOM_VTABLE macro. 2004-08-12 23:00:51 +00:00
Marcus Meissner e3a37c8a26 Revert broken strict aliasing fix. 2004-05-21 20:52:57 +00:00
Raphael Junqueira 40dd9692d9 - first draft of D3DCLIPSTATUS8 handling (not really used for now)
- add a new DEBUG_SINGLE_MODE #define (for debug caps needs)
- better traces for surface dumping
- much better Texture support on Utilities functions and on
  CheckDeviceType
- D3DRS_ZVISIBLE as unsupported (as seen in msdn)
2004-05-19 04:33:42 +00:00
Alexandre Julliard ac7b9451f7 Authors: Christian Costa <titan.costa@wanadoo.fr>, Jason Edmeades <us@the-edmeades.demon.co.uk>
Fixes for rendering targets.
2004-05-02 04:22:31 +00:00
Raphael Junqueira d52c5080cf - Fix compilation again using olders GL headers
(glCompressedTexImage2DARB problem).
- Fix typo on constant.
- Detection of NVidia texture_shader and register_combiners
  extensions.
- Begin to implement BUMPMAPPING using NVidia Texture shader extension
  (not really working for now).
2004-04-29 00:20:18 +00:00
Christian Costa 15ccb11ea5 Implemented fast rendering to a texture using glCopyTexImage2D
Fixed SetViewport.
Fixed SetRenderTarget (based on Jason Edmeades' work).
Improved trace.
2004-04-26 23:34:17 +00:00
Marcus Meissner 3795a08149 Fixed some strict aliasing issues in dlls/d3d8.
Incorporated bugfix from Christian Costa in vshader_expp.
2004-04-26 20:15:02 +00:00
Raphael Junqueira b4a37991ef - implement SetRenderState D3DRS_FOGENABLE/D3DRS_RANGEFOGENABLE
- implement SetRenderState D3DRS_RANGEFOGENABLE
- fix SetRenderState D3DRS_FOGVERTEXMODE Caps/Detection traces
- fix IDirect3D8::GetAdapterIdentifier to use FillGLCaps and provide
  more exact infos (driver versions, vendor, ...)
- split Fake GL Context creation from GetDeviceCaps for external use
- add a new channel (d3d_caps) for all IDirect3D8 Caps/detection traces
- rename fps channel to d3d_fps
- high use of runtime detected OpenGL Caps instead of defines
- update supported Caps using runtime detection
2004-04-26 20:12:28 +00:00
Francois Gouget 640cc3f3e1 Assorted spelling fixes. 2004-01-06 22:08:33 +00:00
Jason Edmeades dfccba7153 Pass through floats correctly to the render states at
initialization. Fixes point problems.
2003-11-04 04:17:52 +00:00
Jason Edmeades 2b832f11a5 Make support for CopyRects to a small area of the back buffer, and
correct the general method of updating the back buffer.
2003-10-31 04:15:07 +00:00
Jason Edmeades 14231aa83b Correct writing to back buffer in non-ortho mode, and ensure the line
stipple is passed correctly to enable proper wireframe support.
2003-10-30 22:46:29 +00:00
Jason Edmeades e0faa866e0 DXTn stride is to the next block, which is the equivalent to 4 rows
worth of bytes.
2003-10-07 03:31:46 +00:00
Jason Edmeades ba69d05022 Make unlock of the backbuffer correctly restore the contents. 2003-09-30 00:20:08 +00:00
Jason Edmeades 7ac9d258c3 GL doesn't like incorrect lengths passed into DXTN processing. 2003-09-19 00:20:19 +00:00
Alexandre Julliard e37c6e18d0 Fixed header dependencies to be fully compatible with the Windows
headers (with help from Dimitrie O. Paun).
2003-09-05 23:08:26 +00:00
Raphael Junqueira d5ca917a36 - some cosmetic fixes
- fix a bug on IDirect3DVolume8Impl_AddDirtyBox
2003-07-08 21:01:48 +00:00
Jason Edmeades 021604c600 Implement UpdateTexture for 2D textures only.
Handle alphaop disabled but color op not-disable in a more appropriate
way (Docs say this is an illegal state and then proceed to use it).
Trace out textures as they are created.
Update the comments around the debug code and complete the debugging
set so textures which are used in the game can also be viewed.
2003-07-03 18:10:22 +00:00
Raphael Junqueira 44edc0c0ec - dsound and d3d works better when x11drv locks/unlocks are correct
- more traces
2003-06-18 03:17:42 +00:00
Raphael Junqueira bf2121a312 Fix AddDirtyRect uncorrect behavior (crash in some cases). Based on a
patch from Roderick Colenbrander.
2003-06-16 20:20:25 +00:00
Jason Edmeades 21a092816a Fix the texture operations to resolve glitches shown in UT2003 when
get quad damage.
checkGLcall must not supply a \n as that is supplied by its
expansion.
Performance fixes to save applying the same states 6 times and to
reduce function calls when accessing front/back buffers.
Make traces more readable by more constants -> english descriptions.
2003-06-13 19:14:34 +00:00
Jason Edmeades 3cf874bb04 Make the fixed function pipeline support multiple streams for created
vertex shaders with no function supplied. Also split down draw
primitive along the lines of the d3dcore requirements and put in some
diagnostic aids.
2003-06-13 18:09:05 +00:00
Raphael Junqueira e4882b1548 - cleaning of volume.c/volumetexture.c as done previously for
surface.c/*texture.c (with add of lockable, locked and Dirty flags)
- add of dirtyRect/dirtyBox for better dirtification management (not
  used yet, but huge optimisation can be possible now)
- fix some debug traces (well it's better to use debug_d3dpool)
- fix some stupid regression on point parameters (forgot to check
  extension on fillcaps)
2003-06-04 23:05:46 +00:00
Raphael Junqueira 24be30657d - some cleanup and warning fixes
- split of CreateDevice gl/gxl detection code into FillGLCaps
- implementation of resolution change (using ChangeDisplaySettings)
  but desactived as ChangeDisplaySettings don't seem to work well
- begin of swap chain support (now need to split/clean
  gxlpbuffer/glxpixmap code for swap chain use)
2003-06-04 22:55:19 +00:00
Jason Edmeades bca452eea6 Fix the glRead call when pRect != NULL, resolve the file format of the
saved snapshot correctly.
2003-06-04 22:51:14 +00:00
Raphael Junqueira 8bde56dad0 - fix another time the stupid locking bug (i had already fixed it in
ActiveRender)
- fix stupid rescaling of colors values on SaveSnapshot
2003-06-04 22:47:53 +00:00
Raphael Junqueira 0b5e9d9feb - some cleanups
- more cubetextures fixes (now d3d8 sdk cubemap sample work almost
  perfectly)
- add a new debug function "debug_d3dpool" and use it
- add a new param (the device) for the conversions functions (because
  we need to check caps to see how to convert)
- some crashes fixed in render to surface code with no stencil-depth
  surface
- a very simple cliplane fix
- a stupid palettes fix (stupid language)
- begin of anisotropic filter support
- begin of compressed textures support
- a very useful debug functions: IDirect3DSurface8Impl_SaveSnapshot to
  dump surfaces as png ;)
- many useful surfaces debug code (using SaveSnapshot)
2003-06-04 22:12:34 +00:00
Raphael Junqueira 3cae8cfa69 - implemented render to surfaces (and render to new rendertargets)
using glx pbuffers (with a useful debug code to display rendered
  surface into window drawable)
- better cubetextures
- split utilities functions into utils.c and added more
- more readable debug again
- a better caps code (not perfect but i'll use glx code later)
- use of the new caps code
- begin of UpdateTexture
- begin of Cursor support
- cleaning most of deprecated #if 0/#endif
- correct some lockable/unlockable behavior
- correct some returns code
2003-06-04 21:55:29 +00:00
Raphael Junqueira 9489f8bdc0 - mor usefull debug functions debug_d3dusage and debug_d3ddevicetype
- fix a crash in pixel shader parser (happened with unreal2)
- currently desactive pixel shaders caps (with #define) while hw
  shaders code isn't merged
- when we have a special debug channel for shader, use it ;)
- fix again some stubs return value
- more more readable traces now (principaly IDirect3D8 capacities
  check and surface locking code) using new debug functions
- fix/cleaning the surface locking code
- now we support D3DTOP_SUBSTRACT so declare it in caps
- now support true 32bit (well X 24 bit can be used as 32 bit in caps
  code)
- first try to get D3DTSS_TCI_CAMERASPACENORMAL and
  D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR look good
- native support 32 bit support (now application can choose 16 or 32
  bit support) if current resolution is 24 bit (as we can only launch
  games in windowed mode)
- textures palettes support
- fix reflexion placement code (the sdk sample begin to work)
- fix a stupid crash when using traces in vshaderdeclaration
- more more readable traces (init/caps)
- more cubetextures fixes
2003-05-17 18:33:02 +00:00
Raphael Junqueira eb36d31d6f - surface pool init fixes
- minor indentation and traces fixes
- fix locking/unlocking/dirty behavior (dirtify on lock) +
  optimisations (only copy when dirty)
- fix IDirect3DDevice8::Clear behavior (problem seen after a
  locking/unlocking code error)
- begin to fix volume and cube textures management
2003-05-12 03:10:27 +00:00
Raphael Junqueira 89ec35fe43 - minor COM fixes (fixes some crashes on stupid games)
- minor indentation changes
- fix SELECTARG2 behavior (with help from Lionel Ulmer)
- surface locking/unlocking (only rendering and textures surfaces
  supported now)
- beginning of Target/Front surface support
- try to get D3DTOP_SELECTARG_* working
- implemented D3DTOP_SUBTRACT: currently only if OpenGL1.3 is used, we
  have to use GL_SUBTRACT_ARB for other versions
2003-05-11 03:35:27 +00:00
Alexandre Julliard 31e78f479e Header files must not include config.h. 2003-04-12 00:06:42 +00:00
Raphael Junqueira 72fb7acf8d Beginning of more COM compliant behavior:
- AddRef/Release where needed
- use IUnknown* instead void*
- fix many GetDevice using AddRef
- fix IDirect3DSurface8Impl_GetContainer using QueryInterface
2003-01-14 23:05:39 +00:00
Dan Kegel 0fd521fee3 Change RECT to use LONG to match win32 standard headers and fix format
strings to use %ld for RECT elements.
2003-01-08 21:09:25 +00:00
Raphael Junqueira e31ae92630 - some D3D8 fixes
- beginning of shaders support (Vertex and Pixel Shaders 1.1 on
  DirectX8)
- beginning of D3DX8 support the D3D8 utility API (very basic, only
  the core header)
2002-12-17 01:15:15 +00:00
Jason Edmeades 9240bc3fbe Various fixes, typos corrected and clarifying trace points. 2002-10-07 18:24:28 +00:00
Jason Edmeades 26258ce06a Initial D3D8 implementation. 2002-09-27 22:46:16 +00:00