Commit Graph

696 Commits

Author SHA1 Message Date
Jason Green 806aaa1287 wined3d: Added more declarations to GLSL.
- Declare more variable names for GLSL programs.
- Some of these won't need to be declared eventually, but it doesn't hurt to do it for now.
- Correct output name for pixel shaders (gl_FragColor instead of glFragColor).
2006-06-09 15:14:22 +02:00
Jason Green ca70d13af4 wined3d: Unified float constant register mapping between ARB pixel and vertex shaders.
- Got rid of the separate constant maps.
- Side effect of this is that the map is a bit larger for pixel shaders than it needs to be
2006-06-09 14:36:50 +02:00
Jason Green 0c59ca6448 wined3d: Add the bulk of the GLSL string generation functions.
- Add a new file glsl_shader.c which contains almost every GLSL specific function we'll need
- Move print_glsl_info() into glsl_shader.c
- Move the shader_reg_maps struct info into the private header, and make it part of SHADER_OPCODE_ARG.
- Create a new shared ps/vs register map for float constants (future patch will make ARB programs use this, too)
2006-06-09 13:47:55 +02:00
Jason Green 1f1057fc9b wined3d: Move constant loading out of DrawPrimDrawStrided() and enable
loading float constants for GLSL.

- DrawPrim is just too big of a function.  This separates the passing
  of constants to the shader into new functions.
- Fixes an off-by-one error when loading vertex declaration constants
  (should be <, not <=)
- Adds a function for GLSL loading of constants (aka Uniforms)
- Adds a GLSL program variable to the stateblock and sets it to 0 (a
  future patch will actually create this program)
