Commit Graph

3508 Commits

Author SHA1 Message Date
Henri Verbeet b7812932bc wined3d: Don't respecify compressed textures in surface_upload_data().
Passing NULL to glCompressedTexImage2DARB() doesn't work particularly well
when both client storage and PBOs are enabled. Also, two years is long enough
to give driver developers a chance to fix the bug this was supposed to work
around.
2009-08-03 15:01:55 +02:00
Henri Verbeet da1e5573da wined3d: Rename WineD3DContext to struct wined3d_context. 2009-08-03 15:01:48 +02:00
Henri Verbeet 1d647283d5 wined3d: Don't use the GL texture flags to determine if a format is a depth stencil in CheckDepthStencilCapability().
The OpenGL implementation might not support ARB_depth_texture, but that
doesn't mean we can't use the format for the depth buffer.
2009-08-03 15:01:34 +02:00
Henri Verbeet 43bfb240ad wined3d: Use the context's current render target the get the swapchain drawable size.
"surface" might point to the frontbuffer while we're rendering to the
backbuffer, etc.
2009-08-03 15:01:25 +02:00
Henri Verbeet 0047c55e86 wined3d: Handle destruction of a context's current render target. 2009-08-03 15:01:18 +02:00
Henri Verbeet 9baf7864c5 wined3d: Return proper NULLs from CreateContext(). 2009-07-24 13:11:01 +02:00
Henri Verbeet be536ebe2f wined3d: Get rid of activeContext. 2009-07-24 13:10:57 +02:00
Henri Verbeet c8fe24d29e wined3d: Explicitly pass the context to surface_load_ds_location(). 2009-07-24 13:10:47 +02:00
Henri Verbeet 2c71b85334 wined3d: Explicitly pass the context to get_drawable_size(). 2009-07-24 13:10:37 +02:00
Henri Verbeet fb77678e9f wined3d: Manage event queries in the context. 2009-07-24 13:10:28 +02:00
Henri Verbeet 4ab7af6575 wined3d: Manage occlusion queries in the context. 2009-07-24 13:10:19 +02:00
Leonid Lobachev f6cc091d75 wined3d: Add missing calling convention specifiers. 2009-07-23 13:20:29 +02:00
Henri Verbeet 357ea123d9 wined3d: get_drawable_size() needs a context. 2009-07-23 11:22:25 +02:00
Henri Verbeet ea2caa9ba1 wined3d: Return the activated context from ActivateContext(). 2009-07-23 11:22:22 +02:00
Henri Verbeet 85e2c05e4f wined3d: Explicitly pass the wined3d context to context_apply_draw_buffer(). 2009-07-23 11:22:18 +02:00
Henri Verbeet 9253bbcb05 wined3d: Get rid of last_device. 2009-07-23 11:22:13 +02:00
Henri Verbeet 401e99b0c0 wined3d: Remove some unnecessary code.
Now that we don't depend on activeContext and lastActiveRenderTarget to be
non-NULL this code can go.
2009-07-23 11:22:08 +02:00
Henri Verbeet 57ccdb7e36 wined3d: Don't reuse contexts marked for destruction. 2009-07-23 11:22:03 +02:00
Henri Verbeet e5d621c081 wined3d: Try to reuse the thread's current context in FindContext(). 2009-07-22 14:42:51 +02:00
Henri Verbeet 9ceda3a6fd wined3d: Move some context selection code from ActivateContext() to FindContext(). 2009-07-22 14:42:51 +02:00
Henri Verbeet 219d3abdd1 wined3d: Simplify FindContext() a bit. 2009-07-22 14:42:51 +02:00
Henri Verbeet ce436a76e2 wined3d: Get rid of getActiveContext(). 2009-07-22 14:42:50 +02:00
Henri Verbeet 377cda97e7 wined3d: Avoid destroying contexts that are current in another thread. 2009-07-22 14:42:50 +02:00
Henri Verbeet 1a43030664 wined3d: Keep track of a thread's wined3d context. 2009-07-22 14:42:50 +02:00
Henri Verbeet c114b04016 wined3d: Remove the useless lastThread field from IWineD3DDeviceImpl. 2009-07-21 14:23:06 +02:00
Henri Verbeet 2d7500600b wined3d: Get rid of lastActiveRenderTarget. 2009-07-21 14:23:02 +02:00
Henri Verbeet 223b9d5c01 wined3d: Get rid of lastActiveRenderTarget in FindContext(). 2009-07-21 14:22:58 +02:00
Henri Verbeet 8402519c7a wined3d: Call ModifyLocation on "target" in IWineD3DDeviceImpl_ClearSurface().
This is the same pointer, but lastActiveRenderTarget will go away.
2009-07-21 14:22:53 +02:00
Henri Verbeet 6c0c1671b2 wined3d: Keep track of a context's current render target. 2009-07-21 14:22:49 +02:00
Henri Verbeet ee4d18cc83 wined3d: Pass NULL to ActivateContext() when we don't need a specific target.
Once we keep track of the wined3d context for each thread,
lastActiveRenderTarget won't do what we want here.
2009-07-21 14:22:44 +02:00
Henri Verbeet e6f55c2650 wined3d: Remove an unused struct member. 2009-07-20 13:35:15 +02:00
Henri Verbeet 3a63552fd1 wined3d: Skip some unnecessary FBO binds. 2009-07-20 13:35:11 +02:00
Henri Verbeet dedd62c0e2 wined3d: Recognize the SM4 log opcode. 2009-07-20 13:35:07 +02:00
Stefan Dösinger e06997359f wined3d: Set the highest dirty marker after marking shader constants dirty. 2009-07-20 12:23:14 +02:00
Stefan Dösinger cd7f43b00d wined3d: Don't activate a context unless we need one. 2009-07-20 12:23:07 +02:00
Henri Verbeet a80247f58b wined3d: Avoid redundant FBO binds.
Apparently this is an expensive operation for certain drivers, even if the
binding doesn't actually change.
2009-07-17 11:22:07 +02:00
Henri Verbeet 710f6f8456 wined3d: Always use context_bind_fbo() to change the framebuffer binding. 2009-07-17 11:22:07 +02:00
Henri Verbeet 7485173849 wined3d: Pass the context instead of the device to the various context functions. 2009-07-17 11:22:07 +02:00
Henri Verbeet a01616a6c3 wined3d: Store a pointer to wined3d_gl_info in struct WineD3DContext. 2009-07-17 11:22:07 +02:00
Henri Verbeet 43e6686a78 wined3d: Rename _WineD3D_GL_Info to struct wined3d_gl_info. 2009-07-17 11:22:07 +02:00
Henri Verbeet 50f5abcad9 wined3d: Recognize the SM4 dp4 opcode. 2009-07-16 16:03:40 +02:00
Henri Verbeet 03acf9d207 wined3d: Recognize the SM4 dp3 opcode. 2009-07-16 16:03:36 +02:00
Henri Verbeet 7539cd5c85 wined3d: Recognize the SM4 rsq opcode. 2009-07-16 16:03:32 +02:00
Henri Verbeet d6ffe00cd2 wined3d: Recognize the SM4 constant buffer register type. 2009-07-16 16:03:28 +02:00
Henri Verbeet c4f8845bc9 wined3d: Recognize SM4 arrays.
This is for SM4 constant buffers, which look like cb<x>[<y>]. At some later
point we should probably translate pre-SM4 constants to constant buffers.
2009-07-16 16:03:23 +02:00
Stefan Dösinger 9d14dcab68 wined3d: Use the unmodified source in MOVA.
The code removed by this patch was a leftover from the time when we tried to
emulate MOVA with a plain ARL, which only supports one source in plain ARB.
This breaks the more sophisticated MOVA and 4 component ADDR register we have
now however.
2009-07-16 11:15:45 +02:00
Stefan Dösinger 6a04c2d5cc wined3d: Don't call glGetError if nobody is listening. 2009-07-16 11:15:40 +02:00
Henri Verbeet ae8e8ac73f wined3d: Check the return values for some wgl calls. 2009-07-15 13:24:24 +02:00
Henri Verbeet 476c83522b wined3d: Remove the remains of an ATI_fragment_shader hack.
This was originally added as a workaround for a Mesa bug by commit
ddf52dda15. The other half of the hack has since
been removed. This code causes problems when wglDeleteContext() from a
different thread causes our current context to be destroyed, since
wglGetCurrentContext() will return a destroyed context in that case. That is a
flaw in our wgl implementation, since wglDeleteContext() shouldn't allow a
context that's current in a different thread to be destroyed, but this hack is
a bad idea regardless.
2009-07-15 13:24:19 +02:00
Stefan Dösinger 3c2fa6aea4 wined3d: Set the depth blit helper texture address mode to clamp.
On ATI cards we use the driver's GL_ARB_texture_non_power_of_two emulation to
support conditional NP2 textures without having to deal with the denormalized
coordinates. The default GL_TEXTURE_2D address mode is incompatible with
GL_ARB_texture_rectangle however.
2009-07-15 13:17:12 +02:00