mirror of
https://github.com/reactos/reactos.git
synced 2024-07-09 06:05:11 +00:00
some more video code
svn path=/trunk/; revision=840
This commit is contained in:
parent
258912bf48
commit
f09720f7d7
|
@ -189,12 +189,36 @@ typedef VOID (*PBANKED_SECTION_ROUTINE)(IN ULONG ReadBank, IN ULONG WriteBank,
|
|||
|
||||
/* FIXME: replace with proper typedefs */
|
||||
typedef PVOID PVIDEO_CLUT;
|
||||
typedef PVOID PVIDEO_MEMORY;
|
||||
typedef PVOID PVIDEO_MEMORY_INFORMATION;
|
||||
typedef PVOID PVIDEO_MODE;
|
||||
|
||||
typedef struct _VIDEO_MEMORY
|
||||
{
|
||||
PVOID RequestedVirtualAddress;
|
||||
} VIDEO_MEMORY, *PVIDEO_MEMORY;
|
||||
|
||||
typedef struct _VIDEO_MEMORY_INFORMATION
|
||||
{
|
||||
PVOID VideoRamBase;
|
||||
ULONG VideoRamLength;
|
||||
PVOID FrameBufferBase;
|
||||
ULONG FrameBufferLength;
|
||||
} VIDEO_MEMORY_INFORMATION, *PVIDEO_MEMORY_INFORMATION;
|
||||
|
||||
typedef struct _VIDEO_MODE
|
||||
{
|
||||
ULONG RequestedMode;
|
||||
} VIDEO_MODE, *PVIDEO_MODE;
|
||||
|
||||
/* FIXME: replace with proper typedefs */
|
||||
typedef PVOID PVIDEO_MODE_INFORMATION;
|
||||
typedef PVOID PVIDEO_NUM_MODES;
|
||||
typedef PVOID PVIDEO_SHARE_MEMORY;
|
||||
|
||||
typedef struct _VIDEO_SHARE_MEMORY
|
||||
{
|
||||
HANDLE ProcessHandle;
|
||||
ULONG ViewOffset;
|
||||
ULONG ViewSize;
|
||||
PVOID RequestedVirtualAddress;
|
||||
} VIDEO_SHARE_MEMORY, *PVIDEO_SHARE_MEMORY;
|
||||
|
||||
ULONG STDCALL VideoPortCompareMemory(IN PVOID Source1, IN PVOID Source2, IN ULONG Length);
|
||||
VOID STDCALL VideoPortDebugPrint(IN ULONG DebugPrintLevel, IN PCHAR DebugMessage, ...);
|
||||
|
|
|
@ -159,6 +159,8 @@ HANDLE DRIVER_FindMPDriver(LPCWSTR Name);
|
|||
BOOL DRIVER_BuildDDIFunctions(PDRVENABLEDATA DED,
|
||||
PDRIVER_FUNCTIONS DF);
|
||||
BOOL DRIVER_UnregisterDriver(LPCWSTR Name);
|
||||
INT DRIVER_ReferenceDriver (LPCWSTR Name);
|
||||
INT DRIVER_UnreferenceDriver (LPCWSTR Name);
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: registry.c,v 1.21 1999/11/24 11:51:46 dwelch Exp $
|
||||
/* $Id: registry.c,v 1.22 1999/12/09 02:45:05 rex Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS kernel
|
||||
|
@ -1374,7 +1374,6 @@ CmiObjectParse(PVOID ParsedObject, PWSTR *Path)
|
|||
return NewKeyObject;
|
||||
}
|
||||
|
||||
/* FIXME: this access of RootKeyBlock should be guarded by spinlock */
|
||||
CurKeyBlock = CmiGetKeyBlock(RegistryFile,
|
||||
RegistryFile->HeaderBlock->RootKeyBlock);
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: driver.c,v 1.5 1999/11/20 21:51:19 ekohl Exp $
|
||||
/* $Id: driver.c,v 1.6 1999/12/09 02:45:05 rex Exp $
|
||||
*
|
||||
* GDI Driver support routines
|
||||
* (mostly swiped from Wine)
|
||||
|
@ -18,6 +18,7 @@ typedef struct _GRAPHICS_DRIVER
|
|||
{
|
||||
PWSTR Name;
|
||||
PGD_ENABLEDRIVER EnableDriver;
|
||||
int ReferenceCount;
|
||||
struct _GRAPHICS_DRIVER *Next;
|
||||
} GRAPHICS_DRIVER, *PGRAPHICS_DRIVER;
|
||||
|
||||
|
@ -31,6 +32,7 @@ BOOL DRIVER_RegisterDriver(LPCWSTR Name, PGD_ENABLEDRIVER EnableDriver)
|
|||
{
|
||||
return FALSE;
|
||||
}
|
||||
Driver->ReferenceCount = 0;
|
||||
Driver->EnableDriver = EnableDriver;
|
||||
if (Name)
|
||||
{
|
||||
|
@ -174,3 +176,35 @@ BOOL DRIVER_UnregisterDriver(LPCWSTR Name)
|
|||
}
|
||||
}
|
||||
|
||||
INT DRIVER_ReferenceDriver (LPCWSTR Name)
|
||||
{
|
||||
GRAPHICS_DRIVER *Driver = DriverList;
|
||||
|
||||
while (Driver && Name)
|
||||
{
|
||||
if (!_wcsicmp( Driver->Name, Name))
|
||||
{
|
||||
return ++Driver->ReferenceCount;
|
||||
}
|
||||
Driver = Driver->Next;
|
||||
}
|
||||
|
||||
return GenericDriver ? ++GenericDriver->ReferenceCount : 0;
|
||||
}
|
||||
|
||||
INT DRIVER_UnreferenceDriver (LPCWSTR Name)
|
||||
{
|
||||
GRAPHICS_DRIVER *Driver = DriverList;
|
||||
|
||||
while (Driver && Name)
|
||||
{
|
||||
if (!_wcsicmp( Driver->Name, Name))
|
||||
{
|
||||
return --Driver->ReferenceCount;
|
||||
}
|
||||
Driver = Driver->Next;
|
||||
}
|
||||
|
||||
return GenericDriver ? --GenericDriver->ReferenceCount : 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: dc.c,v 1.9 1999/11/17 20:54:05 rex Exp $
|
||||
/* $Id: dc.c,v 1.10 1999/12/09 02:45:06 rex Exp $
|
||||
*
|
||||
* DC.C - Device context functions
|
||||
*
|
||||
|
@ -105,7 +105,8 @@ HDC STDCALL W32kCreateCompatableDC(HDC hDC)
|
|||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
DRIVER_ReferenceDriver (NewDC->DriverName);
|
||||
|
||||
/* Copy information from original DC to new DC */
|
||||
NewDC->hSelf = NewDC;
|
||||
|
||||
|
@ -243,6 +244,8 @@ HDC STDCALL W32kCreateDC(LPCWSTR Driver,
|
|||
/* Complete initialization of the physical device */
|
||||
NewDC->DriverFunctions.CompletePDev(NewDC->PDev, NewDC);
|
||||
|
||||
DRIVER_ReferenceDriver (Driver);
|
||||
|
||||
/* Enable the drawing surface */
|
||||
NewDC->Surface = NewDC->DriverFunctions.EnableSurface(NewDC->PDev);
|
||||
|
||||
|
@ -277,9 +280,12 @@ BOOL STDCALL W32kDeleteDC(HDC DCHandle)
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
DCToDelete->DriverFunctions.DisableSurface(DCToDelete->PDev);
|
||||
DCToDelete->DriverFunctions.DisablePDev(DCToDelete->PDev);
|
||||
|
||||
if (!DRIVER_UnreferenceDriver (DCToDelete->DriverName))
|
||||
{
|
||||
DCToDelete->DriverFunctions.DisableSurface(DCToDelete->PDev);
|
||||
DCToDelete->DriverFunctions.DisablePDev(DCToDelete->PDev);
|
||||
}
|
||||
|
||||
/* First delete all saved DCs */
|
||||
while (DCToDelete->saveLevel)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue