Commit Graph

461 Commits

Author SHA1 Message Date
Roderick Colenbrander b4678b7b10 wined3d: Optimize P8 fragment shader. 2007-10-15 11:10:26 +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
Roderick Colenbrander 5749dd4051 wined3d: Fix inverse palette lookup for P8 surfaces.
The previous method didn't take into account duplicate entries for the same color.
2007-10-12 11:07:07 +02:00
Roderick Colenbrander 8e64d870b1 wined3d: Merge p8 palette initialization code. 2007-10-10 11:59:51 +02:00
Francois Gouget b2bc712323 Assorted spelling fixes. 2007-09-27 20:12:53 +02:00
Stefan Dösinger 10f25e0104 wined3d: Add signed format conversion for glsl. 2007-09-24 13:29:54 +02:00
Stefan Dösinger e94a21b270 wined3d: Fix a typo in the surface code. 2007-09-20 15:53:28 +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 3f0ea3d082 wined3d: Move lastActiveRenderTarget cleanup to the device. 2007-09-18 09:54:23 +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 e324da1494 wined3d: Remove a pbo check. 2007-09-18 09:53:50 +02:00
Stefan Dösinger 511f9dfb2d wined3d: Clean up SetMem. 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 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
Michael Stefaniuc a5fdea0e6a janitorial: Remove two fresh redundant NULL checks before HeapFree(). Found by Smatch. 2007-09-17 13:47:49 +02:00
Roderick Colenbrander 2374c456bc wined3d: Add pbo support for compressed textures. 2007-09-17 12:10:40 +02:00
Roderick Colenbrander f9002c2628 wined3d: Don't create a pbo for system memory surfaces. 2007-09-17 12:10:21 +02:00
Stefan Dösinger 3961491d15 wined3d: Do not invalidate the sysmem copy if a pbo exists. 2007-09-17 12:08:54 +02:00
Stefan Dösinger f42f228621 wined3d: Do not allocate memory if there's a pbo. 2007-09-17 12:08:47 +02:00
Roderick Colenbrander ad692f2a83 wined3d: Add PBO support for dynamically locked surfaces. 2007-09-13 11:00:47 +02:00
Stefan Dösinger 0ed81b20af wined3d: Emulate D3DFMT_L6V5U5. 2007-09-12 12:09:56 +02:00
Roderick Colenbrander 12e942b135 wined3d: Move the memory code of LockRect to the end of the function.
This is needed for PBOs because for those memory allocation works differently.
2007-09-12 11:20:35 +02:00
Stefan Dösinger 41bf0d48db wined3d: Fix WINED3DFMT_X8L8V8U8. 2007-09-11 13:48:15 +02:00
Roderick Colenbrander 63c06b4b38 wined3d: Fix ddraw-opengl surface free bug. 2007-09-10 16:47:49 +02:00
Stefan Dösinger bb213f67a3 wined3d: Take the format into account when finding the clear value. 2007-08-31 11:25:46 +02:00
Francois Gouget a116879507 Assorted spelling fixes. 2007-08-30 12:26:02 +02:00
Stefan Dösinger a489aa488b wined3d: Accept rendering to sublevels with backbuffer orm. 2007-08-30 11:57:18 +02:00
Stefan Dösinger 3b822b80fe wined3d: Reject opengl accelerated blits with system memory surfaces. 2007-08-30 11:57:18 +02:00
Stefan Dösinger 0d749e8e26 wined3d: Clear unused channels on R32F and R16F textures on readback. 2007-08-30 11:57:18 +02:00
Stefan Dösinger 50c101135c wined3d: Refuse to ReleaseDC the wrong DC. 2007-08-23 13:34:00 +02:00
Stefan Dösinger ea283d3cba wined3d: Refuse to lock locked surfaces. 2007-08-23 13:33:40 +02:00
Roderick Colenbrander 3c08b23024 wined3d: Fix a null pointer dereference. 2007-08-21 21:38:57 +02:00
Stefan Dösinger 86b991c851 wined3d: Fix R32F and R16F. 2007-08-17 12:01:38 +02:00
Stefan Dösinger 028729d102 wined3d: Fix WINED3DFMT_A4L4. 2007-08-16 11:35:06 +02:00
Roderick Colenbrander e77da5ef8a wined3d: Don't call ActivateContext between ENTER_GL/LEAVE_GL. 2007-08-07 12:36:32 +02:00
H. Verbeet cfb07e7114 wined3d: Set SFLAG_INSYSMEM when WINED3DLOCK_DISCARD is passed to IWineD3DSurfaceImpl_LockRect. 2007-08-02 12:18:41 +02:00
Alexandre Julliard af4b9bb85c wined3d: Fix compiler warning. 2007-07-30 14:14:01 +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
Stefan Dösinger 59efd5c7ec wined3d: Set the pow2 sizes in gl surface private setup. 2007-07-26 11:48:36 +02:00
Michael Stefaniuc 25707d4c5d wined3d: Remove a return after a return. Found by Smatch. 2007-07-25 13:02:39 +02:00
Stefan Dösinger 9ba3f389f6 wined3d: Initialize surfaces at creation. 2007-07-10 13:30:31 +02:00
Michael Stefaniuc 0326da9dd5 wined3d: Remove superfluous casts of void pointers to other pointer types. 2007-06-27 12:53:37 +02:00
Stefan Dösinger fb269f9210 wined3d: Depthfill blits are allowed between BeginScene and Endscene. 2007-06-22 13:42:51 +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
Stefan Dösinger ef65b233c0 wined3d: Some render target->texture blit context handling. 2007-06-11 13:56:47 +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
Francois Gouget 96c337f0a1 Assorted spelling fixes. 2007-06-07 19:24:32 +02:00
Phil Costin e7578dca36 wined3d: Add support for loading gamma corrected textures. 2007-06-07 13:01:49 +02:00
Lei Zhang f00670df61 wined3d: Various spelling fixes. 2007-06-06 13:40:01 +02:00
Chris Robinson 1e64bb93a4 wined3d: Add a few missing checkGLcall calls. 2007-06-05 12:19:10 +02:00
Kolbjoern Fredheim cb8a8182d1 wined3d: Implemented converting X1R5G5B5 format to R5G5B5A1 to emulate color-keying. 2007-05-22 12:26:49 +02:00
Stefan Dösinger 093261b729 wined3d: Only addref clippers if one exists. 2007-05-11 11:26:40 +02:00
Stefan Dösinger a90f650fd2 wined3d: Implement DDBLT_DEPTHFILL on the active depth stencil target. 2007-05-11 11:25:41 +02:00
Stefan Dösinger e7b68eec34 ddraw: Use point filter for blit operations.
D3DTEXF_NONE is a special value for mipmapping which disabled
mipmapping, but it is not a valid mag / min filter parameter.
D3DTEXF_POINT is what we want
2007-05-11 11:21:29 +02:00
Francois Gouget f999a9e433 wined3d: Add a missing '\n' to a trace. 2007-05-11 11:20:34 +02:00
Stefan Dösinger c9bc4ee760 wined3d: Handle DDPCAPS_ALPHA. 2007-05-08 18:28:38 +02:00
Stefan Dösinger 0fb41a8845 wined3d: Make the blit -> flip work for windowed rendering. 2007-05-08 18:28:08 +02:00
Stefan Dösinger d93e161b1f d3d: Move clippers from DDraw to wined3d. 2007-05-08 18:27:44 +02:00
H. Verbeet 7b48db196f d3d: Fix the surface locking rectangle validation. 2007-05-04 13:41:13 +02:00
Stefan Dösinger 61d1abb1c1 wined3d: Do not allocate surfaces unless needed. 2007-04-26 14:51:56 +02:00
H. Verbeet 5fddfd5bbc wined3d: Use surface_get_gl_buffer where appropriate. 2007-04-17 11:12:43 +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
Stefan Dösinger 725057da47 d3d: Remove dependency on ddraw.h header. 2007-04-16 13:20:15 +02:00
H. Verbeet 2423c9f003 wined3d: Dirtify the sampler used by IWineD3DSurface_PreLoad in IWineD3DSurfaceImpl_BltOverride. 2007-04-10 21:39:43 +02:00
H. Verbeet 75e91fa409 wined3d: Use the framebuffer blit extension to implement StretchRect. 2007-04-09 12:40:52 +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
Felix Nawothnig e600f7d082 wined3d: Issue an error when the render target is read back without SFLAG_INDRAWABLE being set. 2007-04-09 12:17:17 +02:00
Felix Nawothnig c0782603d0 wined3d: Allow np2 textures to be loaded for SFLAG_INDRAWABLE. 2007-04-09 12:15:56 +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 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 ede01abee2 wined3d: Support GL_ATI_envmap_bumpmap for D3DFMT_V8U8. 2007-03-21 22:50:41 +01:00
Stefan Dösinger fcb83e7111 wined3d: Activate a context before doing opengl calls. 2007-03-19 12:22:57 +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 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
Stefan Huehner 4d1d01f266 Mark several functions as static. 2007-03-13 13:35:12 +01:00
Fabian Bieler 8dae597f24 wined3d: Implemented signed texture formats via NV_TEXTURE_SHADER. 2007-03-13 11:51:56 +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
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 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 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 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
Francois Gouget 93494f2ac0 Assorted spelling fixes. 2007-02-20 20:30:51 +01:00
Stefan Dösinger 7676462a3d wined3d: Fix d3d8/9 style palettes. 2007-02-20 11:46:20 +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 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
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
Stefan Dösinger 1282b43302 wined3d: Restore blitting environment after modifying it. 2007-02-15 11:41:05 +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 b90a665d20 wined3d: Do not allocate compressed surfaces with glTexImage2D. 2007-02-14 12:29:42 +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 12252d0589 wined3d: Use the context manager to select the primary render target. 2007-02-13 12:05:35 +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 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
Stefan Dösinger 67b1f4a7e9 wined3d: BeginScene and EndScene tests and fixes. 2007-02-12 12:08:34 +01:00
Stefan Dösinger 03389acc30 wined3d: Do not free regularily locked surfaces. 2007-01-15 12:43:29 +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 d0f1c23c93 wined3d: Select a proper texture unit in LockRect and dirtify the state. 2007-01-03 11:20:06 +01:00
Stefan Dösinger e26e3ee5f3 wined3d: Remove d3ddevice_set_ortho. 2007-01-03 11:19:55 +01:00
Stefan Dösinger 82bd0790ed wined3d: Move the projection matrix into its own state. 2007-01-03 11:19:45 +01:00
Stefan Dösinger 5fa0f7f775 wined3d: Move the world matrix to the state table. 2007-01-03 11:19:09 +01:00
Alexandre Julliard 656fc93815 Use GetDC instead of CreateDC where possible. 2007-01-02 17:16:36 +01:00
Stefan Dösinger 603038a07a wined3d: Do not setup states for unlocking if unlocking is disabled. 2006-12-29 12:49:41 +01:00
Stefan Dösinger 666b507766 wined3d: Move samplers to the state table. 2006-12-20 17:07:56 +01:00
H. Verbeet 8355b1a501 wined3d: Allow the device to store multiple render targets. 2006-12-20 12:31:40 +01:00
Markus Amsler 9b397ec2d5 wined3d: Remove IWineD3DSurface_GetContainerParent. 2006-12-18 12:02:17 +01:00
Vitaliy Margolen 81c7c00bb2 wined3d/d3d9: Pitch for DXTn textures can not be 0. With tests. 2006-12-04 12:38:16 +01:00
Markus Amsler c40501db50 Revert "d3d: Remove AddRef from IWineD3DDevice_GetSwapChain.".
This reverts commit f84f687e6d.
2006-11-30 16:03:59 +01:00
Markus Amsler f84f687e6d d3d: Remove AddRef from IWineD3DDevice_GetSwapChain. 2006-11-22 11:40:50 +01:00
Markus Amsler fc179532f4 wined3d: Fix regression in surface conversion. 2006-11-08 11:25:27 +01:00
Francois Gouget 30e44c85c8 Assorted spelling fixes. 2006-11-07 15:25:24 +01:00
Markus Amsler 5ec0ce5b38 wined3d: Use width while converting surfaces.
This fixes also a heap corruption with 1x1 and 2x2 surfaces.
2006-11-07 15:06:16 +01:00
Markus Amsler 5864d18c96 wined3d: Use SURFACE_ALIGNMENT. 2006-11-07 15:06:02 +01:00
Ivan Gyurdiev b1df1d8320 wined3d: Add D3DCLEAR codes to the WINED3D namespace. 2006-10-31 12:09:46 +01:00
Ivan Gyurdiev 5f79e80827 wined3d: Add D3DZBUFFERTYPE to the WINED3D namespace. 2006-10-24 20:06:45 +02:00
Karsten Elfenbein 1635da4b46 wined3d: BltOverride: Make sure that the content of the source rect is
copied to the correct position in the destination rect.
2006-10-20 10:18:59 +02:00
Ivan Gyurdiev 9628a1b2e2 wined3d: Merge D3DRECT types into one type in WINED3D namespace. 2006-10-12 12:37:08 +02:00
Ivan Gyurdiev b1a4bd87a9 wined3d: D3DRENDERSTATETYPE: Consistently use in the WINED3D namespace. 2006-10-12 12:33:24 +02:00
Ivan Gyurdiev fb0c932f21 wined3d: D3DFORMAT: Consistently use WINED3D namespace. 2006-10-11 12:17:21 +02:00
Christopher GAUTIER 331679bcc9 wined3d: Disable GL_REGISTER_COMBINERS_NV (if supported) in IWineD3DSurfaceImpl_BltOverride. 2006-10-06 15:24:08 +02:00
Stefan Dösinger d45c16ba98 wined3d: Define the surface alignment in the header. 2006-10-06 12:53:24 +02:00
Stefan Dösinger 90f097f835 wined3d: Honor the pitch in a few more places. 2006-10-06 12:53:24 +02:00
Stefan Dösinger 49deec6139 wined3d: No color keying on surfaces with an alpha channel. 2006-10-06 12:53:24 +02:00
Stefan Dösinger 3529560cd7 wined3d: Add WINED3DUSAGE_OVERLAY. 2006-10-06 12:53:24 +02:00
Stefan Dösinger 2bcacf22d3 wined3d: Add IWineD3DSurface::UpdateOverlay. 2006-10-06 12:53:24 +02:00
Stefan Dösinger 080e4f56cf wined3d: Add UpdatOverlayZOrder. 2006-10-06 12:53:24 +02:00
Stefan Dösinger f6647486cf wined3d: Add IWineD3DSurface::GetOverlayPosition. 2006-10-06 12:53:24 +02:00
Stefan Dösinger 0f3995d21a wined3d: Add IWineD3DSurface::SetOverlayPosition. 2006-10-06 12:53:24 +02:00
Stefan Dösinger 67436f9dbd wined3d: Correctly name a variable. 2006-10-06 12:32:29 +02:00
Ivan Gyurdiev 3dcd3681f3 wined3d: Win64 printf fixes. 2006-10-02 14:38:04 +02:00
Francois Gouget 222c167969 Assorted spelling fixes. 2006-09-29 16:28:30 +02:00
Stefan Dösinger 9cafbd6de0 wined3d: Surface data is 32 bit aligned. 2006-09-25 18:31:26 +02:00
H. Verbeet 87fe835f5b wined3d: Cleanup the surface loading code a bit.
- Separate allocation and uploading of textures.
- Move common code for allocating, uploading and downloading textures
  into separate functions.
