Commit Graph

501 Commits

Author SHA1 Message Date
Jason Green d5d4568450 wined3d: Allow drawPrim to create and use the GLSL program. 2006-06-09 15:20:06 +02:00
Jason Green b67cda248d wined3d: Add GLSL helper functions to Device.
- Add functions to attach & detach shader objects, create and delete programs, and maintain the list of programs.
- Add a list of GLSL shader programs to the device which is initialized on Init3D(), and deleted on Release().
2006-06-09 15:19:52 +02:00
Jason Green ca7976c34f wined3d: Map vertex shader instructions to GLSL generating functions. 2006-06-09 15:19:09 +02:00
Jason Green 5798356d21 wined3d: Map pixel shader instructions to GLSL generating functions. 2006-06-09 15:19:02 +02:00
Jason Green d59714b78c wined3d: Prototype the GLSL functions for use with pixel and vertex shaders. 2006-06-09 15:14:34 +02:00
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