Commit Graph

559 Commits

Author SHA1 Message Date
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