- Set the correct format and type for DXT textures.
2006-09-12 10:52:59 +02:00
Stefan Dösinger 252a0a76d4 wined3d: Properly initialize a variable. 2006-08-28 11:37:11 +02:00
Christian Costa f50bb771c9 wined3d: Make sure b_info structure is properly allocated and released. 2006-08-17 11:20:33 +02:00
Roderick Colenbrander 2628627e79 wined3d: Surface pitch fix. 2006-08-10 10:54:59 +02:00
Francois Gouget ce9b4baad8 Assorted spelling fixes. 2006-08-07 13:52:55 +02:00
Roderick Colenbrander a7c2ab3e90 wined3d: Surface pitch fix. 2006-08-04 11:59:00 +02:00
Roderick Colenbrander c0c525d458 wined3d: Paletted texture support. 2006-08-03 18:20:37 +02:00
Chris Robinson 13557abb7f wined3d: Fix potential NULL dereference in IWineD3DSurfaceImpl_LockRect. 2006-07-31 17:20:15 +02:00
H. Verbeet 56395ca5f3 wined3d: Use GL_LIMITS(samplers) instead of GL_LIMITS(sampler_stages) in IWineD3DSurfaceImpl_UnlockRect. 2006-07-31 10:52:55 +02:00
Jason Green d353ab7879 wined3d: Start checking for D3DUSAGE_QUERY_* items, improve traces. 2006-07-29 11:49:51 +02:00
Roderick Colenbrander dc743d82ff wined3d: Optimize d3dfmt_convert_surface. 2006-07-29 11:49:03 +02:00
Roderick Colenbrander 6d16eff9a6 wined3d: Render target texturing. 2006-07-28 14:01:07 +02:00
Stefan Dösinger 0fbc1fc0df wined3d: Avoid a false ERR. 2006-07-28 12:28:19 +02:00
Roderick Colenbrander 3127d6401a wined3d: BltFast/BltOverride color keying. 2006-07-27 12:02:16 +02:00
Stefan Dösinger 3b10a021db wined3d: More efficient color keying dirtifying.
Instead of blindly dirtifying the surface LoadTexture keeps track of
the color key that was used when creating the opengl texture and
reloads the surface if the color key has changed.
2006-07-26 15:21:00 +02:00
Stefan Dösinger 06106e2810 ddraw: Support using an application-provided surface pointer. 2006-07-26 15:17:59 +02:00
Stefan Dösinger a98ccb543d wined3d: Draw the cursor. 2006-07-24 13:27:15 +02:00
Stefan Dösinger a64febd3d1 wined3d: Reactivate the X bits fixup. 2006-07-24 12:57:33 +02:00
Stefan Dösinger 9a9a14d4f5 wined3d: Disable the fog before writing the back buffer data. 2006-07-18 11:24:08 +02:00
Stefan Dösinger 739d565c59 wined3d: Add a setting for the render target locking method. 2006-07-18 11:22:51 +02:00
Stefan Dösinger f8ca32b3fb wined3d: Break the glDrawPixels call out of UnlockRect. 2006-07-18 11:22:09 +02:00
Christian Costa 2dc451e181 wined3d: Readd missing copyright to shaders files. 2006-07-18 11:10:34 +02:00
Stefan Dösinger ecbb53a723 wined3d: Break out the frame buffer readback of LockRect, implement palettized readback. 2006-07-17 15:05:38 +02:00
Stefan Dösinger 5702a310e9 wined3d: Allocate 4 extra bytes in the dib section. 2006-07-17 13:51:12 +02:00
Christian Costa 494841d3e5 wined3d: Only copy memory corresponding to the dib section instead of the power of 2 surface. 2006-07-14 13:32:40 +02:00
Stefan Dösinger 1a82976908 wined3d: Flip WINED3DFMT_R8G8B8 to GL_RGB. 2006-07-06 12:45:27 +02:00
Stefan Dösinger 77448f588b wined3d: Perform sanity checks on the rectangle in LockRect. 2006-06-30 20:44:27 +02:00
Stefan Dösinger e18b89aca7 wined3d: Fix single buffering.
Tell gl to draw to the back buffer when a back buffer is used, do not
use the value from gl.
2006-06-26 13:03:56 +02:00
Stefan Dösinger 495e46197a ddraw/wined3d: IDirectDrawSurface7::SetSurfaceDesc corrections. 2006-06-26 12:38:55 +02:00
Stefan Dösinger 3518747165 wined3d: Pixel format cleanup. 2006-06-21 12:15:50 +02:00
Stefan Dösinger 3862f8e3d7 wined3d: Support more than one back buffer. 2006-06-15 16:51:41 +02:00
Alexandre Julliard e9cbc66e93 wined3d: Make the virtual table functions static where possible. 2006-06-10 13:15:32 +02:00
H. Verbeet 26978a4d2d wined3d: Return the result of QueryInterface in GetContainer. 2006-06-07 11:48:00 +02:00
Stefan Dösinger 2c3adec595 wined3d: Render target locking fixes. 2006-06-05 20:59:41 +02:00
Stefan Dösinger 34a959c6eb wined3d: Implement IWineD3DSurface::BltFast. 2006-05-26 20:29:48 +02:00
Stefan Dösinger 0ce3cb2379 wined3d: Disable the depth test in UnlockRect 2006-05-26 20:14:38 +02:00
Roderick Colenbrander 54e5f9c465 wined3d: Dynamicly load GL_ARB_multitexture functions. 2006-05-25 20:17:32 +02:00
Stefan Dösinger 5b8b776431 wined3d: Small rhw vertex fix.
Fix the one pixel displacement and move the glOrtho code in a common
function.
2006-05-25 20:09:57 +02:00
Alexandre Julliard e8d4c2e674 wined3d: Fixed a compiler warning. 2006-05-25 11:09:46 +02:00
Stefan Dösinger 40d3cc5ee4 wined3d: Turn around the image in LockRect. 2006-05-25 10:35:58 +02:00
Stefan Dösinger 89ca7fffd4 wined3d: Remove an unnecessary NULL check. 2006-05-24 10:03:28 +02:00
Jonathan Ernst 360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Stefan Dösinger 158691ea3b wined3d: OpengGL accelerated blits.
Implement some basic opengl accelerated blts from and to render
targets. It's not perfect yet, but enought to make some D3D apps
happy. For now the only supported operations are:

