Commit Graph

1504 Commits

Author SHA1 Message Date
Fabian Bieler
89843f2c27 wined3d: Set wrapmode for cubemags to clamp regardless of the sampler state. 2007-03-13 11:51:35 +01:00
Fabian Bieler
a2808903b1 wined3d: Height of rectangle is bottom - top, not vice versa. 2007-03-12 13:49:58 +01:00
Stefan Dösinger
eba060463d wined3d: Account for offscreen rendering when setting up the clearing scissor rectangle. 2007-03-12 12:02:20 +01:00
Stefan Dösinger
603e7933ea wined3d: Blit the offscreen texture into the drawable if needed.
When using pbuffer or back buffer offscreen rendering the content of
the drawable will have been overwritten. Thus the texture has to be
written into the drawable. An exception is the (pretty common) case
that the whole render target is cleared before rendering to it.
2007-03-12 12:02:05 +01:00
Stefan Dösinger
850bd7b414 wined3d: Restore the index buffer when switching from UP to buffer drawing.
The state handler binds index buffer 0 when a user pointer is used. Likewise the real index
buffer has to be restored when switching back to drawing from index buffers.
2007-03-12 12:01:45 +01:00
H. Verbeet
fc5f36f037 wined3d: Fix IWineD3DPixelShader_GetFunction / IWineD3DVertexShader_GetFunction. 2007-03-08 11:58:50 +01:00
Michael Stefaniuc
719a02856d janitorial: Remove two redundant checks for NULL. 2007-03-08 11:58:09 +01:00
Stefan Dösinger
c54a0fc2cf wined3d: Rework surface dirtification.
Previously the surfaces stored a flag if the system memory copy was
ahead of the gl copy(SFLAG_DIRTY) or the gl copy is
ahead(SFLAG_GLDIRTY). The pbuffer copy was 'managed' differently using
SFLAG_INPBUFFER and SFLAG_INTEXTURE.

This patch replaces them with 3 flags, INSYSMEM, INPBUFFER and
INTEXTURE which specify which copy contains the most up to date
copy. It is perfectly valid to have more than one of those flags
set. One must be set at least (except at init, when no content is in
the surface yet). When one copy is modified, the flags for the others
are removed.
2007-03-07 12:18:14 +01:00
Stefan Dösinger
ebe274feed wined3d: Remove IWineD3DSurface::SetPBufferState.
The method is removed because it does not really help with
anything. It should not be exported from wined3d, there is no need for
the other libs to call it. It does not help abstraction and code
simplification in any way because it is very specific and the code
calling it has to know what is happening in the surface to use this
method.
2007-03-07 12:17:33 +01:00
H. Verbeet
2384bdde9d wined3d: Remove broken software shaders. 2007-03-07 11:52:17 +01:00
H. Verbeet
318fb2987c wined3d: Fix a typo. 2007-03-07 11:47:54 +01:00
Stefan Dösinger
81aeae3249 wined3d: Do not specify the viewport origin upside down when doing offscreen rendering.
The gl viewport origin is the lower left corner of the window, in d3d
it is the upper right corner. This is corrected when setting the
viewport. However, when we are doing offscreen rendering, this is
reversed. So do not flip the viewport origin when rendering offscreen.
2007-03-06 22:17:28 +01:00
Stefan Dösinger
6886b237ad wined3d: Disable depth stencil related states without a depth stencil buffer.
Except with fbos, it is not possible to remove the depth stencil
buffer from the opengl frame buffer, so when the d3d app sets a NULL
depth stencil disable all states that work with the depth stencil
buffer.
2007-03-06 22:17:15 +01:00
Stefan Dösinger
5f159452ef wined3d: Clearing the depth stencil buffer fails without a depth stencil buffer. 2007-03-06 22:17:03 +01:00
Stefan Dösinger
daeffc897b wined3d: Use an aux buffer as blitting helper if available.
This helps performance a bit because the function does not have to
wait for the 2nd read to finish before returning. Only do that if we
have an aux buffer to mess with for free though.
2007-03-06 22:16:44 +01:00
Stefan Dösinger
5f05906f3b wined3d: Store the number of aux buffers in the gl limits structure. 2007-03-06 22:16:25 +01:00
Stefan Dösinger
ae57138eae wined3d: WINED3DFMT_U8V8 is signed.
Plain OpenGL does not provide any signed pixel formats, so the
unsigned GL_RGB is used for loading perturbation data into pixel
shaders that use texbem. For correct loading, the signedness has to be
considered.
2007-03-06 22:16:12 +01:00
Stefan Dösinger
e0a271ee0c wined3d: Adjust the rhw transformation for offscreen rendering. 2007-03-06 22:15:57 +01:00
Stefan Dösinger
2cdced8193 wined3d: Adjust the rhw transformation for offscreen rendering.
When drawing processed vertices with the fixed function pipeline the
projection matrix is set up to map y values from 0 to height to 1.0;
-1.0(gl and d3d coord systems are flipped). This moves the y axis to
the bottom of the drawing area. When later on the y inversion matrix
is applied for offscreen rendering, the coordinate system will get
flipped out of the viewport.

