Stefan Dösinger
1b23dd1ba1
wined3d: Implement the varying map.
2007-11-07 12:08:32 +01:00
Stefan Dösinger
409103f801
wined3d: Install a varying map.
2007-11-07 12:08:24 +01:00
Roderick Colenbrander
df892ff67d
wined3d: Rewrite the draw buffer selection code.
...
Before it was done in findContext, before selecting the new context
which is bad (it doesn't always work). The new code works and this
change also fixes some draw buffer regressions that happened during
the surface rewrite from the last couple of days.
2007-11-06 13:56:55 +01:00
Stefan Dösinger
3febe738ab
wined3d: Handle ps 3.0 varyings in a different way.
2007-11-06 13:34:57 +01:00
Stefan Dösinger
393ed4a070
wined3d: Make resource memory 32 byte aligned.
2007-11-01 12:38:45 +01:00
Stefan Dösinger
4d4fce7e33
wined3d: Disconnect allocatedMemory and Heap allocation.
2007-11-01 12:38:37 +01:00
Stefan Dösinger
a175e7b68e
wined3d: Move a part of LockRect to the base class.
2007-11-01 12:38:17 +01:00
Stefan Dösinger
948292dbc3
wined3d: Move texture -> drawable blits to LoadLocation.
2007-11-01 12:37:43 +01:00
Stefan Dösinger
f6637cae98
wined3d: Move texture loading to LoadLocation.
2007-10-29 12:04:11 +01:00
Stefan Dösinger
dcff7dc213
wined3d: Begin centralizing surface location management.
2007-10-26 15:17:19 +02:00
Stefan Dösinger
8f3accc718
wined3d: Care for the inverted y coords in dsy.
2007-10-22 15:59:04 +02:00
Roderick Colenbrander
134aa67ec9
wined3d: Use a fragment shader to do P8 palette conversion in hardware.
2007-10-12 11:07:23 +02:00
Stefan Dösinger
3f16f02940
wined3d: Nested loop support.
2007-10-04 12:03:59 +02:00
Stefan Dösinger
3d3369a77c
wined3d: d3d ignores the sign of the input value in the log instruction.
2007-10-03 11:03:12 +02:00
Stefan Dösinger
9c6cdda147
wined3d: Reverse the position fixup if the pshader is reading vpos.
2007-10-03 11:02:48 +02:00
Stefan Dösinger
822030e329
wined3d: Enable the mNxN implementation for pixel shaders.
2007-10-01 13:00:19 +02:00
Stefan Dösinger
d4019780b5
wined3d: Implement texbeml in arb shaders.
2007-10-01 13:00:12 +02:00
Stefan Dösinger
6644704039
wined3d: Add texreg2rgb support to arb shaders.
2007-10-01 12:59:59 +02:00
Francois Gouget
b2bc712323
Assorted spelling fixes.
2007-09-27 20:12:53 +02:00
Stefan Dösinger
20872abc9c
wined3d: Add sincos support to arb shaders.
2007-09-27 11:57:41 +02:00
Stefan Dösinger
daf2290ea4
wined3d: Implement the nrm instruction in arb.
2007-09-27 11:57:29 +02:00
Stefan Dösinger
1407bdb2cf
wined3d: Add dp2add support to arb shaders.
2007-09-27 11:57:20 +02:00
Stefan Dösinger
9531a10897
wined3d: Add support for some unimplemented instructions to arb shaders.
2007-09-25 11:20:51 +02:00
Roderick Colenbrander
243ac3ed75
wined3d: Move video memory tracking to the adapter.
2007-09-24 13:50:43 +02:00
Stefan Dösinger
6313e0ffff
wined3d: SRGB write correction emulation.
2007-09-24 13:30:30 +02:00
Stefan Dösinger
2b2c9199e8
wined3d: Unify pixel format correction.
2007-09-24 13:30:21 +02:00
Stefan Dösinger
1c4a15d2cd
wined3d: Recompile glsl pixelshaders if the sampler format changes.
2007-09-24 13:30:08 +02:00
Stefan Dösinger
5a63b79a66
wined3d: Untie culling and offscreen rendering.
2007-09-19 11:39:55 +02:00
Stefan Dösinger
46e2d79508
wined3d: Move the software blitting to the base surface class.
2007-09-18 09:54:49 +02:00
Stefan Dösinger
09b7d3bb44
wined3d: Give GDI surfaces their own release implementation.
2007-09-18 09:54:31 +02:00
Stefan Dösinger
9701f11850
wined3d: Give GDI surfaces their own GetDC copy.
2007-09-18 09:54:15 +02:00
Stefan Dösinger
5a7756447b
wined3d: Move DIB section creation to the base surface implementation.
2007-09-18 09:54:05 +02:00
Stefan Dösinger
515ee4e89b
wined3d: Clean up IWineD3DSurface::ReleaseDC.
2007-09-18 09:53:32 +02:00
Stefan Dösinger
511f9dfb2d
wined3d: Clean up SetMem.
2007-09-18 09:34:08 +02:00
Stefan Dösinger
24564915b7
wined3d: Clean up AddDirtyRect.
2007-09-18 09:34:08 +02:00
Stefan Dösinger
e56c6610c6
wined3d: Clean up SetFormatDesc.
2007-09-18 09:34:08 +02:00
Stefan Dösinger
2600041703
wined3d: Clean up SetGLTextureDesc and GetGLDesc.
2007-09-18 09:34:08 +02:00
Stefan Dösinger
9aa5662647
wined3d: Reorder surface impl predeclarations.
2007-09-18 09:34:08 +02:00
Stefan Dösinger
e2944175e5
wined3d: Base surface move, part 2.
2007-09-18 09:34:08 +02:00
Stefan Dösinger
d99143c251
wined3d: Move non-rendering surface specific code to the base class.
2007-09-18 09:34:08 +02:00
Stefan Dösinger
0c91610433
wined3d: Move resource methods to the base surface class.
2007-09-18 09:34:08 +02:00
Stefan Dösinger
8434060b7e
wined3d: Start of some surface cleanup.
...
This patch and the following intend to make the surface code more
manageable and are a preparation to add gl3 support. The code adds a
new IWineD3DBaseSurface surface type, which will contain the
non-rendering management code. IWineD3DSurface and IWineGDISurface
will be derived from IWineD3DBaseSurface, and IWineGL3Surface can be
added later.
2007-09-18 09:34:08 +02:00
Stefan Dösinger
8273cfdf01
wined3d: Fix texdp3tex in glsl.
2007-09-14 14:26:17 +02:00
Stefan Dösinger
271fb0052f
wined3d: Add support for showing a logo.
2007-09-14 14:26:00 +02:00
Roderick Colenbrander
ad692f2a83
wined3d: Add PBO support for dynamically locked surfaces.
2007-09-13 11:00:47 +02:00
Stefan Dösinger
5ab9d85c39
wined3d: Implement texbeml.
2007-09-12 12:10:03 +02:00
Stefan Dösinger
0ed81b20af
wined3d: Emulate D3DFMT_L6V5U5.
2007-09-12 12:09:56 +02:00
Stefan Dösinger
422e0ba1cc
wined3d: texkill ignores the .w only in ps 1.x.
2007-09-11 13:48:08 +02:00
Stefan Dösinger
a006d2568b
wined3d: Fix texdepth instruction.
2007-09-11 13:47:49 +02:00
Stefan Dösinger
fe0f0eb48a
wined3d: Some texture transform fixes.
2007-08-27 18:28:43 +02:00
Stefan Dösinger
a8e21d0692
wined3d: Texture transforms are disabled when drawing rhw vertices.
2007-08-27 18:28:38 +02:00
Stefan Dösinger
2665a8bf79
wined3d: Add some missing vertex state render states.
2007-08-27 18:28:32 +02:00
Stefan Dösinger
6ec6c941fa
wined3d: BaseVertexIndex can be negative.
2007-08-27 12:00:42 +02:00
Stefan Dösinger
e184b09a66
wined3d: Fake occlusion queries if the wrong context is active.
2007-08-23 13:34:52 +02:00
Stefan Dösinger
a99907d1d2
wined3d: Deal with multithreading in event queries.
2007-08-23 13:34:17 +02:00
Stefan Dösinger
98bc83be7c
wined3d: Fall back to drawStridedSlow if fog coords are used.
2007-08-23 13:33:22 +02:00
Stefan Dösinger
86b991c851
wined3d: Fix R32F and R16F.
2007-08-17 12:01:38 +02:00
Stefan Dösinger
b728ff0f55
wined3d: Simplify IWineD3DBaseTextureImpl_ApplyStateChanges.
2007-08-17 12:01:38 +02:00
Stefan Dösinger
028729d102
wined3d: Fix WINED3DFMT_A4L4.
2007-08-16 11:35:06 +02:00
Stefan Dösinger
b21c785482
wined3d: Optimize float constants in stateblocks.
2007-08-15 09:36:07 +02:00
Stefan Dösinger
59fb2928b8
wined3d: Optimize sampler states in stateblocks.
2007-08-15 09:35:49 +02:00
Stefan Dösinger
6e7a10f550
wined3d: Fix a field in the wined3d header.
2007-08-15 09:35:39 +02:00
Stefan Dösinger
03ffb73450
wined3d: Optimize texture stage state applying.
2007-08-14 12:29:04 +02:00
Stefan Dösinger
865b82af2c
wined3d: Optimize bool and int pixel shader constants.
2007-08-14 12:28:59 +02:00
Stefan Dösinger
4673b1c68e
wined3d: Optimize bool and int vs constants.
2007-08-14 12:28:52 +02:00
Stefan Dösinger
92ce028a0b
wined3d: Optimize transform state in stateblocks.
2007-08-14 12:28:40 +02:00
Roderick Colenbrander
6b177c44e1
wined3d: Pass the proper DeviceName to ChangeDisplaySettings.
2007-08-14 12:28:28 +02:00
Roderick Colenbrander
d391c11d43
wined3d: Proper CheckDeviceType / CheckDepthStencilMatch support.
2007-08-13 13:02:46 +02:00
Roderick Colenbrander
5754726aeb
wined3d: Use the proper depth stencil format.
2007-08-13 12:36:55 +02:00
Stefan Dösinger
93155ea087
wined3d: Optimize render states in the stateblock.
2007-08-13 11:37:25 +02:00
Stefan Dösinger
e7cbb340dc
wined3d: Remove stateblock::set.*.
2007-08-13 11:36:43 +02:00
Roderick Colenbrander
4647cbb625
wined3d: Better pixelformat selection code.
2007-08-09 14:11:19 +02:00
Roderick Colenbrander
ac3927a73e
wined3d: Move over to WGL.
2007-08-08 15:32:01 +02:00
Roderick Colenbrander
58275065a1
wined3d: Prepare pbuffer code for WGL transition.
2007-08-08 15:32:01 +02:00
Stefan Dösinger
b8dd5839ef
wined3d: Store the position_transformed flag in the vdecl.
2007-08-08 15:32:00 +02:00
Stefan Dösinger
06e51c21e1
wined3d: Determine used streams at vdecl creation.
2007-08-08 15:32:00 +02:00
Roderick Colenbrander
f3af04a8be
wined3d: Use UINT instead of uint.
2007-08-07 12:36:37 +02:00
H. Verbeet
82245cb5d7
wined3d: Properly load FLOAT16_2 and FLOAT16_4 vertex data.
2007-08-02 12:18:41 +02:00
Stefan Dösinger
d2016ff892
wined3d: Store the gl format table in the gl info structure.
2007-07-30 12:49:50 +02:00
Stefan Dösinger
a0131a3272
wined3d: Split up the format table.
2007-07-30 12:49:39 +02:00
H. Verbeet
d7c7cbf6b6
wined3d: Fix the stretch_rect_fbo() declaration to match the implementation.
2007-07-25 13:02:53 +02:00
H. Verbeet
35aa2ce9f2
wined3d: Correctly handle normalized vertex declaration data types.
2007-07-23 11:59:01 +02:00
H. Verbeet
cb4c9b6208
wined3d: Fix STATE_IS_ACTIVELIGHT.
2007-07-16 14:53:42 +02:00
Stefan Dösinger
fdadf26c20
wined3d: Add CTXUSAGE_CLEAR context usage.
2007-07-10 13:30:51 +02:00
Stefan Dösinger
26ebe396c3
wined3d: Implement high order patches.
2007-07-06 19:32:47 +02:00
Stefan Dösinger
b462ff0876
wined3d: Create multiple contexts for onscreen render targets.
2007-07-03 12:32:33 +02:00
Stefan Dösinger
13f24c3808
wined3d: Select onscreen contexts based on the thread id.
2007-07-03 12:30:33 +02:00
Stefan Dösinger
a1f83aae8e
wined3d: rsq and rcp use the .w component if no swizzle is given.
2007-07-03 12:29:34 +02:00
H. Verbeet
860aa6993b
wined3d: Get rid of the oneToOneTexUnitMap field.
2007-06-29 13:42:26 +02:00
H. Verbeet
1d4042cee1
wined3d: Implement texldl.
2007-06-28 11:01:15 +02:00
H. Verbeet
5b7758f80c
wined3d: Increase the sizes of texturing related arrays, in order to support vertex textures.
2007-06-26 11:57:17 +02:00
H. Verbeet
b1579b37ea
wined3d: Keep track of what fixed function texture stages are in use.
2007-06-25 11:43:05 +02:00
H. Verbeet
b928cadde8
wined3d: Keep track of what stage a texturing unit is mapped to.
2007-06-25 11:42:54 +02:00
Stefan Dösinger
2f4b9e42bc
wined3d: Move material applying to the state table.
2007-06-25 11:35:59 +02:00
Stefan Dösinger
b081cbaf40
wined3d: Emulate tracking of multiple material properties.
2007-06-21 13:09:30 +02:00
Stefan Dösinger
030b92a2f6
wined3d: Remove the FVF codepath from drawprim.
2007-06-21 13:09:08 +02:00
Stefan Dösinger
6e5a5d2736
wined3d: DDraw surfaces are QWORD aligned.
2007-06-14 13:22:52 +02:00
Stefan Dösinger
c9b8a79e0b
wined3d: Implement vertical refresh sync.
2007-06-14 13:21:54 +02:00
H. Verbeet
b9d5c18062
wined3d: Call IWineD3DDeviceImpl_FindTexUnitMap() when activating the context.
2007-06-13 11:23:18 +02:00
Stefan Dösinger
efbdd515f8
wined3d: Find possible fbconfis on dll load time, use them in CheckDepthStencilMatch.
2007-06-11 13:53:38 +02:00
Stefan Dösinger
66930554d1
wined3d: Store the adapter driver and description in the adapter.
2007-06-11 13:52:32 +02:00
Stefan Dösinger
a460a2df43
wined3d: Store the gl information in a per adapter structure and initialize it only once.
2007-06-11 13:51:06 +02:00
Phil Costin
622f62d352
wined3d: Enable the loading and reloading of gamma corrected textures.
2007-06-07 13:02:04 +02:00
Phil Costin
08ae3d6f67
wined3d: Extend the D3DFMT table to include gamma corrected formats.
2007-06-07 13:01:36 +02:00
Andrew Riedi
a9c2e15cf6
wined3d: Add hardware cursor support.
2007-05-16 14:27:39 +02:00
H. Verbeet
c3c5724789
wined3d: WINED3DSIO_POW should use the absolute value of the first source register.
2007-05-11 13:24:15 +02:00
H. Verbeet
d7596086bc
wined3d: Trace the VBO and stream number as well in drawPrimitiveTraceDataLocations.
2007-05-10 12:24:59 +02:00
Stefan Dösinger
d08585e6ec
wined3d: Manage private data in a wine linked list.
2007-05-10 12:10:20 +02:00
Stefan Dösinger
81504d6a2d
wined3d: Support bump environment mapping using GL_NV_texture_shader.
2007-05-10 11:40:27 +02:00
Stefan Dösinger
d93e161b1f
d3d: Move clippers from DDraw to wined3d.
2007-05-08 18:27:44 +02:00
H. Verbeet
5d00923017
wined3d: Remove some redundant fields from IWineD3DBaseTextureImpl.
2007-05-04 13:41:45 +02:00
H. Verbeet
d9b7369255
wined3d: Flip the coordinate system rather than the coordinates itself for onscreen surfaces in stretch_rect_fbo.
2007-05-04 13:40:28 +02:00
Stefan Dösinger
adb9b13b81
wined3d: Implement vertex blending using GL_ARB_vertex_blend.
2007-05-03 14:24:46 +02:00
Stefan Dösinger
61d1abb1c1
wined3d: Do not allocate surfaces unless needed.
2007-04-26 14:51:56 +02:00
H. Verbeet
b643ab3620
wined3d: Output pretty GL errors in checkGLcall and vcheckGLcall.
2007-04-24 10:19:51 +02:00
Fabian Bieler
e28630bc32
wined3d: Remove usesFog flag from IWineD3DVertexShaderImpl.
2007-04-23 13:55:45 +02:00
H. Verbeet
1b9a5ba682
wined3d: Add a function to determine if a surface is the front or the backbuffer for a swapchain, and return the corresponding GLenum.
2007-04-17 11:12:34 +02:00
H. Verbeet
c4cc10a595
wined3d: Add a function for dumping FBO status codes.
2007-04-17 11:11:31 +02:00
Stefan Dösinger
725057da47
d3d: Remove dependency on ddraw.h header.
2007-04-16 13:20:15 +02:00
H. Verbeet
a79654d339
wined3d: Fix some swizzles on scalars.
2007-04-13 12:56:06 +02:00
H. Verbeet
75e91fa409
wined3d: Use the framebuffer blit extension to implement StretchRect.
2007-04-09 12:40:52 +02:00
H. Verbeet
75108443ff
wined3d: Add a function to dump WINED3DTEXTUREFILTERTYPE values.
2007-04-09 12:39:35 +02:00
H. Verbeet
c9b178b594
wined3d: Fixup FBO depth attachments when the depth attachment is larger than the render target.
2007-04-09 12:39:23 +02:00
H. Verbeet
3d4e054b55
wined3d: Handle FBO attachments slightly more efficiently.
2007-04-09 12:38:53 +02:00
Stefan Dösinger
290f2eb146
wined3d: Add Filtering to IWineD3DSurface::Blt and handle it.
...
This is to allow StretchRect to pass the texture filter to WineD3D.
DirectDraw sets the texture filter to WINED3DTEXF_NONE, simmilar to all
other functions which do not need filtering.
2007-04-07 10:58:10 +02:00
Stefan Dösinger
4f5d33311b
wined3d: Use GL_APPLE_client_storage if available.
2007-04-02 11:34:12 +02:00
Stefan Dösinger
bee084503b
wined3d: Implement bem shader instruction.
2007-03-27 12:30:38 +02: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
9789f993ce
wined3d: Remove some old stuff.
2007-03-19 12:18:20 +01:00
Andrew Talbot
2f5f3825c6
wined3d: Replace inline static with static inline.
2007-03-17 20:04:46 +01:00
Erich Hoover
9795e6839f
wined3d: Allow SetCursorProperties on existing cursor.
2007-03-14 13:14:08 +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
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
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
Stefan Dösinger
76b60b0516
wined3d: Support event queries using GL_NV_fence.
2007-03-01 11:40:14 +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
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
Francois Gouget
93494f2ac0
Assorted spelling fixes.
2007-02-20 20:30:51 +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
7676462a3d
wined3d: Fix d3d8/9 style palettes.
2007-02-20 11:46:20 +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
a4bc52a89c
wined3d: Fix WINED3DPRESENT_PARAMETERS and use it instead of D3DPRESENT_PARAMETERS.
2007-02-16 12:31:03 +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