- Full screen back -> Front buffer: Just call present
- Offscreen surface -> render target
- Render target -> offscreen surface(slow)
- render target colorfill
2006-05-23 12:41:31 +02:00
Stefan Dösinger 9d75802a21 wined3d: Surface pixel format conversion code. 2006-05-23 12:37:27 +02:00
Stefan Dösinger cfcdb6515b wined3d: Sort of oversized surface support. 2006-05-20 14:06:09 +02:00
Stefan Dösinger ebcbda72c4 wined3d: Allow SYSTEMMEM textures and surfaces. 2006-05-20 14:05:23 +02:00
Stefan Dösinger f7d89201c1 wined3d: Unset the ddraw primary when it is released. 2006-05-16 12:42:12 +02:00
Francois Gouget e739ba9551 Assorted spelling fixes. 2006-05-15 15:05:05 +02:00
Stefan Dösinger eaec7793d5 wined3d: Avoid a NULL dereference in RealizePalette. 2006-05-15 14:03:06 +02:00
Stefan Dösinger 8af7dd5dea wined3d: Nonpow2 repacking support for GetDC. 2006-05-15 14:02:37 +02:00
Stefan Dösinger 7e12e2ac5b wined3d: Update the DIB section's palette on GetDC. 2006-05-10 11:23:22 +02:00
Stefan Dösinger 275a0c2f2d wined3d: Implement WineD3DSurface palette methods. 2006-05-10 11:22:20 +02:00
Stefan Dösinger f8e8646fcc wined3d: Implement GetFlipStatus and GetBltStatus. 2006-05-10 11:22:01 +02:00
Stefan Dösinger cd05f9c10c wined3d: Implement IWineD3DSurface::Flip. 2006-05-10 11:21:38 +02:00
Stefan Dösinger 9b29fb6860 wined3d: Implement IWineD3DSurface::SetColorKey. 2006-05-09 20:46:59 +02:00
Stefan Dösinger 08dc9e003d wined3d: Implement IWineD3DSurface::IsLost and Restore. 2006-05-09 20:45:39 +02:00
Stefan Dösinger af462957c3 wined3d: Implement IWineD3DSurface::GetDC and IWineD3DSurface::ReleaseDC. 2006-05-08 20:58:27 +02:00
Stefan Dösinger 18e95ee969 wined3d: Add IWineD3DSurface::GetPitch. 2006-05-08 14:52:18 +02:00
Stefan Dösinger 1cfbc903d5 wined3d: Add some surface flags. 2006-05-08 14:50:58 +02:00
Ivan Gyurdiev 07f4f70487 wined3d: QueryInterface corrections. 2006-05-05 20:23:41 +02:00
Stefan Dösinger 42b9221f51 wined3d: Add the remaining DirectDraw methods to WineD3DSurface. 2006-04-18 11:14:13 +02:00
Stefan Dösinger ffc8e46e76 wined3d: Add IWineD3DSurface::Blt. 2006-04-17 11:19:30 +02:00
Stefan Dösinger cf27031329 wined3d: Add IWineD3DSurface::Flip. 2006-04-13 11:23:03 +02:00
Jason Green 3f591ecb13 wined3d: Add some more debugging info.
Adds more debugging FIXME's if a specific WINED3DFMT_??? isn't supported.
2006-04-10 16:32:30 +02:00
Stefan Dösinger 9d67b4287e wined3d: Rename return values from D3D* to WINED3D*. 2006-04-07 14:54:04 +02:00
Stefan Dösinger bbe490abcc wined3d: Add WINED3DLOCKED_RECT to wined3d_types.h. 2006-04-06 22:23:31 +02:00
Stefan Dösinger d75fd75d48 wined3d: Add WINED3DPOOL to wined3d_types.h. 2006-03-28 17:34:42 +02:00
Stefan Dösinger 913df5b143 wined3d: Consistently use WINED3DRESOURCETYPE. 2006-03-10 21:43:00 +01:00
Stefan Dösinger 851bdfb5e0 wined3d: Add D3DLOCK_* types to wined3d_types.h. 2006-03-08 11:33:35 +01:00
Stefan Dösinger 270afeb5e8 wined3d: Define D3D usage flags in wined3d_types.h. 2006-03-07 10:53:02 +01:00
Stefan Dösinger 2f0c781988 wined3d: Add device caps to wined3d_types.h. 2006-03-07 10:51:34 +01:00
H. Verbeet f7356a34c3 wined3d: Fix the relation between surfaces and their container. 2006-03-06 20:08:22 +01:00
H. Verbeet fd2739b023 wined3d: Don't call glCompressedTexImage2DARB without allocatedMemory.
Don't call glCompressedTexImage2DARB if we haven't got allocatedMemory (yet).
Fix a small typo.
2006-03-06 20:01:05 +01:00
H. Verbeet 7d97f29c24 wined3d: Don't use GetDevice in IWineD3DSurfaceImpl_GetContainer, as
it adds a reference to the device that shouldn't be there.
2006-02-27 12:20:09 +01:00
Stefan Dösinger 46e8d67787 wined3d: Update the glOrtho between 2 rhw draws if the viewport was changed. 2006-02-13 13:25:21 +01:00
H. Verbeet 7a4b59b0c2 wined3d: Don't keep a reference to the container, as it creates a
circular reference.
2006-02-13 13:23:58 +01:00
H. Verbeet bac34c35aa wined3d: Release the container during surface / volume cleanup. 2006-02-10 14:52:20 +01:00
H. Verbeet 2200f3e2ca wined3d/d3d9: Cleanup GetContainer for surfaces. 2006-02-07 12:25:59 +01:00
Roderick Colenbrander 694efd7c6f wined3d: Texture fixes.
Set video memory capabilities, add some checks to SetTexture and
update some comments.
2006-02-06 20:57:42 +01:00
H. Verbeet bd8db45e44 wined3d: Update the QueryInterface functions of IWineD3DBase subclasses. 2006-02-06 11:32:41 +01:00
H. Verbeet e43cfb1a68 wined3d: Fix SetContainer.
Add/Release references to the container.
Change the type of the container from IUnknown to IWineD3DBase.
2006-02-06 11:30:48 +01:00
Raphael Junqueira ee5d72b136 wined3d: Added support for WINED3DFMT_X4R4G4B4. 2005-12-31 13:13:34 +01:00
Francois Gouget 5127dc9f49 Assorted spelling fixes. 2005-12-02 16:15:09 +01:00
Francois Gouget 6d442aeb34 Assorted spelling fixes. 2005-11-23 20:14:43 +01:00
Francois Gouget 0edbaf7e80 Remove spaces before '\n' in traces. 2005-11-10 12:14:56 +00:00
Francois Gouget f4c0524ec6 Assorted spelling and case fixes. 2005-11-10 11:39:07 +00:00
Oliver Stieber d6fcc69ddb Implement D3DFMT_UNKNOWN surfaces, this seems to be used a lot in d3d8
but I haven't found any d3d9 application that uses D3DFMT_UNKNOWN
surfaces yet.
2005-11-02 20:01:54 +00:00
Oliver Stieber effc262f9f Added support for backbuffer with the formats A1R5G5B5 and X1R5G5B5. 2005-09-29 10:31:43 +00:00
Oliver Stieber c99a3fafef Change the format of surface_SaveSnapshot to TGA from PPM and add
support for compressed textures and an alpha channel.
2005-09-27 10:49:59 +00:00
Oliver Stieber 2b8a7dca38 Correct a problem with locking nonpower 2 back and front buffers. 2005-09-27 09:32:29 +00:00
Oliver Stieber 9e6957bbdc Optionally repack nonpower 2 textures to the expected span length when
a textures is locked. This is necessary for buggy games like Warhammer
40k that don't work with the odd span sizes produce by default
nonpower 2 support.
2005-09-23 11:08:03 +00:00
Karsten Elfenbein 13fc2f88d6 Added A2R10G10B10 and D3DFMT_D24FS8 modes to all other functions. 2005-09-07 09:25:26 +00:00
Oliver Stieber 33b2c1fd3c Added support for DXT2 and DXT4. 2005-08-29 12:20:02 +00:00
Oliver Stieber 6b91f5b31c Set the apha channel to opaque when locking X8R8G8B8 backbuffers. 2005-08-03 21:17:08 +00:00
Mike McCormack c6602b406b Signed warning fixes. 2005-07-28 18:33:26 +00:00
Oliver Stieber 52b5842f70 Remove a load of IWineD3DSurface * casts that are no longer required. 2005-07-26 18:56:18 +00:00
Francois Gouget bd19d67ad1 Assorted spelling fixes. 2005-07-22 09:06:03 +00:00
Oliver Stieber 9253e0e39c Tidy up some comments and formatting. 2005-07-13 14:15:54 +00:00
Oliver Stieber 6a032491d3 Added basic memory management and tracking to wined3d. 2005-07-13 11:34:55 +00:00
Oliver Stieber 9f7e794ca6 Implement UpdateTexture and UpdateSurface in wined3d.
Allow NULL members of WINED3DSURFACE_DESC to be set to Surface_GetDesc
so that the whole structure doesn't have to be filled just to get back
one value.
2005-07-12 17:02:47 +00:00
Oliver Stieber 13621056db Move parameters relating to opengl on the surface structure on to a
glDesciption member.
Removed Level and Target from LoadTexture, and reduced the dependency
on surface->device.
Fixed a couple of compiler warnings in d3d9.
2005-07-11 20:38:27 +00:00
Oliver Stieber 520c2f0870 Implemented basic non-power 2 texture in wined3d.
Also fixed a typo in drawprim that was causing vertex declarations to
crash.
2005-07-11 14:25:54 +00:00
Francois Gouget 28dc5a8afc Assorted spelling fixes. 2005-07-11 10:59:41 +00:00