This patch sets the Y range up upside down when using offscreen
rendering, so the invymat will flip it to the correct position. This
has to happen before the 0.375 pixel correction.
2007-03-05 15:31:36 +01:00
Stefan Dösinger
7126b63645 wined3d: Use the scissor test when clearing the full surface too.
It was incorrect to disable the scissor test for full surfaces in my
clear patch. With back buffer offscreen rendering the viewport does
not seem to restrict clearing, and with different sizes of depth
stencil and color buffer the final fantasy XI demo seems to expect the
clear to be restricted.
2007-03-05 15:31:21 +01:00
H. Verbeet
25cd1c4d28 wined3d: gl_FogFragCoord is a scalar. 2007-03-05 12:06:45 +01:00
H. Verbeet
71a0c6e482 wined3d: The texldl instruction takes 3 arguments. 2007-03-05 12:06:40 +01:00
H. Verbeet
3aaabf4e27 wined3d: Properly check the clipplane index against the limit. 2007-03-05 12:06:33 +01:00
Stefan Dösinger
95efeb7e4b wined3d: Support GL_APPLE_fence for event queries. 2007-03-01 11:40:24 +01:00
Stefan Dösinger
76b60b0516 wined3d: Support event queries using GL_NV_fence. 2007-03-01 11:40:14 +01:00
Stefan Dösinger
be8e9e17bc wined3d: Add GL_NV_fence defines and functions. 2007-03-01 11:40:02 +01:00
Stefan Dösinger
424d34f84f wined3d: Use the source surface's texture for writing the backup.
The hwstretch blit code creates a new texture each time it is called
to back up the back buffer and releases it afterwards. It is more
efficient to keep the texture and release it with the surface.
2007-03-01 11:39:52 +01:00
Stefan Dösinger
6ac8d88d5c wined3d: Prepare only fixed function samplers for blit. 2007-03-01 11:39:17 +01:00
Stefan Dösinger
5afbfd0359 wined3d: Clip planes with vertex shaders. 2007-02-28 21:09:58 +01:00
Stefan Dösinger
409aa73132 wined3d: Move clip planes to the state table. 2007-02-28 21:09:37 +01:00
Stefan Dösinger
38d961a749 wined3d: Leave the fog state handler after disabling fog. 2007-02-28 21:05:14 +01:00
Stefan Dösinger
7560c8e1d2 wined3d: Use GL_STATIC_DRAW_ARB instead of GL_STATIC_DRAW. 2007-02-28 21:05:00 +01:00
Stefan Dösinger
8d9a553d89 wined3d: Support for using auxilliary buffers for offscreen rendering.
OpenGL AUX buffers provide a way for offscreen rendering which is very
similar to our back buffer "offscreen" rendering emulation. Not all
card support aux buffers, but if they are available they are a nice
present which is easy to use.
2007-02-28 21:04:47 +01:00
H. Verbeet
19d223cade wined3d: Store multiple constant indices per list entry. 2007-02-28 13:35:34 +01:00
H. Verbeet
2c85e5e8a3 wined3d: Store GLSL programs in a hash table rather than a linked list. 2007-02-28 13:35:23 +01:00
H. Verbeet
2a82ed89b1 wined3d: Add some hash table code. 2007-02-28 13:35:16 +01:00
H. Verbeet
0170cc429c wined3d: Boolean constants use up only a single uniform each. 2007-02-28 13:33:03 +01:00
H. Verbeet
b299395f30 wined3d: Fix matching WINED3DDECLUSAGE_POSITION against WINED3DDECLUSAGE_POSITIONT. 2007-02-28 13:32:53 +01:00
Stefan Dösinger
4a16dbbbec wined3d: More Clear fixes.
Test for rectangles with x1 > x2 and y1 > y2. Empire earth passes such rects.
2007-02-27 12:20:10 +01:00
Stefan Dösinger
74d2632756 wined3d: Index buffer creation adjustments.
Index buffer creation changes the bound gl buffer, thus the state has to
be dirtified, similar to locking.
In an error case the function returned without calling LEAVE_GL().
2007-02-27 12:19:18 +01:00
Vitaliy Margolen
51ee7f4978 wined3d: Use application provided fog range when fog is enabled. 2007-02-26 13:58:09 +01:00
Jan Zerebecki
870310b461 wined3d: replace #ifdef with if() for DEBUG_SINGLE_MODE. 2007-02-23 11:57:46 +01:00
Jan Zerebecki
706bc26a69 wined3d: Make CreateFakeGLContext thread safe. 2007-02-23 11:57:12 +01:00
Francois Gouget
396bad1f6e Use the SW_XXX constants when calling ShowWindow(). 2007-02-23 11:17:54 +01:00
Stefan Dösinger
953940aada wined3d: Make sure volumes have memory allocated. 2007-02-21 11:00:08 +01:00
Stefan Dösinger
a72b561947 wined3d: Do not use glMapBuffer in ProcessVertices. 2007-02-21 10:59:55 +01:00
Stefan Dösinger
2a90bc2c7a wined3d: Remove dead code from drawprim.c. 2007-02-21 10:57:50 +01:00
Stefan Dösinger
ca04a9de34 wined3d: Use CopyRect / EqualRect. 2007-02-21 10:57:28 +01:00
Stefan Dösinger
efc03f0a34 wined3d: Index buffer fixes. 2007-02-21 10:57:08 +01:00
Stefan Dösinger
6d66347cf9 wined3d: Clean up sampler usage in UpdateSurface.
UpdateSurface has to modify one gl texture unit to bind the texture to
load.  To restore the correct properties for drawing gl texture unit 0
is activated and dirtified.
2007-02-21 10:56:47 +01:00
Stefan Dösinger
e935600ebc wined3d: IWineD3DDevice::Clear fixes.
Fix the use of the scissor test in Clear. The rectangle is only set if
a clearing rectangle is used, otherwise the scissor test is disabled
(the pixel ownsership test should take care of the window
boarders). To get the scissor test back to the value the app set up
Clear dirtifies the state(s).
2007-02-21 10:56:36 +01:00
Stefan Dösinger
dd93e1fb7f wined3d: Floating point shader constant setting.
Test how shader constant limits are checked in Set*ShaderConstantF.
The vertex shader tests it based on the limits reported in the caps,
the pixel shader tests tries to find the limit manually because I
could not find a cap structure member specifying the pixel shader
constant limit.

