Henri Verbeet
a37782595f
wined3d: Fix cube texture creation error handling.
2009-01-13 15:20:56 +01:00
Henri Verbeet
d030cbdad2
wined3d: Fix volume texture creation error handling.
2009-01-13 15:20:52 +01:00
Henri Verbeet
99d3c62163
wined3d: Fix surface creation error handling.
2009-01-13 15:20:44 +01:00
Henri Verbeet
2654a148de
wined3d: Fix texture creation error handling.
...
Doing the levels calculation before the object is created prevents leaking
resources and avoids changing baseTexture.levels after it's been initialized
by basetexture_init().
2009-01-13 15:20:38 +01:00
Henri Verbeet
e4cfbdd4f7
wined3d: Get rid of D3DCREATERESOURCEOBJECTINSTANCE.
2009-01-13 15:20:28 +01:00
Henri Verbeet
b069321650
wined3d: Fix and unify shader creation error handling.
2009-01-12 13:22:07 +01:00
Henri Verbeet
894edc49cc
wined3d: Get rid of D3DCREATESHADEROBJECTINSTANCE.
2009-01-12 13:22:02 +01:00
Henri Verbeet
87627c811e
wined3d: Get rid of D3DINITIALIZEBASETEXTURE.
2009-01-12 13:21:56 +01:00
Henri Verbeet
00a4b85fa9
wined3d: Update the pixelshader when the texture type changes.
2009-01-12 13:21:51 +01:00
Stefan Dösinger
365e1f3b07
wined3d: Avoid hooking non-fog glEnable/glDisable calls.
...
This prevents fallout from the GL_EXT_fog_coord emulation. glEnable
and glDisable calls other than those that change GL_FOG are not
hooked. The glEnableWINE and glDisableWINE functions can be used to
add other hooks too if ever needed.
2009-01-12 13:03:47 +01:00
Stefan Dösinger
1deafcb5a7
wined3d: Split the remains of state_fog.
2009-01-12 13:02:49 +01:00
Stefan Dösinger
061087811f
wined3d: Remove the apply_pshader_fog state handler.
...
The fog doesn't depend on pixel shaders any longer(but still vice
versa), so we don't need this state any more.
2009-01-12 13:02:39 +01:00
Stefan Dösinger
2dd18635c9
wined3d: Move fogdensity and fogcolor to the fragment pipeline.
2009-01-12 13:02:29 +01:00
Stefan Dösinger
e61aa24aa3
wined3d: Use the ARB fog option in ARB_fragment_program shaders.
...
This is the "replacement" for the fog coord optimization removed in
the previous patch.
2009-01-12 13:02:19 +01:00
Stefan Dösinger
7c21147dcd
wined3d: Remove the pixelshader fogstart/fogend optimization.
2009-01-12 13:01:49 +01:00
Rico Schüller
5e79b0608d
wined3d: Add a checkGLcall() after glReadBuffer.
2009-01-10 18:04:28 +01:00
Allan Tong
29dd286d79
wined3d: Add code to cleanup device multistate_funcs.
2009-01-10 17:43:11 +01:00
Stefan Dösinger
a69c86d3f5
ddrawex: Add a test for the permanent DC function.
2009-01-09 16:26:06 +01:00
Henri Verbeet
9d8c6326c0
wined3d: Remove stray tabs.
2009-01-09 14:06:14 +01:00
Henri Verbeet
ac914262ed
wined3d: Rewrite BeginStateBlock() to use CreateStateBlock() instead of duplicating the code.
2009-01-09 14:06:14 +01:00
Henri Verbeet
9d523ebd8f
wined3d: Remove a silly check in drawStridedInstanced().
2009-01-09 14:06:14 +01:00
Henri Verbeet
92488ca7c1
wined3d: Simplify checking if an attribute is used in loadNumberedArrays().
2009-01-09 14:06:14 +01:00
Henri Verbeet
d9e58e6591
wined3d: Failing HeapAlloc() should be an ERR.
2009-01-09 14:06:13 +01:00
Henri Verbeet
e028e3f7bd
wined3d: Use GL_ALIASED_POINT_SIZE_RANGE to retrieve the max point size.
2009-01-09 14:06:13 +01:00
Henri Verbeet
45a61d1ac4
wined3d: Enable GL_HALF_FLOAT_NV when NV_HALF_FLOAT is supported.
...
This makes more sense than the other way around.
2009-01-08 13:21:56 +01:00
Henri Verbeet
b1812c690c
wined3d: Add support for EXT_vertex_array_bgra.
...
This allows us to skip BGRA->RGBA color conversion for vertex attributes if
this extension is present.
2009-01-08 13:21:51 +01:00
Henri Verbeet
6791e6b752
wined3d: Simplify handling of swizzled attributes.
...
This should also be a little bit faster.
2009-01-08 13:21:43 +01:00
Henri Verbeet
cc447eac55
wined3d: Move position_transformed out of u.s in struct WineDirect3DVertexStridedData.
2009-01-08 13:21:31 +01:00
Henri Verbeet
1a1f5ec69d
wined3d: Cleanup drawStridedFast().
...
Remove some uncessary code and use more descriptive parameter names. Note that
max_vertex_idx isn't the same as "minIndex + calculatedNumberOfindices - 1"
but rather "minIndex + numberOfVertices - 1". calculatedNumberOfindices just
specifies the number of vertices that's drawn, while numberOfVertices
specifies the range of vertices that's drawn.
2009-01-08 13:21:23 +01:00
Henri Verbeet
5f8c62e45d
wined3d: Remove a redundant parameter to drawPrimitive().
...
startIdx should be the first index to draw, either from the vertex
array or the index array, depending on if the draw is indexed or
not. Having both at the same time wouldn't make sense.
2009-01-07 12:22:12 +01:00
Henri Verbeet
46eabd5b16
wined3d: Don't delete queries from the wrong context.
2009-01-07 12:22:02 +01:00
Henri Verbeet
0e8ed9bebb
wined3d: Simplify IWineD3DOcclusionQueryImpl_GetData().
2009-01-07 12:21:58 +01:00
Henri Verbeet
ab275ab487
wined3d: Make calling a query from the wrong context a FIXME.
...
We want to know if this happens a lot. If the query is always called
from a different context than the one that created it, occlusion
culling would effectively be disabled, which could have a significant
performance impact, depending on the type of objects being culled.
2009-01-07 12:21:49 +01:00
Henri Verbeet
691894d1ab
wined3d: Also apply the last sampler state.
...
In practice we don't implement WINED3DSAMP_DMAPOFFSET anyway, so this
is unlikely to make much of a difference.
2009-01-07 12:21:37 +01:00
Henri Verbeet
bddf5e76ea
wined3d: Convert textureState to a bitmap in struct SAVEDSTATES.
2009-01-06 12:45:52 +01:00
Henri Verbeet
a8697d90e4
wined3d: Renumber WINED3DTEXTURESTAGESTATETYPE enum elements.
...
Saves some space by not having unused entries is the arrays tracking these
states.
2009-01-06 12:45:43 +01:00
Henri Verbeet
e8ba733706
wined3d: Remove unused enum elements from WINED3DTEXTURESTAGESTATETYPE.
2009-01-05 12:41:31 +01:00
Henri Verbeet
fd33f0f97f
wined3d: Convert samplerState to a bitmap in struct SAVEDSTATES.
2009-01-05 12:41:17 +01:00
Henri Verbeet
c33b38117e
wined3d: Convert renderState to a bitmap in struct SAVEDSTATES.
2009-01-05 12:41:08 +01:00
Henri Verbeet
fc39831e4c
wined3d: Convert transform to a bitmap in struct SAVEDSTATES.
2009-01-05 12:40:57 +01:00
Stefan Dösinger
616ea53226
ddraw: Add a test for IDirectDrawSurface::GetDC.
2009-01-03 15:14:38 +01:00
Vincent Pelletier
23dcf61e61
wined3d: Make WARN about oversized texture output surface and texture sizes.
2009-01-03 14:55:31 +01:00
Henri Verbeet
9a889f6b0b
wined3d: Convert textures to a bitmap in struct SAVEDSTATES.
2009-01-03 14:55:31 +01:00
Henri Verbeet
39909f2a06
wined3d: Handle WINED3DFVF_XYZW in get_flexible_vertex_size().
...
Spotted by Chris Robinson.
2009-01-03 14:55:31 +01:00
Henri Verbeet
3c14b3936f
wined3d: Don't bother with the GLSL info log if nobody's looking.
2009-01-03 14:55:30 +01:00
Henri Verbeet
2e0212e998
wined3d: Fix the line number for some fglrx spam.
...
We added a #version line a while ago, so the line number for the
warning changed.
2009-01-03 14:55:30 +01:00
Allan Tong
fdd512deeb
wined3d: Add mapping for MOV instructions in shader_hw_map2gl.
2009-01-02 11:53:35 +01:00
Henri Verbeet
3b5c75d991
wined3d: Convert clipplane to a bitmap in struct SAVEDSTATES.
2009-01-02 11:53:04 +01:00
Henri Verbeet
52a900d4e8
wined3d: Convert streamSource and streamFreq to bitmaps in struct SAVEDSTATES.
2009-01-02 11:52:34 +01:00
Henri Verbeet
457037f4de
wined3d: Fix the value of HIGHEST_TRANSFORMSTATE.
...
The highest transform state should be 511.
2009-01-02 11:52:02 +01:00
Henri Verbeet
73e042496c
wined3d: Fix a few format specifiers in IWineD3DStateBlockImpl_Capture().
2009-01-02 11:51:54 +01:00
Henri Verbeet
0657e8d87a
wined3d: Use slightly nicer loops in device_map_fixed_function_samplers().
2009-01-02 11:51:46 +01:00
Henri Verbeet
3920d42f71
wined3d: Convert some BOOLs to bitfields in struct SAVEDSTATES.
2008-12-31 12:26:57 +01:00
Henri Verbeet
29a0d06518
wined3d: Convert some BOOLs to bitfields in struct IWineD3DDeviceImpl.
...
Also fills a 3 byte hole.
2008-12-31 12:26:33 +01:00
Henri Verbeet
3f12f59aa4
wined3d: Convert some BOOLs to bitfields in struct WineD3DContext.
...
Also happens to fill two 3 byte holes.
2008-12-31 12:26:23 +01:00
Henri Verbeet
813c7ed202
wined3d: Remove an unused field from the device.
2008-12-31 12:26:02 +01:00
Henri Verbeet
2b926db50d
wined3d: Make use_vs() and use_ps() work on a stateblock instead of a device.
...
Most callers work on a stateblock rather than a device, and the main fields
we check (vertexShader and pixelShader) are part of the stateblock as well.
2008-12-31 12:25:56 +01:00
Henri Verbeet
f197e8b1ca
wined3d: Handle D3DFVF_XYZW in ConvertFvfToDeclaration().
...
This is similar to 0bdab5f80c
.
2008-12-30 11:36:57 +01:00
Henri Verbeet
007c648c20
d3d: Correct some debug levels.
2008-12-30 11:36:50 +01:00
Henri Verbeet
6f5af4047f
wined3d: Get rid of the glname field in struct SHADER_OPCODE.
...
It's only used for shader_hw_map2gl() and vshader_hw_rsq_rcp(), and we
can handle those the same way we handle the GLSL equivalents.
2008-12-30 11:36:35 +01:00
Henri Verbeet
29b826b39e
wined3d: D3DRS_POINTSIZE_MIN is initially 0.0f for d3d8.
2008-12-29 12:16:52 +01:00
Henri Verbeet
de494ffe3c
wined3d: The initial value for D3DRS_POINTSIZE_MAX depends on the pointsize limit.
2008-12-29 12:16:42 +01:00
Francois Gouget
2166afceb7
Assorted spelling fixes.
2008-12-29 11:36:49 +01:00
Vincent Pelletier
143bd931b6
wined3d: Detect intel 945 GM.
2008-12-29 11:35:36 +01:00
Nick Burns
9dea6f7de5
wined3d: Fix glReadPixels call from read_from_framebuffer.
2008-12-26 13:42:17 +01:00
Andrew Talbot
f9762d6082
wined3d: Remove superfluous semicolons.
2008-12-24 19:59:14 +01:00
Maarten Lankhorst
4eca43e702
winex11.drv/wined3d: Fix tsx11 calling convention.
2008-12-23 12:51:44 +01:00
Nick Burns
c52fd346ef
wined3d: Fix a couple of typos in wined3d_gl.h
2008-12-22 14:14:52 +01:00
Rico Schüller
b061f64228
wined3d: Fix compilation for Windows build.
2008-12-22 10:29:14 +01:00
Henri Verbeet
02e4c33611
wined3d: Consistently use .xyzw for vector components.
2008-12-20 11:11:55 +01:00
Henri Verbeet
33f344882c
wined3d: Remove a useless FIXME.
2008-12-20 11:11:49 +01:00
Henri Verbeet
4a19d893e5
wined3d: Only apply shader constants that changed.
...
This improves performance a bit for applications that use a lot of
shaders with a lot of constants.
2008-12-20 11:11:45 +01:00
Henri Verbeet
684017c071
wined3d: Properly reset the stateblock.
2008-12-20 11:11:39 +01:00
Henri Verbeet
ef7365a4cd
wined3d: Set the initial viewport in InitStartupStateBlock().
...
>From 8aa3fb7ceb6fb93abf71520c852403284a9f8c76 Mon Sep 17 00:00:00 2001
From: Henri Verbeet <hverbeet@codeweavers.com>
Date: Fri, 19 Dec 2008 19:21:55 +0100
Subject: wined3d: Set the initial viewport in InitStartupStateBlock().
2008-12-20 11:11:34 +01:00
Henri Verbeet
a52edd7810
wined3d: Don't call allocate_shader_constants() from Init3D().
...
CreateStateBlock() should take care of that.
2008-12-19 18:05:02 +01:00
Roderick Colenbrander
086d949877
wined3d: Add GL_RG16F / GL_RG32F support using ARB_texture_rg.
2008-12-19 17:49:20 +01:00
Roderick Colenbrander
331fe08b54
wined3d: Add R32F using ARB_texture_rg.
2008-12-19 17:49:08 +01:00
Roderick Colenbrander
8cb84458d3
wined3d: Add R16F using ARB_texture_rg.
2008-12-19 17:49:02 +01:00
Roderick Colenbrander
7238bce79d
wined3d: Add GL_ARB_texture_rg / GL_EXT_texture_swizzle support. These extensions are needed for more efficient R32F/RG32F support.
2008-12-19 17:48:55 +01:00
Stefan Dösinger
690cbe76ac
wined3d: Make pixelshaders disable fog properly.
...
This is a first step towards cleaning up the fog mess. The fog
parameter is added to the pixelshader compile args structure. That way
multiple pshaders are compiled for different fog settings, and the
pixel shader can remove the fog line if fog is not enabled. That way
we don't need special fog start and end settings, and this allows us
to implement EXP and EXP2 fog in the future too.
2008-12-19 17:17:16 +01:00
Stefan Dösinger
7d92b54a97
wined3d: Use the ps_compile_args struct in glsl.
2008-12-19 17:17:04 +01:00
Stefan Dösinger
20189eb4f8
wined3d: Make use of ps_compile_args in arb shader.
2008-12-19 17:16:56 +01:00
Stefan Dösinger
30d542c3dd
wined3d: Make use of the ps_compile_args structure in glsl_shader.
...
Only a first step, many more occasions need fixing. This is an easy
one though.
2008-12-19 17:16:50 +01:00
Stefan Dösinger
61e581abb4
wined3d: Pass the ps_compile_args structures to the shader generation code.
2008-12-19 17:16:39 +01:00
Henri Verbeet
d099dde7a9
wined3d: Track shader constants in the shader backend.
2008-12-18 13:17:02 +01:00
Henri Verbeet
a14dab4937
wined3d: Don't mark shader constants dirty when we're recording a stateblock.
2008-12-18 13:16:52 +01:00
Henri Verbeet
0968cb9b6c
wined3d: Fix constant setting for the ARB backend.
2008-12-18 13:16:46 +01:00
Francois Gouget
cf7c8a2425
wined3d: Fix double const.
2008-12-17 15:28:39 +01:00
Henri Verbeet
73823ef5f6
wined3d: Remove the shader_cleanup() method from the shader backend.
2008-12-17 14:02:24 +01:00
Henri Verbeet
78ad5de8da
wined3d: Record floating point pixel shader constants in EndStateBlock() as well.
2008-12-17 14:02:09 +01:00
Henri Verbeet
4adb342327
wined3d: Remove GetFVF() and SetFVF() from IWineD3DDevice.
2008-12-17 14:02:03 +01:00
Stefan Dösinger
704f9ea5d1
wined3d: Get rid of IWineD3DPixelShaderImpl_GenerateShader.
2008-12-16 14:36:25 +01:00
Stefan Dösinger
2aa7a7fe16
wined3d: Avoid loading opengl32.dll.
...
This confuses applications like Steam, which hook d3d9 and opengl
functions. It sees that the application uses opengl32, but it doesn't
realize that d3d9 is wrapped to opengl. Thus it starts messing around
with wined3d's wgl context. It usually tries to draw geometry with the
context, but cannot deal with some of the obscure extensions we have
activated.
2008-12-16 14:36:17 +01:00
Stefan Dösinger
4bc5e760b6
wined3d: Initialize max_combined_samplers properly.
...
Otherwise it will be 0 if GL_ARB_multitexture is not available.
2008-12-16 14:36:02 +01:00
Stefan Dösinger
5315b7992d
wined3d: Correct a stage number.
2008-12-16 14:34:20 +01:00
Stefan Dösinger
31da3c0578
wined3d: Emulate GL_EXT_fog_coord.
2008-12-16 14:34:11 +01:00
Stefan Dösinger
d707f018df
wined3d: Remove some needless initializations.
...
They're not needed, they are handled by the state management anyway.
2008-12-16 14:32:43 +01:00
Stefan Dösinger
4b268c79d7
wined3d: Some GL_EXT_fog_coord prototype fixes.
2008-12-16 14:32:29 +01:00
Stefan Dösinger
0dc0444c14
wined3d: Reinstall the G16R16F format surface load fixup.
...
We cannot remove this because we still have to load the surface as
RGB. The shader may take care of setting the blue channel to 1.0 now,
but we still get the red and green channels loaded incorrectly if we
don't insert a blue channel before loading.
2008-12-16 14:32:11 +01:00
Stefan Dösinger
6ec741e766
wined3d: Set up the shaders when delaying fixed func applying.
2008-12-16 14:31:39 +01:00