Stefan Dösinger
8f20b882bb
wined3d: Handle texture transforms in the TEXTURETRANSFORMFLAGS state.
...
This is a nop by itself, but it makes it easier for fragment pipelines
to read WINED3DTSS_TEXTURETRANSFORMFLAGS.
2008-08-27 13:21:24 +02:00
Stefan Dösinger
8dcc6b66dc
wined3d: Clean up the texbeml parameter forward.
...
There's no point in separating scale and luminance since they're
uploaded at the same time. We still want to separate the stages
though.
2008-08-27 13:21:24 +02:00
Stefan Dösinger
ec94c2ea99
wined3d: Don't enable texture dimensions with shaders.
...
ARB and GLSL don't need that. If a shader backend like atifs or nvts
need it in the future, the shader backend should deal with that rather
than the ffp pipeline.
2008-08-21 13:33:20 +02:00
Stefan Dösinger
bfe7067973
wined3d: Ask the ffp/shader/blit implementation about format support.
...
If a format is not supported natively by opengl, a shader may be able
to convert it. Up to now, CheckDeviceFormat had magic knowldge which
GL extensions lead to which supported format. This patch adds
functions that allow CheckDeviceFormat to ask the actual
implementation for its capabilities.
2008-08-20 12:26:02 +02:00
Stefan Dösinger
a7d5b1e9a5
wined3d: Move the pshader fog update to the vertex pipeline.
2008-08-05 14:09:36 +02:00
Stefan Dösinger
370b8299ab
wined3d: Honor the texcoordindex when setting the texture matrix.
2008-07-24 11:56:02 +02:00
Stefan Dösinger
eea2c95727
wined3d: Move set_tex_op(_nvrc) to their specific files.
2008-07-22 13:01:45 +02:00
Stefan Dösinger
448fee2879
wined3d: Whitespace fix.
2008-07-22 13:01:07 +02:00
Stefan Dösinger
c088edeae7
wined3d: Use GL_ARB_texture_non_power_of_two emulation.
...
ATI cards prior to the radeon HD series did not have unconditional non
power of two support. So far we've used texture_rectangle for that, or
created a bigger power of two texture with padding. This had the
disadvantage that we had to correct the coordinates, which causes
extreme problems with shaders(doesn't work, pretty much).
Both the MacOS and the fglrx driver have support for
GL_ARB_texture_non_power_of_two, and run it on the hardware as long as
we stay within the texture_rectangle limitations. This allows us to
have conditional non power of two textures with normalized
coordinates. This patch adds an internal extension, and the code
creates a regular GL_TEXTURE_2D texture with NP2 size, but refuses
mipmapping, filtering and texture_rectangle incompatible
operations. This makes np2 textures work with shaders on fglrx and
macos.
2008-07-18 11:41:09 +02:00
Stefan Dösinger
55ab14a4ed
wined3d: Move an VBO support check to the state template.
2008-07-18 11:40:19 +02:00
Stefan Dösinger
dc203d36c9
wined3d: Remove more dead code.
...
The opengl extension mentioned in that code was never finished, and as
far as I know there is no way to make use of tangent data in the d3d
fixed function pipeline as well.
2008-07-18 11:40:12 +02:00
Stefan Dösinger
e5f42f91b6
wined3d: Remove GL_EXT_vertex_weighting stubs.
2008-07-18 11:40:00 +02:00
Stefan Dösinger
ebc77732c1
wined3d: Move the vertexblend support check to the template.
2008-07-18 11:39:44 +02:00
Stefan Dösinger
f981afd7d3
wined3d: Check for ATI_ENVMAP_BUMPMAP in the template.
...
Note that GL_ATI_envmap_bumpmap is not the same as
GL_ATI_fragment_shader. envmap_bumpmap is used together with the
regular opengl ffp pipeline and is not used (other than for
pixelformats) if GL_ATI_fragment_shader is used.
2008-07-18 11:39:38 +02:00
Stefan Dösinger
8bb11dad76
wined3d: Only register the np2 texture fixup if needed.
2008-07-18 11:39:18 +02:00
Stefan Dösinger
d247953687
wined3d: Test for multisampling in the template.
2008-07-17 11:45:00 +02:00
Stefan Dösinger
9c1b6581c6
wined3d: Move the point sprite support test into the template.
2008-07-17 11:44:54 +02:00
Stefan Dösinger
94e455343d
wined3d: Split the psizemax state handler.
2008-07-17 11:44:48 +02:00
Stefan Dösinger
7740dda1da
wined3d: Split the psizemin handler.
2008-07-17 11:44:42 +02:00
Stefan Dösinger
710b9a76b3
wined3d: Move the range fog support test to the template.
2008-07-17 11:44:34 +02:00
Stefan Dösinger
df4dcc34aa
wined3d: Move a few extension checks into the state template.
2008-07-17 11:44:28 +02:00
Stefan Dösinger
35f33ef409
wined3d: Add extension information to the states.
...
This patch adds a new field to the state templates. If this extension
field is != 0, then the line is only applied to the final state table
if the extension is supported. Once a line is applied to the final
table, all further templates for this state from the same pipeline
part are ignored. This allows removing some extension checks from the
state handlers, which cleans them up and saves a few CPU cycles when
applying the states.
2008-07-17 11:44:08 +02:00
H. Verbeet
c72c70d609
wined3d: Store the texture in a local variable in sampler_texmatrix().
...
Slightly improves readability.
2008-07-17 11:36:42 +02:00
Stefan Dösinger
e27734779c
wined3d: Remove some dead code.
2008-07-14 11:46:33 +02:00
Stefan Dösinger
88ae2fe14a
wined3d: Give nv* fixed function stuff its own state template.
2008-07-14 11:46:11 +02:00
Stefan Dösinger
38934fe70d
wined3d: Move shader constant affecting states to the misc pipeline.
...
As long as we have the shader constants in misc, it is best to keep
all the code that affects shader constants, like bumpenvmat setting,
in there as well.
2008-07-14 11:44:48 +02:00
Stefan Dösinger
84d39a95e5
wined3d: WINED3DTSS_TEXCOORDINDEX belongs to the vertex pipeline.
2008-07-14 11:44:36 +02:00
Stefan Dösinger
86b033bbb9
wined3d: Give the nvts/nvrc code its own pipeline implementation.
...
This code creates the structures and the pipeline selection, as well
as the caps filling. It does not yet move the actual code around,
since this will be a bigger task.
2008-07-14 11:44:26 +02:00
Stefan Dösinger
51e64b3fe9
wined3d: Move fixed function texture dimension updates to the fragment pipeline.
...
This is a further separation of the sampler state, and a preparation
to move the nv texture shader stuff to its own pipeline implementation.
2008-07-14 11:43:41 +02:00
Stefan Dösinger
d3c29b7063
wined3d: NP2 coordinate adjustment is a vertex operation.
...
When a sampler is changed and unconditional NP2 textures are not
supported, the texture matrix may need adjustment. The sampler state
function checks for that, and calls the texture transform setting
function in that case. However, samplers are a misc state, and the
texture transform flags a vertex state. Thus split up the code and
move the matrix changes to the vertex side.
2008-07-14 11:43:30 +02:00
Stefan Dösinger
e7733eacb7
wined3d: Remove the atifs shader backend.
...
Since atifs is only doing the fragment pipeline replacement right now
there is no need for the shader backend structure any longer. The ffp
private data is stored in new fragment pipeline private data(which
could potentially be set to equal the shader private data if needed).
2008-07-14 11:43:09 +02:00
Stefan Dösinger
e4078fb0ba
wined3d: Set ffp caps in the ffp backend, not the shader backend.
2008-07-11 14:32:53 +02:00
Stefan Dösinger
c48195e417
wined3d: Move shader_fragment_enable to the fragment pipeline implementation.
...
It isn't related to the shader backend any longer. The nvts_enable in
the ffp code isn't quite right as well, it should be moved away once
there is a dedicated nvts fragment pipeline replacement
2008-07-11 14:32:37 +02:00
Stefan Dösinger
f330815da5
wined3d: Samplers -> misc states.
2008-07-11 14:31:53 +02:00
Stefan Dösinger
f8824996e9
Wined3d: Move the last states.
2008-07-11 14:31:44 +02:00
Stefan Dösinger
9b15e25411
wined3d: One more psize state.
2008-07-11 14:31:36 +02:00
Stefan Dösinger
721301fb3f
wined3d: Point size vertex states.
2008-07-11 14:31:26 +02:00
Stefan Dösinger
031ee3e695
wined3d: A few more junk misc states.
2008-07-10 12:30:56 +02:00
Stefan Dösinger
c31dfc7d0d
wined3d: A few more vertex states.
2008-07-10 12:30:56 +02:00
Stefan Dösinger
9086ed2d2e
wined3d: WINED3DRS_SRGBWRITEENABLE->fragment.
2008-07-10 12:30:56 +02:00
Stefan Dösinger
0b67a84b44
wined3d: Wrapping states -> misc.
2008-07-10 12:30:56 +02:00
Stefan Dösinger
dd95fce9fb
wined3d: texturefactor-> fragment states.
2008-07-10 12:30:56 +02:00
Stefan Dösinger
6fa9f0e363
wined3d: Stencil states -> misc table.
2008-07-10 12:30:56 +02:00
Stefan Dösinger
de1b0a5c04
wined3d: Move a few more odd states to the misc state table.
2008-07-10 12:30:56 +02:00
Stefan Dösinger
e988c8bd60
wined3d: WINED3DRS_ZBIAS -> misc states.
2008-07-10 12:30:56 +02:00
Stefan Dösinger
1df66c3893
wined3d: Move the bordercolor to the fragment states.
2008-07-10 12:30:56 +02:00
Stefan Dösinger
340272bc26
wined3d: Move more fog stuff to the vertex states.
2008-07-10 12:30:55 +02:00
Stefan Dösinger
ecc7b5fb18
wined3d: Move fog to the vertex states.
2008-07-09 10:49:17 +02:00
Stefan Dösinger
cd9690d9d0
wined3d: Move a few more states to the misc states.
2008-07-09 10:48:59 +02:00
Stefan Dösinger
a4c85d788a
wined3d: WINED3DRS_LASTPIXEL -> misc states.
2008-07-09 10:48:50 +02:00
Stefan Dösinger
58ef02fa69
wined3d: Alpha states -> misc pipeline states.
2008-07-09 10:48:43 +02:00
Stefan Dösinger
5f3b11e9d6
wined3d: Move wrapu to the misc states.
2008-07-09 10:48:33 +02:00
Stefan Dösinger
dd90d62356
wined3d: Move a few more states to the misc pipeline.
2008-07-09 10:48:26 +02:00
Stefan Dösinger
b4445e8b98
wined3d: Textureperspective->misc states.
2008-07-09 10:48:17 +02:00
Stefan Dösinger
cad055ae16
wined3d: Move WINED3DRS_ANTIALIAS to the misc states.
2008-07-09 10:48:08 +02:00
Stefan Dösinger
f68ac7465f
wined3d: Move pixelshader application to the fragment pipeline.
2008-07-09 10:47:59 +02:00
Stefan Dösinger
b24c409cea
wined3d: Initialize the state table before filling it.
2008-07-09 10:47:49 +02:00
Stefan Dösinger
a2628d0423
wined3d: Move Fixed function pipeline states to the new fragment structure.
2008-07-08 21:08:54 +02:00
Stefan Dösinger
3a2743f25d
wined3d: Remove the state table from the shader backend.
2008-07-08 21:08:54 +02:00
Stefan Dösinger
c15dfb87e9
wined3d: Create fragment processing state templates and select one.
...
For now the atifs selection sticks to the old rules, thus it is bound to
the available and selected shader capabilities. We may want to change that
in the future.
2008-07-08 21:08:54 +02:00
Stefan Dösinger
bdfaab5a94
wined3d: Move texture transform flag stuff to the vertex pipeline states.
2008-07-08 21:08:54 +02:00
Stefan Dösinger
68948f0c71
wined3d: Move transforms to the vertex code.
...
Some fragment pipeline implementations may want to register their own
texture transform handlers.
2008-07-08 21:08:54 +02:00
Stefan Dösinger
1f5bce3454
wined3d: indexbuffer -> misc.
2008-07-08 21:08:54 +02:00
Stefan Dösinger
b4bee02556
wined3d: Move the viewport to the vertex and misc pipeline states.
2008-07-08 21:08:54 +02:00
Stefan Dösinger
4b831a5d3e
wined3d: Move shader constants to the misc states.
2008-07-08 21:08:54 +02:00
Stefan Dösinger
95099404d5
wined3d: Move lights to the vertex pipeline states.
2008-07-08 10:47:20 +02:00
Stefan Dösinger
298c953b25
wined3d: Move the scissor rect to the misc states.
2008-07-08 10:47:12 +02:00
Stefan Dösinger
3668f7508f
wined3d: Move clipplanes to vertex states.
2008-07-08 10:47:05 +02:00
Stefan Dösinger
eb9d3d2a8f
wined3d: Move the frontfacing state to the misc state table.
2008-07-08 10:46:57 +02:00
Stefan Dösinger
956bfca1e2
wined3d: Move material application to the vertex pipeline.
2008-07-08 10:46:50 +02:00
Stefan Dösinger
141f31f05d
wined3d: Move stream source and vshader to misc and vertex pipeline tables.
2008-07-08 10:46:42 +02:00
Stefan Dösinger
6675374dda
wined3d: Make the stream source application a regular state function.
2008-07-08 10:46:32 +02:00
Stefan Dösinger
68dec9d161
wined3d: Implement the state merger and start to use it.
2008-07-08 10:46:20 +02:00
Stefan Dösinger
98faed8ff5
wined3d: Start the state splitup.
...
The idea of this patchset is to split the monolithic state set into 3
parts, vertex processing, fragment processing and other states(depth,
stencil, scissor, ...). The states will be provided in templates which
can be (mostly) independently combined, and are merged into a single
state table at device creation time. This way we retain the advantages
of the single state table and having the advantage of separated
pipeline implementations which can be combined without any manually
written glue code.
2008-07-08 10:45:56 +02:00
Francois Gouget
633ee950a1
Assorted spelling fixes.
2008-05-07 12:07:11 +02:00
Stefan Dösinger
dc07ddb531
wined3d: Fix the GL_ATI_separate_stencil codepath.
...
glStencilFuncSeparateATI does not take a face argument, instead it
sets the front and back facing functions at once. This means the
renderstate_stencil_twosided helper function is somewhat pointless for
this extension.
2008-04-24 22:09:36 +02:00
Stefan Dösinger
9ee7e42de8
wined3d: Call activate_dimensions from the atifs code.
2008-04-24 11:54:28 +02:00
Austin English
6e59cd2c34
Spelling fixes.
2008-04-22 12:20:12 +02:00
Stefan Dösinger
3e5899b38d
d3d9: Some Windows drivers set undefined attributes to 0.0.
2008-04-09 11:55:22 +02:00
Stefan Dösinger
b1d8af7926
wined3d: Update copyright lines.
2008-04-02 20:22:42 +02:00
Stefan Dösinger
bd68237096
wined3d: Implement TSSARGTEMP with register combiners.
2008-04-02 20:07:40 +02:00
Roderick Colenbrander
76014205de
wined3d: Fix a postpixelshader_blending bug.
2008-03-31 12:14:33 +02:00
Roderick Colenbrander
4eaa424c79
wined3d: Initial post pixelshader blending support. [attempt 2].
...
For each pixel format we store a flag in the table whether it supports
post pixelshader blending. Before applying blending or during a
context switch we verify that blending is turned off for the
format. In case of R32F this gave a 5-6x performance boost (without
filtering and software conversion).
2008-03-28 15:50:24 +01:00
Stefan Dösinger
4640be8dc8
wined3d: Fragment processing using GL_ATI_fragment_shader.
...
This adds code for handling fixed function fragment processing with the
GL_ATI_fragment_shader extension. This is a sort-of programmable
interface for fragment processing at the level of shader model 1.4 in
d3d. This code is of use on r200, r250 and r280 cards(radeon 8500 to
9200) which do not support GL_ARB_fragment_program, but support pixel
shader 1.4 on Windows. This code is somewhat a counterpart to the
existing fragment processing code using GL_NV_register_combiners and
GL_NV_texture_shader.
2008-03-25 19:50:32 +01:00
Stefan Dösinger
84258723f9
wined3d: Make the state table a property of the shader backend.
2008-03-25 19:35:32 +01:00
Philip Nilsson
1110f17581
wined3d: Initialize maxAttribs in case it isn't changed by glGetIntegerv.
2008-03-24 13:26:20 +01:00
Stefan Dösinger
d20768c120
wined3d: Support shininess > 128 if opengl does.
2008-03-05 19:23:06 +01:00
Stefan Dösinger
167a271434
wined3d: Support more than one texbem instruction per shader.
2008-03-05 19:22:44 +01:00
James Hawkins
c2a627c6e8
janitorial: Remove links to any microsoft site.
2008-03-01 12:17:07 +01:00
Roderick Colenbrander
c2d978410f
wined3d: Add separate alpha blend support.
2008-02-18 14:19:57 +01:00
Stefan Dösinger
c2d97b2329
wined3d: Add a test for fixed function bump mapping.
2008-02-18 13:34:25 +01:00
Andrew Talbot
b3a58a2486
wined3d: Remove unneeded casts.
2008-01-24 11:41:36 +01:00
Francois Gouget
d0794c4aeb
Assorted spelling fixes.
2008-01-23 21:16:22 +01:00
Alexander Dorofeyev
536f98000d
wined3d: Change colorkey fixup for stage 0 alphaop / alphaarg.
2008-01-22 11:19:05 +01:00
Austin English
3471f841a1
wined3d: Spelling fixes.
2008-01-18 12:53:33 +01:00
Roderick Colenbrander
916b56391d
wined3d: Fix glBlendColorEXT for use on RivaTNT.
2008-01-14 13:10:28 +01:00
Stefan Dösinger
fd711c57df
wined3d: Combine two glScalef calls into one.
2007-12-27 13:44:18 +01:00
Stefan Dösinger
44b8915371
wined3d: Get rid of the invymat.
...
glScalef(1.0, -1.0, 1.0) does the same as the glMultMatrix with the
invymat matrix, and it is more optimal.
2007-12-27 13:44:13 +01:00
Alexander Dorofeyev
27c98fd628
wined3d: Also update alpha test when stage texture is NULL.
2007-12-27 13:43:49 +01:00
Stefan Dösinger
47a8a6bd44
wined3d: Implement and test vertex fixups with per stream offsets.
2007-12-21 13:44:16 +01:00
Stefan Dösinger
b5f925cae0
wined3d: Implement half float vertex buffer conversion.
2007-12-21 13:13:56 +01:00
Stefan Dösinger
2d90449500
wined3d: Fixed function vertex attribute types are flexible.
2007-12-20 10:49:42 +01:00
Stefan Dösinger
a3c2fb9e64
wined3d: Store if half float conversion is needed in the decl.
2007-12-20 10:48:16 +01:00
Rico Schüller
b7dfe3afb6
wined3d: Fix some typos.
2007-12-20 10:47:06 +01:00
Stefan Dösinger
7a1d35e513
wined3d: Emulate half float vertices if GL_NV_half_float is not there.
2007-12-19 12:19:27 +01:00
Francois Gouget
5f7a9cea38
Assorted spelling fixes.
2007-12-07 16:35:32 +01:00
Stefan Dösinger
f700cbe74b
wined3d: Add an alpha blending test.
2007-12-07 16:26:43 +01:00
Gerald Pfeifer
81f32c7a38
wined3d: Fix error handling in transform_texture().
2007-12-04 18:41:45 +01:00
Stefan Dösinger
fcb49934d0
wined3d: Retrieve the height properly when setting the viewport.
2007-12-04 14:32:39 +01:00
Stefan Dösinger
8689fe32c6
wined3d: Use the proper drawable size when setting the scissor rect.
2007-12-04 14:32:39 +01:00
Stefan Dösinger
3fd0916654
wined3d: Make the code aware of GL_ARB_texture_rectangle.
2007-11-29 13:36:37 +01:00
Stefan Dösinger
3f32847494
wined3d: Do not try to disable unsupported texture units.
2007-11-28 13:40:28 +01:00
Stefan Dösinger
0353d031bc
wined3d: Add some missing checkGLcall calls.
2007-11-28 13:40:28 +01:00
Stefan Dösinger
f2c19fbc0b
wined3d: Correctly handle the y offset with offscreen rendering.
...
This fixes a regression introduced with the MAD patch.
2007-11-27 16:02:34 +01:00
Stefan Dösinger
26f7eae9cf
wined3d: Non power of two texture fixes.
2007-11-14 11:59:21 +01:00
Stefan Dösinger
0334c1760f
wined3d: Apply matrices when switching from transformed vertices to shaders.
2007-11-14 11:59:09 +01:00
Stefan Dösinger
58a761a88b
wined3d: Read the framebuffer size from the surface, not the window.
2007-11-14 11:58:47 +01:00
Stefan Dösinger
e4f8a2da2b
wined3d: Depth stencil fixes.
2007-11-14 11:58:36 +01:00
Stefan Dösinger
5ffea6e591
wined3d: Honor the driver's min point size.
2007-11-08 12:05:19 +01:00
Stefan Dösinger
ee32ac575b
wined3d: A point size fix.
2007-10-26 15:17:01 +02:00
Stefan Dösinger
9694cb2df3
wined3d: Ignore texture transforms when a shader is used, not set.
2007-10-22 15:59:00 +02:00
Chris Robinson
c4cc337d7a
wined3d: Prevent some console spamming.
2007-10-09 12:34:55 +02:00
Roderick Colenbrander
c2bf124a90
wined3d: Use EXT-versions of glBlend*.
2007-10-09 12:34:49 +02:00
Stefan Dösinger
6313e0ffff
wined3d: SRGB write correction emulation.
2007-09-24 13:30:30 +02:00
Stefan Dösinger
05cef43308
wined3d: Keep the selected stencil setup face set to GL_FRONT.
2007-09-20 15:52:47 +02:00
Stefan Dösinger
145d56847b
wined3d: Disable two sided stencil if it is supported, but not enabled.
2007-09-19 11:40:28 +02:00
Stefan Dösinger
ad3fe8562b
wined3d: Enable the stencil test if two sided stencil is used.
2007-09-19 11:40:19 +02:00
Stefan Dösinger
e62a4b0352
wined3d: Fix a copypaste error.
2007-09-19 11:40:10 +02:00
Stefan Dösinger
703ec4cbc4
wined3d: Set the stencil mask for both faces.
2007-09-19 11:40:02 +02:00
Stefan Dösinger
5a63b79a66
wined3d: Untie culling and offscreen rendering.
2007-09-19 11:39:55 +02:00
Stefan Dösinger
c5410a6f22
wined3d: Use GL_NV_depth_clamp to implement clipping disable.
2007-09-17 12:08:40 +02:00
Stefan Dösinger
9e340f0fdb
wined3d: Add a fixme for D3DCMP_NOTEQUAL and D3DCMP_EQUAL.
2007-09-17 12:08:28 +02:00
Stefan Dösinger
5ab9d85c39
wined3d: Implement texbeml.
2007-09-12 12:10:03 +02:00
Stefan Dösinger
a305af0b30
wined3d: Fix the z range.
2007-09-11 13:47:36 +02:00
Stefan Dösinger
8c9c084004
wined3d: Use 0/0/0 as normal if no normal is supplied.
2007-08-30 11:57:18 +02:00
Stefan Dösinger
322b55e29a
wined3d: Fix the half pixel correction.
2007-08-28 11:55:27 +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
98bc83be7c
wined3d: Fall back to drawStridedSlow if fog coords are used.
2007-08-23 13:33:22 +02:00
Stefan Dösinger
0dade7207f
wined3d: Implement range based fog and advertize it correctly.
2007-08-21 13:35:57 +02:00
Stefan Dösinger
04d62b4322
wined3d: fogstart == fogend means full fog.
2007-08-21 13:35:48 +02:00
Stefan Dösinger
306fcfeee7
wined3d: FIX D3DBLEND_BOTHSRCALPHA and BLEND_BOTHINVSRCALPHA.
2007-08-20 22:32:02 +02:00
Stefan Dösinger
06cc0fa95f
wined3d: GL_SRC_ALPHA_SATURATE is supported as src blend param only.
2007-08-17 12:01:38 +02:00
Stefan Dösinger
e7cbb340dc
wined3d: Remove stateblock::set.*.
2007-08-13 11:36:43 +02:00
Stefan Dösinger
8de07265a6
wined3d: Downgrade an ERR.
2007-08-03 12:30:12 +02:00
Roderick Colenbrander
2c12c17ab6
wined3d: Compile against standard GL headers.
2007-07-31 21:36:56 +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
b4e596e70e
wined3d: Flip the scissor rect when rendering offscreen.
2007-07-26 11:51:34 +02:00
H. Verbeet
be8226593c
wined3d: Don't modify the blending parameters in state_blend().
2007-07-24 11:25:45 +02:00
H. Verbeet
6421d45f53
wined3d: In tex_colorop() & tex_alphaop(), only check the mapped stage against GL_LIMITS(textures) if the texture is used.
2007-07-02 13:36:15 +02:00
H. Verbeet
25c673225b
wined3d: Only set GL_SHADER_OPERATION_NV to GL_NONE for supported units.
2007-07-02 13:36:07 +02:00
H. Verbeet
9ed84211c1
wined3d: Only call activate_dimensions() if the texture is used.
2007-07-02 13:35:59 +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
9c44b67d28
wined3d: Add max_vertex_samplers and max_combined_samplers to WineD3D_GL_Info.
2007-06-26 11:57:05 +02:00
H. Verbeet
3ad03206ab
wined3d: Rename max_samplers to max_fragment_samplers.
2007-06-26 11:56:57 +02:00
Stefan Dösinger
a3854be0b3
wined3d: Some point sprite fixes.
2007-06-25 20:04:58 +02:00
Stefan Dösinger
4f8eb6a32e
wined3d: Clamp material power to 128.0.
2007-06-25 20:03:26 +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
35ee1e9693
wined3d: Unload texture coords for all supported texture stages.
2007-06-21 13:09:17 +02:00
Stefan Dösinger
030b92a2f6
wined3d: Remove the FVF codepath from drawprim.
2007-06-21 13:09:08 +02:00
H. Verbeet
9f8083c646
wined3d: Only set GL_SHADER_OPERATION_NV to GL_NONE for mapped stages.
2007-06-18 12:33:55 +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
Francois Gouget
7d55f09e75
wined3d: Fix spelling of the state_separateblend() function.
2007-06-07 19:24:04 +02:00
Stefan Dösinger
2854c54201
wined3d: Keep GL_TEXTURE_2D enabled when using dummy textures.
2007-05-31 13:08:09 +02:00
Stefan Dösinger
b6e87d47d5
wined3d: Don't mess with nv texture shaders if its not supported.
2007-05-31 13:08:01 +02:00
H. Verbeet
79ca4e022d
wined3d: Load texture coordinates even if no texture is bound to that stage at this time.
2007-05-10 12:24:52 +02:00
H. Verbeet
cde60c0b94
wined3d: Split texture coordinate loading from loadVertexData().
2007-05-10 12:24:39 +02:00
H. Verbeet
5188ab4efa
wined3d: Calling glDisableClientState() from loadVertexData() is redundant.
...
unloadVertexData() will already have done this if necessary.
2007-05-10 12:24:19 +02:00
H. Verbeet
f8714d771a
wined3d: Unload vertex weight data in case of EXT_VERTEX_WEIGHTING as well.
2007-05-10 12:24:07 +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
4a8b55d456
wined3d: Unload vertex weight data in unloadVertexData.
2007-05-10 11:40:15 +02:00
Stefan Dösinger
28170f0474
wined3d: Implement environment bump mapping with GL_ATI_envmap_bumpmap.
2007-05-09 12:07:32 +02:00
Stefan Dösinger
adb9b13b81
wined3d: Implement vertex blending using GL_ARB_vertex_blend.
2007-05-03 14:24:46 +02:00
Fabian Bieler
e28630bc32
wined3d: Remove usesFog flag from IWineD3DVertexShaderImpl.
2007-04-23 13:55:45 +02:00
Stefan Dösinger
725057da47
d3d: Remove dependency on ddraw.h header.
2007-04-16 13:20:15 +02:00
Felix Nawothnig
e3d3d1823d
wined3d: Only issue state_patchsegments FIXME once.
2007-04-04 12:45:57 +02:00
Felix Nawothnig
413b9b2ad2
wined3d: Downgrade some ERRs to FIXMEs.
2007-04-04 12:45:49 +02:00
Francois Gouget
0081b430e1
Assorted spelling and English fixes.
2007-04-03 11:23:12 +02:00
Felix Nawothnig
18c9e5d5d0
wined3d: Use GL_TEXTURE_2D for dummy textures.
2007-03-30 11:25:23 +02:00
Felix Nawothnig
6760ccac1c
wined3d: Fix broken ERR() message.
2007-03-30 11:25:02 +02:00
Felix Nawothnig
335f978e91
wined3d: Only disable GL_TEXTURE_CUBE_MAP_ARB if supported.
2007-03-30 11:24:56 +02:00
Jan Zerebecki
09e7791cba
wined3d: Print lastpixel state fixme only once.
2007-03-28 12:43:14 +02:00
Stefan Dösinger
5e405d3b26
wined3d: Disable texture coordinate arrays on the correct unit.
2007-03-27 12:30:50 +02:00
Fabian Bieler
7cedd56d24
wined3d: Implement linear fog with pixel shader.
2007-03-23 12:30:23 +01:00
Stefan Dösinger
65c447082a
wined3d: Fix client gl unit selection.
...
I forgot that when re-enabling register combiners during the state
management rewrite.
2007-03-19 12:18:07 +01:00
Stefan Dösinger
4b445124d3
direct3d: Add a fixed function fog test.
2007-03-15 12:14:50 +01:00
Stefan Huehner
4d1d01f266
Mark several functions as static.
2007-03-13 13:35:12 +01:00
H. Verbeet
6998d0d472
wined3d: Remove a redundant check in handleStreams().
2007-03-13 11:56:10 +01:00
H. Verbeet
05d461aee9
wined3d: Remove some redundant checks in the vertexdeclaration() state handler.
2007-03-13 11:56:02 +01:00
H. Verbeet
30ee071eb9
wined3d: Disable vertex shaders when transformed vertices are used.
2007-03-13 11:55:55 +01:00
H. Verbeet
23cd4475f6
wined3d: Correct various texture limits checks.
2007-03-13 11:53:28 +01:00
Stefan Dösinger
81aeae3249
wined3d: Do not specify the viewport origin upside down when doing offscreen rendering.
...
The gl viewport origin is the lower left corner of the window, in d3d
it is the upper right corner. This is corrected when setting the
viewport. However, when we are doing offscreen rendering, this is
reversed. So do not flip the viewport origin when rendering offscreen.
2007-03-06 22:17:28 +01:00
Stefan Dösinger
6886b237ad
wined3d: Disable depth stencil related states without a depth stencil buffer.
...
Except with fbos, it is not possible to remove the depth stencil
buffer from the opengl frame buffer, so when the d3d app sets a NULL
depth stencil disable all states that work with the depth stencil
buffer.
2007-03-06 22:17:15 +01:00
Stefan Dösinger
e0a271ee0c
wined3d: Adjust the rhw transformation for offscreen rendering.
2007-03-06 22:15:57 +01:00
Stefan Dösinger
2cdced8193
wined3d: Adjust the rhw transformation for offscreen rendering.
...
When drawing processed vertices with the fixed function pipeline the
projection matrix is set up to map y values from 0 to height to 1.0;
-1.0(gl and d3d coord systems are flipped). This moves the y axis to
the bottom of the drawing area. When later on the y inversion matrix
is applied for offscreen rendering, the coordinate system will get
flipped out of the viewport.
This patch sets the Y range up upside down when using offscreen
rendering, so the invymat will flip it to the correct position. This
has to happen before the 0.375 pixel correction.
2007-03-05 15:31:36 +01:00
H. Verbeet
3aaabf4e27
wined3d: Properly check the clipplane index against the limit.
2007-03-05 12:06:33 +01:00
Stefan Dösinger
5afbfd0359
wined3d: Clip planes with vertex shaders.
2007-02-28 21:09:58 +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
38d961a749
wined3d: Leave the fog state handler after disabling fog.
2007-02-28 21:05:14 +01:00
Vitaliy Margolen
51ee7f4978
wined3d: Use application provided fog range when fog is enabled.
2007-02-26 13:58:09 +01:00
Stefan Dösinger
76b7cac7af
wined3d: Light parameter fixes.
2007-02-21 10:55:31 +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
762e227994
wined3d: Only scream about unsupported vertex blending when it is used.
2007-02-19 13:10:24 +01:00
Stefan Dösinger
266fc77cf0
wined3d: Lighting is calculated for vertices without normals.
...
It still should be disabled for transformed vertices though.
2007-02-19 13:08:35 +01:00
H. Verbeet
a2fde7d912
wined3d: Get rid of any remaining d3d9 stuff in state.c.
2007-02-15 14:20:56 +01:00
Stefan Dösinger
b3f96f4327
wined3d: alphaop fixes for color keying.
2007-02-15 11:40:57 +01:00
Stefan Dösinger
d4c4e5d167
wined3d: Enable color keying only for surfaces without an alpha channel.
2007-02-15 11:40:44 +01:00
Stefan Dösinger
49a49fcfec
wined3d: Load one bump mapping environment matrix into pixel shaders if needed.
2007-02-15 11:36:01 +01:00
Stefan Dösinger
efbd6d6332
wined3d: Give the bump env matrices their own states.
2007-02-15 11:35:52 +01:00
H. Verbeet
498f9c507a
wined3d: Use WINED3DSTREAMSOURCE_INSTANCEDATA rather than D3DSTREAMSOURCE_INSTANCEDATA.
2007-02-15 11:15:25 +01:00
Francois Gouget
536e738552
Assorted spelling fixes.
2007-02-14 21:03:57 +01:00
Stefan Dösinger
0feddccfe3
wined3d: Instancing emulation.
2007-02-14 20:46:25 +01:00
Stefan Dösinger
93cd7ef7ff
wined3d: Correctly load vertex attributes with a stride of 0.
2007-02-14 20:46:02 +01:00
Stefan Dösinger
174b6321eb
wined3d: Move lights to the state table.
2007-02-14 20:45:15 +01:00
Stefan Dösinger
acadf3f241
wined3d: Replace the light chain with a hashmap.
2007-02-14 20:44:58 +01:00
H. Verbeet
32e5cac2be
wined3d: Get rid of the vertexDeclaration field in IWineD3DVertexShaderImpl.
2007-02-14 13:54:29 +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
H. Verbeet
2a309f503d
wined3d: Cleanup the pixelshader() state handler a little bit.
2007-02-14 12:21:46 +01:00
H. Verbeet
1636bc1aec
wined3d: Always select the correct shader pair in the vertexdeclaration() state handler.
2007-02-14 12:21:41 +01:00
Stefan Dösinger
380930dc54
wined3d: Store dirty states per context.
2007-02-13 11:55:07 +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
Francois Gouget
b0bde6b87c
Assorted spelling fixes.
2007-01-18 12:56:52 +01:00
H. Verbeet
d429ff5b69
wined3d: When switching color material, apply the material we were previously tracking.
...
This fixes a regression introduced by 329670c7f1
.
2007-01-18 12:08:57 +01:00
H. Verbeet
612a74a994
wined3d: Don't set Parm when isDiffuseSupplied is FALSE in state_colormat(), it isn't used anyway.
2007-01-18 12:08:45 +01:00
Stefan Dösinger
354fdae524
wined3d: Implement per stream offsets.
2007-01-17 11:24:04 +01:00
Stefan Dösinger
b07c48c499
wined3d: Do not activate / deactivate texture dimensions twice.
2007-01-10 22:03:28 +01:00
Stefan Dösinger
08c7b3947b
wined3d: Fix a capital letter in a parameter name.
2007-01-10 22:03:09 +01:00
Stefan Dösinger
7fd246ebe3
wined3d: Add copyright statements to state.c.
2007-01-10 22:02:23 +01:00
Stefan Dösinger
fe6165db19
wined3d: Attempt to remove some tabs smuggled in by xcode.
2007-01-10 22:02:10 +01:00
Stefan Dösinger
953f8d7b37
wined3d: Do not warn about unsupported point sizes if the default values are set.
2007-01-10 22:01:57 +01:00
Stefan Dösinger
60ea760945
wined3d: Avoid false resultarg warnings.
2007-01-10 22:01:46 +01:00
Stefan Dösinger
9b4920996e
wined3d: Move material applying to the state table.
2007-01-10 22:00:34 +01:00
Michael Stefaniuc
33af3c5c83
janitorial: Use the C standard for multiline strings.
2007-01-10 12:28:19 +01:00
Stefan Dösinger
577f8db7cf
wined3d: Fix np2 textures.
2007-01-08 21:00:23 +01:00
Stefan Dösinger
2e55c196ee
wined3d: Remove some unneeded context cache members from the device.
2007-01-08 21:00:04 +01:00
Stefan Dösinger
fdb62cbaeb
wined3d: Do not activate vertex shaders needlessly.
2007-01-08 20:58:21 +01:00
Stefan Dösinger
09ab812e79
wined3d: Avoid negative draw start indices.
2007-01-08 20:58:11 +01:00
Stefan Dösinger
8e37fcd266
wined3d: Move applying shader constants to the state table.
2007-01-08 20:57:57 +01:00
Stefan Dösinger
799770b992
wined3d: Apply shaders in their state handlers.
2007-01-08 20:56:51 +01:00
Stefan Dösinger
7e314011fb
wined3d: Move debugging fixmes from drawprim to the stream source handler.
2007-01-08 20:56:36 +01:00
Stefan Dösinger
27bac24acb
wined3d: Re-add the fixed function stream source trace.
2007-01-08 20:56:06 +01:00
Stefan Dösinger
d5f18e6a63
wined3d: Move applying the gl stream sources to the state table.
2007-01-08 20:55:51 +01:00
Chris Robinson
d8c67c3415
wined3d: state_pointsprite should apply to all texture units.
2007-01-04 21:36:59 +01:00
H. Verbeet
7ae71a92a2
wined3d: Skip sampler state application for stages that aren't mapped to a texture unit.
2007-01-04 21:23:42 +01:00