Set*ShaderConstantF returns an error as soon as start or start + count
are bigger than the constant limit.
2007-02-21 10:56:01 +01:00
Stefan Dösinger
76b7cac7af wined3d: Light parameter fixes. 2007-02-21 10:55:31 +01:00
Stefan Dösinger
fb1469c47d wined3d: Do not print the fixed / unfixed vertices warning with shaders. 2007-02-21 10:55:14 +01:00
Francois Gouget
93494f2ac0 Assorted spelling fixes. 2007-02-20 20:30:51 +01:00
Stefan Dösinger
a9d681c3ad wined3d: With FVFs only one stream is used. 2007-02-20 11:50:26 +01:00
Stefan Dösinger
59ae2a56fb wined3d: Use VBOs for index buffers. 2007-02-20 11:50:10 +01:00
Stefan Dösinger
ecfd4cb0e4 wined3d: Move the scissor rectangle to the state table. 2007-02-20 11:49:53 +01:00
Stefan Dösinger
bbcf98209c wined3d: No bounds checking is done on sampler / texture numbers. 2007-02-20 11:49:42 +01:00
Stefan Dösinger
1f1d0cda22 wined3d: Misc comment updates. 2007-02-20 11:47:57 +01:00
Stefan Dösinger
27113156d9 wined3d: Remove IWineD3DDevice::EnumDisplayModes. 2007-02-20 11:47:46 +01:00
Stefan Dösinger
7676462a3d wined3d: Fix d3d8/9 style palettes. 2007-02-20 11:46:20 +01:00
Stefan Dösinger
4a93eb840a wined3d: Remove stream flags from GetStreamSource. 2007-02-20 11:46:06 +01:00
Stefan Dösinger
ef68e32b03 wined3d/d3d8: Move todo about sw vp usage to d3d8. 2007-02-20 11:45:56 +01:00
Stefan Dösinger
401110538a wined3d: Check volume texture creation errors.
Volumetexture::Release checks for NULL pointers, so releasing a partially 
created texture works.
2007-02-20 11:45:42 +01:00
Stefan Dösinger
5e37345b30 wined3d: Activate a different context if the active render target is destroyed. 2007-02-19 13:10:51 +01:00
Stefan Dösinger
762e227994 wined3d: Only scream about unsupported vertex blending when it is used. 2007-02-19 13:10:24 +01:00
Stefan Dösinger
06f2829b92 wined3d: Pretend to support event queries. 2007-02-19 13:10:10 +01:00
Stefan Dösinger
266fc77cf0 wined3d: Lighting is calculated for vertices without normals.
It still should be disabled for transformed vertices though.
2007-02-19 13:08:35 +01:00
Stefan Dösinger
03bc11fa16 wined3d: Visual test framework. 2007-02-19 13:07:44 +01:00
Stefan Dösinger
5916fdd560 wined3d: Remove an outdated TODO comment.
BltFast takes care of activating the correct context nowadays.
2007-02-19 13:02:19 +01:00
H. Verbeet
78e50b78a6 wined3d: Remove the d3d9.h include from wined3d_private.h. 2007-02-16 12:31:28 +01:00
H. Verbeet
dc5b08cc76 wined3d: Get rid of any remaining d3d9 stuff in directx.c. 2007-02-16 12:31:21 +01:00
H. Verbeet
bd5488cda9 wined3d: Add WINED3DCREATE flags and use them. 2007-02-16 12:31:11 +01:00
H. Verbeet
a4bc52a89c wined3d: Fix WINED3DPRESENT_PARAMETERS and use it instead of D3DPRESENT_PARAMETERS. 2007-02-16 12:31:03 +01:00
Stefan Dösinger
1f32d6235e wined3d: Convert the full surface for now.
Until we have proper subrectangle handling for offscreen surfaces,
surface conversion has to use the real surface sizes, and not the size
of the opengl subrectangle that it is going to upload. Due to the
power of 2 limitations the gl height may be bigger than the real
surface height. If that is not the case, the uploading function will
pick the correct parts from the converted surface data.
2007-02-15 17:22:27 +01:00
Stefan Dösinger
20a07693b5 wined3d: Read offscreen render targets upside down when blitting them to a texture. 2007-02-15 17:22:06 +01:00
Stefan Dösinger
a41ba013b6 wined3d: Test for supported queries.
This test contains a table of known supported / known unsupported
queries. In theory wined3d could just report the queries it supports,
but applications may make some assumtions regarding supported /
unsupported queries and stop working if they find a query unexpectadely
supported or unsupported. It also tests what is supposed to happen if an
unsupported query is created.
2007-02-15 17:21:58 +01:00
Stefan Dösinger
2f96220b3e 6/10: WineD3D: rsq and rcp instructions may need a default swizzle in arb.
ARB shaders need a swizzle for the RSQ and RCP instructions, while d3d
shaders do not. The DirectX sdk says that the x component is used if
no swizzle is given.
2007-02-15 17:21:27 +01:00
Stefan Dösinger
8e84127aed wined3d: Restore the display mode when releasing a swapchain. 2007-02-15 16:56:02 +01:00
Stefan Dösinger
19baae3159 wined3d: Remove empty texture stage applying loop. 2007-02-15 16:55:38 +01:00
H. Verbeet
75ebf29e1b wined3d: Get rid of any remaining d3d9 stuff in surface.c and surface_gdi.c. 2007-02-15 14:21:11 +01:00
H. Verbeet
1a07d3142c wined3d: Get rid of any remaining d3d9 stuff in stateblock.c. 2007-02-15 14:21:03 +01:00
H. Verbeet
a2fde7d912 wined3d: Get rid of any remaining d3d9 stuff in state.c. 2007-02-15 14:20:56 +01:00
H. Verbeet
618dc7da1f wined3d: Use WINED3DISSUE_BEGIN / WINED3DISSUE_END rather than D3DISSUE_BEGIN / D3DISSUE_END. 2007-02-15 14:20:46 +01:00
H. Verbeet
e8419403ee wined3d: Add the WINED3DSPD_IUNKNOWN flag and use it. 2007-02-15 14:20:38 +01:00
H. Verbeet
176a2a19c3 wined3d: Use WINED3DRTYPE_SURFACE rather than D3DRTYPE_SURFACE. 2007-02-15 14:20:28 +01:00
H. Verbeet
e01f242a2a wined3d: Add WINED3DVS20 & WINED3DVS20CAPS flags and use them. 2007-02-15 14:20:19 +01:00
H. Verbeet
594f7fd882 wined3d: Add WINED3DPS20 & WINED3DPS20CAPS flags and use them. 2007-02-15 14:20:12 +01:00
H. Verbeet
db8da81e67 wined3d: Add WINED3DDTCAPS flags and use them. 2007-02-15 14:20:01 +01:00
H. Verbeet
da354c6dfa wined3d: Add WINED3DLINECAPS flags and use them. 2007-02-15 14:19:52 +01:00
H. Verbeet
5c398c571f wined3d: Add WINED3DPTADDRESSCAPS flags and use them. 2007-02-15 11:43:59 +01:00
H. Verbeet
a58b156264 wined3d: Add WINED3DPCMPCAPS flags and use them. 2007-02-15 11:43:53 +01:00
H. Verbeet
fd8e0f1589 wined3d: Add WINED3DPMISCCAPS flags and use them. 2007-02-15 11:43:46 +01:00
H. Verbeet
748fd83ebd wined3d: Add WINED3DPBLENDCAPS flags and use them. 2007-02-15 11:43:37 +01:00
H. Verbeet
8fdd88b42c wined3d: Add WINED3DSTENCILCAPS flags and use them. 2007-02-15 11:43:29 +01:00
H. Verbeet
ea683407af wined3d: Add WINED3DTEXOPCAPS flags and use them. 2007-02-15 11:43:22 +01:00
Stefan Dösinger
1282b43302 wined3d: Restore blitting environment after modifying it. 2007-02-15 11:41:05 +01:00
Stefan Dösinger
b3f96f4327 wined3d: alphaop fixes for color keying. 2007-02-15 11:40:57 +01:00
Stefan Dösinger
d4c4e5d167 wined3d: Enable color keying only for surfaces without an alpha channel. 2007-02-15 11:40:44 +01:00
Stefan Dösinger
8b8e30b1e1 ddraw, wined3d: Color keying tests and fixes. 2007-02-15 11:37:00 +01:00
Stefan Dösinger
ccd2772e28 wined3d: Accelerated blits from and to offscreen render targets. 2007-02-15 11:36:39 +01:00
Stefan Dösinger
de036ff68e wined3d: Convert and load U8V8 surfaces as rgb.
GL_INDEX is definitly not the way to load U8V8 surfaces
2007-02-15 11:36:28 +01:00
Stefan Dösinger
99576ea24e wined3d: Implement texbem in arb, improve it in glsl. 2007-02-15 11:36:14 +01:00
Stefan Dösinger
49a49fcfec wined3d: Load one bump mapping environment matrix into pixel shaders if needed. 2007-02-15 11:36:01 +01:00
Stefan Dösinger
efbd6d6332 wined3d: Give the bump env matrices their own states. 2007-02-15 11:35:52 +01:00
H. Verbeet
34e74ffc2a wined3d: Use WINED3D_OK rather than D3D_OK. 2007-02-15 11:15:50 +01:00
H. Verbeet
3e77ffc563 wined3d: Use WINED3DPRESENT_BACK_BUFFER_MAX rather than D3DPRESENT_BACK_BUFFER_MAX. 2007-02-15 11:15:41 +01:00
H. Verbeet
d4d165afd8 wined3d: Use WINED3DUSAGE rather than D3DUSAGE. 2007-02-15 11:15:33 +01:00
H. Verbeet
498f9c507a wined3d: Use WINED3DSTREAMSOURCE_INSTANCEDATA rather than D3DSTREAMSOURCE_INSTANCEDATA. 2007-02-15 11:15:25 +01:00
Francois Gouget
536e738552 Assorted spelling fixes. 2007-02-14 21:03:57 +01:00
Stefan Dösinger
388499ff28 wined3d: More fullscreen window fixes. 2007-02-14 20:46:51 +01:00
Stefan Dösinger
0feddccfe3 wined3d: Instancing emulation. 2007-02-14 20:46:25 +01:00
Stefan Dösinger
93cd7ef7ff wined3d: Correctly load vertex attributes with a stride of 0. 2007-02-14 20:46:02 +01:00
Stefan Dösinger
aec06f60e7 wined3d: Do not leave SetStreamSource early. 2007-02-14 20:45:54 +01:00
Stefan Dösinger
e6fedfca7a wined3d: Do not release the local vertex buffer copy. 2007-02-14 20:45:44 +01:00
Stefan Dösinger
40c85a60b7 wined3d: SetStreamSource does not modify stream flags. 2007-02-14 20:45:32 +01:00
Stefan Dösinger
174b6321eb wined3d: Move lights to the state table. 2007-02-14 20:45:15 +01:00
Stefan Dösinger
acadf3f241 wined3d: Replace the light chain with a hashmap. 2007-02-14 20:44:58 +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
dea795f7ac d3d9: Don't store the d3d9 declaration in the wined3d object. 2007-02-14 13:54:42 +01:00
H. Verbeet
32e5cac2be wined3d: Get rid of the vertexDeclaration field in IWineD3DVertexShaderImpl. 2007-02-14 13:54:29 +01:00
H. Verbeet
8f0884066f wined3d: Add WINED3DDECLUSAGE, use it. 2007-02-14 13:50:22 +01:00
H. Verbeet
2d9540cab7 wined3d: Don't use WINED3DSHADERDECLUSAGE_PSIZE / WINED3DSHADERDECLUSAGE_FOG. 2007-02-14 13:50:01 +01:00
Stefan Dösinger
b90a665d20 wined3d: Do not allocate compressed surfaces with glTexImage2D. 2007-02-14 12:29:42 +01:00
Stefan Dösinger
ae3327334d wined3d: Swap the SFLAG_DIBSECTION flag when swaping hdc and memory. 2007-02-14 12:29:29 +01:00
Stefan Dösinger
0ddd236480 wined3d: Check error conditions before creating the object. 2007-02-14 12:29:19 +01:00
Stefan Dösinger
403b5ecf60 wined3d: Partial render target locking. 2007-02-14 12:29:11 +01:00
Stefan Dösinger
b48dfb3c54 wined3d: Always use np2 repacking if no native np2 support is available. 2007-02-14 12:29:01 +01:00
Stefan Dösinger
21172f1dec wined3d: Improve render target locking. 2007-02-14 12:28:39 +01:00
Stefan Dösinger
c3f0eb489b wined3d: Remove pow2Size from the surfaces. 2007-02-14 12:28:19 +01:00
Stefan Dösinger
e16d08f011 wined3d: Show fullscreen rendering windows. 2007-02-14 12:28:04 +01:00
Stefan Dösinger
f196680c59 wined3d: GetRenderTargetData can call BltFast. 2007-02-14 12:27:37 +01:00
Stefan Dösinger
8cae0e4d07 wined3d: Dirtify the render targets, not the primary swapchain on draws. 2007-02-14 12:27:23 +01:00
H. Verbeet
2a309f503d wined3d: Cleanup the pixelshader() state handler a little bit. 2007-02-14 12:21:46 +01:00
H. Verbeet
1636bc1aec wined3d: Always select the correct shader pair in the vertexdeclaration() state handler. 2007-02-14 12:21:41 +01:00
Stefan Dösinger
f5f501d573 wined3d: Use the context manager to create onscreen contexts. 2007-02-13 12:08:02 +01:00
Stefan Dösinger
12252d0589 wined3d: Use the context manager to select the primary render target. 2007-02-13 12:05:35 +01:00
Stefan Dösinger
7253fae31f wined3d: Make the context array dynamic. 2007-02-13 12:04:40 +01:00
Stefan Dösinger
e534340450 wined3d: Improve render target to texture blits. 2007-02-13 12:04:20 +01:00
Stefan Dösinger
f22d37e4dd wined3d: Use the context manager to prepare for blitting. 2007-02-13 12:04:08 +01:00
Stefan Dösinger
c1623d4e7b wined3d: Use the context manager to prepare for drawing. 2007-02-13 12:03:40 +01:00
Stefan Dösinger
380930dc54 wined3d: Store dirty states per context. 2007-02-13 11:55:07 +01:00
Stefan Dösinger
e6c9a073b0 wined3d: Store state optmization members in the context. 2007-02-13 11:50:38 +01:00
Stefan Dösinger
c739c387b6 wined3d: Add a per context structure for context management. 2007-02-13 11:50:14 +01:00
Chris Robinson
5f1a1bbc84 wined3d: Properly round negative values in shader_glsl_mov. 2007-02-12 14:12:29 +01:00
Stefan Dösinger
fa97fbdcad wined3d: Make shader_cleanup more useful. 2007-02-12 12:37:48 +01:00
Stefan Dösinger
67b1f4a7e9 wined3d: BeginScene and EndScene tests and fixes. 2007-02-12 12:08:34 +01:00
Maarten Lankhorst
89840c0517 wined3d: Report D3D caps properly for ATI cards. 2007-02-05 14:01:43 +01:00
H. Verbeet
7c40799df0 wined3d: Remove the d3d9types.h include from wined3d_private.h. 2007-01-23 11:27:05 +01:00
H. Verbeet
32778357f8 wined3d: Use ARB_VERTEX_PROGRAM instead of GL_VERTEX_PROGRAM_ARB with GL_SUPPORT.
Spotted by Marcus Meissner.
2007-01-23 11:26:58 +01:00
H. Verbeet
beed89cde4 wined3d: The sincos instruction is valid for ps/vs 2.1 as well. 2007-01-19 12:29:17 +01:00
H. Verbeet
efed4c33c2 wined3d: gl_FragDepth is a float, so fixup the write mask. 2007-01-19 12:29:11 +01:00
H. Verbeet
4352934b84 wined3d: Use SetupFullscreenWindow() to make the window fullscreen. 2007-01-19 12:29:05 +01:00
H. Verbeet
6112522122 wined3d: Move SetupFullscreenWindow() and RestoreWindow() from IDirectDrawImpl to IWineD3DDeviceImpl. 2007-01-19 12:28:58 +01:00
H. Verbeet
a31f2fd9fc wined3d: Use %s in trace. 2007-01-19 12:28:58 +01:00
Francois Gouget
b0bde6b87c Assorted spelling fixes. 2007-01-18 12:56:52 +01:00
H. Verbeet
955fb95eb6 wined3d: Give shader constants their own debug channel. 2007-01-18 12:09:09 +01:00
H. Verbeet
79c7aeab00 wined3d: Fix a typo. 2007-01-18 12:09:03 +01:00
H. Verbeet
d429ff5b69 wined3d: When switching color material, apply the material we were previously tracking.
This fixes a regression introduced by 329670c7f1.
2007-01-18 12:08:57 +01:00
H. Verbeet
612a74a994 wined3d: Don't set Parm when isDiffuseSupplied is FALSE in state_colormat(), it isn't used anyway. 2007-01-18 12:08:45 +01:00
Francois Gouget
d4ca34dd9b d3d: Fix the D3DFMT_XXX constant declarations. 2007-01-18 12:05:05 +01:00
Stefan Dösinger
354fdae524 wined3d: Implement per stream offsets. 2007-01-17 11:24:04 +01:00
Stefan Dösinger
1d3abdeeaa wined3d: Store the stream number in the strided structure. 2007-01-17 11:23:54 +01:00
Stefan Dösinger
71f923a6d2 wined3d: Improve drawStridedSlow a bit. 2007-01-17 11:23:41 +01:00
H. Verbeet
e3cc00cf47 wined3d: Add a glsl_src_param_t type, pass it to shader_glsl_add_src_param() instead of three separate character arrays. 2007-01-16 16:14:21 +01:00
H. Verbeet
04e6250c87 wined3d: Add a glsl_dst_param_t type, pass it to shader_glsl_add_dst_param() instead of three separate character arrays. 2007-01-16 16:13:58 +01:00
H. Verbeet
6f3fae4e04 wined3d: Simplify shader_glsl_get_write_mask(). 2007-01-16 16:13:29 +01:00
H. Verbeet
c6bccc9278 wined3d: Simplify shader_glsl_get_swizzle(). 2007-01-16 16:13:19 +01:00
H. Verbeet
48f82d3f5e wined3d: Fix pshader_glsl_tex() and pshader_glsl_texcoord(). 2007-01-16 16:13:10 +01:00
H. Verbeet
c3bfef8d7e wined3d: Pass the correct mask to shader_glsl_add_src_param() in shader_glsl_callnz(). 2007-01-16 16:12:46 +01:00
H. Verbeet
50e0deafca wined3d: Pass the correct mask to shader_glsl_add_src_param() in shader_glsl_breakc(). 2007-01-16 16:12:37 +01:00
H. Verbeet
f593cd0de8 wined3d: Pass the correct mask to shader_glsl_add_src_param() in shader_glsl_ifc(). 2007-01-16 16:12:26 +01:00
H. Verbeet
a89edf1be9 wined3d: Pass the correct mask to shader_glsl_add_src_param() in shader_glsl_if(). 2007-01-16 16:12:18 +01:00
H. Verbeet
9f22df26ef wined3d: Pass the correct mask to shader_glsl_add_src_param() in shader_glsl_rep(). 2007-01-16 16:12:11 +01:00
H. Verbeet
2cb49c67db wined3d: Pass the correct mask to shader_glsl_add_src_param() in shader_glsl_loop().
Fix the comment.
2007-01-16 16:12:02 +01:00
H. Verbeet
cf1a3cc81a wined3d: Pass the correct mask to shader_glsl_add_src_param() in pshader_glsl_texm3x3vspec().
Use shader_glsl_get_sample_function().
Use the GLSL builtin reflect() function.
2007-01-16 16:11:45 +01:00
H. Verbeet
f0fb61daed wined3d: Pass the correct mask to shader_glsl_add_src_param() in pshader_glsl_texm3x3spec().
Use shader_glsl_get_sample_function().
2007-01-16 16:11:26 +01:00
H. Verbeet
ba1740909e wined3d: Pass the correct mask to shader_glsl_add_src_param() in pshader_glsl_texm3x3(). 2007-01-16 16:11:13 +01:00
H. Verbeet
b26fae9a25 wined3d: Pass the correct mask to shader_glsl_add_src_param() in pshader_glsl_texm3x3tex().
Use shader_glsl_get_sample_function().
2007-01-16 16:11:02 +01:00
H. Verbeet
950783d4fd wined3d: Pass the correct mask to shader_glsl_add_src_param() in pshader_glsl_texm3x2tex(). 2007-01-16 16:10:43 +01:00
H. Verbeet
92ab90eee8 wined3d: Pass the correct mask to shader_glsl_add_src_param() in pshader_glsl_texm3x3pad(). 2007-01-16 16:10:34 +01:00
H. Verbeet
459e0bf633 wined3d: Pass the correct mask to shader_glsl_add_src_param() in pshader_glsl_texm3x2pad(). 2007-01-16 16:10:23 +01:00
H. Verbeet
04144983eb wined3d: Pass the correct mask to shader_glsl_add_src_param() in pshader_glsl_texm3x2depth(). 2007-01-16 16:10:17 +01:00
H. Verbeet
1947b27380 wined3d: Pass the correct mask to shader_glsl_add_src_param() in pshader_glsl_texdp3(). 2007-01-16 16:10:07 +01:00
H. Verbeet
3cd84d9ab6 wined3d: Pass the correct mask to shader_glsl_add_src_param() in pshader_glsl_texdp3tex(). 2007-01-16 16:10:01 +01:00
H. Verbeet
0fcb682af6 wined3d: Rewrite pshader_glsl_texreg2rgb to properly take the write mask into account.
Use shader_glsl_get_sample_function() rather than having the instruction handler figure it out itself.
Get rid of shader_glsl_add_dst_old().
2007-01-16 16:09:50 +01:00
H. Verbeet
67e203215f wined3d: Split out getting the sample function and coordinate mask from shader_glsl_sample(). 2007-01-16 16:09:23 +01:00
H. Verbeet
54137bacfa wined3d: Pass the correct mask to shader_glsl_add_src_param() in pshader_glsl_texreg2gb(). 2007-01-16 16:09:09 +01:00
H. Verbeet
8325937ded wined3d: Pass the correct mask to shader_glsl_add_src_param() in pshader_glsl_texreg2ar.
Use the correct source swizzle.
2007-01-16 16:08:58 +01:00
H. Verbeet
7d07f31045 wined3d: Pass the correct mask to shader_glsl_add_src_param() in shader_glsl_dst(). 2007-01-16 16:08:35 +01:00
H. Verbeet
146093af33 wined3d: Rewrite shader_glsl_rcp() to properly take the write mask into account. 2007-01-16 16:08:19 +01:00
H. Verbeet
9857158a99 wined3d: Rewrite shader_glsl_expp() to properly take the write mask into account. 2007-01-16 16:08:08 +01:00
H. Verbeet
2c60906ec4 wined3d: Rewrite shader_glsl_cnd() to properly take the write mask into account.
Take the difference between ps 1.4 and earlier versions into account.
2007-01-16 16:07:56 +01:00
H. Verbeet
693b6ef876 wined3d: Rewrite shader_glsl_cmp() to properly take the write mask into account. 2007-01-16 16:07:44 +01:00
H. Verbeet
1414d75a3f wined3d: Rewrite shader_glsl_lrp() to properly take the write mask into account, use the GLSL mix instruction. 2007-01-16 16:07:35 +01:00
H. Verbeet
e0588e7475 wined3d: Pass the correct mask to shader_glsl_add_src_param() in shader_glsl_lit(). 2007-01-16 16:07:15 +01:00
H. Verbeet
cb5c47f8fe wined3d: Rewrite shader_glsl_mov() to properly take the write mask into account.
In case of writing to an address register round the source.
2007-01-16 16:07:05 +01:00
H. Verbeet
9425aef623 wined3d: Rewrite pshader_glsl_dp2add() to properly take the write mask into account. 2007-01-16 16:06:37 +01:00
H. Verbeet
f3a4d35dee wined3d: Rewrite shader_glsl_dot() to properly take the write mask into account. 2007-01-16 16:06:25 +01:00
H. Verbeet
b3ff0c3703 wined3d: Rewrite shader_glsl_map2gl() to properly take the write mask into account. 2007-01-16 16:06:11 +01:00
H. Verbeet
7252b4d340 wined3d: Give WINED3DSIO_CRS its own function, properly take the write mask into account. 2007-01-16 16:05:49 +01:00
H. Verbeet
b557a8021a wined3d: Move WINED3DSIO_SGE & WINED3DSIO_SLT from shader_glsl_map2gl() to shader_glsl_compare() where they belong.
Properly take the write mask into account
2007-01-16 16:04:18 +01:00
H. Verbeet
e0f0bf1d08 wined3d: Rewrite shader_glsl_mad() to properly take the write mask into account. 2007-01-16 16:03:59 +01:00
H. Verbeet
b0fd23e844 wined3d: Rewrite shader_glsl_arith() to properly take the write mask into account. 2007-01-16 16:03:50 +01:00
H. Verbeet
4452120007 wined3d: Rewrite shader_glsl_sincos() to properly take the write mask into account.
The write mask can only be one of .x, .y, .xy
2007-01-16 16:03:38 +01:00
H. Verbeet
dc0d2a27f1 wined3d: Pass the correct mask to shader_glsl_add_src_param() in shader_glsl_get_register_name(). 2007-01-16 16:03:25 +01:00
H. Verbeet
b8bc92dc7b wined3d: Pass a mask to shader_glsl_add_src_param(). 2007-01-16 16:03:15 +01:00
H. Verbeet
1bfc08e081 wined3d: Rename shader_glsl_add_dst() to shader_glsl_add_dst_old(), add shader_glsl_append_dst(). 2007-01-16 16:02:41 +01:00
H. Verbeet
cb26d59d26 05/49: wined3d: Only add line numbers for new lines in shader_addline(). 2007-01-16 16:02:28 +01:00
H. Verbeet
b28bd67fd9 wined3d: Fixup the write mask for gl_FogFragCoord and gl_PointSize.
gl_FogFragCoord and gl_PointSize are floats rather than vec4s in GLSL,
so they shouldn't have a destination swizzle, and the write mask we
return should consist of only the first component.
2007-01-16 16:02:21 +01:00
H. Verbeet
16cf41413b wined3d: Return the (binary) write mask from shader_glsl_add_dst_param(). 2007-01-16 16:02:13 +01:00
H. Verbeet
9f4f02b5fb wined3d: Split shader_glsl_add_param() in shader_glsl_add_src_param() and shader_glsl_add_dst_param(). 2007-01-16 16:02:06 +01:00
H. Verbeet
aa4d88d6f8 wined3d: Add a comment about D3D write masks and GLSL destination swizzles. 2007-01-16 16:01:55 +01:00
Dmitry Timoshkov
5ddac44dc2 wined3d: Do not play with WS_VISIBLE, this causes unwanted mapping/unmapping of the window. 2007-01-15 12:44:18 +01:00
Stefan Dösinger
8658d20b3e wined3d, d3d9: Caps correction. 2007-01-15 12:44:03 +01:00
Stefan Dösinger
8c8d1e4f89 wined3d: Do not force dynamic usage on transformed buffers. 2007-01-15 12:43:46 +01:00
Stefan Dösinger
e328e24daa wined3d: Better tracking of vertex buffer assignments. 2007-01-15 12:43:40 +01:00
Stefan Dösinger
03389acc30 wined3d: Do not free regularily locked surfaces. 2007-01-15 12:43:29 +01:00
Stefan Dösinger
a7916d8011 wined3d: Revert "wined3d: Do not preload vertex buffers in unlock.".
This reverts commit 6fb1869b98.
2007-01-15 12:43:11 +01:00
Stefan Dösinger
ce0773a02e wined3d: Avoid a NULL pointer dereference in UpdateTexture (Coverity). 2007-01-12 11:50:04 +01:00
Stefan Dösinger
723b32b1c9 wined3d: Do not perform a NULL check on riid (Coverity). 2007-01-12 11:49:46 +01:00
Stefan Dösinger
cb74603e43 d3d9: Implement IDirect3DDevice9::StretchRect. 2007-01-12 11:49:38 +01:00
Ken Thomases
94be42eb2d wined3d: Do not block waiting for occlusion query result in GetData. 2007-01-12 11:24:20 +01:00
Stefan Dösinger
60c9ea6751 wined3d: Remove dead NV_TEXTURE_SHADER code 2007-01-10 22:03:50 +01:00
Stefan Dösinger
b07c48c499 wined3d: Do not activate / deactivate texture dimensions twice. 2007-01-10 22:03:28 +01:00
Stefan Dösinger
70831d1d2d wined3d: D3D7 vertex buffers never change their declaration. 2007-01-10 22:03:17 +01:00
Stefan Dösinger
08c7b3947b wined3d: Fix a capital letter in a parameter name. 2007-01-10 22:03:09 +01:00
Stefan Dösinger
7fd246ebe3 wined3d: Add copyright statements to state.c. 2007-01-10 22:02:23 +01:00
Stefan Dösinger
fe6165db19 wined3d: Attempt to remove some tabs smuggled in by xcode. 2007-01-10 22:02:10 +01:00
Stefan Dösinger
953f8d7b37 wined3d: Do not warn about unsupported point sizes if the default values are set. 2007-01-10 22:01:57 +01:00
Stefan Dösinger
60ea760945 wined3d: Avoid false resultarg warnings. 2007-01-10 22:01:46 +01:00
Stefan Dösinger
d4b63bbd87 wined3d: Store the scissor rect in the stateblock. 2007-01-10 22:01:20 +01:00
Stefan Dösinger
222c531b1a wined3d: Count the framerate per swapchain, not globally. 2007-01-10 22:00:47 +01:00
Stefan Dösinger
9b4920996e wined3d: Move material applying to the state table. 2007-01-10 22:00:34 +01:00
Stefan Dösinger
dfeb40cbff wined3d: Remove the invymat from drawprim.c. 2007-01-10 22:00:25 +01:00
Stefan Dösinger
329670c7f1 wined3d: Do not reset the material. 2007-01-10 22:00:17 +01:00
Michael Stefaniuc
33af3c5c83 janitorial: Use the C standard for multiline strings. 2007-01-10 12:28:19 +01:00
Michael Stefaniuc
290ae94e66 wined3d: Remove stray '\' at end of lines. 2007-01-09 12:03:50 +01:00
Stefan Dösinger
577f8db7cf wined3d: Fix np2 textures. 2007-01-08 21:00:23 +01:00
Stefan Dösinger
9f2e0fa2e0 wined3d: Do not try to read the vertex decl when the stateblock isn't finalized. 2007-01-08 21:00:14 +01:00
Stefan Dösinger
2e55c196ee wined3d: Remove some unneeded context cache members from the device. 2007-01-08 21:00:04 +01:00
Stefan Dösinger
d47ec21280 wined3d: Vertex buffers can use the declaration from the device. 2007-01-08 20:59:57 +01:00
Stefan Dösinger
6fb1869b98 wined3d: Do not preload vertex buffers in unlock. 2007-01-08 20:59:48 +01:00
Stefan Dösinger
b310e98693 wined3d: Clean up drawprim a bit. 2007-01-08 20:59:38 +01:00
Stefan Dösinger
478d22f742 wined3d: Do not keep internal references on index buffers. 2007-01-08 20:59:17 +01:00
Stefan Dösinger
3581d8e8d8 wined3d: Do not keep internal references on vertex buffers. 2007-01-08 20:59:06 +01:00
Stefan Dösinger
467fa4e702 wined3d: Do not keep internal references on pixel shaders. 2007-01-08 20:58:53 +01:00
Stefan Dösinger
7123d617a4 wined3d: Do not keep internal references on vertex shaders. 2007-01-08 20:58:45 +01:00