wined3d: Make it clear that glFlush and glFinish are WGL functions.
This commit is contained in:
parent
21f4e42a98
commit
52731a80c8
|
@ -4854,7 +4854,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_EndScene(IWineD3DDevice *iface) {
|
||||||
|
|
||||||
ActivateContext(This, NULL, CTXUSAGE_RESOURCELOAD);
|
ActivateContext(This, NULL, CTXUSAGE_RESOURCELOAD);
|
||||||
/* We only have to do this if we need to read the, swapbuffers performs a flush for us */
|
/* We only have to do this if we need to read the, swapbuffers performs a flush for us */
|
||||||
glFlush();
|
wglFlush();
|
||||||
/* No checkGLcall here to avoid locking the lock just for checking a call that hardly ever
|
/* No checkGLcall here to avoid locking the lock just for checking a call that hardly ever
|
||||||
* fails
|
* fails
|
||||||
*/
|
*/
|
||||||
|
@ -5067,7 +5067,7 @@ HRESULT IWineD3DDeviceImpl_ClearSurface(IWineD3DDeviceImpl *This, IWineD3DSurfa
|
||||||
|
|
||||||
if (SUCCEEDED(IWineD3DSurface_GetContainer((IWineD3DSurface *)target, &IID_IWineD3DSwapChain, (void **)&swapchain))) {
|
if (SUCCEEDED(IWineD3DSurface_GetContainer((IWineD3DSurface *)target, &IID_IWineD3DSwapChain, (void **)&swapchain))) {
|
||||||
if (target == (IWineD3DSurfaceImpl*) swapchain->frontBuffer) {
|
if (target == (IWineD3DSurfaceImpl*) swapchain->frontBuffer) {
|
||||||
glFlush();
|
wglFlush();
|
||||||
}
|
}
|
||||||
IWineD3DSwapChain_Release((IWineD3DSwapChain *) swapchain);
|
IWineD3DSwapChain_Release((IWineD3DSwapChain *) swapchain);
|
||||||
}
|
}
|
||||||
|
|
|
@ -576,7 +576,7 @@ static void test_pbo_functionality(struct wined3d_gl_info *gl_info)
|
||||||
checkGLcall("Loading the PBO test texture");
|
checkGLcall("Loading the PBO test texture");
|
||||||
|
|
||||||
GL_EXTCALL(glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_ARB, 0));
|
GL_EXTCALL(glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_ARB, 0));
|
||||||
glFinish(); /* just to be sure */
|
wglFinish(); /* just to be sure */
|
||||||
|
|
||||||
memset(check, 0, sizeof(check));
|
memset(check, 0, sizeof(check));
|
||||||
glGetTexImage(GL_TEXTURE_2D, 0, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, check);
|
glGetTexImage(GL_TEXTURE_2D, 0, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, check);
|
||||||
|
@ -4646,11 +4646,11 @@ BOOL InitAdapters(IWineD3DImpl *This)
|
||||||
* otherwise because we have to use winex11.drv's override
|
* otherwise because we have to use winex11.drv's override
|
||||||
*/
|
*/
|
||||||
#ifdef USE_WIN32_OPENGL
|
#ifdef USE_WIN32_OPENGL
|
||||||
glFinish = (void*)GetProcAddress(mod_gl, "glFinish");
|
wglFinish = (void*)GetProcAddress(mod_gl, "glFinish");
|
||||||
glFlush = (void*)GetProcAddress(mod_gl, "glFlush");
|
wglFlush = (void*)GetProcAddress(mod_gl, "glFlush");
|
||||||
#else
|
#else
|
||||||
glFinish = (void*)pwglGetProcAddress("wglFinish");
|
wglFinish = (void*)pwglGetProcAddress("wglFinish");
|
||||||
glFlush = (void*)pwglGetProcAddress("wglFlush");
|
wglFlush = (void*)pwglGetProcAddress("wglFlush");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
glEnableWINE = glEnable;
|
glEnableWINE = glEnable;
|
||||||
|
|
|
@ -3814,7 +3814,7 @@ static HRESULT IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *This, const
|
||||||
|
|
||||||
/* Flush in case the drawable is used by multiple GL contexts */
|
/* Flush in case the drawable is used by multiple GL contexts */
|
||||||
if(dstSwapchain && (This == (IWineD3DSurfaceImpl *) dstSwapchain->frontBuffer || dstSwapchain->num_contexts >= 2))
|
if(dstSwapchain && (This == (IWineD3DSurfaceImpl *) dstSwapchain->frontBuffer || dstSwapchain->num_contexts >= 2))
|
||||||
glFlush();
|
wglFlush();
|
||||||
|
|
||||||
/* TODO: If the surface is locked often, perform the Blt in software on the memory instead */
|
/* TODO: If the surface is locked often, perform the Blt in software on the memory instead */
|
||||||
/* The surface is now in the drawable. On onscreen surfaces or without fbos the texture
|
/* The surface is now in the drawable. On onscreen surfaces or without fbos the texture
|
||||||
|
@ -4680,7 +4680,7 @@ static inline void surface_blt_to_drawable(IWineD3DSurfaceImpl *This, const RECT
|
||||||
/* Make sure to flush the buffers. This is needed in apps like Red Alert II and Tiberian SUN that use multiple WGL contexts. */
|
/* Make sure to flush the buffers. This is needed in apps like Red Alert II and Tiberian SUN that use multiple WGL contexts. */
|
||||||
if(((IWineD3DSwapChainImpl*)swapchain)->frontBuffer == (IWineD3DSurface*)This ||
|
if(((IWineD3DSwapChainImpl*)swapchain)->frontBuffer == (IWineD3DSurface*)This ||
|
||||||
((IWineD3DSwapChainImpl*)swapchain)->num_contexts >= 2)
|
((IWineD3DSwapChainImpl*)swapchain)->num_contexts >= 2)
|
||||||
glFlush();
|
wglFlush();
|
||||||
|
|
||||||
IWineD3DSwapChain_Release(swapchain);
|
IWineD3DSwapChain_Release(swapchain);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -1141,10 +1141,13 @@ void (WINE_GLAPI *glViewport) (GLint x, GLint y, GLsizei width, GLsizei height);
|
||||||
void (WINE_GLAPI *glPointParameterfv) (GLenum pname, const GLfloat *params);
|
void (WINE_GLAPI *glPointParameterfv) (GLenum pname, const GLfloat *params);
|
||||||
|
|
||||||
/* glFinish and glFlush are always loaded from opengl32.dll, thus they always have
|
/* glFinish and glFlush are always loaded from opengl32.dll, thus they always have
|
||||||
* __stdcall calling convention
|
* __stdcall calling convention.
|
||||||
|
*
|
||||||
|
* They are wgl functions and must not be called inside the gl lock, give them a
|
||||||
|
* name that makes this clear
|
||||||
*/
|
*/
|
||||||
void (__stdcall *glFinish) ();
|
void (__stdcall *wglFinish) ();
|
||||||
void (__stdcall *glFlush) ();
|
void (__stdcall *wglFlush) ();
|
||||||
|
|
||||||
/* WGL functions */
|
/* WGL functions */
|
||||||
HGLRC (WINAPI *pwglCreateContext)(HDC);
|
HGLRC (WINAPI *pwglCreateContext)(HDC);
|
||||||
|
|
Loading…
Reference in New Issue