Stefan Dösinger
5e405d3b26
wined3d: Disable texture coordinate arrays on the correct unit.
2007-03-27 12:30:50 +02:00
Stefan Dösinger
bee084503b
wined3d: Implement bem shader instruction.
2007-03-27 12:30:38 +02:00
Stefan Dösinger
929116f23c
wined3d: Handle input modifiers in texcrd with arb shaders.
2007-03-27 12:30:26 +02:00
Fabian Bieler
e617c91f22
wined3d: Fix arb texbem instruction for projective textures.
2007-03-23 12:32:10 +01:00
Fabian Bieler
97967d3671
wined3d: Fix glsl texbem instruction for projective textures.
2007-03-23 12:31:35 +01:00
Fabian Bieler
4b3ac837aa
wined3d: Implemented bump map transform for texbem in GLSL with native signed textures.
2007-03-23 12:31:27 +01:00
Fabian Bieler
878e02538e
wined3d: Remove fog coordinate clamping in the vertex shader.
2007-03-23 12:30:58 +01:00
Fabian Bieler
7cedd56d24
wined3d: Implement linear fog with pixel shader.
2007-03-23 12:30:23 +01:00
Stefan Dösinger
e25a16fda5
wined3d: General signed format correction without native signed formats.
...
Implement signed d3d formats for D3DFMT_V8U8 and D3DFMT_Q8W8V8U8 if no
suitable opengl signed format is supported.
2007-03-21 22:51:19 +01:00
Stefan Dösinger
2cdbd9a53d
wined3d: Store the pixel format in the texture.
2007-03-21 22:50:49 +01:00
Stefan Dösinger
ede01abee2
wined3d: Support GL_ATI_envmap_bumpmap for D3DFMT_V8U8.
2007-03-21 22:50:41 +01:00
Stefan Dösinger
e213d7eff5
wined3d: Add GL_ATI_envmap_bumpmap to our gl extension header.
2007-03-21 22:50:30 +01:00
Vitaly Budovski
f7b565e2ca
wined3d: Check for float texture formats correctly.
...
Move the checks for float texture formats into the correct location.
This allows some Direct3D sample applications which check for any of
the float formats together with D3DUSAGE_RENDERTARGET to start.
2007-03-21 12:33:17 +01:00
Phil Costin
1f03896e00
wined3d: Ensure all states affected by a change in render_offscreen are marked dirty in ActivateContext.
2007-03-21 11:55:52 +01:00
Stefan Dösinger
90fe64cee0
wined3d: Store an array of contexts in the swapchain.
...
This is a preparation for using multiple contexts on one drawable to
handle multithreading.
2007-03-19 12:23:16 +01:00
Stefan Dösinger
fcb83e7111
wined3d: Activate a context before doing opengl calls.
2007-03-19 12:22:57 +01:00
Stefan Dösinger
9789f993ce
wined3d: Remove some old stuff.
2007-03-19 12:18:20 +01:00
Stefan Dösinger
65c447082a
wined3d: Fix client gl unit selection.
...
I forgot that when re-enabling register combiners during the state
management rewrite.
2007-03-19 12:18:07 +01:00
Stefan Dösinger
022e884342
wined3d/ddraw: Forward DDSCL_MULTITHREADED to wined3d.
2007-03-19 12:17:18 +01:00
Andrew Talbot
2f5f3825c6
wined3d: Replace inline static with static inline.
2007-03-17 20:04:46 +01:00
Erich Hoover
01199072dd
wined3d: Fix LockRect memory location calculation for WINED3DFMT_DXT*.
2007-03-17 19:51:34 +01:00
Stefan Dösinger
4b445124d3
direct3d: Add a fixed function fog test.
2007-03-15 12:14:50 +01:00
Stefan Dösinger
0b46254b57
wined3d: Blitting to offscreen target.
...
Fix the NULL deref that occured when blitting to offscreen targets and
select the proper gl drawing buffer instead.
2007-03-15 12:14:39 +01:00
Erich Hoover
9795e6839f
wined3d: Allow SetCursorProperties on existing cursor.
2007-03-14 13:14:08 +01:00
Francois Gouget
e11ca0a7fd
wined3d: Remove space before '\n' in trace.
2007-03-14 12:10:47 +01:00
Stefan Huehner
4d1d01f266
Mark several functions as static.
2007-03-13 13:35:12 +01:00
András Kovács
dac10f0da8
wined3d: Set WINED3DCAPS2_DYNAMICTEXTURES flag.
2007-03-13 12:08:23 +01:00
H. Verbeet
62fff2eab8
wined3d: Remove some redundant code in IWineD3DVertexBufferImpl_FindDecl().
2007-03-13 11:56:18 +01:00
H. Verbeet
6998d0d472
wined3d: Remove a redundant check in handleStreams().
2007-03-13 11:56:10 +01:00
H. Verbeet
05d461aee9
wined3d: Remove some redundant checks in the vertexdeclaration() state handler.
2007-03-13 11:56:02 +01:00
H. Verbeet
30ee071eb9
wined3d: Disable vertex shaders when transformed vertices are used.
2007-03-13 11:55:55 +01:00
H. Verbeet
ee09e8bfd6
wined3d: Remove FVF related fields from IWineD3DVertexDeclaration.
2007-03-13 11:54:24 +01:00
H. Verbeet
b22ca33a85
wined3d: 11 space indent is ugly.
2007-03-13 11:54:08 +01:00
H. Verbeet
23cd4475f6
wined3d: Correct various texture limits checks.
2007-03-13 11:53:28 +01:00
Fabian Bieler
8dae597f24
wined3d: Implemented signed texture formats via NV_TEXTURE_SHADER.
2007-03-13 11:51:56 +01:00
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