mirror of
https://github.com/reactos/reactos.git
synced 2025-08-07 05:43:08 +00:00
Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys.
This commit is contained in:
parent
b94e2d8ca0
commit
c2c66aff7d
24198 changed files with 0 additions and 37285 deletions
215
win32ss/reactx/ntddraw/eng.c
Normal file
215
win32ss/reactx/ntddraw/eng.c
Normal file
|
@ -0,0 +1,215 @@
|
|||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS kernel
|
||||
* PURPOSE: Native DirectDraw implementation
|
||||
* FILE: win32ss/reactx/ntddraw/eng.c
|
||||
* PROGRAMER: Magnus olsen (magnus@greatlord.com)
|
||||
* REVISION HISTORY:
|
||||
* 19/1-2006 Magnus Olsen
|
||||
*/
|
||||
|
||||
|
||||
#include <win32k.h>
|
||||
#include <debug.h>
|
||||
|
||||
/************************************************************************/
|
||||
/* HeapVidMemAllocAligned */
|
||||
/************************************************************************/
|
||||
FLATPTR
|
||||
APIENTRY
|
||||
HeapVidMemAllocAligned(LPVIDMEM lpVidMem,
|
||||
DWORD dwWidth,
|
||||
DWORD dwHeight,
|
||||
LPSURFACEALIGNMENT lpAlignment,
|
||||
LPLONG lpNewPitch)
|
||||
{
|
||||
PGD_HEAPVIDMEMALLOCALIGNED pfnHeapVidMemAllocAligned = (PGD_HEAPVIDMEMALLOCALIGNED)gpDxFuncs[DXG_INDEX_DxDdHeapVidMemAllocAligned].pfn;
|
||||
|
||||
if (pfnHeapVidMemAllocAligned == NULL)
|
||||
{
|
||||
DPRINT1("Warning: no pfnHeapVidMemAllocAligned\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
DPRINT1("Calling dxg.sys pfnHeapVidMemAllocAligned\n");
|
||||
return pfnHeapVidMemAllocAligned(lpVidMem, dwWidth, dwHeight, lpAlignment, lpNewPitch);
|
||||
}
|
||||
|
||||
/************************************************************************/
|
||||
/* VidMemFree */
|
||||
/************************************************************************/
|
||||
VOID
|
||||
APIENTRY
|
||||
VidMemFree(LPVMEMHEAP pvmh,
|
||||
FLATPTR ptr)
|
||||
{
|
||||
PGD_VIDMEMFREE pfnVidMemFree = (PGD_VIDMEMFREE)gpDxFuncs[DXG_INDEX_DxDdHeapVidMemFree].pfn;
|
||||
|
||||
if (pfnVidMemFree == NULL)
|
||||
{
|
||||
DPRINT1("Warning: no pfnVidMemFree\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
DPRINT1("Calling dxg.sys pfnVidMemFree\n");
|
||||
pfnVidMemFree(pvmh, ptr);
|
||||
}
|
||||
}
|
||||
|
||||
/************************************************************************/
|
||||
/* EngAllocPrivateUserMem */
|
||||
/************************************************************************/
|
||||
_Must_inspect_result_
|
||||
_Ret_opt_bytecount_(cjMemSize)
|
||||
__drv_allocatesMem(PrivateUserMem)
|
||||
ENGAPI
|
||||
PVOID
|
||||
APIENTRY
|
||||
EngAllocPrivateUserMem(
|
||||
_In_ PDD_SURFACE_LOCAL psl,
|
||||
_In_ SIZE_T cjMemSize,
|
||||
_In_ ULONG ulTag)
|
||||
{
|
||||
PGD_ENGALLOCPRIVATEUSERMEM pfnEngAllocPrivateUserMem = (PGD_ENGALLOCPRIVATEUSERMEM)gpDxFuncs[DXG_INDEX_DxDdAllocPrivateUserMem].pfn;
|
||||
|
||||
if (pfnEngAllocPrivateUserMem == NULL)
|
||||
{
|
||||
DPRINT1("Warning: no pfnEngAllocPrivateUserMem\n");
|
||||
return DDHAL_DRIVER_NOTHANDLED;
|
||||
}
|
||||
|
||||
DPRINT1("Calling dxg.sys pfnEngAllocPrivateUserMem\n");
|
||||
return pfnEngAllocPrivateUserMem(psl, cjMemSize, ulTag);
|
||||
}
|
||||
|
||||
/************************************************************************/
|
||||
/* EngFreePrivateUserMem */
|
||||
/************************************************************************/
|
||||
VOID
|
||||
APIENTRY
|
||||
EngFreePrivateUserMem(PDD_SURFACE_LOCAL psl,
|
||||
PVOID pv)
|
||||
{
|
||||
PGD_ENGFREEPRIVATEUSERMEM pfnEngFreePrivateUserMem = (PGD_ENGFREEPRIVATEUSERMEM)gpDxFuncs[DXG_INDEX_DxDdFreePrivateUserMem].pfn;
|
||||
|
||||
if (pfnEngFreePrivateUserMem == NULL)
|
||||
{
|
||||
DPRINT1("Warning: no pfnEngFreePrivateUserMem\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
DPRINT1("Calling dxg.sys pfnEngFreePrivateUserMem\n");
|
||||
pfnEngFreePrivateUserMem(psl, pv);
|
||||
}
|
||||
}
|
||||
|
||||
/*++
|
||||
* @name EngDxIoctl
|
||||
* @implemented
|
||||
*
|
||||
* The function EngDxIoctl is the ioctl call to different DirectX functions
|
||||
* in the driver dxg.sys
|
||||
*
|
||||
* @param ULONG ulIoctl
|
||||
* The ioctl code that we want call to
|
||||
*
|
||||
* @param PVOID pBuffer
|
||||
* Our in or out buffer with data to the ioctl code we are using
|
||||
*
|
||||
* @param ULONG ulBufferSize
|
||||
* The buffer size in bytes
|
||||
*
|
||||
* @return
|
||||
* Always returns DDERR_UNSUPPORTED
|
||||
*
|
||||
* @remarks.
|
||||
* dxg.sys EngDxIoctl call is redirected to dxg.sys
|
||||
* This function is no longer used in Windows NT 2000/XP/2003
|
||||
*
|
||||
*--*/
|
||||
HRESULT
|
||||
APIENTRY
|
||||
EngDxIoctl(ULONG ulIoctl,
|
||||
PVOID pBuffer,
|
||||
ULONG ulBufferSize)
|
||||
{
|
||||
PGD_ENGDXIOCTL pfnEngDxIoctl = (PGD_ENGDXIOCTL)gpDxFuncs[DXG_INDEX_DxDdIoctl].pfn;
|
||||
DWORD retVal = DDERR_UNSUPPORTED;
|
||||
|
||||
DPRINT1("Calling dxg.sys pfnEngDxIoctl\n");
|
||||
|
||||
if (pfnEngDxIoctl != NULL)
|
||||
{
|
||||
retVal = pfnEngDxIoctl(ulIoctl, pBuffer, ulBufferSize);
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
/*++
|
||||
* @name EngLockDirectDrawSurface
|
||||
* @implemented
|
||||
*
|
||||
* The function EngUnlockDirectDrawSurface locks the DirectX surface.
|
||||
|
||||
* @param HANDLE hSurface
|
||||
* The handle of a surface
|
||||
*
|
||||
* @return
|
||||
* This return a vaild or NULL pointer to a PDD_SURFACE_LOCAL object
|
||||
*
|
||||
* @remarks.
|
||||
* None
|
||||
*
|
||||
*--*/
|
||||
PDD_SURFACE_LOCAL
|
||||
APIENTRY
|
||||
EngLockDirectDrawSurface(HANDLE hSurface)
|
||||
{
|
||||
PGD_ENGLOCKDIRECTDRAWSURFACE pfnEngLockDirectDrawSurface = (PGD_ENGLOCKDIRECTDRAWSURFACE)gpDxFuncs[DXG_INDEX_DxDdLockDirectDrawSurface].pfn;
|
||||
PDD_SURFACE_LOCAL retVal = NULL;
|
||||
|
||||
DPRINT1("Calling dxg.sys pfnEngLockDirectDrawSurface\n");
|
||||
|
||||
if (pfnEngLockDirectDrawSurface != NULL)
|
||||
{
|
||||
retVal = pfnEngLockDirectDrawSurface(hSurface);
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
|
||||
/*++
|
||||
* @name EngUnlockDirectDrawSurface
|
||||
* @implemented
|
||||
*
|
||||
* The function EngUnlockDirectDrawSurface unlocks the DirectX surface
|
||||
|
||||
* @param PDD_SURFACE_LOCAL pSurface
|
||||
* The Surface we want to unlock
|
||||
*
|
||||
* @return
|
||||
* This return TRUE for success, FALSE for failure
|
||||
*
|
||||
* @remarks.
|
||||
* None
|
||||
*
|
||||
*--*/
|
||||
BOOL
|
||||
APIENTRY
|
||||
EngUnlockDirectDrawSurface(PDD_SURFACE_LOCAL pSurface)
|
||||
{
|
||||
PGD_ENGUNLOCKDIRECTDRAWSURFACE pfnEngUnlockDirectDrawSurface = (PGD_ENGUNLOCKDIRECTDRAWSURFACE)gpDxFuncs[DXG_INDEX_DxDdUnlockDirectDrawSurface].pfn;
|
||||
BOOL retVal = FALSE;
|
||||
|
||||
DPRINT1("Calling dxg.sys pfnEngUnlockDirectDrawSurface\n");
|
||||
|
||||
if (pfnEngUnlockDirectDrawSurface != NULL)
|
||||
{
|
||||
retVal = pfnEngUnlockDirectDrawSurface(pSurface);
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue