Henri Verbeet
afed6a3f77
d3d8: Add a separate function for vertex shader initialization.
2009-09-24 13:24:11 +02:00
Henri Verbeet
b6d422446b
d3d8: Add a separate function for vertex declaration initialization from an FVF.
2009-09-23 12:35:42 +02:00
Henri Verbeet
f394dfc0f8
d3d8: Add a separate function for vertex declaration initialization.
2009-09-23 12:35:08 +02:00
Henri Verbeet
b1bf50d751
d3d8: Add a separate function for vertex buffer initialization.
2009-09-18 08:55:18 -05:00
Henri Verbeet
0201ddf264
d3d8: Add a separate function for index buffer initialization.
2009-09-18 08:55:11 -05:00
Henri Verbeet
76c61cf536
d3d8: Add a separate function for texture initialization.
2009-09-17 10:10:16 -05:00
Henri Verbeet
b5b58e423d
d3d8: Add a separate function for cube texture initialization.
2009-09-17 10:09:33 -05:00
Henri Verbeet
d84e2fa747
d3d8: Mark internal symbols hidden.
2009-09-17 10:09:21 -05:00
Henri Verbeet
eedfc95eef
d3d8: Add a separate function for volume texture initialization.
2009-09-16 13:05:58 -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
ff923245e1
d3d8: Add a separate function for volume initialization.
2009-09-16 13:05:06 -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
e02f7b2062
d3d8: Add a separate function for surface initialization.
2009-09-15 14:32:30 -05:00
Henri Verbeet
fecbf7b416
d3d8: Remove trailing spaces.
2009-08-31 12:41:21 +02: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
Stefan Dösinger
6f5a1d9a15
wined3d: Filter WINED3DSTENCILCAPS_TWOSIDED in d3d8.
2009-08-07 14:56:48 +02:00
Henri Verbeet
dc3958c079
d3d8: Do some more verification on handles.
2009-06-16 13:36:48 +02:00
Stefan Dösinger
9f1731edb6
d3d: Limit d3d8 and d3d9 vshader constants to 256.
...
DX10 cards support 512(ATI) or 1024(Nvidia) vertex shader constants in
GL. The dx9 DXCapsViewer shows that dx10 windows drivers only claim
256 constants on Windows, so we can and should do the same.
2009-04-27 13:23:36 +02:00
Stefan Dösinger
cb1c9dcda9
d3d: Remove the format from index buffers.
2009-04-09 16:28:25 +02:00
Stefan Dösinger
ff16f30677
d3d8: Store the fvf in the d3d8 vertex buffer.
2009-04-09 16:27:43 +02:00
Stefan Dösinger
513a493f00
wined3d: Merge IWineD3DIndexBuffer and IWineD3DBuffer.
2009-04-08 11:37:29 +02:00
Henri Verbeet
72b5378758
d3d8: Get rid of resource.c.
2009-03-23 14:08:03 +01:00
Henri Verbeet
cbc8630019
d3d8: Make the shader handle table a bit more generic.
2009-03-10 12:08:32 +01:00
Henri Verbeet
aa3027a604
wined3d: Merge IWineD3DVertexBuffer with IWineD3DBuffer.
...
That still leaves IWineD3DIndexBuffer, but that code is also mostly similar,
except for the conversion code (which will be unused there).
2009-03-06 15:35:58 +01:00
Henri Verbeet
d575b5fecb
d3d8: Explicitly convert between D3DFORMAT and WINED3DFORMAT values.
2009-02-20 11:09:54 +01:00
Henri Verbeet
a966293f59
wined3d: Add an IWineD3DDeviceParent interface.
...
Other than being a bit nicer than passing function pointers all over the
place, this helps dxgi/d3d10. While the swapchain itself is created in dxgi,
its surfaces are constructed in d3d10core, which makes it impractical for dxgi
to pass the appropriate function pointers.
2009-01-16 13:29:32 +01:00
Henri Verbeet
62497e8772
d3d8: Remove unused code.
...
Also corrects some related comments.
2008-12-16 12:51:40 +01:00
Henri Verbeet
0a47e1beb4
d3d8: Use the wined3d declaration to retrieve the d3d8 shader in IDirect3DDevice8Impl_GetVertexShader().
...
This makes it no longer necessary to create a wined3d vertex shader
when the d3d8 vertex shader has a NULL function.
2008-12-15 14:00:46 +01:00
Henri Verbeet
b9468a89fc
d3d8: Create a d3d8 declaration as parent for FVF based declarations.
2008-12-15 14:00:37 +01:00
Francois Gouget
ec7cbc26f5
d3d8: Make D3D8CB_CreateSurface() static.
2008-12-15 12:25:02 +01:00
Henri Verbeet
a6917b143d
wined3d: Use IDL to generate wined3d.h.
2008-11-25 13:37:22 +01:00
H. Verbeet
898c2c9778
d3d8: Don't store shader_handle's.
...
They're not stable across table resizes.
2008-08-20 10:26:51 +02:00
Stefan Dösinger
0fa0df7843
d3d8: Reject broken normal declaration types with fixed function.
2008-03-28 14:49:30 +01:00
Austin English
4777f26d61
Spelling fixes.
2008-03-27 11:10:07 +01:00
Stefan Dösinger
8869c0f147
d3d: De-pointerize the WINED3DCAPS structure.
2008-03-25 19:36:38 +01:00
Alexandre Julliard
980ee365a0
wined3d: Use unsigned int instead of size_t for element counts.
2008-01-07 17:17:04 +01:00
Stefan Dösinger
527295e57f
d3d8: Convert fvfs to vertex declarations.
2007-06-21 13:08:57 +02:00
Stefan Dösinger
193ccecaee
d3d8: Add a dll global critical section.
2007-06-06 13:39:36 +02:00
Stefan Dösinger
94b3fddec8
d3d: Pass the cube face to Create*Texture's surface creation callback.
2007-05-01 11:42:25 +02:00
Stefan Dösinger
725057da47
d3d: Remove dependency on ddraw.h header.
2007-04-16 13:20:15 +02:00
H. Verbeet
138826b8cc
d3d8: Save the d3d8 vertex declaration.
2007-03-08 11:58:23 +01:00
H. Verbeet
157205c085
d3d8: Don't store the d3d8 declaration in the wined3d object.
2007-02-14 13:56:50 +01:00
H. Verbeet
efed9aea1f
d3d8: Move loading local d3d8 vertex shader constants from wined3d to d3d8.
2007-02-14 13:54:55 +01:00
H. Verbeet
5ad6766c85
d3d8: Store the d3d8 vertex declaration in the d3d8 vertex shader.
2007-02-14 13:54:17 +01:00
H. Verbeet
a0b417725a
d3d8: Add an IDirect3DVertexDeclaration8 class to hold the wined3d vertex declaration.
2007-02-14 13:50:57 +01:00
Stefan Dösinger
71631f7638
wined3d: Use the baseVertexIndex in the stateblock.
2007-01-03 11:02:51 +01:00
Markus Amsler
87083c9d71
d3d8: Handle volume container in d3d8.
2006-12-18 12:07:54 +01:00
Markus Amsler
0531858146
d3d8: Handle surface container in d3d8.
2006-12-18 12:07:46 +01:00
Markus Amsler
5e0fc62135
d3d: Callback infrastructure for implicit swap chain destruction in IWineD3DDevice.
2006-12-18 12:07:26 +01:00
Markus Amsler
4745618487
d3d8: Fix implicit surface refcounting.
2006-12-06 12:41:27 +01:00
Markus Amsler
0a3f417359
d3d8: Handle volume refcount forwarding in d3d8.
2006-12-06 12:40:24 +01:00
Markus Amsler
0d725490d6
d3d8: Handle surface refcount forwarding in d3d8.
2006-12-06 12:40:12 +01:00
Markus Amsler
3fd04308ab
d3d: Callback infrastructure for implicit depth stencil surface destruction in IWineD3DDevice.
2006-12-06 12:39:30 +01:00
Markus Amsler
a60d4b2d2f
d3d: Pass the superior creating object down to the callback functions.
2006-12-04 12:40:38 +01:00
H. Verbeet
9a4ce31737
d3d8: Use proper handles for pixel shaders.
2006-08-28 11:49:06 +02:00
H. Verbeet
4a48e38e7d
d3d8: Improve shader handle management.
2006-08-28 11:47:02 +02:00
Vitaliy Margolen
145442a79d
d3d8: Fix remaining refcount tests and tighten all tests.
2006-07-07 16:57:41 +02:00
Alexandre Julliard
558fbb8af8
d3d8: Remove dependencies on OpenGL headers and libraries.
2006-06-15 16:51:57 +02:00
Alexandre Julliard
c3bd09e563
d3d8: Make the virtual table functions static where possible.
2006-06-10 11:48:24 +02:00
Jonathan Ernst
360a3f9142
Update the address of the Free Software Foundation.
2006-05-23 14:11:13 +02:00
Vitaliy Margolen
1cc318c5a6
d3d8: All objects created by device should keep reference to it.
2006-05-22 11:29:27 +02:00
Stefan Dösinger
ffc8e46e76
wined3d: Add IWineD3DSurface::Blt.
2006-04-17 11:19:30 +02:00
Vitaliy Margolen
99136998e2
d3d8: VertexShader should keep reference to the parent device object.
2006-04-12 11:20:07 +02:00
Vitaliy Margolen
fc13420770
d3dx: VertexBuffer should keep reference to the parent device object.
2006-04-03 14:14:24 +02:00
Stefan Dösinger
6a8578f847
wined3d: Add WINED3DDEVTYPE to wined3d_types.h.
2006-03-30 12:45:57 +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
Roderick Colenbrander
a9665eda79
d3d8: Header cleanup.
...
Remove unneeded structures and functions from d3d8_private.h, clean
some datatypes up and remove d3dcore_gl.h.
2006-02-28 12:01:30 +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
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
Raphael Junqueira
74c6321a15
- 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-03 09:54:31 +00:00
Oliver Stieber
9c676e6c19
Changed index and vertex buffer so that internal references are
...
counted separately to external ones.
2005-10-27 10:23:41 +00:00
H. Verbeet
f469b6f8de
Fix missing prototypes when using nVidia OpenGL headers.
2005-09-28 18:12:00 +00:00
Mike McCormack
2d7ea23868
Interlocked LONG* gcc warning fixes.
2005-07-11 13:21:17 +00:00
Oliver Stieber
46e7c30a71
Implement swapchains.
2005-06-23 11:05:24 +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
Kristiaan Lenaerts
605249eb61
gcc 4.0 compile fix.
2005-05-29 20:01:48 +00:00
Dmitry Timoshkov
4625628e67
Make some of the OLE interface vtables const.
2005-05-27 20:17:35 +00:00
Francois Gouget
93416cdaf7
Assorted spelling fixes.
2005-03-23 13:15:18 +00:00
Alexandre Julliard
d0ee9f9309
Avoid spaces before preprocessor directives, that's not portable.
2005-03-02 12:23:20 +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
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
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
Alexandre Julliard
48c4bb3c31
Get rid of the non-standard ICOM_VTABLE macro.
2004-08-12 23:00:51 +00:00
Alexandre Julliard
0467ce9fd7
Get rid of the non-standard ICOM_VFIELD macro.
2004-08-12 19:52:49 +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
Christian Costa
0f7b0a089b
Implemented pixel shaders using ARB_fragment_program extension.
2004-05-10 19:57:51 +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
Raphael Junqueira
c87fd95f1f
- fix the SetTextureStageState for D3DTADDRESS_MIRROR using dynamic GL
...
detection (and not build time GL headers)
- add a new debug channel for hardware vertex shaders
- hardware VS "compiler" fixes:
-> special case for address registers (MOV must be replaced by ARL)
-> add line numbers to trace (better to find why NVidia drivers complains)
-> one parse to determine temporary and address registers needs
(@todo: check GL limits)
-> remove duplicate traces from Generic ParseProgram
2004-04-19 23:04:58 +00:00
Alexandre Julliard
4f56863300
Authors: Jason Edmeades <us@the-edmeades.demon.co.uk>, Christian Costa <titan.costa@wanadoo.fr>
...
Added support for vertex shader (using ARB_vertex_program extension).
2004-04-15 23:58:15 +00:00
Francois Gouget
640cc3f3e1
Assorted spelling fixes.
2004-01-06 22:08:33 +00:00
Jason Edmeades
78a7c5f28e
Check for advertized vertex blend support before querying device
...
capabilities, which silences issues about vertex blending.
2003-10-03 04:35:07 +00:00
Jason Edmeades
8b2c10bcd4
MaxActiveLights means number of concurrent lights, but any number can
...
be set up. Change support for lights into a linked list and only set
up an equivalent gl light when the light is enabled.
2003-09-30 00:21:07 +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
Jason Edmeades
beb4ac8fe1
DXT1/3/5 support was broken, but unnoticeable since we also indicated
...
it wasn't supported.
2003-08-15 03:50:08 +00:00
Jason Edmeades
d8b2109e61
Only reapply the texture states necessary when a different texture
...
gets bound to the same texture unit.
2003-08-05 19:18:58 +00:00
Jason Edmeades
2ec3bbccc1
glColorMaterial enable/disable setup is only done when really necessary.
...
If glColorMaterial is set to track current color and none is supplied,
it gets disabled.
glMaterial is reset when I think it is necessary.
Slow mode now has defaults for when fvf parms are not supplied (as per
fast mode).
Slow mode now sets up the specular color (forgot that bit previously,
I think!).
Trace now lists the front, back and stencil buffers for ease of
debugging.
2003-08-05 18:29:20 +00:00