Commit Graph

179 Commits

Author SHA1 Message Date
Raphael Junqueira 89ec35fe43 - minor COM fixes (fixes some crashes on stupid games)
- minor indentation changes
- fix SELECTARG2 behavior (with help from Lionel Ulmer)
- surface locking/unlocking (only rendering and textures surfaces
  supported now)
- beginning of Target/Front surface support
- try to get D3DTOP_SELECTARG_* working
- implemented D3DTOP_SUBTRACT: currently only if OpenGL1.3 is used, we
  have to use GL_SUBTRACT_ARB for other versions
2003-05-11 03:35:27 +00:00
Raphael Junqueira 18af8d8611 - Disable some 'classic' debug traces (avoid useless flood of traces
while debugging games).
- Fix the texture size caps using GL_MAX_TEXTURE_SIZE.
2003-05-08 17:36:00 +00:00
Jason Edmeades 8534f79124 - Move texture loading into PreLoad for 2D textures (needs doing for
the others as well), and call when needed as well.
- Change D3DFMT_R5G6B5 handling to make backdrop of Max Payne appear.
- Add code to reject attempts to use invalid texture units (Max Payne
  did this a lot).
- ValidateDevice fixme silenced as harmless but occurs frequently.
- Add trace which can be compiled in to debug vertex shaders, and
  correct fixmes and dprintf's into appropriate trace statements.
- Ensure we trace what we return when querying the device caps.
- Correct bug with negative numbers in vertex shader code.
2003-05-08 03:49:04 +00:00
Alexandre Julliard 69361e08b9 Moved x11drv.h to dlls/x11drv. 2003-04-22 04:05:08 +00:00
Jason Edmeades 53391ac33f DOT3 isn't there on earlier opengl versions. 2003-04-21 22:37:48 +00:00
Jason Edmeades 4df43cc263 When a game requests fullscreen, make its window the dimensions
requested. Ideally this should be followed by making the screen that
resolution, but this suffices for now.
2003-04-20 02:47:22 +00:00
Jason Edmeades 02f3df3988 Windows never reports 24 bit colours, and some games fail to work
unless in specific modes. Report 16bit colour for 24bit modes.
2003-04-20 02:43:05 +00:00
Jason Edmeades 5abc0654b5 Correct device capabilites including support in previous patch, as
well as making the texture operations capabilities more accurate.
2003-04-19 20:33:23 +00:00
Jason Edmeades 55e85807f8 Add DotProduct3 support if supported by opengl. 2003-04-19 20:30:58 +00:00
Christian Costa 7f1250e5cf Handle creation of a depth/stencil buffer when creating a device.
Implement IDirect3D8DeviceImpl_GetDepthStencilBuffer.
2003-04-17 02:16:07 +00:00
Christian Costa 074d293c85 Increase MaxStreams to 2 in CAPS. 2003-04-13 01:03:05 +00:00
Jason Edmeades 043680c140 Correct some capabilities, and default others to fully supported for
now.
2003-02-01 00:35:36 +00:00
Raphael Junqueira 92155f158f - Defer of IDirect3DVertexShader_SetConstant, waiting for
DrawPrimitive call.
- Beginning of VertexShader constants support into stateblock (only
  stored, not captured yet).
- Fix compiation with nivdia GL/gl.h and mesa Gl/glext headers as
  reported by Andrew John Hughes.
- One glActiveTexture/glActiveTextureARB missing.
2003-01-30 00:18:27 +00:00
Raphael Junqueira 4b0297d894 Some needed cleanups for future dx9 and d3d common layer support:
- stateblocks to IDirect3DStateBlockImpl interface and moving into
    a new file (stateblock.c)
  - shaders to IDirect3D*ShaderImpl interfaces
  - splitting vshader and vshader declaration as in dx9 into 2
    interfaces (for future common layer use)
  - vshader declaration code to a new file (vsaderdeclaration.c)
  - device calls to new interfaces (redirect stubs)
Simple texture fix for a little regression after last Jason's patches.
Some caps code using the GL/glext.h defines (GL_VERSION_*).
2003-01-28 01:12:23 +00:00
Jason Edmeades 5840a1bffc Use device max lights and clipplane support. Also change clipplane to
be affected by view matrix.
2003-01-23 22:38:51 +00:00
Raphael Junqueira 9e43683316 - beginning of vertex matrix blending using extensions (currently
alpha alpha stage as i haven't understand needed extension behavior)
- modify SetRenderState for matrix blending specific params
- by default diffuse color is white ;)
- comments most of the traces (else flood ...)
- add more urls in comments
- indent, cleanups
2003-01-14 23:12:37 +00:00
Raphael Junqueira 72fb7acf8d Beginning of more COM compliant behavior:
- AddRef/Release where needed
- use IUnknown* instead void*
- fix many GetDevice using AddRef
- fix IDirect3DSurface8Impl_GetContainer using QueryInterface
2003-01-14 23:05:39 +00:00
Jason Edmeades bcb05fd43e Add support for some of the texture address states and border colour. 2003-01-14 22:50:00 +00:00
Dimitrie O. Paun 297f3d898d Define NONAMELESS{STRUCT,UNION} explicitly in the files that need them. 2003-01-07 20:36:20 +00:00
Raphael Junqueira 559b10699f - integration with DrawPrimitive
- remove non-esthetic c++ comments into c comments block ;)
- more more debug
- indent, cleanups
- trying to use DIFFUSE and SPECULAR for vertex shader
- many fixes
- integration with Jason's texture patch
2003-01-02 17:59:01 +00:00
Jason Edmeades 13ee7cd154 Query opengl to ensure it supports multitexture, and honour the number
of supported texture units. Especially important for NVidia drivers
which only support 2 texture units.
2002-12-23 01:34:59 +00:00
Raphael Junqueira 1df8f18e46 - some fixes in CreateDevice init
- vertex shader declaration parser (with output dump) and
   interpretation (generate the FVF descriptor for program input)
 - vertex shader program parser (with output dump)
 - software vertex shader program emulation
2002-12-18 05:05:41 +00:00
Raphael Junqueira e31ae92630 - some D3D8 fixes
- beginning of shaders support (Vertex and Pixel Shaders 1.1 on
  DirectX8)
- beginning of D3DX8 support the D3D8 utility API (very basic, only
  the core header)
2002-12-17 01:15:15 +00:00
Jason Edmeades ca6bcdcc99 - Stencil mapping now works (it helps to actually allocate a stencil
buffer).
- Texture mapping corrected if no real texture bound.
- Code now detects which opengl extensions are present - to be
  extended later.
- More debug tracepoints.
2002-11-06 19:56:32 +00:00
Jason Edmeades ec7155b608 - Initialize the texture state information.
- Add dummy textures so texture operations which dont reference the
  texture can work.
- Support 2d and 3d textures properly.
- Reapply the texture state information as textures get set, as opengl
  stores the state along with the bound texture whereas directx uses the
  current state information during the draw stage.
- 3rd attempt to sort out lighting, for programs which dont set normals.
- Temporarily silence some unnecessary fixmes.
2002-10-28 19:00:23 +00:00
Jason Edmeades 99cd0de7d9 Add the basic support for volume textures / volumes (3d textures). 2002-10-21 18:21:59 +00:00
Alexandre Julliard b34fb35b31 Fixed warnings caused by conversion to -DSTRICT. 2002-10-18 23:48:57 +00:00
Jason Edmeades 9240bc3fbe Various fixes, typos corrected and clarifying trace points. 2002-10-07 18:24:28 +00:00
Jason Edmeades 26258ce06a Initial D3D8 implementation. 2002-09-27 22:46:16 +00:00