Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

130 lines
2.6 KiB

/******************************Module*Header*******************************\
* Module Name: wglsrv.c
*
* Routines to support OpenGL client-server implementation on Windows NT.
*
* Created: 01-17-1995
* Author: Hock San Lee [hockl]
*
* Copyright (c) 1995 Microsoft Corporation
\**************************************************************************/
#include "precomp.h"
#pragma hdrstop
#include "wgldef.h"
#ifndef _CLIENTSIDE_
HANDLE __wglCreateContext(HDC hdc, HDC hdcSrvIn, LONG iLayerPlane)
{
HDC hdcSrv;
HANDLE hrcSrv = (HANDLE) 0;
// Get the server-side DC handle.
if (hdcSrvIn != NULL)
{
hdcSrv = hdcSrvIn;
}
else
{
hdcSrv = GdiConvertDC(hdc);
}
if (hdcSrv == (HDC) 0)
{
WARNING1("__wglCreateContext: unexpected bad hdc: 0x%lx\n", hdc);
return(hrcSrv);
}
BEGINMSG(MSG_WGLCREATECONTEXT,WGLCREATECONTEXT)
pmsg->hdc = hdcSrv;
hrcSrv = (HANDLE) CALLSERVER();
ENDMSG
MSGERROR:
return(hrcSrv);
}
BOOL __wglDeleteContext(HANDLE hrcSrv)
{
BOOL bRet = FALSE;
BEGINMSG(MSG_WGLDELETECONTEXT,WGLDELETECONTEXT)
pmsg->hrc = (HGLRC) hrcSrv;
bRet = CALLSERVER();
ENDMSG
MSGERROR:
return(bRet);
}
BOOL __wglMakeCurrent(HDC hdc, HANDLE hrcSrv, HDC hdcSrvIn)
{
HDC hdcSrv = (HDC) 0;
BOOL bRet = FALSE;
// Get the server-side DC handle.
if (hdc)
{
if (hdcSrvIn != NULL)
{
hdcSrv = hdcSrvIn;
}
else
{
hdcSrv = GdiConvertDC(hdc);
}
if (hdcSrv == (HDC) 0)
{
WARNING1("__wglMakeCurrent: unexpected bad hdc: 0x%lx\n", hdc);
return(bRet);
}
}
BEGINMSG(MSG_WGLMAKECURRENT,WGLMAKECURRENT)
pmsg->hdc = hdcSrv;
pmsg->hrc = hrcSrv;
bRet = CALLSERVER();
ENDMSG
MSGERROR:
return(bRet);
}
BOOL __wglShareLists(HANDLE hrcSrvShare, HANDLE hrcSrvSource)
{
BOOL bRet = FALSE;
BEGINMSG(MSG_WGLSHARELISTS, WGLSHARELISTS)
pmsg->hrcSource = hrcSrvSource;
pmsg->hrcShare = hrcSrvShare;
bRet = CALLSERVER();
ENDMSG
MSGERROR:
return(bRet);
}
BOOL __wglAttention()
{
BOOL bRet = FALSE;
// reset user's poll count so it counts this as output
// put it right next to BEGINMSG so that NtCurrentTeb() is optimized
RESETUSERPOLLCOUNT();
BEGINMSG(MSG_GLSBATTENTION, GLSBATTENTION)
bRet = CALLSERVER();
ENDMSG
MSGERROR:
return(bRet);
}
BOOL __wglCopyContext(HANDLE hrcSrvSrc, HANDLE hrcSrvDest, UINT fuFlags)
{
// Server implementation doesn't support this call
return FALSE;
}
#endif // !_CLIENTSIDE_