2006-06-09 13:26:51 +02:00
Ivan Gyurdiev ac46320f57 wined3d: TEXREG2GB is valid on pshaders 1.1. 2006-06-07 15:23:23 +02:00
Ivan Gyurdiev 83a9666f9c wined3d: Fix NULL dereference in generator function. 2006-06-07 15:23:17 +02:00
Ivan Gyurdiev 4d66615bbb wined3d: Fix missing light recording.
Write a light with the default parameters in disabled state if
capturing a missing light.
2006-06-07 15:20:00 +02:00
H. Verbeet 26978a4d2d wined3d: Return the result of QueryInterface in GetContainer. 2006-06-07 11:48:00 +02:00
H. Verbeet 7b8bf46f3f wined3d: Remove a redundant break. 2006-06-07 11:47:54 +02:00
H. Verbeet 85ec834f7a wined3d: Don't hardcode type sizes for shader constants. 2006-06-07 11:47:46 +02:00
Ivan Gyurdiev 5f5969b3c5 wined3d: Remove constant type field in stateblock.
It is wrong to maintain a mapping from a constant index to a type
field, because different constant types do not share an index -
boolean constant 0 is supposed to co-exist with floating point
constant 0, not replace it. Drawprim and other code using the type
array to decide whether to look up a constant in bools, floats, or
ints is wrong - you can't make that decision based on the index.
2006-06-06 11:58:54 +02:00
Ivan Gyurdiev 0909df6711 wined3d: Rename vertex shader constants.
From const%lu to C%lu for consistency (to match pshaders).
2006-06-06 11:50:36 +02:00
Ivan Gyurdiev 79029c1099 wined3d: Add limits for ps_2_x. 2006-06-06 11:50:20 +02:00
Ivan Gyurdiev aec2e3e46d wined3d: Trace improvements. 2006-06-06 11:49:03 +02:00
Ivan Gyurdiev 2c232990ee wined3d: pshader defi has 5 parameters. 2006-06-06 11:48:48 +02:00
Stefan Dösinger 2c3adec595 wined3d: Render target locking fixes. 2006-06-05 20:59:41 +02:00
Stefan Dösinger 5de8cd3bd6 wined3d: Adjust the video mem when dropping the pow2 size in GDISurface. 2006-06-01 11:44:38 +02:00
Vitaliy Margolen 93fd4c12f8 wined3d: Properly destroy texture object if we failed to create its surfaces. 2006-05-30 12:34:26 +02:00
Stefan Dösinger ebcef4a5f6 wined3d: Do not disable GL_BLEND when alpha blending is active. 2006-05-30 12:23:18 +02:00
Stefan Dösinger 21218c8587 wined3d: Release the memory in IWineGDISurface::PrivateSetup before calling GetDC. 2006-05-30 12:23:07 +02:00
Jason Green 473ce80fa2 wined3d: Add ability to generate GLSL shader objects for vertex and pixel shaders. 2006-05-27 11:01:05 +02:00
Jason Green 0161d6b636 wined3d: Final move of the GLSL registry check (hopefully). 2006-05-27 10:57:32 +02:00
Stefan Dösinger 34a959c6eb wined3d: Implement IWineD3DSurface::BltFast. 2006-05-26 20:29:48 +02:00
Stefan Dösinger 9d5849d9bd wined3d: Fix IWineGDISurface::SaveSnapshot. 2006-05-26 20:15:35 +02:00
Stefan Dösinger 0ce3cb2379 wined3d: Disable the depth test in UnlockRect 2006-05-26 20:14:38 +02:00
Jason Green c60f296b70 wined3d: Fix regression introduced by recent multitexture patch. 2006-05-26 20:14:31 +02:00
Jason Green cef19b5769 wined3d: Move the GLSL registry check again. 2006-05-26 11:56:11 +02:00
Phil Costin 163ee76592 wined3d: Shader caps fix - code relocation. 2006-05-25 20:17:45 +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 d5f95961f1 wined3d: Fog fixes. 2006-05-25 10:36:40 +02:00
Stefan Dösinger 40d3cc5ee4 wined3d: Turn around the image in LockRect. 2006-05-25 10:35:58 +02:00
Stefan Dösinger e18c89b3f4 wined3d: Silence the offscreen surface creation fixme. 2006-05-25 10:35:10 +02:00
Stefan Dösinger 93db443319 wined3d: Color keying emulation. 2006-05-25 10:34:53 +02:00
Stefan Dösinger e902cd119f wined3d: Swapchain and back buffer corrections + tests. 2006-05-24 13:56:55 +02:00
Roderick Colenbrander 9c018fd877 wined3d: Fix ARB_imaging abuse. 2006-05-24 10:52:28 +02:00
Alexandre Julliard 63199ca022 wined3d: Fixed a couple of boolean comparisons against TRUE. 2006-05-24 10:46:06 +02:00
Jason Green d204540d1f wined3d: Replaced USING_GLSL define with a new wined3d_settings option based on the registry. 2006-05-24 10:40:35 +02:00
Jason Green a67488a26e wined3d: Add function to print the infolog of a GLSL shader on errors.
With assistance from H. Verbeet.
2006-05-24 10:37:33 +02:00
Stefan Dösinger 29a8dd47a8 wined3d: Remove a double cap flag. 2006-05-24 10:03:34 +02:00
Stefan Dösinger 89ca7fffd4 wined3d: Remove an unnecessary NULL check. 2006-05-24 10:03:28 +02:00
Stefan Dösinger a55da88d0b wined3d: Do not addref a NULL backbuffer in IWineD3DSwapChain::GetBackBuffer. 2006-05-23 17:52:06 +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
Ivan Gyurdiev 7b861b3c03 wined3d: Simplify input/output modifier line handling. 2006-05-22 11:41:23 +02:00
Ivan Gyurdiev cb973648ab wined3d: Clean up register use maps. 2006-05-22 11:40:38 +02:00
Ivan Gyurdiev d59eeb3ee5 wined3d: Allow use of pixel shaders with drawStridedSlow. 2006-05-22 11:40:00 +02:00
Ivan Gyurdiev 438d88e1e8 wined3d: Only run parse_decl_usage on vshader INPUT registers. 2006-05-22 11:38:55 +02:00
Jason Green 4a1375bdd6 wined3d: Simplify generate_base_shader() when checking for USING_GLSL usage. 2006-05-20 17:38:09 +02:00
Jason Green 683e5bfc55 wined3d: Move PARAM C[] program.env[] into baseshader and out of vertex shaders. 2006-05-20 17:37:48 +02:00
Stefan Dösinger cfcdb6515b wined3d: Sort of oversized surface support. 2006-05-20 14:06:09 +02:00
Stefan Dösinger 672fa65334 wined3d: Add more device caps. 2006-05-20 14:05:38 +02:00
Stefan Dösinger ebcbda72c4 wined3d: Allow SYSTEMMEM textures and surfaces. 2006-05-20 14:05:23 +02:00
Stefan Dösinger 566cdcf55c wined3d: Implement IWineD3DDevice::SetDisplayMode. 2006-05-20 14:05:06 +02:00
Phil Costin df3902e6c1 wined3d: Trace output corrections and cleanups. 2006-05-20 13:58:31 +02:00
Phil Costin 1b320431b8 wined3d: Check registry for UseGLSL enabled. 2006-05-18 16:40:32 +02:00
Ivan Gyurdiev 42b89791ff wined3d: Take predication tokens into account.
Each instruction can have a predication token. Account for it in the
trace pass, register count pass, and store it in the SHADER_OPCODE_ARG
structure for generation. MSDN claims the token is at the end of the
instruction, but that's not true - testing a demo, which lets me
manipulate the shader shows the predication token is the first source
token immediately following the destination token.
2006-05-18 10:32:54 +02:00
Ivan Gyurdiev fa62d9d3b4 wined3d: Parameter trace corrections. 2006-05-18 10:32:22 +02:00
Ivan Gyurdiev 3d905baf50 wined3d: SETP takes 3 parameters. 2006-05-18 10:32:08 +02:00
Ivan Gyurdiev c65a86828c wined3d: Use COLOROUT/DEPTHOUT for pixel shaders 2.0+.
As previously mentioned, RASTOUT is invalid on pixel shaders.
On shaders 1.x, r0 is treated as the color output register:
http://www.gamedev.net/columns/hardcore/dxshader3/page2.asp
That's what we currently do in all cases, change it not to do so
for shaders >= 2.0. Support COLOROUT/DEPTHOUT instead.
2006-05-17 10:56:25 +02:00
Ivan Gyurdiev 174734e4a2 wined3d: LRP is not a valid ARBvp code. 2006-05-17 10:56:01 +02:00
Ivan Gyurdiev 8470e54bdf wined3d: Remove detailed traces from map2gl/input_modifiers functions. 2006-05-17 10:55:50 +02:00
Ivan Gyurdiev c05bc5d9c1 wined3d: Write "unrecognized_register" in fallback case for get_register_name(). 2006-05-17 10:55:39 +02:00
Ivan Gyurdiev 746d1b1cd3 wined3d: Modify shader_dump_param() to take into account address token.
Currently we hardcode a0.x, which I think is correct for shaders 1.0.
However, for shaders 2.0, we must look into the address token, and
print the register there. Handle both cases to correct the trace.
2006-05-17 10:55:11 +02:00
Ivan Gyurdiev 03b67e3030 wined3d: Use shader_get_param() in trace pass, reg. count pass, generation pass.
Change the trace pass, the register counting pass, and the hw
generator pass to take into account the new get_params() function. For
hw generation, store the address tokens into the SHADER_OPCODE_ARG
structure, so they're available to generator functions.
2006-05-17 10:54:23 +02:00
Ivan Gyurdiev 404eff792f wined3d: Add shader_get_param() fn, which processes address tokens.
Add a new function to process parameters.
On shaders 1.0, processing parameters amounts to *pToken++.
On shaders 2.0+, we have a relative addressing token to account for.
This function should be used, instead of relying on num_params everywhere.
2006-05-17 10:53:18 +02:00
Ivan Gyurdiev 53d240a3e0 wined3d: Do not rely on num_params to skip unhandled tokens in shaders 2.0. 2006-05-17 10:52:37 +02:00
Ivan Gyurdiev d4dd9869b8 wined3d: Allow multiple output modifiers. 2006-05-17 10:51:47 +02:00
Ivan Gyurdiev c94ecdff61 wined3d: Fix SINCOS parameters.
SINCOS has 4 parameters in shaders 2.0.
It has 2 parameters in shaders 3.0.
It's undefined in shaders 1.0.
2006-05-17 10:50:33 +02:00
Ivan Gyurdiev 6b5d076394 wined3d: DEFI takes 5 parameters.
According the spec and the Painkiller log, DEFI has 5 parameters on
vertex shaders.
2006-05-17 10:50:10 +02:00
Paul Vriens ba438d4f5d wined3d: Correctly define the number of possible parameters. 2006-05-16 12:53:28 +02:00
Stefan Dösinger f7d89201c1 wined3d: Unset the ddraw primary when it is released. 2006-05-16 12:42:12 +02:00
Stefan Dösinger 2a35f769e3 wined3d: Add missing render states to the dumping function. 2006-05-16 12:41:51 +02:00
Stefan Dösinger 7cd41b944b wined3d: Implement IWineD3DDevice::SetFrontBackBuffers. 2006-05-16 12:41:41 +02:00
Ivan Gyurdiev 8b7401c39a wined3d: Shaders: share dump_param function, version functions. 2006-05-15 16:07:31 +02:00
Ivan Gyurdiev 7757d7bc5c wined3d: Fix incorrect sizeof. 2006-05-15 16:04:07 +02:00
Francois Gouget f7c24f37ad Various trace fixes.
Add trailing '\n's to trace calls.
Remove spaces before '\n'.
2006-05-15 15:05:09 +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 34b1482fdc wined3d: Render state additions and fixes. 2006-05-15 14:02:57 +02:00
Stefan Dösinger 8af7dd5dea wined3d: Nonpow2 repacking support for GetDC. 2006-05-15 14:02:37 +02:00
Stefan Dösinger daa6a3d714 wined3d: Support for single buffering. 2006-05-15 14:02:18 +02:00
Stefan Dösinger 2f724834f8 wined3d: Implement IWineGDISurface. 2006-05-15 14:02:03 +02:00
Stefan Dösinger 9abdac6aaa wined3d: Implement IWineD3DDevice::ProcessVertices. 2006-05-15 13:57:17 +02:00
Ivan Gyurdiev b2d96086e5 wined3d: Set pIndexData to 0 in DrawIndexedPrimitiveUP. 2006-05-11 12:11:55 +02:00
Ivan Gyurdiev 257692e087 wined3d: Initialize volume format. 2006-05-11 12:11:42 +02:00
Ivan Gyurdiev c61af3af8d wined3d: Share shader_dump_ins_modifiers().
Share shader_dump_ins_modifiers(), and make vertex shaders use it.
The saturate modifer (_sat) is valid on vs_3_0+, and it isn't being
shown in the trace.
2006-05-11 12:10:59 +02:00
Jason Green e9927d6ffd wined3d: Further split GLSL & ARB_v/f_program generation and allow GLSL functions to be called. 2006-05-10 12:20:39 +02:00
Jason Green 246677ae46 wined3d: Modified the opcode tables (and struct) to include a pointer to a GLSL generator function. 2006-05-10 12:20:08 +02:00
Jason Green 68f75555d3 wined3d: Use GenerateShader in pixel shaders and remove old function. 2006-05-10 12:19:42 +02:00
Jason Green 087c67c459 wined3d: Add GenerateShader function to pixel shaders. 2006-05-10 12:19:19 +02:00
Jason Green 604579ed62 wined3d: Use new GenerateShader function for vertex shaders. 2006-05-10 12:19:01 +02:00
Jason Green 36b0b9cc1c wined3d: Added new GenerateShader function for Vertex Shaders & declare generate_base_shader(). 2006-05-10 12:18:08 +02:00
Jason Green d982954808 wined3d: Created generate_base_shader which will be shared by pixel & vertex shaders. 2006-05-10 12:17:18 +02:00
Jason Green c15447d4b0 wined3d: Rename the TEMP variables in vertexshader.c to R from T for consistency. 2006-05-10 12:17:01 +02:00
Jason Green cc2ea9e08c wined3d: Place # of textures, addresses, & temps used inside the baseShader struct to prepare for GenerateShader merge. 2006-05-10 12:16:22 +02:00
Jason Green 653e71d774 wined3d: Further split up GenerateProgramArbHW for pixelshaders. 2006-05-10 12:16:02 +02:00
Jason Green f015124ae0 wined3d: Move D3DSIO_M#x# vertex shader opcodes to a more standard function. 2006-05-10 12:15:35 +02:00
Jason Green eee6fc9277 wined3d: Move DCL, DEF operations out of Generate loop and into separate functions. 2006-05-10 12:15:12 +02:00
Jason Green 5308e026d1 wined3d: Move program_dump_decl_usage into baseshader. 2006-05-10 12:14:39 +02:00
Michael Stefaniuc a87520036f janitorial: Remove redundant NULL pointer checks before HeapFree'ing them.
Some HeapFree's are hidden behind macros. Found by smatch.
2006-05-10 11:31:41 +02:00
Ivan Gyurdiev 9d4960bfcb wined3d: Clean up some dead code. 2006-05-10 11:29:44 +02:00
Ivan Gyurdiev b187242ab6 wined3d: Break out texture instruction processing. 2006-05-10 11:28:49 +02:00
Ivan Gyurdiev cdfe848b6d wined3d: Break out arithmetic instruction processing. 2006-05-10 11:28:11 +02:00
Ivan Gyurdiev 320e33dcb3 wined3d: Merge register counting pass. 2006-05-10 11:26:01 +02:00
Ivan Gyurdiev aadafd64da wined3d: Make register counting pass the same. 2006-05-10 11:24:33 +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 d89080c671 wined3d: Update the device palette if the primary palette is changed. 2006-05-10 11:23:08 +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 10ff0d8184 wined3d: rhw vertex fixup.
Change the rhw=0 range to ]1e-8,1e-8[ and move the value to a constant
in wined3d_types.h
2006-05-09 20:45:27 +02:00
Ivan Gyurdiev 1d0c672393 wined3d: Share get_opcode. 2006-05-09 20:45:10 +02:00
Phil Costin 9413c89c33 wined3d: Add check for GL Shading Language 100 Extension. 2006-05-09 12:39:24 +02:00
Ivan Gyurdiev c93239d36d wined3d: Clean up per version shader limits code. 2006-05-09 11:58:14 +02:00
Ivan Gyurdiev 5f10560762 wined3d: Addline cleanup. 2006-05-09 11:55:45 +02:00
Stefan Dösinger af462957c3 wined3d: Implement IWineD3DSurface::GetDC and IWineD3DSurface::ReleaseDC. 2006-05-08 20:58:27 +02:00
Marcus Meissner 80dc1f9cb3 wined3d: Fix possible buffer overflow.
Increase size of passed buffer to print into.
2006-05-08 15:26:55 +02:00
Jason Green 66ab457196 wined3d: Eliminate duplicate function: vshader_program_dump_param(). 2006-05-08 15:19:12 +02:00
Ivan Gyurdiev 4b3079438b wined3d: Share get_register_code(). 2006-05-08 15:15:30 +02:00
Stefan Dösinger 18e95ee969 wined3d: Add IWineD3DSurface::GetPitch. 2006-05-08 14:52:18 +02:00
Stefan Dösinger a173c8e35a wined3d: Add IWineD3DDevice::DrawPrimitiveStrided. 2006-05-08 14:51:13 +02:00
Stefan Dösinger 1cfbc903d5 wined3d: Add some surface flags. 2006-05-08 14:50:58 +02:00
Ivan Gyurdiev aea0b5d0f8 wined3d: Separate pshader/vshader tables. 2006-05-08 13:36:31 +02:00
Ivan Gyurdiev dbf5450982 wined3d: Remove dead shader code. 2006-05-07 10:00:24 +02:00
Ivan Gyurdiev 07f4f70487 wined3d: QueryInterface corrections. 2006-05-05 20:23:41 +02:00
Roderick Colenbrander c4eff1eb44 wined3d: Vertex Shader regtype cleanups. 2006-05-05 18:01:09 +02:00
Ivan Gyurdiev 1e86752812 wined3d: Fix mipmap level count. 2006-04-21 11:35:49 +02:00
Ivan Gyurdiev 744f3ae1c4 wined3d: Improve/implement D3DSIO_TEX.
- unify per-version cases into a single sequence
- make use of get_register_name() for the destination register
- ignore destination write mask - it's only allowed on 2.0+ shaders,
  and only the default mask is allowed there (xyzw)
- enable swizzle on texld 1.4 (it works together with dw/dz modifiers)
- implement for shaders 2.0-3.0
2006-04-21 11:35:34 +02:00
Ivan Gyurdiev ecba4d5cbd wined3d: Texture format corrections.
- add missing GL type and make GL cfg entries for A16B16G16R16
- correct L16 type to UNSIGNED_SHORT (..16 = short, not byte)
- change internal format for X8R8G8B8 from GL_RGB to GL_RGB8 which
  seems more correct
2006-04-21 11:35:06 +02:00
Ivan Gyurdiev 74117baa6c wined3d: Correct vtrace usage. 2006-04-21 11:34:31 +02:00
Stefan Dösinger a6f71af021 wined3d: Implement IWineD3DPalette. 2006-04-21 11:28:11 +02:00
Ivan Gyurdiev 63ef9788dd wined3d: Trace corrections/improvements. 2006-04-20 15:38:00 +02:00
Ivan Gyurdiev 162d9cb6f4 wined3d: Support for shift modifiers. 2006-04-19 19:27:22 +02:00
Ivan Gyurdiev 70fc78b64e wined3d: Support more than 4/6 tex/temp registers. 2006-04-19 19:26:50 +02:00
Stefan Dösinger 04da3ce2d1 wined3d: Implement GetHWND and SetHWND. 2006-04-19 12:55:03 +02:00
Stefan Dösinger 7fee88df9f wined3d: Implement EnumTextureFormats. 2006-04-19 12:54:32 +02:00
Stefan Dösinger ac964c3b61 wined3d: Implement EnumZBufferFormats. 2006-04-19 12:54:08 +02:00
Stefan Dösinger a6206836e6 wined3d: Implement IWineD3DDevice::EnumDisplayModes. 2006-04-19 12:53:30 +02:00
Stefan Dösinger d04f0507cf wined3d: Implement Init3D and Uninit3D. 2006-04-19 12:43:22 +02:00
Ivan Gyurdiev 3dddaae795 wined3d: Use ARB[f|v]p1.0 for ps2/ps3/vs3. 2006-04-18 11:22:48 +02:00
Ivan Gyurdiev e3c8e65084 wined3d: Use correct register number mask.
The regmask currently being used is wrong - 0x1FFF includes the high
two bits of the register type.
2006-04-18 11:20:45 +02:00
Ivan Gyurdiev e0a1442f6c wined3d: Dcl opcode takes 2 parameters. 2006-04-18 11:19:48 +02:00
Ivan Gyurdiev 7e5f734ee3 wined3d: Fix _dw modifier.
The _dw modifier needs to specify a component swizzle, just like the
_dz currently does.
2006-04-18 11:19:13 +02:00
Ivan Gyurdiev d3d56e765d wined3d: Fix flow control instructions number of parameters.
- else, endif, break take 0 parameters [not 2]
- if, rep take 1 parameter [not 2]
- breakp takes 1 parameter [not 2]
- move all flow control instructions in one place
- sync software shaders signatures with this
2006-04-18 11:18:48 +02:00
Ivan Gyurdiev 0d6eaf363d wined3d: Skip unhandled opcodes in vshaders. 2006-04-18 11:17:34 +02:00
Ivan Gyurdiev d486b93e30 wined3d: Texkill is supported for ps2.0-3.0. 2006-04-18 11:17:12 +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 80bdb24cad wined3d: Add the remaining IWineD3DDevice methods. 2006-04-18 11:13:47 +02:00
Stefan Dösinger cff4e1ea4b wined3d: Add IWineD3DPalette. 2006-04-18 11:11:49 +02:00
Stefan Dösinger 03b256b16d wined3d: Add a parameter for surface type selection. 2006-04-18 11:09:17 +02:00
Stefan Dösinger 076fa811af wined3d: Add a method to change the front and back buffers. 2006-04-17 11:21:22 +02:00
Stefan Dösinger ffc8e46e76 wined3d: Add IWineD3DSurface::Blt. 2006-04-17 11:19:30 +02:00
Sagar Mittal 4f986c842f wined3d: Fix null pointer check in IWineD3DImpl_GetPixelShader. 2006-04-14 19:36:48 +02:00
Stefan Dösinger d9cd05db80 wined3d: Add GetHWND and SetHWND methods to IWineD3DDevice. 2006-04-14 10:52:01 +02:00
Jason Green 5f4b424553 wined3d: Add case 0 to switch statement and fix the fixme.
Screwed up a copy/paste from one of my recent patches.  This
eliminates the erroneous FIXME for calls to D3DFmtMakeGlCfg() with 0
as the Stencil format.  Also, it changes the FIXME to print the
correct variable.
2006-04-13 11:23:50 +02:00
Stefan Dösinger cf27031329 wined3d: Add IWineD3DSurface::Flip. 2006-04-13 11:23:03 +02:00
Stefan Dösinger d2510847b0 wined3d: Split device creation and opengl initialization. 2006-04-13 11:22:45 +02:00
Karsten Elfenbein 59189ba75b wined3d: Combined unhandled renderstate cases into one. 2006-04-12 20:57:26 +02:00
Karsten Elfenbein c90c04607e wined3d: IWineD3DDeviceImpl_Reset cleanup.
Joined the functions as it looks like a typo in the function name
(IWineD3DDeviceImpl_Rest isn't used anywhere but contains comments).
2006-04-12 20:57:16 +02:00
Stefan Dösinger e0c8773199 wined3d: Add a resource dumper. 2006-04-12 12:54:28 +02:00
Ivan Gyurdiev c1a6e910ce wined3d: Enable texld instruction (shaders 1.4). 2006-04-12 11:42:21 +02:00
Ivan Gyurdiev 8ab0237e21 wined3d: Reorganize shaders code a bit. 2006-04-12 11:42:04 +02:00
Jason Green be10a6a099 wined3d: Spelling fixes and downgrade a FIXME to a TRACE. 2006-04-12 11:17:59 +02:00
Stefan Dösinger 108688f96a wined3d: Don't do a logical AND on the swap effect. 2006-04-12 11:17:49 +02:00
Stefan Dösinger edfe5d68ee wined3d: Store the private data in IWineD3DResource::SetPrivateData. 2006-04-12 11:17:39 +02:00
Ivan Gyurdiev 12be14b6cc wined3d: Remove bogus address register warning for pixel shaders.
Pixel shaders don't have an address register, this warning is bogus.
D3DSPR_ADDR is interpreted as D3DSPR_TEXTURE for pixel shaders.
2006-04-11 14:22:18 +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
Ivan Gyurdiev 634698cb19 wined3d: Print all errors in checkGLcall. 2006-04-10 12:24:23 +02:00
Ivan Gyurdiev 88a7c9e948 wined3d: Downgrade some FIXMEs. 2006-04-10 12:23:45 +02:00
Ivan Gyurdiev 5c12c043df wined3d: Map D3DFMT_L16, D3DFMT_A16B16G16R16 to OpenGL formats.
Map:
D3DFMT_L16 -> GL_LUMINANCE16_EXT
D3DFMT_A16B16G16R16 -> GL_RGBA16_EXT
as Raphael suggested.

Also increase the returned Bpp for unknown and unhandled formats from
4 to 8 bytes - this part fixes segfault in the F.E.A.R demo. It now
shows some flashy graphics before it dies again :)
2006-04-10 12:23:38 +02:00
Stefan Dösinger cf4b91f074 wined3d: Add WINED3DBOX to wined3d_types.h. 2006-04-07 14:55:50 +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 e71468c786 wined3d: Add WINED3DLOCKED_BOX to wined3d_types.h. 2006-04-07 11:46:36 +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 63fd9a7a98 wined3d: Add WINED3DTEXTUREFILTERTYPE to wined3d_types.h. 2006-04-06 22:22:35 +02:00
Jan Zerebecki d4fa4f22cb wined3d: CreateDevice should use the root window. 2006-04-04 20:34:47 +02:00
Jan Zerebecki 166b6d861d wined3d: Output unhandled renderstates with debug_d3drenderstate. 2006-04-04 20:31:38 +02:00
Jan Zerebecki 10fc948093 wined3d: Add D3DFMT_L16. 2006-04-04 20:30:53 +02:00
Stefan Dösinger be720179b6 wined3d: Add WINED3DCUBEMAP_FACES to wined3d_types.h. 2006-04-04 20:01:10 +02:00
Stefan Dösinger c289b3cc51 wined3d: Define WINED3DGAMMARAMP based on D3DGAMMARAMP / DDGAMMARAMP. 2006-04-04 20:00:41 +02:00
Jason Green bb704ea951 wined3d: Add a couple more debugging output formats. 2006-04-04 12:08:40 +02:00
Stefan Dösinger 08c38a87e1 wined3d: Add WINED3DRASTERSTATUS to wined3d_types.h. 2006-04-04 11:51:37 +02:00
Stefan Dösinger f6ed704f96 wined3d: Make use of WINED3DDEVICE_CREATION_PARAMETERS. 2006-04-03 21:35:44 +02:00
Stefan Dösinger 0ad31f819d wined3d: Add WINED3DBACKBUFFER_TYPE to wined3d_types.h. 2006-04-03 12:17:35 +02:00
Stefan Dösinger fce54bcc49 wined3d: Add WINED3DDISPLAYMODE to wined3d_types.h. 2006-04-03 12:17:22 +02:00
Stefan Dösinger a7063774b9 wined3d: Do not set the mipmap level count every time a texture is used. 2006-04-03 11:45:50 +02:00
H. Verbeet 59af5c4a62 wined3d: Move fields common to vertex shaders and pixel shaders to IWineD3DBaseShader. 2006-03-30 21:55:15 +02:00
Stefan Dösinger 6a8578f847 wined3d: Add WINED3DDEVTYPE to wined3d_types.h. 2006-03-30 12:45:57 +02:00
H. Verbeet 1e1a708e8a wined3d: Create an IWineD3DBaseShader class. 2006-03-29 13:40:45 +02:00
H. Verbeet d4132cf7d7 wined3d: Move the vshader_ins and pshader_ins arrays into their respective objects. 2006-03-29 13:40:16 +02:00
H. Verbeet 3ee642bb09 wined3d: Move the SHADER_OPCODE definition to wined3d_private.h. 2006-03-29 13:39:33 +02:00
H. Verbeet 0ac9c473d6 wined3d: Pass the correct number of parameters for texld with ps version >= 2. 2006-03-29 13:38:18 +02:00
Stefan Dösinger 1d47556195 wined3d: Use WINED3DSWAPEFFECT in the wined3d headers and code. 2006-03-28 17:51:45 +02:00
Stefan Dösinger d75fd75d48 wined3d: Add WINED3DPOOL to wined3d_types.h. 2006-03-28 17:34:42 +02:00
Stefan Dösinger b4b295c2a5 wined3d: Add WINED3DMULTISAMPLE_TYPE to wined3d_types.h. 2006-03-27 11:30:49 +02:00
Stefan Dösinger 0f7eb52789 wined3d: Add WINED3DTRIPATCH_INFO to wined3d_types.h. 2006-03-27 11:30:49 +02:00
H. Verbeet 518de008db wined3d: Move the D3DSIO_DCL dumping code into its own function. 2006-03-24 13:00:38 +01:00
Stefan Dösinger 6af24c816d wined3d: Rectpatch code fix.
Update the wined3d code to use WINED3DRECTPATCH_INFO, which was added
with an older patch.
2006-03-24 12:13:50 +01:00
H. Verbeet 1aca53860a wined3d: Set vertex attribute pointers defined in vertex declarations properly. 2006-03-22 21:41:05 +01:00
H. Verbeet e7b33b0f37 wined3d: Fix slightly misleading ParseVertexDeclarationUsage naming. 2006-03-22 21:40:37 +01:00
H. Verbeet f716eea3df wined3d: Initialise WINED3DVERTEXELEMENT's Reg field in
IWineD3DVertexDeclarationImpl_ParseDeclaration9.
2006-03-22 21:40:21 +01:00
H. Verbeet 46b13aaa58 wined3d: glTypeLookup cleanup.
Use a struct instead of an UINT array as entries in the glTypeLookup
table.
2006-03-22 21:39:04 +01:00
H. Verbeet bce3da3af7 wined3d: Store the pixelshader version in the pixelshader object. 2006-03-22 21:37:19 +01:00
Roderick Colenbrander a187ab05c4 wined3d: Don't use OpenGL 2.0. 2006-03-20 22:09:05 +01:00
Roderick Colenbrander bcbf5f397e d3d8/wined3d: Vertex shader fixes. 2006-03-17 13:11:06 +01:00
Stefan Dösinger 6cc87406cf wined3d: Add WINED3DINDEXBUFFER_DESC to wined3dtypes.h. 2006-03-15 11:30:39 +01:00
Roderick Colenbrander d4836e1ce1 wined3d: Vertexdeclaration fix.
In the old d3d8 code SetVertexShader stored the so called vertex
declaration in the stateblock. In case of WineD3D this isn't done
which breaks the drawPrimitive code. This patch stores the vertex
declaration again in the stateblock which fixes Age Of Mythology.
2006-03-13 14:19:10 +01:00
Stefan Dösinger 9f46792ba2 wined3d: Add WINED3DVERTEXBUFFER_DESC to wined3d_types.h. 2006-03-13 13:32:01 +01:00
Vitaliy Margolen d2ef7869de wined3d: Don't override variable that still has something we need.
Use local temp variable instead.
2006-03-13 13:31:45 +01:00
Vitaliy Margolen 76e5e88fe7 wined3d: Add D3DSIO_TEXM3x3PAD to opcode list. We already handle it where we should. 2006-03-13 13:31:27 +01:00
Stefan Dösinger 913df5b143 wined3d: Consistently use WINED3DRESOURCETYPE. 2006-03-10 21:43:00 +01:00
H. Verbeet 76c469e5a4 wined3d: Use OpenGL fragment programs when available. 2006-03-09 13:10:42 +01:00
H. Verbeet 86b9041c0c wined3d: Remove an incorrect FIXME. 2006-03-09 13:10:30 +01:00
H. Verbeet 008c6a00b9 wined3d: Enable color fixups for vertex shaders. 2006-03-09 13:08:55 +01:00
H. Verbeet 21d62ed1f1 wined3d: Minor vshader_program_add_param cleanup.
- In vshader_program_add_param, pass a pointer to the shader object
  instead of individual parameters.
- In vshader_program_add_param, rename input to is_input to make it
  clearer what the parameter does.
- Fix a typo & cleanup a comment.
2006-03-09 13:08:35 +01:00
Stefan Dösinger 6104c67613 wined3d: Use WINED3DPRESENT_PARAMETERS in IWineD3DSwapChain::GetPresentParameters. 2006-03-09 12:51:26 +01:00
Stefan Dösinger 851bdfb5e0 wined3d: Add D3DLOCK_* types to wined3d_types.h. 2006-03-08 11:33:35 +01:00
H. Verbeet 78a43b3dbc wined3d: Fix a few FIXME's. 2006-03-07 10:56:52 +01:00
H. Verbeet ae21e30118 wined3d: Implement GetCreationParameters (from a patch by Al Tobey). 2006-03-07 10:53:43 +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 07004966a8 wined3d: Fix the relation between volumes and their container. 2006-03-06 20:08:36 +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
Vitaliy Margolen 46ecb15c5c wined3d: Fix retrieval of driver adapter versions. 2006-03-06 11:43:00 +01:00
Stefan Dösinger 033769f94d wined3d: Add d3d7 and d3d8/9 cap flags to wined3d_types.h. 2006-03-06 11:36:28 +01:00
Jason Green 6d30800db6 wined3d: Add a few more WINED3DFMT formats to be recognized. 2006-03-06 11:36:07 +01:00
Vitaly Budovski 3832eb7de4 wined3d: Added OpenGL 2.0 function definitions. 2006-03-06 11:12:14 +01:00
Vitaly Budovski e5bad779d6 wined3d: Implemented WINED3DRS_DEPTHBIAS. 2006-03-04 16:20:22 +01:00
Vitaly Budovski 196eaa674c wined3d: Added two sided stencil support to WINED3DRS_STENCILFUNC. 2006-03-04 16:18:39 +01:00
Vitaly Budovski f2f59cae61 wined3d: Added two sided stencil support to WINED3DRS_STENCILFAIL,
WINED3DRS_STENCILZFAIL and WINED3DRS_STENCILPASS.
2006-03-04 16:18:18 +01:00
Vitaly Budovski 6bf561b7ba wined3d: Implemented fallback for separate stencil function in WINED3DRS_CCW_STENCILFUNC. 2006-03-04 16:17:32 +01:00
Vitaly Budovski 7b55a0cff1 wined3d: Implemented fallback for separate stencil operation in WINED3DRS_CCW_STENCIL*. 2006-03-04 16:15:47 +01:00
Detlef Riekenberg 858be437c5 wined3d: Fix cut&paste typo. 2006-03-04 16:13:39 +01:00
Roderick Colenbrander f8ed06ea3d wined3d: Opengl 2.x compile fix. 2006-03-02 15:50:16 +01:00
Aric Cyr 252c4adb96 wined3d: Reverse GL_BGR to GL_RGB for the D3D RGB formats.
This fixes texture colours in many D3D games (verified with Age Of Mythology).
2006-03-01 20:05:11 +01:00
Vitaly Budovski 63585380a9 wined3d: Implemented WINED3DRS_CCW_STENCIL* render states. 2006-02-28 12:22:16 +01:00
Vitaly Budovski 5c8c0059ab wined3d: Implemented WINED3DRS_SCISSORTESTENABLE. 2006-02-28 12:21:00 +01:00
Vitaly Budovski 4b10288b5b wined3d: Implemented WINED3DRS_SLOPESCALEDEPTHBIAS. 2006-02-28 12:20:01 +01:00
Vitaly Budovski c9a1134ce3 wined3d: Implemented WINED3DRS_ANTIALIASEDLINEENABLE. 2006-02-28 12:19:11 +01:00
Vitaly Budovski 64ccecfbab wined3d: Added D3D9 render states. 2006-02-28 12:14:25 +01:00
Vitaly Budovski c8480e25e7 wined3d: Fixed some typos and prevented divide by 0. 2006-02-28 12:13:59 +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
Roderick Colenbrander d13469c1d8 d3d8: Moved the remaining code over to WineD3D (based on patches by
Oliver Stieber).
2006-02-27 12:20:03 +01:00
Roderick Colenbrander b24e69dc38 d3d8: Move the capability detection code over to WineD3D.
Let the few existing parts which need the capabiliteis use the WineD3D
capability structure (gl_info). This info structure contains next to
'flags' inidicating certain features also all GL/GLX functions
pointers. Because D3D8 moves over to the wined3d gl_info structure all
the gl prototypes in d3dcore_gl.h were unneeded and removed.
2006-02-21 11:28:58 +01:00